Ask Your Question
0

Error when deserializing message, buffer overrun, publisher in labview, subscriber in ubuntu machine.

asked 2017-02-15 03:00:11 -0600

highWaters gravatar image

updated 2017-02-15 03:05:19 -0600

gvdhoorn gravatar image

Hello,

I have the following setup. There are two machines, one arm device with Ubuntu in which I run the ros master and a subscriber, and one labview system which connects to that master and runs a publisher. The subscriber and publisher node are the basic ones from the ros tutorials.

When publishing, I get the following error on the subscriber's side:

[ERROR] []: Exception thrown when deserializing message of length [] from []: Buffer Overrun

if I have sent an empty message (empty string) or

[ERROR] []: Exception thrown when deserializing message of length [] from []: basic_string::_S_create

in case it is not empty.

I was able to find one related post here: #q42336. As I understand it might be an endianness problem and in fact the arm device is little endian while the other is big endian.

I think that the problem lies on the publisher's side, in which the length of the ros message is written big endian, as such a crash is produced on the subscriber which reads it little endian. How can this be solved?

Thank you for your time.

edit retag flag offensive close merge delete

Comments

You mention Labview, but you don't tell us what you are using to allow Labview to communicate with a ROS node graph. Are you using ROS for LabVIEW by Tufts?

gvdhoorn gravatar imagegvdhoorn ( 2017-02-15 04:17:30 -0600 )edit

Yes that is the one. This tutorial was followed to set up the publisher http://sine.ni.com/cs/app/doc/p/id/cs...

highWaters gravatar imagehighWaters ( 2017-02-15 06:33:14 -0600 )edit

I cannot find any of the Tuft developers on ROS Answers, so you might want to post an issue over at tuftsBaxter/ROS-for-LabVIEW-Software and see if that gets some attention. Do please link us here to that issue.

gvdhoorn gravatar imagegvdhoorn ( 2017-02-15 06:47:54 -0600 )edit

I did as you say. Thanks for the effort. https://github.com/tuftsBaxter/ROS-fo...

highWaters gravatar imagehighWaters ( 2017-02-15 07:15:35 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-02-22 03:46:26 -0600

highWaters gravatar image

So, the following worked for me. First download the github version of the ros for LabVIEW, as it is the latest one. Then open a new vi and drag a publisher from Examples/Rosexamples folder on the vi. While the master is running on the ubuntu machine, run the vi. It will ask to provide the master's URI. You should then be able to see the messages on the ubuntu side.

For the subscriber on the labview it is the same procedure. You drag it into a new vi, run the vi, it will open up a window where the message should be shown, press run again. The publisher on the ubuntu should be running first.

Hope this helps!

edit flag offensive delete link more

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: 2017-02-15 03:00:11 -0600

Seen: 563 times

Last updated: Feb 22 '17