Self-directed independent study.
- Make a ROS Workspace:
mkdir -p ws/src - Go to
srcand clone my repo:cd ws/src/git clone [email protected]:moribots/motion_planning.git - Go back to the workspace root:
cd .. - Initialize
nuturtle.rosinstallto get my rigid2d library and other utilities:wstool init src src/motion_planning/nuturtle.rosinstall - Build the workspace:
catkin_makeand source:source devel/setup.bash
OSQP OSQP-Eigen (C++ wrapper) - Do the manual install.
Notes for OSQP-Eigen:
- Choose
/usr/localincmake -DCMAKE_INSTALL_PREFIX:PATH=<custom-folder> ../ - Do
sudo ln -s /usr/include/eigen3/Eigen /usr/local/include/Eigento make a symbolic link for the Eigen header files so that OSQP-Eigen knows where to find them.
-
The
mappackage:roslaunch map viz_map.launch- Probabilistic Roadmap:
- Tunable-resolution Grid Map
-
The
global_plannerpackage:- A* (green) on PRM:
- Theta* (green) on PRM (A* in red for comparison):
roslaunch global_planner astar.launch
- A* (green) on Grid
- 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
parallelargument.In a separate terminal, do:
rosservice call /set_pose "x: 0.0 y: 0.0 theta: 0.0"To start the node.
- Model Predictive Path Integral Control on a parallel parking task: