7.0.0
· 6 min read
Major Features
- Add trajectory stitching in the Joint Trajectory Admittance Controller. This enables the JTAC to stitch a new trajectory to a currently executing trajectory without stopping.
- This version includes a built-in pose inverse kinematics solver (
PoseIK
) that is 10x faster than existing open-source solvers. Check out the corresponding how-to guide. The example configs have been updated to use this new IK solver. - Introduced a new sidebar that unifies the look and feel of the Build and Run tabs and allows leaving the sidebar open while the robot is executing a tree, for quicker multi-tasking while developing new objectives.
Other changes
- Pro-RRT now supports robots with continuous joints, to move along the shortest direction to the target angles.
- Pro-RRT now supports 2 DOF orientation constraints, e.g. keep the tool with a bound angle with respect to the horizontal.
- Planning speed-up:
- The default port values in
PlanCartesianPath
andValidateTrajectory
have been updated for faster planning out of the box. - MTC Cartesian planning Behaviors (e.g.
SetupMTCMoveAlongFrameAxis
) have been optimized for faster planning. - The
RobotModel
is now part ofBehaviorContext
so that it can be used right away from Behaviors without the cost of loading it.
- The default port values in
New Behaviors
AddToolToScene
andRemoveToolFromScene
are new Behaviors that can be used to insert or remove a 'tool' into the Planning Scene. Please refer to the Tool Changing guide for more information.- The
GeneratePointToPointTrajectory
behavior can be used to generate a straight lineJointTrajectory
between two joint space waypoints defined byRobotJointState
ROS messages. The waypoints may have non-zero velocities if desired. - The
GetTrajectoryStateAtTime
behavior can be used to get the joint state of a robot at a specified time in aJointTrajectory
.
Behavior Changes
AttachTool
now requires that the tool exists in the Planning Scene before it can be attached (via the newAddToolToScene
Behavior).AttachTool
does not take the tool URDF and relative pose anymore, it just takes the parent link to attach to.DetachTool
will insert the detached tool back into the Planning Scene after it is detached, at the detachment pose.CreateJointState
now returns amoveit_studio_agent_msgs::msg::RobotJointState
as output, to make it consistent and compatible with other Behaviors.- Removed redundant
ForEachCollisionObject
,ForEachGraspableObject
,ForEachObjectSubframe
,ForEachString
,ForEachPoseStamped
,ForEachMask2D
, andForEachMask3D
Behaviors. Use baseForEach
instead. - Re-retrieve input port values in
PublishVelocityForceCommand
while it is running so updates will be registered in the command. - Behaviors can now be marked as deprecated by adding a metadata key-value pair with key
deprecated
and a string with any detail you'd like to add. When deprecated behaviors are loaded during an objective run, a warning will be logged.
UI Changes
- Changed Behavior Tree nodes to show 5 ports before the "Show more" button is shown, instead of 3.
- Add ability to visualize TRIANGLE_LIST markers
- Add ability to visualize mesh CollisionObjects as TRIANGLE_LIST markers
- Add popovers and ability to copy text in port type labels.
- Make the "Select Joint Groups" in new waypoint form secondary.
- Unified terminology in UI to use "Duplicate" instead of "Clone"
- Update notification toasts to use subject headers and add a "Clear All" button
- Auto-focus the objective search input when opening the slide out objective panel
- Add a "Planning Group" label in jog settings to clarify the purpose of the setting.
- Reorder ports to show them in the sorted order "IN", "OUT", "INOUT" and alphabetically for ports with the same direction.
- Adds visualization of the Global Costmap via Nav2 to the Visualization Pane of Pro, which dynamically updates via the
global_costmap/costmap_updates
topic. - Adds visualization of the Local Costmap via Nav2 to the Visualization Pane of Pro, which dynamically updates via the
local_costmap/costmap_updates
topic. - Subtree port remapping no longer allows the creation of input and output ports, as all subtree ports are actually in/out.
Documentation Improvements
- The Tool Changing guide has been updated to reflect the changes in the tool-changing Behaviors.
- The AprilTag guide has been updated to for the
lab_sim
world. - The workflow for Running MoveIt Pro without the CLI has been released.
- Add the MoveIt Pro ML on Jetson Devices guide for enabling the GPU on Jetson devices while running MoveIt Pro.
- Print MoveIt Pro header on first run or configure.
- A guide has been added on how to setup a MoveIt Pro config to use Nav2.
Other Improvements
- Deprecate the subtree_only flag for runnable flag for positive assertions and improved clarity.
- Running
moveit_pro down --rmi
will delete Docker images that MoveIt Pro has built.
Bug Fixes
- Fixed a bug where nodes with short node names but long port names could lay out incorrectly in the Behavior Tree Editor.
- CreateJointState bugfix: avoid segfaulting if users don't pass in effort values.
- Fixed a bug with
MTCMoveAlongFrameAxis
handling ofmin_distance
andmax_distance
when they are equal. - Fixed an issue where certain prompts in the UI might not disappear correctly when a user cancels a running objective during execution.
- Fixed a bug where terminals were not properly colorized inside
moveit_pro shell
. - Change SaveFromYaml and LoadFromYaml behaviors to save/load directly in the active configuration's source objectives folder instead of the temporary .config folder.
- Fixed a bug where the Precondition Behavior's default value for the
else
port is different between the objective builder and the objective runner. - Uninstalling MoveIt Pro will now delete its Docker images again.
- Fixed a bug where the application would crash if a robot configuration contained an empty
objectives
directory. - Fixed an issue where the UI detecting new ROS image topics could erroneously reset the layout in the run tab.
- Fixed an issue where the "Run" tab could consume much more CPU than intended.
Migration Guide
- Existing uses of
CreateJointState
may have to be adapted to the new type it returns:moveit_studio_agent_msgs::msg::RobotJointState
. - Use
ForEach
in place of deprecatedForEach[Type]
behaviors. - The
docker-compose.yaml
file found in the user workspace is now outddated and can be safely deleted. For configuring the workspace's base image further, please look at the Example Workspace'sdocker-compose.yaml
. - Gazebo Configuration Guide is deprecated. We recommend you switch to the new simulation engine.