Conclusions: Did Cozmo Find Home?

Conclusion:

We were able to integrate the Cozmo SDK and the OpenCV library to take pictures using the Cozmo robot and stitch them together into a panorama. Once we created the panorama, we were then able to use it as a map for the MCL algorithm.

We then kidnapped the robot by having it rotate to face a random direction, and then performed Monte Carlo Localization to try to have the robot find its position within the image. After several iterations we were able to localize Cozmo; however, we faced many challenges along the way:

  • Imperfect Cozmo rotations
  • Although the stitcher was able to stitch the images together, often we ran into issues when building the panorama due to lack of detail in the individual images
  • Because we are using a panorama image as a map of the environment, it has to be consistent with a great detail in order to work which proved difficult with people moving around in the room and finding a space that worked to test
This image shows an initial random distribution of X values (Orange) within the image compared to the localized values after running MCL algorithm (Blue).
The graph represents each pixel value on the X-axis with the frequency of the pixel appearances on the Y-axis. The tight cluster of values represents Cozmo’s home state.

Based on our findings we conclude that Cozmo was able to successfully localize. In short, Cozmo found home!

css.php