0
$\begingroup$

Rosanswers logo

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?


Originally posted by inkspell4 on ROS Answers with karma: 32 on 2016-09-25

Post score: 0


Original comments

Comment by inkspell4 on 2016-09-27:
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.

Comment by gvdhoorn on 2016-09-28:
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.

Comment by gvdhoorn on 2016-09-28:
Especially the last comment on that PR seems interesting.

Comment by inkspell4 on 2016-10-27:
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?

Comment by gvdhoorn on 2016-10-28:
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.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by ahendrix with karma: 47576 on 2016-10-27

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by inkspell4 on 2016-11-01:
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?

Comment by ahendrix on 2016-11-01:
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.

Comment by ahendrix on 2016-11-01:
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.

$\endgroup$

Your Answer

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