Stopping DC motors with high gear ratio: Coasting, braking, or else?

Hello,

I want to use four 47:1 Metal Gearmotors (#2274) with a VNH5019 shield (#2507).

In my project, the motors drive a vehicle with ~2 kg of weight, with wheels of ~12 cm diameter.
I occasionally want to use the max. speed this motor/shield combination can give (e.g. ‘setSpeeds(400)’ in the arduino lib).

To stop the vehicle, the shield allows for ‘coasting’ and ‘braking’.
Of course, i can also continuously lower the motor speeds to zero using the microcontroller.

Looking at the high gear ratio (and the tiny gear boxes), i wonder which stopping methods would be feasible, i.e. typically not harming the gears.

I fear neither ‘coasting’ nor ‘braking’ are safe here, but is this true ?
Are there other stopping methods i should consider ?

Any hint/advice appreciated
Peter

Hello, Peter.

Effectively stopping a vehicle with lots of momentum and large wheels without damaging the motor gearboxes is definitely a valid concern, so it is important to find an appropriate amount of deceleration that does not put too much force on the gears. With the VNH5019, there are several ways you can decelerate your motor; from weaker to stronger deceleration, these are:

  • gradually lowering the speed to 0 with setSpeeds()
  • abruptly setting the speed to 0, which allows the motor to coast
  • braking the motor with setBrakes() (which takes numbers between 0 and 400 to control the duty cycle of the braking)
  • trying to drive the motor in the opposite direction with setSpeeds()

You can also combine some of these methods and transition between them gradually; for example, you could ramp down the speed to 0 over one second and then ramp up the brake amount to 400 over an additional one second. I would recommend trying some of the weaker, more gradual deceleration methods first to see if they are adequate.

If you still have concerns about the stress on the gearbox and/or need better stopping performance, you could look into some kind of mechanical braking system although we do not have any specific solutions or recommendations for that.

-Derrill

It is straightforward to work out torque and acceleration, which you need to do in order to make rational choices for your robot.

  1. It should be safe to assume that the gearbox is rated to handle more than the stall torque, which is 115 ounce inches (0.8 N m) for that particular motor/gearbox.

  2. Compare that to the torque required to stop the robot from top speed.

Example:

If you decelerate a 2 kg robot from (say) 1 m/s to 0 m/s in 1 second, the acceleration is 1 m/s^2.

The corresponding force on a wheel is (mass x acceleration) = 2N, which in turn applies a torque to the axle of 2N x (wheel radius in meters) = 0.12 N m, or roughly 1/8 of the stall torque.

If there are two wheels, the force and torque per wheel is half that.

In the above, substitute the assumed speed with the actual maximum speed of your robot, the time required to stop, the number of wheels, and see what you get.

See http://www.societyofrobots.com/mechanicsbasics.shtml (dynamics and energy) for tutorials.