I'm developing a small scale cart-pole balancing robot consisting of two wheels driven by a single motor at the base (essentially like a unicycle, but with two wheels to constrain balance to a one dimensional problem).

I'm not sure what qualities to look for in that motor. I think the motor should be able to accelerate quickly in directions opposite of motion as dictated by the control system. However, i'm not sure if this rapid acceleration should correlate with higher torque motors or faster speed motors. I think higher torque motors would be too slow to react to control commands. In contrast, fast speed motors may not be able to overcome the momentum of the cart.

Are there any design equations or other calculations i can make based on my robot's dimensions and weight to determine the right specs needed for my robot's motor? How can i determine the right motor specs for this application without resorting to brute-force trial & error experiments?

  • 1
    $\begingroup$ since rotational inertia is m* r^2, you can solve your speed issue without concern to the motors. just increase the pole's length if your motors can't cope with the speed. :) $\endgroup$ Commented Sep 14, 2015 at 18:40

1 Answer 1


High acceleration from a static (balanced) configuration is only related to high torque. However, the maximum torque you can deliver decreases as function of speed. So, in the end it depends on both. In theory you could use a tiny motor with a huge gear ratio able to deliver a lot of torque, but it speeds up really quickly, meaning that it will fail coping with larger disturbances. It is recommended to run some simulations of desired behaviour. Then calculate the required power by multiplying velocity and torque curves of the actuated joint.

Find a motor (brushed) that is able to deliver this power. Depending on a desire for efficiency or size, select a motor based on its nominal power or all the way up to near-maximum mechanical power respectively, or somewhere in between. I would recommend the former for now, as it's an easier approach. Nominal power is often given, or easily calculated by multiplying the nominal velocity and nominal torque. Maximum mechanical power is higher, and approximated by multiplying the no-load speed and stall torque divided by four.

Lastly, you will need a transmission to obtain desired torque-velocity characteristics. For instance, if your motor is able to deliver 10 mNm at 1000 rpm, whereas you need 2 Nm at 5 rpm, then use a transmission ratio of $R=2000/10=200$.

Update your simulation model by including the motor's reflected inertia $R^2\,I_{rotor}$ and mass to check whether your motor is still capable of delivering sufficient power. If not, then you have to re-iterate motor selection. Also, check your electrical power source and motor controller. Are they capable of delivering the required voltage and current?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.