CRAM v0.5.0

New features:

  • 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:
    • cram_pr2_pick_place_plans → cram_mobile_pick_place_plans
    • cram_pr2_plans → cram_pr2_plans_deprecated
  • 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.

See ChangeLog for more details.