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

Revision history [back]

click to hide/show revision 1
initial version
  1. You can not assume that a single spinOnce() will handle all the background activity that ros has pending.

  2. I have never seen an arduino run "full size" ros (hint: that requires a network stack.) Instead, what people do is split the implementation two pieces using rosserial. The arduino side runs a cut-down subset of ros functions, optimized for the limited abilities of this cpu, and the arduino app you end up with is NOT a real ros node, because it requires the rosserial-master to do any work. You have to compile this arduino application using a special procedure.

See:

http://wiki.ros.org/rosserial

http://wiki.ros.org/rosserial_embeddedlinux/Tutorials/Example%20Subscriber

  1. You can not assume that a single spinOnce() will handle all the background activity that ros has pending.

  2. I have never seen an arduino run "full size" ros (hint: that requires a network stack.) Instead, what people do is split the implementation into two pieces using rosserial. The arduino side runs a cut-down subset of ros functions, optimized for the limited abilities of this cpu, and the arduino app you end up with is NOT a real ros node, because it requires the rosserial-master to do any work. You have to compile this arduino application using a special procedure.

See:

http://wiki.ros.org/rosserial

http://wiki.ros.org/rosserial_embeddedlinux/Tutorials/Example%20Subscriber

  1. You can not assume that a single spinOnce() will handle all the background activity that ros has pending.

  2. I have never seen an arduino run "full size" ros (hint: that requires a network stack.) Instead, what people do is split the implementation into two pieces using rosserial. The arduino side runs a cut-down subset of ros functions, optimized for the limited abilities of this cpu, and the arduino app you end up with is NOT a real ros node, because it requires the rosserial-master to do any work. You have to compile this arduino application using a special procedure.

See:

http://wiki.ros.org/rosserial

http://wiki.ros.org/rosserial_embeddedlinux/Tutorials/Example%20Subscriber

Using rosserial can be a little confusing, so it's not a good place for someone new to ros to start with. The experience will go much easier if you learn the ros APIs on a desktop pc first.