CS371 Robotics Project: Anki Cozmo

Focus:

Monte Carlo Localization of Anki Cozmo Robot in one dimension, driving forward and backward. Use of a light source to maintain heading (i.e. drive a back and forth in a straight line)

Results:

Developed the majority of the Cozmo's functions and capabilities for mapping its world. Building a world map was not achieved and therefore Monte Carlo Localization was not feasible.

Process:

1. Anki Cozmo Setup:

1.Use the Quick Start guide included in its box to get the Anki Cozmo up and running
2.Follow the SDK download and setup specific to your machine: SDK download and setup
3.Watch the video in the link provided and follow the steps to setup the SDK. Additionally, the instructions and video help one begin running one's own python programs:http://cozmosdk.anki.com/docs/getstarted.html
Note: The SDK comes with a tutorials folder that has several tutorial programs for the Anki Cozmo. These are helpful to get an overview of the sorts of actions that the Cozmo can perform and how to write these in Python.

2. Cozmo Camera Use:

We worked through several different programs that implemented the use of Cozmo's camera from other programmers on GitHub. The most useful implementation can be found at this link:
https://github.com/nheidloff/visual-recognition-for-cozmo-with-tensorflow/blob/master/1-take-pictures/take-pictures.py
To develop the use of Cozmo's camera to take and save images for our purposes, we used the APIs for Cozmo's camera and based our implementation on the program linked above.
Link to Cozmo APIs:http://cozmosdk.anki.com/docs/api.html
Link to this author's other work: https://github.com/nheidloff/visual-recognition-for-cozmo-with-tensorflow

3. Cozmo Movement Abilities:

To develop Cozmo's movement abilities, we relied on some of the tutorial programs provided in the Cozmo SDK. The Cozmo API's are helpful for knowing all of its built in capabilities. They can be accessed through this link: http://cozmosdk.anki.com/docs/api.html

4. Cozmo World Mapping:

We developed the majority of the necessary functions and capabilities for the Cozmo Robot to map its world along a straight line of user determined length. These capabilities have not been entirely integrated allowing for Cozmo to map its world. To develop image analyzation (i.e. comparing to images or finding the light source in and image), we relied on some external sources linked below:
https://www.pyimagesearch.com/2014/09/29/finding-brightest-spot-image-using-python-opencv/
We also downloaded and imported additional packages for the analyzation methods. For future developers on this platform, those imports can be seen at the top our program and will need to be installed on the computer on which the SDK is running. All of the 'pip install' commands can be found via an internet search.