Allows or forbids collisions between two entities in the planning scene's Allowed Collision Matrix, without an MTC task.
More...
|
| | SetCollisionRule (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &shared_resources) |
| |
| | SetCollisionRule (const std::string &name, const BT::NodeConfiguration &config, const std::shared_ptr< BehaviorContext > &shared_resources, std::unique_ptr< PlanningSceneBridge > bridge) |
| |
| | 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 |
| |
Allows or forbids collisions between two entities in the planning scene's Allowed Collision Matrix, without an MTC task.
Each of name_a and name_b is resolved against planning groups, collision object ids, and robot links; a planning group expands to its links with collision geometry. The Behavior fails with a descriptive error if a name is ambiguous (matches more than one category) or matches nothing, because a silent no-op is not acceptable for a collision-rule change. Collision rules are symmetric, so the ports are named name_a / name_b rather than directional.
The Behavior has two operating modes selected by the planning_scene port:
- Live scene mode (port unwired): the Behavior fetches the current scene from
/get_planning_scene, updates the ACM, and commits it via /apply_planning_scene. Service names are hard-coded; they are not exposed as ports. This is the default behavior.
- Supplied scene mode (port wired): the Behavior reads the
moveit_msgs::PlanningScene supplied on the port, updates its ACM, and writes the result back to the same port. No service calls are made.
| Data Port Name | Port Type | Object Type |
| name_a | input | std::string |
| name_b | input | std::string |
| allow_collision | input | bool |
| planning_scene | bidirectional | moveit_msgs::msg::PlanningScene |