Fail to build ROS custom message. Error: java.lang.​IllegalSta​teExceptio​n: Header field must be named "header."

1 view (last 30 days)
I am trying to build darknet_ros custom messages, but it always fail.
Checking subfolder "darknet_ros_msgs" for custom messages.
Building custom message files for the following packages:
darknet_ros_msgs
:rosjava_messages is spawning subprojects: [darknet_ros_msgs]
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@329312cd", value: "".
:darknet_ros_msgs:bugfixtask
:darknet_ros_msgs:generateSources
Failed to generate interface for darknet_ros_msgs/BoundingBoxes.
java.lang.IllegalStateException: Header field must be named "header."
at com.google.common.base.Preconditions.checkState(Preconditions.java:176)
at org.ros.internal.message.definition.MessageDefinitionParser.parseField(MessageDefinitionParser.java:150)
at org.ros.internal.message.definition.MessageDefinitionParser.parse(MessageDefinitionParser.java:107)
at org.ros.internal.message.context.MessageContextProvider.get(MessageContextProvider.java:57)
at org.ros.internal.message.MessageInterfaceBuilder.build(MessageInterfaceBuilder.java:130)
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)
:darknet_ros_msgs:compileJavawarning: [options] bootstrap class path not set in conjunction with -source 1.6
/home/hossam/yoloros/matlab_gen/build/rosjava_build/darknet_ros_msgs/build/generated-src/darknet_ros_msgs/CheckForObjectsResult.java:10: error: cannot find symbol
darknet_ros_msgs.BoundingBoxes getBoundingBoxes();
^
symbol: class BoundingBoxes
location: package darknet_ros_msgs
/home/hossam/yoloros/matlab_gen/build/rosjava_build/darknet_ros_msgs/build/generated-src/darknet_ros_msgs/CheckForObjectsResult.java:11: error: cannot find symbol
void setBoundingBoxes(darknet_ros_msgs.BoundingBoxes value);
^
symbol: class BoundingBoxes
location: package darknet_ros_msgs
2 errors
1 warning
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':darknet_ros_msgs: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.294 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.

Accepted Answer

Hossam Khalil
Hossam Khalil on 16 Sep 2019
I found the problem.
It appears that in the message file the header message type was the problem but this is only for matlab as the package builds normally in the catkin workspace.
The message file was
Header header
Header image_header
BoundingBox[] bounding_boxes
I changed it to
std_msgs/Header header
std_msgs/Header image_header
BoundingBox[] bounding_boxes
Now it builds in matlab.

More Answers (0)

Categories

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

Products

Community Treasure Hunt

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

Start Hunting!