Behaviors Hub

Explore our growing library (200+) of robot skills that come out of the box with MoveIt™ Pro, including AI models, training tools, control algorithms, and manipulation capabilities.

MoveIt Pro 10.0.0 630 Behaviors · 185 Objectives · 44 Categories Updated August 2026
Name Category Node Type Used In Description
3 Waypoints Pick and Place
Application - Basic Examples Objective - Basic example of repeatedly picking a small medicine bottle from the table, placing it in the sorting tray, and then picking it back out and returning it to the original spot. Loops until cancelled.
Activate Vacuum
Grasping Objective - Activate the vacuum gripper
Add Bins to Planning Scene
Motion - Planning Objective - Adds the tops of the parts bins to the planning scene to allow collision avoidance. Only the tops are added because parts that are using in planning start in a collision state as they rest on the bin walls and bottom.
Add Poses to MTC Task
Motion - Task Planning Objective - Initializes a new MTC task with the current state and adds a sequence of target poses.
Add Table to Planning Scene
Perception - Planning Scene Objective -
Add Waypoints to MTC Task
Motion - Task Planning Objective - Retrieves waypoints and adds them to an MTC task for motion planning.
AddBottlesToPlanningScene
Perception - Planning Scene Objective - Detects flasks using ML and adds them as collision objects to the planning scene
AddCollisionBox
Planning Scene Behavior - Adds a box-shaped CollisionObject to the planning scene. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. If an entry with the same id already exists in world.collision_objects, the Behavior fails unless overwrite is true, in which case the existing world entry is replaced. If an entry with the same id is currently attached to the robot (robot_state.attached_collision_objects), the Behavior fails regardless of overwrite. The caller must detach the object first; this Behavior never modifies the attached list.
AddCollisionBoxInFrontOfEndEffector
Perception - Planning Scene Objective - Adds a collision box in front of the end effector with the specified ID, dimensions and offset.
AddCollisionCylinder
Planning Scene Behavior - Adds a cylinder-shaped CollisionObject to the planning scene. The cylinder axis lies along the local Z axis of the supplied pose. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. If an entry with the same id already exists in world.collision_objects, the Behavior fails unless overwrite is true, in which case the existing world entry is replaced. If an entry with the same id is currently attached to the robot (robot_state.attached_collision_objects), the Behavior fails regardless of overwrite. The caller must detach the object first; this Behavior never modifies the attached list.
AddCollisionMesh
Planning Scene Behavior - Adds a mesh CollisionObject to the planning scene. The mesh is loaded from the URI at mesh_file_path, typically a package:// or file:// URI to a .stl, .obj, or .dae file. The scale port defaults to 1.0;1.0;1.0 (native size). Set it to stretch the mesh per-axis in its local frame, e.g. 2.0;2.0;2.0 to double the mesh uniformly. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. If an entry with the same id already exists in world.collision_objects, the Behavior fails unless overwrite is true, in which case the existing world entry is replaced. If an entry with the same id is currently attached to the robot (robot_state.attached_collision_objects), the Behavior fails regardless of overwrite. The caller must detach the object first; this Behavior never modifies the attached list.
AddCollisionObject
Planning Scene Behavior - Adds a CollisionObject to the planning scene. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. If an entry with the same id already exists in world.collision_objects, the Behavior fails unless overwrite is true, in which case the existing world entry is replaced. If an entry with the same id is currently attached to the robot (robot_state.attached_collision_objects), the Behavior fails regardless of overwrite. The caller must detach the object first; this Behavior never modifies the attached list.
AddCollisionObjectToPlanningScene
Perception - Planning Scene Objective - Adds a prebuilt CollisionObject to the planning scene and verifies that it is present.
AddCollisionSphere
Planning Scene Behavior - Adds a sphere-shaped CollisionObject to the planning scene. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. If an entry with the same id already exists in world.collision_objects, the Behavior fails unless overwrite is true, in which case the existing world entry is replaced. If an entry with the same id is currently attached to the robot (robot_state.attached_collision_objects), the Behavior fails regardless of overwrite. The caller must detach the object first; this Behavior never modifies the attached list.
AddOverageToPath
Path Generation Behavior - Extend a path at both ends by adding evenly spaced overage waypoints along a specified local axis (x, y, or z). Automatically determines the outward direction at each end of the path.
Deprecated
Vector Handling Behavior - DEPRECATED: Use PushBackVector instead. Adds a point cloud to a vector of point clouds in the blackboard.
AddPoseStampedToVector
Deprecated
Vector Handling Behavior - DEPRECATED: Use PushBackVector instead. Adds a Cartesian pose to a sequence of Cartesian poses and stores the sequence to the blackboard.
Deprecated
Vector Handling Objective - DEPRECATED: Use PushBackVector instead. Add an element to the end of a vector.
Planning Scene Behavior - This Behavior adds a URDF object to the planning scene as a collision object at the specified pose. The object is given as a URDF file, which describes the kinematics and collision geometry. If the URDF contains joints and those are reported in the /joint_states topic, the object collision shapes will update their state accordingly. See also AttachURDF for attaching a URDF object to the robot.
User Input Behavior - Requests a user to manually adjust a collection of poses using interactive markers in the UI. The UI will have a prompt flow that spawns interactive markers at the initial poses for users to adjust. These IMarkers will spawn one at a time. The input list of prompts must be the same length as the input list of initial poses. The output is a list of adjusted stamped poses.
AlwaysFailure
Control Flow Behavior - Immediately return FAILURE.
AlwaysSuccess
Control Flow Behavior - Immediately return SUCCESS.
AttachObject
Planning Scene Behavior - Attaches a collision object that is already in the planning scene to a robot link. Works for collision objects in the world. For URDF objects, use AttachURDF instead. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. By default the object keeps its current pose relative to the link. Wire the optional relative_transform port to attach the object at a chosen transform (link to object), regardless of where the object currently is. When relative_transform is wired and the object is already attached to the requested link, the object is re-posed to the requested transform instead of being treated as a no-op. Succeeds without changes (no-op) when the id is already attached to the requested link and no relative_transform is requested: the attachment intent is already satisfied. Fails when object_id or link_name is empty, when the id is absent from the scene, or when the id is attached to a different link.
Planning Scene Behavior - This Behavior attaches a URDF object to a robot for motion planning purposes. The URDF object is attached to the robot at the specified link and relative pose. The URDF object is given as a URDF file, which describes the kinematics and collision geometry. Once attached, the URDF object will move with the link it is attached to. If the URDF object contains joints and those are reported in the /joint_states topic, the URDF object collision shapes will update their state accordingly. If the URDF object is allowed to collide with some other links (e.g. the link it is attached to), these links can be specified in the allowed_collision_links port. See also DetachURDF for detaching a URDF object.
Automask Camera Iterate Masks
Perception - ML Objective - Runs automask on bin camera image and visualizes each mask individually using breakpoints. Useful for tuning mask parameters.
Automask from Camera
Perception - ML Objective - Runs automask on image from camera
Automask from File
Perception - ML Objective - Runs automask on image of coffee cup from file.
Automated Pickup Tool Subtree
Application - Advanced Examples Objective - Subtree for picking up the desired tool from the correct holder
Automated Return Held Tool
Application - Advanced Examples Objective - Returns the currently held tool to the correct holder
Automated Return Tool Subtree
Application - Advanced Examples Objective - Subtree for returning the currently held tool to the correct holder
Automated Tool Changing Example
Application - Advanced Examples Objective - Pick up the black tool, place it back, then pick up the blue tool. If a tool is already attached, it will return it to the correct holder first.
Automated Tool Changing Example Subtree
Application - Advanced Examples Objective -
Pose Handling Behavior - Calculates the running average of incoming Pose Stamped ROS messages. It can be configured to terminate after a finite number of samples or continuously calculate the average using a rolling window of a fixed size denoted by `num_samples`. If the current sample exceeds "max_distance" or "max_rotation" (specified as input ports) from the current average pose the behavior will return FAILURE. An optional "reference_frame" port transforms each sample into that frame before averaging, and the average pose is returned in that frame. Set it to a fixed frame whenever the samples arrive in a moving frame, for example poses detected by a camera that moves while sampling; averaging in a moving frame produces an incorrect result.
Pose Handling Behavior - Returns the average PoseStamped from a vector of PoseStamped. An optional "reference_frame" port transforms each pose into that frame before averaging, and the average pose is returned in that frame. Set it to a fixed frame whenever the poses were captured in a moving frame, for example poses detected by a camera that moved between captures; averaging in a moving frame produces an incorrect result. If "reference_frame" is empty, all poses must share the same frame ID.
AvoidPointsInCoveragePath
Path Generation Behavior - Insert semicircular detours into a coverage path to route around obstacle points. Filters obstacles by boustrophedon spacing distance and generates arc segments on the opposite side of the path from each obstacle.
Utility Behavior - Simulates flipping a biased coin with the specified probability of success.
BlendJointTrajectories
Motion - Planning Behavior - Blend a sequence of joint trajectories into a single trajectory with smooth transitions. Takes a vector of JointTrajectory messages and produces a single blended trajectory. At each connection point between consecutive trajectories, a local blending segment is generated using Ruckig to smoothly transition from one trajectory to the next. The blending region is defined by blending_radius, a Euclidean distance in joint space from the connection point. The individual trajectories are preserved outside the blending regions. Set blending_radius to 0 to concatenate without an inserted blend wherever consecutive trajectories already meet at the same position with matching velocity and acceleration. A connection whose position, velocity, or acceleration differ is still bridged with a blend, so the output stays continuous. All input trajectory points must have position, velocity, and acceleration data populated. The distance between the end of each trajectory and the start of the next must be within connection_tolerance.
BlockUntilParameterIsTrue
Utility Behavior - Returns RUNNING until the named blackboard entry evaluates as true, then returns SUCCESS. Accepted forms of true: native bool true, non-zero int, and bool-parseable strings ("true"/"1", as written by XML ). A missing entry keeps the behavior in RUNNING (the writer may not have run yet). An entry that is present but cannot be interpreted as bool returns FAILURE so configuration mistakes surface immediately. Use under a Parallel control to gate one branch on a flag set by another branch. Pass the entry name as a literal string (parameter_name="my_flag"), not as a {blackboard pointer}, because the watched entry is resolved by name at runtime.
User Input Behavior - Subscribes to a topic that can be used for pausing an Objective during execution to allow debug 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. An optional message port lets the objective author surface a human-readable hint that the UI displays under the breakpoint prompt.
Pose Handling Behavior - Calculates the offset transform from source_pose to destination_pose.
Calibrate SAM3 Mask Areas
Application - ML (GPU Recommended) Objective - Runs SAM3 segmentation on the current wrist camera image, then cycles /masks_visualization through each detected mask labeled with its pixel area. Use to pick FilterMasks2DByArea thresholds.
Perception – Camera Calibration Behavior - Calibrates the camera optical pose using AprilTag poses of the calibration tool held by the robot end effector.
Control Flow Behavior - Send a request to a std_srvs::srv::Trigger service server and wait until the server sends a response. Given the name of a service server which advertises a service with type std_srvs::srv::Trigger, this Behavior composes a std_srvs::srv::Trigger::Request message, sends the request to the server, and waits for the server to return a service response message. If this Behavior receives a response from the service server indicating that the request succeeded, this Behavior exits with a SUCCESS status code. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No service server is available with the specified name. The service server does not return a response before the configured timeout duration has elapsed (default is 3 seconds, use a negative value for infinite timeout). The service response is received, but its success field is set to False. This Behavior is derived from the ServiceClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Cartesian Draw Geometry From File
Training Examples Objective - Training example that shows how to load a Cartesian path from a file and execute the path
Cartesian Path with Collision Checking
Training Examples Objective - An example of planning and executing a straight line path with base and arm motion
Cartesian Plan Simple Square
Training Examples Objective - Training example that shows how to create a path from poses and execute the path
Perception - Planning Scene Behavior - Check if an input object is similar to another object. Succeeds if the objects are similar within the provided criteria and fails if they are not similar.
Clear Previous Obstacles
Perception - Scene Constraints Objective - Clear previous scene obstacles
ClearAllVisualMarkers
Visualization Behavior - Deletes all visual markers currently displayed in the UI.
Perception - Planning Scene Behavior - Clears the existing Octomap and Pointcloud snapshots.
Close Gripper
Grasping Objective - Close the gripper
Collect Training Data with Behaviors
Application - Advanced Examples Objective - Wraps the Pick April Tag Labeled Object task with data-recording Behaviors: starts a Trainer recording, runs the task, saves the successful episode, and converts the dataset to LeRobotDataset v3.0. A failed pick is discarded and the Objective fails.
Compute IK, Plan and Move
Training Examples Objective - An example showing how to compute Inverse Kinematics (IK) on a pose, then plan a path to get to the solution found.
Motion - Planning Behavior - Computes Inverse Kinematics for a given planning group and set of target poses, using the PoseIK solver. The planning group can be either a kinematic chain or a kinematic tree. In the most common case (e.g. kinematic chains), `target_poses` and `tip_links` will contain a single element each. In more complex cases (e.g. kinematic trees, like a humanoid torso), `target_poses` and `tip_links` may contain multiple elements, therefore solving the IK problem simultaneously for multiple end-effectors. The Behavior also takes a Planning Scene as input, which will be used to check for collisions during the IK computation. The IK solution, if found, is guaranteed to be collision-free with respect to the obstacles in the given Planning Scene. This Behavior returns the IK solution as a `moveit_msgs::msg::RobotState`, which can be used as input in motion planning Behaviors, e.g. `PlanToJointGoal`. `solve_mode` selects how hard the solver looks. `first_found` returns the first valid solution. `optimize_distance` keeps searching and returns the solution that moves the robot least from its current state. Only `optimize_distance` compares candidates, so it is the only mode where `joint_costs` has an effect: raising a joint's cost above 1.0 makes moving it more expensive, steering the solver toward solutions that use the other joints instead. Setting costs while `solve_mode` is `first_found` fails with an error rather than quietly ignoring them.
Motion - Planning 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.
ComputeLinkPoseFromWaypoint
Manipulation Objective - This objective retrieves a named waypoint, unpacks the joint state, gets the current planning scene, and computes the pose of a specified link using forward kinematics. The resulting pose is output as a geometry_msgs::msg::PoseStamped.
ComputePathToPoseAction
Navigation Behavior - Compute a path for a robot base towards a pose, by sending a request to a Nav2 action server. Given an action server advertising an action with type nav2_msgs::action::ComputePathToPose and a geometry_msgs::msg::PoseStamped message defining the goal pose, this Behavior composes a ComputePathToPose::Goal message using the pose and settings. It sends the action request to the server and waits for the result. If the server completes the action successfully, this Behavior succeeds. The ComputePathToPose action returns a nav_msgs::msg::Path and builtin_interfaces::msg::Duration as a result. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No action server is available with the specified name. The Behavior's action client fails to send the action goal to the action server. The action server does not return an action result before the specified timeout duration has elapsed. The navigation goal failed. This Behavior is derived from the ActionClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
ComputeSignedDistanceField
Motion - Planning Behavior - Converts a moveit_msgs::msg::PlanningScene into a propagation distance field over an axis-aligned bounding box defined in the planning frame. Each world collision object in the scene is voxelized into the field at its world-frame pose (composing the object root pose with each shape's local pose). Robot links named in link_names are additionally voxelized at their current world transforms (the link's world transform composed with each shape's collision-origin transform). This Behavior is intended to run once per task after the planning scene is finalized. The resulting distance field is published on the sdf output port so downstream collision-aware planners can reuse it without rebuilding. When signed_distance is enabled, distances are propagated negatively inside obstacles, producing a true signed distance field. Cells farther than max_distance from the nearest obstacle clamp to max_distance.
ComputeTrayPlacePositionsUsingAprilTags
Vision Behavior - Computes a grid of place positions within a tray detected by its AprilTag. Finds the tray tag by ID, uses its 3D pose plus a known offset to define the tray center, then generates a grid of positions with the specified number of columns per row and row spacing. Rows fill from near the tag toward the far end of the tray (top-to-bottom). Positions are transformed to the world frame with a fixed gripper-down orientation. If an input image is provided, annotates it with green circles matching the bottle diameter at each position.
Motion - Controls Behavior - This Behavior can be used to compute a Cartesian velocity to move a given 'end-effector' frame directly towards a 'target'. The target state of motion (its position and velocity) is required as input. State estimation Behaviors can be used to get this motion estimate. This Behavior will then compute a Cartesian velocity that decreases the pose error between the 'end-effector' and the 'target', while at the same time tracking the target's velocity. It can be used in combination with a Cartesian Velocity controller (e.g. VFC) or Servo to reach objects in motion.
Constrained Pick and Place Subtree
Motion - Execute Objective - Takes in pick and place waypoints, auto-computes pre-positions using forward kinematics with a height offset, and uses force-controlled lowering for placement.
Convert CollisionObject To GraspableObject
Perception - Planning Scene Objective - Converts a moveit_msgs::msg::CollisionObject type to a moveit_studio_vision_msgs::msg::GraspableObject.
ConvertDataset
Data Recording Behavior - Start an MCAP-to-LeRobot conversion of a recorded dataset. This Behavior sends the dataset's name (the RecordEpisode dataset_name) to the train server's convert_dataset service. The node derives the conversion request from the dataset itself — bag path, sibling -lerobot output directory and repo id from its record, and the cameras, fps, joint topics, and robot type from the recording options pinned to it rather than the Training Config's current values — the same way the training panel's convert tab does; the optional ports override the output directory and the robot type. Each episode is labeled with the task recorded with it, so a dataset holding more than one task converts with per-episode labels. The task port applies only to episodes that recorded no task of their own. The conversion runs as a background job: this Behavior succeeds when the job is started, not when it finishes. Track it via the training panel or the list_conversions service. If any of the following occur, this Behavior exits with a FAILURE status code: No service server is available with the specified name. The service response is received, but its success field is set to False (e.g. no recorded dataset with that name exists, a conversion is already running, or the dataset has no readable pinned recording options — record into it again to establish them); its error message is reported as the failure reason. This Behavior is derived from the ServiceClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Motion - Task Planning Behavior - Extracts joint space trajectories from an MTC solution and adds time parameterization using TOTG.
Conversions Behavior - Converts a geometry_msgs::msg::TransformStamped message into a geometry_msgs::msg::PoseStamped message.
Create PCL Poses Vector
Vector Handling Objective - Creates a sequence of stamped poses and adds them to a vector
Create Point Cloud Vector From Masks
Perception - ML Objective - Create point cloud vector From masks
Create Pose Vector
Vector Handling Objective - Creates a sequence of stamped poses and adds them to a vector
CreateAccelMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Accel message.
CreateAccelStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::AccelStamped message.
CreateAccelWithCovarianceMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::AccelWithCovariance message.
CreateAccelWithCovarianceStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::AccelWithCovarianceStamped message.
CreateAdmittanceParametersMessage
Conversions Behavior - Create behavior for a moveit_pro_controllers_msgs::msg::AdmittanceParameters message.
CreateAgentInfoMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::AgentInfo message.
CreateAllowedCollisionEntryMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::AllowedCollisionEntry message.
CreateAllowedCollisionMatrixMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::AllowedCollisionMatrix message.
CreateAttachedCollisionObjectMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::AttachedCollisionObject message.
CreateBatteryStateMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::BatteryState message.
CreateBehaviorParameterDescriptionMessage
Conversions Behavior - Create behavior for a moveit_studio_sdk_msgs::msg::BehaviorParameterDescription message.
CreateBehaviorParameterMessage
Conversions Behavior - Create behavior for a moveit_studio_sdk_msgs::msg::BehaviorParameter message.
CreateBehaviorTreeStatusMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::BehaviorTreeStatus message.
CreateBoolMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Bool message.
CreateBoundingBox2D
Perception - 2D Image Behavior - Construct a BoundingBox2D message from upper-left corner coordinates and dimensions. Useful for specifying a single box prompt to segmentation behaviors such as GetMasks2DFromExemplar.
CreateBoundingBoxFromOffset
Perception - 2D Image Behavior - Given an exemplar image and optional padding fraction, produce a single BoundingBox2D covering the (padded) exemplar image dimensions. The output box is in exemplar image pixel coordinates and is intended for use as exemplar_bboxes input to GetMasks2DFromExemplar.
CreateBoundingBoxes2D
Perception - 2D Image Behavior - Convert a flat vector of doubles into a vector of BoundingBox2D messages. Values are specified as x; y; w; h per box (semicolons are the BT XML separator), using upper-left corner coordinates. The total count of values must be a multiple of 4. Useful for specifying multiple box prompts inline in behavior tree XML.
CreateBoundingVolumeMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::BoundingVolume message.
CreateBreakpointStatusMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::BreakpointStatus message.
CreateByteMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Byte message.
CreateByteMultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::ByteMultiArray message.
CreateCameraInfoMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::CameraInfo message.
CreateCartesianPointMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::CartesianPoint message.
CreateCartesianSelectionVectorMessage
Conversions Behavior - Create behavior for a moveit_pro_controllers_msgs::msg::CartesianSelectionVector message.
CreateCartesianTrajectoryMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::CartesianTrajectory message.
CreateCartesianTrajectoryPointMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::CartesianTrajectoryPoint message.
CreateChannelFloat32Message
Conversions Behavior - Create behavior for a sensor_msgs::msg::ChannelFloat32 message.
CreateCharMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Char message.
CreateClientInfoMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::ClientInfo message.
CreateCollisionObjectMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::CollisionObject message.
Perception - Point Cloud Downsampling to Spheres Behavior - This behavior receives a point cloud, 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.
CreateColorRGBAMessage
Conversions Behavior - Create behavior for a std_msgs::msg::ColorRGBA message.
CreateCompressedImageMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::CompressedImage message.
CreateConstraintEvalResultMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::ConstraintEvalResult message.
CreateConstraintsMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::Constraints message.
CreateContactInformationMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::ContactInformation message.
CreateCostSourceMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::CostSource message.
CreateDisplayRobotStateMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::DisplayRobotState message.
CreateDisplayTrajectoryMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::DisplayTrajectory message.
CreateDurationMessage
Conversions Behavior - Create behavior for a builtin_interfaces::msg::Duration message.
CreateEmptyMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Empty message.
CreateEndEffectorMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::EndEffector message.
CreateEventMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::Event message.
CreateFaultStatusMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::FaultStatus message.
CreateFloat32Message
Conversions Behavior - Create behavior for a std_msgs::msg::Float32 message.
CreateFloat32MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Float32MultiArray message.
CreateFloat64Message
Conversions Behavior - Create behavior for a std_msgs::msg::Float64 message.
CreateFloat64MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Float64MultiArray message.
CreateFluidPressureMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::FluidPressure message.
CreateGenericTrajectoryMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::GenericTrajectory message.
CreateGraspInfoMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::GraspInfo message.
CreateGraspMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::Grasp message.
CreateGraspableFaceMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::GraspableFace message.
Grasping Behavior - Creates a collision object (a cuboid) as a GraspableObject message. The cuboid will be centered at the specified PoseStamped with the same frame. The cuboid will have width of dx, length of dy, and height of dz. Returns the generated cuboid graspable object on the output port. To add this object to the planning scene, extract its collision object with UnpackGraspableObjectMessage and apply it with AddCollisionObject.
CreateGraspableObjectMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::GraspableObject message.
CreateGripperTranslationMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::GripperTranslation message.
CreateHeaderMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Header message.
CreateIlluminanceMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::Illuminance message.
CreateImageMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::Image message.
CreateImageTopicsMessage
Conversions Behavior - Create behavior for a moveit_studio_internal_msgs::msg::ImageTopics message.
CreateImuMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::Imu message.
CreateInertiaMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Inertia message.
CreateInertiaStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::InertiaStamped message.
CreateInt16Message
Conversions Behavior - Create behavior for a std_msgs::msg::Int16 message.
CreateInt16MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Int16MultiArray message.
CreateInt32Message
Conversions Behavior - Create behavior for a std_msgs::msg::Int32 message.
CreateInt32MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Int32MultiArray message.
CreateInt64Message
Conversions Behavior - Create behavior for a std_msgs::msg::Int64 message.
CreateInt64MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Int64MultiArray message.
CreateInt8Message
Conversions Behavior - Create behavior for a std_msgs::msg::Int8 message.
CreateInt8MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::Int8MultiArray message.
CreateJointConstraintMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::JointConstraint message.
CreateJointLimitsInfoMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::JointLimitsInfo message.
CreateJointLimitsMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::JointLimits message.
Deprecated
Motion - Planning Behavior - Creates a moveit_msgs/RobotState message and writes it to the blackboard. This Behavior takes the current JointState of the robot and overwrites the positions, velocities and efforts of those joints indicated in the 'joint_names' input port. `joint_names` and `positions` are mandatory, and their sizes have to match. Otherwise an error will be returned. `velocities` and `efforts` are optional. If specified, their size needs to match with the size of `joint_names`.
CreateJointStateMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::JointState message.
CreateJointTrajectoryMessage
Conversions Behavior - Create behavior for a trajectory_msgs::msg::JointTrajectory message.
CreateJointTrajectoryPointMessage
Conversions Behavior - Create behavior for a trajectory_msgs::msg::JointTrajectoryPoint message.
CreateJointVelocityControllerStateMessage
Conversions Behavior - Create behavior for a moveit_pro_controllers_msgs::msg::JointVelocityControllerState message.
CreateJoyFeedbackArrayMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::JoyFeedbackArray message.
CreateJoyFeedbackMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::JoyFeedback message.
CreateJoyMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::Joy message.
CreateJsonMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::Json message.
CreateKinematicSolverInfoMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::KinematicSolverInfo message.
CreateLaserEchoMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::LaserEcho message.
CreateLaserScanMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::LaserScan message.
CreateLicenseInfoMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::LicenseInfo message.
CreateLinkPaddingMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::LinkPadding message.
CreateLinkScaleMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::LinkScale message.
CreateLogMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::Log message.
CreateMagneticFieldMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::MagneticField message.
CreateMask2DMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::Mask2D message.
CreateMask3DMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::Mask3D message.
CreateMotionPlanDetailedResponseMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::MotionPlanDetailedResponse message.
CreateMotionPlanRequestMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::MotionPlanRequest message.
CreateMotionPlanResponseMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::MotionPlanResponse message.
CreateMotionSequenceItemMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::MotionSequenceItem message.
CreateMotionSequenceRequestMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::MotionSequenceRequest message.
CreateMotionSequenceResponseMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::MotionSequenceResponse message.
CreateMoveItErrorCodesMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::MoveItErrorCodes message.
CreateMtcTaskDataMessage
Conversions Behavior - Create behavior for a moveit_studio_internal_msgs::msg::MtcTaskData message.
CreateMultiArrayDimensionMessage
Conversions Behavior - Create behavior for a std_msgs::msg::MultiArrayDimension message.
CreateMultiArrayLayoutMessage
Conversions Behavior - Create behavior for a std_msgs::msg::MultiArrayLayout message.
CreateMultiDOFJointStateMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::MultiDOFJointState message.
CreateMultiDOFJointTrajectoryMessage
Conversions Behavior - Create behavior for a trajectory_msgs::msg::MultiDOFJointTrajectory message.
CreateMultiDOFJointTrajectoryPointMessage
Conversions Behavior - Create behavior for a trajectory_msgs::msg::MultiDOFJointTrajectoryPoint message.
CreateMultiEchoLaserScanMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::MultiEchoLaserScan message.
CreateNavSatFixMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::NavSatFix message.
CreateNavSatStatusMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::NavSatStatus message.
CreateObjectColorMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::ObjectColor message.
CreateObjectDetectionArrayMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::ObjectDetectionArray message.
CreateObjectDetectionMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::ObjectDetection message.
CreateObjectSubframeMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::ObjectSubframe message.
CreateObjectiveCallerMessage
Conversions Behavior - Create behavior for a moveit_studio_sdk_msgs::msg::ObjectiveCaller message.
CreateObjectiveServerStatusMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::ObjectiveServerStatus message.
CreateOrientationConstraintMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::OrientationConstraint message.
CreateOrientedBoundingBoxMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::OrientedBoundingBox message.
CreatePipelineStateMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PipelineState message.
CreatePlaceLocationMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PlaceLocation message.
CreatePlannerInterfaceDescriptionMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PlannerInterfaceDescription message.
CreatePlannerParamsMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PlannerParams message.
CreatePlanningGroupMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::PlanningGroup message.
CreatePlanningOptionsMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PlanningOptions message.
CreatePlanningSceneComponentsMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PlanningSceneComponents message.
CreatePlanningSceneMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PlanningScene message.
CreatePlanningSceneWithoutOctomapMessage
Conversions Behavior - Create behavior for a moveit_studio_internal_msgs::msg::PlanningSceneWithoutOctomap message.
CreatePlanningSceneWorldMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PlanningSceneWorld message.
CreatePoint32Message
Conversions Behavior - Create behavior for a geometry_msgs::msg::Point32 message.
CreatePointCloud2Message
Conversions Behavior - Create behavior for a sensor_msgs::msg::PointCloud2 message.
CreatePointCloudMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::PointCloud message.
CreatePointCloudPCDMessage
Conversions Behavior - Create behavior for a moveit_studio_vision_msgs::msg::PointCloudPCD message.
CreatePointFieldMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::PointField message.
CreatePointMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Point message.
CreatePointStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::PointStamped message.
CreatePolygonInstanceMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::PolygonInstance message.
CreatePolygonInstanceStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::PolygonInstanceStamped message.
CreatePolygonMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Polygon message.
CreatePolygonStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::PolygonStamped message.
CreatePose2DMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Pose2D message.
CreatePoseArrayMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::PoseArray message.
CreatePoseMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Pose message.
CreatePoseStamped
Pose Handling Behavior - Creates a geometry_msgs/PoseStamped message and writes it to the blackboard. Example usecase: manually creating a target pose for a robot to plan to.
CreatePoseStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::PoseStamped message.
CreatePoseWithCovarianceMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::PoseWithCovariance message.
CreatePoseWithCovarianceStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::PoseWithCovarianceStamped message.
CreatePositionConstraintMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PositionConstraint message.
CreatePositionIKRequestMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::PositionIKRequest message.
CreateQuaternionMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Quaternion message.
CreateQuaternionStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::QuaternionStamped message.
CreateRangeMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::Range message.
CreateRegionOfInterestMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::RegionOfInterest message.
CreateRelativeHumidityMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::RelativeHumidity message.
CreateRequestStatusMessage
Conversions Behavior - Create behavior for a moveit_studio_sdk_msgs::msg::RequestStatus message.
CreateRobotState
Motion - Planning Behavior - Creates a moveit_msgs/RobotState message and writes it to the blackboard. This Behavior takes the current JointState of the robot and overwrites the positions, velocities and efforts of those joints indicated in the 'joint_names' input port. `joint_names` and `positions` are mandatory, and their sizes have to match. Otherwise an error will be returned. `velocities` and `efforts` are optional. If specified, their size needs to match with the size of `joint_names`.
CreateRobotStateMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::RobotState message.
CreateRobotTrajectoryMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::RobotTrajectory message.
CreateServoStatusMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::ServoStatus message.
Motion - Planning Behavior - This behavior create a stationary trajectory of specified duration at the provided JointState ROS message.
CreateStringMessage
Conversions Behavior - Create behavior for a std_msgs::msg::String message.
CreateTF2ErrorMessage
Conversions Behavior - Create behavior for a tf2_msgs::msg::TF2Error message.
CreateTFMessageMessage
Conversions Behavior - Create behavior for a tf2_msgs::msg::TFMessage message.
CreateTeleoperationModeMessage
Conversions Behavior - Create behavior for a moveit_studio_sdk_msgs::msg::TeleoperationMode message.
CreateTemperatureMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::Temperature message.
CreateTimeMessage
Conversions Behavior - Create behavior for a builtin_interfaces::msg::Time message.
CreateTimeReferenceMessage
Conversions Behavior - Create behavior for a sensor_msgs::msg::TimeReference message.
CreateTrainCameraBindingMessage
Conversions Behavior - Create behavior for a moveit_studio_internal_msgs::msg::TrainCameraBinding message.
CreateTrajectoryConstraintsMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::TrajectoryConstraints message.
CreateTransform
Pose Handling Behavior - Creates a geometry_msgs/Transform message from a translation and a rotation quaternion and writes it to the blackboard. The quaternion is normalized.
CreateTransformMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Transform message.
CreateTransformStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::TransformStamped message.
CreateTreeUidsMessage
Conversions Behavior - Create behavior for a moveit_studio_sdk_msgs::msg::TreeUids message.
CreateTwistMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Twist message.
CreateTwistStamped
Pose Handling Behavior - Creates a geometry_msgs/TwistStamped message and writes it to the blackboard.
CreateTwistStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::TwistStamped message.
CreateTwistWithCovarianceMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::TwistWithCovariance message.
CreateTwistWithCovarianceStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::TwistWithCovarianceStamped message.
CreateUInt16Message
Conversions Behavior - Create behavior for a std_msgs::msg::UInt16 message.
CreateUInt16MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::UInt16MultiArray message.
CreateUInt32Message
Conversions Behavior - Create behavior for a std_msgs::msg::UInt32 message.
CreateUInt32MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::UInt32MultiArray message.
CreateUInt64Message
Conversions Behavior - Create behavior for a std_msgs::msg::UInt64 message.
CreateUInt64MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::UInt64MultiArray message.
CreateUInt8Message
Conversions Behavior - Create behavior for a std_msgs::msg::UInt8 message.
CreateUInt8MultiArrayMessage
Conversions Behavior - Create behavior for a std_msgs::msg::UInt8MultiArray message.
CreateVector
Vector Handling Objective - Create a new vector of any type.
CreateVector3Message
Conversions Behavior - Create behavior for a geometry_msgs::msg::Vector3 message.
CreateVector3StampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Vector3Stamped message.
CreateVelocityForceCommandMessage
Conversions Behavior - Create behavior for a moveit_pro_controllers_msgs::msg::VelocityForceCommand message.
CreateVelocityForceControllerStateMessage
Conversions Behavior - Create behavior for a moveit_pro_controllers_msgs::msg::VelocityForceControllerState message.
CreateVelocityStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::VelocityStamped message.
CreateVelocityWithCovarianceStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::VelocityWithCovarianceStamped message.
CreateVisibilityConstraintMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::VisibilityConstraint message.
CreateWaypointMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::Waypoint message.
CreateWorkspaceParametersMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::WorkspaceParameters message.
CreateWrenchMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::Wrench message.
CreateWrenchStamped
Pose Handling Behavior - Creates a geometry_msgs/WrenchStamped message and writes it to the blackboard.
CreateWrenchStampedMessage
Conversions Behavior - Create behavior for a geometry_msgs::msg::WrenchStamped message.
CropPointsInBox
Perception - 3D Point Cloud Behavior - Given a point cloud and a box-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.
Perception - 3D Point Cloud Behavior - 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.
Perception - 3D Point Cloud Behavior - 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.
Cycle Between Waypoints
Application - Basic Examples Objective - Example of repeatedly moving between two saved poses.
Deactivate Vacuum
Grasping Objective - Deactivate the vacuum gripper
Delay
Control Flow Decorator - This node can only have 1 child.Sleep for a given duration of time and then tick the child node.
Detach and Remove Tool
Motion - Planning Objective - Detach a tool from the arm and remove it from the planning scene
DetachObject
Planning Scene Behavior - 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. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. Succeeds without changes (no-op) when the id is not attached to the robot, whether it is already a free world object or absent from the scene entirely: the detachment intent is already satisfied. Fails only when object_id is empty. For objects attached via AttachURDF, use DetachURDF instead.
Planning Scene Behavior - Detach a URDF object from the robot. The URDF object with the given urdf_name will be detached from the robot. Once detached, the object will no longer move with the robot and will not be considered in motion planning calculations.
Perception - 2D Image Behavior - Detects AprilTag markers from an image.
DilateMask2D
Perception - 2D Image Behavior - Apply morphological dilation to a vector of 2D masks. Dilation expands white (non-zero) regions using a square structuring element of the specified size. Useful for filling small holes, connecting nearby regions, and making mask boundaries more inclusive.
User Input Behavior - Enables teleoperation mode, allowing the user to manually control the robot. The output ports are the values reported by The UI via the ROS 2 topic /do_teleoperate/_action/feedback
Drop Bracket Part in Right Bin Subtree
Motion - Execute Objective - Drops the bracket part into the right bin, using an intermediate pose.
Drop Bracket Part on Jig Subtree
Motion - Execute Objective - Drop bracket part on jig via an intermediate waypoint
User Input Behavior - Uses 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. These are the groups defined in your robot's SRDF.
ErodeMask2D
Perception - 2D Image Behavior - Apply morphological erosion to a vector of 2D masks. Erosion shrinks white (non-zero) regions using a square structuring element of the specified size. Useful for removing small noise artifacts and separating touching objects.
ErrorCheckVectorSize
Vector Handling Objective - Assert that the input vector is the expected length, and if not show a UI error and return FAILURE
Execute MTC Solution (JTC)
Motion - Execute Objective - Switch controllers and execute an MTC solution using a standard Joint Trajectory Controller. This is a convenience wrapper around Execute MTC Solution with execution_pipeline set to 'jtc'.
ExecuteMTCSolution
Motion - Task Planning Behavior - 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.
ExecutePolicy
Motion - Execute Behavior - Executes a policy as continuous, collision-checked motion on the arm and, optionally, the gripper. Each step gathers the current observation (joint state and camera images), asks the policy for the next chunk of actions, smooths it onto the running motion, checks it for collisions, and hands it to the controller. The next chunk is fetched before the committed motion runs out, so the robot does not pause between chunks. Execution stops once total_action_steps points have run or the policy reports no more actions. If the policy reports an error, or answers without setting the response status, the robot stops and the Behavior fails, so the Objective can branch on a policy-side failure. Before each chunk is sent, the smoothed motion is checked against the commanded joints' position, velocity, and acceleration limits, and for collision of the robot with itself and with the world, using the current planning scene and its allowed-collision rules. The scene is monitored for the whole run, and motion already sent but not yet executed is re-checked when the world changes and before every new chunk, so an object added mid-run stops the robot. Intended contact, such as a grasp, must be allowed with the SetCollisionRule Behavior before this Behavior starts, because the collision rules and object attachments are read once at start and not refreshed during the run. The starting state is validated too: if the robot begins in contact that no rule allows, the Behavior fails immediately. Obstacles the planning scene does not contain are not checked. The smoothing is fit at the fixed dt and is never slowed to satisfy a limit: a chunk that would exceed a velocity or acceleration limit is rejected and the robot stops. Checks run at the densely sampled points, so keep num_interpolation_points high relative to committed_action_steps and dt, or a brief over-speed or collision between samples can slip through. Sizing the committed window: committed_action_steps must be smaller than the policy's chunk size, and large enough that the committed motion outlasts one inference, or the stream stalls. As a rule of thumb, set committed_action_steps and dt so that (committed_action_steps - 1) * dt is at least twice the policy's inference latency.
ExecuteTrajectory
Motion - Planning Behavior - Execute a given joint trajectory by sending a request 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. The corresponding controller needs to be active, which can be done with the ActivateControllers Behavior. If execution_pipeline is set to 'jtc', this Behavior sends the trajectory to a standard control_msgs::action::FollowJointTrajectory action server (e.g., JTC or other controllers with that interface). If execution_pipeline is set to 'jtac', this Behavior sends the trajectory to a moveit_pro_controllers_msgs::action::FollowJointTrajectoryWithAdmittance action server (e.g., JTAC). If the server completes the action successfully, this Behavior succeeds. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No action server is available with the specified name. The joint trajectory message has no data. absolute_force_torque_threshold is set without admittance_parameters_msg, since the threshold is a field of the admittance parameters and has no effect on its own. The action result is received, but its contents indicate that the action server failed to execute the trajectory.
Grasping Behavior - Accepts a GraspableObject message via an input data port. Returns the GraspableObject's Pose and Header as a PoseStamped.
Fallback
Control Flow Control Node - The FallbackNode is used to try different strategies, until one succeeds. If any child returns RUNNING, previous children are not ticked again.If all the children return FAILURE, this node returns FAILURE.If a child returns RUNNING, this node returns RUNNING.If a child returns SUCCESS, stop the loop and return SUCCESS.
Fan Pose About Tool-Z Subtree
Vector Handling Objective - Expand a single pose into a vector of four yaw-equivalent poses rotated 0/90/180/270 degrees about the tool Z axis. Useful when the object is rotationally symmetric about the gripper axis (e.g., pill bottles, cylinders) — feeding all four variants to an MTC BatchPoseIK lets the planner pick the one closest in joint space to the current arm configuration, avoiding an unnecessary wrist pirouette.
FilterMasks2DByArea
Perception - 2D Image Behavior - Filter a vector of 2D masks based on mask area. Only masks with areas that fall within the specified ranges are included in the output. Useful for removing masks that are too small (noise) or too large (background).
FilterMasks2DByBoundingBox
Perception - 2D Image Behavior - Filter a vector of 2D masks based on bounding box dimensions. Only masks with bounding boxes that fall within the specified ranges are included in the output. Useful for removing masks that are too small (noise) or too large (background).
Find Nearest Pose In Path
Vector Handling Objective - Find the pose in the path with the lowest Euclidean distance to the given search pose. Requires ConverterBehaviorsLoader.
Find and Spray Plane
Training Examples Objective - Finds the plane then generates and executes a coverage path
Perception - 3D Point Cloud Behavior - Given a point cloud and one or more image masks, create an object corresponding to each masked region.
Perception - 3D Point Cloud Behavior - Analyze a point cloud and create GraspableObjects for objects found in the cloud. Assume that all objects are cuboids and that all objects are resting on the same flat surface. This Behavior uses the following sequence of operations: Perform a TF lookup to get the transform from the base frame to the point cloud's frame. Crop points within the region specified in the input config options. The crop region is defined relative to the world base frame. Filter the points to remove the ones with all-zero and NaN coordinates. Find the largest plane in the cloud. This plane will be used as the supporting surface. Perform Euclidean clustering on the points which are not part of this plane to create a list of clusters of points which are all separated from each other by a minimum distance threshold. Each cluster represents a separate object. For each cluster: Project the cluster onto the plane. Find the minimal oriented bounding box around these points relative to the plane. Find the height of the cluster relative to the plane. Use the bounding box and height to create a GraspableObject that defines a cuboid enclosing the points. This Behavior makes several key assumptions about the environment: The input point cloud must include a large flat surface, such as a tabletop or floor. The cropping and filtering steps are expected to remove all points which are far away from that surface, so that all remaining clusters of points can be assumed to represent objects which are supported by that surface. If this Behavior completes all analysis steps successfully, it will output a vector of GraspableObjects to the output data port and exit with a SUCCESS status code. After the GraspableObjects are written to the output port, this Behavior publishes a visualization_msgs::msg::MarkerArray message onto the "/visual_markers" topic. This message can be used by RViz to display the objects which were detected in the point cloud. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: The TF lookup to find the transform from the base frame to the point cloud frame does not succeed. After cropping the point cloud to the region of interest and filtering the point cloud to remove NaN and all-zero points, the point cloud is empty. No large flat surface is found within the point cloud. No cuboids are be found in the point cloud after the supporting plane is removed.
FindSlicePlanesAlongEdge
Path Generation Behavior - Generate evenly spaced waypoints (slice planes) along a selected edge of a quadrilateral patch defined by 4 corner waypoints. Waypoints are shifted halfway toward the opposite edge and oriented with Z along the edge direction.
Fit Bottle Model Subtree
Perception - 3D Point Cloud Objective - Fit a bottle STL model to a masked point cloud via ICP and return a grasp pose at the top of the bottle body.
Perception - 3D Point Cloud Behavior - Fits a line segment to the points in a 3D mask, ignoring outliers. The line parameters are estimated with the RANSAC algorithm. The RANSAC iterative process hypothesizes line models from random point subsets, selecting the hypothesis that explains the most points in the set. A point is considered explained by a line hypothesis (a.k.a. "inlier") if it is closer than a distance threshold to it. The output segment is contained in the resulting line, and is the shortest segment containing all inlier points.
FollowPathAction
Navigation Behavior - Follow a path with a robot base by sending a request to a Nav2 action server. Given an action server advertising an action with type nav2_msgs::action::FollowPath, a nav_msgs::msg::Path message containing a path, a controller_id, and a goal_checker_id, this Behavior composes a FollowPath::Goal message using the path message and the settings. It sends the action request to the server and waits for the server to return the action feedback and result. During the action, this Behavior copies the action feedback into an output data ports. This includes the distance to goal, and speed. If the server completes the action successfully, this Behavior succeeds. The FollowPath action returns a result, but this Behavior does not copy its fields into output data ports. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No action server is available with the specified name. The Behavior's action client fails to send the action goal to the action server. The action server does not return an action result before the specified timeout duration has elapsed. The navigation goal failed. This Behavior is derived from the ActionClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Vector Handling Decorator - Iterate through a vector of BT::Any objects. Note: all vectors are converted to vectors of BT::Any objects when they are placed on the blackboard. Adds the object with its index to the blackboard before ticking child nodes and moving to next iteration.
Vector Handling Decorator - Iterate through a vector of BT::Any objects. Returns Running while checking elements. Returns Success if there are no elements. Returns Success as soon as one succeeds. Returns Failure if all elements fail. Note: all vectors are converted to vectors of BT::Any objects when they are placed on the blackboard. Adds the object with its index to the blackboard before ticking child nodes and moving to next iteration.
Force Relaxation
Motion - Controls Objective - Relaxes the force sensed at the force/torque sensor by moving the robot tip in the direction of the sensed force.
Motion - Controls Behavior - Monitors a wrench topic and returns SUCCESS when ticked if the magnitude of the force components has exceeded a specified threshold for some number of consecutive observations.
ForceFailure
Control Flow Decorator - This node can only have 1 child.If the child returns RUNNING, this node returns RUNNING too.Otherwise, it returns always FAILURE.
ForceSuccess
Control Flow Decorator - This node can only have 1 child.If the child returns RUNNING, this node returns RUNNING too.Otherwise, it returns always SUCCESS.
Fuse Multiple Views Subtree
Perception - 3D Point Cloud Objective - Moves to three different waypoints, captures point clouds, returns the merged point cloud.
Generate Grid Pattern on Airplane
Training Examples Objective - A training example that plans and executes a coverage path with base and arm motion
Motion - Planning Behavior - Creates a lawnmower path (a.k.a. boustrophedon path) for a robot to follow to cover a given area. The lawnmower path is generated by starting at the bottom right corner of the area, moving to the bottom left corner, then moving up the stride distance, back to the right, and so on until the top left corner is reached. Adjacent rows are joined by pure vertical strides, so every segment is axis-aligned and the robot never traverses a diagonal. The path is generated by moving along the x-axis first, then the y-axis. The width and height parameters define the size of the area to be covered, and the stride distance parameter defines the distance between each row, all dimensions given in meters. If the stride distance doesn't add up exactly to the height, the last stride won't be included, i.e. the actual area covered will be less than the given height.
Motion - Task Planning Behavior - Generate cuboid grasp poses for a target GraspableObject.
Motion - Planning Behavior - Generate a joint-space trajectory to move the robot from the start joint state to the end joint state. The output joint_trajectory_msg is a timed joint-space trajectory that can be collision-checked with the ValidateTrajectory Behavior, and executed with ExecuteTrajectory. The first point in the trajectory will have a time_from_start equal to the value specified on the start_time input port and will be sampled at the rate specified on the trajectory_sampling_rate input port. velocity_scale_factor, acceleration_scale_factor, and jerk_scale_factor control the desired joint-space motion as a fraction ([0,1]) of the maximum joint velocities, accelerations, and jerks defined in the MoveIt configs. The Behavior succeeds if the entire path could be resolved, or fails otherwise.
GenerateSurfaceCoveragePath
Motion - Planning Behavior - Generates a serpentine (boustrophedon) coverage path of tool poses over the top face of a rectangular region, for a Cartesian planner to follow. Turns a user-selected region (see GetRegionFromUser, projected to 3D) into a wipe/inspection sweep. The tool points into the surface at a configurable standoff, with configurable line and point spacing.
Motion - Task Planning Behavior - Generate vacuum grasp poses for a target GraspableObject.
Get AprilTag Pose from Image
Perception - 2D Image Objective - Takes an image snapshot from the wrist camera and attempts to detect an april tag for pose estimation.
Get Bottle Grasp via ICP Subtree
Perception - ML Objective - Segment a bottle with SAM3, derive an ICP initial guess from the mask centroid, and fit the bottle STL via ICP to produce a grasp pose.
Get Collision Free Grasp Subtree
Grasping Objective - Takes a set of grasp poses and returns the first collision free pose.
Get IMarker Pose From Mesh Visualization
Visualization Objective - Visualize a mesh in the UI and use an IMarker to get a grasp pose based on that mesh
Get Point Cloud Center Pose
Training Examples Objective - Take a Wrist Camera Snapshot and return the center pose of the point cloud
Get Transform Frame Pose
Pose Handling Objective - Returns the pose of the requested frame in the world frame.
Perception - 2D Image Behavior - Wait for a sensor_msgs::msg::CameraInfo message to be published on a specified ROS topic for 5 seconds and copy it to an output data port. Given the name of a topic where sensor_msgs::msg::CameraInfo messages are being published, this Behavior subscribes to that topic and waits until a new message is published to the topic. When the Behavior's subscriber receives a new message, this Behavior copies it to an output data port and then finishes with a SUCCESS status. Afterwards, other Behaviors which take sensor_msgs::msg::Image messages as inputs can use this message for further processing or analysis. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No publisher is found on the topic. Creating a subscription on the topic does not succeed. A publisher was found on the topic, but no message is published on the topic before a 5-second timeout duration has passed. This Behavior is derived from the GetMessageFromTopic class defined in the moveit_pro_behavior_interface package.
Perception - 2D Image Behavior - Calculate the center point of a 2D mask. The center point can be used for mask refinement with point based segmentation methods.
GetCenterMostAprilTag
Vision Behavior - Gets the stamped pose of the AprilTag detection closest to the center of the camera image. Projects each detection pose into pixel coordinates using the camera intrinsics and selects the one nearest to the image center. Optionally publishes an annotated image showing detected tag outlines.
Perception - 3D Point Cloud Behavior - 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.
Perception - Planning Scene Behavior - Given a collection of CollisionObjects, find the one closest to the provided pose.
Perception - 3D Point Cloud Behavior - Creates a planar contour path around a point cloud slice: Slices a point cloud given the slice_plane and slice_distance_from_plane. Projects these sliced points onto the slice_plane. Outputs a path with poses spaced no farther than max_pose_spacing along the contour. Note: The max_pose_spacing parameter sets an upper limit on waypoint spacing. Waypoints closer than this limit are preserved to maintain contour accuracy.
GetConvexHullPointCloud
Perception - 3D Point Cloud Behavior - Computes a 3D convex hull around an input point cloud and densely resamples the surface to fill holes and gaps. The hull surface triangles are sampled uniformly at the given density (points per square meter). Output points are colored using the average color of the hull vertices.
Perception - Planning Scene Behavior - Get the current planning scene.
Pose Handling Behavior - Gets the stamped pose of an object detection given a label or ID, if one exists.
Vector Handling Behavior - Get the element of a vector at the given index. Negative indexes start backwards from the last element.
GetFilenamesFromDirectory
User Created Behaviors Behavior - Gets a vector of all filenames in a given directory (optionally with a given filetype)
Perception - 3D Point Cloud Behavior - Outputs a graspable object for each point cloud fragment represented by a 3D mask.
Perception - 2D Image Behavior - Wait for an image message to be published on a specified ROS topic and copy it to an output data port. Given the name of a topic where sensor_msgs::msg::Image messages are being published, this Behavior subscribes to that topic and waits until a new message is published to the topic. When the Behavior's subscriber receives a new message, this Behavior copies it to an output data port and then finishes with a SUCCESS status. Afterwards, other Behaviors which take sensor_msgs::msg::Image messages as inputs can use this message for further processing or analysis. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No publisher is found on the topic. Creating a subscription on the topic does not succeed. A publisher was not advertising the topic before the timeout duration has passed. A publisher was found on the topic, but no message is published on the topic before the timeout duration has passed. This Behavior is derived from the GetMessageFromTopic class defined in the moveit_pro_behavior_interface package.
GetJointState
ROS Messaging Behavior - This behavior extracts joint state data from a planning scene object, outputting both a sensor_msgs/JointState and a moveit_msgs/RobotState message.
Pose Handling Behavior - Gets the latest transform from the robot model root to a frame specified as an input parameter to this behavior.
GetMask2DFromRegion
Perception - 2D Image Behavior - Rasterizes a user-selected 2D region (see GetRegionFromUser) into a Mask2D so the 3D-lifting Behaviors (GetMasks3DFromMasks2D) can project it onto the camera point cloud and recover the region in 3D.
GetMask2DProperties
Perception - 2D Image Behavior - Extract bounding box dimensions and area from a 2D mask. Returns width, height (in pixels), and total area (count of non-zero pixels). Useful for filtering or analyzing masks based on size.
GetMasks2DAutomask
Perception - ML Behavior - Automatically segments a ROS image message using SAM2 with grid-based point generation. Applies Non-Maximum Suppression to remove overlapping masks and splits disconnected components. Use when you need to detect all objects in a scene without knowing what they are in advance.
GetMasks2DFromExemplar
Perception - ML Behavior - Segments a ROS image using SAM3 with multimodal prompts (text, exemplar image, and/or bounding boxes). Supports any combination of prompt types for flexible segmentation scenarios. Use when you need to segment objects using natural language descriptions, visual examples, or spatial regions.
Perception - ML Behavior - Segments a ROS image message with the SAM2 model, using the provided points represented as a vector of geometry_msgs/PointStamped messages.
Perception - 3D Point Cloud Behavior - Given a point cloud of a scene and 2D masks from an image of the scene, output a point cloud mask for each image mask.
Grasping Behavior - Given the name of a link in the robot model that has a visual mesh, calculate the surface normals of the mesh and set them to an output data port. The base frame of each mesh normal pose will be the origin frame of the robot link. If calculation of mesh normals succeeds, this Behavior sets the normals to an output data port as a vector of geometry_msgs::msg::PoseStamped ROS messages and finally exits with a SUCCESS status code. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: The provided link name does not correspond to a link in the robot model. The robot model link does not have a visual mesh resource file. The discretization step size is negative. This Behavior is derived from the AsyncBehaviorBase class defined in the moveit_pro_behavior_interface package.
Navigation Behavior - Subscribe to an odometry message and store it on the blackboard.
Perception - 3D Point Cloud Behavior - Given an input point cloud, finds the oriented bounding box (OBB) using pcl::MomentOfInertiaEstimation and outputs the center pose and box dimensions. The OBB orientation is disambiguated by choosing the orientation closest to the reference_pose.
Perception - 3D Point Cloud Behavior - Wait for a point cloud message to be published on a specified ROS topic and copy it to an output data port. Given the name of a topic where sensor_msgs::msg::PointCloud2 messages are being published, this Behavior subscribes to that topic and waits until a new point cloud message is published to the topic. When the Behavior's subscriber receives a new point cloud message, this Behavior copies it to an output data port and then finishes with a SUCCESS status. Afterwards, other Behaviors which take sensor_msgs::msg::PointCloud2 messages as inputs can use this point cloud for further processing or analysis. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No publisher is found on the topic. Creating a subscription on the topic does not succeed. A publisher was found on the topic, but no message is published on the topic before a 5-second timeout duration has passed. This Behavior is derived from the GetMessageFromTopic class defined in the moveit_pro_behavior_interface package.
Perception - 3D Point Cloud Behavior - Returns a point cloud with the points selected by a 3D mask.
GetPoints2DFromGeminiQuery
Vision Behavior - Queries Google Gemini with a text prompt and a ROS image to locate 2D points corresponding to features described in the prompt. Reads the API key from the GOOGLE_GEMINI_API_KEY environment variable. The image is JPEG-encoded before transmission to reduce payload size. The prompt must be answerable by Gemini as a set of 2D image locations — that is, it should ask Gemini to find, locate, or point to objects or features visible in the image (e.g. "Find all the screws on the panel" or "Locate the red buttons"). Prompts that do not ask for image locations (e.g. "Describe this image") will produce an empty points list. The request constrains Gemini to emit a JSON object with two fields, narrative (a human-readable answer) and points (normalized 2D image coordinates with short labels), so the response is always schema-conformant. The narrative appears on the response output port, the parsed points on the detected_points output port, and each point's label on the detected_labels output port (in the same order). Prompt Gemini to put metadata such as object IDs, colors, or class names into the labels to plumb that information through to downstream Behaviors.
User Input Behavior - Requests a set of named points from the user by switching the view and displaying a sequence of prompts in the UI. The list of point prompts can either contain a single element, meaning the same prompt is displayed for each requested point, or it can be the same size as the list of point names, meaning a different prompt is displayed for each point. The output is a list of stamped points, whose X and Y coordinates are normalized pixel coordinates in the range [0..1]. The requested name of each point is contained in the frame ID of its header.
GetPoseAtGripperandDisplay
Pose Handling Objective - Create a pose at the gripper, transform it, and display it.
Perception - 3D Point Cloud Behavior - Given an ordered point cloud and a vector of normalized pixel XY coordinates, outputs a vector of stamped poses corresponding to points normal to the selected coordinates. This assumes that the pixel XY coordinates are normalized, i.e., have values in the range [0..1] relative to the image's height and width. Additionally, the output poses always align the Z axis with the normal of the plane by using the smallest eigenvalue of a planar patch with radius `neighbor_radius` around each selected point. These Z axes point towards the origin of the point cloud frame.
User Input Behavior - Request a Pose from the user by clicking on an object in the visualization pane. The object must be defined in the scene's URDF. Returns a PoseStamped.
GetRegionFromUser
User Input Behavior - Requests a 2D region (bounding box or polygon) from the user by switching the view and displaying a prompt in the UI. The user draws a rectangular bounding box or a polygon on the named camera view. The output is a geometry_msgs/PolygonStamped whose points are normalized image coordinates in the range [0..1]. A bounding box returns four axis-aligned corners; a polygon returns the convex hull of the user's clicks. The returned region is validated on the backend. Polygon selection is validated by the backend but is not yet available in the UI; use bounding_box for now.
Deprecated
ROS Messaging Behavior - This behavior extracts joint state data from a planning scene object, outputting both a sensor_msgs/JointState and a moveit_msgs/RobotState message.
GetRobotStateFromTrajectory
Motion - Planning Behavior - Get the JointState of a JointTrajectory at a specified time_from_reference either from the start or end of the trajectory. If from_start is true, then the trajectory will be queried at the time_from_reference from its start, otherwise it will be queried at the time_from_reference from its end. If time_from_reference doesn't exactly match a state in the trajectory, but is still within the bounds of the trajectory then the behavior will interpolate between states. The behavior will fail if the time_from_reference is outside the bounds of the trajectory.
Vector Handling Behavior - Get the size of the vector.
Perception - Planning Scene Behavior - Get data from time-synchronized image and point cloud topics and populate them in output ports.
Perception - 2D Image Behavior - Get data from time-synchronized image topics and populate them in output ports.
User Input Behavior - Gets text from user by sending a list of prompts with default values for each prompt. The prompts, values, and text_output ports should all be a vector of the same length.
Deprecated
Motion - Planning Behavior - Get the JointState of a JointTrajectory at a specified time_from_reference either from the start or end of the trajectory. If from_start is true, then the trajectory will be queried at the time_from_reference from its start, otherwise it will be queried at the time_from_reference from its end. If time_from_reference doesn't exactly match a state in the trajectory, but is still within the bounds of the trajectory then the behavior will interpolate between states. The behavior will fail if the time_from_reference is outside the bounds of the trajectory.
Grasp Planning
Motion - Planning Objective - Find a feasible grasp pose out of a set of manually-defined grasp candidates, and move there
Grasp Pose Tuning With April Tag
Application - Advanced Examples Objective - Moves the gripper to the April Tag and then prompts the user to teleop to a grasp pose. Saves the resulting pose to a YAML file.
Grasp Pose Using Yaml
Application - Advanced Examples Objective - Reads a YAML file for grasp pose offset and picks up an object that has an AprilTag marker.
IfThenElse
Control Flow Control Node - IfThenElse must have exactly 2 or 3 children.The first child is the "statement" of the if.If that return SUCCESS, then the second child is executed.Instead, if it returned FAILURE, the third child is executed.If you have only 2 children, this node will return FAILURE whenever the statement returns FAILURE.This is equivalent to add AlwaysFailure as 3rd child.
Indicate Jig Empty
Jig State Objective - Visualizes a mock stack light to show that the jig does not have a bracket part.
Indicate Jig Working
Jig State Objective - Visualizes mock stack light to show that there is a bracket part in the jig and it is being worked on.
Indicate Part Ready
Jig State Objective - Visualizes mock stack light to show that there is a bracket part in the jig and it is ready to be picked.
Motion - Task Planning Behavior - Creates a shared pointer to a new MTC Task object, populates it with global settings (for example, the overall Task timeout and introspection behavior), and sets it as an output data port.
Vector Handling Behavior - Insert an element into a vector at the given index. Negative indexes start backwards from the last element.
Inspect Convex Bowl
Application - Advanced Examples Objective - Inspect the Convex bowl with the blue tool. If a tool is already attached, it will return it to the correct holder first.
Interpolate to Joint State
Motion - Execute Objective - Move to a specified joint state using joint interpolation
Inverter
Control Flow Decorator - This node can only have 1 child.Tick the child once and return SUCCESS if the child failed or FAILURE if the child succeeded.If the child returns RUNNING, this node returns RUNNING too.
Perception - Planning Scene Behavior - Checks a PlanningScene to determine if any object is attached to the robot. Returns SUCCESS if there is an attached CollisionObject, FAILURE otherwise.
Perception - Planning Scene Behavior - Checks a PlanningScene to see if a CollisionObject with a specific ID exists. Returns SUCCESS if the CollisionObject is found, FAILURE otherwise.
Perception - Planning Scene Behavior - Checks a PlanningScene to determine if the given CollisionObject name is attached to the specified robot link.Returns SUCCESS if the object and link are attached; FAILURE otherwise.
Pose Handling Behavior - Succeeds if the pose position norm is below the position tolerance and the absolute rotation is below the rotation tolerance. Useful for evaluating an error pose.
User Input Behavior - Checks for the presence of a user interface by checking if the "/trajectory_bridge" ROS node exists.
Perception - Planning Scene Behavior - Check if the robot's current state satisfies a kinematic visibility constraint.
Joint Diagnostic
Application - Basic Examples Objective - Example of cycling through the min and max limits of a single joint, for hardware testing
Motion - Execute Behavior - Forward JointJog commands to a Joint Velocity Controller
KeepRunningUntilFailure
Control Flow Decorator - DEPRECATED: This decorator will be removed in MoveIt Pro 10.0. Use `RepeatUnlessFailureEachTick` (defaults to an infinite loop) instead.This node can only have 1 child.Tick the child until it returns FAILURE, then return FAILURE. If the child returns SUCCESS or RUNNING, continue ticking.
ListControllers
Motion - Controls Behavior - Lists controllers from the ros2_control controller manager. Returns a list of controller names. Two independent filters are available: 'state' selects by controller lifecycle state ('all', 'active', or 'inactive'). 'type' selects by interface type ('all' for any, 'command' for controllers that claim command interfaces like joint_trajectory_controller, 'state' for broadcasters with no command interfaces like joint_state_broadcaster). Both filters are applied together. This is useful for composing with SwitchController to save and restore controller states.
Load Bracket Part Pointcloud Subtree
Perception - 3D Point Cloud Objective - Loads the bracket part CAD into a point cloud at the specified pose.
Load MuJoCo Robot State
MuJoCo Simulation Objective - Load the Robot State from file and update the Robot State in the MuJoCo simulation.
Load and Execute Joint Trajectory
Application - Basic Examples Objective - Load a trajectory that was saved as a YAML file
LoadAndVisualizePointCloud
Perception - 3D Point Cloud Objective - Load point cloud from file, transform it using the input pose, and send it to the UI.
LoadHeaderFromYaml
YAML Handling Behavior - Loads a std::msg Header message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadHeaderVectorFromYaml
YAML Handling Behavior - Loads a vector of std::msg Header messages from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
Perception - 2D Image Behavior - Loads an image from a file, converts it to a ROS sensor_msgs/Image message, and writes it to an output data port.
LoadJointTrajectoryFromYaml
YAML Handling Behavior - Loads a joint trajectory message from a YAML file name and outputs a JointTrajectory ROS message object created from the file contents.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadObjectSubframeFromYaml
YAML Handling Behavior - Loads a moveit_studio_vision_msgs::msg ObjectSubframe message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
Perception - 3D Point Cloud Behavior - Loads a point cloud from a .pcd or .stl file, converts it to a ROS sensor_msgs/PointCloud2 message, and writes it to an output data port.
LoadPointStampedFromYaml
YAML Handling Behavior - Loads a PointStamped message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadPointStampedVectorFromYaml
YAML Handling Behavior - Loads a vector of PointStamped messages from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadPoseFromYaml
YAML Handling Behavior - Loads a Pose message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadPoseStampedFromYaml
YAML Handling Behavior - Loads a PoseStamped message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadPoseStampedVectorFromYaml
YAML Handling Behavior - Loads a vector of PoseStamped messages from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadPoseVectorFromYaml
YAML Handling Behavior - Loads a vector of Pose messages from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadQuaternionFromYaml
YAML Handling Behavior - Loads a Quaternion message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadRobotJointStateFromYaml
YAML Handling Behavior - Loads a robot state message from a YAML file and outputs a RobotState ROS message object created from the file contents.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadSubframesFromYaml
YAML Handling Behavior - Loads a vector of Subframes from a file, converts it and their names in the file to a vector of ROS moveit_studio_vision_msgs::msg::ObjectSubframe messages, and writes that to an output data port.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadTransformFromYaml
YAML Handling Behavior - Loads a Transform message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadTransformStampedFromYaml
YAML Handling Behavior - Loads a TransformStamped message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
LoadVector3FromYaml
YAML Handling Behavior - Loads a Vector3 message from a YAML file.If the optional package_name port is set, the YAML file path is resolved relative to that ROS package's share directory.
Utility Behavior - Log a message to the UI.
Look at Table
Application - Basic Examples Objective - Move the arm to a position that faces the table surface
Look for Bracket Part Subtree
Perception - 3D Point Cloud Objective - Look for the bracket part in the left bin and register it to the CAD of the part. Return the registered pose of the part for picking.
ML Find Bottles on Table from Image Exemplar
Application - ML (GPU Recommended) Objective - Uses the image exemplar feature of SAM3 to find and segment the square bottles on the table. Publishes masks on masks_visualization topic and exemplar with bounding box on bboxes_visualization for introspection. Combine image exemplar with text prompt to improve performance.
ML Move Boxes to Loading Zone
Application - ML (GPU Recommended) Objective - Move all of the boxes into the loading zone using ML perception.
ML Segment Bottles from File
Application - ML (GPU Recommended) Objective - Loads image of lab from file and uses SAM3 to find bottles. Useful when you want to file tune or experiment is exemplars before testing in robot scene.
ML Segment Image
Application - ML (GPU Recommended) Objective - Run an ML model to find all objects and visualize the masks with bounding boxes, from a text prompt.
ML Segment Image Loop
Application - ML (GPU Recommended) Objective - for looping the ML Segment Image objective
ML Segment Point Cloud
Application - ML (GPU Recommended) Objective - Captures a point cloud and segments out all possible objects from a text prompt
ML Segment Point Cloud from Clicked Point
Application - ML (GPU Recommended) Objective - Captures a point cloud and requests the user to click on three objects in the image to be segmented. The point cloud is then filtered to only include the selected objects.
MPC Pose Tracking Dynamic Point Cloud Avoidance with Sphere Down Sample
Application - MPC Examples Objective - Example of end effector avoiding a moving point cloud that is down-sampled with spheres.
MPC Pose Tracking Static Point Cloud Avoidance with Sphere Down Sample
Application - MPC Examples Objective - Example of end effector avoiding a point cloud that is down-sampled with spheres and statically placed in the environment.
MPC Pose Tracking With Point Cloud Avoidance
Application - MPC Examples Objective - Uses Model Predictive Control (MPC) to track a target pose while avoiding obstacles represented by a point cloud.
Motion - Execute Behavior - This behavior uses Model Predictive Control (MPC) to track a target pose while avoiding a point cloud real-time. The behavior optimizes two residuals simultaneous to achieve effective tracking: target pose and point cloud clearance. Target Pose: The target pose is provided through `target_pose` and `target_twist` input ports. The target pose must be in world frame. The target pose is tracked by a site defined in the MuJoCo model, e.g. `end_effector`. Point Cloud Clearance: The `point_cloud` input port supplies the point cloud to avoid, and the `link_sites` input port specifies the MuJoCo sites to monitor for proximity. The `safe_distance` input port defines the minimum allowed distance between each site and the point cloud. If a site is farther than `safe_distance` from the point cloud, the residual is zero and does not affect the optimization. As a site approaches the point cloud, the residual increases, encouraging the optimizer to maintain clearance.Optimization Problem: The optimization problem aims to minimize the following cost: l(x, u) = sum(w_i * ||r_i(x, u)||) where w_i is a non-negative weight for each residual functions, and r_i(x, u) is the residual function. The goal of the optimization is to minimize the sum of the weighted residual norms. This site tracking behavior optimizes the following residuals: 1) Cartesian velocity, 2) Cartesian acceleration, 3) Joint velocity, 4) Joint acceleration, 5) Force/torque constraints, and 6) Site tracking errors. For further details on the residual functions, please refer to the documentation of each residual function. Tuning Tips: 1) adjust the weights of the residual functions to prioritize specific constraints and 2) as a starting point, the cost of position error should be 10x that of the velocity error, and the velocity error should be 10x that of the acceleration error.
Motion - Execute Behavior - This behavior uses Model Predictive Control (MPC) to track a target pose in real-time. The behavior optimizes several residuals simultaneous to achieve effective tracking. Target Pose: The target pose is provided through the `target_pose` and `target_twist` input ports. The target pose must be in world frame. The target pose is tracked by a site defined in the MuJoCo model, e.g. `end_effector`. Optimization Problem: The optimization problem aims to minimize the following cost: l(x, u) = sum(w_i * ||r_i(x, u)||) where w_i is a non-negative weight for each residual functions, and r_i(x, u) is the residual function. The goal of the optimization is to minimize the sum of the weighted residual norms. This site tracking behavior optimizes the following residuals: 1) Cartesian velocity, 2) Cartesian acceleration, 3) Joint velocity, 4) Joint acceleration, 5) Force/torque constraints, and 6) Site tracking errors. For further details on the residual functions, please refer to the documentation of each residual function. Tuning Tips: 1) adjust the weights of the residual functions to prioritize specific constraints and 2) as a starting point, the cost of position error should be 10x that of the velocity error, and the velocity error should be 10x that of the acceleration error.
MPCSphereClearance
Motion - Execute Behavior - This behavior uses Model Predictive Control (MPC) to track a target pose while avoiding spheres represented as a collision object.Target Pose: The target pose is provided through `target_pose` and `target_twist` input ports. The target pose must be in world frame. The target pose is tracked by a site defined in the MuJoCo model, e.g. `end_effector`. Sphere Clearance: The `collision_sphere_object` input port supplies the collision object to avoid (which must be spheres and can contain at least one), and the `link_sites` input port specifies the MuJoCo sites to monitor for proximity. The `safe_distance` input port defines the minimum allowed distance between each site and the sphere(s). If a site is farther than `safe_distance` from the closest sphere, the residual is zero and does not affect the optimization. As a site approaches the sphere, the residual increases exponentially, encouraging the optimizer to maintain clearance.If the site is within the sphere, a large penalty cost is applied to strongly discourage the intersection.This optimization minimizes a cost function composed of the following residuals:1) Cartesian velocity, 2) Cartesian acceleration, 3) Site tracking errors, and 4) Sphere clearance.
Marker Visualization
Visualization Objective - Get marker configuration from user and display markers in visualization.
Marker Visualization Example
Visualization Objective - Wrapper Objective for Marker Visualization that exposes the base_frame parameter.
Perception - 3D Point Cloud Behavior - Merges a number of input point clouds into a single one. All point clouds must be expressed in the same reference frame. The input point clouds are projected onto a voxel grid with the given resolution. Each voxel produces a point in the output cloud that is the average of all input points projected on that voxel. If align_point_clouds is true, the input clouds are incrementally aligned using the Iterative Closest Point (ICP) algorithm.
Move Along Square
Application - Basic Examples Objective - Move along a square path
Move Boxes Looping
Application - ML (GPU Recommended) Objective - For testing purposes
Move Boxes to Loading Zone Start from Waypoint
Application - Advanced Examples Objective - Move boxes to loading zone from waypoint
Move Flasks to Burners
Application - Advanced Examples Objective - Example of picking and placing objects with orientation constraints and force-controlled placement
Move to Arm Upright
Training Examples Objective - Move the arm to an upright position
Move to Joint State
Motion - Execute Objective - Plan and execute motion to a set of joint angles specified in a ROS message type.
Move to Look at Plane
Training Examples Objective - Move the base an arm close to the plane
Move to Pose
Motion - Execute Objective - Plan and execute motion to a Cartesian coordinate pose in a ROS message type, using inverse kinematics.
Move to Pose (JTC)
Motion - Execute Objective - Plan and execute motion to a Cartesian coordinate pose using a standard Joint Trajectory Controller. This is a convenience wrapper around Move to Pose with execution_pipeline set to 'jtc'.
Move to Pose No Preview
Motion - Execute Objective - Plan and execute motion to a Cartesian coordinate pose in a ROS message type, using inverse kinematics.
Move to Waypoint
Motion - Execute Objective - Plan and execute motion to a MoveIt Pro-created named Waypoint, which is saved in joint space to the file system.
Move to Waypoint (JTC)
Motion - Execute Objective - Plan and execute motion to a MoveIt Pro-created named Waypoint using a standard Joint Trajectory Controller. This is a convenience wrapper around Move to Waypoint with execution_pipeline set to 'jtc'.
Move to a StampedPose
Motion - Execute Objective - Uses inverse kinematics to move the robot tip to a given pose
MoveCollisionObject
Planning Scene Behavior - Updates the reference pose of an existing CollisionObject in the planning scene. All child shapes follow the new pose, so multi-shape objects move as a unit and no per-shape pose updates are required. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. Fails when no entry with the given id exists in world.collision_objects, or when an entry with that id is currently attached to the robot (robot_state.attached_collision_objects). MOVE for attached objects is not supported; the caller must detach the object first. In supplied scene mode, the input pose must be in the same frame as the existing entry; transform the pose first if it is not.
Grasping Behavior - Calls a control_msgs::action::GripperCommand action server that actuates the gripper to a target position using a position controller. The gripper controller uses the target velocity and effort values specified in the URDF. If the gripper is blocked by an obstacle or makes a successful grasp before reaching the target position, the Behavior will end successfully, but the gripper will continue to apply force indefinitely. This Behavior will fail to execute if the GripperCommand action server is not running.
Navigate to Clicked Point
Navigation Objective - Navigate to a point clicked by the user in the UI
Navigate to Clicked Point with Replanning
Navigation Objective - Navigate to a point clicked by the user in the UI. This Objective will repeatedly replan the path as new obstacles appear on the local costmap.
NavigateThroughPosesAction
Navigation Behavior - Navigate through a given list of poses by sending a request to an action server. Given an action server advertising an action with type nav2_msgs::action::NavigateThroughPoses, a std::vector containing the goal poses, and the path to the behavior tree used to navigate, this Behavior composes a NavigateThroughPoses::Goal message using the provided pose messages and the settings. It sends the action request to the server and waits for the server to return the action feedback and result. During the action, this Behavior copies the action feedback into output data ports. This includes the current pose, navigation time, estimated time remaining, number of recoveries, and distance remaining. If the server completes the action successfully, this Behavior succeeds. The NavigateThroughPoses action returns a result, but this Behavior does not copy its fields into output data ports. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No action server is available with the specified name. The Behavior's action client fails to send the action goal to the action server. The action server does not return an action result before the specified timeout duration has elapsed. The navigation goal failed. This Behavior is derived from the ActionClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
NavigateToPoseAction
Navigation Behavior - Navigate to a given pose by sending a request to an action server. Given an action server advertising an action with type nav2_msgs::action::NavigateToPose, a geometry_msgs::msg::PoseStamped message defining the goal pose, and the path to the behavior tree used to navigate, this Behavior composes a NavigateToPose::Goal message using the pose message and the settings. It sends the action request to the server and waits for the server to return the action feedback and result. During the action, this Behavior copies the action feedback into output data ports. This includes the current pose, navigation time, estimated time remaining, number of recoveries, and distance remaining. If the server completes the action successfully, this Behavior succeeds. The NavigateToPose action returns a result, but this Behavior does not copy its fields into output data ports. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No action server is available with the specified name. The Behavior's action client fails to send the action goal to the action server. The action server does not return an action result before the specified timeout duration has elapsed. The navigation goal failed. This Behavior is derived from the ActionClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Octomap Example
Perception - 3D Point Cloud Objective - Takes a snapshot of the scene camera and then updates the planning scene in RViz with an ocotomap based on the `sensors_3d.yaml` file settings.
Open Gripper
Grasping Objective - Open the gripper
OverridePoseOrientation
Pose Handling Behavior - Replaces the orientation of a PoseStamped with a fixed quaternion. Useful for decoupling grasp orientation from noisy detection poses (e.g. AprilTags).
Parallel
Control Flow Control Node - The ParallelNode executes all its children concurrently, but not in separate threads!Even if this may look similar to ReactiveSequence, this Control Node is the only one that can have multiple children RUNNING at the same time.The Node is completed either when the THRESHOLD_SUCCESS or THRESHOLD_FAILURE number is reached (both configured using ports), returns RUNNING otherwise.If any of the thresholds are reached, and other children are still running, they will be halted.
Pick 1 Pill Bottle with SAM3
Application - ML (GPU Recommended) Objective - Single-bottle version of Pick All Pill Bottles. Uses SAM3 text-prompt segmentation seeded into an ICP fit, then picks one bottle and drops it in the tray via a Cartesian up-over-down drop.
Pick All Bottles with AprilTags
AprilTag Objective - Detects AprilTags on medicine bottles, picks them up, and places them in a tray. Loops until no more tags are found.
Pick All Pill Bottles
Application - ML (GPU Recommended) Objective - Uses ML models to repeatedly identify and grasp plan to pick up objects.
Pick April Tag Labeled Object
Application - Advanced Examples Objective - Picks up an object that has an AprilTag marker.
Pick April Tag Labeled Object With Approval
Application - Advanced Examples Objective - Picks up an object that has an AprilTag marker.
Pick Bracket Part from Jig Subtree
Motion - Execute Objective - Moves to jig approach pose and picks bracket part off of jig
Pick Brackets from Left Bin
Application - Advanced Examples Objective - Picks brackets from the left bin, and drops them in the right bin.
Pick Up Tool from Holder
Grasping Objective - Pick up the tool from the tool holder
Pick and Place Brackets from Left Bin
Application - Advanced Examples Objective - Picks brackets from the left bin, precisely places them on jig, then picks them again and drop in right bin.
Pick from Pose
Manipulation Objective - Takes a grasp pose as input and picks up the object at that pose
Pick from Pose Vector
Manipulation Objective - Takes a vector of yaw-equivalent grasp poses. MTC's BatchPoseIK computes IK for each, and RRT-Connect picks the one closest in joint space, avoiding wrist pirouettes for rotationally-symmetric grasps.
Pick from Pose With Approval
Manipulation Objective - Takes a set of grasp poses as input and picks up the object at one of those poses. Asks for approval before executing the trajectory.
Pick object
Motion - Execute Objective - Opens the gripper, defines a target pose for the object and performs a motion for picking it.
Pick up Object
Application - Basic Examples Objective - Pick up an object from a manually defined location
Place Object
Manipulation Objective - Place an object in the gripper at a manually specified location
Place Tool in Tool Holder
Grasping Objective - Puts the tool back in the tool holder
Place at Pose
Manipulation Objective - Takes a place pose as input and places the object at that pose
Place at Pose Vector
Manipulation Objective - Takes a vector of yaw-equivalent place poses. MTC's BatchPoseIK computes IK for each, and RRT-Connect picks the one closest in joint space, avoiding wrist pirouettes when the held object is rotationally symmetric.
Place at Pose with Approval
Manipulation Objective - Takes a place pose as input and places the object at that pose. Asks for approval before executing the trajectory.
Plan And Execute With Orientation Samples
Motion - Execution Objective - Free space plan to an approach pose then Cartesian plan to a target pose with tool frame z-axis variations. This will increase planning success if your tool does not have a continuous z-axis.
Plan And Execute With Position Only
Motion - Execution Objective - Cartesian plan to an approach pose then cartesian plan to a target pose with an optional Cartesian constraint. A position-only constraint largely decreases the solving constraints by ignoring the orientation of the approach and target poses.
Plan Move To Pose
Motion - Planning Objective - Plan an MTC task, but do not execute it
Plan Path Along Surface
Training Examples Objective - Plan and execute a path following a surface
Plan Path Along Surface - Loop
Training Examples Objective - Plan and execute a path following a surface
Plan Path Along Surface 3 Passes
Training Examples Objective - Sweep three stacked contour passes along the side of the fuselage. Generates and previews all three surface-contour markers up front, then plans, validates, and executes a Cartesian path for each pass in turn -- each pass starting where the previous one ended (a pseudo-raster). Built on the same GetContourFromPointCloudSlice perception as Plan Path Along Surface.
Plan and Save Trajectory
Application - Basic Examples Objective - Use a series of waypoints to generate a motion plan, convert the solution to a Joint Trajectory message, and save it to disk in YAML format
PlanAndExecuteWithPoseOrientation
Motion - Execution Objective - Free space plan to an approach pose then free space plan to a target pose with optional orientation constraints. With orientation constraints the gripper will maintain its orientation relative to the world vertical axis when moving from the approach to target pose.
Motion - Planning Behavior - Given a Cartesian-space path, plan a joint-space trajectory to move the robot tip along the path. The path to follow is given by path, which can contain waypoints in different frames. The CreatePoseStamped, ResetVector, and PushBackVector Behaviors can be used to create the Cartesian path. The kinematics are solved for the given tip_links of the given planning group (planning_group_name). The output joint_trajectory_msg is a timed joint-space trajectory that can be checked for self and environment collisions with the ValidateTrajectory Behavior, and executed with ExecuteTrajectory. The optional trajectory_timing port selects how the trajectory is timed: a time-optimal time parameterization, or a constant-speed Cartesian trapezoidal velocity profile that holds the tip's Cartesian speed constant between acceleration and deceleration ramps. With the time-optimal timing, the Behavior fills joint_trajectory_msg with the portion of the path that could be solved even on failure. The Cartesian trapezoidal timing supports a single tip link and likewise fills joint_trajectory_msg with the solvable portion of the path on failure, as long as that portion can be timed at the requested Cartesian speed. When trajectory_timing is not set, the deprecated velocity_scale_factor, acceleration_scale_factor, and trajectory_sampling_rate ports drive the time-optimal timing. The Behavior succeeds if the entire path could be resolved, or fails otherwise. The debug_solution output port will contain an MTCSolution message that can be used with the WaitForMTCSolutionApproval behavior for visualization. In the case multiple `tip_links` are specified, the first waypoint of the path will be used as the reference frame for all the tips, i.e. the tips will move relative to the given reference path, based on their current relative pose to that first waypoint, with tip_offset applied.
Motion - Task Planning Behavior - Solve a MoveIt Task Constructor (MTC) Task to create a Solution. Given an input std::shared_ptr which was created by the InitializeMTCTask Behavior and populated with MTC Stages by other Behaviors, attempt to find a solution that connects all the Stages in the Task into a single continuous and collision-free robot trajectory. If a Solution is found, this Behavior sets it to the output data port. It also sends a mapping from the behavior UID to the MTC task ID through the store_uid_map service, which the UI's MTC inspection panel uses to correlate this Behavior with its Solution. This mapping is debug telemetry only and does not affect motion correctness, so if the request fails a UI warning is published and planning continues. If these processes all succeed without any errors, this Behavior exits with a SUCCESS status code. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No Task was set to the input port. The input Task does not contain any Stages. MTC fails to initialize the Stages in the Task prior to planning the Task. MTC fails to plan the Task. An exception is thrown while planning the Task. This Behavior is derived from the AsyncBehaviorBase class defined in the moveit_pro_behavior_interface package.
Motion - Planning Behavior - Given a joint-space goal, plan a joint-space trajectory to move to the goal.
Playback Square Trajectory
Application - Basic Examples Objective - Loads and plays a JointTrajectory of the end-effector moving in a square trajectory.
Point-to-Point Trajectory
Training Examples Objective - Example showing how to create and execute a point-to-point trajectory without planning motion around obstacles.
Motion - Execute Behavior - Guarded velocity control with collision monitoring
Precondition
Control Flow Decorator - This node can only have 1 child.Executes its child node only if a condition is met.If the precondition is met, the child node will be run and this node will return the status returned from the child.If the precondition is not met, this node will return the BT::NodeStatus value specified in "return_on_mismatch".
PublishBoundingBoxes2D
Perception - 2D Image Behavior - Publishes an image with the provided vector of bounding boxes drawn on it for visualization. Optional labels can be provided to annotate each bounding box.
ROS Messaging Behavior - Publish a std_msgs::msg::Empty message to a topic.
Visualization Behavior - Publishes a set of markers to the UI for visualization. This Behavior composes a visualization_msgs::msg::MarkerArray message which contains one or more markers of the specified type. One marker will be created for each pose that is provided. The marker scale parameter will be applied uniformly to all the markers. If all inputs are valid, this Behavior will publish the visualization_msgs::msg::MarkerArray message it creates to a ROS topic named visual_markers and then finally exit with a SUCCESS status code. If an invalid marker type is provided or the marker scale vector does not contain exactly three values, exit with a FAILURE status code.
Perception - 2D Image Behavior - Publishes an image with the provided vector of masks overlaid for visualization. Bounding boxes for visualization will be added if labes or detection class are provided to input ports.
Perception - 3D Point Cloud Behavior - Publishes a point cloud on a ROS topic (typically used for debugging purposes).
Deprecated
ROS Messaging Behavior - DEPRECATED: Use PublishTF instead. Despite the name, this Behavior publishes a dynamic transform on /tf at the configured rate, not a true static transform on /tf_static. The frame stops being published when the Behavior is halted. A future PublishStaticTF Behavior will cover the truly-static-transform use case.
ROS Messaging Behavior - Publish a std_msgs::msg::String message to a topic.
PublishTF
ROS Messaging Behavior - Publishes a dynamic transform on /tf at the configured rate for as long as this Behavior is running. The transform stops being published when the Behavior is halted, so wrap this in a Parallel or long-lived decorator if the frame must remain available to downstream Behaviors. Use the CreatePoseStamped Behavior to create the input pose.
Motion - Execute Behavior - Publishes a velocity force command to the velocity force controller command topic at the desired rate. By default the controller interprets the twist and wrench in its configured ee_frame. Set control_frame_id to a robot-model link (e.g. the world or base link) to send references in that frame instead — useful for world-relative motion that stays fixed as the end-effector rotates. Wire the unstamped twist and wrench ports. The legacy twist_stamped and wrench_stamped ports are still accepted for backwards compatibility, but their header.frame_id is ignored — use the UnpackTwistStampedMessage and UnpackWrenchStampedMessage Behaviors to bridge from stamped sources.
Push Button
Application - Advanced Examples Objective - An example for how to use the VFC to move with a velocity / force reference until it collides
Push Button With a Trajectory
Motion - Execute Objective - An example for how to use the JTAC to execute a trajectory with compliance.
Vector Handling Behavior - Push an element to the back of a vector.
Motion - Task Planning Behavior - Push an MTC solution to a queue.
Raster Path Along Fuselage
Training Examples Objective - Build a single 2D raster coverage path over the airplane fuselage. Captures one wrist-camera point cloud, then slices it at three stacked heights (the same crop/centroid/contour approach as Plan Path Along Surface), reverses the middle contour, and stitches all three into one boustrophedon Cartesian path. NOTE: the single stitched PlanCartesianPath is currently intractable on hangar_sim - see the Plan Path Along Surface 3 Passes Objective for a working multi-pass sweep, and the header comment for tuning options.
Reachability Analysis - blocks
Reachability Objective - An example of performing reachability analysis for an overhead picking task.
Reachability Analysis - bowls
Reachability Objective - An example of performing reachability analysis for a object-normal task such as painting or sanding.
Reachability Analysis for mesh
Reachability Objective - Given a starting waypoint and mesh in the URDF, attempt to move to an approach and target pose for each mesh normal.
Reachability Analysis for plane
Reachability Objective - Given a grid of points, attempt to move to a vertical approach pose then move to the grid point.
ReactiveFallback
Control Flow Control Node - The ReactiveFallback is a fallback that re-evaluates all children. All the children are ticked from first to last:If a child returns RUNNING, continue to the next sibling.If a child returns FAILURE, continue to the next sibling.If a child returns SUCCESS, stop and return SUCCESS.If all the children fail, then this node returns FAILURE.IMPORTANT: to work properly, this node should not have more than a single asynchronous child.
ReactiveSequence
Control Flow Control Node - The ReactiveSequence provides continuous reevaluation of earlier conditions. All the children are ticked from first to last:If a child returns RUNNING, halt the remaining siblings in the sequence and return RUNNING.If a child returns SUCCESS, tick the next sibling.If a child returns FAILURE, stop and return FAILURE.If all the children return SUCCESS, this node returns SUCCESS.
Utility Behavior - Read the contents of a text file, within your Objectives folder, into a std::string.
Record Square Trajectory
Application - Advanced Examples Objective - Executes a square trajectory, records it, and saved the recording to a YAML file.
Record Teleop Trajectory
User Input Objective - Call the start service to start recording the teleoperated trajectory. Upon calling the stop service, the trajectory will be saved to the file.
Record and Replay Scanning Motion
Application - Advanced Examples Objective - Build a trajectory from a series of waypoints and MTC tasks to scan the environment, then save the trajectory to disk. If the trajectory is approved, it will be saved and then executed.
RecordEpisode
Data Recording Behavior - Start a Trainer recording session for demonstration collection. This Behavior sends a request to the train server's start_recording service (named via the service_name port) — the same recording session the training panel drives, so a Behavior-started recording shows up live in the UI. Values set on ports always win; the named training config only fills in what the ports leave unset. A non-empty camera_topics selects which camera image streams are captured even when config_name is also set; an empty camera_topics falls back to the config's cameras, then the cameras discovered on the live graph, then the recording defaults. Joint topics and fps resolve from the named config when not otherwise specified. Because this Behavior carries no robot selector, supply a config_name naming the robot, or run with a single discoverable robot on the graph. After each demonstrated episode, tick the SaveEpisode Behavior to snapshot it; end the session with the StopRecording Behavior, then pass the same dataset_name to ConvertDataset. If any of the following occur, this Behavior exits with a FAILURE status code: No service server is available with the specified name. The service response is received, but its success field is set to False (e.g. a recording session is already active); its error message is reported as the failure reason. This Behavior is derived from the ServiceClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Motion - Planning Behavior - Records a JointTrajectory message being published to a topic for a given planning group. The Behavior will record joint values for a given planning group. This Behavior doesn't start recording until the start recording service is called. To stop recording, the stop recording service must be called. If the stop recording service is called before the start recording service, the Behavior will fail. It is possible to downsample the JointTrajectory based on a joint space step.
Reflect Poses Subtree
Vector Handling Objective - Takes a set of poses, transforms each pose around an axis, and returns the combined set.
Register CAD Part
Perception - 3D Point Cloud Objective - Load an STL from disk and use registration to align the pointcloud with a matching shape in the environment
Register CAD Part Subtree
Perception - 3D Point Cloud Objective - Load an STL from disk and use registration to align the pointcloud with a matching shape in the environment. Return the pose of the object in the world frame.
Perception - 3D Point Cloud Behavior - Finds the pose of a target point cloud relative to the base frame of a base point cloud using the Iterative Closest Point (ICP) algorithm.
Remove Tools from PlanningScene
Motion - Planning Objective - Remove all tools from the planning scene
RemoveCollisionObject
Planning Scene Behavior - Removes a collision object from a planning scene by id. By default the Behavior modifies the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called. Succeeds without changes (no-op) when the id is not present in world.collision_objects: the removal intent is already satisfied. Fails when object_id is empty, or when the id is currently attached to the robot. Attached objects must be detached first.
Vector Handling Behavior - Remove an element from a vector at the given index. Negative indexes start backwards from the last element.
RemovePointsInBox
Perception - 3D Point Cloud Behavior - Given a point cloud and a box-shaped region, create a new point cloud which has the points inside the box-shaped region removed. The dimensions and size of the region to remove are defined relative to its centroid.
Planning Scene Behavior - Remove a URDF object from the planning scene. The URDF object with the given urdf_name will be removed from the planning scene. Once removed, the object will no longer be able to be attached to the robot until it is added to the planning scene again.
Repeat
Control Flow Decorator - DEPRECATED: This decorator violates the Behavior Tree tick paradigm and will be removed in MoveIt Pro 10.0. Use `RepeatUnlessFailureEachTick` for tick-paradigm looping, or `RepeatUnlessFailureWithinTick` if you intentionally need the legacy within-tick semantics.This node can only have 1 child.Tick the child up to N times (within one of this decorator's ticks), where N is passed as an Input Port, as long as the child returns SUCCESS.Interrupt the loop if the child returns FAILURE and, in that case, return FAILURE too.If the child returns RUNNING, this node returns RUNNING too.WARNING: If the decorator is attached to something that will always be successful and repeats infinitely many times (`num_cycles` = -1), MoveIt Pro will deadlock. See our Behavior Tree Troubleshooting doc for more information.
RepeatUnlessFailureEachTick
Control Flow Decorator - Tick the child up to num_cycles times, advancing one iteration per parent tick. Returns SUCCESS once the child has succeeded num_cycles times in a row, FAILURE on the first failure, and RUNNING otherwise. Set num_cycles to -1 (the default) for an infinite loop. Unlike Repeat, this decorator never spins a loop inside a single tick, so a num_cycles="-1" wrapping a synchronous always-successful child cannot deadlock the tree.
RepeatUnlessFailureWithinTick
Control Flow Decorator - Equivalent to the legacy Repeat decorator, registered under an explicit name to make the within-tick loop semantics obvious. Prefer RepeatUnlessFailureEachTick unless you specifically need the entire loop to run inside a single parent tick. Tick the child up to num_cycles times within one parent tick, as long as the child returns SUCCESS. Returns FAILURE on the first failure, RUNNING if the child returns RUNNING. WARNING: With a synchronous always-successful child and num_cycles="-1", this decorator will deadlock the tree. See the Behavior Tree Troubleshooting documentation for more information.
Vector Handling Behavior - Replace an element in a vector at the given index. Negative indexes start backwards from the last element.
Request Teleoperation
User Input Objective - Handles the different variations of teleoperation from the web UI, with the option of interactive user prompts and choosing the initial mode. Should be used as a subtree with port remapping as part of an another Objective.
Reset MuJoCo Robot
MuJoCo Simulation Objective - Set the joint state of the robot in the MuJoCo simulation.
Reset MuJoCo Sim
MuJoCo Simulation Objective - Reset the MuJoCo simulation to the `default` keyframe (if specified in the mujoco model).
Reset Planning Scene
Perception - Planning Scene Objective - Remove all runtime additions to the planning scene
MuJoCo Simulation Behavior - Prefer the Reset MuJoCo Sim subtree unless you are explicitly managing controllers yourself. That subtree deactivates controllers, calls this Behavior, and reactivates controllers atomically — which is what you almost always want. Resets the MuJoCo simulation to a specified keyframe state. The keyframe must be defined in the MuJoCo scene model. This Behavior will call a service to perform the reset operation. Important: This Behavior does not disable any active controllers before resetting the simulation. If controllers remain active after the reset, they may command further robot motion based on stale goals — leaving the robot in an inconsistent state. You are responsible for deactivating all active controllers before calling this Behavior directly. Service Interface: The Behavior calls a ResetMujocoKeyframe service that takes the keyframe name as a request parameter.
Perception - Planning Scene Behavior - Removes all objects which were added to the planning scene during runtime.
ResetPoseStampedVector
Vector Handling Behavior - Reset a vector containing PoseStamped messages.
Vector Handling Behavior - Reset a vector containing BT::Any messages.
Retract
Motion - Execute Objective - Move back a distance in the tool frame
Deprecated
Utility Behavior - Send a request to the /retrieve_joint_state service to retrieve the joint states of the robot and set the joint_state output port to the retrieved joint states. Given the name of the joint, this behavior sends a service request to the /retrieve_joint_state service which is advertised by the MoveIt Pro Parameter Manager Node. The service type is moveit_studio_agent_msgs::srv::RetrieveRobotState. The joint_state output port is of type moveit_msgs::msg::RobotState. If this Behavior receives a response from the service server indicating that the request succeeded, this Behavior exits with a SUCCESS status code. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No service server is available with the specified name. If no parameter is retrieved within the provided "timeout_sec" parameter. The service response is received, but its success field is set to False. Leaving the timeout_sec input empty makes this Behavior wait indefinitely to retrieve the parameter. This Behavior is derived from the ServiceClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Pose Handling Behavior - Send a request to the /retrieve_pose service to retrieve the pose of a target and set the pose output port to the retrieved stamped pose. Given a target pose, this behavior sends a service request to the /retrieve_pose service which is advertised by the MoveIt Pro Parameter Manager Node. The service type is moveit_studio_agent_msgs::srv::RetrievePose. The pose output port is of type geometry_msgs::msg::PoseStamped. If this Behavior receives a response from the service server indicating that the request succeeded, this Behavior exits with a SUCCESS status code. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No service server is available with the specified name. If no pose is retrieved within the provided "timeout_sec" parameter. If there is no pose stored by the MoveIt Pro parameter manager node. The service response is received, but its success field is set to False. Leaving the timeout_sec input empty makes this Behavior wait indefinitely to retrieve the parameter. This Behavior is derived from the ServiceClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
RetrieveRobotStateParameter
Utility Behavior - Send a request to the /retrieve_joint_state service to retrieve the joint states of the robot and set the joint_state output port to the retrieved joint states. Given the name of the joint, this behavior sends a service request to the /retrieve_joint_state service which is advertised by the MoveIt Pro Parameter Manager Node. The service type is moveit_studio_agent_msgs::srv::RetrieveRobotState. The joint_state output port is of type moveit_msgs::msg::RobotState. If this Behavior receives a response from the service server indicating that the request succeeded, this Behavior exits with a SUCCESS status code. If any of the following failure states occur, this Behavior will exit with a FAILURE status code: No service server is available with the specified name. If no parameter is retrieved within the provided "timeout_sec" parameter. The service response is received, but its success field is set to False. Leaving the timeout_sec input empty makes this Behavior wait indefinitely to retrieve the parameter. This Behavior is derived from the ServiceClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Motion - Planning Behavior - Given a named waypoint, sends a service request to the Agent WaypointManager to retrieve the joint state associated with that waypoint.
RetryUntilSuccessful
Control Flow Decorator - DEPRECATED: This decorator violates the Behavior Tree tick paradigm and will be removed in MoveIt Pro 10.0. It is equivalent to wrapping `RepeatUnlessFailureEachTick` in an `Inverter`.This node can only have 1 child.Tick the child up to N times, where N is passed as Input Port `num_attempts`, as long as the child returns FAILURE.Return FAILURE after the N attempts in the case that the child always returned FAILURE.Interrupt the loop if the child returns SUCCESS and, in that case, return SUCCESS too.If the child returns RUNNING, this node returns RUNNING too and the attempts will continue without incrementing on the next tick of the RetryUntilSuccessful node.WARNING: If the decorator is attached to something that will always be failure and repeats infinitely many times (`num_attempts` = -1), MoveIt Pro will deadlock. See our Behavior Tree Troubleshooting doc for more information.
ReversePoseStampedVector
Vector Handling Behavior - Reverses the order of a `PoseStamped` vector and stores the reversed sequence to the blackboard.
ReverseVector
Vector Handling Behavior - Reverses the order of a vector containing BT::Any data into a new output vector.
RotateTwistToFrame
Pose Handling Behavior - Rotates a TwistStamped into the target frame's orientation. Both the linear and angular components are rotated; any translation between the source and target frames is ignored, so this Behavior does not add the ω×r reference-point shift that a full rigid-body twist transform would. The latest available transform is used; the input twist's header.stamp is ignored, since twists are typically control signals rather than measurements. Returns FAILURE when the required TF cannot be obtained at lookup time (with the source / target frame names in the error message), or when required ports are missing.
Save Robot Joint State
MuJoCo Simulation Objective -
Perception - Planning Scene Behavior - Use the /get_planning_scene service to save the robot's current state.
SaveEpisode
Data Recording Behavior - End the current episode of the active Trainer recording and snapshot it to the dataset. This Behavior sends the exit_early action to the train server's control_recording service — the training panel's "Save" button. The snapshot is ordered when this Behavior succeeds and finishes flushing to the bag in the background; StopRecording waits for that flush before ending the session. StopRecording does NOT snapshot an episode that was never saved, so tick this Behavior after the demonstrated task and before StopRecording, or the episode is discarded. If any of the following occur, this Behavior exits with a FAILURE status code: No service server is available with the specified name. The service response is received, but its success field is set to False (e.g. no recording session is active); its error message is reported as the failure reason. This Behavior is derived from the ServiceClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
SaveHeaderToYaml
YAML Handling Behavior - Write a Header message given as a `std_msgs::msg::Header` message to a YAML file.
Perception - 2D Image Behavior - Save the contents of an image on the blackboard to a file. Filename will follow the syntax of file_prefix_YYYYMMDD_HHMMSS.png
SaveJointTrajectoryToYaml
YAML Handling Behavior - Accepts a JointTrajectory ROS message object, a namespace, and a file name. Converts and saves the joint trajectory message as a YAML file in the objectives directory at the provided file name and under the provided namespace within the file.
SaveMTCTaskInspection
Motion - Task Planning Behavior - Saves all MTC introspection data (stage tree, statistics, all solutions and failures, interface states, and per-stage failure explanations) for a given moveit_pro::task_constructor::Task to a JSON file on disk. Intended for offline triage of planning failures. The output_directory port accepts an absolute path, a path relative to the first configured objectives library directory, or a path beginning with ~/$HOME. The file name is always generated as _.json from the task's internal id; the trailing 3 digits are milliseconds-within-second so rapid back-to-back invocations do not overwrite each other. The absolute path written is returned on the generated_file output port. If the Task was created with introspection disabled (the enable_introspection port on InitializeMTCTask set to false), there is no inspection data to save: this Behavior logs a warning and succeeds without writing a file. Common patterns: wrap PlanMTCTask in a Fallback with this Behavior as the second child to dump only failed plans; or place it between Plan and Execute to dump every plan.
Perception - 3D Point Cloud Behavior - Save the contents of a point cloud on the blackboard to a pcd file using the pcl::PointXYZRGB point type. Filename will follow the syntax of file_prefix_YYYYMMDD_HHMMSS.pcd
SavePointStampedToYaml
YAML Handling Behavior - Write a point stamped given as a `geometry_msgs::msg::PointStamped` message to a YAML file.
Utility Behavior - Saves a PoseStamped in xyz rpy URDF format to file.
SavePoseStampedToYaml
YAML Handling Behavior - Write a pose given as a `geometry_msgs::msg::PoseStamped` message to a YAML file.
SavePoseToYaml
YAML Handling Behavior - Write a pose given as a `geometry_msgs::msg::Pose` message to a YAML file.
SaveQuaternionToYaml
YAML Handling Behavior - Write a Quaternion given as a `geometry_msgs::msg::Quaternion` message to a YAML file.
SaveRobotJointStateToYaml
YAML Handling Behavior - Accepts a RobotState ROS message object, a namespace, and a file name. Converts and saves the robot state message as a YAML file in the objectives directory at the provided file name and under the provided namespace within the file.
SaveTransformStampedToYaml
YAML Handling Behavior - Write a Transform given as a `geometry_msgs::msg::TransformStamped` message to a YAML file.
SaveTransformToYaml
YAML Handling Behavior - Write a Transform given as a `geometry_msgs::msg::Transform` message to a YAML file.
SaveVector3ToYaml
YAML Handling Behavior - Write a Vector3 given as a `geometry_msgs::msg::Vector3` message to a YAML file.
Scan Scene - Multiple Point Clouds
Perception - 3D Point Cloud Objective - Take multiple snapshots from the wrist camera at 3 positions (center, left, right) using Cartesian offsets and merge them into a single point cloud.
Script
Control Flow Behavior - Allows users to read from and write to variables in the blackboardCan perform operations like assignment, comparison, etc.Common Script Patterns:Variable Initialization:Arithmetic Operations:String Concatenation:Tip: prefer single quotes for string literals — double quotes inside a double-quoted code=… attribute must be XML-escaped as ".Multiple Assignments:Note: Use := for an unconditional blackboard write (creates or overwrites), = for assignment to an entry that already exists, and .. for string concatenation.
Segment Bottle Subtree
Perception - ML Objective - Segment a bottle with SAM3 and output the masked point cloud in world frame.
Segment Image from No Negative Text Prompt Subtree
Perception - ML Objective - Run SAM3 text-based segmentation and visualize the masks.
Segment Image from Point
Perception - ML Objective - Captures an image and segments it using the user provided prompt points.
Segment Image from Point Subtree
Perception - ML Objective - Captures an image and segments it using three user provided prompt points.
Segment Image from Text Prompt
Perception - ML Objective - Run text based segmentation and visualize the masks.
Segment Image from Text Prompt Subtree
Perception - ML Objective - Run SAM3 text-based segmentation and visualize the masks.
Segment Point Cloud from Clicked Point
Perception - ML Objective - Captures a point cloud and requests the user to click an object in the image to be segmented. The point cloud is then filtered to only include the selected object.
Segment Point Cloud from Clicked Point Subtree
Perception - ML Objective - Captures a point cloud and requests the user to click an object in the image to be segmented. The point cloud is then filtered to only include the selected object.
Segment Point Cloud from Text Prompt Subtree
Perception - ML Objective - Captures a point cloud and runs text-based segmentation on the camera image using the given text prompts. The point cloud is then filtered to only include the regions matching the prompts.
Select Region for Coverage Path
Application - Basic Examples Objective - Draw a box on the wrist camera, then sweep a coverage path over it (GetRegionFromUser demo).
Perception - 3D Point Cloud Behavior - Given a point cloud, transform it to the given frame, convert it to Binary Compressed PCD format, and publish it on a topic for the UI to visualize.
Sequence
Control Flow Control Node - The SequenceNode is used to tick children in an ordered sequence. If any child returns RUNNING, previous children are not ticked again.If all the children return SUCCESS, this node returns SUCCESS.If a child returns RUNNING, this node returns RUNNING. Loop is NOT restarted, the same running child will be ticked again.If a child returns FAILURE, stop the loop and return FAILURE. Restart the loop only if (reset_on_failure == true)
SequenceStar
Control Flow Control Node - The SequenceStarNode is a deprecated variant of sequence. If any child returns RUNNING, previous children are not ticked again.If all the children return SUCCESS, this node returns SUCCESS.If a child returns RUNNING, this node returns RUNNING. Loop is NOT restarted, the same running child will be ticked again.If a child returns FAILURE, stop the loop and return FAILURE. Loop is NOT restarted, the same running child will be ticked again.
Motion - Planning Behavior - Sets admittance parameters to be used in the 'ExecuteTrajectory' Behavior. A set of parameters will be loaded from a YAML file and displayed in the UI for the user to modify. Any modifications will be stored back to the YAML file. If the given YAML file doesn't exist, a default set of parameters will be created. The parameters will be returned in an output port as an 'AdmittanceParameters' message, which can be used as input to the 'ExecuteTrajectory' Behavior (JTAC controller).
SetBlackboard
Utility Behavior - Write a value into the behavior tree blackboard.
SetCollisionRule
Planning Scene Behavior - Allows or forbids collisions between two entities in the planning scene's Allowed Collision Matrix, without an MTC task. Each of name_a and name_b is resolved against planning groups, collision object ids, and robot links. A planning group expands to its links that carry collision geometry. The Behavior fails if a name is ambiguous (matches more than one category) or matches nothing. By default the Behavior reads and updates the live planning scene via service calls. Wire the planning_scene port to operate on a supplied planning scene instead; the modified scene is written back to the same port and no services are called.
SetInitialPose
Navigation Behavior - Looks up the robot's current pose via TF and publishes it to the localizer's initial-pose topic (default /initialpose), re-seeding the particle-filter localizer (e.g. beluga_amcl) at that pose with a tight covariance. This collapses an over-dispersed particle cloud back onto the current estimate; it does not correct a wrong position, since the looked-up pose is itself derived from the current map->odom estimate. Add this at the start of any navigation Objective so each run begins from a confident localization estimate without a manual 2D pose estimate. Returns SUCCESS once the pose is published; FAILURE if the TF lookup fails or a variance is negative.
SetMujocoState
Simulation - MuJoCo Behavior - Sets the MuJoCo simulation joint positions from a RobotState input port. Use CreateRobotState to create the input. This behavior does NOT manage controllers - use ListControllers and SwitchController to save/restore controller states if needed.
SetRos2Parameter
Configuration Behavior - Set any ROS2 parameter on any node at runtime via the standard set_parameters service. Given a target node name and a parameter name, value, and type, this Behavior constructs a rcl_interfaces::srv::SetParameters request and sends it to the /set_parameters service. Supported parameter types: bool, int, double, string, bool_array, int_array, double_array, string_array. For array types, provide comma-separated values (e.g. "0.1,0.2,0.3" for double_array). Example: To change Nav2 costmap robot_radius, set node_name to /local_costmap/local_costmap, parameter_name to robot_radius, parameter_value to 0.3, and parameter_type to double.
Setup Initial Planning Scene
Motion - Planning Objective - Sets the tools at their initial pose in the Planning Scene
SetupMTCAddCollisionBox
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage that adds a box-shaped collision object to the planning scene when the MTC task is planned. MTC equivalent of AddCollisionBox. The stage does not modify the live planning scene until the MTC task is executed. By default planning fails if an object with the same id already exists in the planned scene. Set overwrite to true to replace it instead.
SetupMTCAddCollisionCylinder
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage that adds a cylinder-shaped collision object to the planning scene when the MTC task is planned. MTC equivalent of AddCollisionCylinder. The stage does not modify the live planning scene until the MTC task is executed. By default planning fails if an object with the same id already exists in the planned scene. Set overwrite to true to replace it instead.
SetupMTCAddCollisionMesh
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage that adds a mesh-shaped collision object to the planning scene when the MTC task is planned. MTC equivalent of AddCollisionMesh. The stage does not modify the live planning scene until the MTC task is executed. By default planning fails if an object with the same id already exists in the planned scene. Set overwrite to true to replace it instead.
SetupMTCAddCollisionSphere
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage that adds a sphere-shaped collision object to the planning scene when the MTC task is planned. MTC equivalent of AddCollisionSphere. The stage does not modify the live planning scene until the MTC task is executed. By default planning fails if an object with the same id already exists in the planned scene. Set overwrite to true to replace it instead.
SetupMTCAttachObjectByID
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage that attaches the object to a robot link when the MTC task is planned. MTC equivalent of AttachObject. Takes a plain object id. By default the object keeps its current pose relative to the link. Wire relative_transform (the object origin frame expressed in the link frame) to attach it at a fixed pose instead. Planning fails when the object is absent from the scene at plan time, or when it is attached to a link other than the requested one. Attaching an object that is already attached to the requested link is a no-op; with relative_transform wired it fails instead, because re-posing an attached object is not supported. If allowed_collision_links is non-empty, the same stage also writes ACM entries allowing collisions between the attached object and each listed link (useful for gripper fingers that touch the object).
Motion - Task Planning Behavior - Given an existing MTC Task object and a vector of poses, appends an MTC stage, named 'pose IK', to compute IK solutions for those poses.How IK candidates are generated and spawned (per target pose):The IK solver runs repeatedly against the target pose, first from the current joint state and then from random seeds, until either max_ik_solutions valid solutions have been collected or ik_timeout_s elapses — whichever comes first. Reaching either limit ends the IK search for that pose.Each collected candidate is scored by joint-space L1 (Manhattan) distance to the current state — the sum, over each active joint, of the per-joint distance — and sorted ascending (closest to seed first).Out of that scored set, only the spawn_top_k lowest-cost candidates are actually inserted into the MTC pipeline (all of them when spawn_top_k = 0). Candidates that failed IK, collision, or constraint checks are always propagated as failure solutions so PlanMTCTask can report why a pose was unreachable.Combine with PlanMTCTask's max_solutions port to shape the pipeline: raising max_ik_solutions and ik_timeout_s broadens the IK search, spawn_top_k caps how many candidates reach the downstream planners, and PlanMTCTask.max_solutions caps how many task-level solutions MTC produces before stopping.
Deprecated
Motion - Task Planning Behavior - Given an existing MTC Task object and a joint state, appends MTC stage, named 'cartesian plan', to describe a cartesian motion plan to that joint state.
SetupMTCCartesianMoveToRobotState
Motion - Task Planning Behavior - Given an existing MTC Task object and a joint state, appends MTC stage, named 'cartesian plan', to describe a cartesian motion plan to that joint state.
Motion - Task Planning Behavior - 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. The stage names are: 'move to pose ', 'generate pose ', and 'pose IK '.
Motion - Task Planning Behavior - 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.
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC CurrentState Stage to the Task, named 'current state'.
SetupMTCDetachObjectByID
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage that detaches the object from a robot link when the MTC task is planned. MTC equivalent of DetachObject. Takes a plain object id. link_name is required because MTC stages are constructed before the task runs, so the runtime scene cannot be queried to find the current parent link. Planning fails when the object is attached to a link other than the requested one. Detaching an object that is not attached succeeds as a no-op: the intent is already satisfied.
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC FixedJointState Stage to the Task, named 'fixed state'. Creates an MTC FixedState stage representing an expected future robot and planning scene state, and appends the stage to an MTC Task. The expected planning scene and robot states are provided through input data ports. This allows planning trajectories that do not start at the robot's current state. It is important to move the robot to the joint state used to create the FixedState stage before executing a trajectory that starts at that joint state.
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC Stage, named 'Initial state', to the Task that initializes it with the final planning scene of a given solution.
Deprecated
Motion - Task Planning Behavior - Given an existing MTC Task object and a joint state, appends MTC stages, named 'Interpolate to a joint state', to describe a joint-interpolated motion plan to that joint state.
SetupMTCInterpolateToRobotState
Motion - Task Planning Behavior - Given an existing MTC Task object and a joint state, appends MTC stages, named 'Interpolate to a joint state', to describe a joint-interpolated motion plan to that joint state.
Motion - Task Planning Behavior - Given an existing MTC Task object, append a MTC MoveRelative stage, named 'Cartesian Motion', to perform a cartesian motion along an axis.
Motion - Task Planning Behavior - Given an existing MTC Task object, appends MTC Stages, named 'move ', that execute cartesian motion on multiple end-effectors. Each end-effector will move in a cartesian motion along an axis defined in the given IK frame. The direction of motion is defined by the normalized vector formed by the axis_x, axis_y, and axis_z vector elements (E.g. axis_x={1.0;0.0} axis_y={0.0;0.0} and axis_z={0.0;1.0} will move the first link in the ik_frames vector along its X axis, and the second link in the ik_frames vector along its Z axis. All input vectors must be the same size!
Motion - Task Planning Behavior - Given an existing MTC Task object, append a MTC Path IK stage, named 'Path IK', to perform a cartesian motion along a path.
Deprecated
Motion - Task Planning Behavior - Given an existing MTC Task object and a target pose, appends an MTC Stage, named 'plan to joint state pro rrt' to describe a freespace motion plan to that joint state using the MoveIt Pro RRTConnect planner.
Motion - Task Planning Behavior - 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.
SetupMTCPlanToRobotState
Motion - Task Planning Behavior - Given an existing MTC Task object and a target pose, appends an MTC Stage, named 'plan to joint state pro rrt' to describe a freespace motion plan to that joint state using the MoveIt Pro RRTConnect planner.
SetupMTCRemoveCollisionObject
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage that removes a collision object from the planning scene when the MTC task is planned. MTC equivalent of RemoveCollisionObject. The stage does not modify the live planning scene until the MTC task is executed. Removing an id that is absent from the world is a successful no-op. Removing an id currently attached to the robot fails planning; detach it first.
SetupMTCSetCollisionRule
Motion - Task Planning Behavior - Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage that allows or forbids collisions between two entities in the Allowed Collision Matrix when the MTC task is planned. MTC equivalent of SetCollisionRule. One uniform interface for collision rules between planning groups, collision objects, and robot links. Each name is resolved when the task is planned, against the planning scene the planner has built at this stage, as a planning group, a collision object id, or a robot link. A planning group expands to its links with collision geometry. Ambiguous names and names that match nothing fail planning with a descriptive error.
Solution - Draw Picknik
Training Examples Objective - Training example that shows how to load a Cartesian path from a file and execute the path
Solution - Draw Square
Training Examples Objective - Training example that shows how to create a path from poses and execute the path
Solution - Find and Spray Plane
Training Examples Objective - Finds the plane then generates and executes a coverage path
Solution - Generate coverage path
Training Examples Objective -
Solution - Move Forward 2m
Training Examples Objective -
Solution - Spray Plane
Training Examples Objective -
Motion - Planning Behavior - Calculate whether or not the robot's end effector can reach a list of target poses. The robot's current joint state is used as the initial random seed for determining target reachability. The target poses can be defined in any frame, as long as a transform exists between the specified frame and the robot's base frame.
Motion - Task Planning Behavior - Split an MTC Solution message in two by dividing its vector of subtrajectories at the specified index.
Stack Cubes with the VLA Policy
Application - VLA Examples Objective - Stack one colored cube on another using a vision-language-action policy.
Stationary Admittance
Application - Advanced Examples Objective - Puts the arm into Cartesian admittance mode
Stitch Multiple Point Clouds Together
Application - Basic Examples Objective - Multi-view inspection routine: Captures images and point clouds from multiple viewpoints for 3D reconstruction or quality inspection
StopRecording
Data Recording Behavior - Stop the active Trainer recording session and register the saved episodes as a dataset. This Behavior sends a request to the train server's stop_recording service. Episodes already snapshotted by the SaveEpisode Behavior are kept, and an episode whose save is still flushing is flushed before the session ends; the episode still recording is NOT snapshotted. The stop is idempotent — this Behavior succeeds when no recording is active, so it is safe in cleanup branches of an Objective. If any of the following occur, this Behavior exits with a FAILURE status code: No service server is available with the specified name. The service response is received, but its success field is set to False (e.g. an episode save was still flushing when the stop budget expired — the session stays active, so the stop can be retried); its error message is reported as the failure reason. This Behavior is derived from the ServiceClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Utility Behavior - Saves the current epoch time as a timepoint to an output data port.
Utility Behavior - Log the time elapsed since a timepoint provided on an input data port. Optionally log a message.
String Handling Behavior - Convert a String to an Int
SuppressChildErrors
Control Flow Decorator - Filters log messages produced while ticking the child Behavior. Messages whose severity is enabled for suppression are dropped entirely: no UI toast, no console line, no error-log entry. Suppressed messages are not downgraded to a lower severity. The child's BT::NodeStatus is passed through unchanged. Use this when the child is expected to fail as part of normal decision logic and you do not want operators to see ERROR-level toasts or system logs for that expected failure.
Motion - Controls Behavior - This Behavior switches controllers in a ros2_control controller manager. Given a list of controllers to activate/deactivate, a service request is dispatched to switch the active ros2_control controllers accordingly. If automatic_deactivation is set to true, the Behavior will automatically deactivate controllers that are in conflict with the ones to activate.
User Input Behavior - Switches the primary view in the MoveIt Pro Developer Tool. This can be "Visualization", "Behavior Tree", or the name of any valid camera topic available in the view dropdown menu in the UI. This is a fire-and-forget operation - the behavior publishes the requested view and returns SUCCESS immediately. The UI will update when it receives the message. Note: The behavior will return SUCCESS regardless of whether the UI can successfully switch to the requested view. If validation of the view name is required, it should be performed at a different layer.
Take Scene Camera Snapshot
Application - Basic Examples Objective - Take a pointcloud snapshot of the scene with a depth camera
Take Snapshot
Perception - 3D Point Cloud Objective - Take a point cloud snapshot and add to collision scene
Take Wrist Camera Image
Perception - 2D Image Objective - Loads wrist camera parameters and records color image.
Take Wrist Camera Snapshot
Application - Basic Examples Objective - Capture and visualise a pointcloud with the wrist camera
Teleoperate
User Input Objective - Handles the different variations of teleoperation from the web UI. Can be used standalone.
Timeout
Utility Decorator - Halt the child node after a given timeout. If the child returns SUCCESS or FAILURE before the timeout, the decorator returns that result.
Tool Attachment Example
Application - Advanced Examples Objective - Attach the black tool. If a tool is already attached, it will return it to the correct holder first.
Track Moving Frame
Motion - Execute Objective - Moves a given end-effector link to track a moving frame, e.g. to control the robot arm with a teleoperation device.
Perception - 3D Point Cloud Behavior - Transforms a point cloud given an input pose in the same frame as the point cloud. The frame IDs of the input point cloud and transform pose must match, or this Behavior will fail. The output point cloud will similarly be with respect to this frame.
Perception - 3D Point Cloud Behavior - Transforms a point cloud to a target coordinate frame.
Pose Handling Behavior - Transforms a stamped pose given an input translation and orientation. Optionally visualizes the resulting pose as a coordinate-frame marker.
Pose Handling Behavior - Transforms a stamped pose into a different frame ID.
Pose Handling Behavior - Transforms a stamped pose with a transform defined by another pose in the same frame.
TrimPointcloudSurface
Point Cloud Behavior - Trim a point cloud to retain only points within a quadrilateral boundary defined by 4 waypoints. Uses plane fitting via SVD and 2D point-in-polygon checking to filter the cloud.
UnpackAccelMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Accel message.
UnpackAccelStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::AccelStamped message.
UnpackAccelWithCovarianceMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::AccelWithCovariance message.
UnpackAccelWithCovarianceStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::AccelWithCovarianceStamped message.
UnpackAdmittanceParametersMessage
Conversions Behavior - Unpack behavior for a moveit_pro_controllers_msgs::msg::AdmittanceParameters message.
UnpackAgentInfoMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::AgentInfo message.
UnpackAllowedCollisionEntryMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::AllowedCollisionEntry message.
UnpackAllowedCollisionMatrixMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::AllowedCollisionMatrix message.
UnpackAttachedCollisionObjectMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::AttachedCollisionObject message.
UnpackBatteryStateMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::BatteryState message.
UnpackBehaviorParameterDescriptionMessage
Conversions Behavior - Unpack behavior for a moveit_studio_sdk_msgs::msg::BehaviorParameterDescription message.
UnpackBehaviorParameterMessage
Conversions Behavior - Unpack behavior for a moveit_studio_sdk_msgs::msg::BehaviorParameter message.
UnpackBehaviorTreeStatusMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::BehaviorTreeStatus message.
UnpackBoolMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Bool message.
UnpackBoundingVolumeMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::BoundingVolume message.
UnpackBreakpointStatusMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::BreakpointStatus message.
UnpackByteMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Byte message.
UnpackByteMultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::ByteMultiArray message.
UnpackCameraInfoMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::CameraInfo message.
UnpackCartesianPointMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::CartesianPoint message.
UnpackCartesianSelectionVectorMessage
Conversions Behavior - Unpack behavior for a moveit_pro_controllers_msgs::msg::CartesianSelectionVector message.
UnpackCartesianTrajectoryMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::CartesianTrajectory message.
UnpackCartesianTrajectoryPointMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::CartesianTrajectoryPoint message.
UnpackChannelFloat32Message
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::ChannelFloat32 message.
UnpackCharMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Char message.
UnpackClientInfoMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::ClientInfo message.
UnpackCollisionObjectMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::CollisionObject message.
UnpackColorRGBAMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::ColorRGBA message.
UnpackCompressedImageMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::CompressedImage message.
UnpackConstraintEvalResultMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::ConstraintEvalResult message.
UnpackConstraintsMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::Constraints message.
UnpackContactInformationMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::ContactInformation message.
UnpackCostSourceMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::CostSource message.
UnpackDisplayRobotStateMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::DisplayRobotState message.
UnpackDisplayTrajectoryMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::DisplayTrajectory message.
UnpackDurationMessage
Conversions Behavior - Unpack behavior for a builtin_interfaces::msg::Duration message.
UnpackEmptyMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Empty message.
UnpackEndEffectorMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::EndEffector message.
UnpackEventMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::Event message.
UnpackFaultStatusMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::FaultStatus message.
UnpackFloat32Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::Float32 message.
UnpackFloat32MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Float32MultiArray message.
UnpackFloat64Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::Float64 message.
UnpackFloat64MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Float64MultiArray message.
UnpackFluidPressureMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::FluidPressure message.
UnpackGenericTrajectoryMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::GenericTrajectory message.
UnpackGraspInfoMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::GraspInfo message.
UnpackGraspMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::Grasp message.
UnpackGraspableFaceMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::GraspableFace message.
UnpackGraspableObjectMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::GraspableObject message.
UnpackGripperTranslationMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::GripperTranslation message.
UnpackHeaderMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Header message.
UnpackIlluminanceMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::Illuminance message.
UnpackImageMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::Image message.
UnpackImageTopicsMessage
Conversions Behavior - Unpack behavior for a moveit_studio_internal_msgs::msg::ImageTopics message.
UnpackImuMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::Imu message.
UnpackInertiaMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Inertia message.
UnpackInertiaStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::InertiaStamped message.
UnpackInt16Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::Int16 message.
UnpackInt16MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Int16MultiArray message.
UnpackInt32Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::Int32 message.
UnpackInt32MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Int32MultiArray message.
UnpackInt64Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::Int64 message.
UnpackInt64MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Int64MultiArray message.
UnpackInt8Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::Int8 message.
UnpackInt8MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::Int8MultiArray message.
UnpackJointConstraintMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::JointConstraint message.
UnpackJointLimitsInfoMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::JointLimitsInfo message.
UnpackJointLimitsMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::JointLimits message.
UnpackJointStateMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::JointState message.
UnpackJointTrajectoryMessage
Conversions Behavior - Unpack behavior for a trajectory_msgs::msg::JointTrajectory message.
UnpackJointTrajectoryPointMessage
Conversions Behavior - Unpack behavior for a trajectory_msgs::msg::JointTrajectoryPoint message.
UnpackJointVelocityControllerStateMessage
Conversions Behavior - Unpack behavior for a moveit_pro_controllers_msgs::msg::JointVelocityControllerState message.
UnpackJoyFeedbackArrayMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::JoyFeedbackArray message.
UnpackJoyFeedbackMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::JoyFeedback message.
UnpackJoyMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::Joy message.
UnpackJsonMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::Json message.
UnpackKinematicSolverInfoMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::KinematicSolverInfo message.
UnpackLaserEchoMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::LaserEcho message.
UnpackLaserScanMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::LaserScan message.
UnpackLicenseInfoMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::LicenseInfo message.
UnpackLinkPaddingMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::LinkPadding message.
UnpackLinkScaleMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::LinkScale message.
UnpackLogMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::Log message.
UnpackMagneticFieldMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::MagneticField message.
UnpackMask2DMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::Mask2D message.
UnpackMask3DMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::Mask3D message.
UnpackMotionPlanDetailedResponseMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::MotionPlanDetailedResponse message.
UnpackMotionPlanRequestMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::MotionPlanRequest message.
UnpackMotionPlanResponseMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::MotionPlanResponse message.
UnpackMotionSequenceItemMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::MotionSequenceItem message.
UnpackMotionSequenceRequestMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::MotionSequenceRequest message.
UnpackMotionSequenceResponseMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::MotionSequenceResponse message.
UnpackMoveItErrorCodesMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::MoveItErrorCodes message.
UnpackMtcTaskDataMessage
Conversions Behavior - Unpack behavior for a moveit_studio_internal_msgs::msg::MtcTaskData message.
UnpackMultiArrayDimensionMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::MultiArrayDimension message.
UnpackMultiArrayLayoutMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::MultiArrayLayout message.
UnpackMultiDOFJointStateMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::MultiDOFJointState message.
UnpackMultiDOFJointTrajectoryMessage
Conversions Behavior - Unpack behavior for a trajectory_msgs::msg::MultiDOFJointTrajectory message.
UnpackMultiDOFJointTrajectoryPointMessage
Conversions Behavior - Unpack behavior for a trajectory_msgs::msg::MultiDOFJointTrajectoryPoint message.
UnpackMultiEchoLaserScanMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::MultiEchoLaserScan message.
UnpackNavSatFixMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::NavSatFix message.
UnpackNavSatStatusMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::NavSatStatus message.
UnpackObjectColorMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::ObjectColor message.
UnpackObjectDetectionArrayMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::ObjectDetectionArray message.
UnpackObjectDetectionMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::ObjectDetection message.
UnpackObjectSubframeMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::ObjectSubframe message.
UnpackObjectiveCallerMessage
Conversions Behavior - Unpack behavior for a moveit_studio_sdk_msgs::msg::ObjectiveCaller message.
UnpackObjectiveServerStatusMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::ObjectiveServerStatus message.
UnpackOrientationConstraintMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::OrientationConstraint message.
UnpackOrientedBoundingBoxMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::OrientedBoundingBox message.
UnpackPipelineStateMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PipelineState message.
UnpackPlaceLocationMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PlaceLocation message.
UnpackPlannerInterfaceDescriptionMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PlannerInterfaceDescription message.
UnpackPlannerParamsMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PlannerParams message.
UnpackPlanningGroupMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::PlanningGroup message.
UnpackPlanningOptionsMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PlanningOptions message.
UnpackPlanningSceneComponentsMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PlanningSceneComponents message.
UnpackPlanningSceneMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PlanningScene message.
UnpackPlanningSceneWithoutOctomapMessage
Conversions Behavior - Unpack behavior for a moveit_studio_internal_msgs::msg::PlanningSceneWithoutOctomap message.
UnpackPlanningSceneWorldMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PlanningSceneWorld message.
UnpackPoint32Message
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Point32 message.
UnpackPointCloud2Message
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::PointCloud2 message.
UnpackPointCloudMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::PointCloud message.
UnpackPointCloudPCDMessage
Conversions Behavior - Unpack behavior for a moveit_studio_vision_msgs::msg::PointCloudPCD message.
UnpackPointFieldMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::PointField message.
UnpackPointMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Point message.
UnpackPointStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::PointStamped message.
UnpackPolygonInstanceMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::PolygonInstance message.
UnpackPolygonInstanceStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::PolygonInstanceStamped message.
UnpackPolygonMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Polygon message.
UnpackPolygonStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::PolygonStamped message.
UnpackPose2DMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Pose2D message.
UnpackPoseArrayMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::PoseArray message.
UnpackPoseMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Pose message.
UnpackPoseStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::PoseStamped message.
UnpackPoseWithCovarianceMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::PoseWithCovariance message.
UnpackPoseWithCovarianceStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::PoseWithCovarianceStamped message.
UnpackPositionConstraintMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PositionConstraint message.
UnpackPositionIKRequestMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::PositionIKRequest message.
UnpackQuaternionMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Quaternion message.
UnpackQuaternionStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::QuaternionStamped message.
UnpackRangeMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::Range message.
UnpackRegionOfInterestMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::RegionOfInterest message.
UnpackRelativeHumidityMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::RelativeHumidity message.
UnpackRequestStatusMessage
Conversions Behavior - Unpack behavior for a moveit_studio_sdk_msgs::msg::RequestStatus message.
UnpackRobotStateMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::RobotState message.
UnpackRobotTrajectoryMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::RobotTrajectory message.
UnpackServoStatusMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::ServoStatus message.
UnpackStringMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::String message.
UnpackTF2ErrorMessage
Conversions Behavior - Unpack behavior for a tf2_msgs::msg::TF2Error message.
UnpackTFMessageMessage
Conversions Behavior - Unpack behavior for a tf2_msgs::msg::TFMessage message.
UnpackTeleoperationModeMessage
Conversions Behavior - Unpack behavior for a moveit_studio_sdk_msgs::msg::TeleoperationMode message.
UnpackTemperatureMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::Temperature message.
UnpackTimeMessage
Conversions Behavior - Unpack behavior for a builtin_interfaces::msg::Time message.
UnpackTimeReferenceMessage
Conversions Behavior - Unpack behavior for a sensor_msgs::msg::TimeReference message.
UnpackTrainCameraBindingMessage
Conversions Behavior - Unpack behavior for a moveit_studio_internal_msgs::msg::TrainCameraBinding message.
UnpackTrajectoryConstraintsMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::TrajectoryConstraints message.
UnpackTransformMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Transform message.
UnpackTransformStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::TransformStamped message.
UnpackTreeUidsMessage
Conversions Behavior - Unpack behavior for a moveit_studio_sdk_msgs::msg::TreeUids message.
UnpackTwistMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Twist message.
UnpackTwistStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::TwistStamped message.
UnpackTwistWithCovarianceMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::TwistWithCovariance message.
UnpackTwistWithCovarianceStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::TwistWithCovarianceStamped message.
UnpackUInt16Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::UInt16 message.
UnpackUInt16MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::UInt16MultiArray message.
UnpackUInt32Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::UInt32 message.
UnpackUInt32MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::UInt32MultiArray message.
UnpackUInt64Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::UInt64 message.
UnpackUInt64MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::UInt64MultiArray message.
UnpackUInt8Message
Conversions Behavior - Unpack behavior for a std_msgs::msg::UInt8 message.
UnpackUInt8MultiArrayMessage
Conversions Behavior - Unpack behavior for a std_msgs::msg::UInt8MultiArray message.
UnpackVector3Message
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Vector3 message.
UnpackVector3StampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Vector3Stamped message.
UnpackVelocityForceCommandMessage
Conversions Behavior - Unpack behavior for a moveit_pro_controllers_msgs::msg::VelocityForceCommand message.
UnpackVelocityForceControllerStateMessage
Conversions Behavior - Unpack behavior for a moveit_pro_controllers_msgs::msg::VelocityForceControllerState message.
UnpackVelocityStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::VelocityStamped message.
UnpackVelocityWithCovarianceStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::VelocityWithCovarianceStamped message.
UnpackVisibilityConstraintMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::VisibilityConstraint message.
UnpackWaypointMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::Waypoint message.
UnpackWorkspaceParametersMessage
Conversions Behavior - Unpack behavior for a moveit_msgs::msg::WorkspaceParameters message.
UnpackWrenchMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::Wrench message.
UnpackWrenchStampedMessage
Conversions Behavior - Unpack behavior for a geometry_msgs::msg::WrenchStamped message.
Perception - 3D Point Cloud Behavior - Updates the planning scene's collision octree using the provided point cloud, and waits until the octree has finished updating.
Vacuum Drop Bracket Part Subtree
Motion - Execute Objective - Assuming the vacuum gripper is engaged with a bracket part, moves over the right bin and drops the part.
Vacuum Pick Bracket Part Subtree
Motion - Execute Objective - Picks the bracket part using vacuum gripper. The pick and approach poses specific to the bracket part are hardcoded into this subtree.
Motion - Planning Behavior - Checks if a joint trajectory is valid, given a model of the scene. This Behavior checks that `joint_trajectory_msg` is collision-free at a given density (`joint_space_step` and `cartesian_space_step`). The model of the scene is constructed from the contents of `planning_scene_msg`. Use the `GetCurrentPlanningScene` Behavior to obtain the current scene model around the robot. The Behavior succeeds if the trajectory is valid on the given scene, or fails otherwise. In any case, the `debug_solution` output port will contain an MTCSolution message that can be used with the `WaitForMTCSolutionApproval` Behavior for visualization.
Vector Subtrees Example
Vector Handling Objective - Demonstrates CreateVector, PushBackVector, and Find Nearest Pose in Path subtree Objectives. Requires ConverterBehaviorsLoader.
Vector and String Example
Vector Handling Objective - Showcases creating, inserting, replacing, and removing strings from a vector, as well as reading strings from file and publishing them to ROS.
Visualize Bins and Jig
Perception - 3D Point Cloud Objective - Captures scene point cloud and crops out everything except the parts bins and jig
Visualize Bins and Jig Subtree
Perception - 3D Point Cloud Objective - Captures scene point cloud and crops out everything except the parts bins and jig and allows an additional point cloud to be displayed.
Visualize Grasp Link
Application - Advanced Examples Objective -
Visualize Segmented Point Cloud
Perception - ML Objective - Publish segmented point cloud to the UI.
Visualize TF
Visualization Objective - Visualize a TF frame.
VisualizeCameraFrustum
Visualization Behavior - Visualizes a camera frustum by publishing LINE_LIST markers showing the near plane, far plane, and connecting edges. The camera pose uses the optical frame convention: Z forward (viewing direction), X right, Y down.
VisualizeLine
Visualization Behavior - Visualizes a line between two poses, given as PoseStamped messages.
Visualization Behavior - Publishes a marker that contains a mesh path to the UI for visualization. This Behavior composes a visualization_msgs::msg::Marker message which contains the path to the mesh to visualize. If all inputs are valid, this Behavior will publish the visualization_msgs::msg::Marker message it creates to a ROS topic named moveit_pro/mesh_publisher and then finally exit with a SUCCESS status code. Note: To view the marker in RViz, the mesh_path must be prepended with and relative to package://package_name/.
Visualization Behavior - Visualizes a path, given as a vector of stamped poses. Optionally customize the line color and width.
Visualization Behavior - Visualizes a pose, given as a PoseStamped message.
Wait for Trajectory Approval if User Available
User Input Objective - Preview a shared pointer to an MTC Solution object via an input data port if a user is available.
Motion - Task Planning Behavior - Wait for an MTC solution queue to contain values, pop queue and write the next solution to output port.
Utility Behavior - Wait for a specified duration before succeeding.
WaitForJointTrajectoryApproval
User Input Behavior - Takes a raw JointTrajectory message via an input data port (for example the output of PlanToJointGoal or PlanCartesianPath), wraps it in an MTC Solution, and publishes that Solution on the "/preview_solution" topic for the UI to display. Creates a SetBool service server on the "/execute_behavior_solution" topic and waits to receive a request containing data: true before succeeding, or data: false to abort. Visualizes the cartesian path for each valid input link name with a green line while waiting. For robots with joints outside the planning group (mobile bases, external axes), wire a GetCurrentPlanningScene Behavior upstream and pass its output to the planning_scene port so the preview reflects the full robot state. Without a planning scene, joints outside the trajectory fall back to URDF-default values. For the common case where you want the preview to reflect the current planning scene automatically, use the Wait for Joint Trajectory Approval subtree instead of this raw Behavior. That subtree fetches the scene with GetCurrentPlanningScene and passes it in for you. Important: This Behavior creates a SetBool service server on the "/execute_behavior_solution" topic. Only one Behavior (of any class) that claims this service name can be instantiated per Objective; multiple instances will cause service-server conflicts. This interface will need to change to resolve the conflict robustly.
WaitForMTCSolutionApproval
User Input Behavior - Takes an MTC Solution message via an input data port and publishes it on the "/preview_solution" topic for the UI to display. Creates a SetBool service server on the "/execute_behavior_solution" topic and waits to receive a request containing data: true before succeeding, or data: false to abort. Visualizes the cartesian path for each valid input link name with a green line while waiting. Important: This Behavior creates a SetBool service server on the "/execute_behavior_solution" topic. Only one Behavior (of any class) that claims this service name can be instantiated per Objective; multiple instances will cause service-server conflicts. This interface will need to change to resolve the conflict robustly.
WaitForUserPathApproval
Navigation Behavior - Visualizes a nav_msgs::msg::Path in the UI to be approved or rejected.
Deprecated
User Input Behavior - DEPRECATED: Use WaitForMTCSolutionApproval instead. Takes a shared pointer to an MTC Solution object via an input data port, and publishes the lowest-cost trajectory in that Solution on 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.
Perception - Planning Scene Behavior - Checks a PlanningScene to determine if an object is attached from a given vector of object names.
WhileDoElse
Control Flow Control Node - WhileDoElse must have exactly 2 or 3 children. It is a REACTIVE node of IfThenElseNode.The first child is the "statement" that is executed at each tickIf result is SUCCESS, the second child is executed.If result is FAILURE, the third child is executed.If the 2nd or 3d child is RUNNING and the statement changes, the RUNNING child will be stopped before starting the sibling.
Total Behaviors Displayed: - | With Example Usage: - (-%)