8.4.0
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.
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.
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!
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.
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.
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.
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.
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
, andCalibratePoseAction
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 calledcheck_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. Thejoints
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
andAppendOrientationConstraint
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. Thejoints
andbase_frame
parameters are now deprecated. If yourros2_control.yaml
file defines a Joint Trajectory Admittance Controller, please update it to include theplanning_group_name
parameter. The deprecatedjoints
andbase_link
parameters will be removed in the next major release. - Reminder:
LoadObjectiveParameters
is deprecated and is planned for removal in 9.0.