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
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 Exchange에서 Get Started with ROS Toolbox에 대해 자세히 알아보기

제품

릴리스

R2020b

질문:

2020년 10월 7일

편집:

2022년 2월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by