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 initializeFixedLengthArrayWARNING: 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 initializeFixedLengthArrayWARNING: 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.6D:\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 errors1 warning FAILEDFAILURE: 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 FAILEDTotal time: 4.858 secsAn error occurred while building custom messages. See the full errormessage 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 declaredcorrectly 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 headeruint32 id # id of AprilTag (not necessarily unique)geometry_msgs/Point32[4] corners2d # AprilTag corners in imagefloat32 tag_size # tag size in mgeometry_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 headerAprilTagDetection[] detections
Best Answer