Main Content

Mobile Robot Algorithm Design

Mapping, path planning, path following, state estimation

These Robotics System Toolbox™ algorithms focus on mobile robotics or ground vehicle applications. These algorithms help you with the entire mobile robotics workflow from mapping to planning and control. You can create maps of environments using occupancy grids, develop path planning algorithms for robots in a given environment, and tune controllers to follow a set of waypoints. Perform state estimation based on lidar sensor data from your robot.


expand all

binaryOccupancyMapCreate occupancy grid with binary values
getOccupancyGet occupancy value of locations
inflateInflate each occupied grid location
moveMove map in world frame
occupancyMatrixConvert occupancy grid to matrix
raycastCompute cell indices along a ray
lidarScanCreate object for storing 2-D lidar scan
plotDisplay laser or lidar scan readings
removeInvalidDataRemove invalid range and angle data
transformScanTransform laser scan based on relative pose
stateEstimatorPFCreate particle filter state estimator
initializeInitialize the state of the particle filter
predictPredict state of robot in next time step
correctAdjust state estimate based on sensor measurement
getStateEstimateExtract best state estimate and covariance from particles
mobileRobotPRMCreate probabilistic roadmap path planner
findpathFind path between start and goal points on roadmap
controllerPurePursuitCreate controller to follow set of waypoints
ackermannKinematicsCar-like steering vehicle model
bicycleKinematicsBicycle vehicle model
differentialDriveKinematicsDifferential-drive vehicle model
unicycleKinematicsUnicycle vehicle model


Ackermann Kinematic ModelCar-like vehicle motion using Ackermann kinematic model
Bicycle Kinematic ModelCompute car-like vehicle motion using bicycle kinematic model
Differential Drive Kinematic ModelCompute vehicle motion using differential drive kinematic model
Unicycle Kinematic ModelCompute vehicle motion using unicycle kinematic model
Pure PursuitLinear and angular velocity control commands


Mapping and Path Planning

Occupancy Grids

Details of occupancy grid functionality and map structure.

Probabilistic Roadmaps (PRM)

How the PRM algorithm works and specific tuning parameters.

Path Planning in Environments of Different Complexity

This example demonstrates how to compute an obstacle-free path between two locations on a given map using the Probabilistic Roadmap (PRM) path planner.

Mapping with Known Poses

This example shows how to create a map of an environment using range sensor readings and robot poses for a differential drive robot.

Plan Path for a Differential Drive Robot in Simulink

This example demonstrates how to execute an obstacle-free path between two locations on a given map in Simulink®.

Motion Modeling

Mobile Robot Kinematics Equations

Learn details about mobile robot kinematics equations including unicycle, bicycle, differential drive, and Ackermann models.

Simulate Different Kinematic Models for Mobile Robots

This example shows how to model different robot kinematics models in an environment and compare them.

Robot Control

Pure Pursuit Controller

Pure Pursuit Controller functionality and algorithm details.

Path Following for a Differential Drive Robot

This example demonstrates how to control a robot to follow a desired path using a Robot Simulator.

Control a Differential Drive Robot in Gazebo with Simulink

This example shows how to control a differential drive robot in Gazebo co-simulation using Simulink.

State Estimation

Particle Filter Parameters

To use the stateEstimatorPF particle filter, you must specify parameters such as the number of particles, the initial particle location, and the state estimation method.

Particle Filter Workflow

A particle filter is a recursive, Bayesian state estimator that uses discrete particles to approximate the posterior distribution of the estimated state.

Track a Car-Like Robot Using Particle Filter

Particle filter is a sampling-based recursive Bayesian estimation algorithm, which is implemented in the stateEstimatorPF object.

Featured Examples