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

Embedded (non-ROS) -> ROS over Ethernet

asked 2013-11-11 12:29:07 -0600

anonymous user

Anonymous

updated 2014-01-28 17:18:31 -0600

ngrennan gravatar image

I have an embedded device not supported by ROS but which runs a Linux variant. I want to connect this to my ROS Groovy machine via Ethernet but not sure on the best approach - however I was thinking TCP would be ideal.

How should i connect these devices and are there any examples from which I can work from? I.e. How can i communicate between them over Ethernet?

Cheers.

edit retag flag offensive close merge delete

3 Answers

Sort by » oldest newest most voted
0

answered 2013-11-19 12:59:21 -0600

anonymous user

Anonymous

updated 2013-11-19 13:00:37 -0600

Started with ROSSerial but ran into problems as this was not designed for 32-bit systems.

Solution was to communicate using Python sockets: http://www.binarytides.com/python-socket-programming-tutorial/

The embedded device was setup as a server, and the ROS machine connects as a client to send commands to the embedded device.

edit flag offensive delete link more
3

answered 2013-11-11 14:56:05 -0600

Thomas gravatar image

You have basically two way of doing this:

  1. You can compile roscomm on your embedded device. It is enough to send ROS messages over the network.

  2. You have no way to compile roscomm on this embedded device so you need to use an alternative communication channel TCP or UDP being probably the easiest way to go.

1 is better but require more work whereas 2 is probably easier but will induce a delay in the communication...

edit flag offensive delete link more

Comments

Would you suggest following a setup like the link below for adding the packages to my environment? http://mirror.umd.edu/roswiki/cturtle(2f)Installation(2f)Windows.html Do i only need the ros_comm lib? Although the tutorial is for Windows, i think the concept still holds on my unsupported hardware

anonymous userAnonymous ( 2013-11-12 09:42:01 -0600 )edit

Well compiling ROS by hands on your Linux variant will definitively be easier than compiling ROS on Windows I guess. For instance see, http://wiki.ros.org/hydro/Installation/Source

Thomas gravatar image Thomas  ( 2013-11-12 18:42:16 -0600 )edit
1

answered 2013-11-12 19:46:25 -0600

gvdhoorn gravatar image

updated 2013-11-12 19:48:49 -0600

There is a ros-embedded SIG, which might be a good point to start. Additionally, the ros-c effort intends to bring a full (enough) ROS implementation to both Linux-based and bare-metal embedded systems. Another client library focused on embedded use is µROSnode.

Regarding your comment on 'unsupported hardware': as long as you are able to use any of the existing client libraries (or port them), getting something to work shouldn't be too involved.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2013-11-11 12:29:07 -0600

Seen: 1,856 times

Last updated: Nov 19 '13