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 9.4.0 628 Behaviors · 140 Objectives · 40 Categories Updated June 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.
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 collision box to the planning scene with the specified ID and pose.
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.
Vector Handling Behavior - Adds a point cloud to a vector of point clouds in the blackboard.
AddPoseStampedToVector
Vector Handling Behavior - 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.
AddToolToScene
Deprecated
Grasping Behavior - DEPRECATED: Use AddURDF instead. This Behavior adds a tool to the planning scene as a collision object at the specified pose. The tool is given as a URDF file, which describes the kinematics and collision geometry. See also AttachTool for attaching a tool.
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.
Deprecated
Perception - Planning Scene Behavior - DEPRECATED: Use a shape-specific AddCollision* Behavior together with SetCollisionRule to reproduce the virtual-collision semantics. Add a virtual collision object to the planning scene. A virtual collision object is not a physical object, but an object placed in the robot's representation of the environment to forbid planning into that space. Virtual objects are allowed to collide with other virtual objects. Note: The id of the virtual object is expected to start with `virtual_` to indicate that it is a virtual collision object. If the id does not start with `virtual_`, it is prepended onto the object id.
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.
Deprecated
Motion - Planning Behavior - Appends a moveit_msgs/OrientationConstraint to an existing moveit_msgs/Constraints. The orientation constraint parameters are defined from an input yaml file.
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.
Deprecated
Grasping Behavior - DEPRECATED: Use AttachURDF instead. This Behavior attaches a tool to a robot for motion planning purposes. The tool is attached to the robot at the specified link and relative pose. The tool is given as a URDF file, which describes the kinematics and collision geometry. Once attached, the tool will move with the link it is attached to. If the tool contains joints and those are reported in the /joint_states topic, the tool collision shapes will update their state accordingly. If the tool 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 DetachOrRemoveTool for detaching a tool.
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.
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.
Pose Handling Behavior - Returns the average PoseStamped from a vector of PoseStamped.
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. 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.
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.
Close Gripper
Grasping Objective - Close the gripper
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_studio_agent_msgs::msg::RobotJointState`, which can be used as input in motion planning Behaviors, e.g. `PlanToJointGoal`.
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::msg::ComputePathToPose, a geometry_poses::msg::PoseStamped message defining the goal pose, this Behavior composes a ComputePathToPose::Request message using the pose message and the settings. It sends the action request to the server and waits for the server to 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.
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.
Deprecated
Perception - Planning Scene Behavior - DEPRECATED: Use a shape-specific AddCollision* Behavior to add a shape in one step, or AddCollisionObject to apply a prebuilt CollisionObject.Creates a CollisionObject from a SolidPrimitive, pose, and object ID.
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, use ModifyObjectInPlanningScene.
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.
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.
CreateJointLimitsMessage
Conversions Behavior - Create behavior for a moveit_msgs::msg::JointLimits message.
Motion - Planning Behavior - Creates a moveit_studio_agent_msgs/RobotJointState 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.
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.
CreateRobotJointStateMessage
Conversions Behavior - Create behavior for a moveit_studio_agent_msgs::msg::RobotJointState message.
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.
Deprecated
Perception - Planning Scene Behavior - DEPRECATED: Use AddCollisionBox to add a box to the planning scene in one step.Creates a box-shaped SolidPrimitive.
Deprecated
Pose Handling Behavior - DEPRECATED: Use CreatePoseStamped instead. 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.
Deprecated
Pose Handling Behavior - DEPRECATED: Use CreateTwistStamped instead. Creates a geometry_msgs/TwistStamped message and writes it to the blackboard.
Deprecated
Pose Handling Behavior - DEPRECATED: Use CreateWrenchStamped instead. Creates a geometry_msgs/WrenchStamped message and writes it to the blackboard.
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.
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.
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.
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.
Delay
Control Flow Decorator - This node can only have 1 child.Sleep for a given duration of time and then tick the child node.
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.
DetachTool
Deprecated
Grasping Behavior - DEPRECATED: Use DetachURDF or RemoveURDFFromScene instead. Detach a tool from the robot or remove it from the planning scene. The tool with the given tool_name will be detached from the robot or removed from the planning scene depending on which service is specified. If detached, the tool will no longer move with the robot and will not be considered in motion planning calculations. If removed, the tool will no longer be able to be attached to the robot until it is added to the planning scene again.
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.
Perception - Machine Learning Behavior - Run a diffusion policy with a scene and wrist camera.
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
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'.
Deprecated
Motion - Planning Behavior - DEPRECATED: This Behavior is deprecated. Please use ExecuteTrajectory with execution_pipeline="follow_joint_trajectory_action" instead. Execute a given joint trajectory by sending a request to an action server. The corresponding joint trajectory controller needs to be active, which can be done with the SwitchController Behavior. Given the name of an action server advertising an action with type control_msgs::action::FollowJointTrajectory and a trajectory_msgs::msg::JointTrajectory message, this Behavior composes a FollowJointTrajectory::Request message using the joint trajectory message. It sends the action request to the server and waits for the server to return the action result. 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. The given position or time tolerances are invalid (negative). The action result is received, but its contents indicate that the action server failed execute the solution. This Behavior is derived from the ActionClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
Deprecated
Motion - Task Planning Behavior - Execute the lowest-cost trajectory in a given MTC Solution by sending a request to an action server named execute_task_solution. This Behavior composes an ExecuteTaskSolution::Request message using the moveit_task_constructor_msgs::msg::Solution supplied through the input data port. It sends the action request to the MTC ExecuteTaskSolution MoveGroup capability's /execute_task_solution action server and waits for the server to return the action result. 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 named execute_task_solution is available. The Behavior failed to get the solution from the input data port. The action result is received, but its contents indicate that the action server failed execute the solution. Planning scene modifications by MTC stages are applied to global planning scene as its corresponding sub-solution in the MTC solution is executed. This Behavior is derived from the ActionClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
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. The given tolerances are invalid (negative). The action result is received, but its contents indicate that the action server failed to execute the trajectory.
Deprecated
Motion - Planning Behavior - DEPRECATED: This Behavior is deprecated. Please use ExecuteTrajectory with execution_pipeline="jtac" instead. Execute a given joint trajectory by sending a request to a Joint Trajectory With Admittance controller (JTAC). The corresponding JTAC needs to be active, which can be done with the SwitchController Behavior. Given the name of an action server advertising an action with type moveit_pro_controllers_msgs::action::FollowJointTrajectoryWithAdmittance and a trajectory_msgs::msg::JointTrajectory message, this Behavior composes a FollowJointTrajectoryWithAdmittance::Request message using the joint trajectory message. It sends the action request to the server and waits for the server to return the action result. 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 given arguments are invalid, e.g. empty trajectory, invalid tolerances, etc. The action result is received, but its contents indicate that the action server failed execute the solution. This Behavior is derived from the ActionClientBehaviorBase class defined in the moveit_pro_behavior_interface package.
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::msg::FollowPath, a nav_msgs::msg::Path message containing a path, a controller_id, and a goal_checker_id, this Behavior composes a FollowPath::Request 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 does not return a result, so upon success, no additional data will be copied into an output data port. 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.
FrankaGraspAction
Grasping Behavior - Open and close the Franka onboard 2 finger gripper.
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 zig-zag path for a robot to follow to cover a given area. The zig-zag 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. 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 zig-zag path, 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 ExecuteFollowJointTrajectory. 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.
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)
Grasping Behavior - Generate a vector of grasps from a point cloud using the L2G network.
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.
Pose Handling Behavior - Gets the latest transform from the robot model root to a frame specified as an input parameter to this behavior.
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 - ML Behavior - Segments a ROS image message with the CLIPSeg model, using the text prompts provided as a vector of std::string.
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.
ROS Messaging Behavior - This behavior extracts joint state data from a planning scene object, outputting both a sensor_msgs/JointState and a moveit_studio_agent_msgs/RobotJointState message.
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.
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.
Motion - Task Planning Behavior - Creates a shared pointer to a new MTC Task object, populates it with global settings (for example, the names of controllers to enable by default when executing trajectories planned by this task), and sets it as an output data port.
Vector Handling Behavior - Insert an element into a vector at the given index. Negative indexes start backwards from the last element.
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 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 joint state message from a YAML file and outputs a RobotJointState 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
ML Auto Grasp Object from Clicked Point
Application - ML (GPU Recommended) Objective - Asks user to click on object to auto grasp and asks for approval before attempting pick.
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 Find Objects on Table
Application - ML (GPU Recommended) Objective - Uses SAM3 text prompting to find "an object" on the table and show their masks and probabilities.
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.
MPC Pose Tracking With Static Sphere Point Cloud Avoidance
Application - MPC Examples Objective -
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.
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.
Deprecated
Perception - Planning Scene Behavior - DEPRECATED: Use AddCollisionObject, or a shape-specific AddCollision* Behavior, instead. Add a collision object to the planning scene.
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::msg::NavigateThroughPoses, a std::vector message defining the goal poses, and the path to the behavior tree used to navigate, this Behavior composes a NavigateThroughPoses::Request 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 an 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 does not return a result, so upon success, no additional data will be copied into an output data port. 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::msg::NavigateToPose, a geometry_poses::msg::PoseStamped message defining the goal pose, and the path to the behavior tree used to navigate, this Behavior composes a NavigateToPose::Request 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 an 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 does not return a result, so upon success, no additional data will be copied into an output data port. 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 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 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 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 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 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
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 and AddPoseStampedToVector 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 ExecuteFollowJointTrajectory. The Behavior succeeds if the entire path could be resolved, or fails otherwise. In any case, joint_trajectory_msg is filled in with the portion of the path that could be solved. 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.
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.
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.
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.
Deprecated
Perception - Planning Scene Behavior - DEPRECATED: Use RemoveCollisionObject instead. Removes a collision object from the planning scene.
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.
RemoveToolFromScene
Deprecated
Grasping Behavior - DEPRECATED: Use DetachURDF or RemoveURDFFromScene instead. Detach a tool from the robot or remove it from the planning scene. The tool with the given tool_name will be detached from the robot or removed from the planning scene depending on which service is specified. If detached, the tool will no longer move with the robot and will not be considered in motion planning calculations. If removed, the tool will no longer be able to be attached to the robot until it is added to the planning scene again.
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.
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::RetrieveJointState. The joint_state output port is of type sensor_msgs::msg::JointState. 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.
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.
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. 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::PoseStamped` 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 RobotJointState ROS message object, a namespace, and a file name. Converts and saves the robot joint 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 - Introduced in BT.CPP 4 to integrate scripting language within XMLAllows users to read from and write to variables in the blackboardCan perform operation like assignment, comparison, etc.
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 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 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.
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 'ExecuteTrajectoryWithAdmittance' 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 'ExecuteTrajectoryWithAdmittance' Behavior (JTAC controller). Deprecated: Alternatively, this behavior can be used to set admittance parameters for a ros2_control admittance controller. In this case, 'controller_name' in the UI needs to be set to the controller to update. Parameters will be set via the parameter server and no output message will be created. This mode of operation is deprecated and only kept for compatibility with older setups that use the ros2_control admittance 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.
SetMujocoState
Simulation - MuJoCo Behavior - Sets the MuJoCo simulation joint positions from a RobotJointState input port. Use CreateJointState 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.
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.
Deprecated
Motion - Task Planning Behavior - Given an existing MTC Task object and a target object, appends MTC stages to describe a motion plan to approach the object.This Behavior will add stage(s) that will modify the global planning scene when executed via `ExecuteMTCTask`.The stage names are: 'Allow collision (object, everything-but-the-robot)', 'Move to Pre-Approach Pose', 'allow collision 1 (hand,octomap)', 'Approach', and 'allow collision 2 (hand,octomap)'.
Deprecated
Motion - Task Planning Behavior - DEPRECATED: Use SetupMTCAttachObjectByID instead. Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage, named 'attach object () to frame ()' to attach a GraspableObject which was previously added to the planning scene. This Behavior will add stage(s) that will modify the global planning scene when executed via `ExecuteMTCTask`.
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. The object must be a world collision object in the scene when the task is planned, or planning fails; an object that is already attached is not re-posed. 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.
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'.
Deprecated
Motion - Task Planning Behavior - DEPRECATED: Use SetupMTCDetachObjectByID instead. Given an existing MTC Task object, appends an MTC ModifyPlanningScene stage, named 'detach object () from frame ()', to detach a GraspableObject which was previously attached to a robot frame. This Behavior will add stage(s) that will modify the global planning scene when executed via `ExecuteMTCTask`.
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.
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 target object, appends MTC stages, named 'generate pose' and, 'pose IK', to generate cuboid grasp poses.
Deprecated
Motion - Task Planning Behavior - Given an existing MTC Task object and a target object, appends MTC stages, named 'generate pose' and, 'pose IK', to generate vacuum grasp poses.
Deprecated
Motion - Task Planning Behavior - DEPRECATED: Use SetupMTCSetCollisionRule instead. Add an MTC Stage, named ' collision (group of objects)', to an MTC Task that modifies the planning scene's Allowed Collision Matrix to permit or forbid collision between a set of objects while planning subsequent Stages. This Behavior will add stage(s) that will modify the global planning scene when executed via `ExecuteMTCTask`.
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.
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.
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 currently attached to the robot fails planning; detach it first. Removing an id that is not present is a no-op.
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.
Deprecated
Motion - Task Planning Behavior - DEPRECATED: Use SetupMTCSetCollisionRule instead. Add an MTC Stage, named ' collision (, group_name)', to an MTC Task that modifies the planning scene's Allowed Collision Matrix to permit or forbid collision between a planning scene object and the links of a named robot planning group while planning subsequent Stages. This Behavior will add stage(s) that will modify the global planning scene when executed via `ExecuteMTCTask`.
Deprecated
Motion - Task Planning Behavior - DEPRECATED: Use SetupMTCSetCollisionRule instead. Add an MTC Stage, named ' collision (, )', to an MTC Task that makes following stages either allow or prohibit collision between a GraspableObject and another entity. The other entity can be either a named collision object in the planning scene or the links of a named robot planning group. This Behavior will add stage(s) that will modify the global planning scene when executed via `ExecuteMTCTask`.
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.
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
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
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 - Capture a point cloud snapshot of the scene camera and send it to the UI
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 a point cloud snapshot of the wrist camera and send it to the UI
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.
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.
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.
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.
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.
UnpackRobotJointStateMessage
Conversions Behavior - Unpack behavior for a moveit_studio_agent_msgs::msg::RobotJointState 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.
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.
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.
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.
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 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.
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: - (-%)