The brain of a robot that follows a line is too simple to have an operating system. It has to manage a limited number of entries and its output is a limited number of instructions. For such a robot an operating system would mean a high computing effort and that would be too expensive.
An operating system that manages the resources of a robot has its role in special cases, when the robot has to accomplish complex tasks autonomously or controlled externally. This management system allows the multilateral development of an intelligent machinery for use in extensive tasks in various spheres of activity. Centralization components of a robot are necessary once complexity is increased. A central control unit that knows what each component is and how to use it is the only real solution to create complex robots such as humanoid robots.
Using Linux is not an unique solution but rather a simple way to create a robot that can see, hear, recognize a person or an object or to decide what to do. Besides the control of robot components, a Linux OS has another important role – to create a stable system for software applications to work with hardware components without knowing all the details about them.
In robotics, as almost everywhere else, hardware components are created by different companies and have different configurations. These variations will lead to difficulties in controlling this diversity of component configurations, therefore it is important to use an operating system that knows how to interact with each and everyone of them. There are various tools based on the Linux platform, in this article we try to describe what Linux should do for a robot, together with a list of tools that can be used in complex robot development.
What should Linux do for a robot
An operating system must ensure the control of sensors, arms, legs, navigation and other components without having the details of each component embedded. Also it must be compatible with a large variety of processors and must allow installing software modules needed for robotics. Using a mainstream framework instead of a home developed framework encourages development of robots and can reduce time and costs.
Using Linux gives free rein to exporting applications to different robotic platforms. Linux can do much more in robotics, a long list of applications is available for making a robot see, hear, walk, recognize objects or to understand, in other words to allow high functionality and intelligence capabilities for a robot as close as possible to living organisms.
Robotic tools for Linux
Robot Operating System is perhaps the best known and most used software framework from the robotics field, compatible with a wide range of operating systems and especially with Ubuntu. ROS development began in 2007, one year later it was moved to Willow Garage. This “garage” deals with research and development of robots like the PR2. ROS is an open-source platform where everyone who is passionate can contribute. This free platform provides application developing libraries and tools to control components to develop the robot’s senses.
Orca is an open-source framework built to control and develop components of a robot. An example could be a distributive complex sensors network to establish the location. It is a framework that can be used with Ubuntu, Debian, Slackware, Fedora and other distributions.
Player is used to develop drivers for hardware components of the robot. It’s easy to write drivers to control your robot and also you have available wireless connections which are supported by the tool. This tool is compatible with Linux and others operating systems. It can be used as a simulation environment for 2D and 3D applications. Player is compatible with C, C++, Python, Ruby and Matlab which is not installed by default.
Carmen is a modular software from Carnegie Mellon used to control mobile robots and includes features like base and sensor control, logging, obstacle avoidance, localization, path planning, and mapping. It is compatible with Red Hat and SuSE Linux.
OpenRTM is a software platform developed by the National Institute of Advanced Industrial Science and Technology from Japan to develop the robotic system in a component-oriented environment. The platform is compatible with C++, Python, and Java languages. It also supports for Linux/Unix and other OS.
Karto can be used to develop applications for robotic navigation, mapping and exploration. It has support for 64-bit Linux versions.
DROS is an open source software modules framework which offers support for modular programming and modules for mobile robots.
- DIY Linux Robots, Linux Journal
- Top 10 Linux powered robots, Tech Drive-in
- Linux powered robots guide, Linux For Devices