Ask Your Question
0

A checksum mismatch error connecting to Segway RMP400

asked 2014-11-17 23:31:29 -0500

BIRLxu gravatar image

updated 2014-11-20 06:38:08 -0500

Well,I have an error when I connect the segway rmp400 to my laptop (installed the Hydro on Ubuntu 12.04 LTS)via two USB interfaces and run the segway_rmp package.This is the error information:

birl@birl-Hasee:~$ rosrun segway_rmp segway_rmp_node


[ INFO] [1416217225.551290667]: Accel limits: linear: pos = 0.000000, neg = 0.000000, angular: pos = 0.000000, neg = 0.000000.
[ INFO] [1416217225.555137737]: Velocity limits: linear: 0.000000, angular: 0.000000.  
[ INFO] [1416217225.561383781]: Connecting to Segway RMP via serial on serial port: /dev/ttyUSB0  
[ INFO] [1416217225.586345266]: Segway RMP Ready.
[ERROR] [1416217225.587296505]: Checksum mismatch...

Now,I just have no ideas about this.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2014-11-18 18:31:49 -0500

William gravatar image

updated 2014-11-20 12:25:00 -0500

Sorry, I don't really know why this would happen either, but there are two major possibilities.

The first is that the Segway you are using it with does not have the same communication protocol. At some point all the new Segway models started using a new protocol which does not work with my libsegwayrmp library. I thought the rmp400 should work (it is basically two rmp200's strapped together). But if you are using the rmp440x or some other more modern version then it may just not work.

The other reason for getting a checksum error would be that you are getting data corruption. I've seen this before when I had some grounding problems on my rmp setup in college, but it usually resulted in the usb device disconnecting rather than just checksum errors.

You should also try USB vs Serial mode and see if that makes a difference.

One last thought is that you are having two instances of the libsegwayrmp driver connect to the same device, which might "work" in that both can open and interact with the device, but then may cause the data stream to be corrupted. I'm pretty dubious of this scenario, but it was just a thought.

Hope this helps some.

EDIT:

Here is the example program which demonstrates how to connect with different options: https://github.com/segwayrmp/libsegwa...

Also, I don't think it documented, but the segway_rmp node should take ROS parameters for all the different connection types:

https://github.com/segwayrmp/segway_r...

edit flag offensive delete link more

Comments

Thank you!Yes,your driver shold also work on rmp400,after all,it is applicable to the mp200.I tried to connect my pc to the rmp400 using just one USB and it was right! The error just occurs when I use two USB. I have a guess that the driver is just suitable for one rmp200( just like its windows demo

BIRLxu gravatar imageBIRLxu ( 2014-11-20 06:09:00 -0500 )edit

I have amended the demo to access two USB interfaces and it has good worked on rmp400.Did you have tried to drive a rmp400 using the segway_rmp package? And what's the relationship of the segway_rmp packege and the libsegway library?

BIRLxu gravatar imageBIRLxu ( 2014-11-20 06:22:09 -0500 )edit

You should be able to run segway_rmp twice, each in a namespace (like front and back), and each with a different device option. If you are using serial a different serial port, or if you are using USB then by serial number or by device index. I'll add a like to an example in my answer.

William gravatar imageWilliam ( 2014-11-20 12:22:27 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2014-11-17 23:31:29 -0500

Seen: 176 times

Last updated: Nov 20 '14