Mobile robots

The Toolbox supports mobile robots that move on a plane: models of how a vehicle moves, drivers that make it move, maps and sensors to perceive its world, and algorithms to plan a path through it, to navigate by reacting to obstacles, and to estimate where the vehicle is. Each is a class, and they are meant to be combined: a vehicle driven by an agent, in a world of landmarks, observed by a sensor, and tracked by a filter.

Vehicles

The motion model of a vehicle says how its configuration changes with its speed and steering. The three models share a superclass, and are described in Motion models.

Bicycle

Bicycle kinematic model

Unicycle

Unicycle kinematic model

DiffSteer

Differential steering kinematic model

A vehicle can be shown moving, by a marker, a polygon or an image, see Vehicle animation.

VehicleMarker

Vehicle animation as a Matplotlib marker

VehiclePolygon

Vehicle animation as a polygon

VehicleIcon

Vehicle animation as an image icon

Drivers

A driver is an agent that makes a vehicle move around, which is useful for testing, see Drivers.

RandomPath

Driving agent for a random path

PurePursuit

Driving agent for pure pursuit

Maps and sensors

A map is a model of the world, and a sensor measures it from the vehicle. Maps are used by the planners and by the estimators, see Localization and mapping.

LandmarkMap

Map of planar point landmarks

OccupancyGrid

General occupancy grid

BinaryOccupancyGrid

Binary occupancy grid

PolygonMap

Polygonal obstacle map

RangeBearingSensor

Range and bearing angle sensor

Path planning

A planner finds a path from a start to a goal in a map, see Path planning for how to choose and use one.

DistanceTransformPlanner

Distance transform path planner

DstarPlanner

D* path planner

PRMPlanner

Probabilistic roadmap path planner

RRTPlanner

Rapidly exploring tree planner

LatticePlanner

Lattice planner

DubinsPlanner

Dubins path planner

ReedsSheppPlanner

Reeds-Shepp path planner

QuinticPolyPlanner

Quintic polynomial path planner

CurvaturePolyPlanner

Continuous curvature path planner

Reactive navigation

Reactive navigation drives the vehicle to a goal without a plan, by reacting to the obstacles it senses, see Reactive navigation.

Bug2

Bug2 reactive navigator

State estimation

An estimator works out where the vehicle is, and where the landmarks are, from the odometry of the vehicle and the measurements of a sensor, see Localization and mapping.

EKF

Extended Kalman filter for vehicle localization, map estimation and SLAM

ParticleFilter

Particle filter for vehicle localization

PoseGraph

Pose graph optimization for SLAM

Everything that has a region of the plane to work in takes the same workspace argument, which is described on The workspace.