Ask Your Question
0

Creating Package For Arduino Ethernet [closed]

asked 2016-09-25 16:46:30 -0500

inkspell4 gravatar image

updated 2016-10-27 18:30:42 -0500

I am looking to try to implement communication with an Arduino over Ethernet utilizing ROS. I know that there is rosserial-arduino, but I want to work over Ethernet. I was wandering if anyone had any pointers on how to do this, whether it being creating a new package or doing something else.

I am new to ROS, so any help would be greatly appreciated.

Update: Sorry for the inactivity got stuck on other things, is their a way to write a ros driver for the Arduino that would connect to a port on the core and use a pub-sub or client-server? I know ros-serial is built to run over serial acting as an intermediary but is a way without an intermediary?

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by inkspell4
close date 2017-01-22 19:36:54.360222

Comments

I guess I'm actually asking if this is feasible, and how someone would go about making their own package like rosserial. I have looked for information on this but have not found much.

inkspell4 gravatar image inkspell4  ( 2016-09-27 16:27:25 -0500 )edit

Not a rosserial user myself, but iirc, the code allows you to create specialisations for particular comms buses. See ros-drivers/rosserial#193 for an example.

gvdhoorn gravatar image gvdhoorn  ( 2016-09-28 00:26:07 -0500 )edit

Especially the last comment on that PR seems interesting.

gvdhoorn gravatar image gvdhoorn  ( 2016-09-28 00:27:56 -0500 )edit

Sorry for the inactivity got stuck on other things, is their a way to write a ros driver for the Arduino that would connect to a port on the core and use a pub-sub or client-server? I know ros-serial is built to run over serial acting as an intermediary but is a way without an intermeary?

inkspell4 gravatar image inkspell4  ( 2016-10-27 18:28:12 -0500 )edit

Not sure I understand you, but: I've not heard of anyone doing it, but you could see if you could 'port' ros-industrial/cros to Arduino. That implements an ANSI C client lib for ROS, which would appear to do what you ask.

gvdhoorn gravatar image gvdhoorn  ( 2016-10-28 00:09:43 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2016-10-27 22:23:08 -0500

ahendrix gravatar image

The amount of state that a ROS node needs to store is generally considered too big to fit in memory on an arduino, so you can't use an arduino as a native ROS node.

edit flag offensive delete link more

Comments

So it really would need to have something running that would translate the ROS packets into a protocol that could be read by the Arduino?

Also, what do you mean by state?

inkspell4 gravatar image inkspell4  ( 2016-11-01 18:40:46 -0500 )edit

Each node has multiple TCP sessions (one for each topic), and it also has to keep track of the master state, the list of published and subscribed topics, and each node runs a small XMLRPC server for receiving callbacks from the master.

ahendrix gravatar image ahendrix  ( 2016-11-01 18:51:01 -0500 )edit

For small microcontrollers it's much easier to have a simplified protocol between the microcontroller and a full linux system that serves as the gateway to that microcontroller.

ahendrix gravatar image ahendrix  ( 2016-11-01 18:52:05 -0500 )edit

Question Tools

Stats

Asked: 2016-09-25 16:46:30 -0500

Seen: 642 times

Last updated: Oct 27 '16