In this installment of the Build a REAL Robot series, I will discuss selecting DC gearmotors, a critical component for your robot design. Even if you are not building the same robot that I am creating you should find some useful information here.
I will also show you what motors I ended up using to design DB1, and how I mounted them onto the chassis.
There are a wide variety of motors that are available for the hobbyist, but not all of them would be suitable for moving a robot around. A few possible selections would be:
- Brushed DC Motors – These are inexpensive and easy to power and control, however, they spin much too fast. You could use gears to reduce the torque and increase the RPM, essentially building your own DC gearmotor.
- Brushless Motors – These are pretty expensive but they do perform well. Like the Brushed DC motor you would need to gear them down to reduce RPM and increase torque. They also require special circuitry to drive them. One advantage of these motors is their long life, they are also very quiet.
- Stepper Motors – You can get very powerful steppers that would certainly be able to drive a robot, and since you can control the shaft rotation is small increments they would be great for positioning the robot exactly where you want it to be. The ride might be a bit rough as they don’t spin in a linear fashion, but using microsteps or gearing them down would resolve that. The main drawback would be the cost of these motors.
- Continuous Rotation Servo Motors – You could build a small robot with these but they would not be very good for a large one. Essentially these are geared DC motors with a built-in servomechanism. The servomechanism would make it easy to position the robot.
- DC Gearmotors – DC motors with internal gearing. Some of them have Rotary Encoders to measure the position of the motor shaft. These are the types of motors I have chosen.
Another reason to choose a DC gear motor is their relatively low cost, giving them a good cost-to-performance ratio. They are widely available from many distributors.
When you are searching for DC Gearmotors you will probably run across different gearing arrangements. The most common ones are Planetary Gears and Spur Gears.
Planetary gears offer better performance and reduced noise, this extra performance comes at a higher price however.
I chose to use Spur gearmotors. They are still very efficient and powerful and their lower cost appealed to me. I do admit they are a bit noisy but I wasn’t designing DB1 to sneak up on anyone so I’ll accept that!
You could substitute Planetary gearmotors in this design if you wish.
Key Motor Specifications
When you go to select a DC gearmotor you may find yourself overwhelmed by the number of specifications you need to wade through. Comparing motors is often made more difficult as not every manufacturer uses the same units for each parameter.
You can’t just grab any motor, choosing the wrong one can be an expensive mistake that will halt your robot project before you even get started.
Here are a few specifications you need to take into consideration.
The Nominal Voltage is the voltage at which the motor is operating at peak efficiency.
This should not be confused with Operating Voltage, which is generally specified as a range from the minimum voltage required to turn the motor shaft to the maximum voltage that the motor can handle safely.
The ideal Nominal Voltage is basically determined by the power supply (or battery) that you plan on using to power the motors. Common values are 6, 12 and 24 volts.
All of the specifications for the DC gearmotor will be measured when it is driven by the nominal voltage
No Load RPM
The No Load RPM is the revolutions per second of the motor shaft when there is nothing attached to it. This is sometimes referred to as the motors “angular velocity”.
With a gearmotor this is the RPM of the output shaft, not the RPM of the DC motor powering the gears.
Note the term “No load”, when you connect a gear, a wheel or other devices to the shaft the RPM will decrease.
This is an important specification as it determines the maximum speed that your robot can travel. If you are using gears or pulleys in your design you will have to factor these into the equation for determining the No Load RPM.
Stall Torque & Stall Current
Before you can understand Stall Torque you need to understand what torque is. This is an extremely important specification as it essentially determines how powerful the motor is.
Essentially torque is a measurement of force on an object that causes it to rotate. Think of when you go to open a door, you need to apply force to the door to open it, or in other words, rotate it on its hinges.
Torque can also be described as a weight attached to the end of a lever, which has the other end attached to a (motor) shaft. The further away from the motor shaft you place the weight, the more torque is required to hold it there. Similarly, when you increase the weight you require more torque to hold it.
The official SI unit for measuring torque is the Newton Metre, or NM. However, when you go to choose a motor you are more likely to see it measured in one of the two following units:
- kgf-cm – Kilogram Force-Centimetres
- ozf-in – Ounce Force-Inches
Often when you see the specifications they are written (incorrectly) as “kg-cm” or “oz-in”, their meanings are identical.
The Stall Torque is the torque at which the motor shaft can no longer turn. You should never actually allow your motor to come anywhere near this point, in fact you should design your robot to never require more than 30% of the Stall Torque.
The Stall Current is the amount of current that the motor will require at the Stall Torque point.
You don’t need to design a motor driver that can handle the Stall Current, in fact there are very good reasons not to do this. If the driver is capable of supplying enough current to power the motor at the Stall Current point you run the risk of damaging the motor if the shaft is accidentally held in place. If it can’t supply enough current then you will never achieve the stall torque or current.
Of course a fuse is another way of ensuring that you never achieve the stall current. We will discuss this in more detail when it’s time to hook up our motors.
Motor Size and Motor Shaft Specifications
The physical size of the motor is naturally a specification you’ll need to consider. After all, if it’s too big you won’t be able to use it!
Another very important specification is the location of the mounting holes, their spacing and the thread size they use. You’ll find a variety of SAE and Metric measurements used here.
The diameter and length of the motor shaft are important parameters as well. When you are coupling your motor to wheels, hubs or gears you’ll need to take the shaft diameter in mind. Once again these specifications can be listed in either metric or SAE measurements.
Finally, you should note that spur gearmotors, like the ones I’m using in DB1, have an offset shaft. You’ll need to take that into consideration when mounting your motors.
Gearmotors (obviously) use gears to reduce the motor speed. Doing this accomplishes two things.
- The output RPM is reduced to a manageable level.
- The torque is increased.
The relationship between the speed reduction and torque is inverse, so gearing the motor to half of its speed will double the torque.
A good example of this effect is to look at those tiny yellow motors used in “robot car bases”, the type I’ve used in many project before. Despite their size they produce an impressive amount of torque. This is because they are geared down.
The Gear Down is the ratio of the gearing. The motors I’m using are geared down to 53, so the output shaft will spin at 1/53 of the actual motor speed.
One reason you might need to know the Gear Down is when you are using a rotary encoder to measure motor revolutions, as in many designs these encoders are coupled to the internal motor and not the output shaft. This is not universally true however.
I just mentioned Rotary Encoders, these are devices that can measure the angular position of the motor.
A Rotary Encoder is essential to the design of DB1, as it will allow us to determine how fast the robot is travelling and how much distance it has moved. We can use this as part of a feedback loop to position our robot precisely.
You can buy motors with rotary encoders already built-in, this is what I did. You can also purchase these devices separately, if you sdo you should make sure to buy ones that are compatible with your motor.
Motor Selection Tool
All of the above may seem like a lot to consider when choosing a motor, and it is. It also doesn’t help if you don’t know the answer to some of the basic questions, such as:
- How much torque will I need for my motors?
- What RPM do I need?
Answering these questions can require some pretty complex calculations. And, once you find the answer, you may need to convert the units to compare different motors.
Fortunately, there is an easier way.
The RobotShop Community Blog has an excellent tool specifically made for selecting robot motors. You will find their Drive Motor Sizing Tool to be incredibly useful.
One of the great things about this tool is that you don’t need to know much more than the weight you want your motors to carry (the robot itself and any payload), the number of powered wheels and the size of those wheels.
The tool will also allow you to input and display parameters in several different units, so you can compare results for motors that use different units for their specifications.
Motors for DB1
Now that we have discussed motor specifications I’ll show you the motors that I choose for the DB1 robot.
I’m using two motors in my design and, with the assistance of the RobotShop Drive Motor Sizing Tool, I determined the desired RPM and minimum torque. I then chose motors that came closest to the RPM – a little higher is better than a little lower. They also exceeded the torque requirements, while not consuming a huge amount of current.
Motors used in DB1
I used a goBILDA 5201 Series Spur Gearmotor with a 53:1 gear down ratio. This model has a no load RPM of 105 RPM, which is quite fast enough for my application.
The Actobotics Aluminum Motor Mount E was what I used to attach the motor to the chassis.
The motor has a stall torque of 720 ozf-in and a stall current of 9.2 amperes. The no load current is 250 mA.
On my wheel I used a hub with a ¼” D-shaft bore. I’ll go into more details about mounting the wheels in the next installment of this series when I discuss wheels in depth.
This completes part three of the series on building a real robot. I hope it inspires you to build your own robot, be it an exact replica of DB1 or a completely different and unique design.
If you haven’t read part 1 or part 2 yet you can go back and catch up. Next time I’ll be discussing wheels, not exactly the most thrilling subject but an essential one for making a good reliable robot chassis. After that, we will start adding some electronics to make it all move.