Creating an Omni directional robot


I’m a teacher and some of my students are interested in competing in the RoboCup Jr Soccer competition. I’m the only IT teacher at my school, so I am it when it comes to supporting these students. I’m fairly new to Arduino (I have a programming backgound), so I’m on a pretty steep learning curve.

After investigating the competition, we (the students and I) established that the robots need to use omniwheels and vector directional programming (if that’s what it’s called). So, my holiday project is to create one of these robots and work out how to do the programming.

I purchased 4 DC motors from Jaycar and an Adafruit Motorshield V2 from Core Electronics. I’m planning to use a Arduino Uno, with the capacity to upgrade to a Mega later on. The problem I have is that the motors pull too much Amps for the shield.

I have tried researching a solution, but I am concerned that I am missing something.

I am looking for a solution that will let me independenly control 4 motors, whilst using the least amount of pins possible.

Hi Damien,

Not a problem, I’ve built a robot for that competition myself back in the day, so I’m familiar with what your up against. There’s a lot that you’ll need to consider, and a lot of problems to solve, but there’s a few things to consider when designing your drive system.

First of all, I’d recommend a tri-wheel system rather than a quad-wheel system. There’s several reasons, but the 3 most important ones are:

  1. Weight is your enemy, every gram you add decreases from the acceleration of your robot and the overall weight restriction.
  2. Cost, it’s always nice to have extra $ to put into other things.
  3. 4 wheels means that you need to ensure that you’re robot is precisely level, and that the playing mat is 100% flat otherwise one of your wheels won’t be making perfect contact. While you can get around this somewhat, it will never be perfect, which means you can’t take full advantage of the extra power gained from the 4th wheel.

A tri-wheel robot is fairly straightforward to design, and not really any more complex than a 4-wheel design if you approach it correctly. It goes beyond the scope of our forum to provide the full solution, but the hint is to think of each wheel as a vector which is calculated using some simple trig based on the angle of the wheel (equally spaced at 120 degrees).

Anyway, the reason I mentioned a 3-wheel design is because it solves most of the issues you’re having with the motor drivers. It’s hard to recommend a suitable driver without knowing the specs of your motors so if you could tell me the voltage and current requirements for them (nominal and stall), I’ll be able to recommend the correct motor driver.

Awesome, thanks for your insights. The only reason I was tied to four
motors was that I 3D printed a chassis to fit them. You’ve convinced me to
use a three wheel setup, so that is no longer relevant. If you could
recommend motors and motor drivers for the three wheel version, that would
be fantastic.

Not a problem. Calculating the motors that you require is actually a bit of work in itself. For example, the two important mechanical characteristics of a motor is the torque and RPM. For the sake of your project, I won’t work it out for you (indeed it’s again beyond the scope of our forum support), but I’ll leave you with some pointers on where to go.

You need to determine the desired acceleration and max speed of your robot. Your robot’s mass, wheel diameter, and motoro torque and RPM will come into play here. You’ve got a few decisions to make, but there’s a really handy calculator which can help you navigate the world of motor specs and what is going to be best for your application:

If you need a hand working out things like the torque and acceleration, your physics educators will be able to help you out (it’s pretty straight forward). Once you know the ballpark torque and RPM that you’re after, then we can track down the right motor and motor driver for you.

Thanks again.

Looks like I’ve got some reading to do. Talk to you later.

Hi there

Finally got back to this.

After doing some research and calculatiaons I think that I need a motor which provides 300 RPM and 0.39 N*m of torque.

What motor would you recommend, and what drive need to go with it?

Hi, just thought I’d add my bit.

I’ve been part of a club and for a soccer competition we used zumo robots with remote controls. These are probably not as mobile as omni directional wheels, though can be quite fun trying to score. They may also have more features than your looking for and out of your price range.