ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

md5sum mismatch when using custom ros service to communicate between android tablet running ROSJava and ROS

asked 2022-01-20 13:30:53 -0600

KushalT gravatar image

I need to communicate between an android tablet and PC. I am able to communicate between them using ros publishers and subscribers without an issue. However, I am running into trouble when I need to make a custom rosservice communication between the two.

I have followed the tutorials here to create a custom ros service using ros java. In my case, the tablet (running android studio) is the client and the PC is the server. After following the tutorial I extract a jar file from rosjava post compilation and use it in android studio to be able to run the client. I am using the exact same code for my client as shown in the tutorial. I have changed the service name and request data as needed for my use case.

The custom service has a string message type as both request and response.

Upon running the client, I receive a md5sum mismatch error as below and the tablet crashes :

[WARN] [1642691160.823770]: Could not process inbound connection: request from [/planner_ui_waypoint_service]: md5sums do not match: [6e8c62b390dd09eb60220ad7325cbdf7] vs. [f0a450661f3d644729d0b1a2391be31c]{'message_definition': 'string goal\n', 'service': '/planner_ui_waypoint_service', 'callerid': '/planner_ui_waypoint_service', 'md5sum': '6e8c62b390dd09eb60220ad7325cbdf7', 'persistent': '1', 'type': 'planner_ui/PlannerUIServiceRequest'}

The error occurs even before the tablet is able to send a request to the PC. The handshake fails when the client runs the connectNode.NewServiceClient line of code (line 51 in the client sample code in the tutorial above)

How can I resolve the issue? If anyone has used a custom rosservice in rosjava can you please help me by walking me through the steps you took.

Thank You

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-01-22 10:24:30 -0600

Mike Scheutzow gravatar image

An "md5sum mismatch" usually means that the client and server have different versions of some ROS Message. To communicate successfully, the fields in a message have to match exactly. This can easily happen if there are different versions of a package installed on the two hosts.

edit flag offensive delete link more

Comments

@Mike That indeed could be an issue. I am running melodic on the PC and for the tablet, I am getting a jar file which I am compiling in Kinetic because RosJava doesnt offer any support for melodic. Have you used rosjava on melodic?

KushalT gravatar image KushalT  ( 2022-01-23 06:15:43 -0600 )edit

I do not know what rosjava is. And their wiki page is not informative.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2022-01-23 08:08:34 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2022-01-20 13:30:53 -0600

Seen: 208 times

Last updated: Jan 22 '22