Before recording, a program and a mapping has to be loaded. The program can be empty with only one section, <robot>. For example, an empty snake program is shown in Fig. 3.1.

The hardware has to be powered and "Connect to Serial" has to be checked. Look at the readings in column "angle" and see if the readings are right. One may use "zero" in "Hardware" menu to command all modules to zero and see if the readings are close to zero (within 3-5 degrees). Then hit "slack" in "Hardware" before recording. By default, all modules are selected in the "select" column. One can deselect and reselect modules to be recorded.
There are two types of records, discrete or continuous. When recording, a discrete record is recorded frame by frame, by hitting the "Record" button; a continuous frame is recorded continuously by hitting the "Record" button once and stopped by hitting the "Record" button again. When playing, a discrete record assumes time to be evenly distributed among states and a continuous record uses the relative time duration recorded. Use the "Record" menu to start a new discrete or continuous recording. To save the current recording to a file, use "save" in the "Record" menu.
One can edit the recorded file using "edit" in "Record" menu. If there is a record in memory, a window comes out as in Fig. 3.2.

Each row corresponds to a time frame and each column corresponds to a module, with logical ID displayed at the top. The leftmost column displays the recorded time instant (in milliseconds) for each frame if it is a continuous recording. One may edit the table and save it back to the internal memory by hitting the "Save" button. To save the modified recording to a file, use "save" in "Record" menu.
One may load a recorded file and edit it. There are two types of load, "load new" would create a new recording from the file and "load append" would append to the current recording in memory.
A record can be played just as any other automaton. All attributes available to behaviors, e.g. offset, phase, period, etc., can be applied here. A record automaton is defined with a reference to the file name. Figure 3.3 shows a program script that plays the record file "snakeDiscrete.xml". One can also combine other types of automata with a record automaton in one program.

To play a record only once or a couple of cycles, one can put the behavior attribute "cycles" to be 1, or N for N cycles. Without explicit cycles, the cyclic mode is assumed. One can also start the record after certain time specified the "start" attribute. Figure 3.4 shows a program script that plays the record once, starting after 2 seconds. Both "cycles" and "start" attributes can be used for any other automaton as well.

Exercise 3.1 Record a discrete record and a continuous records and play it by modifying the file name in snake_record.xml. [Easy]
Exercise 3.2 Record only a selected group of modules and apply it to two groups at the same time. [Median]