You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a working list of planners / controllers that I've been compiling and I wanted to share them here for potential ideas if anyone's interested in developing / adapting one in particular. Feel free to ping me about this and I'll help however I can
Planners
A* - holonomic robots or robots small relative to environment
Dij. - holonomic robots or robots small relative to environment
OMPL - non-holonomic and non-circular footprint robots, potential formulation to include dynamic obstacles [IN PROGRESS] state lattice and hybrid-A* supersedes
GPS / cartesian route following - taking in a list of semantic GPS waypoints and issuing a path based on it to follow exactly. GPS waypoint navigation demo #1631 (comment). Or more generally a teach and repeat for non-GPS too. Teach via recording while moving or manual annotation.
Hybrid-A* - non-holonomic and non-circular robots with smoothed paths
Vornoi / potential field planner - for a robot to stay far, far away from things as its primary goal NavFn, Theta*, and other planners can be tuned to highly penalize costed regions. While these are easy to implement, the quality is low so its not a good addition for a modern stack. Very 1990s.
Theta* - doing straight line planning based on LoS
State Lattice - non-holonomic and non-circular robots, useful in analog situations as Hybrid-A* but for arbitrary motion models (omni, diff, non-cars, forklifts) Hybrid-A* meets this need, might be adding state lattice template node to smac
non-zero via-point planning (e.g. calling a continuous, kinematically feasible planner from A->1->2->3->…->B and then adding them all to a single path) -- route server Route Server anologous to Planner Server #2229 ? Or new action interface in planner server to have multiple via-points to plan (!)
Controllers
DWA - compute trajectories based on weighted heuristics
TEB - compute trajectories based on optimal bands
MPPI / MPC /Nonlinear MPC- compute trajectories by model simulation supporting high speeds. Exact path follower / dynamic obstacles in formulation in progress
LQR/iLQR/CiLQR - "MPC-lite" is the easiest way to describe it supporting high speeds MPPI supersedes
Pure Pursuit - following a carrot
Recoveries
Spin - spin in place
Backup - back up from pose
Alerts - sound, lights, etc to alert obstacle to move too usecase specific
Wait - wait out some duration or until event occurs
Push - if you know its safe, push a thing out of the way too usecase specific
Call for help - Slack, msgs, email, operations center request for assistance
Clear - clear state, plans, and costmaps
"Get out of here" - find some permissible path using a dynamically feasible trajectory to just get out of this area some fixed distance, if any way of motion is possible too usecase specific
feel free to comment to add more and how they're useful
Hi all,
I have a working list of planners / controllers that I've been compiling and I wanted to share them here for potential ideas if anyone's interested in developing / adapting one in particular. Feel free to ping me about this and I'll help however I can
Planners
OMPL - non-holonomic and non-circular footprint robots, potential formulation to include dynamic obstacles [IN PROGRESS]state lattice and hybrid-A* supersedesVornoi / potential field planner - for a robot to stay far, far away from things as its primary goalNavFn, Theta*, and other planners can be tuned to highly penalize costed regions. While these are easy to implement, the quality is low so its not a good addition for a modern stack. Very 1990s.Controllers
LQR/iLQR/CiLQR - "MPC-lite" is the easiest way to describe it supporting high speedsMPPI supersedesRecoveries
Alerts - sound, lights, etc to alert obstacle to movetoo usecase specificPush - if you know its safe, push a thing out of the waytoo usecase specific"Get out of here" - find some permissible path using a dynamically feasible trajectory to just get out of this area some fixed distance, if any way of motion is possibletoo usecase specificfeel free to comment to add more and how they're useful