Hello,
I'm trying to implement and run a ROS2 node in Matlab.
Yesterday, when I first used the Matlab ROS Toolbox, everything worked seamlessly.
Today, after a reboot of my device (Windows 10, 21H2), the simple node creation command
node = ros2node("name");
causes the execution to freeze infinitely until I manually kill the process libmwros2server.
Running and connecting any other ROS2 nodes outside of Matlab is working without any trouble.
I don't receive any errors or any feedback at all. I've tried rebooting my device multiple times and reinstalled Matlab with all toolboxes but without success.
I would appreciate any help on this one.

4 comentarios

Hendrik Steidl
Hendrik Steidl el 13 de Abr. de 2022
I further noticed that this only happens for the default domain ID '0'. Migrating all my external nodes to any other domain is a possible workaround for now.
Hi Hendrik,
Please let me know which version of MATLAB that you are using. As per your response, looks like node creation is working on other Domain Ids.
Is the node creation failing outside the MATLAB too on your machine with Domain Id as 0 ?
Can you run the following command in the MATLAB command line and share the generated rossupport.txt file to debug further ?
ros.internal.generateSupportFile
Thanks,
Jagadeesh K
Hendrik Steidl
Hendrik Steidl el 13 de Abr. de 2022
Hi Jagadeesh,
thanks for your reply. You can find the output rossupport.txt in the attachments.
For external nodes (i tried it with both Python and C++ nodes), the Domain ID 0 works.
Kind regards, Hendrik
Kenneth De Leener
Kenneth De Leener el 10 de Jun. de 2022
Hi everyone,
I ran into the same issue, attached rossupport.txt.
Some additional info:
  • If I run a ros2 command like ros2 node list, followed by the creation of a ros2node, the ROS daemon locks up
  • If you first run ros2node, it works fine, after the creation of a second node, it locks up again.
Thank you Hendrik for the work around, this was crucial for our project.

Iniciar sesión para comentar.

 Respuesta aceptada

Jagadeesh Konakalla
Jagadeesh Konakalla el 12 de Oct. de 2022

0 votos

It is observed that with FastDDS as RMW middlwware, the domain ID 0 does not work on few machines. The workaround for now is to use the Domain ID other that 0 or use change the RMW middlwware to other middleware.
Please see the following link on how to switch to different middlwares in MATLAB/Simulink.
Thanks,
Jagadeesh K.

Más respuestas (0)

Productos

Versión

R2022a

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by