|
MoveIt Pro API
Core Behaviors for MoveIt Pro
|
Namespaces | |
| namespace | check_for_error_utils |
| namespace | compute_velocity_to_align_with_target |
| namespace | impl |
| namespace | internal |
| namespace | wrench_measurement |
Classes | |
| class | ActionClientBehaviorBase |
| 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... | |
| class | AddCollisionBox |
| Adds a box-shaped CollisionObject to the planning scene. More... | |
| class | AddCollisionCylinder |
| Adds a cylinder-shaped CollisionObject to the planning scene. More... | |
| class | AddCollisionMesh |
| Adds a mesh CollisionObject to the planning scene. More... | |
| class | AddCollisionObject |
| Adds a user-supplied CollisionObject to the planning scene. More... | |
| class | AddCollisionObjectBase |
| Abstract base for Behaviors that add a CollisionObject to the planning scene. More... | |
| class | AddCollisionSphere |
| Adds a sphere-shaped CollisionObject to the planning scene. More... | |
| class | AddOverageToPath |
| Adds overage waypoints to both ends of a path by extending along a specified local axis. More... | |
| class | AddPointCloudToVector |
| Appends a point cloud to a vector of point clouds. More... | |
| class | AddTool |
| This Behavior sends a request to add a tool to the planning scene as a collision object. More... | |
| class | AddToVector |
| Template for a behavior that pushes an object into a vector and sets the updated vector to the blackboard. More... | |
| class | AddURDF |
| This Behavior sends a request to add a URDF object to the planning scene as a collision object. More... | |
| class | AddVirtualObjectToPlanningScene |
Uses the service provided by the ApplyPlanningScene MoveGroup capability plugin to add a virtual collision object to the planning scene. A virtual collision object can collide with other 'virtual' objects in the planning scene, but not with the robot links, or any other objects that are considered not virtual, e.g. added via AddURDF or ModifyObjectInPlanningScene. More... | |
| class | AdjustPoseWithIMarker |
| Requests a user to manually adjust a collection of poses using interactive markers in the UI. More... | |
| class | AsyncBehaviorBase |
| A base class for behaviors which need to asynchronously run a function that might take a long time to complete. More... | |
| class | AttachObject |
| Attaches a collision object that is already in the planning scene to a robot link. More... | |
| struct | AttachOrDetachStageRequest |
| Parameters describing the attach or detach action for appendAttachOrDetachStage. More... | |
| class | AttachTool |
| This Behavior sends a request to attach a tool to a robot for motion planning purposes. More... | |
| class | AttachURDF |
| This Behavior sends a request to attach a URDF object to a robot for motion planning purposes. More... | |
| class | AveragePoseStamped |
| This Behavior calculates the running average of incoming Pose Stamped ROS messages. More... | |
| class | AveragePoseStampedVector |
| Returns the average PoseStamped from a vector of PoseStamped. More... | |
| class | AvoidPointsInCoveragePath |
| Modifies a coverage path to route around obstacle points using semicircular detours. More... | |
| struct | BehaviorContext |
| The BehaviorContext struct contains shared resources that are common between all instances of Behaviors that inherit from moveit_pro::behaviors::SharedResourcesNode. More... | |
| class | BiasedCoinFlip |
| Simulates flipping a biased coin with the specified probability of success provided via the input port. More... | |
| class | BlendJointTrajectories |
| Blend a sequence of joint trajectories into a single trajectory with smooth transitions. More... | |
| class | BlockUntilParameterIsTrue |
| Block (return RUNNING) until a blackboard entry evaluates as true, then return SUCCESS. More... | |
| class | BreakpointSubscriber |
| 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... | |
| class | CalculatePoseOffset |
| 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... | |
| class | CalibrateCameraPose |
| Calibrates the camera optical pose using AprilTag poses of the calibration tool held by the robot end effector. More... | |
| class | CallTriggerService |
| Call a service that accepts a std_srvs/srv/Trigger message. The name of the service is set through the "service_name" parameter. More... | |
| class | CheckCuboidSimilarity |
| Check if two GraspableObjects are similar within some tolerance. More... | |
| class | ClearAllVisualMarkers |
| Deletes all visual markers currently displayed in the UI. More... | |
| class | ClearSnapshot |
| Sends a request to clear the existing Octomap and Pointcloud snapshots. More... | |
| class | ClientInterfaceBase |
| 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... | |
| class | ClockInterfaceBase |
| A base class which provides an interface for retrieving timepoints from a monotonic clock. More... | |
| struct | CombinedImageResult |
| Result of building the combined inference image (target alone, or target+exemplar side-by-side). More... | |
| class | ComputeInverseKinematics |
| A Behavior to compute the inverse kinematics for a given set of target poses. More... | |
| class | ComputeLinkPoseForwardKinematics |
| 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... | |
| class | ComputePathToPoseAction |
| Calls an action server that uses nav2_msgs::action::ComputePathToPose and outputs feedback The ComputePathToPose action (ROS 2 Humble) returns a nav_msgs/Path path and builtin_interfaces/Duration planning_time. More... | |
| class | ComputeSignedDistanceField |
| A Behavior to compute a propagation (signed) distance field from a planning scene. More... | |
| class | ComputeVelocityToAlignWithTarget |
| 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... | |
| class | ConvertMtcSolutionToJointTrajectory |
| Converts a MoveIt Task Constructor Solution into a JointTrajectory. More... | |
| class | ConvertTransformStampedToPoseStamped |
| Converts a geometry_msgs::msg::TransformStamped message into a geometry_msgs::msg::PoseStamped message. More... | |
| class | CoreBehaviorsLoader |
| class | CreateBoundingBox2D |
| Construct a BoundingBox2D message from individual coordinate and size ports. More... | |
| class | CreateBoundingBoxes2D |
| Convert a flat vector of doubles into a vector of BoundingBox2D messages. More... | |
| class | CreateBoundingBoxFromOffset |
| Given an exemplar image and optional padding, produce a single BoundingBox2D covering the (optionally padded) exemplar image dimensions. More... | |
| class | CreateCollisionObjectFromSolidPrimitive |
| Creates a CollisionObject from a SolidPrimitive, pose, and object ID. More... | |
| class | CreateCollisionSpheresAtClosestPoints |
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... | |
| class | CreateGraspableObject |
| class | CreateJointState |
| Create a sensor_msgs::msg::JointState and writes it to the Blackboard. More... | |
| class | CreatePoseStamped |
| Create a geometry_msgs::msg::PoseStamped and writes it to the Blackboard. More... | |
| class | CreateSolidPrimitiveBox |
| Creates a box-shaped SolidPrimitive from input dimensions for use with CollisionObjects. More... | |
| class | CreateStampedPose |
| Create a geometry_msgs::msg::PoseStamped and writes it to the Blackboard. More... | |
| class | CreateStampedTwist |
| Create a geometry_msgs::msg::TwistStamped and writes it to the Blackboard. More... | |
| class | CreateStampedWrench |
| Create a geometry_msgs::msg::WrenchStamped and writes it to the Blackboard. More... | |
| class | CreateStationaryTrajectory |
This behavior creates a stationary trajectory of specified duration at the provided JointState ROS message. More... | |
| class | CreateTransform |
| Create a geometry_msgs::msg::Transform and write it to the Blackboard. More... | |
| class | CreateTwistStamped |
| Create a geometry_msgs::msg::TwistStamped and writes it to the Blackboard. More... | |
| class | CreateWrenchStamped |
| Create a geometry_msgs::msg::WrenchStamped and writes it to the Blackboard. More... | |
| class | CropOrRemovePointsInBox |
| class | CropPointsInSphere |
| 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... | |
| class | CropPosesInBox |
| 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... | |
| class | DetachObject |
| 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... | |
| class | DetachOrRemoveTool |
| This Behavior sends a request to detach a tool from a robot or remove it from the planning scene. More... | |
| class | DetachOrRemoveURDF |
| Base class for behaviors that detach URDF objects from a robot or remove them from the planning scene. More... | |
| class | DetachURDF |
| This Behavior detaches a URDF object from the robot. More... | |
| class | DetectAprilTags |
| Detects AprilTag markers from an image. More... | |
| class | DiffusionPolicy |
| Behavior for executing a pretrained diffusion policy in MoveIt Pro. More... | |
| class | DiffusionPolicyInterface |
| class | DilateMask2D |
| Apply morphological dilation to a vector of 2D masks. More... | |
| struct | DistanceFieldParameters |
| Parameters for building a propagation distance field from a planning scene. More... | |
| class | DoTeleoperateAction |
| Starts teleoperation by sending a goal to the teleoperation action server in the web UI. More... | |
| class | EditWaypoint |
| 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... | |
| class | ErodeMask2D |
| Apply morphological erosion to a vector of 2D masks. More... | |
| class | ExecuteFollowJointTrajectory |
| Accepts a JointTrajectory message via an input data port, and executes it by sending a goal to the specified FollowJointTrajectory action server. More... | |
| class | ExecuteMTCSolution |
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... | |
| class | ExecuteMTCTask |
Takes an MTC Solution message via an input data port, and executes the lowest-cost trajectory in that Solution using the MTC ExecuteTaskSolution MoveGroup capability's /execute_task_solution action server. More... | |
| class | ExecuteTrajectory |
| 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... | |
| class | ExecuteTrajectoryWithAdmittance |
| Accepts a JointTrajectory message via an input data port, and executes it by sending a goal to a Joint Trajectory With Admittance controller (JTAC). More... | |
| struct | ExemplarInfo |
| Exemplar-specific metadata captured before resize; present only when an exemplar was provided. More... | |
| class | ExtractGraspableObjectPose |
| Changes an input GraspableObject into a PoseStamped by getting its pose and its ID. More... | |
| class | FilterMasks2DByArea |
| Filter 2D masks based on mask area only. More... | |
| class | FilterMasks2DByBoundingBox |
| Filter 2D masks based on bounding box dimensions only. More... | |
| class | FindMaskedObjects |
| Finds objects by segmenting a point cloud using a set of 2D mask images. More... | |
| class | FindSingularCuboids |
| Finds well-singulated cuboids supported by a surface within a point cloud. More... | |
| class | FindSlicePlanesAlongEdge |
| Finds a series of waypoints (slice planes) along a selected edge between 4 corner waypoints. More... | |
| class | FitLineSegmentToMask3D |
| Finds the line segment that best fits a point cloud fragment. More... | |
| class | FollowPathAction |
| Calls an action server that uses nav2_msgs::action::FollowPath and outputs feedback. The FollowPath action (ROS 2 Humble) does not return a result. More... | |
| class | ForceExceedsThreshold |
| 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... | |
| class | ForEach |
| A class for creating a behavior tree decorator node to iterate through a vector of items. More... | |
| class | ForEachUntilSuccess |
| A decorator node that iterates through a vector of items, stopping on first successful child node tick. More... | |
| class | GenerateCoveragePath |
| Creates a zig-zag path for a robot end-effector to follow, to cover a given area. More... | |
| class | GenerateCuboidGraspPoses |
| Given a target GraspableObject and planning details about the arm, generate grasp poses. More... | |
| class | GeneratePointToPointTrajectory |
| Generate a joint-space point-to-point trajectory to move the robot from the start joint state to the target joint state. More... | |
| class | GenerateVacuumGraspPoses |
| Given a target GraspableObject and planning details about the arm, generate grasp poses. More... | |
| class | GetCameraInfo |
| 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... | |
| class | GetCenterFromMask2D |
| Given a mask, compute the centroid and write the point to the blackboard. More... | |
| class | GetCenterMostAprilTag |
| Gets the stamped pose of the AprilTag detection closest to the center of the camera image. More... | |
| class | GetCentroidFromPointCloud |
| 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... | |
| class | GetClosestObjectToPose |
| Given a collection of GraspableObjects, find the one that's closest to the provided pose. More... | |
| class | GetContourFromPointCloudSlice |
| Extracts contours from a point cloud slice. More... | |
| class | GetConvexHullPointCloud |
| Computes a 3D convex hull around an input point cloud and densely resamples the surface to fill holes. More... | |
| class | GetCurrentPlanningScene |
| Get the current planning scene state from the MoveIt PlanningSceneMonitor via service request. More... | |
| class | GetDetectionPose |
| Gets the stamped pose of an object detection given a label or ID, if one exists. More... | |
| class | GetElementOfVector |
| Get the element of a vector at the given index. More... | |
| class | GetFilePathsFromDirectory |
| Get all filenames in a given directory (optionally with a specific file extension). More... | |
| class | GetGraspableObjectsFromMasks3D |
| Finds objects in point cloud segments represented by 3D masks. More... | |
| class | GetGraspPoseFromPointCloud |
Infer a parallel jaw grasp pose from point cloud of an object. Details of the machine learning model can be seen at https://github.com/antoalli/L2G The point cloud of the object to grasp is given through point_cloud. No inference of what the point cloud represents is done, nor any notion of collision checking. Only the points of the object to be grasped should be given. The point cloud should approximately fit in a 0.22 meter cube. number_of_grasps_to_return is a simple clamping and the model is always inferring a fixed number, which is about 50. model_path locates the .onnx file of the model weights. If model_package is specified, model_path will be assumed relative to its directory. grasps are the poses of the closed end effector tip. They are not sorted by quality and require feasibility and collision checking. More... | |
| class | GetImage |
| 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... | |
| class | GetLatestTransform |
| Gets the latest transform from the robot model root to a frame specified as an input parameter to this behavior. More... | |
| class | GetMask2DProperties |
| Extract bounding box dimensions and area from a single Mask2D message. More... | |
| struct | GetMasks2DAutomask |
| Segment an image using SAM2 automasking with grid-based point generation. More... | |
| struct | GetMasks2DFromExemplar |
| Segment an image using SAM3 with multimodal prompts. More... | |
| class | GetMasks2DFromPointQuery |
| Segment an image using the SAM 2 model and point prompts. More... | |
| class | GetMasks2DFromPointQueryInterface |
| class | GetMasks2DFromTextQuery |
| Segment an image using the ClipSeg model. More... | |
| class | GetMasks2DFromTextQueryInterface |
| class | GetMasks3DFromMasks2D |
| Backprojects a number of image masks onto a point cloud with a camera model. More... | |
| class | GetMeshNormalPoses |
| Gets the normal vectors for a given mesh and returns the normal vector poses to the caller. More... | |
| class | GetMessageFromTopicBehaviorBase |
| 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... | |
| class | GetOdom |
| Subscribes to an odometry message and stores it on the blackboard. More... | |
| class | GetOrientedBoundingBoxFromPointCloud |
| 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... | |
| class | GetPointCloud |
| 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... | |
| class | GetPointCloudFromMask3D |
| Gets the fragment of a point cloud for a 3D mask. More... | |
| class | GetPoints2DFromGeminiQuery |
| Queries Google Gemini with a text prompt and a ROS image to locate 2D points in the image. More... | |
| class | GetPointsFromUser |
| Requests a set of named points from the user by switching the view and displaying a sequence of prompts in the UI. More... | |
| class | GetPoseFromPixelCoords |
| Given an ordered point cloud and normalized pixel XY coordinates, outputs a stamped pose corresponding to a point normal to the selected coordinates. More... | |
| class | GetPoseFromUser |
| Sends a prompt request to the UI so that the user can click in the UI and return a pose. More... | |
| class | GetRobotJointState |
| This behavior extracts joint state data from a planning scene object. More... | |
| class | GetSizeOfVector |
| Get the size of a vector. More... | |
| class | GetSyncedImageAndPointCloud |
| Get data from time-synchronized image and point cloud topics and populate them in output ports. More... | |
| class | GetSyncedImages |
| Get data from time-synchronized image topics and populate them in output ports. More... | |
| class | GetTextFromUser |
| Gets text from user by sending a list of prompts with default values for each prompt. More... | |
| class | GetTrajectoryStateAtTime |
| Get the JointState of a JointTrajectory at a specified time. More... | |
| class | InitializeMTCTask |
| Creates a shared pointer to a new MTC Task object, populates it with global settings (for example, the names of controllers to enable by default when executing trajectories planned by this Task), and sets it as an output data port. More... | |
| class | InsertInVector |
| Insert an element into a vector at the given index. More... | |
| class | IsAnyObjectAttached |
| 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... | |
| class | IsCollisionObjectInPlanningScene |
| Checks a PlanningScene to see if a CollisionObject with a specific ID exists. Returns SUCCESS if the CollisionObject is found, FAILURE otherwise. More... | |
| class | IsObjectAttachedTo |
| class | IsPoseNearIdentity |
| Returns SUCCESS if the pose is within the position and rotation tolerances of the identity pose. Useful for evaluating an error pose. More... | |
| class | IsUserAvailable |
Checks for the presence of a user interface by checking if the /trajectory_bridge ROS node exists. More... | |
| class | IsVisibilityConstraintSatisfied |
| Check if the robot's current state satisfies a visibility kinematic constraint relative to an object. More... | |
| class | JointJog |
| A Behavior to forward JointJog commands to a Joint Velocity Controller. More... | |
| class | ListControllers |
| Lists controllers from the controller manager with two independent filters. More... | |
| class | LoadFromYaml |
| Loads a type from a YAML file, and returns it in an output port. More... | |
| class | LoadImageFromFile |
| Loads an image from a file and writes it to an output data port. More... | |
| class | LoadMultipleFromYaml |
| Loads types from a YAML file, and returns them as a vector in an output port. More... | |
| class | LoadPointCloudFromFile |
| Loads a point cloud from a .pcd or .stl file, optionally recolors it, and writes it to an output data port. More... | |
| class | LogMessage |
| Logs a user specified message via the LoggerROS class. ROS 2 log severity of message specified by log_level. More... | |
| class | MergePointClouds |
| Merges a number of input point clouds into a single one. More... | |
| class | ModifyObjectInPlanningScene |
| Uses the service provided by the ApplyPlanningScene MoveGroup capability plugin to add a collision object representing a GraspableObject to the planning scene. More... | |
| class | MoveCollisionObject |
| Updates the reference pose of an existing CollisionObject in the planning scene. More... | |
| class | MoveGripperAction |
| 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... | |
| class | MPCBehaviorBase |
| A base class for behaviors to help set up and execute MPC. More... | |
| class | MPCBehaviorsLoader |
| class | MPCPointCloudClearance |
| Avoid a point cloud using MPC. More... | |
| class | MPCPoseTracking |
| Track a moving pose using MPC. More... | |
| class | MPCSphereClearance |
| Avoid collision object spheres using MPC. More... | |
| class | MTCCoreBehaviorsLoader |
| class | MTCTaskSetupBehaviorsLoader |
| class | MujocoBehaviorsLoader |
| Plugin loader for MuJoCo-related behaviors. More... | |
| class | NavBehaviorsLoader |
| class | NavigateThroughPosesAction |
| Calls an action server that uses nav2_msgs::action::NavigateThroughPoses and outputs feedback The NavigateThroughPoses action (ROS 2 Humble) does not produce a result. More... | |
| class | NavigateToPoseAction |
| Calls an action server that uses nav2_msgs::action::NavigateToPose and outputs feedback The NavigateToPose action (ROS 2 Humble) does not produce a result. More... | |
| struct | ObjectWithDistance |
| Associates a GraspableObject with a distance metric. More... | |
| class | OverridePoseOrientation |
| Replaces the orientation of a PoseStamped with a fixed quaternion. More... | |
| class | PersistentPublisherCache |
| Topic-keyed cache of publishers whose latched samples must outlive the Behavior instance that created them. More... | |
| class | PlanCartesianPath |
| Given a Cartesian-space path, plan a joint-space trajectory to move the robot tip(s) along the path. More... | |
| class | PlanMTCTask |
| 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... | |
| class | PlanToJointGoal |
| Given a joint-space goal, plan a joint-space trajectory to reach the goal. More... | |
| class | PoseJog |
| A Behavior to protect a robot from collisions when using the MoveIt Pro Velocity Force Controller (VFC). More... | |
| struct | PostProcessResult |
| Outputs produced by post-processing SAM3 masks. More... | |
| class | PublishBoundingBoxes2D |
| Publishes a bounding box visualization to a topic. More... | |
| class | PublishEmpty |
| Publish a std_msgs::msg::Empty message to a topic. More... | |
| class | PublisherInterfaceBase |
| Defines an interface to a publisher that sends a message to a topic. More... | |
| class | PublishMarkers |
| Publishes a set of markers to the UI for visualization. More... | |
| class | PublishMask2D |
| Publishes a masks visualization to topic. More... | |
| class | PublishPointCloud |
| Publish a point cloud. More... | |
| class | PublishStaticFrame |
Deprecated alias for PublishTF. More... | |
| class | PublishString |
| Publish a std_msgs::msg::String message to a topic. More... | |
| class | PublishTF |
| Publishes a dynamic transform on /tf at a configured rate. More... | |
| class | PublishVelocityForceCommand |
| Publishes a velocity force command to the velocity force controller at a fixed rate. More... | |
| class | PushBackVector |
| Append an element to the back of a vector. More... | |
| class | PushToSolutionQueue |
| Push a new MTC solution to the solution queue. More... | |
| class | RclcppClientInterface |
| Implements ClientInterfaceBase for the rclcpp service client. More... | |
| class | RclcppPublisherInterface |
| Implementation of the publisher interface for a rclcpp publisher. More... | |
| class | RclcppSubscriberInterface |
| rclcpp implementation of the one-shot subscriber interface. More... | |
| class | ReadTextFileAsString |
| Read the contents of a text file and output the contents as a std::string. More... | |
| class | RecordJointTrajectory |
| Record a JointTrajectory message by subscribing to a topic publishing joint states and pushing the joint states to a JointTrajectory message. More... | |
| class | RegisterPointClouds |
| 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... | |
| class | RemoveCollisionObject |
| Removes a collision object from a planning scene by id. More... | |
| class | RemoveCollisionObjectFromPlanningScene |
| Uses the service provided by the ApplyPlanningScene MoveGroup capability plugin to remove a collision object from the planning scene. The CollisionObject that has an ID that matches object_id has its operation field set to REMOVE. If there is no CollisionObject with object_id, the behavior returns an error. More... | |
| class | RemoveFromVector |
| Remove an element from a vector at the given index. More... | |
| class | RemoveURDFFromScene |
| This Behavior removes a URDF object from the planning scene. More... | |
| class | RepeatUnlessFailureEachTick |
Decorator that ticks its child up to num_cycles times, advancing one iteration per parent tick. More... | |
| class | RepeatUnlessFailureWithinTick |
Decorator that ticks its child up to num_cycles times within a single parent tick, stopping on first failure. More... | |
| class | ReplaceInVector |
| Replace an element in a vector at the given index. More... | |
| class | ResetMujocoKeyframe |
| Resets the MuJoCo simulation to a specified keyframe. More... | |
| class | ResetPlanningSceneObjects |
| 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... | |
| class | ResetVector |
| Create an empty vector and set it to the blackboard. More... | |
| class | RetrieveJointStateParameter |
| Retrieves a joint state from the MoveIt Pro parameter manager node. More... | |
| class | RetrievePoseParameter |
| Retrieves a stamped pose from the MoveIt Pro parameter manager node. More... | |
| class | RetrieveWaypoint |
| Given a named waypoint, sends a service request to the Agent WaypointManager to retrieve the joint state associated with that waypoint. More... | |
| class | ReverseVector |
| Reverses the order of elements in a vector and sets the reversed vector to the blackboard. More... | |
| class | ROSPublisherHandle |
| class | RotateTwistToFrame |
| Rotates a stamped twist into a different frame's orientation. More... | |
| class | SaveCurrentState |
| Use the /get_planning_scene service from move_group to save the robot's current state. More... | |
| class | SaveImageToFile |
| Save an image to disk as a .png file. The filename will follow the syntax of file_prefix_YYYYMMDD_HHMMSS.png. More... | |
| class | SaveMTCTaskInspection |
| 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... | |
| class | SavePointCloudToFile |
| Save a point cloud .pcd file to disk. The filename will follow the syntax of file_prefix_YYYYMMDD_HHMMSS.pcd. More... | |
| class | SavePoseForUrdf |
| Saves a PoseStamped in xyz rpy URDF format to file. More... | |
| class | SaveToYaml |
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... | |
| class | SendMessageToTopicBehaviorBase |
| Base class for Behaviors that send a message to a topic. The message contents and topic name are specified as input ports. More... | |
| class | SendPointCloudToUI |
| Transform a point cloud to the "world" frame and publish it as PCD to a topic the UI visualizes. More... | |
| class | ServiceClientBehaviorBase |
| A base class for behaviors which need to send a request to a ROS service client and wait for a result. More... | |
| class | SetAdmittanceParameters |
| Sets admittance parameters to be used in the 'ExecuteTrajectoryWithAdmittance' Behavior. More... | |
| class | SetCollisionRule |
| Allows or forbids collisions between two entities in the planning scene's Allowed Collision Matrix, without an MTC task. More... | |
| class | SetInitialPose |
| 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... | |
| class | SetMujocoState |
| Sets MuJoCo simulation state to specified joint positions. More... | |
| class | SetRos2Parameter |
| Set any ROS2 parameter on any node at runtime via the standard set_parameters service. More... | |
| class | SetupMTCAddCollisionBox |
| Append an MTC ModifyPlanningScene stage that adds a box-shaped collision object to the planning scene during MTC task execution. More... | |
| class | SetupMTCAddCollisionCylinder |
| Append an MTC ModifyPlanningScene stage that adds a cylinder-shaped collision object to the planning scene during MTC task execution. More... | |
| class | SetupMTCAddCollisionMesh |
| Append an MTC ModifyPlanningScene stage that adds a mesh collision object to the planning scene during MTC task execution. More... | |
| class | SetupMTCAddCollisionSphere |
| Append an MTC ModifyPlanningScene stage that adds a sphere-shaped collision object to the planning scene during MTC task execution. More... | |
| class | SetupMTCApproachGrasp |
| Given an existing MTC Task object and a target object, appends MTC stages to describe a motion plan to approach the object. More... | |
| class | SetupMTCAttachObject |
| Add an MTC Stage to an MTC Task that attaches an object to the named robot frame. More... | |
| class | SetupMTCAttachObjectByID |
| Append an MTC ModifyPlanningScene stage that attaches a collision object to a robot link during MTC task execution. More... | |
| class | SetupMTCAttachOrDetachObject |
| This is the base class for SetupMTCAttachObject and SetupMTCDetachObject. More... | |
| class | SetupMTCBatchPoseIK |
| Given an existing MTC Task object and a vector of poses, appends an MTC stage to compute IK solutions. *. More... | |
| class | SetupMTCCartesianMoveToJointState |
| Given an existing MTC Task object and a joint state, appends MTC stages to describe a cartesian motion plan to that joint state. More... | |
| class | SetupMTCCartesianSequence |
| 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... | |
| class | SetupMTCConnectWithProRRT |
| 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... | |
| class | SetupMTCCurrentState |
| Given an existing MTC Task object, appends an MTC CurrentState Stage to the Task. More... | |
| class | SetupMTCDetachObject |
| Add an MTC Stage to an MTC Task that detaches an object from the named robot frame. More... | |
| class | SetupMTCDetachObjectByID |
| Append an MTC ModifyPlanningScene stage that detaches a collision object from a robot link during MTC task execution. More... | |
| class | SetupMTCFixedJointState |
| Given an existing MTC Task object, appends an MTC FixedState Stage to the Task. More... | |
| class | SetupMTCFromSolution |
| 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... | |
| class | SetupMTCGenerateCuboidGrasps |
| Given an existing MTC Task object and a target object, appends MTC stages to generate cuboid grasp poses. More... | |
| class | SetupMTCGenerateVacuumGrasps |
| Given an existing MTC Task object and a target object, appends MTC stages to generate vacuum grasp poses on its planar surfaces. More... | |
| class | SetupMTCIgnoreCollisionsBetweenObjects |
| Given an MTC Task, append an MTC Stage that modifies the planning scene's Allowed Collision Matrix to permit or forbid collision between a set of objects while planning subsequent Stages. More... | |
| class | SetupMTCInterpolateToJointState |
| 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... | |
| class | SetupMTCMoveAlongFrameAxis |
| Given an existing MTC Task object, append a MTC MoveRelative stage to perform a cartesian motion along an axis. More... | |
| class | SetupMTCMultiEEFMoveAlongAxis |
| The SetupMTCMultiEEFMoveAlongAxis class adds a dual cartesian motion stage to a MoveIt Task Constructor task. More... | |
| class | SetupMTCPathIK |
| Given an existing MTC Task object, append a stage to perform a cartesian motion along a given path. More... | |
| class | SetupMTCPlanToJointState |
| 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... | |
| class | SetupMTCPlanToPose |
| 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... | |
| class | SetupMTCRemoveCollisionObject |
| Append an MTC ModifyPlanningScene stage that removes a collision object from the planning scene during MTC task execution. More... | |
| class | SetupMTCSetCollisionRule |
| Append an MTC ModifyPlanningScene stage that allows or forbids collisions between two entities during MTC task execution. More... | |
| class | SetupMTCUpdateGroupCollisionRule |
| Given an MTC Task, append an MTC Stage that modifies the planning scene's Allowed Collision Matrix to permit or forbid collision between a planning scene object and the links of a named robot planning group while planning subsequent Stages. More... | |
| class | SetupMTCUpdateObjectCollisionRule |
| Add an MTC Stage to an MTC Task that makes following stages either allow or prohibit collision between a GraspableObject and another entity. The other entity can be either a named collision object in the planning scene or the links of a named robot planning group. More... | |
| class | SharedResourcesNode |
| The SharedResourcesNode class provides a BehaviorContext object when constructing a BehaviorTree.Cpp node. More... | |
| class | SharedResourcesNodeLoaderBase |
| The SharedResourcesNodeLoaderBase class is a base class for Behavior loader plugins that register Behaviors inheriting from SharedResourcesNode. More... | |
| class | SolveIKQueries |
| class | SplitMTCSolution |
| 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... | |
| class | SteadyClockInterface |
| Implementation of ClockInterfaceBase for std::chrono::steady_clock. More... | |
| class | StopwatchBegin |
| Saves the current epoch time as a timepoint to a data port. More... | |
| class | StopwatchEnd |
| Measure the difference between an input timepoint and the current timepoint, and emit a log message which states the time elapsed. More... | |
| class | StringToInt |
| Converts a string to an int. More... | |
| class | SubscriberInterface |
| One-shot subscriber interface that receives a single message from a topic, then cleans up. More... | |
| class | SuppressChildErrors |
| A decorator that filters the log messages produced while ticking its child Behavior. More... | |
| class | SwitchController |
A Behavior to call the ros2_control switch_controllers service to activate/deactivate controllers. More... | |
| class | SwitchUIPrimaryView |
| Switches the primary view in the MoveIt Studio Developer Tool. More... | |
| class | TransformPointCloud |
| Transforms a point cloud given an input pose in the same frame as the point cloud. More... | |
| class | TransformPointCloudFrame |
| Transforms a point cloud to a target coordinate frame. More... | |
| class | TransformPose |
| Transforms a stamped pose given an input translation and orientation. More... | |
| class | TransformPoseFrame |
| 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... | |
| class | TransformPoseWithPose |
| Transforms an input stamped pose with the transform specified by another stamped pose. More... | |
| class | TrimPointcloudSurface |
| Trims a point cloud to contain only points within a quadrilateral boundary defined by 4 waypoints. More... | |
| class | UpdatePlanningSceneService |
| 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... | |
| class | ValidateTrajectory |
| Checks if a joint trajectory is valid, given a PlanningScene. More... | |
| class | VisionBehaviorsLoader |
| class | VisualizeCameraFrustum |
| Publishes a visualization marker showing a camera frustum as a LINE_LIST. More... | |
| class | VisualizeLine |
| Publishes a visualization marker that draws a line between two poses. More... | |
| class | VisualizeMesh |
| Publishes a marker that contains a mesh path to the UI for visualization. More... | |
| class | VisualizePath |
| Publishes a marker array that contains a polyline representing a path. More... | |
| class | VisualizePose |
| Publishes a visualization marker that contains three lines composing a coordinate frame. More... | |
| class | WaitAndPopSolutionQueue |
| Pops the MTC solution queue to get the next solution to be processed. More... | |
| class | WaitForDuration |
| Wait for a specified duration before succeeding. More... | |
| class | WaitForJointTrajectoryApproval |
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... | |
| class | WaitForMTCSolutionApproval |
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... | |
| class | WaitForUserPathApproval |
| Sends a prompt request to the UI to accept or reject a visualized nav_msgs::msg::Path. More... | |
| class | WaitForUserTrajectoryApproval |
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... | |
| class | WhichObjectIsAttached |
| Checks a PlanningScene to determine if an object is attached from a given vector of object names. More... | |
Typedefs | |
| using | ApplyPlanningScene = moveit_msgs::srv::ApplyPlanningScene |
| using | Trigger = std_srvs::srv::Trigger |
| using | GetPlanningScene = moveit_msgs::srv::GetPlanningScene |
| using | DoTeleoperate = moveit_studio_sdk_msgs::action::DoTeleoperate |
| using | EditWaypoints = moveit_studio_agent_msgs::srv::EditWaypoints |
| using | FollowJointTrajectory = control_msgs::action::FollowJointTrajectory |
| using | GripperCommand = control_msgs::action::GripperCommand |
| using | SetParameters = rcl_interfaces::srv::SetParameters |
| using | ListControllersSrv = controller_manager_msgs::srv::ListControllers |
| using | SwitchControllerSrv = controller_manager_msgs::srv::SwitchController |
| using | AdjustPose = moveit_studio_internal_msgs::srv::AdjustPose |
| using | RequestPointsFromUser = moveit_studio_internal_msgs::srv::RequestPointsFromUser |
| using | GetPoseFromUserSrv = moveit_studio_internal_msgs::srv::GetPoseFromUser |
| using | RequestTextFromUser = moveit_studio_internal_msgs::srv::RequestTextFromUser |
| using | RetrieveJointState = moveit_studio_agent_msgs::srv::RetrieveJointState |
| using | RetrievePose = moveit_studio_agent_msgs::srv::RetrievePose |
| using | ExecuteTaskSolution = moveit_task_constructor_msgs::action::ExecuteTaskSolution |
| using | StoreUidMap = moveit_studio_internal_msgs::srv::StoreUidMap |
| using | ComputePathToPose = nav2_msgs::action::ComputePathToPose |
| using | FollowPath = nav2_msgs::action::FollowPath |
| using | NavigateThroughPoses = nav2_msgs::action::NavigateThroughPoses |
| using | NavigateToPose = nav2_msgs::action::NavigateToPose |
| using | WaitForUserPathApprovalSrv = moveit_studio_internal_msgs::srv::WaitForUserPathApproval |
| using | NormalizedBox = moveit_pro_ml::onnx::Box< moveit_pro_ml::onnx::box_format::CXCYWH, moveit_pro_ml::onnx::coord_system::Normalized > |
| Normalized CXCYWH box in SAM3 inference coordinate space. | |
| using | SendPointCloud2 = moveit_studio_agent_msgs::srv::SendPointCloud2 |
| using | AddURDFSrv = moveit_studio_agent_msgs::srv::AddURDF |
| using | AttachURDFSrv = moveit_studio_agent_msgs::srv::AttachURDF |
| using | DetachOrRemoveURDFSrv = moveit_studio_agent_msgs::srv::DetachOrRemoveURDF |
| using | NchwTensor = moveit_pro_ml::onnx::Tensor< float, moveit_pro_ml::onnx::tensor_format::NCHW > |
| using | AddPoseStampedToVector = AddToVector< geometry_msgs::msg::PoseStamped > |
AddPoseStampedToVector Behavior: the geometry_msgs::msg::PoseStamped specialization of AddToVector. | |
| using | LoadPointStampedVectorFromYaml = LoadMultipleFromYaml< geometry_msgs::msg::PointStamped > |
LoadPointStampedVectorFromYaml Behavior: the geometry_msgs::msg::PointStamped specialization of LoadMultipleFromYaml. | |
| using | LoadPoseVectorFromYaml = LoadMultipleFromYaml< geometry_msgs::msg::Pose > |
LoadPoseVectorFromYaml Behavior: the geometry_msgs::msg::Pose specialization of LoadMultipleFromYaml. | |
| using | LoadPoseStampedVectorFromYaml = LoadMultipleFromYaml< geometry_msgs::msg::PoseStamped > |
LoadPoseStampedVectorFromYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of LoadMultipleFromYaml. | |
| using | LoadHeaderVectorFromYaml = LoadMultipleFromYaml< std_msgs::msg::Header > |
LoadHeaderVectorFromYaml Behavior: the std_msgs::msg::Header specialization of LoadMultipleFromYaml. | |
| using | LoadSubframesFromYaml = LoadMultipleFromYaml< moveit_studio_vision_msgs::msg::ObjectSubframe > |
LoadSubframesFromYaml Behavior: the moveit_studio_vision_msgs::msg::ObjectSubframe specialization of LoadMultipleFromYaml. | |
| using | LoadPointStampedFromYaml = LoadFromYaml< geometry_msgs::msg::PointStamped > |
LoadPointStampedFromYaml Behavior: the geometry_msgs::msg::PointStamped specialization of LoadFromYaml. | |
| using | LoadPoseFromYaml = LoadFromYaml< geometry_msgs::msg::Pose > |
LoadPoseFromYaml Behavior: the geometry_msgs::msg::Pose specialization of LoadFromYaml. | |
| using | LoadPoseStampedFromYaml = LoadFromYaml< geometry_msgs::msg::PoseStamped > |
LoadPoseStampedFromYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of LoadFromYaml. | |
| using | LoadQuaternionFromYaml = LoadFromYaml< geometry_msgs::msg::Quaternion > |
LoadQuaternionFromYaml Behavior: the geometry_msgs::msg::Quaternion specialization of LoadFromYaml. | |
| using | LoadTransformFromYaml = LoadFromYaml< geometry_msgs::msg::Transform > |
LoadTransformFromYaml Behavior: the geometry_msgs::msg::Transform specialization of LoadFromYaml. | |
| using | LoadTransformStampedFromYaml = LoadFromYaml< geometry_msgs::msg::TransformStamped > |
LoadTransformStampedFromYaml Behavior: the geometry_msgs::msg::TransformStamped specialization of LoadFromYaml. | |
| using | LoadVector3FromYaml = LoadFromYaml< geometry_msgs::msg::Vector3 > |
LoadVector3FromYaml Behavior: the geometry_msgs::msg::Vector3 specialization of LoadFromYaml. | |
| using | LoadRobotJointStateFromYaml = LoadFromYaml< moveit_studio_agent_msgs::msg::RobotJointState > |
LoadRobotJointStateFromYaml Behavior: the moveit_studio_agent_msgs::msg::RobotJointState specialization of LoadFromYaml. | |
| using | LoadObjectSubframeFromYaml = LoadFromYaml< moveit_studio_vision_msgs::msg::ObjectSubframe > |
LoadObjectSubframeFromYaml Behavior: the moveit_studio_vision_msgs::msg::ObjectSubframe specialization of LoadFromYaml. | |
| using | LoadHeaderFromYaml = LoadFromYaml< std_msgs::msg::Header > |
LoadHeaderFromYaml Behavior: the std_msgs::msg::Header specialization of LoadFromYaml. | |
| using | LoadJointTrajectoryFromYaml = LoadFromYaml< trajectory_msgs::msg::JointTrajectory > |
LoadJointTrajectoryFromYaml Behavior: the trajectory_msgs::msg::JointTrajectory specialization of LoadFromYaml. | |
| using | ResetPoseStampedVector = ResetVector< geometry_msgs::msg::PoseStamped > |
ResetPoseStampedVector Behavior: the geometry_msgs::msg::PoseStamped specialization of ResetVector. | |
| using | ReversePoseStampedVector = ReverseVector< geometry_msgs::msg::PoseStamped > |
ReversePoseStampedVector Behavior: the geometry_msgs::msg::PoseStamped specialization of ReverseVector. | |
| using | SavePointStampedToYaml = SaveToYaml< geometry_msgs::msg::PointStamped > |
SavePointStampedToYaml Behavior: the geometry_msgs::msg::PointStamped specialization of SaveToYaml. | |
| using | SavePoseToYaml = SaveToYaml< geometry_msgs::msg::Pose > |
SavePoseToYaml Behavior: the geometry_msgs::msg::Pose specialization of SaveToYaml. | |
| using | SavePoseStampedToYaml = SaveToYaml< geometry_msgs::msg::PoseStamped > |
SavePoseStampedToYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of SaveToYaml. | |
| using | SaveQuaternionToYaml = SaveToYaml< geometry_msgs::msg::Quaternion > |
SaveQuaternionToYaml Behavior: the geometry_msgs::msg::Quaternion specialization of SaveToYaml. | |
| using | SaveTransformToYaml = SaveToYaml< geometry_msgs::msg::Transform > |
SaveTransformToYaml Behavior: the geometry_msgs::msg::Transform specialization of SaveToYaml. | |
| using | SaveTransformStampedToYaml = SaveToYaml< geometry_msgs::msg::TransformStamped > |
SaveTransformStampedToYaml Behavior: the geometry_msgs::msg::TransformStamped specialization of SaveToYaml. | |
| using | SaveVector3ToYaml = SaveToYaml< geometry_msgs::msg::Vector3 > |
SaveVector3ToYaml Behavior: the geometry_msgs::msg::Vector3 specialization of SaveToYaml. | |
| using | SaveRobotJointStateToYaml = SaveToYaml< moveit_studio_agent_msgs::msg::RobotJointState > |
SaveRobotJointStateToYaml Behavior: the moveit_studio_agent_msgs::msg::RobotJointState specialization of SaveToYaml. | |
| using | SaveHeaderToYaml = SaveToYaml< std_msgs::msg::Header > |
SaveHeaderToYaml Behavior: the std_msgs::msg::Header specialization of SaveToYaml. | |
| using | SaveJointTrajectoryToYaml = SaveToYaml< trajectory_msgs::msg::JointTrajectory > |
SaveJointTrajectoryToYaml Behavior: the trajectory_msgs::msg::JointTrajectory specialization of SaveToYaml. | |
Enumerations | |
| enum class | CropOrRemovePointsInBoxModes { CROP , REMOVE } |
| Base class 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... | |
| enum class | Subcategory { MotionTaskPlanning , MotionPlanning , MotionExecute , MotionControls , Perception3DPointCloud , Perception2DImage , PerceptionML , PerceptionPlanningScene , PerceptionCameraCalibration , VectorHandling , PoseHandling , YAMLHandling , StringHandling , UserInput , Utility , Grasping , Visualization , Navigation , ROSMessaging , PlanningSceneModification , ControlFlow , Conversions , SimulationMuJoCo , UserCreatedBehaviors } |
| Canonical subcategory values used by Behavior metadata. More... | |
Functions | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| moveit_msgs::srv::ApplyPlanningScene::Request | createAddVirtualCollisionObjectToPlanningSceneRequest (const moveit_studio_vision_msgs::msg::GraspableObject &graspable_object, const moveit_msgs::msg::PlanningScene &planning_scene) |
| Creates a ApplyPlanningScene::Request for adding a virtual collision object to the planning scene. | |
| 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. | |
| moveit_msgs::msg::AttachedCollisionObject | 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. | |
| tl::expected< void, std::string > | validateDistanceFieldParameters (const std::vector< double > &bbox_min, const std::vector< double > &bbox_max, double resolution, double max_distance) |
| Validate the inputs required to build a propagation distance field. | |
| tl::expected< std::shared_ptr< const moveit_pro::base::distance_field::DistanceField >, std::string > | computeSdfFromPlanningScene (const moveit_pro::base::planning_scene::PlanningScene &planning_scene, const DistanceFieldParameters ¶meters) |
| Build a propagation distance field from a planning scene. | |
| 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. | |
| 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 zig-zag path for a robot end-effector to follow, to cover a given area. | |
| 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. | |
| moveit_msgs::msg::CollisionObject | 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. | |
| 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. | |
| std::string | formatProfileError (const cartesian_planning::TrapezoidalProfileError &error) |
| Turn a Cartesian trapezoidal infeasibility into an operator-facing message that names the port to change. | |
| bool | start_recording_callback (std::atomic_bool &start_recording_flag, std::condition_variable &cv) |
| bool | 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) |
| void | 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) |
| 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) |
| void | 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) |
| 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. | |
| tl::expected< ApplyPlanningScene::Request, std::string > | createRemoveCollisionObjectFromPlanningSceneRequest (const std::string &object_id, moveit_msgs::msg::PlanningScene &planning_scene) |
| bool | 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. | |
| 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. | |
| 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. | |
| tl::expected< rclcpp::Parameter, std::string > | parseParameterValue (const std::string ¶meter_name, std::string_view value, const std::string &type) |
| Parse a string value into an rclcpp::Parameter of the specified type. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| GetPoseFromUserSrv::Request | 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. | |
| 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. | |
| BT::NodeStatus | 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. | |
| 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. | |
| BT::NodeStatus | 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. | |
| BT::NodeStatus | 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. | |
| 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. | |
| geometry_msgs::msg::PoseWithCovarianceStamped | makeInitialPose (const geometry_msgs::msg::TransformStamped &transform, double xy_variance, double yaw_variance) |
| Builds an AMCL initial-pose message from a TF transform. | |
| 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. | |
| tl::expected< cv::Mat, std::string > | resizeExemplar (const cv::Mat &exemplar, int target_height) |
| Resize exemplar image maintaining aspect ratio to match target height. | |
| 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. | |
| tl::expected< PostProcessResult, std::string > | postProcessMasks (const moveit_pro_ml::SAM3Detect::Result &prediction, const CombinedImageResult &combined_image, const std_msgs::msg::Header &image_header) |
| Convert SAM3 output masks to ROS messages and format scores. | |
| void | warnIfCpuFallback (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::SAM2Automasking::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. | |
| std::string | formatImageMetadata (const sensor_msgs::msg::Image &image_msg) |
| Returns a one-line human-readable summary of an image's metadata fields. | |
| tl::expected< void, std::string > | validateImageMetadata (const sensor_msgs::msg::Image &image_msg) |
| Validate that an image message's metadata fields are internally consistent. | |
| 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::PointStamped | get_mask_center (const moveit_studio_vision_msgs::msg::Mask2D &mask) |
| bool | clientMustBeRecreated (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. | |
| constexpr std::string_view | toString (Subcategory subcategory) |
| Returns the canonical display string for a Subcategory value. | |
| template<typename... Args> | |
| std::optional< std::string > | maybe_error (BT::Expected< Args >... args) |
| Check if any of the provided inputs represent error states and, if so, return their error messages. | |
| template<typename E , typename... Args> | |
| constexpr std::optional< E > | maybe_error (tl::expected< Args, E >... args) |
| Tests if any of the expected args passed in has an error. | |
| template<typename T > | |
| std::optional< T > | convertExpectedToOptional (BT::Expected< T > exp) |
| template<typename... Args> | |
| std::tuple< std::optional< Args >... > | getOptionalInputs (BT::Expected< Args >... args) |
| template<typename T > | |
| bool | shouldWarnOnMissingBlackboardEntry (const nonstd::expected< T, BT::PortInputError > &exp) |
| template<typename T > | |
| std::optional< T > | convertDiagnosticExpectedToOptional (nonstd::expected< T, BT::PortInputError > exp, std::string_view node_path, std::string_view port_key) |
| template<typename... Args> | |
| std::tuple< std::optional< Args >... > | getOptionalInputs (const BT::TreeNode &node, std::pair< std::string_view, nonstd::expected< Args, BT::PortInputError > >... args) |
| template<typename... Args> | |
| tl::expected< std::tuple< Args... >, std::string > | getRequiredInputs (BT::Expected< Args >... args) |
| std::pair< std::string, std::string > | MakeDeprecatedMetadata (std::string_view detail) |
| Makes the metadata key value pair to mark a behavior as deprecated. | |
| bool | normalize_orientation (geometry_msgs::msg::Quaternion &orientation) |
| Normalize a quaternion to ensure it is a unit quaternion. | |
| template<typename T > | |
| bool | normalize_orientation_msg (T &msg) |
| bool | shouldRecreatePublisher (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. | |
| bool | clientMustBeRecreated (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. | |
| template<typename T > | |
| BT::NodeBuilder | getDefaultNodeBuilder () |
| Helper function to create a BT::NodeBuilder for a behavior tree node with the default constructor signature. | |
| template<typename T > | |
| BT::NodeBuilder | getSharedResourcesNodeBuilder (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. | |
| template<typename T > | |
| void | registerBehavior (BT::BehaviorTreeFactory &factory, const std::string &name) |
| Helper function to register a behavior with the default constructor signature with a BT::BehaviorTreeFactory. | |
| template<typename T > | |
| void | registerBehavior (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. | |
| using moveit_pro::behaviors::AddPoseStampedToVector = typedef AddToVector<geometry_msgs::msg::PoseStamped> |
AddPoseStampedToVector Behavior: the geometry_msgs::msg::PoseStamped specialization of AddToVector.
| typedef moveit_studio_agent_msgs::srv::AddURDF moveit_pro::behaviors::AddURDFSrv |
| using moveit_pro::behaviors::AdjustPose = typedef moveit_studio_internal_msgs::srv::AdjustPose |
| typedef moveit_msgs::srv::ApplyPlanningScene moveit_pro::behaviors::ApplyPlanningScene |
| typedef moveit_studio_agent_msgs::srv::AttachURDF moveit_pro::behaviors::AttachURDFSrv |
| using moveit_pro::behaviors::ComputePathToPose = typedef nav2_msgs::action::ComputePathToPose |
| typedef moveit_studio_agent_msgs::srv::DetachOrRemoveURDF moveit_pro::behaviors::DetachOrRemoveURDFSrv |
| using moveit_pro::behaviors::DoTeleoperate = typedef moveit_studio_sdk_msgs::action::DoTeleoperate |
| using moveit_pro::behaviors::EditWaypoints = typedef moveit_studio_agent_msgs::srv::EditWaypoints |
| using moveit_pro::behaviors::ExecuteTaskSolution = typedef moveit_task_constructor_msgs::action::ExecuteTaskSolution |
| using moveit_pro::behaviors::FollowJointTrajectory = typedef control_msgs::action::FollowJointTrajectory |
| using moveit_pro::behaviors::FollowPath = typedef nav2_msgs::action::FollowPath |
| typedef moveit_msgs::srv::GetPlanningScene moveit_pro::behaviors::GetPlanningScene |
| using moveit_pro::behaviors::GetPoseFromUserSrv = typedef moveit_studio_internal_msgs::srv::GetPoseFromUser |
| using moveit_pro::behaviors::GripperCommand = typedef control_msgs::action::GripperCommand |
| using moveit_pro::behaviors::ListControllersSrv = typedef controller_manager_msgs::srv::ListControllers |
| using moveit_pro::behaviors::LoadHeaderFromYaml = typedef LoadFromYaml<std_msgs::msg::Header> |
LoadHeaderFromYaml Behavior: the std_msgs::msg::Header specialization of LoadFromYaml.
| using moveit_pro::behaviors::LoadHeaderVectorFromYaml = typedef LoadMultipleFromYaml<std_msgs::msg::Header> |
LoadHeaderVectorFromYaml Behavior: the std_msgs::msg::Header specialization of LoadMultipleFromYaml.
| using moveit_pro::behaviors::LoadJointTrajectoryFromYaml = typedef LoadFromYaml<trajectory_msgs::msg::JointTrajectory> |
LoadJointTrajectoryFromYaml Behavior: the trajectory_msgs::msg::JointTrajectory specialization of LoadFromYaml.
| 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.
| using moveit_pro::behaviors::LoadPointStampedFromYaml = typedef LoadFromYaml<geometry_msgs::msg::PointStamped> |
LoadPointStampedFromYaml Behavior: the geometry_msgs::msg::PointStamped specialization of LoadFromYaml.
| using moveit_pro::behaviors::LoadPointStampedVectorFromYaml = typedef LoadMultipleFromYaml<geometry_msgs::msg::PointStamped> |
LoadPointStampedVectorFromYaml Behavior: the geometry_msgs::msg::PointStamped specialization of LoadMultipleFromYaml.
| using moveit_pro::behaviors::LoadPoseFromYaml = typedef LoadFromYaml<geometry_msgs::msg::Pose> |
LoadPoseFromYaml Behavior: the geometry_msgs::msg::Pose specialization of LoadFromYaml.
| using moveit_pro::behaviors::LoadPoseStampedFromYaml = typedef LoadFromYaml<geometry_msgs::msg::PoseStamped> |
LoadPoseStampedFromYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of LoadFromYaml.
| using moveit_pro::behaviors::LoadPoseStampedVectorFromYaml = typedef LoadMultipleFromYaml<geometry_msgs::msg::PoseStamped> |
LoadPoseStampedVectorFromYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of LoadMultipleFromYaml.
| using moveit_pro::behaviors::LoadPoseVectorFromYaml = typedef LoadMultipleFromYaml<geometry_msgs::msg::Pose> |
LoadPoseVectorFromYaml Behavior: the geometry_msgs::msg::Pose specialization of LoadMultipleFromYaml.
| using moveit_pro::behaviors::LoadQuaternionFromYaml = typedef LoadFromYaml<geometry_msgs::msg::Quaternion> |
LoadQuaternionFromYaml Behavior: the geometry_msgs::msg::Quaternion specialization of LoadFromYaml.
| using moveit_pro::behaviors::LoadRobotJointStateFromYaml = typedef LoadFromYaml<moveit_studio_agent_msgs::msg::RobotJointState> |
LoadRobotJointStateFromYaml Behavior: the moveit_studio_agent_msgs::msg::RobotJointState specialization of LoadFromYaml.
| 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.
| using moveit_pro::behaviors::LoadTransformFromYaml = typedef LoadFromYaml<geometry_msgs::msg::Transform> |
LoadTransformFromYaml Behavior: the geometry_msgs::msg::Transform specialization of LoadFromYaml.
| using moveit_pro::behaviors::LoadTransformStampedFromYaml = typedef LoadFromYaml<geometry_msgs::msg::TransformStamped> |
LoadTransformStampedFromYaml Behavior: the geometry_msgs::msg::TransformStamped specialization of LoadFromYaml.
| using moveit_pro::behaviors::LoadVector3FromYaml = typedef LoadFromYaml<geometry_msgs::msg::Vector3> |
LoadVector3FromYaml Behavior: the geometry_msgs::msg::Vector3 specialization of LoadFromYaml.
| using moveit_pro::behaviors::NavigateThroughPoses = typedef nav2_msgs::action::NavigateThroughPoses |
| using moveit_pro::behaviors::NavigateToPose = typedef nav2_msgs::action::NavigateToPose |
| using moveit_pro::behaviors::NchwTensor = typedef moveit_pro_ml::onnx::Tensor<float, moveit_pro_ml::onnx::tensor_format::NCHW> |
| using moveit_pro::behaviors::NormalizedBox = typedef moveit_pro_ml::onnx::Box<moveit_pro_ml::onnx::box_format::CXCYWH, moveit_pro_ml::onnx::coord_system::Normalized> |
Normalized CXCYWH box in SAM3 inference coordinate space.
| using moveit_pro::behaviors::RequestPointsFromUser = typedef moveit_studio_internal_msgs::srv::RequestPointsFromUser |
| using moveit_pro::behaviors::RequestTextFromUser = typedef moveit_studio_internal_msgs::srv::RequestTextFromUser |
| using moveit_pro::behaviors::ResetPoseStampedVector = typedef ResetVector<geometry_msgs::msg::PoseStamped> |
ResetPoseStampedVector Behavior: the geometry_msgs::msg::PoseStamped specialization of ResetVector.
| using moveit_pro::behaviors::RetrieveJointState = typedef moveit_studio_agent_msgs::srv::RetrieveJointState |
| using moveit_pro::behaviors::RetrievePose = typedef moveit_studio_agent_msgs::srv::RetrievePose |
| using moveit_pro::behaviors::ReversePoseStampedVector = typedef ReverseVector<geometry_msgs::msg::PoseStamped> |
ReversePoseStampedVector Behavior: the geometry_msgs::msg::PoseStamped specialization of ReverseVector.
| using moveit_pro::behaviors::SaveHeaderToYaml = typedef SaveToYaml<std_msgs::msg::Header> |
SaveHeaderToYaml Behavior: the std_msgs::msg::Header specialization of SaveToYaml.
| using moveit_pro::behaviors::SaveJointTrajectoryToYaml = typedef SaveToYaml<trajectory_msgs::msg::JointTrajectory> |
SaveJointTrajectoryToYaml Behavior: the trajectory_msgs::msg::JointTrajectory specialization of SaveToYaml.
| using moveit_pro::behaviors::SavePointStampedToYaml = typedef SaveToYaml<geometry_msgs::msg::PointStamped> |
SavePointStampedToYaml Behavior: the geometry_msgs::msg::PointStamped specialization of SaveToYaml.
| using moveit_pro::behaviors::SavePoseStampedToYaml = typedef SaveToYaml<geometry_msgs::msg::PoseStamped> |
SavePoseStampedToYaml Behavior: the geometry_msgs::msg::PoseStamped specialization of SaveToYaml.
| using moveit_pro::behaviors::SavePoseToYaml = typedef SaveToYaml<geometry_msgs::msg::Pose> |
SavePoseToYaml Behavior: the geometry_msgs::msg::Pose specialization of SaveToYaml.
| using moveit_pro::behaviors::SaveQuaternionToYaml = typedef SaveToYaml<geometry_msgs::msg::Quaternion> |
SaveQuaternionToYaml Behavior: the geometry_msgs::msg::Quaternion specialization of SaveToYaml.
| using moveit_pro::behaviors::SaveRobotJointStateToYaml = typedef SaveToYaml<moveit_studio_agent_msgs::msg::RobotJointState> |
SaveRobotJointStateToYaml Behavior: the moveit_studio_agent_msgs::msg::RobotJointState specialization of SaveToYaml.
| using moveit_pro::behaviors::SaveTransformStampedToYaml = typedef SaveToYaml<geometry_msgs::msg::TransformStamped> |
SaveTransformStampedToYaml Behavior: the geometry_msgs::msg::TransformStamped specialization of SaveToYaml.
| using moveit_pro::behaviors::SaveTransformToYaml = typedef SaveToYaml<geometry_msgs::msg::Transform> |
SaveTransformToYaml Behavior: the geometry_msgs::msg::Transform specialization of SaveToYaml.
| using moveit_pro::behaviors::SaveVector3ToYaml = typedef SaveToYaml<geometry_msgs::msg::Vector3> |
SaveVector3ToYaml Behavior: the geometry_msgs::msg::Vector3 specialization of SaveToYaml.
| using moveit_pro::behaviors::SendPointCloud2 = typedef moveit_studio_agent_msgs::srv::SendPointCloud2 |
| using moveit_pro::behaviors::SetParameters = typedef rcl_interfaces::srv::SetParameters |
| using moveit_pro::behaviors::StoreUidMap = typedef moveit_studio_internal_msgs::srv::StoreUidMap |
| using moveit_pro::behaviors::SwitchControllerSrv = typedef controller_manager_msgs::srv::SwitchController |
| using moveit_pro::behaviors::Trigger = typedef std_srvs::srv::Trigger |
| using moveit_pro::behaviors::WaitForUserPathApprovalSrv = typedef moveit_studio_internal_msgs::srv::WaitForUserPathApproval |
Base class 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.
For CropPointsInBox:
| Data Port Name | Port Type | Object Type |
|---|---|---|
| point_cloud | input | sensor_msgs::msg::PointCloud2 |
| crop_box_centroid_pose | input | geometry_msgs::msg::PoseStamped |
| crop_box_size | input | std::vector<double> |
| point_cloud_cropped | output | sensor_msgs::msg::PointCloud2 |
For RemovePointsInBox:
| Data Port Name | Port Type | Object Type |
|---|---|---|
| point_cloud | input | sensor_msgs::msg::PointCloud2 |
| remove_box_centroid_pose | input | geometry_msgs::msg::PoseStamped |
| remove_box_size | input | std::vector<double> |
| point_cloud_culled | output | sensor_msgs::msg::PointCloud2 |
| Enumerator | |
|---|---|
| CROP | |
| REMOVE | |
Canonical subcategory values used by Behavior metadata.
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.
| 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.
| 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.
| 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 no-op for an id absent from the world; a stage callback additionally rejects, at plan time, removing an id that is currently attached to the robot (a planning failure), so a removal cannot silently leave an attached object in place. The check uses the MTC pipeline scene, not the live scene.
| 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.
overwrite is false, or when the scene rejects the object. | 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.
| 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). |
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. | 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.
| 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. |
| 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.
| 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. |
| 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.
object_id exists in scene. | 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.
| 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. |
| 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.
| 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. |
id, header, pose, and operation = MOVE populated and all shape arrays empty. MoveIt's MOVE handler ignores geometry in the message. | 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.
| 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. |
| 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.
| 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. |
| 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 | ||
| ) |
| 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.
| objects | Collection of GraspableObjects to evaluate. |
| pose | Pose to use for distance comparison. |
|
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:
This does NOT check if the client's QoS settings match the ones used by the server, because ServiceClientBehaviorBase always creates clients using the rmw_qos_profile_services_default QoS profile. Also, it is unlikely that a ROS 2 service server would use customized QoS settings.
| client | The service client to check |
| new_service_name | The new service 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:
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).
| client | The action client to check |
| new_action_name | The new action name |
| 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.
| 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.
| 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. |
| tl::expected< std::shared_ptr< const moveit_pro::base::distance_field::DistanceField >, std::string > moveit_pro::behaviors::computeSdfFromPlanningScene | ( | const moveit_pro::base::planning_scene::PlanningScene & | planning_scene, |
| const DistanceFieldParameters & | parameters | ||
| ) |
Build a propagation distance field from a planning scene.
Iterates the world objects of the planning scene and adds each shape to the field at its scene-relative pose. Octomap shapes are routed to addOcTreeToField internally by addShapeToField. This is a pure function (no BT or ROS context) so it can be unit-tested deterministically.
| planning_scene | The planning scene whose world objects should be voxelized. |
| parameters | The parameters of the distance field to build. |
|
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.
| 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. |
Check if an Expected has a value and return it if so. If not, return an empty optional.
| moveit_msgs::srv::ApplyPlanningScene::Request moveit_pro::behaviors::createAddVirtualCollisionObjectToPlanningSceneRequest | ( | const moveit_studio_vision_msgs::msg::GraspableObject & | graspable_object, |
| const moveit_msgs::msg::PlanningScene & | planning_scene | ||
| ) |
Creates a ApplyPlanningScene::Request for adding a virtual collision object to the planning scene.
| graspable_object | The virtual collision object to add to the planning scene |
| planning_scene | The planning scene |
| 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.
| 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 |
| tl::expected< ApplyPlanningScene::Request, std::string > moveit_pro::behaviors::createRemoveCollisionObjectFromPlanningSceneRequest | ( | const std::string & | object_id, |
| moveit_msgs::msg::PlanningScene & | planning_scene | ||
| ) |
| 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 | ||
| ) |
| 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.
| 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. |
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). | 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.
| 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. |
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. | 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.
| activate_controllers | The list of controllers to activate. |
| all_controllers | The list of all controllers and their states. |
| 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.
| deactivate_controllers | The list of controllers to deactivate. |
| all_controllers | The list of all controllers and their states. |
| 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.
| controllers_to_activate | The list of controllers to activate. |
| all_controllers | The list of all controllers and their states. |
| 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.
| object_id | Id of the object to move. |
| scene | Planning scene to search. |
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. | 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.
| controllers_to_activate | The list of controllers to activate. |
| all_controllers | The list of all controllers and their states. |
| 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.
| controllers_to_deactivate | The list of controllers to deactivate. |
| all_controllers | The list of all controllers and their states. |
| 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().
| std::string moveit_pro::behaviors::formatProfileError | ( | const cartesian_planning::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.
| error | The infeasibility diagnostic from cartesian_planning::fitCartesianTrapezoidalVelocityProfile(). |
| 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 zig-zag path for a robot end-effector to follow, to cover a given area.
| 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. |
| geometry_msgs::msg::PointStamped moveit_pro::behaviors::get_mask_center | ( | const moveit_studio_vision_msgs::msg::Mask2D & | mask | ) |
Helper function to create a BT::NodeBuilder for a behavior tree node with the default constructor signature.
| T | Create a builder for this type of node. Must be derived from BT::TreeNode. |
|
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.
|
inline |
Read any number of optional input ports with diagnostic-aware fallback behavior.
For each (port_key, diagnostic_expected) pair:
BlackboardKeyNotFound, a warning is logged and std::nullopt is returned;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") });
| 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. |
|
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.
|
inline |
Helper function to create a BT::NodeBuilder for a behavior tree node which takes shared_ptr<BehaviorContext> as an additional constructor parameter.
| shared_resources | A shared_ptr to an instance of BehaviorContext, which will be provided when creating the behaviors registered by this function. |
| T | Create a builder for this type of node. Must be derived from moveit_pro::behaviors::SharedResourcesNode. |
| 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 | ||
| ) |
| 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.
| 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. |
| 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 | ||
| ) |
|
inline |
Makes the metadata key value pair to mark a behavior as deprecated.
| detail | Any additional detail to print out with a deprecation warning. e.g. why or what the behavior is being replaced with. |
| 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.
|
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
| args | One or more BT::Expecteds (i.e., results from getInput) |
|
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.
| [in] | The | tl::expected<T, E> variables. All have to use the same error type. |
| E | The error type |
| Args | The value types for the tl::expected<T, E> args |
|
inline |
Normalize a quaternion to ensure it is a unit quaternion.
| orientation | The quaternion to normalize as a ROS msg. |
| 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 | ||
| ) |
| 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.
| 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". |
| tl::expected< PostProcessResult, std::string > moveit_pro::behaviors::postProcessMasks | ( | const moveit_pro_ml::SAM3Detect::Result & | 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:
Returns empty PostProcessResult when all masks are removed after cropping.
| 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. |
| tl::expected< std::vector< cv::Mat >, std::string > moveit_pro::behaviors::refineAndSplit | ( | const moveit_pro_ml::SAM2Automasking::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:
| 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 |
|
inline |
Helper function to register a behavior with the default constructor signature with a BT::BehaviorTreeFactory.
| 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"). |
| T | Register a behavior of this type. |
|
inline |
Helper function to register a behavior derived from SharedResourcesNode with a BT::BehaviorTreeFactory.
| 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. |
| T | Register a behavior of this type. |
| 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.
| exemplar | Exemplar image to resize |
| target_height | Target height in pixels |
| 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.
| 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. |
|
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:
| 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 |
|
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.
| 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.
| solution_in | Input MTC Solution message |
| index | The index where the subtrajectories will be split. |
| bool moveit_pro::behaviors::start_recording_callback | ( | std::atomic_bool & | start_recording_flag, |
| std::condition_variable & | cv | ||
| ) |
| 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 | ||
| ) |
|
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.
| tl::expected< void, std::string > moveit_pro::behaviors::validateDistanceFieldParameters | ( | const std::vector< double > & | bbox_min, |
| const std::vector< double > & | bbox_max, | ||
| double | resolution, | ||
| double | max_distance | ||
| ) |
Validate the inputs required to build a propagation distance field.
Pure function so it can be exercised by unit tests independently of BT plumbing.
| 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:
| 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.
| 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. |
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. | 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 | ||
| ) |
|
inline |
Publishes a warning to the UI when ML inference falls back to CPU.
| 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 the underlying model is running on CPU instead of GPU. |
Constant service name used by the MoveIt ClearOctomap MoveGroup capability.
|
constexpr |
|
constexpr |
|
constexpr |