ROS2 Simulink Toolbox not publishing

Hi,
I am creating a simple example of publish/subscribe using the ROS2 Simulink toolbox to test connecting to a ROS2 Network. I have two computers on the same subnet mask: an Ubuntu 20.04 running ROS2 Foxy and a Windows 10 running the Matlab 2020b ROS Toolbox.
I can publish from my Ubuntu and view the message in Simulink, but when I use Simulink to publish something, I receive nothing on my Ubuntu computer.
I receive no error during the execution. And also, I have configured the ROS_DOMAIN_ID on both machines.
Would anyone have any idea for a possible workaround for this problem?
Thanks!

 Accepted Answer

Cam Salzberger
Cam Salzberger on 25 Oct 2020
Edited: Cam Salzberger on 25 May 2021
Hello Natasha,
Changes to the way communication through ROS 2 is done in Foxy that results in it being incompatible with earlier releases of ROS by default. This occurs in standard ROS 2 installations as well (outside of MATLAB). R2020b is using ROS 2 Dashing and the default DDS implementation of Fast-RTPS, so it is also affected by this issue. Here are some workarounds:
Use Dashing
The easiest solution would be to install Dashing on Ubuntu, if that is possible for your use of ROS 2.
Use Cyclone DDS with Foxy
Another workaround would be to switch the Foxy installation to use the Cyclone DDS implementation that comes packages with the Foxy binary installation. See these instructions on how to install Cyclone DDS, if required, and these instructions on how to specify the RMW implementation to use.
Change Profiles XML for RTI Connext DDS with Foxy
In the Foxy release note, there is a similar incompatibility noted, specific to the RTI Connext back-end. There is a workaround suggested in that note.
-Cam

13 Comments

Hello Cam, thank you very much for your answer! Unfortunatelly, changing to Dashing distro is not an option for your project. But I am going to test the workaround you have mentioned. We already have a solution that is working for us with a real-time UDP connection, but it is much more complex than using only toolbox in Matlab.
Will MATLAB 2021a change that, i.e. use/be compatible with ROS 2 Foxy or newer?
As R2021a pre-release is available, I can comment that it still uses Dashing as the back-end, which maintains its incompatibility with Foxy. I cannot comment on when ROS Toolbox will have a back-end update to a newer version of ROS, but it is on our radar.
I have updated my answer with an additional workaround - using the Cyclone DDS RMW implementation on Foxy. It has worked for bidirectional communication with MATLAB for basic tests, though we haven't fully qualified it, and can't guarantee full functionality.
Dashing is EOL as of May 2021, can you (Mathworks) please fix the ROS2 toolbox to work with Foxy (which is EOL in 2023).
We are looking into updating the version of ROS 2 we use on the back-end for a future release of MATLAB.
I followed the instructions to install Cyclone DDS with Foxy and when following the "Get Started with ROS2" and "Connect to a ROS2 Network" guides I still didn't see the other nodes that were running on my system.
I am using ROS2 Foxy on Ubuntu 20.04 and MATLAB on Ubuntu on the same machine.
Do I need to specify anything else, so that the nodes are discovered?
Also there is a 2021b pre-release. Does that one support the foxy distribution?
Hello Harun,
R2021b is still supporting Dashing. We are working on Foxy back-end support for a future release.
See this answer for additional troubleshooting steps for connectivity.
-Cam
Hi Cam,
How long will take before we get the back-end support for Foxy?
From my post earlier: "I cannot comment on when ROS Toolbox will have a back-end update to a newer version of ROS, but it is on our radar."
Please be patient.
Is there already any expected date to support ROS2 Foxy communication? I've tried these workarounds to connect to publish to some ros2 nodes and is not working. Although, I am able to subscribe to nodes, does it makes sense?
ROS 2 Foxy is supported by R2022a, along with ROS Noetic. If your license enables you to do so, you can download the prerelease and try it out now.
Please note that both ROS and ROS 2 in R2022a will require Python 3.9 for custom message generation, codegen deployment, and ROS Master creation (in ROS 1). See the release notes for details on other changes.
-Cam
Shipeng Liu
Shipeng Liu on 25 Feb 2022
Edited: Shipeng Liu on 25 Feb 2022
thanks, this problem blocks me whole day.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!