Get distance from an RFID Tag [solved]

Dear Arduino community,
Hi there,

I’ve got an IR+RFID guided robot. I have to target many objects in a room, one after the other. All are in a random position. Each one is RFID passive-tagged.
I proceed like that: I target an object with the IR, I reach it, and I check if the target is the right one with an RFID validation.

Now, I would like to validate the objective before to totally reach it :smiley:

A way for that is to roughly compare the IR measured distance and the RFID measured distance, and to conclude if the target where we are going is the right one. I even think that compare evolution of the IR-distance and evolution of the RFID distance should be sufficient.

I understood that all methods to get distance from RFID are more or less at a “research” level. (is it still true ?)
I know 2 of these methods: The “RSSI method”, that measure the signal strength, and the “radar” method, that measure the time between signal emission and Tag answer reception.

The RSSI sounds not easy to use, so I’m looking for a signal transit time measuring.

Now, my questions

Programming feasibility :

In your opinion, how can I recover the time between signal emission and Tag answer reception?
Is there conditions to fulfil to get it (particular material, tags, etc) ?

Physical feasibility:
I know that the two way trip should greatly depend of the Tag response time.
The field is clear, no obstacles between reader and tags.

I assume that the response time should be more or less constant in same condition of field / same Reader/ same Tag. Is it stupid ?
Consequently, I believe that a calibration should be sufficient to reduce the error. Is it stupid ?

global feasibilty

Do you know tips to make the method more reliable?
Do you think I should be reasonably easy to combine RSSI and radar method to improve reliability ?

Thanks a lot to all the RFID experts of the community!
Kind regards,
Meric.

[edit]
Material I consider for this project is :

  • Cottonwood Long Range UHF RFID Reader
  • LinkSprite PCB UHF RFID Antenna
    computed on an Arduino MEGA2560.
    ... Is it a pertinent choice ?

Radio signals travel at the speed of light, so it is not possible to measure transit time with typical consumer grade electronics, like Arduino.

Hi JRemington,

Nothing impossible, but in this case, you are fully right.
I did the calculation today.
The signal take 3ns for 1m trip.
The Arduino Clock is 16MHz, so 60ns between each beat.
-> The minimum Clock for measuring with Radio Radar technology should be in GHz, not in MHz like an Arduino.
-> The Arduino could measure distance in km, with some km precision.

Clear.

Remains RSSI. How about it ? Somebody experienced it ?

Thanks.
See you
Meric

I did not say it was impossible. It is not possible using typical consumer grade electronics.

Remains RSSI. How about it ? Somebody experienced it ?

Doesn't work either. RSSI depends more strongly on relative antenna orientation and the presence of nearby reflecting and absorbing objects than it does on the distance between transmitter and receiver.

Hi JRemington,

Thanks again for answer.

OK, so, I'm definitely looking in the wrong direction.

  • I'm trying to compare RFID distance, and IR targeted object distance to validate target.
  • Another way of thinking is to compare RFID direction and IR targeted object direction, to validate target.

-> Is it possible to define roughly the direction of an RFID Tag ? How ?

  • Scanning around with a very directional antenna (how deal with reflection issues) ?
  • Measuring signal gap between 2 antennas ?

See you.
Meric

I really don't understand the problem. RFID is usually very short range. If you can read that tag, you are done with that step.

1 room. 6 Targets to reach, one by one, before to leave the room.

-> If I move randomly, detect a random object with IR, reach it, and after RFID-identify it, know if is it the right one... Statistically, I'll reach each object 3 or 4 times before reaching all of them, so at least 20 or 30 reaching instead of 6 to accomplish the task. This is really inefficient.

-> A way to improve the operation may be : enter the room, looking for the first RFID, detect the RFID bearing, go directly to it, reach object. Task accomplished, looking for next RFID, go directly to it, etc.

If I don"t find a better way, I may adopt an intermediate solution : an RFID with 1 or 2m range. Moving randomly, detect the searched RFID, stop and scan around to IR-find the object. If object reached and RFID signal still there, then object is the right one. But, a limitation is that the objects must be separted by these 1 or 2m... So, I'm trying to be a little more ambitious.

Regards,
Meric.

If you could somehow store the position of a tag after reading the wrong one, then the bot could possibly go bac to it after finding the next few.
Example: Enter the room, find tag 3. Store position, go search for others. After finding 1 and 2, go back to 3.

Hi Isaac,

I did not think about mapping, because it was in my mind a complicated thing. But, after some google searches, it's appear that it is quite feasible. (codeExampleHere)
E.g.

  • Map each Objects at first use
  • Directly go to mapped objects the next time
  • Research with [IR targeting +RFID validation] if it moved out of the mapped location, and save the new position.

-> Yes, it can clearly be a solution, easier than heavy radio signal treatments.

For information to people interested in RFID location, I found an interesting study about it (Enclosed pdf).
If anybody try to implement it, please, let me know which material used, and your results !

I change topic in [solved], but in all cases, I'll post the solution I'll implement, and results.

Thanks a lot both.

Meric.

rfid directional.pdf (611 KB)