8.6.2
Bug Fixes
- Fixed version mismatch in 8.6.1 falsely reporting as 8.6.0 in the UI and causing a warning to occur about updating unnecessarily.
MoveIt Pro can now collect teleoperation data using the Meta Quest. Check out the Hardware Guide.

Added general vector operations that work on vectors on the blackboard of any type, including GetElementOfVector, GetSizeOfVector, InsertInVector, RemoveFromVector, ReplaceInVector, add ResetVector Behaviors. Uses type BT::Any.

It's now easier to access the popup forms for new Behaviors and Objectives, with a combined "+" button accessible from both sidebar modes.

InitializeMTCTask now accepts a timeout parameter to set an overall timeout for the MTC Task, in seconds.
This is useful for ensuring that the MTC Task does not run indefinitely and can be used to control the execution time of the task.AddTool → AddURDF (deprecated AddTool still available)AttachTool → AttachURDF (deprecated AttachTool still available)DetachTool → DetachURDF (deprecated DetachTool still available)RemoveToolFromScene → RemoveURDFFromScene (deprecated RemoveToolFromScene still available)AddURDF behaviorToolChangingCapability to URDFPlanningSceneCapabilitymoveit_studio_agent_msgs/srv/AddTool → moveit_studio_agent_msgs/srv/AddURDFmoveit_studio_agent_msgs/srv/AttachTool → moveit_studio_agent_msgs/srv/AttachURDFmoveit_studio_agent_msgs/srv/DetachOrRemoveTool → moveit_studio_agent_msgs/srv/DetachOrRemoveURDFadd_tool_to_scene → add_urdf_to_sceneattach_tool → attach_urdfdetach_tool → detach_urdfremove_tool_from_scene → remove_urdf_from_scenetool_name → urdf_nametool_urdf → urdf_stringtool_pose → urdf_poseobjective_library_paths from the config.yaml for saving new objectives, allowing flexible configuration of where objectives are stored.Enhanced Visualize Pose behavior to display text information in Marker messages for improved debugging and visualization.

MoveIt Pro now supports executing trajectories that make 180 degree turns, which is common in MTC solutions.
So you can now use ConvertMtcSolutionToJointTrajectory and execute the resulting trajectories with ExecuteFollowJointTrajectory, even if those contain 180 degree turns.

april_tag_sim configuration.ValidateTrajectoryPlanCartesianPath now properly include the start scene.A ton of exciting new UI features are included in this release!
The Interactive Marker (IMarker) teleoperation panel now supports multiple planning groups and end effectors, allowing users to select which planning group to teleoperate.

A long requested feature during development and testing cycles, you can now comment and uncomment individual Behaviors, including entire subtrees of functionality. This aids in easier and faster debugging and development.

By default MoveIt Pro hides ports beyond the top 5, in order to keep the Behavior Tree compact and more viewable. However there are use cases, such as when searching with Ctrl+F or creating documentation, where you might want to expand all ports on each Behavior. You can now use the checkbox to "Show All Ports" in the Behavior Tree editor menu!

Quaternions are not intuitive for humands, but roll pitch yaw is. We've added a popup UI dialog that allows you to enter orientation values instead of Quaternions.

When adding and editing sub-trees, the port descriptions and port types are now UI-visible for sub-tree remapped ports. This makes working with subtrees much more intuitive.

It's now possible to hide the URDF robot model and any visualized point clouds from the visualizer from the newly renamed "View" menu.

You can now edit comments directly in Behavior Tree editor, improving the readability and in-line documentation capabilities of MoveIt Pro.

GetContourFromPointCloudSlice, which creates a planar contour that is offset around a point cloud slice. This can be used to generate tool paths for surface treatment operations.ReversePoseStampedVector to reverse the direction of a vector of poses, such as a Cartesian path.CropPosesInBox to filter a vector of poses, such as a Cartesian path, based on a bounding box.VisualizePath to accept a name input to visualize multiple paths at once, and to optionally show the poses with orientation axes in addition to the path line.GetMasks2DAction, ShapeCompletionAction, and CalibratePoseAction behaviors.MergePointClouds Behavior now exposes an option to align the point clouds using ICP when merging them.
This can be used to incrementally register multiple point clouds to each other and minimize the alignment error.SolveIKQueries Behavior has been updated to use our most recent IK pipeline, and now exposes a new port called check_collisions to enable or disable collision checking during IK solving.GetImage behavior to configure how long to wait for an image publisher to advertise.planning_group_name configuration parameter to the JTAC config, with the name of the
planning group that the JTAC will control. This planning group name must be a valid group defined in the SRDF file.
The joints config parameter is no longer required, since the JTAC will automatically determine the joints from the
planning group.GetGraspPoseFromPointCloud to automatically infer grasp poses using machine learning from point clouds.LoadObjectiveParameters is deprecated and is planned for removal in 9.0.SetAdmittanceParameters and AppendOrientationConstraint behaviors' interactive parameter editors in the UI.GetImage by allowing halting.planning_group_name parameter, which is the
name of the planning group that the JTAC will control. The joints and base_frame parameters are now deprecated.
If your ros2_control.yaml file defines a Joint Trajectory Admittance Controller, please update it to include the
planning_group_name parameter. The deprecated joints and base_link parameters will be removed in the next major
release.LoadObjectiveParameters is deprecated and is planned for removal in 9.0.Introducing a more streamlined way to build Behavior Trees using a “+” button directly next to applicable Behaviors, like Sequences. This button opens a searchable dialog for quickly adding behaviors inline, reducing the need to manually drag nodes in.

You can now easily navigate back to a parent Behavior Tree after drilling into a subtree. Users previously found it unintuitive to use the browser back button.

The new MPCPointCloudClearance Behavior tracks a pose in real-time while avoiding a point cloud using model predictive control (MPC). An example Objective is now available in lab_sim.

LoggerROS class.MPCPointCloudClearance Behavior tracks a pose while avoiding a point cloud using model predictive control.ForEachUntilSuccess for iterating through vectors and until the subtree succeeds on an element.ActivateControllers Behavior has been deprecated in favor of the SwitchController Behavior, which provides more flexibility in managing controller activation / deactivation.
Please switch to using the SwitchController Behavior in your applications.Joint Velocity Controller allows for the control of robot joints using velocity setpoints. It takes as input desired joint velocities in a control_msgs/JointJog message and computes the next joint positions and velocities to send to the robot, while respecting the robot's joint velocity and acceleration constraints. This controller can be used for collecting ML teleoperation training data, or in conjunction with higher-level closed-loop controllers such as visual servoing or learned policies.control_msgs/JointJog message and computes the next joint positions and velocities to send to the robot, while respecting the robot's joint velocity and acceleration constraints.
This controller can be used for teleoperation or in conjunction with higher-level closed-loop controllers such as visual servoing or learned policies.PlanCartesianPath and other Behaviors using Path IK (e.g. SetupMTCMoveAlongFrameAxis) now support tip links that are not in the planning group, but are descendants of it.LogMessage behavior don't show as expected in the UI.SetupMTCMoveAlongFrameAxis would throw an exception under some conditions.ActivateControllers Behavior has been deprecated in favor of the SwitchController Behavior, which provides more flexibility in managing controller activation / deactivation.
Please switch to using the SwitchController Behavior in your applications.controller_names port) no longer need to be prefixed with a slash.
Existing pipelines will still work with the old format for backwards compatibility, but it is recommended to use the new format for consistency, e.g. controller_names="/joint_trajectory_controller" should be changed to controller_names="joint_trajectory_controller".
This change will be enforced in the next breaking release (9.0).Feeling crunched on screen space, but have multiple monitors? There is now a "New Window" option in the settings menu that opens MoveIt Pro in a new tab. This is useful, for example, in having one screen for editing and monitoring large Behavior Trees, and a second screen for monitoring camera feeds and visualizations. Note: it is recommended that you don't have the same view pane type open on multiple windows, as there are currently some known limitations.

There is now a button to switch between full screen and windowed mode in the settings menu, allowing for more screen space and enhancing usage as a robot operator terminal.

GeneratePointToPointTrajectory can now take a target_state that contains a subset of the joints in the
planning group. The positions and velocities of all joints not included in the target_state will be set to the
start_state values.CallTriggerService Behavior.waitForServerAvailableTimeout configurable in ServiceClientBehaviorBase through optional getWaitForServerAvailableTimeout function.moveit_pro_ml::DiffusionPolicy to the moveit_pro_ml package. This class exposes an interface for running a diffusion policy to generate trajectories.moveit_pro run is called.CreateJointState behavior where the created RobotJointState did not contain the names the user specified on the 'names' input port.moveit_core and moveit_ros_planning targets. No migration is required.planning_group_name configuration parameter to the VFC config, with the name of the planning group that the VFC will control.
This planning group name must be a valid group defined in the SRDF file.
The joints config parameter is no longer required, since the VFC will automatically determine the joints from the planning group.planning_group_name parameter, which is the name of the planning group that the VFC will control.
The joints and base_link parameters are now deprecated.
If your ros2_control.yaml file defines a Velocity Force Controller, please update it to include the planning_group_name parameter.
The deprecated joints and base_link parameters will be removed in the next major release.This hotfix was released on July 30, 2025.
PlanCartesianPath debug solution only if output port is set.