Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
The Cozmo software architecture has 7 independent action tracks (source):
- HEAD raise/lower
- LIFT raise/lower
- BODY (the wheels/treads; used for driving and turning)
- FACE_IMAGE (the OLED display)
- EVENT (Anki says "ignore for now")
- AUDIO (robot speech and sound effects)
Each track can perform only one action at a time. If a new action is attempted before the current action has completed, the new action fails with a "tracks locked" failure code.
Animations and behaviors typically use combinations of tracks. When executing basic actions such as say_text or drive_straight, by default the SDK only executes one at a time, which would prevent Cozmo from, say, talking and driving simultaneously. But adding an in_parallel=True argument to each action call allows basic actions to be performed in parallel, provided that they use different tracks.
Action nodes in the cozmo_fsm package have in_parallel=True set by default. Also, they will automatically retry an action if it fails with a "tracks locked" error.