What still needs to be fixed, possible improvements, and special behaviors:
- Better prediction
Cozmo makes good predictions of his location, but this prediction could be better, as it is
consistently off by around 10 degrees. This could be improved by finding a better tuning for the
diff argument and the bound for the checker (if size > *: break) in the mcl algorithm.
- Panorama Stitching
The panorama stitching is still a little fidgety as it sometimes doesn’t stitch images if they are
too similar or too different. Also an interesting behavior we observed was that the panorama is
almost always decent when the robot is set on the ground with distinguishable items in the
environment. The panorama is almost always bad when the robot is set on an elevated platform. Also
the stiiching process can take a very long time, and in that regard makes the whole process inefficient.
- Waiting time for dislocating robots
When you dislocate the robot, watch out for the timing. And make sure to not block it camera.
Refer to on_robot_picked_up() in take_picture.py for details. The implementation can be easily
modified.
- Termination of program
Our current method to terminate the program is to use control-c in the terminal multiple times. This
could be done in a better way, i.e. when the button on the robot is pressed, when it’s lifted in a
special way, when the cube is tapped...
- Final Advice
Making the panorama can in principle give a more accurate localize result but it requires more
careful tuning as mentioned above and better measurement model. If at any point of your project
you find making panorama to be unnecessary, feel free to jump to other ideas. An interesting idea
brought up by Dr. Neller is that we can make our own stitcher and only stich images partially when
needed. ie. say we localized to be at a certain image, we can then stitch this image with its neighbors
and get a more accurate result. Good luck!