Skip to main content

9.0.0

Β· 11 min read

Major Features​

This is a very exciting major release, full of new features! 🎁

Joint Jog Teleoperation​

Joint Jog Teleoperation

MoveIt Pro 9.0 introduces a new Joint Jog teleoperation mode that allows users to directly control individual robot joints through the Web UI. This new implementation replaces the previous MoveIt Servo-based joint jogging with a more robust and performant solution.

Key improvements over the previous Servo-based implementation:

  • Better Performance: The new Joint Velocity Controller provides smoother, more responsive joint motion with configurable velocity and acceleration limits per joint.
  • Enhanced Safety: Built-in safety features include online collision checking, joint limit enforcement with configurable safety margins, and automatic stopping when commands time out.
  • Simplified Configuration: Joint Jog uses a streamlined configuration file (joint_jog.yaml) that maps planning groups to their controllers, eliminating the need for complex MoveIt Servo parameter tuning.
  • Multi-Arm Support: Native support for dual-arm and multi-arm configurations with independent control of each manipulator.
  • Mobile Base Integration: Seamless integration with mobile bases, allowing simultaneous control of platform and arm joints (whole body control).

The Joint Jog Behavior performs continuous collision checking to ensure safe operation, with user-configurable link padding and stop safety factors. Users can also disable collision checking when needed for specific applications.

See the 9.0 User Workspace Migration Guide for instructions on updating your robot configuration packages to use the new Joint Jog feature, as the previous MoveIt Servo-based implementation is no longer available.

Scan and Plan Capabilities for Spraying & Surface Treatment​

Scan and Plan Capabilities for Spraying & Surface Treatment

One of the recent improvements to MoveIt Pro is a set of Behaviors that enable scanning point clouds of the real-world and automatically generating rasterized Cartesian tool paths across the contours. This is ideal for spraying, washing, sanding, grinding, and more. You can see an example of this working in the Move along Contour Objective in the hangar_sim world and Plan Path Along Surface Objective in factory_sim. New Behaviors include:

  • GetContourFromPointCloudSlice - creates a planar contour that is offset around a point cloud slice.
  • MergePointClouds - exposes an option to align the point clouds using ICP when merging them.
  • CropPosesInBox - filter a vector of poses, such as a Cartesian path, based on a bounding box.

New Image Mask Behaviors​

New Image Mask Behaviors

New behaviors were added to enable inspecting and filtering bounding boxes and areas of 2D masks. Check out FilterMasks2DByArea, FilterMasks2DByBoundingBox, and GetMask2DProperties for more information. Useful for pruning image masks produced by ML behaviors such as automasking.

Fully Redesigned User Interface​

Fully Redesigned User Interface

The new 9.0 UI reduces mouse travel for common workflows, removes confusion around editing while in Build mode, and eliminates wasted space caused by duplicate header bars. The refreshed layout delivers a cleaner, more modern look that improves usability today while making the product more visually appealing. A key change is we have removed the main Build / Run buttons, unifying this concept into a single sidebar, but many other enhancements are explained below.

Added optional "Snap to Box" feature to the Behavior Tree editor​

Added optional "Snap to Box" feature to the Behavior Tree editor

This editing mode allows nodes to be visually snapped to insertion points between siblings when dragging, making it easier to reorganize the tree structure. The implementation includes visual drop zones, grid-based layout for consistent node sizing, and a toggle in the UI to enable/disable the feature depending on your preference.

Added search for nodes and ports in editor mode with highlighted matches​

Added search for nodes and ports in editor mode with highlighted matches

You can now search Behavior Tree nodes and ports by name in the editor, navigate between matches, and see the current match highlighted directly on the canvas.

Added Runtime/Editor filtering to toast history​

Added Runtime/Editor filtering to toast history

Users can now filter alert messages in the alert history drawer by their source: Runtime (ROS logs and Objective execution events) or Editor (Build mode and editor operations). This makes it easier to focus on the messages that matter for the current taskβ€”for example, isolating Runtime alerts while debugging a Behavior Tree, or viewing only Editor-related notices while configuring Objectives.

Added Isometric View Modes​

Added Isometric View Modes

Users can now view the robot and scene from multiple perspectives simultaneously (the original 3D "Visualization" view plus 3 new orthographic views along the X, Y, and Z axes). The different views can be selected from the view dropdown menu.

Added 5 and 6 pane view options​

Added 5 and 6 pane view options

Added two new pane view options for large monitors: 5-pane view and 6-pane view. These layouts provide additional flexibility for users who need to view multiple camera feeds and visualization panels simultaneously.

  • 5-pane view: Features one tall pane on the left spanning the full height of the canvas and four smaller panes on the right arranged in a 2Γ—2 grid (two columns, two rows).
  • 6-pane view: Displays six equal-sized panes in a 2Γ—3 grid layout (33.33% width each), ideal for viewing multiple camera streams alongside the main visualization.

Added multi-joint simultaneous jogging functionality​

Added multi-joint simultaneous jogging functionality

In the teleoperation interface, users can now adjust multiple joint sliders and approve all changes together before execution.

Other Enhancements​

Inverse Kinematics with Better Constraints​

  • Path IK now exposes a way to track a path's orientation as a nullspace cost, rather than as a constraint. This allows position-only constrained paths to still closely follow the target orientation when kinematically feasible. Only available in the C++ and Python APIs via PathIKOptions::setTrackPathOrientationNullspaceTask().
  • Path IK now allows customizing the maximum allowed path deviation tolerances via PathIKOptions::setMaxAllowedPathDeviation(). Available in the C++ and Python APIs.
  • Path IK now allows users to provide a custom nullspace override function via PathIKOptions::setNullspaceOverrideFunction(). This function receives the computed nullspace component and current joint values, and can modify or replace the nullspace component before it is applied. Available in the C++ and Python APIs.

Misc UI Changes​

  • Added a "MoveIt Pro Started" separator to the logs in the alert sidebar
  • Updated the visual appearance and layout of the Ports Sidebar in the Behavior Tree editor for better readability and UI consistency.
  • Added a Behavior category displayed in the Behavior description popover, as well as the "Quick Add" menu under the Behavior name
  • Message type names in the UI are now sanitized to hide verbose C++ template parameters: <std::allocator<void> > suffixes are removed, std::__cxx11::basic_string<...> is simplified to std::string, and default allocator template parameters in vectors are removed. This makes type names cleaner and easier to read, and allows users to enter simple type names that will match for type highlighting.
  • Moved "Submit Feedback" out of the settings menu and into the About modal.
  • Software Upgrade notification toasts now persist dismissal state, so that dismissed upgrade notifications for a specific version will not reappear until a newer version is available.

Updated ROS Snapshot​

  • The ROS Humble snapshot being used for packages was updated to the 2026-01-07 snapshot.
  • Stay tuned for an optional ROS Jazzy in an upcoming 9.0 release ;-)

Behavior Changes​

  • SetupMTCMoveToPose, SetupMTCMoveToJointState, SetupMTCMoveToNamedState, and SetupMTCConnectWithTrajectory had been deprecated in version 7.1.0 and are now removed entirely in 9.0. Please use SetupMTCPlanToPose, SetupMTCPlanToJointState, SetupMTCPlanToNamedState, and SetupMTCConnectWithProRRT respectively.
  • DetachURDF and RemoveURDFFromScene Behaviors now return success (no-op) when attempting to detach or remove a tool that doesn't exist, instead of returning an error.
  • Consolidated ExecuteFollowJointTrajectory and ExecuteTrajectoryWithAdmittance into a single ExecuteTrajectory Behavior that supports both standard FollowJointTrajectory action servers and Joint Trajectory Admittance Controller (JTAC) action servers via an execution_pipeline input port.
  • GetContourFromPointCloudSlice: Renamed input port desired_pose_spacing to max_pose_spacing to better reflect its behavior as an upper limit on waypoint spacing rather than a target spacing value. This is a breaking change that requires updating Objective files.
  • GetImage, GetCameraInfo, GetPointCloud: Renamed input port timeout_sec to message_timeout_sec to better distinguish it from the publisher_timeout_sec port. This is a breaking change that requires updating Objective files.
  • ExecuteMTCTask has been deprecated in favor of ExecuteMTCSolution and the new Execute MTC Solution subtree. The core Move to Pose and Request Teleoperation Objectives have been updated to use this new subtree internally. This will allow deprecating the old MoveIt 2 execution pipeline in favor of more transparent and direct communication with the robot controllers.

Removed Deprecated Behaviors​

The following previously deprecated Behaviors have been removed. If you have custom Objectives using any of these Behaviors, please refer to the 9.0 User Workspace Migration Guide.

  • ActivateControllers
  • AddSubframeToObject
  • AddToolToScene
  • AppendOrientationConstraint
  • AttachTool
  • DetachTool
  • GenerateObjectsInBox
  • GetGraspAndTwistSubframes
  • GetMoveAlongArcSubframes
  • InitializeMotionConstraints
  • LoadObjectiveParameters
  • RemoveToolFromScene
  • ServoTowardsPose
  • SetupMTCApproachGrasp
  • SetupMTCGenerateCuboidGrasps
  • SetupMTCGenerateVacuumGrasps
  • SetupMTCRetractFromGrasp
  • TeleoperateTwist
  • TransformPoseFromYaml
  • WriteCalibratedPoseToYaml

Reference Application Changes​

  • In factory_sim there is a new Objective Automask Camera Iterate Masks which demonstrates using automask on binary camera images and visualizes each mask individually using breakpoints. This particular objective is useful for tuning mask parameters and can be applied to improve ML workflows.

Documentation Improvements​

  • Adds tutorial for how to use GetMasks2DAutomask for ML-based automasking or automatic segmentation of images

Other Improvements​

  • Path IK now exposes a way to track a path's orientation as a nullspace cost, rather than as a constraint. This allows position-only constrained paths to still closely follow the target orientation when kinematically feasible. Only available in the C++ and Python APIs via PathIKOptions::setTrackPathOrientationNullspaceTask().
  • Path IK now allows customizing the maximum allowed path deviation tolerances via PathIKOptions::setMaxAllowedPathDeviation(). Available in the C++ and Python APIs.
  • Path IK now allows users to provide a custom nullspace override function via PathIKOptions::setNullspaceOverrideFunction(). This function receives the computed nullspace component and current joint values, and can modify or replace the nullspace component before it is applied. Available in the C++ and Python APIs.
  • For the example objectives Pick 1 Pill Bottle and Pick All Pill Bottles in lab_sim, the text prompts have been changed to a more descriptive prompt, improving the performance and consistency of the image segmentation.
  • Removed deprecated configuration related to planning group setup, including the joints and base_link/base_frame parameters. All example configurations which still use these parameters now accept planning_group_name instead.
  • The OMPL library is no longer used in any functionality in MoveIt Pro, having been fully deprecated many releases ago and select algorithms re-implemented from first principles as discussed on the MoveIt Pro Core page.
  • MoveIt Pro nodes launched via ROS launch now use TTY terminals, preserving colored console output.

Bug Fixes​

  • Fixed LogMessage Behavior not setting a source name, which caused the UI to incorrectly parse messages containing periods or colons.
  • Fixed issue where the EditWaypoint behavior was failing to save new waypoints.
  • Fixed an issue in trajectory parameterization where the last point of the trajectory could be missed due to rounding errors in time step calculation, leading to "Trajectory end-point deviates too much from goal state" errors in MTC pipelines.
  • Fixed an issue in trajectory parameterization where trajectories with max velocity and max acceleration vectors that are empty, of non-equal size, or non-finite were not rejected, causing a segfault.

Breaking API Changes​

  • LoggerBase::publishFailureMessage, publishWarnMessage, and publishInfoMessage are no longer virtual. Tests mocking these methods should mock publishMessage(int32_t, const std::string&) instead.
  • The URLs for camera streams viewed in the Web UI now contain a qos_profile field which is set to sensor_data to match the QoS settings of MuJoCo. This should also be the default for most cameras but if you are unable to view a camera stream in the web UI, you can verify that the web subscription QoS matches the camera publisher QoS with ros2 topic info -v /my/camera/topic and adjust the publisher QoS settings accordingly.
  • All Web UI ROS topics previously published under the /studio_ui/ namespace have been renamed to use the /moveit_pro_ui/ prefix instead. For example, /studio_ui/store_joint_state β†’ /moveit_pro_ui/store_joint_state, /studio_ui/motion_ended β†’ /moveit_pro_ui/motion_ended, /studio_ui/move_joint β†’ /moveit_pro_ui/move_joint, /studio_ui/move_end_effector β†’ /moveit_pro_ui/move_end_effector, and /studio_ui/switch_primary_view β†’ /moveit_pro_ui/switch_primary_view. Any custom nodes subscribing or publishing to these topics must be updated accordingly.
  • The STUDIO variable prefixes were made into MOVEIT prefixes instead and are now found in a new ~/.config/moveit_pro_config.9.yaml.

Migration Guide​

Information on migrating a workspace from MoveIt Pro 8.x to 9.0 can be found in the 9.0 User Workspace Migration Guide.

warning

MoveIt Pro 9.0 encourages users to switch to the Joint Trajectory Admittance Controller (JTAC) for improved safety and performance when executing trajectories. The JTAC will respect the robot joint acceleration limits when it needs to stop a trajectory. Make sure to set the stop_accelerations parameter in the controller configuration high enough that the robot can decelerate and stop quickly enough to meet your application's safety requirements.

8.10.2

Β· One min read

Other Improvements​

  • Major performance improvements when running the UI.

Bug Fixes​

  • Fixed metadata in an Objective getting overridden when editing Subtrees.
  • Fixed the UI reporting an incorrect version upgrade when on the latest version of MoveIt Pro.
  • Fixed MoveIt Pro Cloud Instances sometimes being inaccessible.
  • Fixed the urdf_to_mjcf verb creating incorrect mjcf files due to similar mesh and geom names.

8.10.1

Β· One min read

Other Enhancements​

Improvements​

  • Running moveit_pro with the headless flag no longer checks for a running X server

Bug Fixes​

  • Fixed a bug where Multi-tip Cartesian Path IK would fail when the robot's joint model group had multiple disconnected branches.

8.10.0

Β· 3 min read

Major Features​

MoveIt Pro Core​

MoveIt Pro Core

A new sub-product is now available (additional costs apply) that exposes the core MoveIt Pro planners, solvers, and controllers with low-level C++ and Python APIs. It does not include Behavior Trees nor much of the rest of MoveIt Pro's capabilities. Learn more..

MoveIt Pro Core

Behavior Tree Editor Sync with IDE​

Now when you edit a Behavior Tree XML file in your IDE / text editor of choice, the changes are automatically refreshed in the MoveIt Pro UI.

Behavior Tree Editor Sync with IDE

URDF to MJCF Converter​

The urdf_to_mjcf makes it easier to convert between different robot model types - ROS' URDF and MuJoCo's MJCF format.

URDF to MJCF Converter

Enhanced Segment Anything Model Support​

The new Behavior GetMasks2DAutomask uses the SAM2 model to automatically segment images using a grid of points as prompts. You can see an example of how this is utilized in the factory_sim robot configuration package.

GetMasks2DAutomask

New Task Constructor ExecutionΒ Behavior​

A new Behavior ExecuteMTCSolution is available to execute a pre-computed MTC solution trajectory on a robot. This Behavior will replace the existing ExecuteMTCTask Behavior, as we advance towards a leaner execution pipeline.

ExecuteMTCSolution offers two controller interfaces: one for standard 'FollowJointTrajectory' controllers (e.g. ros2_control JTC), and another for the Joint Trajectory Admittance Controller (JTAC) included in MoveIt Pro. This allows users to easily execute MTC solutions with or without admittance control, and simplifies integration with other vendor controllers different than the ros2_control JTC, but offering the same FollowJointTrajectory action interface.

ExecuteMTCSolution Behavior

Other Enhancements​

Misc UI Changes​

  • Added new multi step modal for splitting workflows into distinct steps for the Custom Behavior Creation flow.

Reference Application Changes​

  • Franka Robotics dual arm model URDFs updated

Documentation Improvements​

  • Improvements to Configure ROS 2 DDS documentation updating our recommendation for "dual computer" configurations.

Other Improvements​

  • The TF2 utility tf2-tools is now automatically installed and available in the MoveIt Pro container.
  • Enables graph optimization for ONNX runtime, increasing ML inference performance
  • Model predictive control functionality now has sphere residuals and associated Behavior for the residual.
  • Updated NVIDIA driver version recommendations to >= 525 and < 580
  • The Behavior Tree Assistant LLM models have been upgraded to Claude Opus 4.5, Gemini 3 Pro, and GPT-5.1 Codex.
  • Various license check and security improvements.

Bug Fixes​

  • Fixed an issue where tight tolerances in ProRRT orientation constraints caused a misleading error message.
  • Joint-space planning Behaviors (such as PlanToJointGoal) will now properly report when goal states are outside of the given orientation tolerance.
  • Alert Sidebar logs each Objective run, even if there's no alerts
  • Waypoint manager node no longer fails to start when the waypoints YAML file is empty
  • Fixed a bug where the MTC Debugger in the UI will crash when opened.
  • Fixed a bug in the AddVirtualObjectToPlanningScene Behavior where virtual objects were incorrectly set to allow collisions with all other objects by default.

8.9.1

Β· One min read

Bug Fixes​

  • Fixed Behavior Tree not saving when only edges changed
  • Only show expand/collapse button on control nodes that have children
  • Added missing error message title for joint limits
  • Fixed toast messages briefly appearing over the Alert History sidebar

8.9.0

Β· 3 min read

Major Features​

Alert Message History Sidebar​

Added a toast message history list into a sidebar to view past errors, warnings, and info messages. Supports search and respects current log level settings.

Alert Message History Sidebar

Visualize TF Transform Frames​

Added a Visualize TF Objective to visualize any transform frame known to ROS' tf2 in the UI. This can be used in your Behavior Trees to help with debugging and visualization of coordinate frames.

Visualize TF Transform Frames

It requires core visualization Objectives to be enabled in the robot configuration package config.yaml file, for instance:

objectives:
...
objective_library_paths:
...
visualization_objectives:
package_name: "moveit_pro_objectives"
relative_path: "objectives/visualization"

Expand/Collapse Sequence Nodes​

Added a collapse/expand button for Sequence nodes, similar in functionality to Subtrees.

Expand/Collapse Sequence Nodes

Enhanced Behavior Tree Node Coloring​

Added a visual difference in Behavior Trees to distinguish between the currently editable Behavior Tree nodes and non-editable Subtree nodes.

Enhanced Behavior Tree Node Coloring

Prevent Accidental Keepout Zone Clicking​

Added a lock/unlock toggle next to the "Add Keepout Zone" button to disable unintentional user interaction with collision keepout zones.

Prevent Accidental Keepout Zone Clicking

Other Enhancements​

Misc UI Changes​

  • Added dropdown with multiselect for tip_links in PlanCartesianPath and other Behaviors requiring tip_links as input.
  • Updated the color scheme of nodes in Behavior Trees, and added a unified two-layer theming system with a scalable color palette and semantic tokens.

Behavior Changes​

  • The Joint Trajectory Admittance Controller (JTAC), and corresponding Behavior ExecuteTrajectoryWithAdmittance, can now be used without defining the admittance parameters. In this case, the controller will execute the trajectory without admittance control, making it equivalent to a standard Joint Trajectory Controller. This makes it easier to use the JTAC in applications that do not require admittance control.

  • The Path IK MTC Stage (e.g. SetupMTCPathIK) now generates partial trajectories, for visualization purposes, when the full path is not feasible. This allows users to see how far along the path the IK solver was able to compute valid waypoints before encountering an issue such as joint limits or collisions.

  • Fixed Tutorial 1 to use the updated name ML Segment Image objective and image.

Other Improvements​

  • The pose_jog configuration file (pose_jog.yaml) is now required.

Bug Fixes​

  • Fixed a bug in the Joint Trajectory Admittance Controller (JTAC) where joint angles in trajectory messages were assumed to be in the same order as the controller's internal joint order. The controller now correctly respects the joint_names field in the JointTrajectory message and reorders joint values accordingly.
  • RecordJointTrajectory improved to better handle multithreaded service callbacks and creation to prevent race conditions.
  • Fixed issue causing an objective tree to be saved multiple times when opened without applying modifications.

8.8.1

Β· One min read

Other Improvements​

  • Added the Convert CollisionObject To GraspableObject Objective to the list of core MoveIt Pro Objectives.

Bug Fixes​

  • If we run moveit_pro configure and then moveit_pro build during a first-time install, we notify the user that workspace has no packages and exit.
  • Removed unrelated objectives instantiation errors when running an objective.
  • Fixes behavior GetGraspableObjectFromMasks3D where it would fail to generate a graspable object from a valid point cloud by selecting pcl clustering method for unorganized point clouds.
  • Fixed a bug when the robot fault status changed the protective stop modal rendering would crash the UI

8.8.0

Β· 7 min read

Major Features​

Multi-tip Joint Trajectory Admittance Controller​

Added support for multi-tip robots in the JTAC. This allows users to control robots with multiple end-effectors (tips) with different admittance properties for each tip / chain. This feature is only available when interfacing directly with the JTAC via ROS2 interfaces, and is not yet supported in MoveIt Pro Behaviors or Objectives.

Whole body admittance with multiple tips

Easier Robot Setup Command Line Interface (CLI) Tools​

Create Robot Configuration Packages via CLI Command​

The moveit_pro new config command allows you to quickly create robot configuration packages from a template. This simplifies the process of setting up a new robot, automatically setting up the proper file structure and dependencies.

moveit_pro new config

Create Active Collision Matrix via CLI Command​

The moveit_pro update_acm command generates Allowed Collision Matrix (ACM) entries for SRDF files. This tool analyzes robot geometry and kinematics to identify link pairs that should have collision checking disabled. Can be run from inside the MoveIt Pro dev container or from the host, and works with both URDF and xacro files mounted in the user workspace.

moveit_pro update_acm

Other Enhancements​

Misc UI Changes​

  • Joint jog teleoperation speed scaling now applies consistently to both joint teleoperation modes: joint velocity (+/- buttons) and joint position (click and drag slider).
  • Add notices to deprecated Behaviors indicating they will be removed in a future release.
  • Behavior deprecation warnings are now in the description popup.
  • Port text boxes now wrap to multi-line if necessary.
  • Parent Objective is now listed first in the Blackboard.
  • All toast message types are enabled by default, including INFO.

New Behaviors​

  • Added the IsObjectAttachedTo Behavior that returns success if the given collision object name is attached to the given link.
  • Added the SetupMTCConnectWithProRRT Behavior that sets up a MoveIt Task Constructor (MTC) Connect 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. This Behavior exposes ProRRT-specific planning parameters for fine-tuned control and is intended to replace the less transparent SetupMTCConnectWithTrajectory Behavior.
  • Added the RemovePointsInBox Behavior to complement CropPointsInBox.
  • Added the ResetMujocoKeyframe Behavior that calls a service via the MuJoCo simulation API to reset the MuJoCo simulation state to a named keyframe. The keyframe must be defined in the MuJoCo scene model. This Behavior is available in the moveit_studio::behaviors::MujocoBehaviorsLoader plugin.
  • Added the GetOrientedBoundingBoxFromPointCloud Behavior that finds the oriented bounding box (OBB) of a point cloud. This can be used for point cloud processing tasks, such as localizing slice planes to the point cloud for GetContourFromPointCloudSlice, or for creating a bounding CollisionObject with CreateSolidPrimitiveBox and CreateCollisionObjectFromSolidPrimitive.
  • Added the StringToInt Behavior, which converts a string to an int.

Behavior Changes​

  • Path Inverse Kinematics Behaviors (PlanCartesianPath and SetupMTCPathIK) now expose a max_optimizer_iterations parameter to control the maximum number of internal optimizer iterations performed at each path waypoint. A larger number of iterations can improve the accuracy of the solution and the nullspace response, at the cost of increased computation time.
  • Added a subtree port require_user_approval to the core Move to Pose Objective. Approval is enabled by default; set require_user_approval="false" to bypass the approval step.
  • The ServoTowardsPose and TeleoperateTwist Behavior have been deprecated in favor of PoseJog.
  • The GetGraspAndTwistSubframes and GetMoveAlongArcSubframes Behaviors have been deprecated for being too specialized and because similar functionality can be achieved with more granular Pose-manipulation Behaviors.
  • The InitializeMotionConstraints and AppendOrientationConstraint Behaviors have been deprecated in favor of orientation constraint ports built into planning behaviors.
  • The WriteCalibratedPoseToYaml Behavior has been deprecated in favor of SaveToYaml converter Behaviors.
  • The GenerateObjectsInBox Behavior has been deprecated as we wind down support for the GraspableObject type. Objects can be created directly in the simulated environment as needed.
  • The AddSubframeToObject Behavior has been deprecated as we wind down support for the GraspableObject type. Similar functionality can be achieved with PoseStamped-related Behaviors.
  • Added a subtree port mesh_name to the VisualizeMesh behavior, so we can reuse the same mesh by giving different names.

Reference Application Changes​

  • Improved the dual arm Franka example robot config to include a table and new pick and place examples
  • Renamed the single arm Franka example to kitchen_sim

Documentation Improvements​

  • Added MoveIt Task Constructor (MTC) concept page to the Concepts section, providing comprehensive documentation on MTC's core concepts, planning stages, integration with MoveIt Pro, and best practices for complex manipulation tasks
  • Added AI-powered chat support to documentation pages using InKeep, providing instant assistance and answers about MoveIt Pro directly within the docs interface
  • Added Long Term Support (LTS) release process documentation to Deployment, Commissioning, and Fleet Management page, clarifying release cycles and support timelines for Ultimate customers.
  • Added comprehensive how-to guide for vector manipulation in Behavior Trees, covering all vector Behaviors: ResetVector, GetElementOfVector, GetSizeOfVector, InsertInVector, PushBackVector, RemoveFromVector, and ReplaceInVector
  • Added how-to guide for Setting Up Third Party Simulators covering integration approaches for simulators like Isaac Sim and Gazebo
  • Added how-to guide for Behavior Tree Editor Keyboard Shortcuts covering all available keyboard shortcuts for efficient Behavior Tree editing, including platform-specific commands for Windows/Linux vs macOS
  • Added troubleshooting guide entry for oversaturated or blown out robot models in MuJoCo simulations, explaining how lights in Collada files can cause visual issues and linking to MuJoCo lighting documentation
  • Updated tool changing and planning scene documentation to reference modern AttachURDF/DetachURDF behaviors instead of deprecated tool-specific behaviors

Other Improvements​

  • Made CLI install prompts consistently bold for better visibility and user experience.
  • Blackboard variables containing large vectors (more than 20 elements) won't be serialized anymore to avoid performance issues in the Blackboard Publisher. These will show up as "too many elements to serialize" in the JSON output.
  • Users no longer need to install CUDA packages in workspace Dockerfiles as a base image with CUDA is now automatically selected if an Nvidia GPU is detected.

Bug Fixes​

  • Fixes issue where GenerateCuboidGraspPoses was using Y parameter as X parameter.
  • Fixed an issue where MergePointClouds could miss points under certain conditions.
  • Fixes issue where setting CYCLONEDDS_URI to a value that is not a path on the host computer would crash the application with an unhelpful error message.
  • Fixes disappearing tool when attached to the robot.

Migration Notes​

  • The JTAC sensor_frame and ee_frame parameters have been deprecated in favor of sensor_frames and ee_frames, which accept a list of strings to support multi-tip robots. The old parameters will still work but will be removed in a future release. If you have a Joint Trajectory Admittance Controller configured in your ros2_control.yaml file, please update it to use the new parameters. Here's an example of the new configuration, for a robot with a single tip:

    sensor_frames: ["sensor_frame"]
    ee_frames: ["ee_frame"]
  • The ~/zero_fts service name exposed by the JTAC to tare the force sensor has been updated to ~/zero_fts/sensor_name, where sensor_name is the name of each sensor as specified in the sensor_frames parameter. This change allows for multiple force sensors to be used with the JTAC. If you have any scripts or Behaviors that call this service, please update them accordingly.

  • The SetupMTCConnectWithTrajectory Behavior has been deprecated in favor of the new SetupMTCConnectWithProRRT Behavior, which provides more direct access to ProRRT-specific planning parameters. Please switch to using the SetupMTCConnectWithProRRT Behavior in your applications. The deprecated Behavior will still work but will be removed in a future release.

8.7.1

Β· One min read

Bug Fixes​

  • Fixed a python ImportError for the name Any that shows when installing MoveIt Pro.

8.7.0

Β· 7 min read

Major Features​

LLM Behavior Tree Builder​

We’re excited to announce a new and easier way to build Behavior Trees in MoveIt Pro using Large Language Models. A built-in text prompt is now directly in the UI, that instantly generates complete Behavior Trees. This dramatically accelerates the creation of Objectives, reducing setup time and making it easier to prototype and deploy complex robotic workflows.

LLM Behavior Tree Builder

Time scaling for Joint Trajectory Admittance Controller​

The Joint Trajectory Admittance Controller now supports time scaling, allowing users to adjust the speed of trajectory execution dynamically. This feature can be used to slow down or speed up the execution of trajectories during execution, even pausing it completely if needed. The time scaling is controlled using the joint_trajectory_admittance_controller node parameter named time_scale_percentage, which accepts values between 0.0 and 100.0, where 100.0 means full speed (no time scaling), and 0.0 means stop. Values in between will slow down the trajectory execution proportionally.

Time scaling for Joint Trajectory Admittance Controller

Use Path Inverse Kinematics in MTC​

Added a new behavior SetupMTCPathIK that allows users to set up a MoveIt Task Constructor (MTC) Path IK stage, which computes a joint-space trajectory to follow a specified path in Cartesian space. This stage can be used to perform Cartesian motions along a path defined by a vector of PoseStamped messages, and combine it with other MTC stages for more complex behaviors.

Use Path Inverse Kinematics in MTC

Ability to resize the sidebar and the view panes​

You can now manually adjust the width and height of the various panes and sidebars in MoveIt Pro, allowing you to better fit your camera feed dimenetions and other data sources on the screen.

Ability to resize the sidebar and the view panes

Added recursive delete option for Behavior Tree nodes and their children​

Annoyed at having to tediously delete every node in your Behavior Tree? Now when you delete a parent node, all its children are automatically deleted also (with the exception of Subtrees).

Added recursive delete option for Behavior Tree nodes and their children

Added visual highlighting for ports with matching values in the Behavior Tree editor​

Wanted to better see how your port variables and data flows through your Behavior Tree? Automatic port highlighting makes this easier to see visually!

Added visual highlighting for ports with matching values in the Behavior Tree editor

Bin Picking Reference Application​

Two new example pick and place Objectives have been added to the factory_sim robot configs, as easy to use reference applications. They are called Pick Brackets from Left Bin and Pick and Place Brackets from Left Bin. These Objectives demonstrate basic examples of picking automotive brackets from a bin, placing them precisely on a jig, waiting until a task is completed, and then picking and dropping them in another bin.

Bin Picking Reference Application

Other Enhancements​

UI Changes​

  • Invalid Behavior Tree XML in Objectives will now show the reason they are invalid while being edited in the UI.
  • Added file_path information to Edit Objective form
  • Added license information to About information modal
  • 3D Visualization: Added "Gridlines" toggle to the View menu, allowing users to control gridlines visibility in the 3D visualization. This gives users full control over gridlines display regardless of Nav2 occupancy grid status.

New Behaviors​

  • SetupMTCPathIK: Sets up a MoveIt Task Constructor (MTC) Path IK stage to compute a joint-space trajectory to follow a specified path in Cartesian space. This is the equivalent of PlanCartesianPath for MTC tasks.
  • Added a core SubTree called Track Moving Frame that can be used in Objectives to track a moving frame in Cartesian space. This can be helpful for applications like data collection (e.g. tracking a remote controller pose) or visual servoing. See our Meta Quest Teleoperation Hardware Guide.
  • ConvertTransformStampedToPoseStamped: Converts a TransformStamped message into a PoseStamped message. Handy for the GetLatestTransform Behavior.
  • CreateSolidPrimitiveBox: Creates a box-shaped shape_msgs::msg::SolidPrimitive message.
  • CreateCollisionObjectFromSolidPrimitive: Creates a moveit_msgs::msg::CollisionObject from a shape_msgs::msg::SolidPrimitive, pose, and object ID.

Behavior Changes​

  • Added a service called /verify_xml that allows verifying the content of a Behavior Tree XML file against your currently-loaded Behaviors and Objectives.
  • Moved the BreakpointSubscriber behavior from the "Control Flow" category to the "User Input" category to better reflect its purpose as a user interaction tool for controlling breakpoint flow during Objective execution.
  • Change segfault output of ML behaviors to use a less noisy toast message and output exception to console.

Reference Application Changes​

  • Added a "Stack Blocks with ICP" example objective to show how the RegisterPointClouds behavior can be used and what transform steps are required.
  • Added example of planning Cartesian paths on curves

Documentation Improvements​

  • Added comprehensive Doxygen documentation for the PlanningSceneMonitor class, providing detailed technical reference for developers integrating with MoveIt Pro's planning scene monitoring capabilities.
  • Added Hardware Guide for How to set up the Meta Quest for Teleop
  • Added Hardware Guide for How to set up FANUC CRX hardware using new moveit_pro_fanuc_config workspace
  • Improved Hardware Guide for How to set up UR hardware using new moveit_pro_ur_config workspace
  • Expanded and refactored the Teleoperation Overview page to provide comprehensive coverage of all teleoperation methods, including UI-based teleop (Joint Jog, Pose Jog, Interactive Markers, Waypoints) and hardware-based teleop (game controllers, Haply haptic devices, Meta Quest VR).
  • Added extensive detail to the Creating a Custom Robot Configuration How-To on customizing teleoperation for a robot.
  • Expanded the Planning Scene concept page to add information about the ACM and joint groups.
  • The Visual Servoing documentation has been modernized to use the PoseJog Behavior instead of the deprecated ServoTowardsPose, featuring the space_satellite_sim configuration with a real-world satellite grappling example.
  • Adds reference to "Stack Blocks with ICP" example objective to Perception & ML tutorial.
  • Added section to Tutorial 3 documenting the LLM-powered Behavior Tree Builder feature, including setup instructions for API keys, usage examples, and best practices for testing and refining generated Objectives.

Other Improvements​

  • When editing an objective, nodes that are part of a subtree can now be copied and pasted.
  • Old dangling docker images from running moveit_pro dev are now removed automatically, saving disk space.

Bug Fixes​

  • Addressed a performance issue where the blackboard pane in the UI would re-render even when the blackboard did not change.
  • Fixed an issue where commands in the MoveIt Pro shell do not wrap correctly.
  • Improved the performance of the Visualization pane when multiple collision objects and/or attached collision objects are present.
  • Fixes an issue where newley created objectives are always added to a directory called objectives/ as opposed to respecting the relative_path field in the objective_library_paths section of a config's config.yaml file.
  • When there is an error in the creation of a Behavior Tree, the previous tree will not be displayed.

Migration Guide​

  • The ServoTowardsPose Behavior has been marked as deprecated and will be fully removed in a future release. Users should migrate to the PoseJog Behavior, which provides safer Cartesian motion with collision avoidance and singularity handling.
  • The Behavior SetupMTCMoveToNamedState has been deprecated and will be removed in a future release. Please use RetrieveWaypoint and SetupMTCMoveToJointState to achieve the same functionality.