Our OTOS PAA5160E1 has been working pretty well, but we’re finding some cases where changing elevations and other temporary rotations causes a yaw discrepancy. Our bot is a synchro drive (body of the robot always points to the same heading, wheels can be rotated to the new heading or driven forwards/backwards), and the sensor is mounted to the body, so we actually can assume the sensor heading never changes, but in actuality it does over time. Is there any relatively straightforward way to set a “static” yaw?
Maybe - it looks like example4 allows an offset to be input and also has a reset function in-built, if those are simpler to use Arduino Examples - SparkFun Optical Tracking Odometry Sensor - PAA5160E1 (Qwiic) Hookup Guide
Alternatively it looks like you can dynamically set/call :
sfe_otos_pose2d_t currentPosition = {0, 0, 0};
myOtos.setPosition(currentPosition);
and use that to feed it static values (or a mix…you could pass the other values to a placeholder variable and pass them back into the non-static values)
The OTOS has a built-in feature for this. There’s a signal process config register (see 0x0E
in the OTOS register map) that has a bit you can set to force a “static yaw”.
If you’re using Arduino:
Or if you’re using Python:
Or FTC Java:
2 Likes