James Bruton Takes Another Stab at a One-Omni Wheel Self-Balancing Robot
James Bruton revisited his one-omni wheel self-balancing robot idea from a few years ago, with better results this time.
Modern sensors, microcontrollers, and PID (proportional-integral-derivative) control have made self-balancing robots and vehicles pretty accessible. That’s especially true when balance is only required in one axis, like with a hoverboard. But it does get more difficult when you need to move and balance in two axes. A few years ago, James Bruton tried to pull that off with a robot that had a single omni wheel, but that didn’t work very well. Never one to give up, he revisited the idea to build a new and completely reengineered version of the single omni wheel self-balancing robot.
Traditional omni wheels are only driven in the “normal” axis. A motor can rotate them forward or backward like a normal wheel, but the small rollers that allow for side-to-side movement aren’t driven. That’s purposeful, because they enable desirable movement when four omni wheels work together in concert. However, in a case like this where the robot only has one wheel, free-spinning rollers would be counterproductive.
For that reason, Bruton designed and constructed a special kind of omni wheel that has driven rollers. One motor rotates the entire omni wheel in the “normal” axis, then a second motor rotates the rollers perpendicular to that via a series of belts and pulleys in an arrangement somewhat similar to a planetary gearbox in appearance. As is usually the case, Bruton 3D-printed most of the custom mechanical parts of the robot. Though this also has CNC-cut plywood sandwiched together to construct the large “hub” gear.
A Teensy 4.0 microcontroller development board controls the robot, using an IMU (inertial measurement unit) to monitor movement of the robot. It controls the ODrive motors through a CAN (controller area network) bus. Power comes from a set of large hobby-style lithium battery packs.
With a self-balancing robot like this, success comes down to proper PID control. Bruton took advantage of an Arduino PID library and then put a lot of effort into PID tuning. The entire point of PID control is to enact compensation for tipping, without overcompensating and creating an increasingly severe oscillation. In this case, Bruton had to do that in two axes working together.
The results are quite promising. It doesn’t really drive around — Bruton did try to drive it around with his universal remote, but that wasn’t reliable. However, it does stand still on one spot very well while balancing. If Bruton gives it a shove, it will correct itself to stay upright.
Writer for Hackster News. Proud husband and dog dad. Maker and serial hobbyist. Check out my YouTube channel: Serial Hobbyism