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.

  1. 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").
    1. 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.
    2. 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.
    3. 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.
    4. Leave Gazebo and rqt_graph running and go on to the next tutorial.
  2. Work through the tutorial on exploring the Gazebo world. (Again, note that you should not need to install software on the CSN machines.)
    1. Explain two differences between controlling the TurtleBot using turtlebot_teleop and kobuki_keyop from the perspective of the person doing the teleoperation.
    2. 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.
    3. 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.
    4. 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..
    5. 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.
      Image of RVis showing particular sensor
        readings
      Capture your own similar image and add this to your completed assignment. Explain:
      1. what controls you needed to adjust in RViz to obtain your angry eye picture,
      2. what movements you needed to have your simulated TurtleBot execute to obtain your angry eye picture, and
      3. 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.