0
$\begingroup$

Rosanswers logo

I'm using the pi board as a client board as if it were an Arduino board connected to PC/laptop, and I'm wondering if anybody has ever done that. If so, could you tell me what libraries you used it?

With regards to rosserial_embeddedlinux, I need to download the development environment in my server-side host, which is Jetson, and in most of the cases IDEs are not able to be installed in Jetson platform. So I would rather write the implementation code for Hardware class (wiki.ros.org/rosserial_client/Tutorials/Adding Support for New Hardware) so that the rosserial-based connection for Raspberry Pi is established. Could anybody please help me with this?


Originally posted by chanhyeoni on ROS Answers with karma: 62 on 2017-10-09

Post score: 0


Original comments

Comment by ChriMo on 2017-10-09:
Hi, sorry, where is the use case for this ? All your boards have ip available over serial, ethernet or wifi. I think you have all you need available. I see one case only to use ros_serial: small limitted system without ip. Thanks for more Cheers Chrimo

Comment by rreignier on 2017-10-09:
@ChriMo Actually, rosserial is able to use TCP/IP, so one can use it on a system that has an IP link but you cannot install ROS (ex. Windows, small embedded Linux (too small for Boost...)). In that case, for the Raspberry Pi, rosserial_embeddedlinux seems OK.

Comment by ChriMo on 2017-10-09:
OK, I understand now. Like my OSX. Thanks for more :-)

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

You should be able to use rosserial_embeddedlinux directly on the Raspberry Pi.

I did not use it myself yet but you can either use a serial link or an IP link through TCP/IP.

See the tutorials: http://wiki.ros.org/rosserial_embeddedlinux/Tutorials

First, generate the header files for the messages with the make_libraries.py script on your Ubuntu computer, then copy them on the Raspberry Pi and build your rosserial node with CMake.


Originally posted by rreignier with karma: 544 on 2017-10-09

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by RobotRoss on 2017-11-17:
As I am also developing a Raspbian/Linux c++ client application (i.e. not arduino) running an a RaspI3, and maybe as it is with this author, the rosserial_embeddedlinux/make_libraries.py contains references to arduino, which doesn't seem correct. I note the mbed example does't contain arduino text.

Comment by RobotRoss on 2017-11-19:
With further investigation, there is a make_library.py file under rosserial/rosserial_client with no arduino refererences, i.e. presumably to generate generic c++ libraries for use on a non-ROS Linux controller such as Raspberry Pi. Is that correct? It won't run however on my Kinetic workstation.

Comment by rreignier on 2017-11-20:
Exactly, rosserial_embeddedlinux uses rosserial_client + adds the communication part and some examples. The references to Arduino in the python script are only a badly named variable. I have tried to run the example HelloROS on a RaspberryPi and it works like a charm.

Comment by RobotRoss on 2017-11-20:
Sry, a necessary correction to prev. comment. A "no arduino" make_libraries.py under /rosserial/rosserial_client/scripts runs & generates a set of ROS files in a designated directory. I presume I would add ros.h, embedded_linux_comms.c, embedded_linux hardware.h files to use on a Linux Raspberry Pi?

Comment by rreignier on 2017-11-20:
Yes, you can, but the easier it to run: rosrun rosserial_embeddedlinux make_libraries.py . It will generate a ros_lib directory with the embeddedlinux specific files already inside and a examples one. You can then move the files to RPi and g++ -o HelloROS HelloROS.cpp -I../../ros_lib

$\endgroup$

Your Answer

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