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 kinematic model |
|
Unicycle kinematic model |
|
Differential steering kinematic model |
A vehicle can be shown moving, by a marker, a polygon or an image, see Vehicle animation.
Vehicle animation as a Matplotlib marker |
|
Vehicle animation as a polygon |
|
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.
Driving agent for a random path |
|
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.
Map of planar point landmarks |
|
General occupancy grid |
|
Binary occupancy grid |
|
Polygonal obstacle map |
|
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.
Distance transform path planner |
|
D* path planner |
|
Probabilistic roadmap path planner |
|
Rapidly exploring tree planner |
|
Lattice planner |
|
Dubins path planner |
|
Reeds-Shepp path planner |
|
Quintic polynomial path planner |
|
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 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.
Extended Kalman filter for vehicle localization, map estimation and SLAM |
|
Particle filter for vehicle localization |
|
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.