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!

 採用された回答

Cam Salzberger
Cam Salzberger 2020 年 10 月 25 日
編集済み: Cam Salzberger 2021 年 5 月 25 日

1 投票

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 件のコメント

Natasha Nakashima
Natasha Nakashima 2020 年 11 月 4 日
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 2021 年 3 月 3 日
Will MATLAB 2021a change that, i.e. use/be compatible with ROS 2 Foxy or newer?
Cam Salzberger
Cam Salzberger 2021 年 3 月 3 日
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 2021 年 4 月 23 日
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 2021 年 7 月 9 日
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 2021 年 7 月 12 日
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 2021 年 7 月 15 日
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 2021 年 7 月 19 日
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
Srushti Prakash Bobade
Srushti Prakash Bobade 2021 年 9 月 21 日
Hi Cam,
How long will take before we get the back-end support for Foxy?
Cam Salzberger
Cam Salzberger 2021 年 9 月 22 日
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 2021 年 11 月 15 日
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 2022 年 1 月 21 日
編集済み: Cam Salzberger 2022 年 1 月 21 日
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 2022 年 2 月 25 日
編集済み: Shipeng Liu 2022 年 2 月 25 日
thanks, this problem blocks me whole day.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeNetwork Connection and Exploration についてさらに検索

製品

リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by