CrossMgrImpinj 2.21.11: Greatly improved RFID accuracy

Post date: May 18, 2018 1:23:46 AM

Since CrossMgrimpinj was released, it used a "First Read" approach to recording a time.

It recorded the first read time of the tag as it approached the antenna

Unfortunately, the shape of the read zone of the antenna is not straight. It looks more like this:

Image result for rfid antenna pattern

Two antennas on either side of the finish line overlap and make a straighter line. However, the read zone is still not straight, so riders may not be reported in the same order as crossing the line.

And, this does not help with what we really want to know: the exact time the rider passes the antenna.

There has been considerable research trying to improve this using additional information from the reader.

In additional to the timestamp, the reader can return the PeakRSSI (Signal Strength), Phase Angle and Doppler Shift (more on those last two later).

Rather than just report the first read, the idea here is that we collect as many reads as possible as the tag crosses the read zone. In the "E Phase" diagram above, imagine a rider crossing the read zone at speed and recording as many reads as possible.

We then combine all the reads together and compute at time when the tag actually crossed the finish line.

To see how this is done, let's start with PeakRSSI, or Signal Strength (measured in db). This is the strength of the returned RF signal from the tag back to the reader.

The diagram below shows actual reads (dots) from 3 riders crossing a finish line. As you would expect, the signal strength starts weak, increases to a maximum, then decreases.

Diagram courtesy of Stuart Lynne.

In a perfect world, the dots would line up on a parabola. In reality, noise (multiple back scatter paths, internal reader error, etc.) means that the data is imperfect.

If the noise is random it should 'even out" over a number of samples.

So, if we find a parabola that is a "best fit" to the data using quadratic regression it should be very close to the "true" parabola. These best-fit parabolas are shown in the diagram.

Once we have a parabola, we can get the time at its apex. This is the "best estimate" where the tag crossed the antenna (i.e. the signal strength is strongest). Interestingly, the "best estimate" time does not correspond to the time of any actual tag read. Rather, it is a composite of a number of reads taken together (and hopefully ore accurate).

How does it perform in practice?

Experiments with criterium bunch finishes showed that the results agree with a camera much more accurately. When they don't, the riders are very close. Far fewer corrections to the results were required than First Read..

Things to consider:

Tag alignment is important! Tags should be mounted rigidly on the bike so the flat side of the tag presents to the antenna. If the tag is misaligned, its transmission strength could be skewed, and this will affect the accuracy of the result.

Antenna alignment is important! Make sure the antennas are pointed properly.

The feature is now available in CrossMgrImpinj 2.21.11. In the Advanced reader options, choose "Quadratic Regression".

PeakRSSI works with all LLRP readers.

Special thanks to Stuart Lynne and Andrew Paradowski for their help in developing this feature.

I plan to look at Phase Angle and Doppler Shift. Unfortunately, these features are only available on Impinj readers.

So far, Phase Angle has proven difficult to analyse at it wraps around. Doppler Shift could be noisy as the reader has to detect frequency changes relative to the speed of light.

Both techniques should be less sensitive to tag alignment, which could lead to more accuracy in the future.