In Figure 4(a), Frames 0 through 1 correspond to the first subevent of a *pick up* event, Frames 2 through 13 correspond to the second subevent, and Frames 14 through 22 correspond to the third subevent. In Figure 4(b), Frames 0 through 13 correspond to the first subevent of a *put down* event, Frames 14 through 22 correspond to the second subevent, and Frames 23 through 32 correspond to the third subevent. LEONARD correctly recognizes these as instances of *pick up* and *put down* respectively. In Figure 16, Frames 0 through 11, 12 through 23, and 24 through 30 correspond to the three subevents of a *put down* event. LEONARD correctly recognizes this as a *put down* event and also as a *stack* event. In Figure 17, Frames 0 through 10, 11 through 24, and 25 through 33 correspond to the three subevents of a *pick up* event. LEONARD correctly recognizes this as a *pick* up event and also as an *unstack* event. In Figure 18, Frames 0 through 8, 9 through 16, and 17 through 45 correspond to the three subevents of a *pick up* event and Frames 17 through 33, 34 through 45, and 46 through 52 correspond to the three subevents of a *put down* event. LEONARD
correctly recognizes the combination of these two events as a *move* event. In Figure 19, Frames 18 through 32, 33 through 40, and 41 through 46 correspond to the three subevents of a *put down* event and Frames 57 through 67 and 68 through 87 correspond to the first and third subevents of a second put down event, with the second subevent being empty. The second *put down* event is also correctly recognized as a *stack* event and the combination of these two events is correctly recognized as an assemble event. In Figure 20, Frames 0 through 18, 19 through 22, and 23 through 50 correspond to the three subevents of a *pick up* event and Frames 23 through 56, 57 through 62, and 63 through 87 correspond to the three subevents of a second *pick up* event. The first *pick up* event is also correctly recognized as an *unstack* event and the combination of these two events is correctly recognized as a *disassemble* event. These examples show that LEONARD correctly recognizes each of the seven event types with no false positives.

As discussed in the introduction, using force dynamics and event logic to recognize events offers several advantages over the prior approach of using motion profile and hidden Markov models.

 robustness against variance in motion profile robustness against presence of extraneous objects in the field of view

 ability to perform temporal and spatial segmentation of events ability to detect non-occurrence of events
Figures 26 through 35 illustrate these advantages. Figure 26 shows a *pick up* event from the left in contrast to Figure 4(a) which is from the right. Even though these have different motion profiles, Figure 31 shows that LEONARD correctly recognizes that these exhibit the same sequence of changes in force-dynamic relations and constitute the same event type, namely *pick up*. Figure 27 shows a *pick up* event with two extraneous blocks in the field of view. Figure 32 shows that LEONARD correctly recognizes that these extraneous blocks do not participate in any events and, despite their presence, the truth conditions for a *pick up* event still hold between the other objects. Figure 28 shows a *pick up* event, followed by a *put down* event, followed by another *pick up* event, followed by another *put down* event. Figure 33 shows that LEONARD correctly recognizes this sequence of four event occurrences. Figure 29 shows two simultaneous *pick up* events. Figure 34 shows that LEONARD correctly recognizes these two simultaneous event occurrences. Finally, Figure 30 shows two non-events. Figure 35 shows that LEONARD is not fooled into thinking that these constitute pick up or *put down* events, even though portions of these events have similar motion