MATLAB Answers

simuling to ros float64multiarray publish layout problem

19 ビュー (過去 30 日間)
Emre Gür
Emre Gür 2020 年 8 月 30 日
回答済み: Tohru Kikawada 2021 年 4 月 24 日
Hi,
I am trying to publish 1x4 float64multiarray type message (exact message= [50, -50, 50, -50]) from simulink to ros topic. Although I followed regular procedure to do so; and did not feed in anything for layout at first, I am encountering this error from ros/gazebo simulation:
[ERROR] [1598824459.302691869, 6043.341000000]: Dimension of command (0) does not match number of joints (4)! Not executing!
I managed the array sizes for ROS message as 4 (which it is for [50, -50, 50, -50]). Thus, I think I have problem with layout. How can I resolve this problem? Which layout data shall I feed in for bus assignment?
Further details can be found from picture.
Best regards.
EG
(from terminal simulation runs if I write " rostopic pub -l /***/joint_motor_controller/command std_msgs/Float64MultiArray "data: [50, -50, 50]" ")
  1 件のコメント
Ali Aflakian
Ali Aflakian 2021 年 2 月 22 日
Hi,
I have exactly the same proplem. Could I possible ask, did you managed to solve that and how?
Regards,
Ali

サインインしてコメントする。

回答 (1 件)

Tohru Kikawada
Tohru Kikawada 2021 年 4 月 24 日
In your case, you'll need to use MATLAB Function block for the nested message type, so it's a bit complicated. I've attached an example to assign an array to std_msgs/Float64MultiArray. Pleasse refer Work with Nested Arrays of Messages section in the following documentation for details.

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by