Hi, thank you for open-sourcing this fantastic work!I am trying to reproduce the experiments from your paper (Adaptive Complexity MPC) in ROS Noetic. I am running into a specific issue when using the Adaptive complexity configuration.
Environment:
- Robot: Spirit (Gazebo + quad_plan with
ac:=true)
Steps to Reproduce
- Launch Gazebo:
roslaunch quad_utils quad_gazebo.launch world:=flat gui:=false robot_type:=spirit
- Trigger standing mode:
rostopic pub /robot_1/control/mode std_msgs/UInt8 "data: 1" -1
- Launch the planner with adaptive complexity enabled:
roslaunch quad_utils quad_plan.launch reference:=gbpl logging:=true ac:=true
Actual Behavior
The global path is generated and the robot stands, but it does not execute tracking (no stepping / no motion along the plan).
To debug, I record NMPC diagnostics from /robot_1/local_plan. Under Adaptive mode, diagnostics.compute_time (Solve Time) stays NaN in my logs. My understanding is that when the NMPC solve fails, no new local_plan is published, so my logger never receives updated diagnostics and keeps the initial NaN. So I interpret this as the NMPC likely failing to solve repeatedly in Adaptive mode, rather than the solver returning NaN itself.
Questions
- Does a lack of successful
local_plan publications (and thus NaN in our recorded Solve Time) indeed indicate that the IPOPT solver is failing to find a feasible solution for the current horizon when the complexity schedule is used?
- The paper mentions that introducing complexity in the interior of the horizon can degrade OCP initialization. Could this be related to warm-start or initial-guess behavior when the complexity schedule changes every control step (e.g. uninitialized or inconsistent initial guess after
update_structure())?
- Are there recommended parameter changes (e.g. IPOPT tolerances, NMPC weights, or
fixed_complex_head / fixed_complex_tail) to get Adaptive mode working reliably for Spirit with reference:=gbpl?
Thank you for your time!
Hi, thank you for open-sourcing this fantastic work!I am trying to reproduce the experiments from your paper (Adaptive Complexity MPC) in ROS Noetic. I am running into a specific issue when using the Adaptive complexity configuration.
Environment:
ac:=true)Steps to Reproduce
roslaunch quad_utils quad_gazebo.launch world:=flat gui:=false robot_type:=spiritrostopic pub /robot_1/control/mode std_msgs/UInt8 "data: 1" -1roslaunch quad_utils quad_plan.launch reference:=gbpl logging:=true ac:=trueActual Behavior
The global path is generated and the robot stands, but it does not execute tracking (no stepping / no motion along the plan).
To debug, I record NMPC diagnostics from
/robot_1/local_plan.Under Adaptive mode,diagnostics.compute_time(Solve Time) stays NaN in my logs. My understanding is that when the NMPC solve fails, no newlocal_planis published, so my logger never receives updated diagnostics and keeps the initial NaN. So I interpret this as the NMPC likely failing to solve repeatedly in Adaptive mode, rather than the solver returning NaN itself.Questions
local_planpublications (and thus NaN in our recorded Solve Time) indeed indicate that the IPOPT solver is failing to find a feasible solution for the current horizon when the complexity schedule is used?update_structure())?fixed_complex_head/fixed_complex_tail) to get Adaptive mode working reliably for Spirit withreference:=gbpl?Thank you for your time!