Create a Package
First, create an ROS package named table_neato with
the dependencies: geometry_msgs (movement control),
sensor_msgs (sensors!), and roscpp (ROS c++ libraries). The
neato_node dependency is optional:
object that is taller than four inches and is durable enough
to withstand a fall of four feet.
cd to table_neato,
roscreate-pkg table_neato geometry_msgs sensor_
msgs roscpp neato_node
Second, download the phase2.cpp from this article's
link and place it into the src folder of the package we just
IMPORTANT: Download the neato_driver.py file as
well, and place it into the neato_driver folder inside the
neato_robot package. There are a couple of modifications
in that program that make the motors more responsive.
After the robot had spotted its target — to be careful —
stand beside the table and be ready to catch the robot in
case something unexpected happens.
Now, open the file in table_neato called CMakeLists.txt
and add this at the end:
Now, place the robot on a table, as well as some
If everything is well, it should compile. Start the node:
roslaunch neato_node bringup.launch
Hold the laptop and be sure to stand back away from
the table, keeping the cord down as low as possible since it
might interfere with the LIDAR scan.
Open a new tab (or new terminal window) and run the
rosrun table_neato phase2
(If you press TAB after table_neato, the rest would be
auto-filled. If you're new to Linux, that's a nice little feature
in the terminal that you can use with any command to save
time. It’s especially useful when you have to enter long
The robot should now complete the challenge (Figure
If you are confident, you can always improve my code
and/or write new code for the device.
There is still the third and final challenge, in which a
robot should find a block and push, carry, or throw it into a
shoebox mounted at the end of the table. You should think
about participating. SV
SERVO 03.2013 57