[ROS2] Use a different version of Fast-RTPS
Currently the Fast-RTPS version used for eloquent is v1.9.3 (ros-eloquent-fastrtps 1.9.3-2bionic.20200218.174738), but this version has a bug while running inside a docker container (see https://github.com/eProsima/Fast-RTPS...). With the new version v1.10.0 I do not have the same issue.
I'm trying to run ROS2 nodes inside docker containers and subscribe/publish to other nodes in other docker containers (not necessarily on the same bridge network). With the current version of Fast-RTPS the subscription works once (or sometimes a few times) but fails in later tries. Therefor we need this new version 1.10. Should I ask to update the version in ROS2 (https://github.com/ros2-gbp/fastrtps-...) or how can I build and use a different version?
Reproduce the problem with:
docker run -it --rm osrf/ros:eloquent-desktop ros2 run demo_nodes_cpp talker
docker run -it --rm osrf/ros:eloquent-desktop ros2 run demo_nodes_cpp listener
Restarting the talker container (once, but in some cases it works the first restart) makes the listener not receive the messages.
- Fast-RTPS version: v1.9.3-2
- ROS2 version: Eloquent
- OS: Ubuntu 18.04 LTS
As you can see in ros2/ros2#888,
1.10
has already been integrated. Foxy seems to be using2.x
even. Eloquent however uses1.9.3
(from here).There just hasn't been a release of ROS 2 which uses it.
You'll probably have to build ROS2 from source (or at least the parts which directly touch FastRTPS) if you want/need to use it right now.
I tried compiling the Fast-RTPS packages from source but this introduced some compile errors which are fixed in the master of ROS2 but we are not ready yet to move to Foxy. So thanks for the comment and we'll wait for the official Foxy release.