Skip to main content

behaviors Namespace

Definition

namespace moveit_pro::behaviors { ... }

Namespaces Index

namespacecheck_for_error_utils
namespacecompute_velocity_to_align_with_target
namespacedetail
namespaceimpl
namespaceinternal
namespacewrench_measurement

Classes Index

classActionChunkProducerInterface

Runs one inference of a policy that produces trajectory chunks. More...

classActionClientBehaviorBase<ActionT>

A base class for behaviors which need to send a goal to a ROS action client and wait for a result. If the behavior is halted before the action result is received, the action goal will be canceled. More...

classAddCollisionBox

Adds a box-shaped CollisionObject to the planning scene. More...

classAddCollisionCylinder

Adds a cylinder-shaped CollisionObject to the planning scene. More...

classAddCollisionMesh

Adds a mesh CollisionObject to the planning scene. More...

classAddCollisionObject

Adds a user-supplied CollisionObject to the planning scene. More...

classAddCollisionObjectBase

Abstract base for Behaviors that add a CollisionObject to the planning scene. More...

classAddCollisionSphere

Adds a sphere-shaped CollisionObject to the planning scene. More...

classAddOverageToPath

Adds overage waypoints to both ends of a path by extending along a specified local axis. More...

classAddPointCloudToVector

Appends a point cloud to a vector of point clouds. More...

classAddToVector<InputT>

Template for a behavior that pushes an object into a vector and sets the updated vector to the blackboard. More...

classAddURDF

This Behavior sends a request to add a URDF object to the planning scene as a collision object. More...

classAdjustPoseWithIMarker

Requests a user to manually adjust a collection of poses using interactive markers in the UI. More...

structArmGripperChunk
classAsyncBehaviorBase

A base class for behaviors which need to asynchronously run a function that might take a long time to complete. More...

classAttachObject

Attaches a collision object that is already in the planning scene to a robot link. More...

structAttachOrDetachStageRequest

Parameters describing the attach or detach action for appendAttachOrDetachStage. More...

classAttachURDF

This Behavior sends a request to attach a URDF object to a robot for motion planning purposes. More...

classAveragePoseStamped

This Behavior calculates the running average of incoming Pose Stamped ROS messages. More...

classAveragePoseStampedVector

Returns the average PoseStamped from a vector of PoseStamped. More...

classAvoidPointsInCoveragePath

Modifies a coverage path to route around obstacle points using semicircular detours. More...

structBehaviorContext

The BehaviorContext struct contains shared resources that are common between all instances of Behaviors that inherit from moveit_pro::behaviors::SharedResourcesNode. More...

classBiasedCoinFlip

Simulates flipping a biased coin with the specified probability of success provided via the input port. More...

classBlendJointTrajectories

Blend a sequence of joint trajectories into a single trajectory with smooth transitions. More...

classBlockUntilParameterIsTrue

Block (return RUNNING) until a blackboard entry evaluates as true, then return SUCCESS. More...

classBoundedRetentionQueue

Bounds how many recently-retained objects keep their heavyweight data alive. More...

classBreakpointSubscriber

A behavior that subscribes to a topic that can be used for pausing an objective during execution to allow introspection. This behavior will listen on the configured topic for a True/False message which will cause it to continue or abort from a breakpoint that is included in an objective. More...

classCalculatePoseOffset

Calculates the offset transform from source_pose to destination_pose. This can be used to measure the distance between two poses and returns the result relative to the source_pose. More...

classCalibrateCameraPose

Calibrates the camera optical pose using AprilTag poses of the calibration tool held by the robot end effector. More...

classCallTriggerService

Call a service that accepts a std_srvs/srv/Trigger message. The name of the service is set through the "service_name" parameter. More...

classCheckCuboidSimilarity

Check if two GraspableObjects are similar within some tolerance. More...

classClearAllVisualMarkers

Deletes all visual markers currently displayed in the UI. More...

classClearSnapshot

Sends a request to clear the existing Octomap and Pointcloud snapshots. More...

classClientInterfaceBase<ServiceT>

Provides an interface to a service client that can send a single request at a time. WARNING - This class currently does not support calling syncSendRequest function asynchronously from multiple threads. More...

classClockInterfaceBase

A base class which provides an interface for retrieving timepoints from a monotonic clock. More...

structCombinedImageResult

Result of building the combined inference image (target alone, or target+exemplar side-by-side). More...

classComputeInverseKinematics

A Behavior to compute the inverse kinematics for a given set of target poses. More...

classComputeLinkPoseForwardKinematics

This Behavior computes the Cartesian Pose of a link from a given Joint State. If the Joint State message does not contain all of the joints for calculating the pose, it will use the existing joint states for the missing joint states. More...

classComputePathToPoseAction

Calls an action server that uses nav2_msgs::action::ComputePathToPose and outputs feedback The ComputePathToPose action (ROS 2 Jazzy) returns a nav_msgs/Path path and builtin_interfaces/Duration planning_time. More...

classComputeSignedDistanceField

A Behavior to compute a propagation (signed) distance field from a planning scene. More...

classComputeVelocityToAlignWithTarget

calculates a control velocity that is a sum of the target velocity and a catchup velocity. The target motion state can be offset from the incoming motion state message. The returned control velocity is designed to be sent to the velocity_force_controller. More...

classConvertDataset

Start an MCAP-to-LeRobot conversion of a recorded dataset via the train server node. More...

classConvertMtcSolutionToJointTrajectory

Converts a MoveIt Task Constructor Solution into a JointTrajectory. More...

classConvertTransformStampedToPoseStamped

Converts a geometry_msgs::msg::TransformStamped message into a geometry_msgs::msg::PoseStamped message. More...

classCoreBehaviorsLoader
structCoveragePathParams

Parameters that shape the raster produced by generateRasterPath(). More...

classCreateBoundingBox2D

Construct a BoundingBox2D message from individual coordinate and size ports. More...

classCreateBoundingBoxes2D

Convert a flat vector of doubles into a vector of BoundingBox2D messages. More...

classCreateBoundingBoxFromOffset

Given an exemplar image and optional padding, produce a single BoundingBox2D covering the (optionally padded) exemplar image dimensions. More...

classCreateCollisionSpheresAtClosestPoints

This behavior receives point cloud data, filters points inside a cylinder around a reference point, and creates a sphere at each of the closest points within the cylinder. The spheres are returned as a moveit_msgs::msg::CollisionObject message. More...

classCreateGraspableObject
classCreatePoseStamped

Create a geometry_msgs::msg::PoseStamped and writes it to the Blackboard. More...

classCreateRobotState

Create a moveit_msgs::msg::RobotState and write it to the Blackboard. More...

classCreateStationaryTrajectory

This behavior creates a stationary trajectory of specified duration at the provided JointState ROS message. More...

classCreateTransform

Create a geometry_msgs::msg::Transform and write it to the Blackboard. More...

classCreateTwistStamped

Create a geometry_msgs::msg::TwistStamped and writes it to the Blackboard. More...

classCreateWrenchStamped

Create a geometry_msgs::msg::WrenchStamped and writes it to the Blackboard. More...

classCropOrRemovePointsInBox<mode>

Behavior for either cropping or removing points from a box-shaped region of interest. The dimensions and size of the region of interest are defined relative to its centroid. More...

classCropPointsInSphere

Given a point cloud and a sphere-shaped region of interest, create a new point cloud which contains only the points that are inside the region of interest. The dimensions and size of the region of interest are defined relative to its centroid. More...

classCropPosesInBox

Given a vector of poses and a box-shaped region of interest, create a new vector of poses which contains only the poses that are inside the region of interest. The dimensions and size of the region of interest are defined relative to its centroid. More...

classDetachObject

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...

classDetachOrRemoveURDF

Base class for behaviors that detach URDF objects from a robot or remove them from the planning scene. More...

classDetachURDF

This Behavior detaches a URDF object from the robot. More...

classDetectAprilTags

Detects AprilTag markers from an image. More...

classDetectCharucoBoard

Detects the interior corners of a ChArUco board in an image and estimates the board pose. More...

classDilateMask2D

Apply morphological dilation to a vector of 2D masks. More...

classDoTeleoperateAction

Starts teleoperation by sending a goal to the teleoperation action server in the web UI. More...

classEditWaypoint

Use the /edit_waypoints service to save the robot's current state as a new named waypoint or erase an existing waypoint. The name of the waypoint to save or delete is set through the "waypoint_name" behavior parameter. The operation to perform on the waypoint is set through the "waypoint_operation" behavior parameter, which must be set to either "save" or "erase". If set to "save", then the "joint_group_names" parameter must also be set to specify which joint groups to include in the saved waypoint. More...

classErodeMask2D

Apply morphological erosion to a vector of 2D masks. More...

classExecuteMTCSolution

Execute each joint trajectory contained in an MTC solution by sending sequential goals to a JTAC or JTC-like controller, depending on the value of execution_pipeline. After each subtrajectory succeeds, apply the corresponding planning scene diff so that scene updates from the MTC task persist. More...

classExecutePolicy

Executes a policy as continuous, collision-checked motion on the arm and optional gripper. More...

classExecuteTrajectory

Accepts a JointTrajectory message via an input data port, and executes it by sending a goal to either a standard FollowJointTrajectory action server (JTC) or a Joint Trajectory Admittance Controller (JTAC) action server, depending on the value of the execution_pipeline input port. More...

structExemplarInfo

Exemplar-specific metadata captured before resize; present only when an exemplar was provided. More...

classExtractGraspableObjectPose

Changes an input GraspableObject into a PoseStamped by getting its pose and its ID. More...

classFilterMasks2DByArea

Filter 2D masks based on mask area only. More...

classFilterMasks2DByBoundingBox

Filter 2D masks based on bounding box dimensions only. More...

classFindMaskedObjects

Finds objects by segmenting a point cloud using a set of 2D mask images. More...

classFindSingularCuboids

Finds well-singulated cuboids supported by a surface within a point cloud. More...

classFindSlicePlanesAlongEdge

Finds a series of waypoints (slice planes) along a selected edge between 4 corner waypoints. More...

classFitLineSegmentToMask3D

Finds the line segment that best fits a point cloud fragment. More...

classFollowPathAction

Calls an action server that uses nav2_msgs::action::FollowPath and outputs feedback. The ROS 2 Jazzy action result contains std_msgs::Empty, error_code, and error_msg; this Behavior does not expose it. More...

classForceExceedsThreshold

Monitors wrench messages published to topic, and returns SUCCESS if the magnitude of the wrench measurements exceeds a force threshold for a minimum number of consecutive readings. More...

classForEach

A class for creating a behavior tree decorator node to iterate through a vector of items. More...

classForEachUntilSuccess

A decorator node that iterates through a vector of items, stopping on first successful child node tick. More...

classGenerateCoveragePath

Creates a lawnmower path (a.k.a. boustrophedon path) for a robot end-effector to follow, to cover a given area. More...

classGenerateCuboidGraspPoses

Given a target GraspableObject and planning details about the arm, generate grasp poses. More...

classGeneratePointToPointTrajectory

Generate a joint-space point-to-point trajectory to move the robot from the start joint state to the target joint state. More...

classGenerateSurfaceCoveragePath

Generates a coverage (raster) path of tool poses over a rectangular region. More...

classGenerateVacuumGraspPoses

Given a target GraspableObject and planning details about the arm, generate grasp poses. More...

classGetCameraInfo

Capture camera information. The name of the topic containing the camera information is set through the "topic_name" parameter, and the resulting information is available on the "message_out" output port. More...

classGetCenterFromMask2D

Given a mask, compute the centroid and write the point to the blackboard. More...

classGetCenterMostAprilTag

Gets the stamped pose of the AprilTag detection closest to the center of the camera image. More...

classGetCentroidFromPointCloud

Given an input point cloud, estimates the cloud centroid using pcl::compute3DCentroid and outputs that as a pose stamped with the same header as the point cloud. More...

classGetClosestObjectToPose

Given a collection of GraspableObjects, find the one that's closest to the provided pose. More...

classGetContourFromPointCloudSlice

Extracts contours from a point cloud slice. More...

classGetConvexHullPointCloud

Computes a 3D convex hull around an input point cloud and densely resamples the surface to fill holes. More...

classGetCurrentPlanningScene

Get the current planning scene state from the MoveIt PlanningSceneMonitor via service request. More...

classGetDetectionPose

Gets the stamped pose of an object detection given a label or ID, if one exists. More...

classGetElementOfVector

Get the element of a vector at the given index. More...

classGetFilePathsFromDirectory

Get all filenames in a given directory (optionally with a specific file extension). More...

classGetGraspableObjectsFromMasks3D

Finds objects in point cloud segments represented by 3D masks. More...

classGetImage

Capture an image. The name of the topic containing the image is set through the "topic_name" parameter, and the resulting image is available on the "message_out" output port. More...

classGetJointState

This behavior extracts joint state data from a planning scene object. More...

classGetLatestTransform

Gets the latest transform from the robot model root to a frame specified as an input parameter to this behavior. More...

classGetMask2DFromRegion

Converts a user-selected 2D region into a Mask2D that the 3D-lifting Behaviors consume. More...

classGetMask2DProperties

Extract bounding box dimensions and area from a single Mask2D message. More...

structGetMasks2DAutomask

Segment an image using SAM2 automasking with grid-based point generation. More...

structGetMasks2DFromExemplar

Segment an image using SAM3 with multimodal prompts. More...

structGetMasks2DFromPointQuery

Segment an image using the SAM2 model and point prompts. More...

classGetMasks3DFromMasks2D

Backprojects a number of image masks onto a point cloud with a camera model. More...

classGetMeshNormalPoses

Gets the normal vectors for a given mesh and returns the normal vector poses to the caller. More...

classGetMessageFromTopicBehaviorBase<MessageT>

Base class for Behaviors that get the latest message from a topic specified on an input data port and set that message to an output data port. More...

classGetOdom

Subscribes to an odometry message and stores it on the blackboard. More...

classGetOrientedBoundingBoxFromPointCloud

Given an input point cloud, finds the oriented bounding box (OBB) using pcl::MomentOfInertiaEstimation and outputs that as a center pose and box dimensions. The OBB orientation is disambiguated by choosing the orientation closest to the reference_pose. More...

classGetPointCloud

Capture a point cloud. The name of the topic containing the point cloud is set through the "topic_name" parameter, and the resulting point cloud is available on the "message_out" output port. More...

classGetPointCloudFromMask3D

Gets the fragment of a point cloud for a 3D mask. More...

classGetPoints2DFromGeminiQuery

Queries Google Gemini with a text prompt and a ROS image to locate 2D points in the image. More...

classGetPointsFromUser

Requests a set of named points from the user by switching the view and displaying a sequence of prompts in the UI. More...

classGetPoseFromPixelCoords

Given an ordered point cloud and normalized pixel XY coordinates, outputs a stamped pose corresponding to a point normal to the selected coordinates. More...

classGetPoseFromUser

Sends a prompt request to the UI so that the user can click in the UI and return a pose. More...

classGetRegionFromUser

Requests a 2D region (bounding box or polygon) from the user by switching the view and displaying a prompt in the UI. More...

classGetRobotStateFromTrajectory

Get the JointState of a JointTrajectory at a specified time. More...

classGetSizeOfVector

Get the size of a vector. More...

classGetSyncedImageAndPointCloud

Get data from time-synchronized image and point cloud topics and populate them in output ports. More...

classGetSyncedImages

Get data from time-synchronized image topics and populate them in output ports. More...

classGetTextFromUser

Gets text from user by sending a list of prompts with default values for each prompt. More...

classGetWaypointNames

Retrieves the names of all waypoints whose name starts with a given prefix, sorted lexicographically. More...

classInitializeMTCTask

Creates a shared pointer to a new MTC Task object, populates it with global settings (for example, the overall Task timeout and introspection behavior), and sets it as an output data port. More...

classInsertInVector

Insert an element into a vector at the given index. More...

classIsAnyObjectAttached

This Behavior checks a PlanningScene to determine if any object is attached to the robot. Returns SUCCESS if there is an attached CollisionObject, FAILURE otherwise. More...

classIsCollisionObjectInPlanningScene

Checks a PlanningScene to see if a CollisionObject with a specific ID exists. Returns SUCCESS if the CollisionObject is found, FAILURE otherwise. More...

classIsObjectAttachedTo
classIsPoseNearIdentity

Returns SUCCESS if the pose is within the position and rotation tolerances of the identity pose. Useful for evaluating an error pose. More...

classIsUserAvailable

Checks for the presence of a user interface by checking if the /trajectory_bridge ROS node exists. More...

classIsVisibilityConstraintSatisfied

Check if the robot's current state satisfies a visibility kinematic constraint relative to an object. More...

classJointJog

A Behavior to forward JointJog commands to a Joint Velocity Controller. More...

classListControllers

Lists controllers from the controller manager with two independent filters. More...

classLoadFromYaml<T>

Loads a type from a YAML file, and returns it in an output port. More...

classLoadImageFromFile

Loads an image from a file and writes it to an output data port. More...

classLoadMultipleFromYaml<T>

Loads types from a YAML file, and returns them as a vector in an output port. More...

classLoadPointCloudFromFile

Loads a point cloud from a .pcd or .stl file, optionally recolors it, and writes it to an output data port. More...

classLogMessage

Logs a user specified message via the LoggerROS class. ROS 2 log severity of message specified by log_level. More...

classMergePointClouds

Merges a number of input point clouds into a single one. More...

classMoveCollisionObject

Updates the reference pose of an existing CollisionObject in the planning scene. More...

classMoveGripperAction

Actuate a gripper through its driver node's GripperCommand action. Given the name of the action topic and a target gripper position, move the gripper to the specified position. More...

classMPCBehaviorBase<IMPL>

A base class for behaviors to help set up and execute MPC. More...

classMPCBehaviorsLoader
classMPCPointCloudClearance

Avoid a point cloud using MPC. More...

classMPCPoseTracking

Track a moving pose using MPC. More...

classMPCSphereClearance

Avoid collision object spheres using MPC. More...

classMTCCoreBehaviorsLoader
classMujocoBehaviorsLoader

Plugin loader for MuJoCo-related behaviors. More...

classNavBehaviorsLoader
classNavigateThroughPosesAction

Calls an action server that uses nav2_msgs::action::NavigateThroughPoses and outputs feedback The ROS 2 Jazzy action result contains error_code and error_msg; this Behavior does not expose it. More...

classNavigateToPoseAction

Calls an action server that uses nav2_msgs::action::NavigateToPose and outputs feedback The ROS 2 Jazzy action result contains error_code and error_msg; this Behavior does not expose it. More...

structObjectWithDistance

Associates a GraspableObject with a distance metric. More...

classObservationSourceInterface

Supplies the current observation for one policy inference. More...

classOverridePoseOrientation

Replaces the orientation of a PoseStamped with a fixed quaternion. More...

classPersistentPublisherCache

Topic-keyed cache of publishers whose latched samples must outlive the Behavior instance that created them. More...

classPlanCartesianPath

Given a Cartesian-space path, plan a joint-space trajectory to move the robot tip along the path. More...

classPlanMTCTask

Takes a shared pointer to an existing MTC Task object via an input data port, plans the Task, and sets the solution with the lowest overall cost as an output data port. A service client sends over all the solutions to the MTC Solution Manager node which can be used for debugging. More...

classPlanToJointGoal

Given a joint-space goal, plan a joint-space trajectory to reach the goal. More...

structPolicyObservation

The current observation a policy conditions on for one inference. More...

classPoseJog

A Behavior to protect a robot from collisions when using the MoveIt Pro Velocity Force Controller (VFC). More...

structPostProcessResult

Outputs produced by post-processing SAM3 masks. More...

classPublishBoundingBoxes2D

Publishes a bounding box visualization to a topic. More...

classPublishEmpty

Publish a std_msgs::msg::Empty message to a topic. More...

classPublisherInterfaceBase<MessageT>

Defines an interface to a publisher that sends a message to a topic. More...

classPublishMarkers

Publishes a set of markers to the UI for visualization. More...

classPublishMask2D

Publishes a masks visualization to topic. More...

classPublishPointCloud

Publish a point cloud. More...

classPublishStaticFrame

Deprecated alias for PublishTF. More...

classPublishString

Publish a std_msgs::msg::String message to a topic. More...

classPublishTF

Publishes a dynamic transform on /tf at a configured rate. More...

classPublishVelocityForceCommand

Publishes a velocity force command to the velocity force controller at a fixed rate. More...

classPushBackVector

Append an element to the back of a vector. More...

classPushToSolutionQueue

Push a new MTC solution to the solution queue. More...

classRclcppClientInterface<ServiceT>

Implements ClientInterfaceBase for the rclcpp service client. More...

classRclcppPublisherInterface<MessageT>

Implementation of the publisher interface for a rclcpp publisher. More...

classRclcppSubscriberInterface<MessageT>

rclcpp implementation of the one-shot subscriber interface. More...

classReadTextFileAsString

Read the contents of a text file and output the contents as a std::string. More...

classRecordCalibrationSample

Appends one hand-eye calibration sample to a samples vector on the blackboard. More...

classRecordEpisode

Start a Trainer recording session for demonstration collection via the train server node. More...

classRecordJointTrajectory

Record a JointTrajectory message by subscribing to a topic publishing joint states and pushing the joint states to a JointTrajectory message. More...

classRegisterPointClouds

Registers a target point cloud to a base point cloud and outputs the pose of the target point cloud relative to the origin of the base point cloud which aligns the target cloud with the base cloud. More...

classRemoveCollisionObject

Removes a collision object from a planning scene by id. More...

classRemoveFromVector

Remove an element from a vector at the given index. More...

classRemoveURDFFromScene

This Behavior removes a URDF object from the planning scene. More...

classRepeatUnlessFailureEachTick

Decorator that ticks its child up to num_cycles times, advancing one iteration per parent tick. More...

classRepeatUnlessFailureWithinTick

Decorator that ticks its child up to num_cycles times within a single parent tick, stopping on first failure. More...

classReplaceInVector

Replace an element in a vector at the given index. More...

classResetMujocoKeyframe

Resets the MuJoCo simulation to a specified keyframe. More...

classResetPlanningSceneObjects

Uses the service provided by the ApplyPlanningScene MoveGroup capability plugin to remove all objects which were added to the planning scene, including objects that are attached to the robot. More...

classResetVector<InputT>

Create an empty vector and set it to the blackboard. More...

classRetrievePoseParameter

Retrieves a stamped pose from the MoveIt Pro parameter manager node. More...

classRetrieveRobotStateParameter

Retrieves a joint state from the MoveIt Pro parameter manager node. More...

classRetrieveWaypoint

Given a named waypoint, sends a service request to the Agent WaypointManager to retrieve the joint state associated with that waypoint. More...

classReverseVector<InputT>

Reverses the order of elements in a vector and sets the reversed vector to the blackboard. More...

classROSPublisherHandle
classRotateTwistToFrame

Rotates a stamped twist into a different frame's orientation. More...

classSaveCurrentState

Use the /get_planning_scene service from move_group to save the robot's current state. More...

classSaveEpisode

End the current episode of the active Trainer recording and snapshot it to the dataset. More...

classSaveImageToFile

Save an image to disk as a .png file. The filename will follow the syntax of file_prefix_YYYYMMDD_HHMMSS.png. More...

classSaveMTCTaskInspection

Walks an MTC Task and saves all introspection data (stage tree, statistics, every solution and failure, interface states, per-stage failure explanations) to a JSON file on disk. More...

classSavePointCloudToFile

Save a point cloud .pcd file to disk. The filename will follow the syntax of file_prefix_YYYYMMDD_HHMMSS.pcd. More...

classSavePoseForUrdf

Saves a PoseStamped in xyz rpy URDF format to file. More...

classSaveToYaml<T>

Save the contents of a ROS 2 message type to a YAML file in a specified namespace. Note: This Behavior template saves the pose into the ~/.config/moveit_pro/robot_config/objectives folder. More...

classSendMessageToTopicBehaviorBase<MessageT>

Base class for Behaviors that send a message to a topic. The message contents and topic name are specified as input ports. More...

classSendPointCloudToUI

Transform a point cloud to the "world" frame and publish it as PCD to a topic the UI visualizes. More...

classServiceClientBehaviorBase<ServiceT>

A base class for behaviors which need to send a request to a ROS service client and wait for a result. More...

classSetAdmittanceParameters

Sets admittance parameters to be used in the 'ExecuteTrajectory' Behavior. More...

classSetCollisionRule

Allows or forbids collisions between two entities in the planning scene's Allowed Collision Matrix, without an MTC task. More...

classSetInitialPose

Looks up the robot's current pose via TF and publishes it to the localizer's initial-pose topic (default /initialpose) to re-seed the particle filter. More...

classSetMujocoState

Sets MuJoCo simulation state to specified joint positions. More...

classSetRos2Parameter

Set any ROS2 parameter on any node at runtime via the standard set_parameters service. More...

classSetupMTCAddCollisionBox

Append an MTC ModifyPlanningScene stage that adds a box-shaped collision object to the planning scene during MTC task execution. More...

classSetupMTCAddCollisionCylinder

Append an MTC ModifyPlanningScene stage that adds a cylinder-shaped collision object to the planning scene during MTC task execution. More...

classSetupMTCAddCollisionMesh

Append an MTC ModifyPlanningScene stage that adds a mesh collision object to the planning scene during MTC task execution. More...

classSetupMTCAddCollisionSphere

Append an MTC ModifyPlanningScene stage that adds a sphere-shaped collision object to the planning scene during MTC task execution. More...

classSetupMTCAttachObjectByID

Append an MTC ModifyPlanningScene stage that attaches a collision object to a robot link during MTC task execution. More...

classSetupMTCBatchPoseIK

Given an existing MTC Task object and a vector of poses, appends an MTC stage to compute IK solutions. *. More...

classSetupMTCCartesianMoveToRobotState

Given an existing MTC Task object and a joint state, appends MTC stages to describe a cartesian motion plan to that joint state. More...

classSetupMTCCartesianSequence

Given an existing MTC Task object and a sequence of target poses, appends MTC stages to plan a sequence of cartesian motions between the poses. More...

classSetupMTCConnectWithProRRT

Append a MTC stage to connect the end state of the previous stage with the start state of the next stage using a freespace trajectory with the ProRRT planner. More...

classSetupMTCCurrentState

Given an existing MTC Task object, appends an MTC CurrentState Stage to the Task. More...

classSetupMTCDetachObjectByID

Append an MTC ModifyPlanningScene stage that detaches a collision object from a robot link during MTC task execution. More...

classSetupMTCFixedJointState

Given an existing MTC Task object, appends an MTC FixedState Stage to the Task. More...

classSetupMTCFromSolution

Given an existing MTC Task object, appends an MTC Stage to the Task that initializes it with the final planning scene of a given solution. More...

classSetupMTCInterpolateToRobotState

Given an existing MTC Task object and a joint state, appends MTC stages to describe a joint-interpolated motion plan to that joint state. More...

classSetupMTCMoveAlongFrameAxis

Given an existing MTC Task object, append a MTC MoveRelative stage to perform a cartesian motion along an axis. More...

classSetupMTCMultiEEFMoveAlongAxis

The SetupMTCMultiEEFMoveAlongAxis class adds a dual cartesian motion stage to a MoveIt Task Constructor task. More...

classSetupMTCPathIK

Given an existing MTC Task object, append a stage to perform a cartesian motion along a given path. More...

classSetupMTCPlanToPose

Given an existing MTC Task object and a target pose, appends MTC stages to describe a freespace motion plan to that target pose using the MoveIt Pro RRTConnect Planner. More...

classSetupMTCPlanToRobotState

Given an existing MTC Task object and a joint state, appends MTC stages to describe a freespace motion plan to that joint state using the MoveIt Pro RRTConnect planner. More...

classSetupMTCRemoveCollisionObject

Append an MTC ModifyPlanningScene stage that removes a collision object from the planning scene during MTC task execution. More...

classSetupMTCSetCollisionRule

Append an MTC ModifyPlanningScene stage that allows or forbids collisions between two entities during MTC task execution. More...

classSharedResourcesNode<BehaviorTreeNodeT>

The SharedResourcesNode class provides a BehaviorContext object when constructing a BehaviorTree.Cpp node. More...

classSharedResourcesNodeLoaderBase

The SharedResourcesNodeLoaderBase class is a base class for Behavior loader plugins that register Behaviors inheriting from SharedResourcesNode. More...

classSolveHandEyeCalibration<mode>

Solves both unknown transforms of a hand-eye calibration from collected samples. More...

classSolveIKQueries
classSplitMTCSolution

Given an MTC Solution message and an index, create two new MTC Solution messages by splitting the subtrajectories of the input Solution at the specified index. Outputs the new Solutions onto output data ports. More...

classSteadyClockInterface

Implementation of ClockInterfaceBase for std::chrono::steady_clock. More...

classStopRecording

Stop the active Trainer recording session and register the saved episodes as a dataset. More...

classStopwatchBegin

Saves the current epoch time as a timepoint to a data port. More...

classStopwatchEnd

Measure the difference between an input timepoint and the current timepoint, and emit a log message which states the time elapsed. More...

classStringToInt

Converts a string to an int. More...

classSubscriberInterface<MessageT>

One-shot subscriber interface that receives a single message from a topic, then cleans up. More...

classSuppressChildErrors

A decorator that filters the log messages produced while ticking its child Behavior. More...

classSwitchController

A Behavior to call the ros2_control switch_controllers service to activate/deactivate controllers. More...

classSwitchUIPrimaryView

Switches the primary view in the MoveIt Studio Developer Tool. More...

classThreadedFuture<T>

A future backed by an explicitly-owned std::jthread, for Behaviors that offload work to a background thread and poll for completion (e.g. in onRunning()). More...

classTransformPointCloud

Transforms a point cloud given an input pose in the same frame as the point cloud. More...

classTransformPointCloudFrame

Transforms a point cloud to a target coordinate frame. More...

classTransformPose

Transforms a stamped pose given an input translation and orientation. More...

classTransformPoseFrame

Transforms the reference frame of an input stamped pose to the frame specified by a frame ID, along with the position/orientation transformation that entails. More...

classTransformPoseWithPose

Transforms an input stamped pose with the transform specified by another stamped pose. More...

classTrimPointcloudSurface

Trims a point cloud to contain only points within a quadrilateral boundary defined by 4 waypoints. More...

classUpdatePlanningSceneService

Uses the service advertised by the PointCloudServiceOctomapUpdater plugin to apply a point cloud to the planning scene collision octomap and wait until the update has been applied. More...

classValidateTrajectory

Checks if a joint trajectory is valid, given a PlanningScene. More...

classVisionBehaviorsLoader
classVisualizeCameraFrustum

Publishes a visualization marker showing a camera frustum as a LINE_LIST. More...

classVisualizeLine

Publishes a visualization marker that draws a line between two poses. More...

classVisualizeMesh

Publishes a marker that contains a mesh path to the UI for visualization. More...

classVisualizePath

Publishes a marker array that contains a polyline representing a path. More...

classVisualizePose

Publishes a visualization marker that contains three lines composing a coordinate frame. More...

classWaitAndPopSolutionQueue

Pops the MTC solution queue to get the next solution to be processed. More...

classWaitForDuration

Wait for a specified duration before succeeding. More...

classWaitForJointTrajectoryApproval

Takes a raw JointTrajectory via an input data port (e.g. the output of PlanToJointGoal or PlanCartesianPath), wraps it in a minimal MTC Solution, and publishes it to the /preview_solution topic. Creates a SetBool service server on the /execute_behavior_solution topic and waits to receive a request containing data: true before succeeding. Visualizes the cartesian path for each valid input link name with a green line while waiting. More...

classWaitForMTCSolutionApproval

Takes an MTC Solution message via an input data port and publishes it to the /preview_solution topic. Creates a SetBool service server on the /execute_behavior_solution topic and waits to receive a request containing data: true before succeeding. Visualizes the cartesian path for each valid input link name with a green line while waiting. More...

classWaitForUserPathApproval

Sends a prompt request to the UI to accept or reject a visualized nav_msgs::msg::Path. More...

classWaitForUserTrajectoryApproval

Takes an MTC Solution message via an input data port, and publishes it to the /preview_solution topic. Creates a SetBool service server on the /execute_behavior_solution topic and waits to receive a request containing data: true before succeeding. Visualizes the cartesian path for each valid input link name with a green line while waiting. More...

classWhichObjectIsAttached

Checks a PlanningScene to determine if an object is attached from a given vector of object names. More...

Typedefs Index

usingTrigger = std_srvs::srv::Trigger
usingConvertDatasetSrv = moveit_studio_internal_msgs::srv::ConvertDataset
typedefmoveit_msgs::srv::GetPlanningScene GetPlanningScene
usingDoTeleoperate = moveit_studio_sdk_msgs::action::DoTeleoperate
usingEditWaypoints = moveit_studio_agent_msgs::srv::EditWaypoints
usingGripperCommand = control_msgs::action::GripperCommand
usingStartRecordingSrv = moveit_studio_internal_msgs::srv::StartRecording
usingApplyPlanningScene = moveit_msgs::srv::ApplyPlanningScene
usingControlRecordingSrv = moveit_studio_internal_msgs::srv::ControlRecording
usingSetParameters = rcl_interfaces::srv::SetParameters
usingStopRecordingSrv = moveit_studio_internal_msgs::srv::StopRecording
usingListControllersSrv = controller_manager_msgs::srv::ListControllers
usingSwitchControllerSrv = controller_manager_msgs::srv::SwitchController
usingAdjustPose = moveit_studio_internal_msgs::srv::AdjustPose
usingRequestPointsFromUser = moveit_studio_internal_msgs::srv::RequestPointsFromUser
usingGetPoseFromUserSrv = moveit_studio_internal_msgs::srv::GetPoseFromUser
usingRequestRegionFromUser = moveit_studio_internal_msgs::srv::RequestRegionFromUser
usingRequestTextFromUser = moveit_studio_internal_msgs::srv::RequestTextFromUser
usingRetrievePose = moveit_studio_agent_msgs::srv::RetrievePose
usingRetrieveRobotState = moveit_studio_agent_msgs::srv::RetrieveRobotState
usingStoreUidMap = moveit_studio_internal_msgs::srv::StoreUidMap
usingComputePathToPose = nav2_msgs::action::ComputePathToPose
usingFollowPath = nav2_msgs::action::FollowPath
usingNavigateThroughPoses = nav2_msgs::action::NavigateThroughPoses
usingNavigateToPose = nav2_msgs::action::NavigateToPose
usingWaitForUserPathApprovalSrv = moveit_studio_internal_msgs::srv::WaitForUserPathApproval
usingCropPointsInBox = CropOrRemovePointsInBox< CropOrRemovePointsInBoxModes::CROP >

CropPointsInBox Behavior: the CropOrRemovePointsInBoxModes::CROP specialization of CropOrRemovePointsInBox. More...

usingRemovePointsInBox = CropOrRemovePointsInBox< CropOrRemovePointsInBoxModes::REMOVE >

RemovePointsInBox Behavior: the CropOrRemovePointsInBoxModes::REMOVE specialization of CropOrRemovePointsInBox. More...

usingNormalizedBox = moveit_pro_ml::SAM3Box

Normalized CXCYWH box in SAM3 inference coordinate space. More...

usingSendPointCloud2 = moveit_studio_agent_msgs::srv::SendPointCloud2
usingAddURDFSrv = moveit_studio_agent_msgs::srv::AddURDF
usingAttachURDFSrv = moveit_studio_agent_msgs::srv::AttachURDF
typedefmoveit_studio_agent_msgs::srv::DetachOrRemoveURDF DetachOrRemoveURDFSrv
usingAddPoseStampedToVector = AddToVector< geometry_msgs::msg::PoseStamped >

AddPoseStampedToVector Behavior: the geometry_msgs::msg::PoseStamped specialization of AddToVector. More...

usingLoadPointStampedVectorFromYaml = LoadMultipleFromYaml< geometry_msgs::msg::PointStamped >

LoadPointStampedVectorFromYaml Behavior: the geometry_msgs::msg::PointStamped specialization of LoadMultipleFromYaml. More...

usingLoadPoseVectorFromYaml = LoadMultipleFromYaml< geometry_msgs::msg::Pose >

LoadPoseVectorFromYaml Behavior: the geometry_msgs::msg::Pose specialization of LoadMultipleFromYaml. More...

usingLoadPoseStampedVectorFromYaml = LoadMultipleFromYaml< geometry_msgs::msg::PoseStamped >

LoadPoseStampedVectorFromYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of LoadMultipleFromYaml. More...

usingLoadHeaderVectorFromYaml = LoadMultipleFromYaml< std_msgs::msg::Header >

LoadHeaderVectorFromYaml Behavior: the std_msgs::msg::Header specialization of LoadMultipleFromYaml. More...

usingLoadSubframesFromYaml = LoadMultipleFromYaml< moveit_studio_vision_msgs::msg::ObjectSubframe >

LoadSubframesFromYaml Behavior: the moveit_studio_vision_msgs::msg::ObjectSubframe specialization of LoadMultipleFromYaml. More...

usingLoadPointStampedFromYaml = LoadFromYaml< geometry_msgs::msg::PointStamped >

LoadPointStampedFromYaml Behavior: the geometry_msgs::msg::PointStamped specialization of LoadFromYaml. More...

usingLoadPoseFromYaml = LoadFromYaml< geometry_msgs::msg::Pose >

LoadPoseFromYaml Behavior: the geometry_msgs::msg::Pose specialization of LoadFromYaml. More...

usingLoadPoseStampedFromYaml = LoadFromYaml< geometry_msgs::msg::PoseStamped >

LoadPoseStampedFromYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of LoadFromYaml. More...

usingLoadQuaternionFromYaml = LoadFromYaml< geometry_msgs::msg::Quaternion >

LoadQuaternionFromYaml Behavior: the geometry_msgs::msg::Quaternion specialization of LoadFromYaml. More...

usingLoadTransformFromYaml = LoadFromYaml< geometry_msgs::msg::Transform >

LoadTransformFromYaml Behavior: the geometry_msgs::msg::Transform specialization of LoadFromYaml. More...

usingLoadTransformStampedFromYaml = LoadFromYaml< geometry_msgs::msg::TransformStamped >

LoadTransformStampedFromYaml Behavior: the geometry_msgs::msg::TransformStamped specialization of LoadFromYaml. More...

usingLoadVector3FromYaml = LoadFromYaml< geometry_msgs::msg::Vector3 >

LoadVector3FromYaml Behavior: the geometry_msgs::msg::Vector3 specialization of LoadFromYaml. More...

usingLoadRobotJointStateFromYaml = LoadFromYaml< moveit_msgs::msg::RobotState >

LoadRobotJointStateFromYaml Behavior: the moveit_msgs::msg::RobotState specialization of LoadFromYaml. More...

usingLoadObjectSubframeFromYaml = LoadFromYaml< moveit_studio_vision_msgs::msg::ObjectSubframe >

LoadObjectSubframeFromYaml Behavior: the moveit_studio_vision_msgs::msg::ObjectSubframe specialization of LoadFromYaml. More...

usingLoadHeaderFromYaml = LoadFromYaml< std_msgs::msg::Header >

LoadHeaderFromYaml Behavior: the std_msgs::msg::Header specialization of LoadFromYaml. More...

usingLoadJointTrajectoryFromYaml = LoadFromYaml< trajectory_msgs::msg::JointTrajectory >

LoadJointTrajectoryFromYaml Behavior: the trajectory_msgs::msg::JointTrajectory specialization of LoadFromYaml. More...

usingResetPoseStampedVector = ResetVector< geometry_msgs::msg::PoseStamped >

ResetPoseStampedVector Behavior: the geometry_msgs::msg::PoseStamped specialization of ResetVector. More...

usingReversePoseStampedVector = ReverseVector< geometry_msgs::msg::PoseStamped >

ReversePoseStampedVector Behavior: the geometry_msgs::msg::PoseStamped specialization of ReverseVector. More...

usingSavePointStampedToYaml = SaveToYaml< geometry_msgs::msg::PointStamped >

SavePointStampedToYaml Behavior: the geometry_msgs::msg::PointStamped specialization of SaveToYaml. More...

usingSavePoseToYaml = SaveToYaml< geometry_msgs::msg::Pose >

SavePoseToYaml Behavior: the geometry_msgs::msg::Pose specialization of SaveToYaml. More...

usingSavePoseStampedToYaml = SaveToYaml< geometry_msgs::msg::PoseStamped >

SavePoseStampedToYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of SaveToYaml. More...

usingSaveQuaternionToYaml = SaveToYaml< geometry_msgs::msg::Quaternion >

SaveQuaternionToYaml Behavior: the geometry_msgs::msg::Quaternion specialization of SaveToYaml. More...

usingSaveTransformToYaml = SaveToYaml< geometry_msgs::msg::Transform >

SaveTransformToYaml Behavior: the geometry_msgs::msg::Transform specialization of SaveToYaml. More...

usingSaveTransformStampedToYaml = SaveToYaml< geometry_msgs::msg::TransformStamped >

SaveTransformStampedToYaml Behavior: the geometry_msgs::msg::TransformStamped specialization of SaveToYaml. More...

usingSaveVector3ToYaml = SaveToYaml< geometry_msgs::msg::Vector3 >

SaveVector3ToYaml Behavior: the geometry_msgs::msg::Vector3 specialization of SaveToYaml. More...

usingSaveRobotJointStateToYaml = SaveToYaml< moveit_msgs::msg::RobotState >

SaveRobotJointStateToYaml Behavior: the moveit_msgs::msg::RobotState specialization of SaveToYaml. More...

usingSaveHeaderToYaml = SaveToYaml< std_msgs::msg::Header >

SaveHeaderToYaml Behavior: the std_msgs::msg::Header specialization of SaveToYaml. More...

usingSaveJointTrajectoryToYaml = SaveToYaml< trajectory_msgs::msg::JointTrajectory >

SaveJointTrajectoryToYaml Behavior: the trajectory_msgs::msg::JointTrajectory specialization of SaveToYaml. More...

Enumerations Index

enum classCropOrRemovePointsInBoxModes { ... }
enum classSubcategory { ... }

Canonical subcategory values used by Behavior metadata. More...

Functions Index

tl::expected< moveit_msgs::msg::CollisionObject, std::string >buildBoxCollisionObject (std::string_view object_id, const std::vector< double > &dimensions, const geometry_msgs::msg::PoseStamped &pose)

Builds a CollisionObject for a box. More...

tl::expected< moveit_msgs::msg::CollisionObject, std::string >buildCylinderCollisionObject (std::string_view object_id, double height, double radius, const geometry_msgs::msg::PoseStamped &pose)

Builds a CollisionObject for a cylinder. More...

tl::expected< moveit_msgs::msg::CollisionObject, std::string >buildMeshCollisionObject (std::string_view object_id, std::string_view mesh_file_path, const geometry_msgs::msg::PoseStamped &pose, const std::vector< double > &scale)

Builds a CollisionObject for a mesh loaded from a resource URI. More...

tl::expected< moveit_msgs::msg::CollisionObject, std::string >buildSphereCollisionObject (std::string_view object_id, double radius, const geometry_msgs::msg::PoseStamped &pose)

Builds a CollisionObject for a sphere. More...

tl::expected< bool, std::string >evaluateAttach (std::string_view object_id, std::string_view link_name, const moveit_msgs::msg::PlanningScene &scene)

Decide whether an attach diff is needed for an id in a planning scene. More...

moveit_msgs::msg::AttachedCollisionObjectbuildAttachedObjectAtPose (const moveit_msgs::msg::CollisionObject &source, std::string_view link_name, const std::vector< std::string > &touch_links, const geometry_msgs::msg::Transform &relative_transform)

Build an attach operation that places an object at a chosen pose relative to a robot link. More...

tl::expected< bool, std::string >evaluateDetach (std::string_view object_id, const moveit_msgs::msg::PlanningScene &scene)

Decide whether a detach diff is needed for an id in a planning scene. More...

tl::expected< Eigen::MatrixXd, std::string >chunkMatrixFromJointTrajectory (const trajectory_msgs::msg::JointTrajectory &chunk, std::size_t num_dof)

Reshape a policy chunk message into the column-per-step matrix the executor expects. More...

tl::expected< std::vector< double >, std::string >orderedJointPositions (const sensor_msgs::msg::JointState &joint_state, const std::vector< std::string > &joint_names)

Read the positions of the named joints out of a joint state, in the given order. More...

tl::expected< std::vector< double >, std::string >buildFallbackPositions (const std::vector< float > &initial_joint_positions, const std::string &gripper_joint_name, const sensor_msgs::msg::JointState &full_state)

Build the observation fallback positions from the planning-scene snapshot. More...

tl::expected< void, std::string >validateGripperJointConfig (const base::RobotModel &robot_model, const std::vector< std::string > &joint_names, const std::string &joint_group_name, const std::string &gripper_command_action_name, const std::string &gripper_joint_name)

Validate the gripper joint configuration before any motion. More...

doubleclampToPositionLimits (double position, bool position_bounded, double min_position, double max_position)

Clamp a position command to a joint's position limits. More...

tl::expected< ArmGripperChunk, std::string >splitArmAndGripperChunk (const trajectory_msgs::msg::JointTrajectory &chunk, const std::vector< std::string > &arm_joint_names, const std::string &gripper_joint_name)

Split a policy chunk that carries a gripper into its arm joints and its single gripper joint. More...

tl::expected< std::vector< Eigen::Isometry3d >, std::string >generateCoveragePath (const Eigen::Isometry3d &bottom_right_corner, const double width, const double height, const double stride_distance)

Generates a lawnmower path (a.k.a. boustrophedon path) for a robot end-effector to follow, to cover a given area. More...

std::vector< geometry_msgs::msg::PoseStamped >generateRasterPath (const geometry_msgs::msg::PoseStamped &region_pose, const std::vector< double > &region_dimensions, const CoveragePathParams &params)

Pure geometry: a boustrophedon (serpentine) raster of tool poses over the top face of an oriented box. More...

tl::expected< std::vector< ObjectWithDistance >, std::string >calculateClosestObjectToPose (const tf2_ros::Buffer &buffer, const std::vector< moveit_studio_vision_msgs::msg::GraspableObject > &objects, const geometry_msgs::msg::PoseStamped &pose)

Get the closest object to the provided pose. More...

moveit_msgs::msg::CollisionObjectbuildMoveCollisionObject (std::string_view object_id, const geometry_msgs::msg::PoseStamped &pose)

Builds a CollisionObject carrying the MOVE operation for the given id and pose. More...

tl::expected< std::size_t, std::string >findExistingWorldObject (std::string_view object_id, const moveit_msgs::msg::PlanningScene &scene)

Locates the world entry that a MOVE should target. More...

std::stringformatProfileError (const path_ik::TrapezoidalProfileError &error)

Turn a Cartesian trapezoidal infeasibility into an operator-facing message that names the port to change. More...

boolstart_recording_callback (std::atomic_bool &start_recording_flag, std::condition_variable &cv)
boolstop_recording_callback (std::atomic_bool &stop_recording_flag, std::atomic_bool &start_recording_flag, std::atomic_bool &error_flag, std::string &error, std::condition_variable &cv, std::mutex &mtx)
voidjoint_state_callback (std::atomic_bool &start_recording_flag, std::atomic_bool &stop_recording_flag, trajectory_msgs::msg::JointTrajectory &joint_trajectory_msg, const sensor_msgs::msg::JointState &joint_state_msg, const std::set< std::string, std::less<> > &joints_to_record, rclcpp::Time &start_time_for_recording, const rclcpp::Time &node_time, rclcpp::Time &timeout_start, const double timeout, std::atomic_bool &error_flag, std::string &error, std::condition_variable &cv, std::mutex &mtx)
tl::expected< void, std::string >waitForServiceCallsAndErrors (std::atomic_bool &stop_recording_flag, std::atomic_bool &start_recording_flag, std::atomic_bool &error_flag, std::string &error, std::condition_variable &cv, std::mutex &mtx)
tl::expected< void, std::string >downsampleJointTrajectory (const moveit_pro::base::JointModelGroup &group, trajectory_msgs::msg::JointTrajectory &joint_trajectory_msg, const double joint_space_step)
voidonHaltedFcn (rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr &start_recording_service, rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr &stop_recording_service, rclcpp::Subscription< sensor_msgs::msg::JointState >::SharedPtr &joint_state_subscriber, std::atomic_bool &error_flag, std::string &error, std::condition_variable &cv, std::mutex &mtx)
tl::expected< bool, std::string >validateRemovable (std::string_view object_id, const moveit_msgs::msg::PlanningScene &scene)

Validate that an id is removable from a planning scene. More...

boolcollisionObjectInScene (const moveit_msgs::msg::PlanningScene &scene, std::string_view name)

Whether a name appears as a collision object id in the given planning scene message. More...

tl::expected< std::vector< std::string >, std::string >resolveCollisionEntity (const moveit_pro::base::RobotModel &robot_model, const std::function< bool(std::string_view)> &is_collision_object, std::string_view name)

Resolve a user-supplied name to the Allowed Collision Matrix entity name(s) it refers to. More...

tl::expected< moveit_msgs::msg::AllowedCollisionMatrix, std::string >buildUpdatedAcm (const moveit_pro::base::RobotModel &robot_model, const moveit_msgs::msg::PlanningScene &scene, std::string_view name_a, std::string_view name_b, bool allow_collision)

Apply a collision rule to the Allowed Collision Matrix read from a planning scene. More...

tl::expected< rclcpp::Parameter, std::string >parseParameterValue (const std::string &parameter_name, std::string_view value, const std::string &type)

Parse a string value into an rclcpp::Parameter of the specified type. More...

std::set< std::string, std::less<> >findConflictingControllers (const std::vector< std::string > &controllers_to_activate, const std::vector< controller_manager_msgs::msg::ControllerState > &all_controllers)

Find the controllers that are in conflict with the ones to activate. More...

std::vector< std::string >filterAlreadyActiveControllers (const std::vector< std::string > &activate_controllers, const std::vector< controller_manager_msgs::msg::ControllerState > &all_controllers)

Filter out controllers that are already active from the activation list. More...

std::vector< std::string >filterAlreadyInactiveControllers (const std::vector< std::string > &deactivate_controllers, const std::vector< controller_manager_msgs::msg::ControllerState > &all_controllers)

Filter out controllers that are already inactive from the deactivation list. More...

std::set< std::string, std::less<> >findPrecedingControllers (const std::vector< std::string > &controllers_to_deactivate, const std::vector< controller_manager_msgs::msg::ControllerState > &all_controllers)

Find preceding controllers in the controller chain that must be deactivated first. More...

std::set< std::string, std::less<> >findFollowingControllers (const std::vector< std::string > &controllers_to_activate, const std::vector< controller_manager_msgs::msg::ControllerState > &all_controllers)

Find following controllers in the controller chain that must be activated first. More...

GetPoseFromUserSrv::RequestcreateGetPoseFromUserRequest (std::string_view view_name, std::string_view pose_prompt, bool is_normal)

Creates a GetPoseFromUserSrv::Request for requesting a Pose from the UI. More...

geometry_msgs::msg::PoseStampedstampReceiptTimeIfUnset (geometry_msgs::msg::PoseStamped pose, const rclcpp::Time &receipt_time)

Stamps a pose with the given receipt time if its header stamp is zero, and leaves it unchanged otherwise. More...

tl::expected< std::vector< moveit_task_constructor_msgs::msg::Solution >, std::string >splitSolutionAtIndex (const moveit_task_constructor_msgs::msg::Solution solution_in, const std::size_t index)

Split an MTC Solution message in two by dividing its vector of subtrajectories at the specified index. More...

BT::NodeStatusappendAddCollisionObjectStage (const BehaviorContext &shared_resources, const std::string &behavior_name, moveit_pro::task_constructor::Task &task, tl::expected< moveit_msgs::msg::CollisionObject, std::string > collision_object, std::string_view shape_label, bool overwrite)

Append a ModifyPlanningScene stage that adds collision_object to the planning scene. More...

tl::expected< void, std::string >applyAddCollisionObject (moveit_pro::base::planning_scene::PlanningScene &scene, const moveit_msgs::msg::CollisionObject &object, bool overwrite)

Add object to scene, rejecting a duplicate id unless overwrite is true. More...

BT::NodeStatusappendRemoveCollisionObjectStage (const BehaviorContext &shared_resources, const std::string &behavior_name, moveit_pro::task_constructor::Task &task, const std::string &object_id)

Append a ModifyPlanningScene stage that removes the collision object object_id. More...

BT::NodeStatusappendAttachOrDetachStage (const BehaviorContext &shared_resources, const std::string &behavior_name, moveit_pro::task_constructor::Task &task, const AttachOrDetachStageRequest &request)

Append a ModifyPlanningScene stage that attaches or detaches an object to/from a link. More...

tl::expected< moveit_msgs::msg::AttachedCollisionObject, std::string >buildFixedPoseAttachedObject (const moveit_pro::base::planning_scene::PlanningScene &scene, const std::string &object_id, std::string_view link_name, const geometry_msgs::msg::Transform &transform)

Build the AttachedCollisionObject that places world object object_id at transform (interpreted as link_T_object) relative to link_name. More...

geometry_msgs::msg::PoseWithCovarianceStampedmakeInitialPose (const geometry_msgs::msg::TransformStamped &transform, double xy_variance, double yaw_variance)

Builds an AMCL initial-pose message from a TF transform. More...

tl::expected< bool, std::string >isObjectSimilar (const tf2_ros::Buffer &buffer, const moveit_studio_vision_msgs::msg::GraspableObject &input, const moveit_studio_vision_msgs::msg::GraspableObject &reference, const std::string &base_frame, const double distance_threshold, const double orientation_threshold)

Helper function to check if two GraspableObjects are similar within some tolerance. More...

tl::expected< moveit_studio_vision_msgs::msg::Mask2D, std::string >regionToMask2D (const geometry_msgs::msg::PolygonStamped &region, int image_width, int image_height)

Pure geometry: rasterize a normalized 2D region into a single Mask2D. More...

tl::expected< cv::Mat, std::string >resizeExemplar (const cv::Mat &exemplar, int target_height)

Resize exemplar image maintaining aspect ratio to match target height. More...

std::vector< NormalizedBox >combineBboxes (const std::vector< vision_msgs::msg::BoundingBox2D > &target_bboxes, const std::vector< vision_msgs::msg::BoundingBox2D > &exemplar_bboxes, const CombinedImageResult &combined_result)

Rescale, offset, and normalize all bounding boxes into a single prompt vector. More...

tl::expected< PostProcessResult, std::string >postProcessMasks (const moveit_pro_ml::SAM3DetectResult &prediction, const CombinedImageResult &combined_image, const std_msgs::msg::Header &image_header)

Convert SAM3 output masks to ROS messages and format scores. More...

voidwarnIfCpuFallback (const std::string &behavior_name, const std::shared_ptr< BehaviorContext > &shared_resources, bool is_cpu_fallback)
tl::expected< std::vector< cv::Mat >, std::string >refineAndSplit (const moveit_pro_ml::SAM2Automask::Result &logits, int original_width, int original_height, float nms_threshold, int min_component_area)

Refine and split SAM2 masks with NMS, component splitting, and upscaling. More...

std::stringformatImageMetadata (const sensor_msgs::msg::Image &image_msg)

Returns a one-line human-readable summary of an image's metadata fields. More...

tl::expected< void, std::string >validateImageMetadata (const sensor_msgs::msg::Image &image_msg)

Validate that an image message's metadata fields are internally consistent. More...

tl::expected< std::vector< ObjectWithDistance >, std::string >calculateClosestObjectToPose (const tf2_ros::Buffer &buffer, const std::vector< GraspableObject > &graspable_objects, const geometry_msgs::msg::PoseStamped &pose)
tl::expected< bool, std::string >isObjectSimilar (const tf2_ros::Buffer &buffer, const GraspableObject &input, const GraspableObject &reference, const std::string &base_frame, const double distance_threshold, const double orientation_threshold)
geometry_msgs::msg::PointStampedget_mask_center (const moveit_studio_vision_msgs::msg::Mask2D &mask)
boolclientMustBeRecreated (const std::shared_ptr< rclcpp_action::ClientBase > &client, const std::string_view old_action_name, const std::string_view new_action_name)

Compare an action client's current configuration to the desired new configuration to determine if the client needs to be recreated. More...

constexpr std::string_viewtoString (Subcategory subcategory)

Returns the canonical display string for a Subcategory value. More...

boolhasMixedBehaviorTreeLibraries (const std::string_view maps_content)

Whether a /proc/<pid>/maps listing shows both BehaviorTree.CPP libraries loaded into one process. More...

tl::expected< bool, std::string >processHasMixedBehaviorTreeLibraries ()

Check the current process for mixed BehaviorTree.CPP libraries. More...

template <typename... Args>
auto maybe_error (BT::Expected< Args >... args) -> std::optional< std::string >

Check if any of the provided inputs represent error states and, if so, return their error messages. More...

template <typename E, typename... Args>
auto maybe_error (tl::expected< Args, E >... args) -> constexpr std::optional< E >

Tests if any of the expected args passed in has an error. More...

template <typename T>
auto convertExpectedToOptional (BT::Expected< T > exp) -> std::optional< T >
template <typename... Args>
auto getOptionalInputs (BT::Expected< Args >... args) -> std::tuple< std::optional< Args >... >
template <typename T>
boolshouldWarnOnMissingBlackboardEntry (const nonstd::expected< T, BT::PortInputError > &exp)
template <typename T>
auto convertDiagnosticExpectedToOptional (nonstd::expected< T, BT::PortInputError > exp, std::string_view node_path, std::string_view port_key) -> std::optional< T >
template <typename... Args>
auto getOptionalInputs (const BT::TreeNode &node, std::pair< std::string_view, nonstd::expected< Args, BT::PortInputError > >... args) -> std::tuple< std::optional< Args >... >
template <typename... Args>
auto getRequiredInputs (BT::Expected< Args >... args) -> tl::expected< std::tuple< Args... >, std::string >
std::pair< std::string, std::string >MakeDeprecatedMetadata (std::string_view detail)

Makes the metadata key value pair to mark a behavior as deprecated. More...

boolnormalize_orientation (geometry_msgs::msg::Quaternion &orientation)

Normalize a quaternion to ensure it is a unit quaternion. More...

template <typename T>
boolnormalize_orientation_msg (T &msg)
boolshouldRecreatePublisher (const std::shared_ptr< rclcpp::PublisherBase > &publisher, const std::string_view topic_name, const size_t queue_size, const rclcpp::ReliabilityPolicy reliability_policy)

Compare a publisher's current configuration to the desired new configuration to determine if the publisher needs to be recreated. More...

boolclientMustBeRecreated (const std::shared_ptr< rclcpp::ClientBase > &client, const std::string_view new_service_name)

Compare a service client's current configuration to the desired new configuration to determine if the client needs to be recreated. More...

template <typename T>
BT::NodeBuildergetDefaultNodeBuilder ()

Helper function to create a BT::NodeBuilder for a behavior tree node with the default constructor signature. More...

template <typename T>
BT::NodeBuildergetSharedResourcesNodeBuilder (const std::shared_ptr< moveit_pro::behaviors::BehaviorContext > &shared_resources)

Helper function to create a BT::NodeBuilder for a behavior tree node which takes shared_ptr<BehaviorContext> as an additional constructor parameter. More...

template <typename T>
voidregisterBehavior (BT::BehaviorTreeFactory &factory, const std::string &name)

Helper function to register a behavior with the default constructor signature with a BT::BehaviorTreeFactory. More...

template <typename T>
voidregisterBehavior (BT::BehaviorTreeFactory &factory, const std::string &name, const std::shared_ptr< moveit_pro::behaviors::BehaviorContext > &shared_resources)

Helper function to register a behavior derived from SharedResourcesNode with a BT::BehaviorTreeFactory. More...

template <typename T>
voidregisterDeprecatedBehaviorAlias (BT::BehaviorTreeFactory &factory, const std::string &old_name, const std::shared_ptr< moveit_pro::behaviors::BehaviorContext > &shared_resources, std::string_view detail)

Register a renamed Behavior under its old name as a deprecation alias. More...

template <typename F>
autorunOnThread (F &&task) -> ThreadedFuture< std::invoke_result_t< std::decay_t< F > > >

Runs task on a new std::jthread and returns a ThreadedFuture that tracks it, deducing the task's return type the same way std::async(std::launch::async, task) would. More...

Variables Index

constexpr autokClearOctomapServiceName = "clear_octomap"

Constant service name used by the MoveIt ClearOctomap MoveGroup capability. More...

constexpr autokPortIdTargetMotionState = "target_motion_state"
constexpr autokPortIdTargetPoseOffset = "target_pose_offset"
constexpr autokPortIdEndEffectorFrame = "end_effector_frame"
constexpr autokPortIdProportionalGainLinear = "proportional_gain_linear"
constexpr autokPortIdProportionalGainAngular = "proportional_gain_angular"
constexpr autokPortIdOutputControlVelocity = "output_control_velocity"
constexpr autokPortIdOutputErrorPose = "output_pose_error"
constexpr autokDescriptionAddPoseStampedToVector = ...
constexpr autokDescriptionClearPoseStampedVector = ...
constexpr autokDescriptionResetVector = ...
constexpr autokDescriptionReversePoseStampedVector = ...
constexpr autokDescriptionReverseVector = ...
constexpr autokPortIdOdometryTopicName = "odometry_topic_name"
constexpr autokPortIdOdometry = "subscribed_odometry"
constexpr autokPortIdOdometryPose = "odometry_pose"
constexpr autokPortIdPose = "pose"
constexpr autokPortIdPositionTolerance = "position_tolerance"
constexpr autokPortIdRotationTolerance = "rotation_tolerance"
constexpr autokDescriptionPublishEmpty = ...
constexpr autokDescriptionPublishString = ...
constexpr autokDescriptionRegisterPointClouds = ...
constexpr std::size_tkMtcIntrospectionRetainedTaskLimit = 10

Default for how many recently-planned MTC tasks keep their introspection data (see BehaviorContext::mtc_introspection_retention). Overridable per robot config via the objectives.mtc_introspection_retained_tasks key in config.yaml, which the objective server passes to the BehaviorContext constructor. More...

constexpr autokDefaultPackageNamePort = "package_name"
constexpr charkSubcategoryMetadataKey[] = "subcategory"
constexpr charkDescriptionMetadataKey[] = "description"
constexpr charkDeprecatedMetadataKey[] = "deprecated"

Typedefs

AddPoseStampedToVector

using moveit_pro::behaviors::AddPoseStampedToVector = typedef AddToVector<geometry_msgs::msg::PoseStamped>

AddPoseStampedToVector Behavior: the geometry_msgs::msg::PoseStamped specialization of AddToVector.

Definition at line 44 of file add_to_vector.hpp.

AddURDFSrv

using moveit_pro::behaviors::AddURDFSrv = typedef moveit_studio_agent_msgs::srv::AddURDF

Definition at line 49 of file add_urdf.cpp.

AdjustPose

using moveit_pro::behaviors::AdjustPose = typedef moveit_studio_internal_msgs::srv::AdjustPose

Definition at line 16 of file adjust_pose_with_imarker.hpp.

ApplyPlanningScene

using moveit_pro::behaviors::ApplyPlanningScene = typedef moveit_msgs::srv::ApplyPlanningScene

Definition at line 14 of file reset_planning_scene_objects.hpp.

AttachURDFSrv

using moveit_pro::behaviors::AttachURDFSrv = typedef moveit_studio_agent_msgs::srv::AttachURDF

Definition at line 38 of file attach_urdf.cpp.

ComputePathToPose

using moveit_pro::behaviors::ComputePathToPose = typedef nav2_msgs::action::ComputePathToPose

Definition at line 15 of file compute_path_to_pose_action.hpp.

ControlRecordingSrv

using moveit_pro::behaviors::ControlRecordingSrv = typedef moveit_studio_internal_msgs::srv::ControlRecording

Definition at line 15 of file save_episode.hpp.

ConvertDatasetSrv

using moveit_pro::behaviors::ConvertDatasetSrv = typedef moveit_studio_internal_msgs::srv::ConvertDataset

Definition at line 15 of file convert_dataset.hpp.

CropPointsInBox

using moveit_pro::behaviors::CropPointsInBox = typedef CropOrRemovePointsInBox<CropOrRemovePointsInBoxModes::CROP>

CropPointsInBox Behavior: the CropOrRemovePointsInBoxModes::CROP specialization of CropOrRemovePointsInBox.

Definition at line 76 of file crop_or_remove_points_in_box.hpp.

DetachOrRemoveURDFSrv

typedef moveit_studio_agent_msgs::srv::DetachOrRemoveURDF moveit_pro::behaviors::DetachOrRemoveURDFSrv

Definition at line 21 of file detach_or_remove_urdf.cpp.

DoTeleoperate

using moveit_pro::behaviors::DoTeleoperate = typedef moveit_studio_sdk_msgs::action::DoTeleoperate

Definition at line 16 of file do_teleoperate_action.hpp.

EditWaypoints

using moveit_pro::behaviors::EditWaypoints = typedef moveit_studio_agent_msgs::srv::EditWaypoints

Definition at line 20 of file edit_waypoint.hpp.

FollowPath

using moveit_pro::behaviors::FollowPath = typedef nav2_msgs::action::FollowPath

Definition at line 15 of file follow_path_action.hpp.

GetPlanningScene

typedef moveit_msgs::srv::GetPlanningScene moveit_pro::behaviors::GetPlanningScene

Definition at line 16 of file create_robot_state.hpp.

GetPoseFromUserSrv

using moveit_pro::behaviors::GetPoseFromUserSrv = typedef moveit_studio_internal_msgs::srv::GetPoseFromUser

Definition at line 20 of file get_pose_from_user.hpp.

GripperCommand

using moveit_pro::behaviors::GripperCommand = typedef control_msgs::action::GripperCommand

Definition at line 15 of file move_gripper_action.hpp.

ListControllersSrv

using moveit_pro::behaviors::ListControllersSrv = typedef controller_manager_msgs::srv::ListControllers

Definition at line 18 of file switch_controller.hpp.

LoadHeaderFromYaml

using moveit_pro::behaviors::LoadHeaderFromYaml = typedef LoadFromYaml<std_msgs::msg::Header>

LoadHeaderFromYaml Behavior: the std_msgs::msg::Header specialization of LoadFromYaml.

Definition at line 154 of file load_from_yaml.hpp.

LoadHeaderVectorFromYaml

using moveit_pro::behaviors::LoadHeaderVectorFromYaml = typedef LoadMultipleFromYaml<std_msgs::msg::Header>

LoadHeaderVectorFromYaml Behavior: the std_msgs::msg::Header specialization of LoadMultipleFromYaml.

Definition at line 89 of file load_from_yaml.hpp.

LoadJointTrajectoryFromYaml

using moveit_pro::behaviors::LoadJointTrajectoryFromYaml = typedef LoadFromYaml<trajectory_msgs::msg::JointTrajectory>

LoadJointTrajectoryFromYaml Behavior: the trajectory_msgs::msg::JointTrajectory specialization of LoadFromYaml.

Definition at line 156 of file load_from_yaml.hpp.

LoadObjectSubframeFromYaml

using moveit_pro::behaviors::LoadObjectSubframeFromYaml = typedef LoadFromYaml<moveit_studio_vision_msgs::msg::ObjectSubframe>

LoadObjectSubframeFromYaml Behavior: the moveit_studio_vision_msgs::msg::ObjectSubframe specialization of LoadFromYaml.

Definition at line 152 of file load_from_yaml.hpp.

LoadPointStampedFromYaml

using moveit_pro::behaviors::LoadPointStampedFromYaml = typedef LoadFromYaml<geometry_msgs::msg::PointStamped>

LoadPointStampedFromYaml Behavior: the geometry_msgs::msg::PointStamped specialization of LoadFromYaml.

Definition at line 136 of file load_from_yaml.hpp.

LoadPointStampedVectorFromYaml

using moveit_pro::behaviors::LoadPointStampedVectorFromYaml = typedef LoadMultipleFromYaml<geometry_msgs::msg::PointStamped>

LoadPointStampedVectorFromYaml Behavior: the geometry_msgs::msg::PointStamped specialization of LoadMultipleFromYaml.

Definition at line 83 of file load_from_yaml.hpp.

LoadPoseFromYaml

using moveit_pro::behaviors::LoadPoseFromYaml = typedef LoadFromYaml<geometry_msgs::msg::Pose>

LoadPoseFromYaml Behavior: the geometry_msgs::msg::Pose specialization of LoadFromYaml.

Definition at line 138 of file load_from_yaml.hpp.

LoadPoseStampedFromYaml

using moveit_pro::behaviors::LoadPoseStampedFromYaml = typedef LoadFromYaml<geometry_msgs::msg::PoseStamped>

LoadPoseStampedFromYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of LoadFromYaml.

Definition at line 140 of file load_from_yaml.hpp.

LoadPoseStampedVectorFromYaml

using moveit_pro::behaviors::LoadPoseStampedVectorFromYaml = typedef LoadMultipleFromYaml<geometry_msgs::msg::PoseStamped>

LoadPoseStampedVectorFromYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of LoadMultipleFromYaml.

Definition at line 87 of file load_from_yaml.hpp.

LoadPoseVectorFromYaml

using moveit_pro::behaviors::LoadPoseVectorFromYaml = typedef LoadMultipleFromYaml<geometry_msgs::msg::Pose>

LoadPoseVectorFromYaml Behavior: the geometry_msgs::msg::Pose specialization of LoadMultipleFromYaml.

Definition at line 85 of file load_from_yaml.hpp.

LoadQuaternionFromYaml

using moveit_pro::behaviors::LoadQuaternionFromYaml = typedef LoadFromYaml<geometry_msgs::msg::Quaternion>

LoadQuaternionFromYaml Behavior: the geometry_msgs::msg::Quaternion specialization of LoadFromYaml.

Definition at line 142 of file load_from_yaml.hpp.

LoadRobotJointStateFromYaml

using moveit_pro::behaviors::LoadRobotJointStateFromYaml = typedef LoadFromYaml<moveit_msgs::msg::RobotState>

LoadRobotJointStateFromYaml Behavior: the moveit_msgs::msg::RobotState specialization of LoadFromYaml.

Definition at line 150 of file load_from_yaml.hpp.

LoadSubframesFromYaml

using moveit_pro::behaviors::LoadSubframesFromYaml = typedef LoadMultipleFromYaml<moveit_studio_vision_msgs::msg::ObjectSubframe>

LoadSubframesFromYaml Behavior: the moveit_studio_vision_msgs::msg::ObjectSubframe specialization of LoadMultipleFromYaml.

Definition at line 91 of file load_from_yaml.hpp.

LoadTransformFromYaml

using moveit_pro::behaviors::LoadTransformFromYaml = typedef LoadFromYaml<geometry_msgs::msg::Transform>

LoadTransformFromYaml Behavior: the geometry_msgs::msg::Transform specialization of LoadFromYaml.

Definition at line 144 of file load_from_yaml.hpp.

LoadTransformStampedFromYaml

using moveit_pro::behaviors::LoadTransformStampedFromYaml = typedef LoadFromYaml<geometry_msgs::msg::TransformStamped>

LoadTransformStampedFromYaml Behavior: the geometry_msgs::msg::TransformStamped specialization of LoadFromYaml.

Definition at line 146 of file load_from_yaml.hpp.

LoadVector3FromYaml

using moveit_pro::behaviors::LoadVector3FromYaml = typedef LoadFromYaml<geometry_msgs::msg::Vector3>

LoadVector3FromYaml Behavior: the geometry_msgs::msg::Vector3 specialization of LoadFromYaml.

Definition at line 148 of file load_from_yaml.hpp.

NavigateThroughPoses

using moveit_pro::behaviors::NavigateThroughPoses = typedef nav2_msgs::action::NavigateThroughPoses

Definition at line 15 of file navigate_through_poses_action.hpp.

NavigateToPose

using moveit_pro::behaviors::NavigateToPose = typedef nav2_msgs::action::NavigateToPose

Definition at line 15 of file navigate_to_pose_action.hpp.

NormalizedBox

using moveit_pro::behaviors::NormalizedBox = typedef moveit_pro_ml::SAM3Box

Normalized CXCYWH box in SAM3 inference coordinate space.

Definition at line 31 of file get_masks_2d_from_exemplar.hpp.

RemovePointsInBox

using moveit_pro::behaviors::RemovePointsInBox = typedef CropOrRemovePointsInBox<CropOrRemovePointsInBoxModes::REMOVE>

RemovePointsInBox Behavior: the CropOrRemovePointsInBoxModes::REMOVE specialization of CropOrRemovePointsInBox.

Definition at line 78 of file crop_or_remove_points_in_box.hpp.

RequestPointsFromUser

using moveit_pro::behaviors::RequestPointsFromUser = typedef moveit_studio_internal_msgs::srv::RequestPointsFromUser

Definition at line 16 of file get_points_from_user.hpp.

RequestRegionFromUser

using moveit_pro::behaviors::RequestRegionFromUser = typedef moveit_studio_internal_msgs::srv::RequestRegionFromUser

Definition at line 15 of file get_region_from_user.hpp.

RequestTextFromUser

using moveit_pro::behaviors::RequestTextFromUser = typedef moveit_studio_internal_msgs::srv::RequestTextFromUser

Definition at line 16 of file get_text_from_user.hpp.

ResetPoseStampedVector

using moveit_pro::behaviors::ResetPoseStampedVector = typedef ResetVector<geometry_msgs::msg::PoseStamped>

ResetPoseStampedVector Behavior: the geometry_msgs::msg::PoseStamped specialization of ResetVector.

Definition at line 38 of file reset_vector.hpp.

RetrievePose

using moveit_pro::behaviors::RetrievePose = typedef moveit_studio_agent_msgs::srv::RetrievePose

Definition at line 16 of file retrieve_pose_parameter.hpp.

RetrieveRobotState

using moveit_pro::behaviors::RetrieveRobotState = typedef moveit_studio_agent_msgs::srv::RetrieveRobotState

Definition at line 17 of file retrieve_robot_state_parameter.hpp.

ReversePoseStampedVector

using moveit_pro::behaviors::ReversePoseStampedVector = typedef ReverseVector<geometry_msgs::msg::PoseStamped>

ReversePoseStampedVector Behavior: the geometry_msgs::msg::PoseStamped specialization of ReverseVector.

Definition at line 44 of file reverse_vector.hpp.

SaveHeaderToYaml

using moveit_pro::behaviors::SaveHeaderToYaml = typedef SaveToYaml<std_msgs::msg::Header>

SaveHeaderToYaml Behavior: the std_msgs::msg::Header specialization of SaveToYaml.

Definition at line 77 of file save_to_yaml.hpp.

SaveJointTrajectoryToYaml

using moveit_pro::behaviors::SaveJointTrajectoryToYaml = typedef SaveToYaml<trajectory_msgs::msg::JointTrajectory>

SaveJointTrajectoryToYaml Behavior: the trajectory_msgs::msg::JointTrajectory specialization of SaveToYaml.

Definition at line 79 of file save_to_yaml.hpp.

SavePointStampedToYaml

using moveit_pro::behaviors::SavePointStampedToYaml = typedef SaveToYaml<geometry_msgs::msg::PointStamped>

SavePointStampedToYaml Behavior: the geometry_msgs::msg::PointStamped specialization of SaveToYaml.

Definition at line 61 of file save_to_yaml.hpp.

SavePoseStampedToYaml

using moveit_pro::behaviors::SavePoseStampedToYaml = typedef SaveToYaml<geometry_msgs::msg::PoseStamped>

SavePoseStampedToYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of SaveToYaml.

Definition at line 65 of file save_to_yaml.hpp.

SavePoseToYaml

using moveit_pro::behaviors::SavePoseToYaml = typedef SaveToYaml<geometry_msgs::msg::Pose>

SavePoseToYaml Behavior: the geometry_msgs::msg::Pose specialization of SaveToYaml.

Definition at line 63 of file save_to_yaml.hpp.

SaveQuaternionToYaml

using moveit_pro::behaviors::SaveQuaternionToYaml = typedef SaveToYaml<geometry_msgs::msg::Quaternion>

SaveQuaternionToYaml Behavior: the geometry_msgs::msg::Quaternion specialization of SaveToYaml.

Definition at line 67 of file save_to_yaml.hpp.

SaveRobotJointStateToYaml

using moveit_pro::behaviors::SaveRobotJointStateToYaml = typedef SaveToYaml<moveit_msgs::msg::RobotState>

SaveRobotJointStateToYaml Behavior: the moveit_msgs::msg::RobotState specialization of SaveToYaml.

Definition at line 75 of file save_to_yaml.hpp.

SaveTransformStampedToYaml

using moveit_pro::behaviors::SaveTransformStampedToYaml = typedef SaveToYaml<geometry_msgs::msg::TransformStamped>

SaveTransformStampedToYaml Behavior: the geometry_msgs::msg::TransformStamped specialization of SaveToYaml.

Definition at line 71 of file save_to_yaml.hpp.

SaveTransformToYaml

using moveit_pro::behaviors::SaveTransformToYaml = typedef SaveToYaml<geometry_msgs::msg::Transform>

SaveTransformToYaml Behavior: the geometry_msgs::msg::Transform specialization of SaveToYaml.

Definition at line 69 of file save_to_yaml.hpp.

SaveVector3ToYaml

using moveit_pro::behaviors::SaveVector3ToYaml = typedef SaveToYaml<geometry_msgs::msg::Vector3>

SaveVector3ToYaml Behavior: the geometry_msgs::msg::Vector3 specialization of SaveToYaml.

Definition at line 73 of file save_to_yaml.hpp.

SendPointCloud2

using moveit_pro::behaviors::SendPointCloud2 = typedef moveit_studio_agent_msgs::srv::SendPointCloud2

Definition at line 14 of file update_planning_scene_service.hpp.

SetParameters

using moveit_pro::behaviors::SetParameters = typedef rcl_interfaces::srv::SetParameters

Definition at line 18 of file set_ros2_parameter.hpp.

StartRecordingSrv

using moveit_pro::behaviors::StartRecordingSrv = typedef moveit_studio_internal_msgs::srv::StartRecording

Definition at line 15 of file record_episode.hpp.

StopRecordingSrv

using moveit_pro::behaviors::StopRecordingSrv = typedef moveit_studio_internal_msgs::srv::StopRecording

Definition at line 15 of file stop_recording.hpp.

StoreUidMap

using moveit_pro::behaviors::StoreUidMap = typedef moveit_studio_internal_msgs::srv::StoreUidMap

Definition at line 17 of file plan_mtc_task.hpp.

SwitchControllerSrv

using moveit_pro::behaviors::SwitchControllerSrv = typedef controller_manager_msgs::srv::SwitchController

Definition at line 19 of file switch_controller.hpp.

Trigger

using moveit_pro::behaviors::Trigger = typedef std_srvs::srv::Trigger

Definition at line 15 of file call_trigger_service.hpp.

WaitForUserPathApprovalSrv

using moveit_pro::behaviors::WaitForUserPathApprovalSrv = typedef moveit_studio_internal_msgs::srv::WaitForUserPathApproval

Definition at line 18 of file wait_for_user_path_approval.hpp.

Enumerations

CropOrRemovePointsInBoxModes

enum class moveit_pro::behaviors::CropOrRemovePointsInBoxModes
strong
Enumeration values
CROP
REMOVE

Definition at line 13 of file crop_or_remove_points_in_box.hpp.

Subcategory

enum class moveit_pro::behaviors::Subcategory
strong

Canonical subcategory values used by Behavior metadata.

Enumeration values
MotionTaskPlanning
MotionPlanning
MotionExecute
MotionControls
Perception3DPointCloud
Perception2DImage
PerceptionML
PerceptionPlanningScene
PerceptionCameraCalibration
VectorHandling
PoseHandling
YAMLHandling
StringHandling
UserInput
Utility
Grasping
Visualization
Navigation
ROSMessaging
PlanningSceneModification
ControlFlow
Conversions
SimulationMuJoCo
UserCreatedBehaviors

The display strings returned by toString() are the single source of truth shown in the Behavior Hub UI. A strongly-typed enum combined with a switch-based toString() helper ensures the compiler (via -Wswitch) flags any missing case at compile time, preventing silent drift or typos.

Definition at line 22 of file behavior_subcategories.hpp.

Functions

appendAddCollisionObjectStage()

BT::NodeStatus moveit_pro::behaviors::appendAddCollisionObjectStage (const BehaviorContext & shared_resources, const std::string & behavior_name, moveit_pro::task_constructor::Task & task, tl::expected< moveit_msgs::msg::CollisionObject, std::string > collision_object, std::string_view shape_label, bool overwrite)

Append a ModifyPlanningScene stage that adds collision_object to the planning scene.

Shared tail for the four SetupMTCAddCollision* Behaviors. Validates the tl::expected returned by the shape-specific buildXCollisionObject helper, forces the operation to ADD, and wraps the object in a ModifyPlanningScene stage named add <shape_label> (<object_id>) that is inserted into task.

An MTC stage has no scene at Behavior-tick time, so the object is added when the planner runs the stage, against the scene it has built (the SetupMTCCurrentState snapshot plus earlier stage diffs); the live scene is never touched. The same callback rejects a duplicate id unless overwrite is true, so the duplicate check observes the pipeline scene. ModifyPlanningScene runs the callback without its invert flag, so the add applies in the forward direction only.

Returns FAILURE and publishes the error through shared_resources's logger when collision_object is unexpected. Returns SUCCESS on the happy path. A duplicate-id rejection surfaces later as a planning failure, not as a tick-time FAILURE.

Definition at line 102 of file mtc_stage_helpers.cpp.

appendAttachOrDetachStage()

BT::NodeStatus moveit_pro::behaviors::appendAttachOrDetachStage (const BehaviorContext & shared_resources, const std::string & behavior_name, moveit_pro::task_constructor::Task & task, const AttachOrDetachStageRequest & request)

Append a ModifyPlanningScene stage that attaches or detaches an object to/from a link.

Shared body for SetupMTCAttachObjectByID and SetupMTCDetachObjectByID. Validates that request.object_id is non-empty and request.link_name names a link in the task's robot model. When attaching, the stage is named attach object (<object_id>) to frame (<link_name>) and any request.allowed_collision_links are written as ACM entries allowing collisions between the attached object and each listed link. When detaching, the stage is named detach object (<object_id>) from frame (<link_name>) and the collision-link and transform fields are ignored.

When attaching with request.relative_transform set, the object is attached at that fixed pose relative to the link (interpreted as link_T_object) instead of at its current pose. An MTC stage has no scene at Behavior-tick time, so the attach message is assembled when the planner runs the stage: the object's geometry is sourced from the world object with this id in the scene the planner has built, and planning fails if no such world object exists then. An already-attached object is not re-posed.

Returns FAILURE and publishes the error through shared_resources's logger when validation fails. Returns SUCCESS on the happy path.

Definition at line 165 of file mtc_stage_helpers.cpp.

appendRemoveCollisionObjectStage()

BT::NodeStatus moveit_pro::behaviors::appendRemoveCollisionObjectStage (const BehaviorContext & shared_resources, const std::string & behavior_name, moveit_pro::task_constructor::Task & task, const std::string & object_id)

Append a ModifyPlanningScene stage that removes the collision object object_id.

Body of SetupMTCRemoveCollisionObject. Returns FAILURE (and logs through shared_resources) when object_id is empty. Otherwise inserts a ModifyPlanningScene stage named remove object (<object_id>) into task. The world removal is deferred to plan time and is a successful no-op when the id is absent from the world. A stage callback rejects an id that is currently attached to the robot, so a removal cannot silently leave an attached object in place. Validation uses the MTC pipeline scene, not the live scene.

Definition at line 223 of file mtc_stage_helpers.cpp.

applyAddCollisionObject()

tl::expected< void, std::string > moveit_pro::behaviors::applyAddCollisionObject (moveit_pro::base::planning_scene::PlanningScene & scene, const moveit_msgs::msg::CollisionObject & object, bool overwrite)

Add object to scene, rejecting a duplicate id unless overwrite is true.

Used by appendAddCollisionObjectStage inside the stage's plan-time callback, so the check runs against the scene the MTC planner has built, never the live scene. When overwrite is true an existing world object with this id is replaced (CollisionObject ADD remove-then-add semantics); when false a duplicate id is rejected before the scene is modified.

Returns

Empty on success, or an error string when the id already exists and overwrite is false, or when the scene rejects the object.

Definition at line 79 of file mtc_stage_helpers.cpp.

buildAttachedObjectAtPose()

moveit_msgs::msg::AttachedCollisionObject moveit_pro::behaviors::buildAttachedObjectAtPose (const moveit_msgs::msg::CollisionObject & source, std::string_view link_name, const std::vector< std::string > & touch_links, const geometry_msgs::msg::Transform & relative_transform)

Build an attach operation that places an object at a chosen pose relative to a robot link.

Parameters
source

The collision object to attach, taken from wherever it currently lives (a free world object, or the inner object of an attached entry when re-posing). Its shapes and shape poses are carried over unchanged.

link_name

Robot link to attach the object to.

touch_links

Links allowed to touch the attached object.

relative_transform

Desired transform of the object origin frame in the link frame (link_T_object).

Returns

An AttachedCollisionObject with ADD operation whose object carries source's geometry expressed in link_name at relative_transform. Sending this in a diff (live mode) makes MoveIt place the object at relative_transform; the matching world object, if any, is removed in the same operation.

Definition at line 109 of file attach_object.cpp.

buildBoxCollisionObject()

tl::expected< moveit_msgs::msg::CollisionObject, std::string > moveit_pro::behaviors::buildBoxCollisionObject (std::string_view object_id, const std::vector< double > & dimensions, const geometry_msgs::msg::PoseStamped & pose)

Builds a CollisionObject for a box.

Parameters
object_id

Unique name for the object. Must not be empty.

dimensions

Box dimensions [x, y, z] in meters. Must contain exactly 3 elements, each finite and greater than 0.

pose

Pose of the box. The header.frame_id must not be empty.

Returns

The CollisionObject on success, or an error message on failure.

Definition at line 51 of file add_collision_box.cpp.

buildCylinderCollisionObject()

tl::expected< moveit_msgs::msg::CollisionObject, std::string > moveit_pro::behaviors::buildCylinderCollisionObject (std::string_view object_id, double height, double radius, const geometry_msgs::msg::PoseStamped & pose)

Builds a CollisionObject for a cylinder.

Parameters
object_id

Unique name for the object. Must not be empty.

height

Cylinder height in meters. Must be finite and greater than 0.

radius

Cylinder radius in meters. Must be finite and greater than 0.

pose

Pose of the cylinder. The header.frame_id must not be empty.

Returns

The CollisionObject on success, or an error message on failure.

Definition at line 51 of file add_collision_cylinder.cpp.

buildFallbackPositions()

tl::expected< std::vector< double >, std::string > moveit_pro::behaviors::buildFallbackPositions (const std::vector< float > & initial_joint_positions, const std::string & gripper_joint_name, const sensor_msgs::msg::JointState & full_state)

Build the observation fallback positions from the planning-scene snapshot.

The commanded arm joints' snapshot positions are extended with the configured gripper joint's position, read from the snapshot's full robot state, so the fallback matches the observation layout sent to the policy. An empty gripper joint name returns the arm positions unchanged.

Parameters
initial_joint_positions

The commanded arm joints' snapshot positions, in group order.

gripper_joint_name

The configured gripper joint, or empty when no gripper is observed.

full_state

The snapshot's full robot joint state to read the gripper position from.

Returns

The fallback positions in observation order, or an error naming the missing gripper joint.

Definition at line 598 of file execute_policy.cpp.

buildFixedPoseAttachedObject()

tl::expected< moveit_msgs::msg::AttachedCollisionObject, std::string > moveit_pro::behaviors::buildFixedPoseAttachedObject (const moveit_pro::base::planning_scene::PlanningScene & scene, const std::string & object_id, std::string_view link_name, const geometry_msgs::msg::Transform & transform)

Build the AttachedCollisionObject that places world object object_id at transform (interpreted as link_T_object) relative to link_name.

Sources the object's geometry from the world collision object with this id in scene. Used by appendAttachOrDetachStage to attach an object at a fixed pose.

Returns

The attach message on success, or an error string if no world collision object with object_id exists in scene.

Definition at line 140 of file mtc_stage_helpers.cpp.

buildMeshCollisionObject()

tl::expected< moveit_msgs::msg::CollisionObject, std::string > moveit_pro::behaviors::buildMeshCollisionObject (std::string_view object_id, std::string_view mesh_file_path, const geometry_msgs::msg::PoseStamped & pose, const std::vector< double > & scale)

Builds a CollisionObject for a mesh loaded from a resource URI.

Parameters
object_id

Unique name for the object. Must not be empty.

mesh_file_path

Path to the mesh file, typically a package:// or file:// URI to a .stl, .obj, or .dae file. Must not be empty.

pose

Pose of the mesh. The header.frame_id must not be empty.

scale

Per-axis mesh scale as {x; y; z}. Must contain exactly 3 elements; each must be finite and greater than 0.

Returns

The CollisionObject on success, or an error message on failure (including when the mesh resource cannot be loaded).

Definition at line 75 of file add_collision_mesh.cpp.

buildMoveCollisionObject()

moveit_msgs::msg::CollisionObject moveit_pro::behaviors::buildMoveCollisionObject (std::string_view object_id, const geometry_msgs::msg::PoseStamped & pose)

Builds a CollisionObject carrying the MOVE operation for the given id and pose.

Parameters
object_id

Id of the existing object to move.

pose

New reference pose for the object. The header carries the frame the pose is in; the live planning scene resolves the frame via TF on the server side.

Returns

A CollisionObject with id, header, pose, and operation = MOVE populated and all shape arrays empty. MoveIt's MOVE handler ignores geometry in the message.

Definition at line 77 of file move_collision_object.cpp.

buildSphereCollisionObject()

tl::expected< moveit_msgs::msg::CollisionObject, std::string > moveit_pro::behaviors::buildSphereCollisionObject (std::string_view object_id, double radius, const geometry_msgs::msg::PoseStamped & pose)

Builds a CollisionObject for a sphere.

Parameters
object_id

Unique name for the object. Must not be empty.

radius

Sphere radius in meters. Must be finite and greater than 0.

pose

Pose of the sphere. The header.frame_id must not be empty.

Returns

The CollisionObject on success, or an error message on failure.

Definition at line 49 of file add_collision_sphere.cpp.

buildUpdatedAcm()

tl::expected< moveit_msgs::msg::AllowedCollisionMatrix, std::string > moveit_pro::behaviors::buildUpdatedAcm (const moveit_pro::base::RobotModel & robot_model, const moveit_msgs::msg::PlanningScene & scene, std::string_view name_a, std::string_view name_b, bool allow_collision)

Apply a collision rule to the Allowed Collision Matrix read from a planning scene.

Resolves both names via resolveCollisionEntity, then sets the allow/forbid state for every pair across the two resolved entity sets. The matrix is read from scene.allowed_collision_matrix, so all existing entries are preserved.

Parameters
robot_model

Robot model used for name resolution.

scene

Planning scene supplying the current ACM and the collision object ids.

name_a

First entity name.

name_b

Second entity name.

allow_collision

If true, collisions between the entities are allowed; if false, forbidden.

Returns

The updated ACM message on success, or a descriptive error if either name fails to resolve.

Definition at line 130 of file set_collision_rule.cpp.

calculateClosestObjectToPose()

tl::expected< std::vector< ObjectWithDistance >, std::string > moveit_pro::behaviors::calculateClosestObjectToPose (const tf2_ros::Buffer & buffer, const std::vector< moveit_studio_vision_msgs::msg::GraspableObject > & objects, const geometry_msgs::msg::PoseStamped & pose)

Get the closest object to the provided pose.

Parameters
objects

Collection of GraspableObjects to evaluate.

pose

Pose to use for distance comparison.

Returns

If successful, returns a vector containing the input GraspableObjects sorted in ascending order by distance to the input pose. Returns a failure state if no qualifying object was found.

Definition at line 37 of file get_closest_object_to_pose.hpp.

calculateClosestObjectToPose()

tl::expected< std::vector< ObjectWithDistance >, std::string > moveit_pro::behaviors::calculateClosestObjectToPose (const tf2_ros::Buffer & buffer, const std::vector< GraspableObject > & graspable_objects, const geometry_msgs::msg::PoseStamped & pose)

Definition at line 45 of file get_closest_object_to_pose.cpp.

chunkMatrixFromJointTrajectory()

tl::expected< Eigen::MatrixXd, std::string > moveit_pro::behaviors::chunkMatrixFromJointTrajectory (const trajectory_msgs::msg::JointTrajectory & chunk, std::size_t num_dof)

Reshape a policy chunk message into the column-per-step matrix the executor expects.

Each trajectory point becomes one matrix column, one row per commanded joint. The point timing is ignored here: the executor re-times the retained points on its own clock.

Parameters
chunk

The chunk as returned by the policy, with one position per commanded joint per point.

num_dof

The number of commanded joints, which must match each point's position count.

Returns

A num_dof by num_points matrix, or an error if the chunk is empty or a point's position count does not match num_dof.

Definition at line 541 of file execute_policy.cpp.

clampToPositionLimits()

double moveit_pro::behaviors::clampToPositionLimits (double position, bool position_bounded, double min_position, double max_position)

Clamp a position command to a joint's position limits.

Parameters
position

The commanded position.

position_bounded

Whether the joint declares position limits.

min_position

Lower position limit, used only when position_bounded is true.

max_position

Upper position limit, used only when position_bounded is true.

Returns

The position clamped to [min_position, max_position] when bounded, otherwise unchanged.

Definition at line 761 of file execute_policy.cpp.

clientMustBeRecreated()

bool moveit_pro::behaviors::clientMustBeRecreated (const std::shared_ptr< rclcpp_action::ClientBase > & client, const std::string_view old_action_name, const std::string_view new_action_name)
inline

Compare an action client's current configuration to the desired new configuration to determine if the client needs to be recreated.

This checks two criteria:

  1. Is the client a nullptr? This will be the case the first time this Behavior is ticked in a new Objective, so the client must be created in that case.
  2. If the client already exists, does it communicate with an action with the same name as the name provided through the input data port? If not, the client needs to be reinitialized to use the new action name.

This does NOT check if the client's QoS settings match the ones used by the server, because ActionClientBehaviorBase always creates clients using the default ROS 2 action client QoS profile. It is also very complex to retrieve the QoS settings for an action server (since it's composed of a collection of services and topics). In any case action clients are almost always created with default QoS settings (or at the very least we've never seen one that used non-default settings).

Parameters
client

The action client to check

new_action_name

The new action name

Returns

True if the client must be recreated to satisfy the new configuration. False if the client's current configuration already satisfies the new configuration.

Definition at line 312 of file action_client_behavior_base.hpp.

clientMustBeRecreated()

bool moveit_pro::behaviors::clientMustBeRecreated (const std::shared_ptr< rclcpp::ClientBase > & client, const std::string_view new_service_name)
inline

Compare a service client's current configuration to the desired new configuration to determine if the client needs to be recreated.

This checks two criteria:

  1. Is the client a nullptr? This will be the case the first time this Behavior is ticked in a new Objective, so the client must be created in that case.
  2. If the client already exists, does it communicate on a topic with the same name as the name provided through the input data port? If not, the client needs to be reinitialized to use the new topic.

This does NOT check if the client's QoS settings match the ones used by the server, because ServiceClientBehaviorBase always creates clients using the rclcpp::ServicesQoS QoS profile. Also, it is unlikely that a ROS 2 service server would use customized QoS settings.

Parameters
client

The service client to check

new_service_name

The new service name

Returns

True if the client must be recreated to satisfy the new configuration. False if the client's current configuration already satisfies the new configuration.

Definition at line 138 of file service_client_interface.hpp.

collisionObjectInScene()

bool moveit_pro::behaviors::collisionObjectInScene (const moveit_msgs::msg::PlanningScene & scene, std::string_view name)

Whether a name appears as a collision object id in the given planning scene message.

Scans both the world objects and any objects attached to the robot. Exposed so callers that work from a moveit_msgs::msg::PlanningScene can build the predicate that resolveCollisionEntity expects.

Definition at line 56 of file set_collision_rule.cpp.

combineBboxes()

std::vector< NormalizedBox > moveit_pro::behaviors::combineBboxes (const std::vector< vision_msgs::msg::BoundingBox2D > & target_bboxes, const std::vector< vision_msgs::msg::BoundingBox2D > & exemplar_bboxes, const CombinedImageResult & combined_result)

Rescale, offset, and normalize all bounding boxes into a single prompt vector.

Target boxes are normalized directly against the composite image dimensions. Exemplar boxes are rescaled from original-exemplar pixel space to resized-exemplar pixel space, offset by the target width, then normalized.

Parameters
target_bboxes

Boxes in target image pixel coordinates.

exemplar_bboxes

Boxes in original exemplar image pixel coordinates.

combined_result

Result of combineImages(); provides all dimensions and optional exemplar metadata.

Returns

Vector of normalized CXCYWH boxes ready for SAM3 inference.

Definition at line 440 of file get_masks_2d_from_exemplar.cpp.

convertDiagnosticExpectedToOptional()

template <typename T>
std::optional< T > moveit_pro::behaviors::convertDiagnosticExpectedToOptional (nonstd::expected< T, BT::PortInputError > exp, std::string_view node_path, std::string_view port_key)
inline

Convert the diagnostic form of a port read (nonstd::expected<T, BT::PortInputError>) to an std::optional<T>, warn-logging the case where the user wired the port to a blackboard key (e.g. {foo}) but the blackboard never received foo.

Parameters
exp

Diagnostic result from TreeNode::getInputWithDiagnostic<T>().

node_path

Identifier of the tree node that owns the port (typically node.fullPath()).

port_key

Name of the port being read.

Definition at line 75 of file get_optional_ports.hpp.

convertExpectedToOptional()

template <typename T>
std::optional< T > moveit_pro::behaviors::convertExpectedToOptional (BT::Expected< T > exp)
inline

Check if an Expected has a value and return it if so. If not, return an empty optional.

Definition at line 29 of file get_optional_ports.hpp.

createGetPoseFromUserRequest()

GetPoseFromUserSrv::Request moveit_pro::behaviors::createGetPoseFromUserRequest (std::string_view view_name, std::string_view pose_prompt, bool is_normal)

Creates a GetPoseFromUserSrv::Request for requesting a Pose from the UI.

Parameters
view_name

The view for the user to interact with

pose_prompt

The prompt to give to the user for getting the pose

is_normal

Whether the returned user pose should be normal to the selected face

Returns

Returns an appropriately created request.

Definition at line 86 of file get_pose_from_user.cpp.

downsampleJointTrajectory()

tl::expected< void, std::string > moveit_pro::behaviors::downsampleJointTrajectory (const moveit_pro::base::JointModelGroup & group, trajectory_msgs::msg::JointTrajectory & joint_trajectory_msg, const double joint_space_step)

Definition at line 252 of file record_joint_trajectory.cpp.

evaluateAttach()

tl::expected< bool, std::string > moveit_pro::behaviors::evaluateAttach (std::string_view object_id, std::string_view link_name, const moveit_msgs::msg::PlanningScene & scene)

Decide whether an attach diff is needed for an id in a planning scene.

Parameters
object_id

Id of the object the caller intends to attach. Must not be empty.

link_name

Robot link the caller intends to attach the object to. Must not be empty.

scene

A planning scene that has the WORLD_OBJECT_NAMES and ROBOT_STATE_ATTACHED_OBJECTS components populated.

Returns

true when the id is a free world object and an attach diff is required. false when the id is already attached to link_name: the target state is reached and the caller should treat it as a no-op success. An error if object_id or link_name is empty, if the id is absent from the scene, or if the id is attached to a different link (the caller must detach it first; the object is never silently moved).

Definition at line 67 of file attach_object.cpp.

evaluateDetach()

tl::expected< bool, std::string > moveit_pro::behaviors::evaluateDetach (std::string_view object_id, const moveit_msgs::msg::PlanningScene & scene)

Decide whether a detach diff is needed for an id in a planning scene.

Parameters
object_id

Id of the object the caller intends to detach. Must not be empty.

scene

A planning scene that has the WORLD_OBJECT_NAMES and ROBOT_STATE_ATTACHED_OBJECTS components populated.

Returns

true when the id is in scene.robot_state.attached_collision_objects and a detach diff is required. false when the id is not attached to the robot, whether it is a free world object or absent from the scene entirely: the target state is reached and the caller should treat it as a no-op success. An error if object_id is empty.

Definition at line 51 of file detach_object.cpp.

filterAlreadyActiveControllers()

std::vector< std::string > moveit_pro::behaviors::filterAlreadyActiveControllers (const std::vector< std::string > & activate_controllers, const std::vector< controller_manager_msgs::msg::ControllerState > & all_controllers)

Filter out controllers that are already active from the activation list.

Parameters
activate_controllers

The list of controllers to activate.

all_controllers

The list of all controllers and their states.

Returns

a vector of controllers that are not already active.

Definition at line 85 of file switch_controller.cpp.

filterAlreadyInactiveControllers()

std::vector< std::string > moveit_pro::behaviors::filterAlreadyInactiveControllers (const std::vector< std::string > & deactivate_controllers, const std::vector< controller_manager_msgs::msg::ControllerState > & all_controllers)

Filter out controllers that are already inactive from the deactivation list.

Parameters
deactivate_controllers

The list of controllers to deactivate.

all_controllers

The list of all controllers and their states.

Returns

a vector of controllers that are not already inactive.

Definition at line 99 of file switch_controller.cpp.

findConflictingControllers()

std::set< std::string, std::less<> > moveit_pro::behaviors::findConflictingControllers (const std::vector< std::string > & controllers_to_activate, const std::vector< controller_manager_msgs::msg::ControllerState > & all_controllers)

Find the controllers that are in conflict with the ones to activate.

This function checks the list of controllers and their states to find any controllers that are in conflict with the ones to activate. A controller is considered in conflict if it has any claimed interfaces that are also claimed by the controllers to be activated.

Parameters
controllers_to_activate

The list of controllers to activate.

all_controllers

The list of all controllers and their states.

Returns

a set of strings containing the names of the controllers that are in conflict.

Definition at line 50 of file switch_controller.cpp.

findExistingWorldObject()

tl::expected< std::size_t, std::string > moveit_pro::behaviors::findExistingWorldObject (std::string_view object_id, const moveit_msgs::msg::PlanningScene & scene)

Locates the world entry that a MOVE should target.

Parameters
object_id

Id of the object to move.

scene

Planning scene to search.

Returns

The index of the matching entry in scene.world.collision_objects on success. Returns an error if the id is currently attached to the robot (MOVE for attached objects is not supported; the caller must detach first), or if no world entry has the id. The attached check runs first because its "detach first" guidance is the more specific failure.

Definition at line 54 of file move_collision_object.cpp.

findFollowingControllers()

std::set< std::string, std::less<> > moveit_pro::behaviors::findFollowingControllers (const std::vector< std::string > & controllers_to_activate, const std::vector< controller_manager_msgs::msg::ControllerState > & all_controllers)

Find following controllers in the controller chain that must be activated first.

In ros2_control, when activating a chained controller, its following (downstream) controllers must be active first because they receive the output of the chained controller. This function recursively finds all following controllers.

Parameters
controllers_to_activate

The list of controllers to activate.

all_controllers

The list of all controllers and their states.

Returns

a set of controller names that are following controllers and should be activated first.

Definition at line 162 of file switch_controller.cpp.

findPrecedingControllers()

std::set< std::string, std::less<> > moveit_pro::behaviors::findPrecedingControllers (const std::vector< std::string > & controllers_to_deactivate, const std::vector< controller_manager_msgs::msg::ControllerState > & all_controllers)

Find preceding controllers in the controller chain that must be deactivated first.

In ros2_control, controllers can be chained where one controller's output feeds into another. When deactivating a controller that is part of a chain, its preceding controllers (upstream in the chain) must also be deactivated. This function recursively finds all preceding controllers.

Parameters
controllers_to_deactivate

The list of controllers to deactivate.

all_controllers

The list of all controllers and their states.

Returns

a set of controller names that are preceding controllers and should also be deactivated.

Definition at line 113 of file switch_controller.cpp.

formatImageMetadata()

std::string moveit_pro::behaviors::formatImageMetadata (const sensor_msgs::msg::Image & image_msg)

Returns a one-line human-readable summary of an image's metadata fields.

Used to attach forensic context to failure messages so that the captured error string contains everything needed to diagnose what was on the blackboard at failure time — width, height, step, encoding, is_bigendian, data.size().

Definition at line 33 of file save_image_to_file.cpp.

formatProfileError()

std::string moveit_pro::behaviors::formatProfileError (const path_ik::TrapezoidalProfileError & error)

Turn a Cartesian trapezoidal infeasibility into an operator-facing message that names the port to change.

For a joint-limit failure (required_time_scale > 1) the advice depends on the binding limit and, for an acceleration bottleneck, on the saturating phase: ramp saturation advises lowering the acceleration limits; cruise saturation advises lowering the Cartesian velocity or raising the blending radius, since the acceleration limits do not affect the constant-speed phase. Other failures (size mismatch, non-positive limits) already carry a self-explanatory message and are passed through unchanged.

Parameters
error

The infeasibility diagnostic from path_ik::fitCartesianTrapezoidalVelocityProfile().

Returns

A human-readable, operator-actionable failure message.

Definition at line 157 of file plan_cartesian_path.cpp.

generateCoveragePath()

tl::expected< std::vector< Eigen::Isometry3d >, std::string > moveit_pro::behaviors::generateCoveragePath (const Eigen::Isometry3d & bottom_right_corner, const double width, const double height, const double stride_distance)

Generates a lawnmower path (a.k.a. boustrophedon path) for a robot end-effector to follow, to cover a given area.

Parameters
bottom_right_corner

The bottom right corner of the area to cover, with X pointing along the 'width' dimension and Y pointing along the 'height' dimension.

width

The width of the area to cover.

height

The height of the area to cover.

stride_distance

The distance between strides in the coverage path.

Returns

A vector of poses that define the coverage path, or an error message.

Definition at line 39 of file generate_coverage_path.cpp.

generateRasterPath()

std::vector< geometry_msgs::msg::PoseStamped > moveit_pro::behaviors::generateRasterPath (const geometry_msgs::msg::PoseStamped & region_pose, const std::vector< double > & region_dimensions, const CoveragePathParams & params)

Pure geometry: a boustrophedon (serpentine) raster of tool poses over the top face of an oriented box.

The region is described by region_pose (the box center + orientation) and region_dimensions ([x, y, z] full extents in the pose's frame). Poses are laid out in the pose's local X-Y plane at z = dz/2 + standoff (a standoff above the top face), stepping lines along Y by line_spacing and sampling along X by point_spacing, reversing X each line so the path is continuous. Each pose keeps the region's X-Y orientation but points the tool +Z into the surface (rotated 180° about the region X axis). Header frame is inherited from region_pose.

Samples along each axis are spread evenly between its two edges, at a step no larger than the requested spacing, so both far edges are covered and no two consecutive waypoints collapse onto each other (Cartesian planning rejects a pair that close). An axis narrower than one spacing gets a single centered pass.

Returns an empty vector when any input is non-finite, the usable area (after margin) is non-positive, a spacing is non-positive, margin or standoff is negative, region_pose has a non-finite position or a non-unit orientation quaternion (a finite but non-normalized quaternion is rejected, not normalized), or the region/spacing combination would exceed the internal pose cap.

Parameters
region_pose

Center pose + orientation of the region.

region_dimensions

Full extents [x, y, z] in the region frame (must have 3 entries).

params

Raster shaping parameters.

Returns

The ordered tool poses, or empty on degenerate input.

Definition at line 103 of file generate_surface_coverage_path.cpp.

get_mask_center()

geometry_msgs::msg::PointStamped moveit_pro::behaviors::get_mask_center (const moveit_studio_vision_msgs::msg::Mask2D & mask)

Definition at line 44 of file get_center_from_mask2d.cpp.

getDefaultNodeBuilder()

template <typename T>
BT::NodeBuilder moveit_pro::behaviors::getDefaultNodeBuilder ()
inline

Helper function to create a BT::NodeBuilder for a behavior tree node with the default constructor signature.

Template Parameters
T

Create a builder for this type of node. Must be derived from BT::TreeNode.

Returns

A BT::NodeBuilder that creates a node of type T.

Definition at line 22 of file shared_resources_node_loader.hpp.

getOptionalInputs()

template <typename... Args>
std::tuple< std::optional< Args >... > moveit_pro::behaviors::getOptionalInputs (BT::Expected< Args >... args)
inline

Takes any number of BT::Expected (intended for use with the return of getInput()) and converts them to a tuple of std::optionals representing their presence and value.

Definition at line 46 of file get_optional_ports.hpp.

getOptionalInputs()

template <typename... Args>
std::tuple< std::optional< Args >... > moveit_pro::behaviors::getOptionalInputs (const BT::TreeNode & node, std::pair< std::string_view, nonstd::expected< Args, BT::PortInputError > >... args)
inline

Read any number of optional input ports with diagnostic-aware fallback behavior.

For each (port_key, diagnostic_expected) pair:

  • on success, the value is forwarded into the output tuple;
  • on BlackboardKeyNotFound, a warning is logged and std::nullopt is returned;
  • on any other error, std::nullopt is returned silently.

Intended usage pattern inside a behavior's tick():

const auto optional_ports = getOptionalInputs(
    *this,
    std::pair<std::string_view, nonstd::expected<Foo, BT::PortInputError>>{
        "foo", getInputWithDiagnostic<Foo>("foo") },
    std::pair<std::string_view, nonstd::expected<Bar, BT::PortInputError>>{
        "bar", getInputWithDiagnostic<Bar>("bar") });
Parameters
node

The tree node reading the ports; its fullPath() is used to identify the node in log messages.

args

One std::pair<std::string_view, nonstd::expected<T, BT::PortInputError>> per port, in the same order the output tuple should hold them.

Definition at line 120 of file get_optional_ports.hpp.

getRequiredInputs()

template <typename... Args>
tl::expected< std::tuple< Args... >, std::string > moveit_pro::behaviors::getRequiredInputs (BT::Expected< Args >... args)
inline

Takes any number of BT::Expected (intended for use with the return of getInput()) and converts them to one larger tl::expected that contains a tuple of all their values to allow structured binding to all your Behavior's input variables at once.

Definition at line 25 of file get_required_ports.hpp.

getSharedResourcesNodeBuilder()

template <typename T>
BT::NodeBuilder moveit_pro::behaviors::getSharedResourcesNodeBuilder (const std::shared_ptr< moveit_pro::behaviors::BehaviorContext > & shared_resources)
inline

Helper function to create a BT::NodeBuilder for a behavior tree node which takes shared_ptr<BehaviorContext> as an additional constructor parameter.

Parameters
shared_resources

A shared_ptr to an instance of BehaviorContext, which will be provided when creating the behaviors registered by this function.

Template Parameters
T

Create a builder for this type of node. Must be derived from moveit_pro::behaviors::SharedResourcesNode.

Returns

A BT::NodeBuilder that creates a node of type T.

Definition at line 37 of file shared_resources_node_loader.hpp.

hasMixedBehaviorTreeLibraries()

bool moveit_pro::behaviors::hasMixedBehaviorTreeLibraries (const std::string_view maps_content)
inline

Whether a /proc/<pid>/maps listing shows both BehaviorTree.CPP libraries loaded into one process.

MoveIt Pro links the behaviortree_cpp_picknik fork while stock upstream behaviortree_cpp serves nav2 elsewhere in the image (issue #20928). Both export identical BT:: symbols, so one process mapping both gets silent symbol interposition — a robot-motion process in that state cannot be reasoned about and must not run. Build- and install-time guards cannot see a prebuilt third-party plugin dlopened at runtime; this check can.

The stock name cannot substring-match the fork: after "cpp" the fork continues with "_picknik", never ".so".

Parameters
maps_content

Full text of a /proc/<pid>/maps file.

Definition at line 73 of file btcpp_mixed_load_guard.hpp.

isObjectSimilar()

tl::expected< bool, std::string > moveit_pro::behaviors::isObjectSimilar (const tf2_ros::Buffer & buffer, const moveit_studio_vision_msgs::msg::GraspableObject & input, const moveit_studio_vision_msgs::msg::GraspableObject & reference, const std::string & base_frame, const double distance_threshold, const double orientation_threshold)

Helper function to check if two GraspableObjects are similar within some tolerance.

Parameters
buffer

TF buffer, used to look up object poses relative to base_frame at the timestamp in the object header.

input

Object being compared. Must represent a single cuboid.

reference

Object being compared against. Must represent a single cuboid.

base_frame

Common fixed frame of reference between the two objects.

distance_threshold

Objects are considered dissimilar if their centroids are more than this distance away from each other.

orientation_threshold

Objects are considered dissimilar if the orientations of their centroids differ by this magnitude in radians.

Returns

If object similarity could be calculated without errors, returns true if the objects are similar and false if they are dissimilar. Returns an error message if the objects could not be compared successfully.

Definition at line 31 of file check_cuboid_similarity.hpp.

isObjectSimilar()

tl::expected< bool, std::string > moveit_pro::behaviors::isObjectSimilar (const tf2_ros::Buffer & buffer, const GraspableObject & input, const GraspableObject & reference, const std::string & base_frame, const double distance_threshold, const double orientation_threshold)

Definition at line 38 of file check_cuboid_similarity.cpp.

joint_state_callback()

void moveit_pro::behaviors::joint_state_callback (std::atomic_bool & start_recording_flag, std::atomic_bool & stop_recording_flag, trajectory_msgs::msg::JointTrajectory & joint_trajectory_msg, const sensor_msgs::msg::JointState & joint_state_msg, const std::set< std::string, std::less<> > & joints_to_record, rclcpp::Time & start_time_for_recording, const rclcpp::Time & node_time, rclcpp::Time & timeout_start, const double timeout, std::atomic_bool & error_flag, std::string & error, std::condition_variable & cv, std::mutex & mtx)

Definition at line 188 of file record_joint_trajectory.cpp.

MakeDeprecatedMetadata()

std::pair< std::string, std::string > moveit_pro::behaviors::MakeDeprecatedMetadata (std::string_view detail)
inline

Makes the metadata key value pair to mark a behavior as deprecated.

Parameters
detail

Any additional detail to print out with a deprecation warning. e.g. why or what the behavior is being replaced with.

Returns

The metadata key value pair to mark a behavior as deprecated.

Definition at line 28 of file metadata_fields.hpp.

makeInitialPose()

geometry_msgs::msg::PoseWithCovarianceStamped moveit_pro::behaviors::makeInitialPose (const geometry_msgs::msg::TransformStamped & transform, double xy_variance, double yaw_variance)

Builds an AMCL initial-pose message from a TF transform.

Pure helper (no ROS I/O) so it is trivially unit testable. The robot position and orientation are taken from transform (target frame = global frame, source frame = robot frame). The covariance is a diagonal seed: xy_variance on x and y, yaw_variance on yaw, zero elsewhere. The header stamp is left unset for the caller to fill.

Definition at line 54 of file set_initial_pose.cpp.

maybe_error()

template <typename... Args>
std::optional< std::string > moveit_pro::behaviors::maybe_error (BT::Expected< Args >... args)
inline

Check if any of the provided inputs represent error states and, if so, return their error messages.

This was inspired by fp's maybe_error function: https://github.com/tylerjw/fp/blob/b4bf17c2f7a99c07b6ab9b8706357572e960d638/include/fp/result.hpp#L216-L236

Parameters
args

One or more BT::Expecteds (i.e., results from getInput)

Returns

std::optional wrapping std::string. If all of the inputs in args have values, returns std::nullopt. If one or more of the inputs in args contains an error state instead of a value, return a string that contains the concatenated error messages of all inputs that did not contain a value.

Definition at line 78 of file check_for_error.hpp.

maybe_error()

template <typename E, typename... Args>
constexpr std::optional< E > moveit_pro::behaviors::maybe_error (tl::expected< Args, E >... args)
constexpr

Tests if any of the expected args passed in has an error.

This was adapted from fp's maybe_error function with a small modification.

Parameters
[in] The

tl::expected<T, E> variables. All have to use the same error type.

Template Parameters
E

The error type

Args

The value types for the tl::expected<T, E> args

Returns

The first error found or nothing

Definition at line 117 of file check_for_error.hpp.

normalize_orientation()

bool moveit_pro::behaviors::normalize_orientation (geometry_msgs::msg::Quaternion & orientation)
inline

Normalize a quaternion to ensure it is a unit quaternion.

Parameters
orientation

The quaternion to normalize as a ROS msg.

Returns

true if the normalization was successful or false otherwise.

Definition at line 24 of file normalize_orientation.hpp.

normalize_orientation_msg()

template <typename T>
bool moveit_pro::behaviors::normalize_orientation_msg (T & msg)

Definition at line 41 of file normalize_orientation.hpp.

onHaltedFcn()

void moveit_pro::behaviors::onHaltedFcn (rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr & start_recording_service, rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr & stop_recording_service, rclcpp::Subscription< sensor_msgs::msg::JointState >::SharedPtr & joint_state_subscriber, std::atomic_bool & error_flag, std::string & error, std::condition_variable & cv, std::mutex & mtx)

Definition at line 286 of file record_joint_trajectory.cpp.

orderedJointPositions()

tl::expected< std::vector< double >, std::string > moveit_pro::behaviors::orderedJointPositions (const sensor_msgs::msg::JointState & joint_state, const std::vector< std::string > & joint_names)

Read the positions of the named joints out of a joint state, in the given order.

Parameters
joint_state

The joint state to read from, looked up by joint name.

joint_names

The joints to read, defining the order of the returned positions.

Returns

One position per joint name, or an error naming the first joint absent from the state.

Definition at line 569 of file execute_policy.cpp.

parseParameterValue()

tl::expected< rclcpp::Parameter, std::string > moveit_pro::behaviors::parseParameterValue (const std::string & parameter_name, std::string_view value, const std::string & type)

Parse a string value into an rclcpp::Parameter of the specified type.

Parameters
parameter_name

The name of the parameter to create.

value

The string representation of the value. For array types, values are comma-separated.

type

The type string: "bool", "int", "double", "string", "bool_array", "int_array", "double_array", or "string_array".

Returns

The constructed rclcpp::Parameter, or an error string if parsing fails.

Definition at line 289 of file set_ros2_parameter.cpp.

postProcessMasks()

tl::expected< PostProcessResult, std::string > moveit_pro::behaviors::postProcessMasks (const moveit_pro_ml::SAM3DetectResult & prediction, const CombinedImageResult & combined_image, const std_msgs::msg::Header & image_header)

Convert SAM3 output masks to ROS messages and format scores.

Performs the full post-processing pipeline after SAM3 inference:

  1. Convert HW tensors to binary cv::Mat masks.
  2. Upscale masks to the original image resolution.
  3. If an exemplar was used, crop masks to the target region and remove any that became empty.
  4. Convert surviving cv::Mat masks to ROS Mask2D messages.
  5. Build double and string score vectors parallel to the mask vector.

Returns empty PostProcessResult when all masks are removed after cropping.

Parameters
prediction

Masks and scores from SAM3Detect::predict().

combined_image

Result of combineImages(); provides all dimensions and optional exemplar metadata.

image_header

ROS header copied into each Mask2D message.

Returns

PostProcessResult on success, or an error string on failure.

Definition at line 485 of file get_masks_2d_from_exemplar.cpp.

processHasMixedBehaviorTreeLibraries()

tl::expected< bool, std::string > moveit_pro::behaviors::processHasMixedBehaviorTreeLibraries ()
inline

Check the current process for mixed BehaviorTree.CPP libraries.

Returns

Whether both libraries are mapped, or an error if /proc/self/maps could not be read.

Definition at line 86 of file btcpp_mixed_load_guard.hpp.

refineAndSplit()

tl::expected< std::vector< cv::Mat >, std::string > moveit_pro::behaviors::refineAndSplit (const moveit_pro_ml::SAM2Automask::Result & logits, int original_width, int original_height, float nms_threshold, int min_component_area)

Refine and split SAM2 masks with NMS, component splitting, and upscaling.

Performs post-processing on SAM2 inference results:

  1. Non-Maximum Suppression (NMS) to remove overlapping masks
  2. Component splitting (disconnected regions)
  3. Upscaling to original image resolution
Parameters
logits

Raw SAM2 inference results containing masks and scores

original_width

Original image width (for upscaling masks)

original_height

Original image height (for upscaling masks)

nms_threshold

IoU threshold for NMS (0.0 to 1.0)

min_component_area

Minimum area in pixels for keeping split components

Returns

Vector of cv::Mat masks (CV_8UC1, binary, at original resolution), or error message if operation fails

info

Masks are returned at original image resolution, ready for conversion to ROS messages

Definition at line 73 of file sam2_automasking.cpp.

regionToMask2D()

tl::expected< moveit_studio_vision_msgs::msg::Mask2D, std::string > moveit_pro::behaviors::regionToMask2D (const geometry_msgs::msg::PolygonStamped & region, int image_width, int image_height)

Pure geometry: rasterize a normalized 2D region into a single Mask2D.

GetRegionFromUser returns normalized [0..1] image coordinates; this scales them to pixels by image_width / image_height, then fills the polygon (concave regions are supported) into a mono8 image sized to the polygon's bounding box, with the box's top-left corner stored in Mask2D.x/y — the layout GetMasks3DFromMasks2D expects. The image header frame is inherited from region so the mask lines up with the camera image it was drawn on. Fails (returns an error string) when the region has fewer than three points, the image dimensions are non-positive, or the bounding box has zero area.

Parameters
region

The normalized [0..1] polygon (e.g. the region output of GetRegionFromUser).

image_width

Camera image width in pixels, used to denormalize the region's x coordinates.

image_height

Camera image height in pixels, used to denormalize the region's y coordinates.

info

The image the region was drawn on and the camera_info supplying these dimensions must share the same resolution, otherwise the mask is rasterized at the wrong scale.

Returns

The rasterized mask, or an error string.

Definition at line 39 of file get_mask2d_from_region.cpp.

registerBehavior()

template <typename T>
void moveit_pro::behaviors::registerBehavior (BT::BehaviorTreeFactory & factory, const std::string & name)
inline

Helper function to register a behavior with the default constructor signature with a BT::BehaviorTreeFactory.

Parameters
factory

Register behaviors with this factory.

name

The name to use when registering this type of behavior. It is good practice to make this name match the name of the class (e.g., moveit_pro::behaviors::PlanMTCTask is registered as "PlanMTCTask").

Template Parameters
T

Register a behavior of this type.

Definition at line 52 of file shared_resources_node_loader.hpp.

registerBehavior()

template <typename T>
void moveit_pro::behaviors::registerBehavior (BT::BehaviorTreeFactory & factory, const std::string & name, const std::shared_ptr< moveit_pro::behaviors::BehaviorContext > & shared_resources)
inline

Helper function to register a behavior derived from SharedResourcesNode with a BT::BehaviorTreeFactory.

Parameters
factory

Register behaviors with this factory.

name

The name to use when registering this type of behavior. It is good practice to make this name match the name of the class (e.g., moveit_pro::behaviors::PlanMTCTask is registered as "PlanMTCTask").

shared_resources

A shared_ptr to an instance of BehaviorContext, which will be provided when creating the behaviors registered by this function.

Template Parameters
T

Register a behavior of this type.

Definition at line 67 of file shared_resources_node_loader.hpp.

registerDeprecatedBehaviorAlias()

template <typename T>
void moveit_pro::behaviors::registerDeprecatedBehaviorAlias (BT::BehaviorTreeFactory & factory, const std::string & old_name, const std::shared_ptr< moveit_pro::behaviors::BehaviorContext > & shared_resources, std::string_view detail)
inline

Register a renamed Behavior under its old name as a deprecation alias.

Registers T under old_name (so existing Objective XML keeps loading) and tags that manifest entry deprecated via MakeDeprecatedMetadata, so the UI palette steers users to the new name. The alias shares T's implementation and ports; only the manifest metadata differs from the new name.

Parameters
factory

Register the alias with this factory.

old_name

The pre-rename Behavior name to keep working.

shared_resources

A shared_ptr to an instance of BehaviorContext, provided when creating the behavior.

detail

Human-readable deprecation detail shown in the UI, e.g. "Renamed to NewName.".

Template Parameters
T

The renamed Behavior class (registered separately under its new name). Must define a static metadata() — it is called unconditionally to seed the alias manifest before appending the deprecation tag.

Definition at line 87 of file shared_resources_node_loader.hpp.

resizeExemplar()

tl::expected< cv::Mat, std::string > moveit_pro::behaviors::resizeExemplar (const cv::Mat & exemplar, int target_height)

Resize exemplar image maintaining aspect ratio to match target height.

Parameters
exemplar

Exemplar image to resize

target_height

Target height in pixels

Returns

Resized exemplar image or error

Definition at line 418 of file get_masks_2d_from_exemplar.cpp.

resolveCollisionEntity()

tl::expected< std::vector< std::string >, std::string > moveit_pro::behaviors::resolveCollisionEntity (const moveit_pro::base::RobotModel & robot_model, const std::function< bool(std::string_view)> & is_collision_object, std::string_view name)

Resolve a user-supplied name to the Allowed Collision Matrix entity name(s) it refers to.

A name is matched against three categories: planning group, collision object id, and robot link. A planning group expands to its member links that carry collision geometry; a collision object or robot link resolves to itself. The name is looked up in all three categories so that an ambiguous name (matching more than one category) can be reported as an error rather than silently resolved.

Parameters
robot_model

Robot model used to look up planning groups and links.

is_collision_object

Callable answering whether a name is a known collision object id in the caller's view of the world. Non-MTC callers wrap collisionObjectInScene; MTC callers answer from the pipeline planning scene inside the stage's plan-time callback.

name

Name to resolve.

Returns

The resolved entity names on success. Returns an error when the name matches more than one category (the user must rename one of the entities), when it matches none, or when it names a planning group whose links carry no collision geometry (the rule would be a no-op).

Definition at line 64 of file set_collision_rule.cpp.

runOnThread()

template <typename F>
auto moveit_pro::behaviors::runOnThread (F && task)

Runs task on a new std::jthread and returns a ThreadedFuture that tracks it, deducing the task's return type the same way std::async(std::launch::async, task) would.

Use this in place of std::async(std::launch::async, task) — see ThreadedFuture for why.

Definition at line 96 of file threaded_future.hpp.

shouldRecreatePublisher()

bool moveit_pro::behaviors::shouldRecreatePublisher (const std::shared_ptr< rclcpp::PublisherBase > & publisher, const std::string_view topic_name, const size_t queue_size, const rclcpp::ReliabilityPolicy reliability_policy)
inline

Compare a publisher's current configuration to the desired new configuration to determine if the publisher needs to be recreated.

This checks two criteria:

  1. Is the publisher a nullptr? This will be the case the first time this Behavior is ticked in a new Objective, so the publisher must be created in that case.
  2. If the publisher already exists, does it publish to the right topic? If not, the publisher needs to be reinitialized to use the new topic name.
  3. If the publisher already exists, does its queue_size and reliability QoS settings match the new queue_size and reliability? If not, the publisher needs to be reinitialized with these new QoS settings.
Parameters
publisher

The existing publisher to check.

topic_name

The topic name for the new configuration.

queue_size

The queue size for the new configuration.

reliability_policy

The reliability policy for the new configuration

Returns

True if the publisher must be recreated, and false if the publisher's current configuration already satisfies the new configuration.

Definition at line 102 of file publisher_interface.hpp.

shouldWarnOnMissingBlackboardEntry()

template <typename T>
bool moveit_pro::behaviors::shouldWarnOnMissingBlackboardEntry (const nonstd::expected< T, BT::PortInputError > & exp)
inline

Returns true only when the port failure indicates the user wired the port to a blackboard key that was never populated. All other failure causes (unwired manifest key, literal-conversion failure, null blackboard, ...) are the normal way to express "no value" for an optional port and must stay silent.

Exposed so it can be unit-tested without capturing live rclcpp log output.

Definition at line 60 of file get_optional_ports.hpp.

splitArmAndGripperChunk()

tl::expected< ArmGripperChunk, std::string > moveit_pro::behaviors::splitArmAndGripperChunk (const trajectory_msgs::msg::JointTrajectory & chunk, const std::vector< std::string > & arm_joint_names, const std::string & gripper_joint_name)

Split a policy chunk that carries a gripper into its arm joints and its single gripper joint.

Used when the policy commands a gripper: the chunk holds the arm joints plus exactly one more joint, which must carry the configured gripper joint's name, all as absolute joint positions. The arm joints are selected by name in the arm group's order so the chunk's joint ordering does not matter. The gripper is read from the chunk, not from the policy's normalized action copy, so it arrives already in joint position units like the arm.

Parameters
chunk

The policy chunk, with joint_names naming every column.

arm_joint_names

The arm joint group's joints, defining the arm row order.

gripper_joint_name

The configured gripper joint, which the chunk's one non-arm joint must match.

Returns

The arm positions, the per-step gripper positions, and the gripper joint's name, or an error if the chunk has no joint names or points, names a joint more than once, omits an arm joint, has a non-finite value, does not carry exactly one gripper joint beyond the arm group, or names a gripper joint other than the configured one.

Definition at line 662 of file execute_policy.cpp.

splitSolutionAtIndex()

tl::expected< std::vector< moveit_task_constructor_msgs::msg::Solution >, std::string > moveit_pro::behaviors::splitSolutionAtIndex (const moveit_task_constructor_msgs::msg::Solution solution_in, const std::size_t index)

Split an MTC Solution message in two by dividing its vector of subtrajectories at the specified index.

The subtrajectory at the index will go into the second output MTC Solution. The task IDs of the new solutions will be set to match the task ID of the input solution.

The start_scene field of each new solution will be set to a new empty moveit_msgs::msg::PlanningScene message, since the MTC ExecuteSolution MoveGroup capability actually does not use this initial scene state when executing the solution. This is an implementation compromise – while a more thorough approach would be to calculate a new start_scene for the second half of the split solution by applying each scene diff from the subtrajectories in the first half of the split solution to the start_scene from the original solution, we would need to create an instance of a MoveIt PlanningScene object to do that, which introduces a lot of extra overhead like retrieving the robot model and SRDF.

The sub_solution field of each new solution will be set to an empty vector of moveit_task_constructor_msgs::msg::SubSolution messages. This is another implementation compromise – since MTC apparently does not need the subsolutions to execute each of the overall solution's subtrajectories, and there isn't a clear way to associate these subsolutions with a subset of the subtrajectories, we skip the step of copying subsolutions in to the halves of the split solution.

Parameters
solution_in

Input MTC Solution message

index

The index where the subtrajectories will be split.

Returns

A tl::expected wrapping a vector of MTC solutions. If there is no error, the vector will contain two MTC Solution messages, where the first one contains the portion of the input Solution that was before the split index and the second one contains the remainder of the solution. Returns an InvalidArgument error if the index would be out of range for the vector of subtrajectories.

Definition at line 35 of file split_mtc_solution.cpp.

stampReceiptTimeIfUnset()

geometry_msgs::msg::PoseStamped moveit_pro::behaviors::stampReceiptTimeIfUnset (geometry_msgs::msg::PoseStamped pose, const rclcpp::Time & receipt_time)

Stamps a pose with the given receipt time if its header stamp is zero, and leaves it unchanged otherwise.

The UI cannot know ROS time (sim time may be active), so it always returns poses with header.stamp == {0, 0}, meaning "resolve with the latest TF". With a user-selectable fixed frame, the returned pose may be expressed in a moving frame (e.g. base_link); resolving a zero-stamped pose at consumption time re-anchors it to wherever the robot is by then, losing the user's click-time intent. Stamping with the time of receipt instead — shortly after the click (plus the browser-to-backend round trip), well inside the 60 s of history the BehaviorContext TF buffer retains — lets stamp-honoring downstream consumers resolve the transform as of the click. A zero receipt_time (sim time active but no /clock received yet) benignly degrades to the old latest-TF behavior. Note the deliberate tradeoff: a stamped pose freezes the click-time anchor, so consumers that want execution-time tracking of a moving target must ignore the stamp (as consumers that resolve at tf2::TimePointZero or set ignore_stamp_time already do).

Parameters
pose

The pose returned from the UI response.

receipt_time

The time to stamp the pose with if its stamp is zero.

Returns

The pose, with its header stamp defaulted to receipt_time if it was zero.

Definition at line 97 of file get_pose_from_user.cpp.

start_recording_callback()

bool moveit_pro::behaviors::start_recording_callback (std::atomic_bool & start_recording_flag, std::condition_variable & cv)

Definition at line 164 of file record_joint_trajectory.cpp.

stop_recording_callback()

bool moveit_pro::behaviors::stop_recording_callback (std::atomic_bool & stop_recording_flag, std::atomic_bool & start_recording_flag, std::atomic_bool & error_flag, std::string & error, std::condition_variable & cv, std::mutex & mtx)

Definition at line 171 of file record_joint_trajectory.cpp.

toString()

constexpr std::string_view moveit_pro::behaviors::toString (Subcategory subcategory)
constexpr

Returns the canonical display string for a Subcategory value.

Every enum value must be handled explicitly — the switch has no default so adding a new Subcategory without updating this function produces a -Wswitch diagnostic at compile time.

Definition at line 57 of file behavior_subcategories.hpp.

validateGripperJointConfig()

tl::expected< void, std::string > moveit_pro::behaviors::validateGripperJointConfig (const base::RobotModel & robot_model, const std::vector< std::string > & joint_names, const std::string & joint_group_name, const std::string & gripper_command_action_name, const std::string & gripper_joint_name)

Validate the gripper joint configuration before any motion.

The configured joint backs both the observation sent to the policy and the position-limit clamp for the streamed gripper commands. The two ports are set together: an action without a joint name, or a joint name without an action, is rejected, and a named joint must exist in the robot model, be single-DOF, and sit outside the commanded arm group. A configuration with neither set passes and runs the arm only.

Parameters
robot_model

The robot model the gripper joint is looked up in.

joint_names

The commanded arm group's joints, which the gripper joint must not be part of.

joint_group_name

The commanded arm group's name, used in the rejection message.

gripper_command_action_name

The configured GripperCommand action, set together with the joint name.

gripper_joint_name

The configured gripper joint, set together with the action name.

Returns

Nothing on a valid configuration, or an error naming the violated rule.

Definition at line 616 of file execute_policy.cpp.

validateImageMetadata()

tl::expected< void, std::string > moveit_pro::behaviors::validateImageMetadata (const sensor_msgs::msg::Image & image_msg)

Validate that an image message's metadata fields are internally consistent.

Designed to be called before handing the message to cv_bridge or OpenCV, both of which will either OOM, assert, or throw with poorly-scoped exceptions on corrupted input. Returned errors include the full metadata via formatImageMetadata for forensic logging.

Checks, in order:

  • Encoding string is non-empty and recognized by sensor_msgs::image_encodings.
  • Width and height are <= SaveImageToFile::kMaxImageDimension.
  • Step is at least width * bytes_per_pixel.
  • Data buffer size equals height * step exactly.

Definition at line 40 of file save_image_to_file.cpp.

validateRemovable()

tl::expected< bool, std::string > moveit_pro::behaviors::validateRemovable (std::string_view object_id, const moveit_msgs::msg::PlanningScene & scene)

Validate that an id is removable from a planning scene.

Parameters
object_id

Id of the object the caller intends to remove. Must not be empty.

scene

A planning scene that has the WORLD_OBJECT_NAMES and ROBOT_STATE_ATTACHED_OBJECTS components populated. The function cannot distinguish an absent id from an unpopulated list, so a scene fetched with a narrower mask will misreport ids as not in the world. The caller is responsible for fetching with both components.

Returns

true when the id is present in scene.world.collision_objects and should be removed. false when the id is absent: removal is a no-op the caller should treat as success. An error if object_id is empty or if the id is currently attached to the robot. The attached check runs before the world check so callers get the more actionable failure mode when both apply.

Definition at line 50 of file remove_collision_object.cpp.

waitForServiceCallsAndErrors()

tl::expected< void, std::string > moveit_pro::behaviors::waitForServiceCallsAndErrors (std::atomic_bool & stop_recording_flag, std::atomic_bool & start_recording_flag, std::atomic_bool & error_flag, std::string & error, std::condition_variable & cv, std::mutex & mtx)

Definition at line 219 of file record_joint_trajectory.cpp.

warnIfCpuFallback()

void moveit_pro::behaviors::warnIfCpuFallback (const std::string & behavior_name, const std::shared_ptr< BehaviorContext > & shared_resources, bool is_cpu_fallback)
inline

Publishes a warning to the UI when ML inference falls back to CPU.

Parameters
behavior_name

The name of the calling behavior (used as the log source).

shared_resources

Shared behavior context containing the logger.

is_cpu_fallback

Whether one or more model components are running on CPU instead of GPU.

Definition at line 18 of file ml_cpu_fallback_warning.hpp.

Variables

kClearOctomapServiceName

constexpr auto moveit_pro::behaviors::kClearOctomapServiceName = "clear_octomap"
constexpr

Constant service name used by the MoveIt ClearOctomap MoveGroup capability.

Definition at line 16 of file clear_snapshot.hpp.

kDefaultPackageNamePort

constexpr auto moveit_pro::behaviors::kDefaultPackageNamePort = "package_name"
constexpr

Definition at line 33 of file load_from_yaml.hpp.

kDeprecatedMetadataKey

constexpr char moveit_pro::behaviors::kDeprecatedMetadataKey[] = "deprecated"
constexpr

Definition at line 19 of file metadata_fields.hpp.

kDescriptionAddPoseStampedToVector

constexpr auto moveit_pro::behaviors::kDescriptionAddPoseStampedToVector
constexpr
Initialiser
= R"(                 <p><b>DEPRECATED: Use PushBackVector instead.</b></p>                 <p>                     Adds a Cartesian pose to a sequence of Cartesian poses and stores the sequence to the blackboard.                 </p>             )"

Definition at line 17 of file core_add_to_vector_behaviors.cpp.

kDescriptionClearPoseStampedVector

constexpr auto moveit_pro::behaviors::kDescriptionClearPoseStampedVector
constexpr
Initialiser
= R"(                 <p>                     Reset a vector containing PoseStamped messages.                 </p>             )"

Definition at line 16 of file core_reset_vector_behaviors.cpp.

kDescriptionMetadataKey

constexpr char moveit_pro::behaviors::kDescriptionMetadataKey[] = "description"
constexpr

Definition at line 18 of file metadata_fields.hpp.

kDescriptionPublishEmpty

constexpr auto moveit_pro::behaviors::kDescriptionPublishEmpty
constexpr
Initialiser
= R"(                 <p>                     Publish a <code>std_msgs::msg::Empty</code> message to a topic.                 </p>             )"

Definition at line 13 of file publish_empty.cpp.

kDescriptionPublishString

constexpr auto moveit_pro::behaviors::kDescriptionPublishString
constexpr
Initialiser
= R"(                 <p>                     Publish a <code>std_msgs::msg::String</code> message to a topic.                 </p>             )"

Definition at line 13 of file publish_string.cpp.

kDescriptionRegisterPointClouds

constexpr auto moveit_pro::behaviors::kDescriptionRegisterPointClouds
constexpr
Initialiser
= R"(                 <p>                     Finds the pose of a target point cloud relative to the base frame of a base point cloud using the Iterative Closest Point (ICP) algorithm.                 </p>             )"

Definition at line 24 of file register_pointclouds.cpp.

kDescriptionResetVector

constexpr auto moveit_pro::behaviors::kDescriptionResetVector
constexpr
Initialiser
= R"(                 <p>                     Reset a vector containing BT::Any messages.                 </p>             )"

Definition at line 21 of file core_reset_vector_behaviors.cpp.

kDescriptionReversePoseStampedVector

constexpr auto moveit_pro::behaviors::kDescriptionReversePoseStampedVector
constexpr
Initialiser
= R"(                 <p>                     Reverses the order of a `PoseStamped` vector and stores the reversed sequence to the blackboard.                 </p>             )"

Definition at line 16 of file core_reverse_vector_behaviors.cpp.

kDescriptionReverseVector

constexpr auto moveit_pro::behaviors::kDescriptionReverseVector
constexpr
Initialiser
= R"(                 <p>                     Reverses the order of a vector containing BT::Any data into a new output vector.                 </p>             )"

Definition at line 22 of file core_reverse_vector_behaviors.cpp.

kMtcIntrospectionRetainedTaskLimit

constexpr std::size_t moveit_pro::behaviors::kMtcIntrospectionRetainedTaskLimit = 10
constexpr

Default for how many recently-planned MTC tasks keep their introspection data (see BehaviorContext::mtc_introspection_retention). Overridable per robot config via the objectives.mtc_introspection_retained_tasks key in config.yaml, which the objective server passes to the BehaviorContext constructor.

Definition at line 44 of file behavior_context.hpp.

kPortIdEndEffectorFrame

constexpr auto moveit_pro::behaviors::kPortIdEndEffectorFrame = "end_effector_frame"
constexpr

Definition at line 47 of file compute_velocity_to_align_with_target.cpp.

kPortIdOdometry

constexpr auto moveit_pro::behaviors::kPortIdOdometry = "subscribed_odometry"
constexpr

Definition at line 19 of file get_odom.cpp.

kPortIdOdometryPose

constexpr auto moveit_pro::behaviors::kPortIdOdometryPose = "odometry_pose"
constexpr

Definition at line 20 of file get_odom.cpp.

kPortIdOdometryTopicName

constexpr auto moveit_pro::behaviors::kPortIdOdometryTopicName = "odometry_topic_name"
constexpr

Definition at line 18 of file get_odom.cpp.

kPortIdOutputControlVelocity

constexpr auto moveit_pro::behaviors::kPortIdOutputControlVelocity = "output_control_velocity"
constexpr

Definition at line 50 of file compute_velocity_to_align_with_target.cpp.

kPortIdOutputErrorPose

constexpr auto moveit_pro::behaviors::kPortIdOutputErrorPose = "output_pose_error"
constexpr

Definition at line 51 of file compute_velocity_to_align_with_target.cpp.

kPortIdPose

constexpr auto moveit_pro::behaviors::kPortIdPose = "pose"
constexpr

Definition at line 20 of file is_pose_near_identity.cpp.

kPortIdPositionTolerance

constexpr auto moveit_pro::behaviors::kPortIdPositionTolerance = "position_tolerance"
constexpr

Definition at line 21 of file is_pose_near_identity.cpp.

kPortIdProportionalGainAngular

constexpr auto moveit_pro::behaviors::kPortIdProportionalGainAngular = "proportional_gain_angular"
constexpr

Definition at line 49 of file compute_velocity_to_align_with_target.cpp.

kPortIdProportionalGainLinear

constexpr auto moveit_pro::behaviors::kPortIdProportionalGainLinear = "proportional_gain_linear"
constexpr

Definition at line 48 of file compute_velocity_to_align_with_target.cpp.

kPortIdRotationTolerance

constexpr auto moveit_pro::behaviors::kPortIdRotationTolerance = "rotation_tolerance"
constexpr

Definition at line 22 of file is_pose_near_identity.cpp.

kPortIdTargetMotionState

constexpr auto moveit_pro::behaviors::kPortIdTargetMotionState = "target_motion_state"
constexpr

Definition at line 45 of file compute_velocity_to_align_with_target.cpp.

kPortIdTargetPoseOffset

constexpr auto moveit_pro::behaviors::kPortIdTargetPoseOffset = "target_pose_offset"
constexpr

Definition at line 46 of file compute_velocity_to_align_with_target.cpp.

kSubcategoryMetadataKey

constexpr char moveit_pro::behaviors::kSubcategoryMetadataKey[] = "subcategory"
constexpr

Definition at line 17 of file metadata_fields.hpp.


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


Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.9.8.