Calypso 0.9.07 has been released. This includes all features from the experimental 0.9.06 beta release plus wonderful additional new features and bug fixes. Updates are free. To update to the new release, run Calypso, go to Home > Settings and choose "Update Calypso Now".
Coolest New Feature: Walls
The most significant new feature in Calypso 0.9.07 is the addition of walls to the map layout. Walls have predefined shapes and include doorways of known dimensions. Walls contain special symbols called "ArUco markers" that allow Cozmo to recognize each wall and its doorways. Walls can be used to construct custom environments for Cozmo, but even more importantly, they serve as visual landmarks that allow him to be sure of his location. When a map contains both rooms and walls, seeing the walls helps Cozmo figure out where the rooms are.
New Language Features
- The "visit" action visits a room, and the "visiting" predicate is true when Cozmo is located within a room. These features were present in 0.9.05 but they are much more useful now that walls are available as landmarks.
- The new "roll" action tells Cozmo to roll a cube. You can optionally specify an orientation, such a "roll it upright" or "roll it sideways". If you don't specify an orientation, Cozmo tries to roll the cube in a way that changes its orientation, but if that's not possible (due to obstructed access), he just rolls it so that a different face is touching the floor.
- Scores can now have names, e.g. "Time" or "Successes", which are shown when the score is displayed. To name a score, put the pencil on the score tile (e.g., "red score") and press the Y button. Score names are displayed next to the score tile.
- Other characters, such as the cubes and the charger, can now speak, either in simulator mode or when running on the real robot, using the Google Chrome speech API. And in simulator mode Cozmo now also uses this API to speak.
- The "look" and "lift" actions now accept "and then..." modifiers. (This was announced in Calypso 0.9.05 but a bug made the feature inaccessible.)
Rule Editor Changes
- When entering a "visit" or "visiting" tile, you can now choose from a list of current room names instead of having to type in the name by hand.
- The "NOT" decorator is smarter now: entering a "NOT" tile immediately takes you to a menu where you can choose the item to be negated. Backing out of the menu cancels the "NOT" rather than leaving a stranded NOT tile behind.
- Actions that suspend the rule interpreter, such as "grab", "express", or "move ahead <distance>", are now displayed using a tile with a serrated right edge. This helps make clear which actions cause suspension and which do not. Actions such as "play" normally do not suspend, but adding an "and then..." modifier will cause suspension. The shape of an action tile like "play" now changes when an "and then..." modifier is present, to reflect this change in behavior. Actions that execute immediately and thus cannot suspend, such as "+score" or "glow", and actions that always suspend, such as "grab", don't need an "and then..." modifier and do not offer one.
- You can now start execution on a specific page by going to that page, putting the pencil on the page number, and then running the program in the usual way ("back" button on the game controller, Backspace key on the PC keyboard, or Delete key on the Mac.) If the pencil is not on the page number then execution will begin on page 1, as before.
- Rules can now be temporarily disabled by putting the pencil on the WHEN tile and pressing the Y button. Press the button again to re-enable the rule. This is convenient for testing different variants of a rule or different parts of a page of code.
World Map Changes
- This release introduces a new hybrid path planner that combines a wavefront algorithm with an RRT planner. Whenever Cozmo begins a "move toward" or "visit" action, the path he's planning to follow is now displayed on the world map as a dotted line.
- In simulator mode, you can now click and drag objects in the world map to move them around while the program is running. You can use this to make Cozmo chase a cube or marker. You can also change a cube's orientation by right clicking on it. (Previously you could change its color but not its orientation.) And you can move objects in and out of the dock.
- The robot is now grayed on the world map when it's in a "delocalized" state. Delocalized means the robot doesn't know where it is, but landmarks (walls) are available that could tell the robot where it is if it manages to see them. Walls are the only landmarks right now; cubes aren't reliable landmarks because they've movable, and custom markers aren't landmarks because they're intended for other things. Note that if the robot has no landmarks in its world then it will not be grayed.
- You can now zoom/pan/rotate the world map: left trigger in the world map ("move camera") allows you to zoom/pan/rotate the map using the game controller sticks and shoulder buttons. There are mouse and keyboard equivalents as well. See the button help in the top left corner of the display for details.
- A new toggle-able "follow mode" in the world map keeps the robot centered in the map while the terrain moves past it.
Map Layout Changes
- The map layout editor now displays rulers along the top and left edges so you can measure distances. If you rotate the view to some angle that is not a multiple of 90 degrees then the rulers disappear; they come back when the rotation angle is a multiple of 90 degrees.
- The position of the mouse pointer in the map layout editor is now displayed in a box in the bottom left corner. Units are in millimeters, matching the rulers.
- The dock, found in the top right corner of the world map, now also appears in the map layout, and cubes can be started out in the dock by moving them there from the layout palette.
State Machine Changes
- In order to keep state machines logically organized, we generally want code to proceed from lower numbered pages to higher numbered pages, not jump around randomly. For example, a simple linear sequence of actions should be implemented on sequential pages like 4-5-6, not 4-9-3. Now there are tools that make it easy to manipulate state machine structure by inserting, deleting, or moving pages. The remaining pages and all page references are automatically renumbered when you do this.
- To manipulate state machine structure in the rule editor, right click on the page number at the top of the page to bring up a context menu of page operations.
- You can also manipulate individual pages in the state machine view by right clicking on a state node.