MoveIt Pro API
Core Behaviors for MoveIt Pro
Loading...
Searching...
No Matches
moveit_studio::behaviors::SetupMTCGraspThenMoveAlongArcPull Class Referencefinal

Configures MTC stages to perform a motion that can be parameterized as a grasp followed by a pulling motion in a screw-trajectory (a circular arc). Examples in practice include opening pull doors and drawers. More...

#include <setup_mtc_grasp_then_move_along_arc_pull.hpp>

Inheritance diagram for moveit_studio::behaviors::SetupMTCGraspThenMoveAlongArcPull:
Collaboration diagram for moveit_studio::behaviors::SetupMTCGraspThenMoveAlongArcPull:

Public Member Functions

 SetupMTCGraspThenMoveAlongArcPull (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &shared_resources)
 
BT::NodeStatus tick () override
 
- Public Member Functions inherited from moveit_studio::behaviors::SharedResourcesNode< BT::SyncActionNode >
 SharedResourcesNode (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &shared_resources)
 Constructor for SharedResourcesNode. Called by BT::BehaviorTreeFactory when creating a new behavior tree containing this node.
 

Static Public Member Functions

static BT::PortsList providedPorts ()
 
static BT::KeyValueVector metadata ()
 

Additional Inherited Members

- Protected Attributes inherited from moveit_studio::behaviors::SharedResourcesNode< BT::SyncActionNode >
std::shared_ptr< BehaviorContextshared_resources_
 

Detailed Description

Configures MTC stages to perform a motion that can be parameterized as a grasp followed by a pulling motion in a screw-trajectory (a circular arc). Examples in practice include opening pull doors and drawers.

The following parameters are used to configure MTC stages added by this Behavior:

  • ARM_GROUP_NAME: group name used for planning
  • END_EFFECTOR_GROUP_NAME: group name for end effector, used to Open/Close gripper
  • END_EFFECTOR_NAME: name of end effector
  • IK_FRAME_NAME: frame name of the grasp pose, used for IK and relative motion planning
  • END_EFFECTOR_CLOSED_POSE_NAME: name of pose target for closing the gripper
  • END_EFFECTOR_OPEN_POSE_NAME: name of pose target for opening the gripper
  • APPROACH_DISTANCE: standoff distance in the gripper Z+ axis to move to before grasping and after releasing the object
  • GRASPABLE_OBJECT: a moveit_studio_vision_msgs GraspableObject containing the 3 following subframes wrt the object's Pose:
    • SUBFRAMES:
      • GRASP_POSE: the pose to grasp at
  • TRANSLATION_DISTANCE: double. Distance to translate along axis (meters)
  • ROTATION_DISTANCE: double. Distance to rotate along axis (degrees)
  • USE_CIRCULAR_ARC: boolean. If true, move in circular arc centered at the screw origin; else use a linear path.

High-level sequence of steps: 1) Get the current state 2) Move to the approach pose 3) Allow collisions 4) Move to the grasp pose 5) Close Gripper 6) Perform affordance move 7) Open Gripper 8) Withdraw/retreat from the grasp 9) Forbid collisions

Data Port Name Port Type Object Type
task Bidirectional std::shared_ptr<moveit::task_constructor::Task>
graspable_object Input moveit_studio_vision_msgs::msg::GraspableObject
translation_distance Input double
rotation_distance Input double
use_circular_arc Input bool

Constructor & Destructor Documentation

◆ SetupMTCGraspThenMoveAlongArcPull()

moveit_studio::behaviors::SetupMTCGraspThenMoveAlongArcPull::SetupMTCGraspThenMoveAlongArcPull ( const std::string &  name,
const BT::NodeConfiguration &  config,
const std::shared_ptr< BehaviorContext > &  shared_resources 
)

Member Function Documentation

◆ metadata()

BT::KeyValueVector moveit_studio::behaviors::SetupMTCGraspThenMoveAlongArcPull::metadata ( )
static

◆ providedPorts()

BT::PortsList moveit_studio::behaviors::SetupMTCGraspThenMoveAlongArcPull::providedPorts ( )
static

◆ tick()

BT::NodeStatus moveit_studio::behaviors::SetupMTCGraspThenMoveAlongArcPull::tick ( )
override

Close Hand

Perform the affordance motion (move along arc)

Open Hand

Retreat from Grasp

Forbid Collision


The documentation for this class was generated from the following files: