Skip to main content

8.4.0

· 7 min read

Major Features

A ton of exciting new UI features are included in this release!

Support for multiple planning groups in IMarker Teleoperation

The Interactive Marker (IMarker) teleoperation panel now supports multiple planning groups and end effectors, allowing users to select which planning group to teleoperate.

Switching between planning groups in IMarker

Disable Subsections of your Behavior Tree

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.

Disable Subsections of your Behavior Tree

View All Behavior Ports

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!

View All Behavior Ports

Use Quaternions Easier with RPY

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.

Use Quaternions Easier with RPY

Inline Documentation for Subtree Ports

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.

Inline Documentation for Subtree Ports

Show/Hide URDFs and Point Clouds

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

Show/Hide URDFs and Point Clouds

Edit Behavior Tree Comments in UI

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

Edit Behavior Tree Comments in UI

Enhancements

  • When launching the example workspace after an upgrade, you will now be prompted if you want to upgrade the example workspace.

Other UI Changes

  • Added a pin button to keep the objectives sidebar open during objective execution.
  • The Expand/Collapse All button in the behavior tree sidebar now automatically hides during search operations and reappears when the search is cleared, providing a cleaner and more focused search experience.
  • Increases clickable area of sidebar buttons
  • Points in a visualized point cloud will be slightly larger now, making the point cloud more visible.
  • Add UID display to node names in Behavior Tree status view for better correlation with Blackboard viewer
  • Add clearer warning to inform users they must build after creating a new Behavior

Reference Application Changes

  • New example configs: Franka FR3 Single Arm and Dual Arm (formerly the "Panda" robot)
  • Adds "ML Auto Grasp Object from Clicked Point" example Objective for using machine learning grasp inference with click based image and point cloud segmentation.

New Behaviors

  • Added 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.
  • Added ReversePoseStampedVector to reverse the direction of a vector of poses, such as a Cartesian path.
  • Added CropPosesInBox to filter a vector of poses, such as a Cartesian path, based on a bounding box.

Behavior Changes

  • Enhanced 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.
  • Removed non-functional GetMasks2DAction, ShapeCompletionAction, and CalibratePoseAction behaviors.
  • The 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.
  • The 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.
  • Adds a publisher timeout parameter to the GetImage behavior to configure how long to wait for an image publisher to advertise.
  • SaveToYaml behaviors now have an optional overwrite port that users can set to false in order to append to existing YAML files. Previously, these behaviors would always overwrite the file.
  • The Joint Trajectory Admittance Controller (JTAC) can now control chains that don't start at the URDF root. This required adding a new 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.
  • The JTAC can now control non-serial chains when admittance is disabled, such as 2 robot arms mounted to a mobile base.

Documentation Improvements

  • Added How-To guide on using GetGraspPoseFromPointCloud to automatically infer grasp poses using machine learning from point clouds.
  • Expanded "Runtime SDK & Extensions" tutorial and moved it to Tutorial 2.
  • Expanded "Motion Planning" tutorial with more detail including table on all types of planners and solvers
  • Added heartbeat info to SDK tutorial
  • Added documentation for moveit_pro_ci and moveit_pro_lint
  • Update mujoco migration guide for mobile base
  • Reorder and improve 'Tool changing' docs to make it more clear how it works and how it can be used for vacuum grippers

Other Improvements

  • Hardware acceleration for Radeon GPUs is enabled by default. The digital twin simulation engine will use discrete graphics cards (NVIDIA or AMD) when available, otherwise all computation is done on the CPU.

Bug Fixes

  • Fixed a number of bugs relating to specifying objective parameters in the UI. Reminder: LoadObjectiveParameters is deprecated and is planned for removal in 9.0.
  • SwitchController should no longer time out on service discovery on slower machines.
  • It is no longer possible to edit built-in MoveIt Pro Objectives that core functionality depends upon. If you would like to create your own version, duplicate the objective.
  • Improved performance of the SetAdmittanceParameters and AppendOrientationConstraint behaviors' interactive parameter editors in the UI.
  • Fixed bug where SaveToYaml behaviors overwrite YAML files instead of appending to them when a namespace is specified.
  • Fixed a UI crash that could occur if a custom C++ behavior included invalid HTML in its description field.
  • Fixes deadlock seen with GetImage by allowing halting.
  • Failure to look up the Objectives directory of your config package while creating an Objective now contains more useful information.
  • Fixed a bug related to undoing and redoing changes to objectives in the Build tab while also adding nodes via the add button.

Migration Guide

  • The Joint Trajectory Admittance Controller (JTAC) config now accepts a 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.
  • Reminder: LoadObjectiveParameters is deprecated and is planned for removal in 9.0.