0
$\begingroup$

Rosanswers logo

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.


Originally posted by highWaters on ROS Answers with karma: 176 on 2017-02-15

Post score: 0


Original comments

Comment by gvdhoorn on 2017-02-15:
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?

Comment by highWaters on 2017-02-15:
Yes that is the one. This tutorial was followed to set up the publisher http://sine.ni.com/cs/app/doc/p/id/cs-16503#

Comment by gvdhoorn on 2017-02-15:
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.

Comment by highWaters on 2017-02-15:
I did as you say. Thanks for the effort. https://github.com/tuftsBaxter/ROS-for-LabVIEW-Software/issues/4

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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!


Originally posted by highWaters with karma: 176 on 2017-02-22

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.