Homework 4B - More Robot Operating System (ROS)
Due Tuesday, November 18, 2014
NOTE: This assignment, like others in this class, is due at the
beginning of the class period. This means that if you are
even a minute late, you lose 20%. If you are worried about
potentially being late, turn in your homework ahead of time.
Do this by submitting them to me during office hours or by sliding it
under my office door. Do not send assignments to me through email or
leave them in my departmental mail box.
As discussed in class, we will be using the Robot Operating System (ROS)
in conjunction with TurtleBots in the course this semester. The point of
this homework is to take you through some tutorial exercises to help you
learn some of the basic features of ROS and TurtleBots. Note that, as with
Homework 3, you will not be programming any robots in this homework.
However, you will get to drive them around in simulation a bit!
This assignment is a continuation of Homework 4 that was delayed
until we could find and rectify the issues we observed with the
behavior of gmapping with the TurtleBot. Those issues have been
fixed by replacing the graphics cards in the CSN gpel machines in
DEH 115 with graphics cards compatible with Gazebo. To determine
if your own computer has the same issue we were seeing with the
gpel machines, look at the values being returned for the Kinect.
If the values are all less than one meter, your card is exhibiting
the same issue as was seen in the gpels. If the values extend
beyond one meter (up to eight meters or more), then your card is
not exhibiting the issue we observed with the gpels.
|
The assignment.
Work through the listed ROS tutorials, completing the following
exercises as you go. (Note that you may use the CSN computers in DEH 115
to complete this assignment or you may use your own computer. If
you choose to use your own computer, you will need to install ROS Hydro
(following the ROS Hydro
Installation Instructions) before completing these exercises (or use
a virtual machine such as the one
prepared by Nootrix).
As you complete these exercises and add items to your completed
assignment, number them to correspond to the numbering below as you did
with Homework 3 and 4. Note that not all exercises will result in answers
being added to your completed assignment.
- Work through the tutorial on building a map in the TurtleBot simulator. Note that when you try to launch the TurtleBot playground world, many of the models may fail to load. If any model fails to load, download and install it manually by doing the following:
wget http://gazebosim.org/models/<model_name>/model.tar.gz
(where <model_name>
is the actual name of the missing model.
tar xvf model.tar.gz -C ~/.gazebo/models
rm model.tar.gz
- For example, if the dumpster model fails to load, do this:
wget http://gazebosim.org/models/dumpster/model.tar.gz
tar xvf model.tar.gz -C ~/.gazebo/models
rm model.tar.gz
As you work through the tutorial, don't customize the simulated
TurtleBot — just use it as it is in the launch file.
- When the Gazebo window appears, position it such that you have a
good view of the robot and all of the obstacles in the environment,
then do a screen capture of it and include this in your completed
assignment.
- When the RViz window appears, position it such that you have a good
view of the robot at about the same scale as the robot in the Gazebo
window, then take a screen capture of the RViz window and include that
in your completed assignment.
- Drive the robot around using the keyboard to construct the best map
that you can of the environment. Make sure to drive on all sides of
all objects in the environment. Then take another screen capture of
the RViz window to show the map and include that map in your completed
assignment.
- In your completed assignment, label the screen-captured map from
RViz to show the space that is occupied (occluded), empty (free), and
unknown. Also label each obstacle with its type.
- Be sure to save the map you have created in a form that ROS can use
(using
rosrun map_server map_saver -f <your map
name>
as instructed in the tutorial). Note that you will
include the saved map files (.pgm and .yaml) in your electronic
submission in D2L but you won't print them out for your hard copy.
Then close out all of your running ROS/Gazebo processes and move on to
the next tutorial.
- Work through the
tutorial on autonomously navigating a known map with a TurtleBot.
However, note that you will be using a simulated TurtleBot for this
assignment. So, rather than bringing up the TurtleBot, you will run
Gazebo as with the previous tutorial.
- When the RViz window appears, position it such that you have a good
view of the robot and the map, similar to screen-captured map you have
already included in your completed assignment for Part 3, above. Take
a new screen capture of the loaded map from RViz and include it in your
completed assignment.
- Explain the various colors that surround the obstacles in the
loaded map in RViz.
- Explain the cluster of green arrows around the robot in RViz.
- Tell the robot its current (starting) position (location and
orientation), following the instructions for how to do so in the
tutorial.
- Give the robot a goal position, following the the instructions for
how to do so in the tutorial. This position should be within the map
you created for the robot but not inside (or extremely close to) one of
the obstacles.
- Observe the robot as it moves and explain the red and blue lines
that appear before the robot as it moves.
- Take a screen capture of the robot at the goal location and include
this in your completed assignment.
- Give the robot another goal position. This position should be in
the unknown space on your map, outside of the free space. Take a
screen capture of the robot after it executes this command and explain
whether the robot was able to reach this goal.
- Give the robot a third goal position. This position should be
inside one of the mapped obstacles. Take a screen capture of the robot
after it executes this command and explain whether the robot was able
to reach this goal.
What to turn in.
Turn in both an electronic copy (via D2L) and a hard copy of this
assignment.