Ros custom message error apriltags

2 views (last 30 days)
michael
michael on 13 Mar 2018
Edited: Matthew Coombes on 27 Apr 2018
I'm trying to generate custom messages from a ROS package to matlab. When I run rosgenmsg('filepath'), I get the following error:
>> rosgenmsg('D:\Downloads\apriltags-master')
Checking subfolder "apriltags" for custom messages.
Building custom message files for the following packages:
apriltags
:rosjava_messages is spawning subprojects: [apriltags]
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "mavenRepository" on "org.ros.gradle_plugins.RosPluginExtension_Decorated@3fcdd7ea", value: "null".
:apriltags:bugfixtask
:apriltags:generateSourcesMar 13, 2018 4:58:06 PM org.ros.internal.message.field.PrimitiveFieldType initializeFixedLengthArray
WARNING: Error adding default value to fixed-length list:
java.util.NoSuchElementException: No message definition available for: geometry_msgs/Point32
at org.ros.internal.message.definition.MessageDefinitionProviderChain.get(MessageDefinitionProviderChain.java:51)
at org.ros.internal.message.DefaultMessageFactory.newFromType(DefaultMessageFactory.java:42)
at org.ros.internal.message.field.MessageFieldType.getDefaultValue(MessageFieldType.java:80)
at org.ros.internal.message.field.PrimitiveFieldType.initializeFixedLengthArray(PrimitiveFieldType.java:737)
at org.ros.internal.message.field.MessageFieldType.newVariableList(MessageFieldType.java:73)
at org.ros.internal.message.context.MessageContextBuilder$2.create(MessageContextBuilder.java:70)
at org.ros.internal.message.field.MessageFields.<init>(MessageFields.java:45)
at org.ros.internal.message.MessageInterfaceBuilder.appendConstants(MessageInterfaceBuilder.java:169)
at org.ros.internal.message.MessageInterfaceBuilder.build(MessageInterfaceBuilder.java:131)
at org.ros.internal.message.GenerateInterfaces.writeInterface(GenerateInterfaces.java:204)
at org.ros.internal.message.GenerateInterfaces.writeTopicInterfaces(GenerateInterfaces.java:94)
at org.ros.internal.message.GenerateInterfaces.generate(GenerateInterfaces.java:224)
at org.ros.internal.message.GenerateInterfaces.main(GenerateInterfaces.java:262)
Mar 13, 2018 4:58:06 PM org.ros.internal.message.field.PrimitiveFieldType initializeFixedLengthArray
WARNING: Error adding default value to fixed-length list:
java.util.NoSuchElementException: No message definition available for: geometry_msgs/Point32
at org.ros.internal.message.definition.MessageDefinitionProviderChain.get(MessageDefinitionProviderChain.java:51)
at org.ros.internal.message.DefaultMessageFactory.newFromType(DefaultMessageFactory.java:42)
at org.ros.internal.message.field.MessageFieldType.getDefaultValue(MessageFieldType.java:80)
at org.ros.internal.message.field.PrimitiveFieldType.initializeFixedLengthArray(PrimitiveFieldType.java:737)
at org.ros.internal.message.field.MessageFieldType.newVariableList(MessageFieldType.java:73)
at org.ros.internal.message.context.MessageContextBuilder$2.create(MessageContextBuilder.java:70)
at org.ros.internal.message.field.MessageFields.<init>(MessageFields.java:45)
at org.ros.internal.message.MessageInterfaceBuilder.appendSettersAndGetters(MessageInterfaceBuilder.java:184)
at org.ros.internal.message.MessageInterfaceBuilder.build(MessageInterfaceBuilder.java:132)
at org.ros.internal.message.GenerateInterfaces.writeInterface(GenerateInterfaces.java:204)
at org.ros.internal.message.GenerateInterfaces.writeTopicInterfaces(GenerateInterfaces.java:94)
at org.ros.internal.message.GenerateInterfaces.generate(GenerateInterfaces.java:224)
at org.ros.internal.message.GenerateInterfaces.main(GenerateInterfaces.java:262)
:apriltags:compileJavawarning: [options] bootstrap class path not set in conjunction with -source 1.6
D:\Downloads\apriltags-master\matlab_gen\build\rosjava_build\apriltags\build\generated-src\apriltags\AprilTagDetection.java:8: error: package std_msgs does not exist
std_msgs.Header getHeader();
^
D:\Downloads\apriltags-master\matlab_gen\build\rosjava_build\apriltags\build\generated-src\apriltags\AprilTagDetection.java:9: error: package std_msgs does not exist
void setHeader(std_msgs.Header value);
^
D:\Downloads\apriltags-master\matlab_gen\build\rosjava_build\apriltags\build\generated-src\apriltags\AprilTagDetection.java:12: error: package geometry_msgs does not exist
java.util.List<geometry_msgs.Point32> getCorners2d();
^
D:\Downloads\apriltags-master\matlab_gen\build\rosjava_build\apriltags\build\generated-src\apriltags\AprilTagDetection.java:13: error: package geometry_msgs does not exist
void setCorners2d(java.util.List<geometry_msgs.Point32> value);
^
D:\Downloads\apriltags-master\matlab_gen\build\rosjava_build\apriltags\build\generated-src\apriltags\AprilTagDetection.java:16: error: package geometry_msgs does not exist
geometry_msgs.Pose getPose();
^
D:\Downloads\apriltags-master\matlab_gen\build\rosjava_build\apriltags\build\generated-src\apriltags\AprilTagDetection.java:17: error: package geometry_msgs does not exist
void setPose(geometry_msgs.Pose value);
^
D:\Downloads\apriltags-master\matlab_gen\build\rosjava_build\apriltags\build\generated-src\apriltags\AprilTagDetections.java:8: error: package std_msgs does not exist
std_msgs.Header getHeader();
^
D:\Downloads\apriltags-master\matlab_gen\build\rosjava_build\apriltags\build\generated-src\apriltags\AprilTagDetections.java:9: error: package std_msgs does not exist
void setHeader(std_msgs.Header value);
^
8 errors
1 warning
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':apriltags:compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 4.858 secs
An error occurred while building custom messages. See the full error
message above.
Possible reasons for the error:
1. The msg or srv files may have syntax errors.
2. The dependencies on other message packages may not be declared
correctly in the build_depends tags in the package.xml.
3. Messages packages declared as dependencies may not be available.
4. The custom message packages may be missing a build dependency on
"message_generation".
See the ROS Custom Messages documentation for more information.
The package I'm trying to get the messages from is "apriltags" from personalrobotics: https://github.com/personalrobotics/apriltags
The package works perfectly in ROS, so I don't see why the messages would have syntax errors or wrong dependencies.
EDIT: [extra information] The package.xml file:
<?xml version="1.0"?>
<package format="2">
<name>apriltags</name>
<version>0.0.2</version>
<description>
ROS wrapper for the Swatbotics C++ port of the Apriltags visual
fiducial tracker. Apriltags was originally developed by the April
laboratory at the University of Michigan. The Swatbotics port
reimplements the detection core using OpenCV and CGAL for improved
performance.
</description>
<url type="repository">https://github.com/personalrobotics/apriltags</url>
<maintainer email="awalsman@andrew.cmu.edu">Aaron Walsman</maintainer>
<author email="awalsman@andrew.cmu.edu">Aaron Walsman</author>
<author email="pkv@cs.cmu.edu">Pras Velagapudi</author>
<license>BSD</license>
<buildtool_depend>catkin</buildtool_depend>
<build_depend>cmake_modules</build_depend>
<build_depend>eigen</build_depend>
<build_depend>git</build_depend>
<build_depend>message_generation</build_depend>
<depend>cgal</depend>
<depend>cv_bridge</depend>
<depend>geometry_msgs</depend>
<depend>image_transport</depend>
<depend>libopencv-dev</depend>
<depend>roscpp</depend>
<depend>sensor_msgs</depend>
<depend>std_msgs</depend>
<depend>visualization_msgs</depend>
<depend>apriltagscpp</depend>
<depend>yaml-cpp</depend>
<exec_depend>message_runtime</exec_depend>
</package>
The first message file: AprilTagDetection.msg
# Message storing raw 2D and 3D information about a single AprilTag detection.
Header header
uint32 id # id of AprilTag (not necessarily unique)
geometry_msgs/Point32[4] corners2d # AprilTag corners in image
float32 tag_size # tag size in m
geometry_msgs/Pose pose # pose of the marker in the camera frame
The second message file: AprilTagDetections.msg
# List of all AprilTag detections from a single camera frame.
Header header
AprilTagDetection[] detections

Accepted Answer

michael
michael on 13 Mar 2018
Found the issue: in package.xml the messages are defined as "<build>" instead of "<build_depend>". Working package.xml file below:
<?xml version="1.0"?>
<package format="2">
<name>apriltags</name>
<version>0.0.2</version>
<description>
ROS wrapper for the Swatbotics C++ port of the Apriltags visual
fiducial tracker. Apriltags was originally developed by the April
laboratory at the University of Michigan. The Swatbotics port
reimplements the detection core using OpenCV and CGAL for improved
performance.
</description>
<url type="repository">https://github.com/personalrobotics/apriltags</url>
<maintainer email="awalsman@andrew.cmu.edu">Aaron Walsman</maintainer>
<author email="awalsman@andrew.cmu.edu">Aaron Walsman</author>
<author email="pkv@cs.cmu.edu">Pras Velagapudi</author>
<license>BSD</license>
<buildtool_depend>catkin</buildtool_depend>
<build_depend>cmake_modules</build_depend>
<build_depend>eigen</build_depend>
<build_depend>git</build_depend>
<build_depend>message_generation</build_depend>
<build_depend>geometry_msgs</build_depend>
<build_depend>sensor_msgs</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>visualization_msgs</build_depend>
<depend>cgal</depend>
<depend>cv_bridge</depend>
<depend>geometry_msgs</depend>
<depend>image_transport</depend>
<depend>libopencv-dev</depend>
<depend>roscpp</depend>
<depend>sensor_msgs</depend>
<depend>std_msgs</depend>
<depend>visualization_msgs</depend>
<depend>apriltagscpp</depend>
<depend>yaml-cpp</depend>
<exec_depend>message_runtime</exec_depend>
</package>
  1 Comment
Matthew Coombes
Matthew Coombes on 27 Apr 2018
Edited: Matthew Coombes on 27 Apr 2018
I am having the exact same problem with darknet_ros_msg which has a simialr msgage structure as apriltags. However my package.xml was already defined in the build dependancies with build-depend. Has anyone found a diffrent solution

Sign in to comment.

More Answers (0)

Categories

Find more on Specialized Messages 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!