ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

ROS2 Galactic - Changing RMW to FastRTPS Causes Errors

asked 2022-08-26 19:47:14 -0600

dt gravatar image

updated 2022-08-30 21:01:24 -0600

Our ROS project currently runs without issues while using the CycloneDDS middleware. However, attempting to change to FastRTPS (by setting export RMW_IMPLEMENTATION=rmw_fastrtps_cpp)

When switching the middleware, we're seeing errors like

Transition is not registered., at /tmp/binarydeb/ros-galactic-rcl-lifecycle-3.1.3/src/rcl_lifecycle.c:355

[]: Unable to start transition 1 from current state configuring: Could not publish transition: cannot publish data, at /tmp/binarydeb/ros-galactic-rmw-fastrtps-shared-cpp-5.0.2/src/rmw_publish.cpp:59, at /tmp/binarydeb/ros-galactic-rcl-3.1.3/src/rcl/publisher.c:248, at /tmp/binarydeb/ros-galactic-rcl-lifecycle-3.1.3/src/rcl_lifecycle.c:368

We've tried completely rebuilding the project multiple times (even with RMW_IMPLEMENTATION=rmw_fastrtps_cpp), but can't seem to get anything to work. Even tried within a docker container to see if it was an environment specific thing.

Has anyone run into anything similar? Or, does anyone have any suggestions about where to look?

Edit: Remove a warning message that actually seems to appear when using both Cyclone or the FastRTPS middleware.

Edit: Update 8/30

It does look like our problems center on the lifecycle node transitions. I was able to actually get past most of our issues by switching to SYNCHRONOUS publishing mode (it looks like Nav2 was the culprit for a decent chunk of our tests).

Now, the majority of tests are passing, but currently stuck with this issue.

string capacity not greater than size [ERROR] [1661908949.476389087] []: Unable to start transition 1 from current state configuring: Could not publish transition: cannot publish data, at /tmp/binarydeb/ros-galactic-rmw-fastrtps-shared-cpp-5.0.2/src/rmw_publish.cpp:59, at /tmp/binarydeb/ros-galactic-rcl-3.1.3/src/rcl/publisher.c:248, at /tmp/binarydeb/ros-galactic-rcl-lifecycle-3.1.3/src/rcl_lifecycle.c:368

(code formatting seems to be hit or mis)

The string capacity not greater than size seems to be the root of the issue, but I can't find anything thast indicates what the problem actually is. When running with rmw_fastrtps_dynamic_cpp, I actually get a bit more information and the transition seems to go through because there's no error...

[ERROR] [1661910889.467231733] [rmw_fastrtps_dynamic_cpp]: rosidl_generator_c_String had invalid data

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-08-30 16:05:24 -0600

johnjamesmiller gravatar image

We had trouble with fastrtps reliably starting up nav2 on galactic. Hypothesis was that too much discovery traffic on startup was keeping lifecylce states from getting through. Didnt go far enough to prove it for sure because problem went away with cyclonedds.

If you have to stay on fastrtps maybe try fastrtps discovery server and see if your problems go away? https://docs.ros.org/en/galactic/Tuto...

edit flag offensive delete link more

Comments

Thanks for the reply. I updated the post with a little more info. Unfortunately, changing the discovery server does not seem to help, but I do think the lifecycle messages are ultimately the problem at hand. Just not sure how to get more info out of this or determine a solution.

dt gravatar image dt  ( 2022-08-30 21:00:01 -0600 )edit

Question Tools

3 followers

Stats

Asked: 2022-08-26 19:47:14 -0600

Seen: 698 times

Last updated: Aug 30 '22