Research Article

Constraint Satisfaction for Motion Feasibility Checking

Table 6

Mapping action preconditions into constraints.

ActionPreconditionCSP constraint

MoveBaserobotAt (Binit), objectAt (object03, Oinit),reachablaBasePose (Breach)
ForPickUpreachableBasePose (pr2, object03, Oinit, Breach),validBasePath (Binit, Breach)
validBasePath (pr2, Binit, Breach)

PickUp Generalempty (hand), robotAt (Breach), objectAt (obj, Oinit), handAt (rgripper, Hinit),graspableHandPose (Hgrasp, Breach)
graspableHandPose (rgripper, object03, Oinit, Breach, Hgrasp),preGraspableHandPose (Hpre, Hgrasp, Breach)
preGraspableHandPose (rgripper, object03, Oinit, Hgrasp, Hpre),postGraspableHandPose (Hpost, Hgrasp, Breach)
postGraspableHandPose (rgripper, object03, Oinit, Hgrasp, Hpost),validHandPath (Hinit, Hpre, Breach)
validHandPath (rgripper, Breach, Hinit, Hpre),validHandPath (Hpre, Hgrasp, Breach)
validHandPath (rgripper, Breach, Hpre, Hgrasp),validHandPath (Hgrasp, Hpost, Breach)
validHandPath (rgripper, Breach, Hgrasp, Hpost),validHandPath (Hpost, Hinit, Breach)
validHandPath (rgripper, Breach, Hpost, Hinit)

MoveBaserobotAt (Breach), graspedBy (object03, rgripper),placeableBasePose (Bplace)
ForPutDown
placeableBasePose (pr2, object03, table02, Bplace),validBasePath (Breach, Bplace)
validBasePath (pr2, Breach, Bplace)

PutDown GeneralgraspedBy (object03, rgripper),placeableObjectPose (Oplace)
robotAt (Bplace), handAt (rgripper, Hinit),placeableHandPose (Bplace, Oplace, Hplace)
placeableObjectLocation (object03, table02, Oplace),lowerableHandPose (Bplace, Oplace, Hplace, Hlow)
placeableHandPose (rgripper, object03, Bplace, Oplace, Hplace),retractableHandPose (Bplace, Oplace, Hplace, Hret)
lowerableHandPose (rgripper, object03, Bplace, Oplace, Hplace, Hlow),validHandPath (Bplace, Hinit, Hlow)
retractableHandPose (rgripper, object03, Bplace, Oplace, Hplace, Hret),validHandPath (Bplace, Hlow, Hplace)
validHandPath (rgripper, Bplace, Hinit, Hlow),validHandPath (Bplace, Hplace, Hret)
validHandPath (rgripper, Bplace, Hlow, Hplace),validHandPath (Bplace, Hret, Hinit)
validHandPath (rgripper, Bplace, Hplace, Hret),
validHandPath (rgripper, Bplace, Hret, Hinit)