Cheap Robot Positioning Without LiDAR
Built a small robot from parts that follows instructions like "move 10cm forward and 2cm left" and actually lands close to that.
Here's the annoying thing about mecanum wheels. They can slide sideways, which is great for movement and terrible for measurement. Wheel encoders count wheel rotations, but mecanum wheels slip constantly, so the encoder confidently tells you the robot moved when it barely did. LiDAR would solve the positioning problem, but it starts around $300 and up.
So I built the positioning out of two cheap sensors instead. A salvaged optical mouse sensor, with a webcam lens in front so it reads the floor from a few cm up, handles distance for about $5 in parts. The IMU handles heading, with the gyro and magnetometer fused so the yaw doesn't drift over a long drive. One sensor says how far, the other says which way. That's the whole trick that usually costs $300.
On top of that I trained a small intent classifier so you can just talk to it. It maps messy speech into nine commands (forward, backward, strafe left/right, rotate, stop, and so on), handles mixed Hindi and English like "back karo," and runs in about 2ms with a confidence gate that ignores anything it isn't sure about. Around 96% accuracy on held-out phrases.
Running on the STM32MP257F-DK with the RB01 board. Built during my time at STMicroelectronics.