My hobbies include doing software, simulation, and embedded controls development for home-made robots. This page shows off a few related projects.
Bobble-Bot is a modern take on a classical problem in control theory. The robot represents a unique solution to the well understood problem of control of a two wheeled inverted pendulum. The source code for the robot's balance control logic can be found here. The controller comes with a handy Gazebo simulation which was used extensively during the development of the robot. The code is being provided as open-source software in order to help others learn about feedback control and the Robot Operating System (ROS). My contributions include development of the balance controller, simulator, and CAN communication drivers for the Raspberry Pi and motor controller firmware.
Here's a video of the Bobble-Bot in action:
And a video of the Bobble-Bot simulator:
POS-1 (DIY Quadcopter)
A few years ago I worked on building a quad-copter from scratch. My main contributions for this project were software, communications, state estimation, and flight control development. This was a fun project that culminated in some cool flight tests. I learned a lot from building POS-1. Someday I'll return to this project and build POS-2 applying lessons learned from Bobble-Bot in the area of real-time controls.
Here's one of the videos from an early flight test of POS-1:
I continued the DIY approach further by also building a POS-1 flight simulator from scratch. This was back in 2013-2014. If I were to do it all over again, I probably would customize one of the many open-source quad-copter simulations that are available now. AirSim seems like a fun one to try out. Nevertheless, I learned a lot during the development of my custom simulator. To build it, I implemented the equations of motions directly into a Unity project. That required learning some C# to get it all working. Here's a short video that shows it off.