Building
Maxwell:
The
Part 3
by Michael Ferguson
Sof t ware
Last month, we looked at the mechanical and electrical construction
of a low-cost mobile manipulator named Maxwell. This article will focus
on the software used; namely the various components of the
Robot Operating System.
ROS Basics
The Robot Operating System — or ROS —
is an open source framework that aims to aid
developers in making robots more useful. In
just three short years of development, the ROS
ecosystem has grown to thousands of
developers with over 100 different university
labs, companies, and individuals releasing open
source software targeted at ROS. While a first
glance at the ROS wiki can appear daunting,
the good news is there are relatively few
concepts in ROS.
ROS takes a distributed approach. Rather
than having all of your code wrapped up into a
single executable, a typical robot will have
many separate programs (called nodes) — all
communicating with one another by passing
messages over named topics. As long as both
ends of the communication can decode the
message, the two programs really don't even
have to know they are separate programs (or
even that they may be running on different
computers). ROS provides client libraries which
allow nodes to connect to topics and decode
messages in several popular languages,
although the best support is available for C++
and Python.
To facilitate the easy distribution of code,
software is wrapped up into collections of
FIGURE 1. Maxwell’s
URDF visualized in RVIZ.
SERVO 06.2012 69