Sometimes robots just don’t work the way you’d like them to. In Spring Quarter 2019 I worked with a group of students from my lab to develop the Doggo robot as a research platform. The Doggo robot is a fairly impressive robot built by a team of undergraduate students here at Stanford in the Stanford Robotics Club and we were excited to do some exciting things with it. Our rather simple goal was to get it to balance on its hind legs.

This project quickly became an exercise in Murphy’s Law, and maybe just an exercise in what experimental robotics is really all about. Things we thought would be simple turned into month-long projects. We ended up working on pretty much every part of the control stack, from radio communication to writing a custom interface between the onboard computer and the motor drivers. In the end we didn’t get the demo to work despite a massive amount of work. It was pretty discouraging but I personally learned a lot of valuable lessons. First, hardware is hard! Second, get a good model working in simulation ASAP. Third, characterize everything, early. Take the time to figure out the communication latency between various components, measure the friction in your drive train, and try simple tests to verify your robot works the way you think it does. Fourth, don’t move on until you’re sure the subsystem you’ve developed is reliable and consistent. We had too many things that randomly went wrong without us really knowing why.

While the results were discouraging, I look forward to getting cool hardware to work in the future and am grateful to the teaching staff that were lenient with us and helped us get as far as we did!

Final Report: CS225A Report