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

10 views (last 30 days)
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
Bo
Bo on 24 Oct 2017
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.

Accepted Answer

Bo
Bo on 8 Sep 2017
Edited: Bo on 9 Nov 2017
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
Jakob Klein
Jakob Klein on 23 Jan 2019
I had the same issue and discovered a typing error in the javaclasspath.txt file...

Sign in to comment.

More Answers (3)

Gleb Derzkij
Gleb Derzkij on 5 Mar 2018
How to fix problem on Windows?

Gleb Derzkij
Gleb Derzkij on 5 Mar 2018
Edited: 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
Bo
Bo on 21 Jun 2018
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.


Jason Wang
Jason Wang on 29 Jun 2018
For convenience. Just type rosgenmsg('mavros_msgs') and use this zip

Categories

Find more on Custom Message Support in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!