$29.99
LAB 2: INTRODUCTION TO COZMO/VECTOR
Lab Part 1 (complete individually): This checkpoint is designed to verify that you are able to run the robot and that it’s operating correctly.
1. Print and cut out the symbols you saw in the Lab 1 images, we will use them in this and other labs. The symbols can be found in an accompanying PDF. Although they are in color, you can print them in black and white if that’s easier. Our Lab 1 classifier is trained on grayscale images. The symbols are named as follows:
2. Setup your robot!
• Complete the installation of the Cozmo/Vector SDK on your computer.
• Download the Cozmo/Vector app from the app/play store.
• Go through the connect process. This requires you to connect to the robot using wifi.
• Connect your phone to your computer using USB.
• Go to settings on the app and click “Enable SDK”.
• Feel free to test out the example code that comes with the SDK.
• Note: Turn off Cozmo by placing him on his charger! Turn off Vector by pressing the black back button with the LED strip.
3. Download the checker_cozmo.py or checker_vector.py file provided with this lab. This code will serve two functions:
• Verify basic robot functions: The first part of the checker file will test the selected functionalities of your robot: audio, motors, gyroscopes, and accelerometers. You will not have to do anything for the audio and motors test. For the gyro and accelerometer test, please pick up and gently shake the robot. Listen to the robot for when to do this.
To run the code, execute one of the following, depending on your robot model:
python3 checker_cozmo.py 1 inspection drone order
python3 checker_vector.py yourSerialNumber 1 inspection drone order
Note: An /outputs folder should be included with the lab files, but make sure one exists in your directory. yourSerialNumber is the serial number of your Vector found on the bottom of your robot.
Lab Part II [75 points] (complete individually or with a partner): Write a Finite State Machine that encodes the following robot states and behavior:
Welcome Agent Yellow Jacket to the CS3630 Intelligence Agency where we like to build tiny robots to do our spy work for us! Robot Cozmo and Robot Vector are our top functioning spies and this week you have the opportunity to work with them.
Mission Field:
This class usually uses an “arena” that the robot drives around in. However, since we weren’t able to distribute those because of COVID-19, please try to make a make-shift arena with the perimeter of the arena being 26in x 18in (as seen in the figure below) and the walls being 4 inches or higher. You will only need to make the walls of the arena to enclose the robot, as any hard and ideally flat surface will serve well as the bottom of the arena. This assignment, and all future assignments, will make use of this arena.
Mission Note: One way you could set up the arena is by taking some tape to mark the perimeter of the arena and cut out some cardboard to enclose the perimeter with 4 in or higher walls. Alternatively, you could line up books around the perimeter to create the walls.
Mission 1: Surveillance (aka the Idle starting state) Background: It’s time to get in the field.
Activity: Look out for the secret symbols by monitoring the stream of images from the camera. Classify each symbol (image) using the model you developed in Lab1. If one of the symbols is recognized (i.e. not “none”), use the built-in text-to-speech functionality to have the robot say the name of the recognized symbol, then switch to the appropriate state (see below).
Mission 2: Defuse the Bomb (aka state activated by showing “order” symbol) Background: There is a bomb (oh no!). Defuse it.
Activity: Place a cube at point C on the arena. Start your robot at point D on the arena and directly face the cube. The robot should locate the cube (any cube if you have more than one), pick up the cube, drive forward with the cube to the end of the arena (point A), put down the cube, and drive backward to the robot’s starting location. Then return to the Idle state.
Mission 3: In the Heights (aka state activated by showing “drone” symbol) Background: SOS! Someone’s spying on us! Inform headquarters.
Activity: Have the robot drive in an “S” formation. Show an animation of your choice on the robot’s face. Then return to the Idle state.
Mission Note: Look into the drive_wheels function for cozmo or the set_wheel_motors function for Vector.
Mission 4: Burn Notice (aka state activated by showing “inspection” symbol) Background: You’ve been given a burn notice and must be disavowed.
Activity: Have the robot drive in a square, where each side of the square is approximately 20 cm. While driving, the robot must continuously raise and lower the lift, but do so slowly (2-3 seconds to complete lowering or raising the lift). Simultaneously, the robot must say, “I am not a spy”. Lower the lift at the end of the behavior, and return to the Idle state.
Mission Report: (aka your submission to gradescope)
Please also submit your code as a zip file named Last1First1_Last2First2.zip, corresponding to the first and last names of partner 1 and 2, respectively. The zip file can contain just a single python file, but turning it into a zip file will prevent Gradescope from renaming the file. Also make sure you enter the names of both partners in a comment at the top of the Python file. Only one partner needs to upload the submission on Gradescope. If you are working without a partner, only one name needs to be listed in the file header and file name.
Grading Rubric:
[5 pts] Say recognized symbol
[15 pts] Pick up the cube when order symbol picture is shown
[15 pts] Drive the cube forward, put it down, and return to starting location
[15 pts] Drive in an “S” formation when drone picture is shown and show animation
[15 pts] Drive in a square when inspection symbol picture is shown
[15 pts] Raise lift up and down while driving in square