Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reconfigure path planner on the fly #267

Open
ebretl opened this issue Sep 26, 2019 · 0 comments · May be fixed by #385
Open

Reconfigure path planner on the fly #267

ebretl opened this issue Sep 26, 2019 · 0 comments · May be fixed by #385
Assignees
Labels
enhancement Good for New Members planning Issues relating to planning, navigation, and/or trajectory optimization rr_common

Comments

@ebretl
Copy link
Contributor

ebretl commented Sep 26, 2019

Goal
We want to be able to change the parameters of the path planner on the fly so that we can tune it's performance faster. The planner has many parameters, from the planning horizon, to the vehicle dynamics, to weights in the cost function, to the optimization hyper-parameters. Probably the easiest and best way to manage this tuning is using dynamic_reconfigure, a ROS package distributed by the ROS developers.

Notes
dynamic_reconfigure consists of several parts. First, a .cfg file specifies the configurable fields, their types, and their valid ranges. Second, a GUI uses these configurations to populate sliders and drop-downs and to save sets of values. Third, the configured node must have a callback function to receive the parameter adjustments and apply them to the algorithm.

Planner parameters that we want to tune

  • Path representation
    • Number of path segments (1-10)
    • Discrete step size for forward path simulation (0.01-1.0)
    • Number of discrete steps per path segment (1-100)
  • Vehicle model
    • Max forward acceleration (0.5-20.0)
    • Max lateral acceleration (0.5-10.0)
    • Steering rate (0.1-30.0)
    • Max steering angle (0.01-1.5)
    • Slip compensation gain (0.8-1.5)
  • Cost function coefficients
    • Speed (0.0-10.0)
    • Obstacle clearance (0.0-10.0)
    • Heading (0.0-10.0)
    • Forward distance (0.0-100.0)
    • Collision (0.0-500.0)
  • Simulated annealing hyper-parameters
    • Start temperature (0.0-1.0)
    • End temperature (0.0-0.1)
    • Iterations (10-5000)
    • Cost scale factor (0.0-1.0)

Things to create

  • dynamic_reconfigure cfg file (rr_common/cfg/planner_configuration.cfg)

Things to edit

  • Add dynamic reconfigure server and callback to rr_common/src/planner/planner_node.cpp
  • Adjust AnnealingPlanner and BicycleModel such that their parameters can be set (perhaps as a bunch of getter/setter methods, or as one function that takes in a struct of params to set)
  • Save a YAML file from rqt_reconfigure
  • Edit rr_iarrc’s test_circuit_sim.launch so that it uses “dynparam load” to set the configuration from a this YAML file
@ebretl ebretl added enhancement Good for New Members rr_common planning Issues relating to planning, navigation, and/or trajectory optimization labels Sep 26, 2019
@Udit8348 Udit8348 self-assigned this Jan 24, 2021
@Udit8348 Udit8348 linked a pull request Mar 29, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Good for New Members planning Issues relating to planning, navigation, and/or trajectory optimization rr_common
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants