Let's Make Robots!

Scamper the omni directional high speed robot

High speed omni directional robot ideal for soccer bots
Scamper_IR_Control.zip665.93 KB
Scamper_Motor_Drivers.zip2.66 KB
Scamper_Kit.zip3.33 MB

Now with video, Scamper appears to be a little wobbly at slow speeds but that is because at only 6%, the motors are constantly stalling and restarting. Once the robot is moving at higher speeds it actually moves quite smoothly. I have ordered some motors with higher gear ratios to slow the robot down and prevent the motors stalling so much. The current gearboxes are only 29:1.



Update: I've updated to double omni wheels to allow the robot to roll more smoothly and I've attached the code for both the Mini Drivers and the Micro Magician. Note: one Mini Driver is on I2C address #1 and the other is I2C address #2.

I did have some trouble at first. I forgot to enable the pullup resistors for the external interrupts. The hall effect sensors used are open drain outputs. Now my biggest problem is the motors are too fast making it difficult to control in small areas.


Scamper is a small robot that uses four omni wheels with rubber rollers to move is any direction or rotate on the spot. A Micro Magician V2 is used as the master controller and controls two Mini Drivers slaves using the I2C interface.

Scamper is powered by a 7.4V (2S) 1000mAh LiPo mounted under the Mini Driver PCBs. The Micro Magician power switch is the master power switch although the Mini Driver boards can be turned off individually if required.

The two Mini Drivers are I2C slaves programmed to be "smart" motor drivers that use feedback from the encoders to drive the motors at precise speeds and measure the distance traveled in any direction. The Mini Drivers also report the battery voltage back to the I2C master. While testing, the code is uploaded to the Mini Drivers by the onboard USB port. Once the code is finalized it is uploaded directly using the ISP socket. This eliminates the bootloader allowing the Mini Drivers to initialize much quicker.

When you look underneath you can see that each of Scampers motors has a magnetic encoder disc mounted directly on the motor shaft. The encoders generate 8 state changes per motor revolution and the gearbox has a 29:1 gear ratio. This gives us 232 state changes per wheel revolution.

The Mini Drivers measure the time in μS between encoder state changes to measure the motor speeds and then adjust the PWM to each motor to maintain the correct speed. This provides 2 major advantages to simply using PWM with no feedback.

  1. Allows the robot to travel in a straight line by ensuring all wheels rotate at the correct speed.
  2. Provides much higher torque at low speeds without the motor stalling.



Scamper will now become a kit using DAGU's new ComMotion shield for Arduino. Although the shield can control 4 motors the kit has been changed to 3 motors. This is actually better if the floor is slightly uneven because all wheels are always touching the ground. The prototype ocassionally ended up with 1 wheel off the ground if the floor was not perfectly flat.

I have attached an STL file of the kit so people can 3D print robot bodies to fit the chassis. See "Scamper_Kit.zip"





Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Really nice bot!

I'll be curious to see how well the three wheel version will go straight, I think it will be slower than the four wheel version due to the "wasted" force on the two driving wheels... however judging based on the four wheel version, it will still be fast enough :)

Bill, you share a widely held (nearly universal) misconception about omni wheels. Most of what one would think of as "wasted" force  get used to increase the speed of the robot. An omni bot (traveling in a straight line) with none of the wheels aligned (to the direction of travel), will actually travel faster than an omni bot with the wheels aligned to the direction of travel (I promise).

Angling the wheels away from the direction of travel is like using a higher gear setting. There is obviously something being lost with having the wheels angled (I'm guessing you'd lose traction) but it's not speed.

I attempted to explain this here but I think the only person I've been able to convince with the video is myself.


I found a way of thinking with it with pythagorus theorum for a vehicle with 90 degree angled wheels (such as original scamper).

Motor A is trying to move the robot in the direction indicated at 255 pixels per second lets say. Motor B is trying to move in the direction indicated also at 255 pixels per second.

If you draw out what they are trying to do to move from the red circle, you'll end up at the green circle. Note though that it isn't 255 pixels away.

Instead its 360 pixels away, you are effectively moving at 360 pixels per second instead.



Maths isn't my strongest point but thats the way I saw it in my mind.

The "90 Degrees" is the angle the wheels are to each other, but you want to make sure, it's clear the wheels in the case you illustrate are aligned 45 degrees from the direction of travel.

And yes, I think you have it correct. You lose some from friction but it's close.

Don't judge by the 4 wheel version. The 4 wheel version has 29:1 gearboxes which were great for speed but lousy for precise control because the motors stalled to easily at low speeds.

The new kit has 47:1 gearboxes which are slower but better for precision maneuvering because the motors won't stall so much at low speeds.

I just have visions of making your three-wheeled kit into a photophobia and seeing it make a beeline, right under the couch.

And then, like I did in childhood (only with a 6 foot snake or hamsters) trying to coax the darn thing out to where I could reach it. :)

Well, about 60% which is still resonably fast. The original gear ratio was just too fast for most robotic applications.

Your snake and hamsters sound like my puppy after it has peed on the floor and knows it's in trouble :-)



Wow this is really a neat and amazing robot.  You continue to come up with some really cool stuff. 

Obviously the family is not keeping you miserable enough.  You are married with kids right?  Someone is going to have to talk to them, you are having too much fun...LOL.

A lot of interesting things going on with this, love how it moves with the omni-wheels.  I just bought some Wild Thumper wheels for my current project and am much pleased with the result.  Nice to see there is someone I can ask about I2C when I get around to that.

Wishing you well, keep up the good work.


G'day Kingart3

Don't worry, my family is keeping me miserable, that's my inspiration for better bots

Still learning I2C myself, some new projects I am working on use multiple Arduinos as both masters and slaves.


I've never experimented with omni-wheels, but I look forward to seeing the kit.

I've also not noticed any robot with that type of wheel symmetry. It obviously works, but is it common with omni-wheeled robots or is it the OB1 touch?