Motion Planning Library to accompany turtlebot3_from_scratch repository. Deployed PRM, Grid Map, A*, Theta*, LPA*, D* Lite*, Potential Field, and MPPI.
Self-directed independent study.
mkdir -p ws/src
src
and clone my repo: cd ws/src/
git clone [email protected]:moribots/motion_planning.git
cd ..
nuturtle.rosinstall
to get my rigid2d library and other utilities: wstool init src src/motion_planning/nuturtle.rosinstall
catkin_make
and source: source devel/setup.bash
OSQP OSQP-Eigen (C++ wrapper) - Do the manual install.
Notes for OSQP-Eigen:
/usr/local
in cmake -DCMAKE_INSTALL_PREFIX:PATH=<custom-folder> ../
sudo ln -s /usr/include/eigen3/Eigen /usr/local/include/Eigen
to make a symbolic link for the Eigen header files so that OSQP-Eigen knows where to find them.The map
package: roslaunch map viz_map.launch
The global_planner
package:
roslaunch global_planner astar.launch
LPA* with Simulated Grid Updates [re-evaluated cells in orange]: roslaunch global_planner incremental.launch lpa:=True
D* Lite on Grid [re-evaluated cells in orange]: roslaunch global_planner incremental.launch
Naive Potential Field (Local Minimum Escape TBD): roslaunch global_planner potential_field.launch
Trajectory Optimization:
Model Predictive Path Integral Control on a parallel parking task: roslaunch control mppi_pentagon.launch parallel:=True
The associated states and controls for the above demo:
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.