8.7.1
Bug Fixes
- Fixed a python
ImportErrorfor the nameAnythat shows when installing MoveIt Pro.
ImportError for the name Any that shows when installing MoveIt Pro.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.

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.

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.

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.

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).

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

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.

file_path information to Edit Objective formSetupMTCPathIK: 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.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./verify_xml that allows verifying the content of a Behavior Tree XML file against your currently-loaded Behaviors and Objectives.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.RegisterPointClouds Behavior can be used and what transform steps are required.moveit_pro_fanuc_config workspacemoveit_pro_ur_config workspacePoseJog Behavior instead of the deprecated ServoTowardsPose, featuring the space_satellite_sim configuration with a real-world satellite grappling example.moveit_pro dev are now removed automatically, saving disk space.objectives/ as opposed to respecting the relative_path field in the objective_library_paths section of a config's config.yaml file.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.SetupMTCMoveToNamedState has been deprecated and will be removed in a future release.
Please use RetrieveWaypoint and SetupMTCMoveToJointState to achieve the same functionality.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.