Ididn’t really fall for ROS until the “Neato” package put ogether by Mike Ferguson came out in 2010
http://wiki.ros.org/neato_robot. As you may or may not know, ROS was developed on a $400,000 robot called the PR2 (Personal Robot 2). PR2’s claims to fame were that it could plug itself in (an important
feature for a mobile robot); it could fetch a beer from the
refrigerator (the holy grail of mobile robotics); and it could
also fold clothes ( 20 minutes per towel, but by the end of
the day the laundry was folded).
One of the many cool things about ROS (which is more
of an architectural framework than an operating system) is
that it scales. That is, you change the wheel parameters
and the track width, and now software developed for a
$400,000 robot works on your $400 robot vacuum cleaner
(Neato). This includes a mapping routine (gmapping); a
navigation stack (move base [path planning] and amcl
[localization]); a visualization tool (Rviz); standardized
messaging (publish and subscribe); logging (bag files); and
distribution (GitHub). Oh, and it’s open source. Yep, the
original source code is made freely available and may be
redistributed, modified, and potentially commercialized.
Before you jump headlong into ROS, a word of
warning: ROS is hard! ROS doesn’t have a learning curve. It
has a learning cliff!
It assumes a high level of expertise in Linux among
other things, and it’s so all-encompassing one can easily get
discouraged without your robot even
moving a single inch. If you’re a
beginner, it would be better to have
some fun and build something easier
with an Arduino and hobby RC
servos first to get familiar with the
basics. I don’t want to dishearten
anyone, but rather prepare you for a
big, long-term commitment before
starting.
That having been said, building
ROS-based robots can make your
homebrewed bot considerably more
versatile and even (dare I say it?)
useful.
For one thing, ROS makes your
robot capable of navigation. The
ability to “navigate” or to know
where you are in an environment
and reliably get from one place to
another is the base (pun intended)
I learned about ROS (Robot Operating System;
www.ros.org)
shortly after it began in late 2006. Folks in the HomeBrew Robotics
Club (
www.hbrobotics.org; a group that I’m heavily involved with)
were early adopters, plus some members actually worked at Willow
Garage (developers of ROS).
Neato + ROS =
Robot Navigation
By Camp Peavy
46 SERVO 01.2018
This is a map created with Rviz (ROS visualizer). Note the video panel and ultrasonic
cones (protruding from Botvac model). You basically select a goal anywhere on the
map and the robot will autonomously navigate there.