1 Introduction.- 1.1. Machine Learning.- 1.2. Robotics.- 1.2.1. Why Can’t Robbie Learn?.- 1.2.2. Teach-By-Guiding Systems.- 1.2.3. Robot Programming Systems.- 1.2.4. Myopia on the Road to Intelligent Robots.- 1.3. About the Book.- 1.3.1. Organization.- 1.3.2. On the Use of the $ Symbol.- 2 Scenario.- 2.1. Preliminaries.- 2.1.1. The Widget.- 2.1.2. Moving the Robot Arm.- 2.2. Specifying the Problem.- 2.2.1. Describing the Initial State.- 2.2.2. Specifying the Goal State.- 2.3. Attempting to Solve the Problem.- 2.4. Observing the Expert’s Plan.- 2.5. Generalizing the Solution.- 2.6. Solving the Same Problem After Learning.- 2.7. Solving Similar Problems After Learning.- 3 Explanation-Based Learning.- 3.1. Similarity-Based Learning.- 3.1.1. Applying SBL to Classification Tasks.- 3.1.2. Applying SBL to Problem-Solving Tasks.- 3.2. Learning-Apprentice Systems.- 3.3. Explanation-Based Learning.- 3.4. A Prototypical EBL System.- 3.4.1. The Performance Element.- 3.4.2. The Learning Element.- 3.4.2.1. The Understander.- 3.4.2.2. The Generalizer.- 3.5. Issues for EBL Systems.- 4 The Arms World.- 4.1. Characterizing the Robot World.- 4.1.1. The Pieces.- 4.1.2. The Workspace.- 4.1.3. The Robot Arm.- 4.1.4. The Robot World Domain Theory.- 4.2. Simulating the Robot World.- 4.2.1. The Solid Modeler.- 4.2.2. The Emulator.- 4.2.2.1. Moving the Robot Arm.- 4.2.2.2. Modeling Robot/Piece Interactions.- 4.2.3. The History Mechanism.- 5 Learning And Problem Solving.- 5.1. Knowledge Representation.- 5.1.1. The Schema System.- 5.1.1.1. State Schemata.- 5.1.1.1.1. Constraint Schemata.- 5.1.1.1.2. Joint Schemata.- 5.1.1.2. Operator Schemata.- 5.1.2. The Database Mechanism.- 5.1.2.1. State Schema Validation.- 5.1.2.2. Caching Valid State Schema Instances.- 5.1.2.3. Database Parallelism.- 5.2. The Performance Element.- 5.2.1. The Design Phase.- 5.2.2. The Planning Phase.- 5.3. The Learning Element.- 5.3.1. The Understander.- 5.3.1.1. Specifying the Initial State.- 5.3.1.2. Emulating the Input Sequence.- 5.3.1.3. Building the Causal Model.- 5.3.1.3.1. Predictive Understanding.- 5.3.1.3.2. Nonpredictive Understanding.- 5.3.1.3.3. The Schema-Activation Mechanism.- 5.3.2. The Generalizer.- 5.3.2.1. The Verification Process.- 5.3.2.1.1. Known Physical Joint Schema.- 5.3.2.1.2. New PhysicalJoint Schema.- 5.3.2.2. Extracting the Explanation.- 5.3.2.3. Building a New Operator Schema.- 5.3.2.4. Meeting the Retention Criteria.- 5.3.2.5. Integrating Newly Acquired Schemata.- 5.3.2.6. Meeting the Replacement Criteria.- 6 The Arms Implementation.- 6.1. A Note About the Implementation Language.- 6.2. Optimization Tools.- 6.2.1. $MatchMixin.- 6.2.2. $LazyCopy.- 6.3. Implementing the Solid Modeler.- 6.3.1. Homogeneous Coordinates.- 6.3.2. $WorkSpace.- 6.3.3. $PositionedObject.- 6.3.4. $Piece.- 6.3.5. $Primitive.- 6.3.6. $Block, $Cylinder.- 6.3.7. $Surface.- 6.3.8. $PlanarSurface, $CylindricalSurface.- 6.3.9. $Hole.- 6.3.10. $Arm.- 6.4. Implementing the Graphics Subsystem.- 6.4.1. $View.- 6.4.2. $Segment.- 6.5. Implementing the Schema System.- 6.5.1. $Schema.- 6.5.2. $StateSchema.- 6.5.2.1. $ConstraintSchema.- 6.5.2.2. $JointSchema.- 6.5.2.2.1. $DegreeOfFreedom.- 6.5.2.2.1.1. $PrismaticDOF, $RevoluteDOF.- 6.5.2.2.2. $CylindricalJoint.- 6.5.2.2.3. $RigidJointA.- 6.5.3. $OperatorSchema.- 6.5.3.1. $PrimitiveSchema.- 6.6. Implementing the Top Level.- 6.6.1. General Description of $Episode.- 6.6.2. Implementing the History Mechanism.- 6.6.3. Implementing the State Schema Database.- 6.6.4. Implementing the Planner.- 6.6.5. Implementing the Understander.- 6.6.6. Implementing the Verifier.- 6.6.7. Implementing the Generalizer.- 7 Scenario Revisited.- 7.1. Attempting to Solve the Problem.- 7.2. Observing the Expert’s Plan.- 7.3. Verifying the Solution.- 7.4. Generalizing the Solution.- 7.4.1. A More General New Schema.- 7.4.2. A More Operational New Schema.- 7.5. Solving the Same Problem After Learning.- 7.6. Solving Similar Problems After Learning.- 7.7. Observing Similar Problems After Learning.- 8 Summary And Future Work.- 8.1. Relation to Other Work.- 8.1.1. STRIPS.- 8.1.2. MA.- 8.1.3. LEAP.- 8.1.4. ODYSSEUS.- 8.1.5. PRODIGY.- 8.2. Extensibility of ARMS.- 8.2.1. The Solid Modeler Problem.- 8.2.2. Reasoning with Uncertainty.- 8.2.3. The Operator/State Problem.- 8.2.4. The Temporal Reasoning Problem.- 8.3. Future Research Directions.- 8.3.1. Frame Selection Problem.- 8.3.2. Other Explanation Construction Methods.- 8.3.3. When and What to Learn.- 8.3.4. When and What to Forget.- 8.3.5. Refining Existing Knowledge.- 8.3.6. Learning Control Knowledge.- 8.3.7. Extending Imperfect Domain Theories.- 8.3.8. Execution Monitoring and Plan Revision.- 8.3.9. Dealing with Multiple Plans.- 8.4. Conclusions.- Appendix A Solid Modeling Systems.- Appendix B Schema Semantics.- Appendix C A Simpler Example.- C.1. Describing the Initial State.- C.2. Attempting to Solve the Problem.- C.3. Observing the Expert’s Plan.- C.4. Verifying the Solution.- C.5. Generalizing the Solution.- C.6. Solving the Same Problem After Learning.- C.7. Solving Similar Problems After Learning.- C.8. Observing Similar Problems After Learning.- Appendix D A More Complex Example.- D.1. Describing the Initial State.- D.2. Attempting to Solve the Problem.- D.3. Observing the Expert’s Plan.- D.4. Verifying the Solution.- D.5. Generalizing the Solution.- D.5.1. A More General New Schema.- D.5.2. A More Operational New Schema.- D.6. Solving the Same Problem After Learning.- D.7. Solving Similar Problems After Learning.- Appendix E Performance Considerations.- E.1. Learning Episode 1.- E.2. Problem-Solving Episode 1.- E.3. Problem-Solving Episode 2.- E.4. Problem-Solving Episode 3.- E.5. Problem-Solving Episode 4.- E.6. Learning Episode 2.- E.7. Learning Episode 3.- E.8. Problem-Solving Episode 5.- E.9. Problem-Solving Episode 6.- Appendix F Built-in Schemata.- F.1. State Schemata.- F.1.1. Joint Schemata.- F.1.2. Degree of Freedom Schemata.- F.1.3. Constraint Schemata.- F.2. Operator Schemata.- F.2.1. Primitive Operator Schemata.- References.