No action when using Simulink ROS Publish block
3 views (last 30 days)
Show older comments
Hi everyone.
This is a strange problem. I'm trying to use simulink Ros block to monitor and actuate a robotic arm. After several attempts, the Subscribe block is finally capable to provide real time measures of the robot sensors (Joint Positions).
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/195358/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/195359/image.jpeg)
What I'm trying to do now is to Publish torque command in order to achieve one task.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/195360/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/195361/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/195362/image.jpeg)
So I input Sine wave signals to all my joints (fixed array [7 x 1]) just to see what happens when I publish it with Ros Publish Block. From time to time I got a Segmentation Fault in my Robot Ros node, but most of the time nothing happens.
I really don't understand what is the problem.
So anybody experience would be welcome.
Sincerely
0 Comments
Accepted Answer
Sebastian Castro
on 3 Oct 2018
In the Simulink-ROS interface, all arrays are treated like C arrays. You need both the content and the length of the array to successfully publish.
In addition to setting the Effort signal, you need to go into the Effort_SL_Info > CurrentLength signal and set its value to the dimension of the vector -- in this case, a uint32 valued 7.
Check this link for more information: https://www.mathworks.com/help/robotics/examples/work-with-ros-messages-in-simulink.html
- Sebastian
More Answers (0)
See Also
Categories
Find more on Network Connection and Exploration in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!