8.1.0
In this release we focused on stability fixes and burning down a lot of "tech debt."
Major Features
Full Screen View Pane
A new button was added that fullscreens each view pane to allow zooming in.
Camera Calibration Procedure
New Behaviors, Objectives, and how-to guide were added to support camera pose calibration.
Model Predictive Control (MPC) Now Available
Your robots can now plan motions by simulating how they’d move in the real world—before actually moving.
This is thanks to a new predictive control feature powered by a high-fidelity physics engine.
The result? Smarter, safer, and more adaptive robot behavior in real time.
A new base MoveIt Pro Behavior class named MPCBehaviorBase
was added to provide the necessary tools and Behaviors to implement MPC in your applications.
The added functionality is demonstrated in a new behavior called MPCPoseTracking
, which can be used to track a moving pose with MPC.
Enhancements
UI Changes
- Attempting to save a planning scene to an existing filename now prompts the user to overwrite, instead of overwriting silently.
- The "Suggested Nodes" menu in the builder has been removed due to lack of use, to conserve screen space.
New Behaviors
- Add
GenerateVacuumGraspPoses
Behavior which will replaceSetupMTCGenerateVacuumGrasps
as an alternative that no longer depends on the deprecatedLoadObjectiveParameters
Behavior. - Add
GenerateCuboidGraspPoses
Behavior which will replaceSetupMTCGenerateCuboidGrasps
as an alternative that no longer depends on the deprecatedLoadObjectiveParameters
Behavior. - Add
AveragePoseStampedVector
Behavior to average a vector of PoseStamped. - Add
CalibrateCameraPose
to calibrate a camera optical pose using AprilTag poses of a calibration tool held by the robot end effector. - Add
SavePoseForUrdf
to save a PoseStamped in xyz rpy URDF format to file. - Add
MPCPoseTracking
for tracking a moving pose with MPC.
Deprecated Behaviors
LoadObjectiveParameters
has been deprecated.SetupMTCGenerateVacuumGrasps
has been deprecated in favor of the newGenerateVacuumGraspPoses
Behavior.SetupMTCGenerateCuboidGrasps
has been deprecated in favor of the newGenerateCuboidGraspPoses
Behavior.SetupMTCApproachGrasp
andSetupMTCRetractFromGrasp
have been deprecated in favor ofSetupMTCMoveAlongFrameAxis
.
Behavior Changes
- The
WaitForUserTrajectoryApproval
Behavior now includes a port to specify a list of link names to draw their Cartesian path in the preview. This list defaults to end effector grasp_links in our example configs, but it supports any link. - The
SwitchController
Behavior now has anautomatic_deactivation
port (default:true
) that will automatically deactivate any active controllers that are in conflict with the controllers being activated.
Documentation Improvements
-
New Tutorial: Developer Platform Usage
-
New Guide: Basic Troubleshooting
-
New Guide: Interacting with the Planning Scene
-
Errors logged during an objective executed through the DoObjectiveSequence action are collected and returned in the
error_message
of the result if the objective fails.
Bug Fixes
- Fixed an issue where the teleoperation sidebar would not automatically appear when using
RequestTeleoperation
inside objectives other thanTeleoperate
. - Fixed a bug where
VisualizeMesh
could cause the entire robot visualization to reset briefly. - Added a visual spinner when cloning a user workspace to indicate the launcher has not frozen.
- Added "Open Gripper" and "Close Gripper" stub objectives to the core MoveIt Pro objective library to fix Teleoperate not working out of the box for custom robots that do not have grippers.
- In an objective's xml description is incorrect and there does not exist a
BehaviorTree
element with the same ID as what is set in themain_tree_to_execute
root attribute, it will appear in the builder view under the "Parsing Error" category. Previously, such objectives would not appear at all. - Fixed a bug where the
PoseJog
marker would not be removed when thePoseJog
Behavior was stopped. - Fixed a bug causing the Reset Marker not to work the second time it is pressed.
- Fixed a bug where the
allowed_collision_links
in theAttachTool
Behavior were not being set. - Fixed an issue where the
initial_teleop_mode
port in theRequestTeleoperation
subtree was not being respected by the UI. - Fix a bug where the default
tool_pose
port of theAddToolToScene
Behavior had a JSON string value instead of a blackboard value.