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

Setting up ros on real hardware

asked 2016-04-13 07:41:14 -0500

basbursen gravatar image


I began to work on ROS.On my home computer everything is okay.I can send/receive messages over topics, I can exchange messages over services, use rosbags, parameters, create launch files.I am aware that nodes can make communications over network etc.

What about porting these programmes to real robots? Is it neccessary to first setup an OS and setup ROS on robots and start nodes? What is the common practice? Do robots have systems to just respond to commands and transmit info to nodes which are on a different computer? or is there way to make the nodes actually run on robots without need to setup host OS?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-04-13 08:34:20 -0500

There are many different ways that people architect robot systems that use ROS. For example, there are "native-ROS" robots like the PR2, Baxter, Turtlebot, etc. These robots all have a Linux computer of some kind that has a full-blown OS and a version of ROS running. These robots also have lower level, embedded computers for things like motor control. The main computer and OS on the robot then employs various mechanisms for communicating with these lower level control computers. They may use communication protocols like EtherCAT, RS232, or CAN, and various hardware/driver solutions for implementing these protocols.

Another strategy often employed is to have the robots themselves be non-ROS robots. This is more common for applications like swarm robots, and quadrotors where each individual agent is fairly simple. In this case, ROS typically runs on some off-board computer and some sort of communication tool (rosserial, a custom node, etc) is used to pass data between the ROS world and the robots (control commands, sensor readings, etc.).

In between the two previous ideas would be a very small embedded computer that is capable of running ROS (Raspberry Pi, odroid, BBB, etc.). In this case the small computer could run ROS and natively communicate with other ROS computers, and it could perform its own low-level control and sensor interfacing.

If you want to run a ROS node that you've developed on a normal PC directly on a robot, then that robot must be able to run ROS and must have a host OS.

edit flag offensive delete link more


for "In between the two previous ......(Raspberry Pi, odroid, BBB, etc.). ", which of the following is a possible way to install ROS:

  1. install some flavour of ubuntu and then install ROS
  2. install specific OS like NuttX and then install ROS
  3. other options are also there ( if yes, please inform
gapal gravatar image gapal  ( 2016-09-15 02:36:38 -0500 )edit

Options 1 and 2 are certainly possible with Option 1 likely being the easier path to success, and it seems to me the more common path. Getting ROS compiled on a less common distro can be challenging.

jarvisschultz gravatar image jarvisschultz  ( 2016-09-15 07:15:15 -0500 )edit

Question Tools

1 follower


Asked: 2016-04-13 07:41:14 -0500

Seen: 1,322 times

Last updated: Apr 13 '16