Rover gets wheel encoder support

ArduPilot Rover has been undergoing some rapid improvements lately. The latest step forward is support for AB Wheel Encoders. The wheel encoders “A” and “B” signal wires can be connected to the AUX OUT pins of a Cube (or Pixhawk) flight controller and then the rotation of the wheel can be observed. Paul Riseborough has enhanced the EKF so that it can consume this data much like it does Visual Odometry data meaning we have yet another way to do autonomous missions without a GPS.

Wheel encoders are quite inexpensive and are often built right into brushed motors (which we have also added support for recently). Here is one example motor from

The setup details are on the Rover wiki here.

The wheel encoder support along with a number of other enhancements will be released with Rover 3.2. We haven’t set a date for the start of beta testing but I would expect that within a month or so.


Great !!
Thanks to You and Pierre @khancyr for this great upgrade of the Rover project.
This wiki is also very helpfull to get us started with wheel encoder odometry.

ROVER is like ‘‘going back to the root’’ in order to master and implement advanced autonomous robotic systems.
State of the art Odometry, Localisation and Mapping is much easier and cheaper to implement on a ground based vehicle. Thanks to ROS , it is possible to build a fully autonomous, self-guided vehicle using SLAM on a budget. Mastering these advanced concepts on a platform that can ‘‘stop and wait’’ for hours , while we proceed to modification and optimisation is a feature that really gives a clear advantage of a ground based vehicle.

The other advantage, on the short term, is the fact that weight and power is less limitative than on a flying vehicle, allowing to have bigger-sized onboard Companion Computers , like MINI PC or Laptops, easing the entry level to a broader range of experimenters.

Cant wait to try it on my new DIY Diff-Drive Rover :wink:


Ahaha thanks ! But encoder work is all Randy and Paul ! ^^

Yes and @priseborough Paul too :wink:

Pierre, looking at the video we can see the encoder error is causing a drift in the return to home position.
This is a normal behavior that has multiple causes like; wheel size difference, wheel alignment, slipperage and so on.
Question: Are you planning on a calibration method either manual or automatic (using GPS) in order to reduce this error ?

1 Like

excellent work! Are the encoder’s given a lower weighting than something like visual odometry in the EKF? I imagine in most cases visual odometry/optical flow type setups would give a better idea of movement since slippage is irrelevant, but over a shiny/featureless surface that can’t return any/useful information the encoders would come to the fore.

Hello Randy.
It is amazing to se this project. I am very exited to make one like this. could you tell us. which kind of motors driver are you using for the motors?

1 Like