Omnibot mkI

Copyright (C) 2011, 2012 by Michal Zalewski <lcamtuf@coredump.cx>

Hey, you! Yes, you. Ignore this page and check out the newer version of this design instead!

This page documents the work on Omnibot mkI. The goal of this project is to experiment with a novel configurable drivetrain that allows the robot to perform on-the-spot 360° turns, or to instantaneously switch to sideways motion - all while keeping a very accurate track of its position in almost any terrain. The design relies on just three $1.20 motors and four regular wheels, and is relatively easy to recreate even with Legos. The total price tag is under $120 or so.

Of course, robot designs capable of omnidirectional movement are not rare, but they usually employ very expensive and complex Mecanum wheels, or anywhere from 6 to 8 servomotors to independently position and operate regular wheels, in both cases resulting in a substantial price tag. Some low-budget alternatives exploit wheel slippage instead, but that approach is completely incompatible with many types of terrain, is inefficient, and makes accurate position tracking fairly difficult.

To be clear, the linkage-and-gear design used in this project is fairly simple and likely not unique. It's just that almost nobody seems to be using it, so I wanted to test out the idea.

Electronic components

This part is less exciting. The complete inventory for the planned design is: The resulting robot should be a GCC-supported, libc-enabled compilation target running at up to 20 MHz, with 128 kB of program memory and 16 + 4 kB RAM. The system features very low power consumption - thanks to motors running with minimal losses (and consuming approx. 40 mA per motor).

Other materials and processes

Molds for all plastic parts were initially machined on Roland Modela MDX-540 in Huntsman RenShape 460 medium density modeling board, using 0.4 mm, 1 mm, and 3 mm diameter square end cutters from Hanita. Negative molds were then cast in Quantum QM280, and tires in ShinEtsu KE-1310ST platinum cure silicones. Finally, all the rigid plastic parts - including 48 spur gears - were made in these molds out of Innovative Polymers IE-3075 polyurethane resin, manually pigmented with titanium white, quinacridone pink, and solvent blue 67. Some parts are additionally filled with glass fibers for improved strength and rigidity.

The project also called for 11 VXB ball bearings, 8 steel dowel pins (2 mm), 19 machine screws (M1.5 and M2), and four small pieces of a square steel rod.

The approximate cost of these supplies does not exceed $30. The machininng and casting process used to manufacture all the remaining plastic components in-house is explained in detail in my guerrilla CNC manufacturing guide, and documented in this Flickr set.


Mechanical design

The design is based on a rectangular platform with four independently swiveling wheels. Two diagonally opposite wheels (marked as red in the illustration below) are driven directly by two independent, low-cost motors with no integral feedback. The other two wheels (blue) turn freely, and incorporate simple optical encoders to detect traction and correct directional drift, if any. A simple linkage, operated by a third motor, is used to synchronize the orientation of the wheels.

This configuration allows the robot to cycle through three movement configurations without moving or losing registration with the environment:

The operation of the linkage should be evident from this rendering of the actual chassis (motors installed underneath; the central part turns clockwise):

This rendering illustrates the operation of one of the assemblies for free-spinning wheels, complete with position sensors:

The two powered wheels use a slightly different design, this time with no sensing:

To reorient the drive train without moving, the robot needs to turn the powered wheels in opposite directions at a speed synchronized with the rotation of the drivetrain.

As for the gearboxes themselves: the motors used in this design are Mabuchi RF-300FA-12350, coupled with a custom-machined, three-stage high-efficiency planetary (125:1 gear ratio). There is no output arm - the part to be rotated simply slides through the top opening and directly into the last stage of the gearbox. The following quick rendering, recycled from another project, illustrates the design.

The moldmaking and casting process for these parts is illustrated here, so I won't repeat all the details. A snapshot of the assembly process:

The operation of an early prototype of the gearbox is shown in this video:

Of course, these components can be replaced with commercially available low-cost geared motors if so desired.

All right, so that's it for the motors. Going back to the chassis: the machined and cast negative molds for all the main components are shown below. The top two molds are two-part, and are used to cast the connector between the chassis and the wheel.

Again, I'll spare you the gory details of the casting process; long story short, after briefly flirting with a Halloween-inspired color theme, I eventually decided to stick to the original plan, and came up with this:

Now it just needs some wheels! The design here isn't particularly innovative:

Here's the entire body after assembly:

This picture, on the other hand, shows the configuration used for turning:

Status update: my second kid was born shortly after wrapping up the hardware design and doing a couple test runs. Later that year, I spent a fair amount on other projects, including my upcoming third book and a complete rewrite of the Guerrilla Guide to CNC. By the time I was done with that, I decided to push the concept of Omnibot a bit further, and scraped the original variant in favor of Omnibot mkII. Visit the page of the mkII design to read more.

You can reach me at lcamtuf@coredump.cx.

Your lucky number: 16030571