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
Based on our findings we conclude that Cozmo was able to successfully localize. In short, Cozmo found home!