Note: Use the WIKI for latest informationen!


Using odomety you can calculate the robot's speed and the short-term position of the robot. This works by counting the rotations of left and right wheel.

ardumower odometry sensor


ardumower motor

Wiring of motor encoders:



Signal of odometry encoders

ardumower odometry encoder

Do-It-Yourself encoders

l50 odometry sensor   mower photo interrupter right

Ambrogio L50 (left): An encoder wheel of a computer mouse is glued to a slice. The screw of the wheel shaft is unscrewed, and the slice is added. Embedded in two Plexiglas pieces is a photo diode and photo transistor of a light barrier (e.g. LTH 301).

Tianchen TC-G158 (right): A light barrier (e.g. LTH 301) is interrupted by a gear-weheel of the motor shaft.


VCC           pinArduino
+--13 KOhm----+-------Collector  Emitter---GND
+--380 Ohm------------Anode      Kathode---GND

Example plot of odometry sensors

odometry plot

After a time, the odometry's error accumulates, and the course (Degree) and position (x/y) are getting unprecise - the course can be corrected by a compass sensor, the position by GPS.

Fusion of sensor values:
1. Calculation of short-time position by Odometry and Compass
2. Calculation of long-term position via GPS

ardumower odometry

A Kalman filter can be used to fusion all sensor values.


ublox neo 6m      GY-NEO6MV2 schematics

By the help of a GPS receiver (e.g. GY-NEO6MV2, ublox 6m), the long-term position can be calculated. Therefore, the GPS position values are averaged.


GPS TX (3.3V compatible) -- Arduino RX
GPS RX (3.3V compatible) -- Arduino TX
GPS VCC -- Arduino VCC 5V
GPS GND -- Arduino GND

Visualization of GPS data

GPS data (course, speed, position etc.) can be plotted by pfodApp:

gpsplot    gpsplotting     gpstracking


Here's a simulation of localization using odometry sensors.
ardumower sim

Position detection using cross-correlation

ardumower tracking pos sync


video  No video yet  (odometry is currently under development)

Go to