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

ROS isn't responsible for the the ability to run multiple nodes. That ability is inherent to the operating system (Linux, iOS, Windows, Android, etc). On the linux machine you can have firefox, gtkterm, gedit, and ROS nodes all running at the same time, even with a single core. The operating system controls which program (thread, process) has access to the processor so that all programs get at least some time processing. Many times a second, Linux will start and stop different programs and each of them appear to us to be running continuously (but they're not). I'm sure google will provide you with many sources of info on how operating systems schedule the processors.

The magic in ROS is the framework that allows communication between the different nodes (programs) that are running. That communication is explained on the ROS wiki page. Maybe be "RCS" (Robot Communication System) acronym was taken so they called it "ROS" (Robot Operating System)? But don't be confused, it's not really an operating system. It requires the computer have its own operating system and ROS runs on top of that operating system, just like firefox does.