A look at Robot OS
Robot OS (or ROS) is
described as:
"an
open-source, meta-operating system for your robot. It provides the services
you would expect from an operating system, including hardware abstraction,
low-level device control, implementation of commonly-used functionality,
message-passing between processes, and package management.
" It also
provides tools and libraries for software development, along with some
applications that should be common to all robots.
There has not been much collaboration in the robot world, according to this New Scientist article:
![[ROS.org]](https://static.lwn.net/images/ns/ROSlogo.png)
ROS got its start as an open source project developed by Willow Garage and Stanford University. Now Willow Garage is focusing on ROS and has started the ROS wiki to further collaborative efforts among other robot developers. ROS is all about reusing code as much as possible among robots. While ROS is implemented in Python and C++, there are also experimental libraries written in Lisp, Octave and Java. ROS is a developer framework but people using other developer frameworks can use ROS libraries and package repositories. In fact, ROS has been integrated with other robot software frameworks such as Player and Orca.
The Robot OS
Concepts
document explains how the project is organized.
"ROS has three levels of concepts: the Filesystem level, the Computation Graph level, and the Community level.
"
The Filesystem level contains the resources that are stored on disk.
"The Computation Graph is the peer-to-peer network of ROS processes that are processing data together. The basic Computation Graph concepts of ROS are Nodes, Master, Parameter Server, Messages, Services, Topics, and Bags, all of which provide data to the Graph in different ways.
"
The ROS Community level includes the online Wiki, the code repository and
other networked resources.
ROS code can be installed on a variety of Linux distributions including Debian, Ubuntu, Fedora and Arch. There is also an experimental Mac OS X port. After installing the ROS packages the developer can use the rosconfig tool to install a configuration of ROS on their machine. The ROS configuration can also be shared on multiple machines.
The rosconfig documentation explains the utility:
Robot OS includes an extensive package list that includes documented development tools, libraries, drivers and applications. In some ways ROS may be thought of as both a software development kit and an "app store". The ROS wiki also includes developer documentation and tutorials. For additional information you can also join the ROS users mailing list or browse the archives. Bugs in the core software or feature requests can be filed on the ROS bug tracker.
If the robotics community can come together around ROS, it will allow developers to improve and perfect the common robotics functions instead of simply reinventing them. New and interesting robotics innovations should come about as developers build higher level software on top of the underlying platform.
Posted Sep 1, 2009 16:17 UTC (Tue)
by cook (subscriber, #4)
[Link]
The
Open Robot Control Software
project is also worth mentioning:
"The project's aim is to develop a general-purpose, free software, and modular framework for robot and machine control. The Orocos project supports 4 C++ libraries: the Real-Time Toolkit, the Kinematics and Dynamics Library, the Bayesian Filtering Library and the Orocos Component Library."
A look at Robot OS