Skip to main content

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.