/motion_planning

Motion Planning Library to accompany turtlebot3_from_scratch repository. Deployed PRM, Grid Map, A*, Theta*, LPA*, D* Lite*, Potential Field, and MPPI.

Primary LanguageC++

Motion Planning Library with ROS

Self-directed independent study.

Installation Guide:

  • git clone git@github.com:moribots/motion_planning.git
  • wstool init (uses the nuturtle.rosinstall file to get my rigid2d library and other utilities)
  • The map package: roslaunch map viz_map.launch

    • Probabilistic Roadmap:
    PRM
    • Tunable-resolution Grid Map
    GRID
  • The global_planner package:

    • A* (green) on PRM:
    ASTAR
    • Theta* (green) on PRM (A* in red for comparison): roslaunch global_planner astar.launch
    ASTAR
    • A* (green) on Grid
    ASTARG
    • LPA* with Simulated Grid Updates [re-evaluated cells in orange]: roslaunch global_planner incremental.launch lpa:=True
    LPASTAR
    • D* Lite on Grid [re-evaluated cells in orange]: roslaunch global_planner incremental.launch
    DSL
    • Naive Potential Field (Local Minimum Escape TBD): roslaunch global_planner potential_field.launch
    PFN
  • Trajectory Optimization:

    • Model Predictive Path Integral Control on a parallel parking task: roslaunch control mppi_pentagon.launch parallel:=True
    PFN
    • The associated states and controls for the above demo:
    PFN

    NOTE: To launch waypoint following method, simply don't include the parallel argument.

    In a separate terminal, do:

    rosservice call /set_pose "x: 0.0 y: 0.0 theta: 0.0"

    To start the node.