MATLAB Answers

simuling to ros array publish

5 views (last 30 days)
Emre Gür
Emre Gür on 21 Jul 2020
Commented: Emre Gür on 24 Jul 2020
Hi I have a question. I need to publish this array from simuling to my ros network: "data: [50, -50, 50, -50]"
From terminal I can give this command and it works fine:
rostopic pub -1 /****/joint_motor_controller/command std_msgs/Float64MultiArray "data: [50, -50, 50, -50]"
But I want to achieve this from simulink as well however I couldnt achieve it. I set my publisher like the picture as well and my connection to my ros network is established successfully. I tried summing variables from MUX and BUS but it did not work. Thus how can I send a data array like the one above to my ros network?

Accepted Answer

Cam Salzberger
Cam Salzberger on 21 Jul 2020
Hello Emre,
In order to send a ROS message through the Publish block, you first need to create a Blank Message to have the appropriate bus structure. Then you can assign data to the fields of the message using a Bus Assignment block, and pass the output of that into the Publish block. See here for a basic example.
Now using std_msgs/Float64MultiArray gets a little trickier because it has a variable-sized array as one of its message fields. If you have any trouble using, take a look at this page dedicated to the topic.

More Answers (0)




Community Treasure Hunt

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

Start Hunting!