by Michael Ferguson
Most robot builders have at some point envisioned a human scale robot
wandering around their house, cleaning up after them or doing the laundry.
Videos of robots such as Willow Garage's PR2 doing just these tasks bring
further life to the dream. While most people cannot afford the $400,000 price
tag of a PR2, there are some very interesting developments in lower cost
robots that can run some of the same software that makes the PR2 so
awesome. In this article, we will introduce some of the cool technology
that is already out there on the shelves, and in some cases, available for
free in open source platforms such as ROS.
The robotics community has seen a quick increase in the capabilities of lower cost robots in the months ince the release of the Microsoft Kinect. I think that
the new MX-series of Dynamixel servos from Robotis might
just be able to spur on a similar increase in the capabilities
of low cost ROS-enabled arms.
ROS: The Robot Operating System
The Robot Operating System (ROS) is an open source
project started at Willow Garage. The project aims to
develop an ecosystem of software that makes robots more
useful and easier to build and program.
ROS uses a distributed approach in which developers
write many smaller, self-contained programs that carry out
specific tasks. Rather than having to compile all of the robot
code into a single program, users configure which programs
do which parts. This greatly encourages code reuse and
because of the open source ecosystem, you can actually
download a number of free-to-use programs.
A large number of stable ROS packages already exist.
40 SERVO 04.2012
These include things like hardware drivers for Kinect and
other Primesense devices ( www.ros.org/wiki/openni_
camera). With new low cost sensors such as the Kinect —
which provides both a traditional 2D camera and a 3D
camera — robots can now see objects around them and
sense the exact location to grab that object.
Higher level packages offer things like speech
recognition ( www.ros.org/wiki/pocketsphinx) or
navigation with a Kinect ( www.ros.org/wiki/navigation).
Some up and coming work offers things like collision aware
arm planning or object recognition.When writing your own
nodes, ROS integrates well with other popular frameworks
such as the open source vision framework OpenCV and its
3D counterpart, the Point Cloud Library (PCL). ROS even has
bindings to real time robot controllers such as Orocos.
Finally, ROS includes a very nice 3D visualization tool called
RVIZ (shown in Figure 1) which allows users to fuse the
visualization of robot state and sensor data; you can finally
see exactly what your robot thinks it is seeing. ROS has an
excellent set of tutorials which can be found at