SparkFun Optical Tracking Odometry Sensor - PAA5160E1 (Qwiic)

We are excited about the new SparkFun Optical Tracking Odometry Sensor - PAA5160E1 (Qwiic) and are trying to set the linear and angular scalars. When we ran the test for the angular scalar we get about a .01 degree per second drift. If we just leave the robot sitting still after the test the number continues to change.

For the linear scalar we ran the test on our practice mats that are darker than the FTC mats. With the sensor set at 1 cm above the mats, it sensed about the half the distance travelled. So we switched to FTC legal mats, and then it sensed about three quarters of the actual distance traveled. Based on these observations there seems to be a significant error introduced by mat color. Is there a way to overcome this for competition, where mats will be of different colors/quality etc.?

How can we overcome these obstacles to properly set up the sensor to make it usable for autonomous.

Thank you for your time and assistance.

Have you done the calibration first?

https://youtu.be/WcCNC8wExUc&t=446

https://docs.sparkfun.com/SparkFun_Opti … alibration (also do the offset and position one that follows)

The video has a few notes about darkness/reflectivity and notes that the mounting distance works best very close (10-27mm from the surface)

Is the surface being used for calibration fully flat? Any nearby sources of EMF?

We had a similar problem that we just resolved. You can’t calibrate with that much of difference in reported position. The sensor does appear to be very sensitive to height on FTC tiles.

I think the 10-27 height range is only for other surfaces, I think it needs to be 10-11mm for FTC tiles. And that height is for the sensor itself. I think we might have had the bottom of our mount near 10mm, but the sensor itself was 13mm or more. That was not a lot of height difference but it did affect the sensor values by a surprising amount.

Note: We did our height measurements on the FTC tiles as we have a heavy robot and our wheels sink in a bit.

We reprinted the sensor mount but stretched the 3d print vertically so that when the robot was on the FTC tiles the sensor itself was at 10-11mm. Then our reported distances were pretty close to actual. Then I was able to complete the calibrations with setAngularScalar(0.992) and setLinearScalar(1.008). So the sensor was quite accurate once we got to a good height.

Note: in the Java code you can see that the scalar values must be between 0.872 and 1.127. Basically if the sensor isn’t reporting values within 12% of actual you have a problem.

We’re still testing, but just yesterday we got the robot driving around the field using the sensor.