Md5sum mismatch with customized message under rosjava and roscpp enviroment

asked 2021-03-31 01:22:56 -0500

Chao Chen gravatar image

updated 2021-03-31 02:30:49 -0500

gvdhoorn gravatar image

I create two different Project on different workspace. One is idfa_msgs/GDXBoxesMessage under Rosjava 0.2.. The other is obstacle_detection/GDXBoxMessage under Roscpp. They communicate good if using default message like, std_msg, sensor_msg. However, when establishing the connection using customized message, the error pops up like following.

[ERROR] [1617170692.958476152]: Client [/GPUPlanarRegionSubscriber] wants topic /box to have datatype/md5sum [idfa_msgs/GDXBoxesMessage/d41d8cd98f00b204e9800998ecf8427e], but our version has [obstacle_detection/GDXBoxMessage/bbc122c887def5dd8eda16d81d7d1109]. Dropping connection."

The message GDXBoxMessage.msg is simple as following:

float64 x_min
float64 y_min
float64 z_min
float64 x_max
float64 y_max
float64 z_max
edit retag flag offensive close merge delete


It looks like idfa_msgs/GDXBoxesMessage is not the same package (and thus message) as obstacle_detection/GDXBoxMessage.

Is there a reason you're trying to use two different messages?

gvdhoorn gravatar image gvdhoorn  ( 2021-03-31 02:31:35 -0500 )edit

idfa_msgs and obstacle-detection are different project. Is there any way to change the package type regardless its project name?

Chao Chen gravatar image Chao Chen  ( 2021-03-31 11:15:16 -0500 )edit

Does the project name matter? Isn't it all about the message types?

There is no requirement for message packages to be named after a project.

Perhaps you have that requirement internally, that I wouldn't know, but there is no best practice in ROS about this.

Package names should be descriptive of their contents. Not necessarily be named after a project.

And an observation: a node called GPUPlanarRegionSubscriber wants to use a message called GDXBoxMessage, which contains 2 sets of 3 coordinates and seems to describe a box (a bounding box?). Isn't planar 2D?

gvdhoorn gravatar image gvdhoorn  ( 2021-03-31 11:21:12 -0500 )edit

The problem is that I have different message types send and receive on the same topic. Even if they have the same contents they are considered different types.

Chao Chen gravatar image Chao Chen  ( 2021-03-31 11:50:52 -0500 )edit

Have java expect the lidar_obstacle_detection/gdxboxesmessage, have the c++ ros node use the java message, or create another node that subscribers to one and published the other. But I dont know how to do either of these

Chao Chen gravatar image Chao Chen  ( 2021-03-31 12:04:20 -0500 )edit