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

Issue with arduino and ROS after creating a new message

asked 2017-02-25 22:27:47 -0500

angshumanG gravatar image

updated 2017-02-25 22:50:25 -0500

I am getting creation of publisher failed: Checksum does not match I am getting creation of subscriber failed: Checksum does not match

This error comes when we make a new arduino message and then do catkin_make and try to publish without flashing the arduino and changing the MD5.

I was struck at this problem since 1 day as I was trying to edit the MD5 in the header to match the checksum.

Solution:

1)copy the MD5 from the error you get to the header file 2)catkin_make 3)flash the arduino

I am a new user and this is a workaround which i found. if anyone has better solution please suggest

I have put this up in case someone gets struck in the same problem can find the solution

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2017-02-26 12:32:03 -0500

ahendrix gravatar image

The MD5 sum in the message definition is how ROS checks that message formats match. Messages with MD5 sums that don't match don't have the same format or the same serialization, and if you try to force them to be used together by editing the MD5 sums to match, you will get garbled or corrupt data.

If you change the message definitions that are used by your arduino, you should run make_libraries.py to regenerate the ROS arduino libraries, and then rebuild your arduino project and flash it again.

And as you already know, if you change the message definitions you also need to run catkin_make to recreate C++ and python libraries and recompile anything that uses them on the host side.

edit flag offensive delete link more

Comments

1

I am getting the error on running rosrun rosserial_arduino make_libraries.py

make_libraries.py generates the Arduino rosserial library files.  It 
requires the location of your Arduino sketchbook/libraries folder.

rosrun rosserial_arduino make_libraries.py <output_path>
angshumanG gravatar image angshumanG  ( 2017-02-27 12:44:41 -0500 )edit
1

I got it . I was not putting the period after the command

 rosrun rosserial_arduino make_libraries.py .
angshumanG gravatar image angshumanG  ( 2017-02-27 13:00:55 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2017-02-25 22:27:47 -0500

Seen: 1,891 times

Last updated: Feb 26 '17