Probabilistic Models for Robot Motion

Initializing live version
Download to Desktop

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram Player or other Wolfram Language products.

A mobile robot, repeatedly commanded to move for one second with linear velocity and angular velocity , will travel approximately the same distance each time. However, small random errors due to wheel slip, terrain interactions, and unmodeled dynamics mean that the robot's expected final position is better described as a probability density function (PDF). This Demonstration implements four probabilistic motion models [1], allowing you to modify noise parameters and see their effect. The initial pose is shown in green and the final pose in red; the position and the heading of the robot are indicated by a circle and a line, respectively.

Contributed by: Aaron T. Becker and Renuka Pakeetharan (January 2016)
Open content licensed under CC BY-NC-SA



This Demonstration implements two motion models for a 2D nonholonomic robot with two inputs: linear velocity and angular velocity . These versatile models can be used to describe the movement of a differential-drive robot, a skid-steer tank robot, a kinematic unicycle, or an Ackerman car. The first model is a velocity model, which takes as inputs the commanded linear and angular velocities. This assumes the robot moves with constant linear and angular velocities, so that the robot path is an arc of a circle with radius .

The nominal, noise-free motion model is given by



and .

The probabilistic velocity motion model injects noise into the control inputs and as well as randomness in the final rotation. The noise amplitude is determined by parameters through .

In practice, robots often have odometry information from wheel encoders that is more accurate than the commanded motor velocities. This odometric model approximates motion by a rotation in place, then a translation, followed by another rotation in place. The probabilistic odometric motion model injects noise into each of these three stages. In this case, the noise is governed by parameters through .

Models were derived from [1], with small adaptations to fix issues with the robot's orientation wrapping at .


[1] S. Thrun, W. Burgard, and D. Fox, Probabilistic Robotics, Cambridge: MIT Press, 2005.

Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.