Allegrobotics - Collision Detection
Attention: rover has crashed.


In theory, if the obstacle avoidance is working properly then a rover should never crash. But sometimes obstacle avoidance isn't enough. If your robots aren't occasionally crashing, then you aren't pushing the envelope hard enough - the robots should be moving faster, mowing closer to the obstacles, squeezing between closer obstacles, navigating harder courses, moving closer to the edge, or dealing with a more pathological narrowing road.

Unfortunately crashing is also potentially hazardous. Crashing into an animal is actually quite unlikely. Animals (eg farm stock) know to to cautious of strange moving things, and will generally just keep away. Crashing is mostly harmful to people, the wife's garden bed, and to the rover itself. At best, a crash will stall the motors, and put strain on the motor drive (hardware and software). At worst it could burn out the motors or motor drivers, or break the rover.

The easiest thing to do on a collision is to just shutdown the drive motors on the rover, and raise an alarm. But a recovery strategy might be worth experimenting with too.


In principle, a rover should have collision detection on all sides, but playing the odds on a differential drive rover is possible. Bumpers on the front and front-sides will be sufficient to detect the vast majority of collisions - provided the rover generally moves forward and not backward. This is particularly true of something like a zero-turn lawnmower - it generally moves forward or sideways.

Different approaches

  • Feelers - long strands poking out from the rover which activate if pushed, pulled, twisted or moved to the side.
  • Tripwire - a taut wire around the rover which actives a switch if further tightened.
  • Bumper - a solid bumper and a switch which is activated if the bumper is depressed.

Bumpers design

Having experimented with a number of designs, this is the best I have come up with so far: bumpers on spring-loaded stand-offs from the main frame, with micro-switches which close (actually open **) when the bumper is depressed. This will also trigger when one side of the bumper is pulled (eg if the bumper catches on something).

** The switches are normally closed, and open on collision because a normally closed-loop system is fail-safe. If there is a wiring issue, if the wires break, if the connectors fall out etc, it registers as a fail, and an engineer can investigate.

The standoff can be adjusted in many ways with appropriately placed nylon locking nuts.

Leave a comment

Something I'm doing wrong? Solved my problems? Got a better idea? Got a similar problem?
Think I might have solved your problem? Ninety-nine problems, but your robot ain't one? Say so ..