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!

 Réponse acceptée

Cam Salzberger
Cam Salzberger le 25 Oct 2020
Modifié(e) : Cam Salzberger le 25 Mai 2021

1 vote

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 commentaires

Natasha Nakashima
Natasha Nakashima le 4 Nov 2020
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.
N/A
N/A le 3 Mar 2021
Will MATLAB 2021a change that, i.e. use/be compatible with ROS 2 Foxy or newer?
Cam Salzberger
Cam Salzberger le 3 Mar 2021
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.
Cam Salzberger
Cam Salzberger le 23 Avr 2021
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.
Daniel Lofaro
Daniel Lofaro le 9 Juil 2021
Dashing is EOL as of May 2021, can you (Mathworks) please fix the ROS2 toolbox to work with Foxy (which is EOL in 2023).
Cam Salzberger
Cam Salzberger le 12 Juil 2021
We are looking into updating the version of ROS 2 we use on the back-end for a future release of MATLAB.
Harun Teper
Harun Teper le 15 Juil 2021
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?
Cam Salzberger
Cam Salzberger le 19 Juil 2021
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?
Cam Salzberger
Cam Salzberger le 22 Sep 2021
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.
Eduard Rius
Eduard Rius le 15 Nov 2021
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?
Cam Salzberger
Cam Salzberger le 21 Jan 2022
Modifié(e) : Cam Salzberger le 21 Jan 2022
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 le 25 Fév 2022
Modifié(e) : Shipeng Liu le 25 Fév 2022
thanks, this problem blocks me whole day.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by