MATLAB Answers

Bo
1

Robot System Toolbox doesn't support the message type: mavros_msg​s/Position​Target?

Asked by Bo
on 7 Sep 2017
Latest activity Commented on by Jakob Klein on 23 Jan 2019
Steps for reproducing the problem:
  • Open the attached Simulink model file.
  • Double click the Publish block.
Is there a simple method that can let MATLAB support the ROS message type of mavros_msgs/PositionTarget? Otherwise, I will need to use another message type to send a topic and the write a node to convert the message to mavros_msgs/PositionTarget. Any ideas on this? Thanks, Bo

  1 Comment

I am changing to another computer. When I try to run my old Simulink model containing my custom message, I got this error:
Error evaluating 'InitFcn' callback of Constant block 'iopid_clamping/Blank Message/Constant'.
Callback string is 'robotics.slros.internal.block.MessageBlockMask.dispatch('constantBlkInitFcn', gcb);'
Caused by:
Cannot find a MATLAB message class for type mavros_msgs/PositionTarget.
I put them here to let search engine able to find this page by the error message.

Sign in to comment.

4 Answers

Answer by Bo
on 8 Sep 2017
Edited by Bo
on 9 Nov 2017
 Accepted Answer

I got the solution from MATLAB support.
Please see the following documentation page about the Custom Message Support Package: https://www.mathworks.com/help/robotics/ug/ros-custom-message-support.html?requestedDomain=www.mathworks.com
As mentioned in the page above, to download this support package please enter the following command: roboticsAddons
into the MATLAB Command Window and select to download the "Robotics System Toolbox Interface for ROS Custom Messages"
Afterwards, please use the following example to learn how to add a custom message type: https://www.mathworks.com/help/robotics/ug/create-custom-messages-from-ros-package.html
My attachment "mavros_msgs.zip" contains an example of the ROS package needed to create a msg type called "mavros_msgs/PositionTarget".
Extract the zip file to Desktop and run:
>> folderpath = '/Users/boshang/Desktop/mavros_msgs/'
>> rosgenmsg(folderpath)
Q&A:
If you see messages like this:
>> folderpath = '/Users/boshang/Desktop/mavros_msgs/mavros_msgs/'
>> rosgenmsg(folderpath)
Checking subfolder "msg" for custom messages. Warning: The folder name 'msg' does not match the package name 'mavros_msgs' specified in 'package.xml'. Rename the folder 'msg' to 'mavros_msgs'. > In robotics.ros.custommsg.internal.CustomMessageJAR/buildFolders (line 93) In rosgenmsg (line 42)
Checking subfolder "srv" for custom messages. Warning: The folder /Users/boshang/Desktop/mavros_msgs/mavros_msgs/srv does not contain a valid ROS package, because the 'package.xml' file is missing. Create the 'package.xml' file in this folder. > In robotics.ros.custommsg.internal.CustomMessageJAR/buildFolders (line 93) In rosgenmsg (line 42) No message packages were found in folder /Users/boshang/Desktop/mavros_msgs/mavros_msgs. Check to make sure the path to your folder is correct.
You'll need to run command: "cd .." to go back and run "rosgenmsg(folderpath)" again.

  5 Comments

I had created a rosmsg and the custom msg can be found in the rosmsg list,but can't be selected in simulink,.How come like this?How am I supposed to do?thank you!
Have you restarted MATLAB? @lily liu
I had the same issue and discovered a typing error in the javaclasspath.txt file...

Sign in to comment.



Answer by Gleb Derzkij on 5 Mar 2018
Edited by Gleb Derzkij on 5 Mar 2018

2-d question is
How do you stabilize drone? when arm &takeoff 2
My drone flies chaotically

  1 Comment

Sorry for the late response. I had the same issue before. Check if the time on your window is slower than real time. If so, you need a faster computer.

Sign in to comment.


Answer by Jason Wang on 29 Jun 2018

For convenience. Just type rosgenmsg('mavros_msgs') and use this zip

  0 Comments

Sign in to comment.