I am trying to use STOMP Planner by following the documentation. As per the documentation, I installed the STOMP from the source in ROS Melodic (Ubuntu 18.04.6 LTS). Unfortunately, the command roslaunch panda_moveit_config demo_stomp.launch
is throwing following error:
[ERROR] [1684923835.899294129]: The 'stomp' configuration parameter was not found
terminate called after throwing an instance of 'std::runtime_error'
what(): Unable to initialize planning plugin
[move_group-5] process has died [pid 22522, exit code -6, cmd /home/ravi/ws_moveit/devel/lib/moveit_ros_move_group/move_group --debug __name:=move_group __log:=/home/ravi/.ros/log/12f2b1ec-fa1d-11ed-89a8-181deaf411ae/move_group-5.log].
log file: /home/ravi/.ros/log/12f2b1ec-fa1d-11ed-89a8-181deaf411ae/move_group-5*.log
Please note that I already have panda_moveit_config
, as mentioned here. Furthermore, I can run the demo.launch
based on the documentation, as shown below:
roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
I assume the STOMP error is due to an installation/configuration issue. Surprisingly I have not touched anything. Moreover, the error appears even when MoveIt is installed from the source.
Below is a screenshot of RViz:
BTW, I can see stomp
, stomp_moveit
, and stomp_plugins
packages in my workspace as shown below:
$ catkin build
...
[build] Found 52 packages in 0.0 seconds.
[build] Package table is up to date.
...
Starting >>> moveit_core
Finished <<< moveit_resources [ 0.1 seconds ]
Finished <<< ros_industrial_cmake_boilerplate [ 0.1 seconds ]
Starting >>> stomp
Finished <<< stomp [ 0.4 seconds ]
Finished <<< moveit_core [ 0.7 seconds ]
Starting >>> chomp_motion_planner
Starting >>> moveit_controller_manager_example
Starting >>> moveit_visual_tools
Starting >>> stomp_moveit
Finished <<< moveit_kinematics [ 0.4 seconds ]
Finished <<< moveit_ros_robot_interaction [ 0.3 seconds ]
Starting >>> moveit_ros_benchmarks
Finished <<< stomp_moveit [ 0.3 seconds ]
Starting >>> stomp_plugins
Finished <<< moveit_ros_perception [ 0.8 seconds ]
Finished <<< stomp_plugins [ 0.3 seconds ]
Finished <<< moveit_ros_move_group [ 0.6 seconds ]
Finished <<< moveit [ 0.1 seconds ]
...
[build] Summary: All 52 packages succeeded!
Any workaround to fix this issue, please?
Update
I am debugging the issue. So I would like to share the progress below:
- The error is coming from stomp_planner.cpp#L756
- I added the following snippet just above it to see the values:
It printed the following:std::string param_value; nh.getParam(param, param_value); ROS_INFO_STREAM("The '" << param << "' parameter is: " << param_value << " and namespace: "<< nh.getNamespace());
[ INFO] [1685011022.181549319]: The 'stomp' parameter is: and namespace: /move_group/planning_pipelines/stomp
- Suprisingly, I can see the param via
rosparam
$ rosparam list | grep stomp /move_group/planning_pipelines/stomp/jiggle_fraction /move_group/planning_pipelines/stomp/manipulator/group_name /move_group/planning_pipelines/stomp/manipulator/optimization/control_cost_weight /move_group/planning_pipelines/stomp/manipulator/optimization/initialization_method /move_group/planning_pipelines/stomp/manipulator/optimization/max_rollouts /move_group/planning_pipelines/stomp/manipulator/optimization/num_iterations /move_group/planning_pipelines/stomp/manipulator/optimization/num_iterations_after_valid /move_group/planning_pipelines/stomp/manipulator/optimization/num_rollouts /move_group/planning_pipelines/stomp/manipulator/optimization/num_timesteps /move_group/planning_pipelines/stomp/manipulator/task/cost_functions /move_group/planning_pipelines/stomp/manipulator/task/noise_generator /move_group/planning_pipelines/stomp/manipulator/task/noisy_filters /move_group/planning_pipelines/stomp/manipulator/task/update_filters /move_group/planning_pipelines/stomp/panda_arm/group_name /move_group/planning_pipelines/stomp/panda_arm/optimization/control_cost_weight /move_group/planning_pipelines/stomp/panda_arm/optimization/initialization_method /move_group/planning_pipelines/stomp/panda_arm/optimization/max_rollouts /move_group/planning_pipelines/stomp/panda_arm/optimization/num_iterations /move_group/planning_pipelines/stomp/panda_arm/optimization/num_iterations_after_valid /move_group/planning_pipelines/stomp/panda_arm/optimization/num_rollouts /move_group/planning_pipelines/stomp/panda_arm/optimization/num_timesteps /move_group/planning_pipelines/stomp/panda_arm/task/cost_functions /move_group/planning_pipelines/stomp/panda_arm/task/noise_generator /move_group/planning_pipelines/stomp/panda_arm/task/noisy_filters /move_group/planning_pipelines/stomp/panda_arm/task/update_filters /move_group/planning_pipelines/stomp/planning_plugin /move_group/planning_pipelines/stomp/request_adapters /move_group/planning_pipelines/stomp/start_state_max_bounds_error
- Moreover, this param is not empty and contains long values as shown below
$ rosparam get /move_group/planning_pipelines/stomp | wc -l 115
- The similar question has was asked here but no response.