path_optimizer_2
path_optimizer_2 copied to clipboard
Optimization-based real-time path planning for vehicles.
path_optimizer_2
This is a newer version of my path planning ROS package for autonomous driving vehicles 👉path_optimizer.

Improvements
- Higher success rate in dense/complicated environments.
- Simpler problem formulation.
- Candidate result when no collision-free solution exists.
Simulation
(1) Simulation in dynamic environment
(2) Simulation with complex static obstacles
Dependencies
- ROS Kinetic (Ubuntu 16.04) or Melodic (Ubuntu 18.04);
- Other dependencies: glog, gflags, osqp-eigen, grid_map
- Put these ROS packages in your ros workspace: ros_viz_tools, tinyspline_ros.
These dependencies (except for ROS) can be installed by running script/install_deps.sh.
Usage
A png image is loaded as the grid map. You can click to specify the global reference path and the start/goal state of the vehicle.
roslaunch path_optimizer_2 demo.launch
(1) Pick reference points using "Publish Point" tool in RViz.
- Pick at least six points.
- There are no hard and fast rules about the spacing of the points.
- If you want to abandon the chosen points, just double click anywhere when using the "Publish Point" tool.
- You can replace
gridmap.pngwith other black and white images. Note that the resolution indemo.cppis set to 0.2m, whick means that the length of one pixel is 0.2m on the map. - In application, the reference path is given by a global path or by a search algorithm like A*.

(2) Pick start state using "2D Pose Estimate" tool and pick goal state using "2D Nav Goal" tool.
- Currently, it's not strictly required to reach the goal state. But this can be changed.
- The start state must be ahead of the first reference point.
