One of the new capabilities we developed was the SmartMove. SmartMoves choose a set of possible parent frames based on predicates generated by our knowledge architecture, Predicator. We usually set things up to perform SmartMoves for objects that were on one side or another of a particular marker:
In particular we ran a demo at Hannover Messe that had us manipulating sets of blocks. The robot would pick up a block from the right side of the table while a human user assembled a structure on the right side. More complex tasks are possible, where the robot demonstrates more autonomy, but we thought this made for a particularly compelling example of human-machine collaboration. In particular, people from the crowd loved being able to put their hand out and have the robot give them a block.
This is the only video of me performing the task:
I was usually busy explaining things or making sure things were running smoothly. The robot was a lot of fun to work with, though, and I think the SmartMove capability we added made programming it that little bit more natural and powerful.