MATLAB: Setup of an /trajector​y_msgs/Joi​ntTrajecto​ry message in Simulink

busgazeboRobotics System Toolboxrosros messageros publishsimulink

Hello,
i am currently working on interfacing Matlab 2018a with Gazebo on a Virtual Machine. I want to design a robot controller in Simulink and simulate the dynamics of the mobile manipulator(KUKA youBot) in Gazebo.
I have already setup Matlab/Simulink and ROS/Gazebo. I can subscribe and publish messages like /odom or /vel_cmd. But I have problems to setup a /trajectory_msgs/JointTrajectory message to control the movement of the arm. I seem to not be able to setup the message correctly.
For the elements JointNames and Points the error message said that the bus structure doesn't match. And for Points.Positions, Points.Velocities, Points.Accelerations the error states that I cannot acces this data as it is inside a bus element. Can someone help me how to setup this ROS message correctly?
Thank you in advance and if you need further information feel free to ask me…..

Best Answer

Hello Martin,
The message trajectory_msgs/JointTrajectory contains variable-length arrays such as the 'Points' here shown on the screenshot. It is difficult to construct such signal directly through Simulink source blocks directly. The recommended way of assigning these properties in Simulink message is to use a MATLAB Function block. This example shows how to assign elements inside a ROS message in Simulink using MATLAB Function block.
Hope this helps,
Josh
Related Question