15-494/694 Cognitive Robotics: Lab 1

I. Meet Cozmo

  1. Get a robot, a charger, a Kindle, and a set of light cubes from the cabinet.
  2. Plug the charger into a power strip. Turn on the robot by placing it on the charger.
  3. Raise and lower the lift to reveal the robot's network name and WiFi password.
  4. Turn on the Kindle and start the Cozmo app.
  5. The app may offer you a choice of robots. Choose the one whose network name matches your robot.
  6. Let Cozmo run around and see his light cubes, but don't let him fall off the table!
  7. Use the app to play a game with Cozmo, such as Quick Tap.

II. Introduction to the Cozmo SDK

  1. Log in to the workstation.
  2. Clone a copy of the SDK by doing:
    $ cd
    $ git clone https://github.com/anki/cozmo-python-sdk
  3. Edit your PATH variable to include /opt/platform-tools so you can access the "adb" (Android Debug Bridge) utility. You can do this by including the following line in your .bashrc file and then doing "source .bashrc":
    export PATH=/opt/platform-tools:$PATH
  4. Connect the Kindle to the workstation via its USB cable.
  5. In a shell, type "adb devices" and you should see the Kindle listed. If the message says "Unauthorized" you need to go to the Kindle's Settings page, select "Device Options", scroll down to "Serial Number", and tap the button repeatedly until it reveals the "Developer Options" button. Then click on that and turn on USB debugging.
  6. Run the Cozmo app, connect to the Cozmo, click on the gear icon in the top right corner, scroll right, and select "Enter SDK Mode". You should see a mostly black screen.
  7. Run the Hello World demo by doing:
    $ cd ~/cozmo-python-sdk/examples/tutorials/01_basics
    $ ./01_hello_world.py
  8. Examine the source code of 01_hello_world.py.
  9. Try some of the other tutorials in the 01_basics directory.
  10. Try the Cozmo remote control app by doing:
    $ cd ~/cozmo-python-sdk/examples/apps
    $ ./remote_control_cozmo.py
  11. Close the browser window and exit Python when you're done.

III. Introduction to Cozmo-Tools

  1. Download a private copy of the cozmo-tools package by doing:
        $ cd
        $ git clone https://github.com/touretzkyds/cozmo-tools

  2. Add the cozmo-tools directory to your search path by putting the following lines in your .bashrc and then doing "source .bashrc":
    export PATH=~/cozmo-tools:$PATH
    export PYTHONPATH=~/cozmo-tools
  3. Run the simple_cli command line interpreter and display the camera viewer by doing:
        $ simple_cli
        >> show viewer
  4. Try showing Cozmo its cubes and see how they are displayed in the camera viewer. Also try showing Cozmo a face.
  5. Use dir(robot) to examine the fields of the variable robot, and similarly for world and cube1.
  6. Run the worldmap viewer by typing show worldmap_viewer. Press the "h" key in the worldmap viewer window for keyboard command help.
  7. Let Cozmo watch one of his cubes as you move it around, and observe how the display changes in the worldmap viewer.

IV. Exploring the Occupancy Grid

  1. Press the "m" key in the worldmap viewer window to see Cozmo's occupancy grid.
  2. Type show particle_viewer to display the particle filter that cozmo-tools uses for localization.
  3. Type "h" in the particle filter window for keyboard help. Notice that you can use the WASD keys to drive Cozmo.
  4. Drive Cozmo around and watch how the occupancy grid representation changes.
  5. Try picking up Cozmo and putting him down in a position where he can't see any cubes. What happens?
  6. Using the WASD keys in the particle viewer window, turn Cozmo so he can see a cube. What happens in the worldmap viewer?

V. Clean Up

  1. Exit the Cozmo app. This is very important because as long as the app is running, Cozmo will be talking to his cubes and running down their batteries.
  2. Put the robot, charger, Kindle, USB cable, and light cubes back in the cabinet and set them up so that both the robot and the Kindle are charging.
  3. Log out of the workstation.

Dave Touretzky