Created new package CRAM-PR2-FETCH-DELIVER-PLANS with FETCHING and DELIVERING plans that fetch an object from a surface in the environment and deliver it at the specified location on a surface.
Created new types of plan failures, mostly high-level ones, such as OBJECT-UNFETCHABLE.
Created new package CRAM-PR2-PROJ-REASONING where projection-based reasoning is done, etc. reasoning about collisions.
Created new package CRAM-PR2-PICK-PLACE-DEMO with a pick and place scenario in the kitchen.
Manipulation configuration calculations have been majorly improved:
Pregrasp and postgrasp are now transforms and not poses to enable easy multiplication
The gripper coordinate frame of different robots does not influence object grasping configuration anymore
Pregrasp configuration is now calculated w.r.t the object, such that the gripper approaches the object without tipping it over.
Grasping actions can now also accept a list like “'(left right)”
Some new objects have been added, such as cereal, etc.
Old offsets have been fixed to work better on the real robot.
Basic logging for pick and place actions has been implemented, see “cram_cloud_logger” package:
Object designators can be logged.
Poses can be logged.
Location designators can be logged.
Fetch and deliver action designators can be logged with their parameters but without action hierarchy.
Success or failure boolean of an action can be logged.
When picking action asks for IK solutions, now a torso angle sampling is also done to increase the robot's reachability area.
Implemented a caching mechanism for IK solver as it seemed to have a problem with configurations that have already been processed.
A pretty printer for DESIGNATOR class has been implemented.
TF utilities from “cram_pr2_cloud” package were moved into “cram_tf” package, they're quite useful (multiplying transform-stamped-s etc.), check them out.
Perceived object events are now handled correctly by the belief state, such that perceived objects get spawned in the bullet world etc.
Object attachment and detachment events are now handled correctly, including Bullet world attachments.
(a location (of (an object (pose … ) now returns the pose of the object.
Added ROBOT-CARRYING-POSES to go together with ROBOT-PARKING-POSES.
Implemented WITH-PROJECTED-ROBOT & WITH-SIMULATED-ROBOT & WITH-REAL-ROBOT macros for running plans accordingly.
Renamed:
Rearranged and cleaned up a lot of code, especially the pick and place plans.
An initial version of a script for checking ASDF dependencies and configuring workspaces with CATKIN_IGNORES was implemented.