Lab #4: Physical Turtlebot

       Introduction

The objective of this lab is to graduate from simulation to the physical turtlebot. I encourage you to work in teams if you'd like to. You are welcome to copy code from the internet, but make sure to credit where it came from.

Objectives

Upon successful completion of this lab, you will be able to:

  1. Run the physical turtlebot
  2. Have a better understand of the complexity of running code on physical robots
Assignment
  1. Your goal is to build upon Lab 3 by executing it (or similar code) on the physical turtlebot. Expect this to be more difficult than it sounds. I encourage you to start early, google tutorials on how to connect to the physical turtlebot / set up your laptop to connect to it, and post questions for us on Piazza. James will be particularly helpful for this lab since he's struggled a lot with turtlebots before.
  2. Make your open loop, kinematics-based code for a square. Place markers on the floor where your robot should make right angle turns. Take a video of the robot with a downward-facing camea to show how close you get to the 3 intermediate points and the end point. Estimate how close the end point of the robot is to the desired end point.
  3. Run your closed-loop code on the physical robot for a square by strategically placing four objects in the environment. Using the same four markers as before, record a top-down video and measure how the robot got to the final position.
Hand in
In Blackboard, please submit the following:
  1. A text file with:
    • Your name
    • The names of any people you worked with (optional)
    • Any on-line references / websites you found particularly useful
    • Links to the two videos you recorded
    • The measurement of the distance between the end point of your open-loop control robot and the desired location
    • The measurement of the distance between the end point of your closed-loop control robot and the desired location
    • If getting the robot to trace out a square exactly was really important, which method would use use, and why? How would you enhance your code so that it was as accuate as possible?
    • Extra credit: include commentary in the video about how the robot works (understandable by an undergraduate student who has not taken this class).
  2. The code you wrote for the assignment and any instructions needed to execute it.
Grading
  1. Basic text file content: 10
  2. Measurement and explination for open-loop control: 15
  3. Measurement and explination for closed-loop control: 15
  4. Code for kinematics-based driver: 20
  5. Code for vision-based driver: 20
  6. Videos: 20