ROS2 with simulink

2 次查看(过去 30 天)
Rahul
Rahul 2023-4-22
评论: Josh Chen 2023-4-26
Suppose I am creating a custom message type from my ROS device and publishing it under one topic(This topic might be a dictionary with different data types). Now on simulink on a different computer, can I subscribe to this topic with this custom message? Does simulink automatically understand the different data types? Or do I have to do something else?
PS. I am using ROS2

回答(1 个)

Josh Chen
Josh Chen 2023-4-24
Hello Rahul,
In order for Simulink to subscribe to the topic and receive custom messages, you need to provide message definition and build the ROS 2 package same as what you need to do with a rclcpp ROS 2 node on a different computer.
To begin with, you can refer to the function ros2genmsg, the example in this page shows you how to use ros2genmsg to build a ROS 2 package containing definition of messages.
In your use case, you can:
  1. copy message (service, action if you have) files to the computer that runs MATLAB/Simulink
  2. navigate to that folder and use ros2genmsg to generate custom messages from ROS 2 definitions
  3. use the following command to check whether they are available:
>> ros2 msg list
4. Create a ROS 2 Subscribe block and select the topic, message type you would like to subscribe
Hope this helps,
Thanks,
Josh
  6 个评论
Rahul
Rahul 2023-4-26
Thank you very much!
If im doing a "Select from network" on Simulink, and I'm still publishing a custom message from my ROS machine. Is it necessary that I define the message type on MATLAB? Or can Simulink "Understand" the custom message type(Since you said that it is a convenience feature) or does this only work for the message types available on Simulinlk.
Josh Chen
Josh Chen 2023-4-26
you still need to define message type on MATLAB. There are some dynamic library files need to be generated with ros2genmsg so that Simulink can refer to.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 ROS Network Access in Simulink 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by