Skip to content

MoveItPy does not support use_sim_time:=True #2220

@henningkayser

Description

@henningkayser

Description

When working around #2219 by merging use_sim_time:=True into the MoveIt config dictionary, I'm seeing mixed results:

  • use_sim_time is actually set to True 🎉
  • The moveit_py node is crashing due to an rclcpp::exceptions::InvalidParameterValueException

In particular it prints:

[motion_planning_python_api_tutorial.py-2] terminate called after throwing an instance of 'rclcpp::exceptions::InvalidParameterValueException'
[motion_planning_python_api_tutorial.py-2]   what():  parameter 'qos_overrides./clock.subscription.durability' could not be set:

A quick search brought me to this issue comment, pointing out that use_sim_time:=True will enable qos_override callbacks on the /clock topic. Question is, why does everything work with the C++ versions MoveGroup/MoveItCpp, and why do we run into this exception with moveit_py?
I have briefly skimmed the node initialization and didn't find any obvious issues.

For context, I've been working on a MoveIt+Gazebo setup and wanted to add a MoveItPy example.
Here are instructions for running different launch files in a docker compose container. You'll find that all service targets besides python_gazebo work, python_gazebo fails for the described reason.

Your environment

  • ROS Distro: Humble
  • OS Version: Ubuntu 22.04
  • jammy-humble binaries (main branch)

Steps to reproduce

Try passing use_sim_time:=True like this.

Expected behaviour

The launch file should work and allow using sim time with moveit_py.

Actual behaviour

The Exception is thrown, node dies.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions