Quiic for GoPiGo3?

ROSbot Dave needs a new IMU, and one that does not challenge the GoPiGo3 I2C interface.

(I had to jump through hoops to make the DI IMU “safe” so I’m not going to buy another BNO055 device.)

One of the more popular IMU uses the Quiic system which seems to be just a different connector tied to the Raspberry Pi 3.3v I2C interface and 3.3v supply.

I don’t think the 13mm clearance above the GoPiGo3 board will allow for the Sparkfun Quiic pHat interface board, so I’m thinking to just wire up a Quiic cable to a 40 pin connector.

Anyone solved this before?


It should fit.

I have placed items above the GoPiGo controller board in the past.


Actually, reading up on the difficulties of IMU sensors to measure yaw leads me to think I need to integrate an optical flow sensor instead of an IMU, since I really do not care about roll and pitch detection at all.

The ROS 2 enabled iRobot Create, (which is also the base for the ROS 2 TurtleBot4), incorporates an optical flow sensor into its fused odometry.

Dave’s encoder-only based odometry is very good for linear translation, but suffers greatly during rotation. I’m pretty sure the false rotation of Dave’s “world map” came from rotation measurement errors when using only the encoders.

My attempts to fuse the IMU and encoders with the ROS 2 EKF package did not pan out, and my encoder vs IMU path experiments with Carl actually showed the encoders to result in better path estimation than the DI IMU BNO055 “Motion Processor”, but neither better than 5% on rotation.

Dave has 4.2-4.5 cm below the bottom plate that can host an optical flow sensor. Hopefully I can find a 5v I2C flow sensor, but if not then hopefully a Quiic system board.


What’s that, and how would it be better than an IMU?


Optical flow sensors use sequential 16x16 to 64x64 pixel images (of the floor in Dave’s case) to discern X and Y axis movement at 60 to 200 Hz frame rates (built-in image differencing engine)

But it seems the optical flow data needs to be corrected for roll and pitch so going with the optical flow sensor does not eliminate the need for an IMU, only that I can fuse the roll,pitch from the IMU, X translation/velocity from the encoders, and x/y velocities from the optical flow sensor.