Part I: Grasping and Transporting an Object
- In your project directory, install the following files in ms/data/motion/bone:
- Modify StartupBehavior_SetupModeSwitch.cc to add a menu
item for GraspDemo.
- To run the behavior, first place an AIBone somewhere in front of
the dog, and place an orange cone at a location further from the dog.
- Get the body into normal walking posture by using the Walk Remote
Control to walk forward a few steps. Use the HeadPointer Remote
Control to point the camera at the AIBone. Remember to turn off the
remote controls before proceeding, so they don't interfere with
- Activate the GraspDemo behavior, and watch as the dog approaches the AIBone,
grasps it, looks around for the orange landmark, and then pushes the AIBone
to the landmark. Stop the behavior when the dog reaches the landmark.
Part II: Analysis
Read the code for GraspDemo and construct an annotated state
machine diagram explaining how the behavior works. (Note: this code
was written before the Pilot, so it does everything with a simple
state machine. It should be rewritten to use the Pilot and Lookout.)
First draw all the state machine nodes and transitions. Then, for
each node, write a sentence or two to indicate what it's doing, how it
does it, and under what conditions the node is exited.
Finally, analyze the Aibo's grasp and manipulation of the bone. Is
there form closure? Force closure? Explain your answers. Also, list
all the forces acting on the bone.
Hand this in at the end of today's lab.
Part III: Extensions
Turn in your analysis today. Turn in your code for Part III by Friday,
- Come up with a suitable stopping test for the dog so that it stops when it's
close to the orange cone. For example, you might use the height of
the orange blob bounding box, or the area of the blob, as a stopping criterion.
- Add additional states to the state machine so that when the dog reaches
the landmark, it releases the AIBone and backs away from it. One way to do a
release is to use the
bone/acquire.mot motion sequence to splay the
front legs out. Then set up a walk using
bone/acquire.prm (so that
the arms stay spread out) and walk backwards for a few hundred millimeters.
Dave Touretzky and