Skip to main content

8.1.0

· 4 min read

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.

Fullscreen button

Camera Calibration Procedure

New Behaviors, Objectives, and how-to guide were added to support camera pose calibration.

Calibrating a camera with a Kinova arm in the space_satellite_sim example config.

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 replace SetupMTCGenerateVacuumGrasps as an alternative that no longer depends on the deprecated LoadObjectiveParameters Behavior.
  • Add GenerateCuboidGraspPoses Behavior which will replace SetupMTCGenerateCuboidGrasps as an alternative that no longer depends on the deprecated LoadObjectiveParameters 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 new GenerateVacuumGraspPoses Behavior.
  • SetupMTCGenerateCuboidGrasps has been deprecated in favor of the new GenerateCuboidGraspPoses Behavior.
  • SetupMTCApproachGrasp and SetupMTCRetractFromGrasp have been deprecated in favor of SetupMTCMoveAlongFrameAxis.

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 an automatic_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 than Teleoperate.
  • 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 the main_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 the PoseJog 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 the AttachTool Behavior were not being set.
  • Fixed an issue where the initial_teleop_mode port in the RequestTeleoperation subtree was not being respected by the UI.
  • Fix a bug where the default tool_pose port of the AddToolToScene Behavior had a JSON string value instead of a blackboard value.