Homework 4 - More Robot Operating System (ROS)
Due Wednesday, October 7, 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!
The assignment.
Work through the 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
the CSN Linux machines in DEH 115, add the following line to your .*rc
file: export LIBGL_ALWAYS_SOFTWARE=1
. 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. Note that not all exercises will result in answers being
added to your completed assignment.
- Work through the
tutorial on running the TurtleBot simulator. Note that, if you are
using the CSN machines, you should not need to install anything (you do
not need to execute "
sudo apt-get install
ros-hydro-turtlebot-simulator
"). Also, if you properly modified
your .*rc file while completing Homework 3, you won’t need to source
the setup file (you won’t need to execute "source
/opt/ros/hydro/setup.bash
"), you’ll just need to launch
gazebo with a simulated TurtleBot ("roslaunch turtlebot_gazebo
turtlebot_empty_world.launch
").
- When the Gazebo window appears, zoom in on the robot and orient the
view of it in such a way that the words on the robot are right-size up
and easily legible. Do a screen capture of the Gazebo window at this
point and add this to your completed assignment.
- After the Gazebo window is present but before you go on with the
rest of the tutorial, start rqt_graph. Do a screen capture of the
rqt_graph window and add this to your completed assignment.
- Describe what Gazebo is in a sentence or two and add this to your
assignment. Note that this tutorial does not describe Gazebo. You may
need to search elsewhere for this information. Be sure that this
description is in your own words. Do not simply copy and paste a
description from elsewhere.
- Leave Gazebo and rqt_graph running and go on to the next
tutorial.
- Work through the tutorial on exploring the Gazebo world. (Again, note that you should not need to install software on the CSN machines.)
- Explain two differences between controlling the TurtleBot using
turtlebot_teleop and kobuki_keyop from the perspective of the person
doing the teleoperation.
- Do a screen capture of rqt_graph with each teleop program running
and add these to your completed assignment. Explain a difference
between these two teleop programs from the perspective of interprocess
communication.
- Once you have launched RViz, return to the Gazebo window that was
created when you first launched Gazebo while completing the previous
tutorial. Add one cube, one sphere, and one cylinder to the Gazebo
world. Now, return to RViz and check the box to display the LaserScan
information, then position the robot to face the cylinder and move
toward the cylinder until the curve of the laser on the front of the
cylinder is clearly visible in RViz. Do a screen capture of RViz at
this point and add this to your completed assignment.
- Return to RViz and turn on Image display. Adjust the image
controls until a camera image of the cylinder appears in RViz. Do a
screen capture of RViz at this point and add this to your completed
assignment and explain what you had to adjust in the RViz controls to
obtain a camera image in RViz..
- Adjust the RViz display controls and move the robot until you
obtain a picture of the “angry eye” staring at your robot,
similar to the one shown here.
Capture your own similar image and add this to your completed
assignment. Explain:
- what controls you needed to adjust in RViz to obtain your angry
eye picture,
- what movements you needed to have your simulated TurtleBot
execute to obtain your angry eye picture, and
- what causes the sensor readings to produce each part of the
angry eye image.
What to turn in.
Turn in both an electronic copy (via D2L) and a hard copy of this
assignment.