Introduction
Meet OJ, the Cozmo robot. OJ is a small robot that can be programmed to do
a variety of tasks. Using Anki Cozmo we were tasked with improving an
implemation of
Monte Carlo Localiztion.
The goal of the robot is to be able to solve the
Kidnapped robot problem.
Goals
Develop a Robust Localization System: Create a reliable Monte Carlo
Localization system that enables Cozmo to accurately determine its
position within different environments, overcoming challenges such as
uncertainty and dynamic changes.
Enhance Cozmo's Navigational Abilities: Improve Cozmo's ability to
navigate back to its initial "home state" even when faced with
disruptions or being moved to an unknown location, effectively solving
the Kidnapped Robot Problem.
Future Improvements
-
Currently, Cozmo determines how far away a block is from him based on
the area of the square he draws around it. It would be useful to know
approximately what sizes correspond with what distances in mm.
-
As of now, Cozmo is only able to gather intelligence on where he
starts. The next step would be to have him find his way back once
moved.
-
To do this, our group talked about having him spin until he's seen
all of the blocks, marking their distance from him.
-
Once he's done that, he should move towards one of the blocks
according to some logic (some ideas we had were moving towards the
furthest box, or trying to move in between the two closest
blocks).
-
While localizing his position, he should stop every few steps to
recalibrate his direction.
-
Once he has returned to what he thinks is the middle, he should use
the localization method implemented by Ben Durham's group to ensure
his proper direction.
Conclusions
-
We had a great deal of confusion and difficulty when we tried to
connect to the Cozmo SDK via Android while Apple seemed to connect
with far less difficulty. A more detailed explanation of how to
connect to the Cozmo SDK as well as an ios debugger might be more
helpful (Python 3.7).
-
Potential improvements / adjusting parameters seemed to vary in their
effectiveness. For example, lowering the pose population to more
sparsely sample the pose space seemed to improve the time by roughly
10 seconds as well as reduce the computational load. Conversely, other
parameters such as number of pictures and angles before and after the
localization process resulted in Cozmo just getting more confused
(taking more time) and more likely to guess an incorrect home
location.
-
It also seems that since Monte Carlo Localization has been implemented
successfully in prior years' code, we can potentially improve certain
areas such as computational complexity, processing time, and
localization accuracy. However, these goals of the project could also
be expanded into different types of localization such as 2D
localization to increase the complexity and creativity of the projects
and methods developed rather than seeking to improve small aspects of
the prior year's code. This would also allow for the Anki Cozmo
Project to grow into branches of increasingly complex feats for the
generations of CS371 students to come.