Main Content

Localization Algorithms

Particle filters, scan matching, Monte Carlo localization, pose graphs, odometry

Localization algorithms, like Monte Carlo localization and scan matching, estimate your pose in a known map using range sensor or lidar readings. Pose graphs track your estimated poses and can be optimized based on edge constraints and loop closures. For simultaneous localization and mapping, see SLAM.


expand all

stateEstimatorPFCreate particle filter state estimator
getStateEstimateExtract best state estimate and covariance from particles
predictPredict state of robot in next time step
correctAdjust state estimate based on sensor measurement
matchScansEstimate pose between two laser scans
matchScansGridEstimate pose between two lidar scans using grid-based search
matchScansLineEstimate pose between two laser scans using line features
transformScanTransform laser scan based on relative pose
lidarScanCreate object for storing 2-D lidar scan
monteCarloLocalizationLocalize robot using range sensor data and map
lidarScanCreate object for storing 2-D lidar scan
getParticlesGet particles from localization algorithm
odometryMotionModelCreate an odometry motion model
likelihoodFieldSensorModelCreate a likelihood field range sensor model
resamplingPolicyPFCreate resampling policy object with resampling settings
poseGraph Create 2-D pose graph
poseGraph3D Create 3-D pose graph
poseplot3-D pose plot
addPointLandmarkAdd landmark point node to pose graph
addRelativePoseAdd relative pose to pose graph
edgeNodePairsEdge node pairs in pose graph
edgeConstraintsEdge constraints in pose graph
edgeResidualErrorsCompute pose graph edge residual errors
findEdgeIDFind edge ID of edge
nodeEstimatesPoses of nodes in pose graph
optimizePoseGraphOptimize nodes in pose graph
removeEdgesRemove loop closure edges from graph
showPlot pose graph
trimLoopClosuresOptimize pose graph and remove bad loop closures
wheelEncoderOdometryAckermannCompute Ackermann vehicle odometry using wheel encoder ticks and steering angle
wheelEncoderOdometryBicycleCompute bicycle odometry using wheel encoder ticks and steering angle
wheelEncoderOdometryDifferentialDriveCompute differential-drive vehicle odometry using wheel encoder ticks
wheelEncoderOdometryUnicycleCompute unicycle odometry using wheel encoder ticks and angular velocity


Compose a Series of Laser Scans with Pose Changes

Use the matchScans function to compute the pose difference between a series of laser scans.

Minimize Search Range in Grid-based Lidar Scan Matching Using IMU

This example shows how to use an inertial measurement unit (IMU) to minimize the search range of the rotation angle for scan matching algorithms.

Monte Carlo Localization Algorithm

The Monte Carlo Localization (MCL) algorithm is used to estimate the position and orientation of a robot.

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.

Particle Filter Parameters

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

Featured Examples