ROS: the operating system for open source robotics

ROS (Robot Operating System) is the open source middleware from Willow Garage that standardises robotic development with publish/subscribe communication, hardware abstraction and simulation.

Open SourceR&D Open SourceROSRoboticsMiddlewareSensors

The problem of robotic fragmentation

Every robotics laboratory, until the late 2000s, develops its own software nearly from scratch. Sensor drivers, navigation algorithms, motion planning systems: everything is rewritten for each new robot, for each new project. Code is tightly coupled to specific hardware and rarely reusable.

Willow Garage, a research laboratory founded in 2006 in California, decides to address the problem at its root. In January 2010 it releases version 1.0 of ROS (Robot Operating System), code name Box Turtle. Despite the name, ROS is not an operating system: it is a middleware — a software layer that sits between the actual operating system (typically Linux) and robotic applications, providing services common to all robots.

Node-based architecture

The architecture of ROS is based on nodes: independent processes each performing a specific function — reading a sensor, computing a trajectory, commanding an actuator. Nodes communicate through a publish/subscribe mechanism: a node publishes messages on a topic (for example laser scanner data) and all interested nodes subscribe to that topic to receive them.

This decoupling is fundamental. The node processing laser data does not need to know which specific laser produces them: hardware abstraction allows replacing one sensor with another without modifying the processing software. Likewise, a navigation algorithm can run on physically different robots, provided they publish data in the same format.

Development and simulation tools

ROS includes rviz, a 3D visualisation tool that displays sensor data, maps built by the robot, planned trajectories and joint states in real time. For development and testing without physical hardware, the Gazebo simulator allows creating complete virtual environments with realistic physics, where virtual robots run the same ROS code that would run on the real machine.

The build system manages dependencies between packages and cross-compilation. Documentation, tutorials and a standard package format encourage code sharing among research groups.

ROS is released under the BSD licence, a choice that permits use in commercial products as well. The project transforms robotics from a craft discipline into collaborative software engineering.

Link: ros.org

Need support? Under attack? Service Status
Need support? Under attack? Service Status