Detaches a collision object from a robot link by id and returns it to the planning scene as a free collision object at its current pose.
More...
|
| | DetachObject (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &shared_resources) |
| |
| | DetachObject (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &shared_resources, std::unique_ptr< PlanningSceneBridge > bridge) |
| |
| | ~DetachObject () override=default |
| |
| | AsyncBehaviorBase (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &shared_resources) |
| |
| | ~AsyncBehaviorBase () override=default |
| |
| BT::NodeStatus | onStart () override |
| | Required implementation of BT::StatefulActionNode::onStart().
|
| |
| BT::NodeStatus | onRunning () override |
| | Required implementation of BT::StatefulActionNode::onRunning().
|
| |
| void | onHalted () override |
| | Required implementation of BT::StatefulActionNode::onHalted().
|
| |
| void | resetStatus () |
| | Resets the internal status of this node.
|
| |
| virtual tl::expected< void, std::string > | doHalt () |
| | Optionally implement additional work needed to cleanly interrupt the async process.
|
| |
| void | notifyCanHalt () |
| | Called when runAsync() finishes to notify onHalted() that the async process has finished.
|
| |
| | SharedResourcesNode (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &behavior_context) |
| | Constructor for SharedResourcesNode. Called by BT::BehaviorTreeFactory when creating a new behavior tree containing this node.
|
| |
| const std::shared_ptr< BehaviorContext > & | getBehaviorContext () const |
| |
Detaches a collision object from a robot link by id and returns it to the planning scene as a free collision object at its current pose.
The Behavior has two operating modes selected by the planning_scene input port:
- Live scene mode (port unwired, default): the Behavior fetches the current planning scene from the
/get_planning_scene service, then commits a detach diff via the /apply_planning_scene service. The server discovers the parent link, removes the object from the attached objects, and re-adds it to the world at its current pose. Service names are hard-coded; they are not exposed as ports.
- Supplied scene mode (port wired): the Behavior reads the
moveit_msgs::PlanningScene message supplied on the port, moves the matching entry from robot_state.attached_collision_objects into world.collision_objects, and writes the modified scene back to the same port. No service calls are made.
Succeeds without changes (no-op) when the id is not attached to the robot, whether it is already a free world object or absent from the scene entirely: the detachment intent is already satisfied. Fails only when object_id is empty.
This Behavior detaches objects that were attached via the standard ApplyPlanningScene service. For URDF objects attached via AttachURDF, use DetachURDF instead.
| Data Port Name | Port Type | Object Type |
| object_id | input | std::string |
| planning_scene | bidirectional | moveit_msgs::msg::PlanningScene |