8.7.0
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.
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.
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.
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.
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 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!
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.
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 ofPlanCartesianPath
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 aTransformStamped
message into aPoseStamped
message. Handy for theGetLatestTransform
Behavior.CreateSolidPrimitiveBox
: Creates a box-shapedshape_msgs::msg::SolidPrimitive
message.CreateCollisionObjectFromSolidPrimitive
: Creates amoveit_msgs::msg::CollisionObject
from ashape_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 deprecatedServoTowardsPose
, featuring thespace_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 therelative_path
field in theobjective_library_paths
section of a config'sconfig.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 thePoseJog
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 useRetrieveWaypoint
andSetupMTCMoveToJointState
to achieve the same functionality.