ALEX HATTORI

View Original

Wheeled Biped Update

I’ve been working on small upgrades to the wheeled biped while I’ve been working on Uppercut and procrastinating writing the rest of the firmware and the balancing controller.

First up was a redo of the belt tensioners. The first iteration used one bearing which wasn’t wide enough and allowed the belts to slide off. Unfortunately since my mill is still down I ended up outsourcing these tensioners. To make it worthwhile and because I use a lot of belts in my projects, I ordered 50 tensioners worth of parts. The 2 piece design helps with assembly and keeps the manufacturing straight forward (compared to a single piece).

Up next was the programming connector. I had previously just had this Jst-sh to Jst-xh dangling out of the frame but it looked awful and had a definite risk of breaking.

After doing a bit of connector research, I decided to use an ethernet cable and connector (RJ45) because they’re incredibly cheap/accessible, have plenty of conductors, and are latching!

The ethernet connector assembly inside the robot has a Jst-sh pigtail that plugs into the control board.

The other end of the ethernet cable is soldered to some pin headers that plug into the ST-link.

Lastly I built up some logging so I could validate my controller’s performance and debug. The control board communicates with a python script on my computer over serial to transmit log data. It then gets parsed and plotted in python after the test.

I record the 4 states I use for control, (body angle/velocity from the IMU and wheel angle/velocity from the motor controllers), as well as commanded torque and Iq.

The string of text at the bottom describes the controller running (sent from the control board).

The below plot shows a slightly modified version of the Matlab generated LQR gains and I thought it was funny/interesting how clear it was when the robot bumped into a box.