Need help with path_optimizer?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

213 Stars 67 Forks MIT License 401 Commits 8 Opened issues


Optimization-based real-time path planning for vehicles.

Services available


Need anything else?

Contributors list

No Data


This ROS package generates feasible paths for non-holonomic vehicles.
2021-01-07 01-19-29屏幕截图.png

Simulation videos

(1) Simulation in dynamic environment

(2) Simulation with complex static obstacles


Run demos

0. Install dependencies and build

1. Demo

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 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
    with other black and white images. Note that the resolution in
    is 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.


2. Benchmark test

This is a computation time test.

rosrun path_optimizer path_optimizer_benchmark


Refer to demo.cpp
The parameters that you can change can be found in


How it works

Refer here.

  1. Take inputs (red dots):
    2020-02-13 16-27-46屏幕截图.png
  2. (Optional) Use B spline curve fitting to make the path continuous and then search around it for a more reasonable reference path (yellow dots). This step can be skipped by changing settings.
    2020-02-13 16-27-56屏幕截图.png
  3. Smooth the reference path using IPOPT (yellow curve).
    2020-02-13 16-28-05屏幕截图.png
  4. Represent the path planning problem as a QP and solve it using OSQP.
    2020-02-13 16-28-19屏幕截图.png

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.