CS3630 LAB 6: DELIVERY ROBOT solution




5/5 - (4 votes)

In the final lab, your goal is to transform Cozmo into a warehouse package delivery robot,
enabling it to deliver packages (cubes) to the right destinations.
Arena Setup: The arena should be set up as follows:
Red lines show the center placement of localization symbols. This is the same layout we used in
Lab 4. Just as in Lab 4, the specific location of each symbol marker will not be known a priori.
The gray square in the middle of the arena is off limits to the robot. The area is exactly the size
of a cube, and you can use a cube to help draw a square on the arena to help designate the area.
The robot should avoid entering this area and will be penalized if it does so. (Imagine that the
warehouse manager stands in this area. The robot should not run the manager over.)
The corner areas marked A, B, C, and D are cube
pickup areas. Three of the four areas will have one cube
each, and one area will be empty. The robot’s job is to
deliver each cube to its intended destination, as shown on
the right. The ID of the cube does not matter, the cubes
will be arranged randomly on the starting locations (e.g., cube from A goes to Drone).
Your robot will be turned on somewhere in the arena, not too close to the off-limits area in the
center. The robot must localize, then move the cubes in any order to their destination.
 We are not providing any starter code for this lab. We encourage you to reuse code from
previous labs. You should also generate your own map if needed.
 The initial position of the cubes will not be touching the wall.
 The final position of the cubes should be within 3 inches of the intended marker.
Directly in front of the marker is fine, but might affect localization.
 Once the robot has localized, it is possible to memorize the location of all of the
symbol markers and from then on use this information to localize more easily. This is
not required but might be a useful strategy. There are other possible strategies as well.
 5 minute limit per demo
 You may use any built-in Cozmo functions
Grading Rubric:
 Localization – 20 Points
◦ You will need to showcase your robot localizing within the arena as the start position
is not known. This only needs to be demonstrated once though you may choose to
localize multiple times.
▪ If you choose to, you can forfeit these 20 points and start your robot in a
predefined location.
▪ A request to kidnap and place Cozmo randomly in the arena can be done at a cost
of 5 points.
 Correct identification of delivery locations – 30 Points
◦ Demonstrate that your code identifies cubes in the areas marked A, B, C, and D via
your localization and then identifies the correct delivery location for that cube using
marker recognition.
▪ 10 Points for each correctly identified delivery location.
 Use of path planning for both picking up and delivering cubes – 50 Points
◦ Showcasing a valid path for both picking up and delivering is worth different
amounts for each cube
▪ The path planning for the first cube is worth 20 points.
▪ The path planning for the second cube is worth 10 points.
▪ The path planning for the third cube is worth 5 points.
▪ Successful delivery of each cube without error is worth 5 points.
 Entering the gray square – -5 Points
◦ This penalty will be invoked for every time that your robot crosses into this area.
Submission: Submit all your code for this lab in a single zip file named
Last1First1_Last2First2.zip (the first and last names of partner 1 and 2,
respectively). Only one partner should upload the file to T-Square. If you relied significantly on
any external resources to complete the lab, please reference these in the submission comments.
Please bring all Cozmo accessories, as well as localization symbol cards, with you to the demo
and return the robot to the course staff after the demo. Make sure we check off that you have
returned the robot.