Skip to main content

8.7.1

· One min read

Bug Fixes

  • Fixed a python ImportError for the name Any that shows when installing MoveIt Pro.

8.8.0

· 7 min read

Major Features

Multi-tip Joint Trajectory Admittance Controller

Added support for multi-tip robots in the JTAC. This allows users to control robots with multiple end-effectors (tips) with different admittance properties for each tip / chain. This feature is only available when interfacing directly with the JTAC via ROS2 interfaces, and is not yet supported in MoveIt Pro Behaviors or Objectives.

Whole body admittance with multiple tips

Easier Robot Setup Command Line Interface (CLI) Tools

Create Robot Configuration Packages via CLI Command

The moveit_pro new config command allows you to quickly create robot configuration packages from a template. This simplifies the process of setting up a new robot, automatically setting up the proper file structure and dependencies.

moveit_pro new config

Create Active Collision Matrix via CLI Command

The moveit_pro update_acm command generates Allowed Collision Matrix (ACM) entries for SRDF files. This tool analyzes robot geometry and kinematics to identify link pairs that should have collision checking disabled. Can be run from inside the MoveIt Pro dev container or from the host, and works with both URDF and xacro files mounted in the user workspace.

moveit_pro update_acm

Other Enhancements

Misc UI Changes

  • Joint jog teleoperation speed scaling now applies consistently to both joint teleoperation modes: joint velocity (+/- buttons) and joint position (click and drag slider).
  • Add notices to deprecated Behaviors indicating they will be removed in a future release.
  • Behavior deprecation warnings are now in the description popup.
  • Port text boxes now wrap to multi-line if necessary.
  • Parent Objective is now listed first in the Blackboard.
  • All toast message types are enabled by default, including INFO.

New Behaviors

  • Added the IsObjectAttachedTo Behavior that returns success if the given collision object name is attached to the given link.
  • Added the SetupMTCConnectWithProRRT Behavior that sets up a MoveIt Task Constructor (MTC) Connect stage to connect the end state of the previous stage with the start state of the next stage using a freespace trajectory with the ProRRT planner. This Behavior exposes ProRRT-specific planning parameters for fine-tuned control and is intended to replace the less transparent SetupMTCConnectWithTrajectory Behavior.
  • Added the RemovePointsInBox Behavior to complement CropPointsInBox.
  • Added the ResetMujocoKeyframe Behavior that calls a service via the MuJoCo simulation API to reset the MuJoCo simulation state to a named keyframe. The keyframe must be defined in the MuJoCo scene model. This Behavior is available in the moveit_studio::behaviors::MujocoBehaviorsLoader plugin.
  • Added the GetOrientedBoundingBoxFromPointCloud Behavior that finds the oriented bounding box (OBB) of a point cloud. This can be used for point cloud processing tasks, such as localizing slice planes to the point cloud for GetContourFromPointCloudSlice, or for creating a bounding CollisionObject with CreateSolidPrimitiveBox and CreateCollisionObjectFromSolidPrimitive.
  • Added the StringToInt Behavior, which converts a string to an int.

Behavior Changes

  • Path Inverse Kinematics Behaviors (PlanCartesianPath and SetupMTCPathIK) now expose a max_optimizer_iterations parameter to control the maximum number of internal optimizer iterations performed at each path waypoint. A larger number of iterations can improve the accuracy of the solution and the nullspace response, at the cost of increased computation time.
  • Added a subtree port require_user_approval to the core Move to Pose Objective. Approval is enabled by default; set require_user_approval="false" to bypass the approval step.
  • The ServoTowardsPose and TeleoperateTwist Behavior have been deprecated in favor of PoseJog.
  • The GetGraspAndTwistSubframes and GetMoveAlongArcSubframes Behaviors have been deprecated for being too specialized and because similar functionality can be achieved with more granular Pose-manipulation Behaviors.
  • The InitializeMotionConstraints and AppendOrientationConstraint Behaviors have been deprecated in favor of orientation constraint ports built into planning behaviors.
  • The WriteCalibratedPoseToYaml Behavior has been deprecated in favor of SaveToYaml converter Behaviors.
  • The GenerateObjectsInBox Behavior has been deprecated as we wind down support for the GraspableObject type. Objects can be created directly in the simulated environment as needed.
  • The AddSubframeToObject Behavior has been deprecated as we wind down support for the GraspableObject type. Similar functionality can be achieved with PoseStamped-related Behaviors.
  • Added a subtree port mesh_name to the VisualizeMesh behavior, so we can reuse the same mesh by giving different names.

Reference Application Changes

  • Improved the dual arm Franka example robot config to include a table and new pick and place examples
  • Renamed the single arm Franka example to kitchen_sim

Documentation Improvements

  • Added MoveIt Task Constructor (MTC) concept page to the Concepts section, providing comprehensive documentation on MTC's core concepts, planning stages, integration with MoveIt Pro, and best practices for complex manipulation tasks
  • Added AI-powered chat support to documentation pages using InKeep, providing instant assistance and answers about MoveIt Pro directly within the docs interface
  • Added Long Term Support (LTS) release process documentation to Deployment, Commissioning, and Fleet Management page, clarifying release cycles and support timelines for Ultimate customers.
  • Added comprehensive how-to guide for vector manipulation in Behavior Trees, covering all vector Behaviors: ResetVector, GetElementOfVector, GetSizeOfVector, InsertInVector, PushBackVector, RemoveFromVector, and ReplaceInVector
  • Added how-to guide for Setting Up Third Party Simulators covering integration approaches for simulators like Isaac Sim and Gazebo
  • Added how-to guide for Behavior Tree Editor Keyboard Shortcuts covering all available keyboard shortcuts for efficient Behavior Tree editing, including platform-specific commands for Windows/Linux vs macOS
  • Added troubleshooting guide entry for oversaturated or blown out robot models in MuJoCo simulations, explaining how lights in Collada files can cause visual issues and linking to MuJoCo lighting documentation
  • Updated tool changing and planning scene documentation to reference modern AttachURDF/DetachURDF behaviors instead of deprecated tool-specific behaviors

Other Improvements

  • Made CLI install prompts consistently bold for better visibility and user experience.
  • Blackboard variables containing large vectors (more than 20 elements) won't be serialized anymore to avoid performance issues in the Blackboard Publisher. These will show up as "too many elements to serialize" in the JSON output.

Bug Fixes

  • Fixes issue where GenerateCuboidGraspPoses was using Y parameter as X parameter.
  • Fixed an issue where MergePointClouds could miss points under certain conditions.
  • Fixes issue where setting CYCLONEDDS_URI to a value that is not a path on the host computer would crash the application with an unhelpful error message.
  • Fixes disappearing tool when attached to the robot.

Migration Notes

  • The JTAC sensor_frame and ee_frame parameters have been deprecated in favor of sensor_frames and ee_frames, which accept a list of strings to support multi-tip robots. The old parameters will still work but will be removed in a future release. If you have a Joint Trajectory Admittance Controller configured in your ros2_control.yaml file, please update it to use the new parameters. Here's an example of the new configuration, for a robot with a single tip:

    sensor_frames: ["sensor_frame"]
    ee_frames: ["ee_frame"]
  • The ~/zero_fts service name exposed by the JTAC to tare the force sensor has been updated to ~/zero_fts/sensor_name, where sensor_name is the name of each sensor as specified in the sensor_frames parameter. This change allows for multiple force sensors to be used with the JTAC. If you have any scripts or Behaviors that call this service, please update them accordingly.

  • The SetupMTCConnectWithTrajectory Behavior has been deprecated in favor of the new SetupMTCConnectWithProRRT Behavior, which provides more direct access to ProRRT-specific planning parameters. Please switch to using the SetupMTCConnectWithProRRT Behavior in your applications. The deprecated Behavior will still work but will be removed in a future release.

8.7.0

· 7 min read

Major Features

LLM Behavior Tree Builder

We’re excited to announce a new and easier way to build Behavior Trees in MoveIt Pro using Large Language Models. A built-in text prompt is now directly in the UI, that instantly generates complete Behavior Trees. This dramatically accelerates the creation of Objectives, reducing setup time and making it easier to prototype and deploy complex robotic workflows.

LLM Behavior Tree Builder

Time scaling for Joint Trajectory Admittance Controller

The Joint Trajectory Admittance Controller now supports time scaling, allowing users to adjust the speed of trajectory execution dynamically. This feature can be used to slow down or speed up the execution of trajectories during execution, even pausing it completely if needed. The time scaling is controlled using the joint_trajectory_admittance_controller node parameter named time_scale_percentage, which accepts values between 0.0 and 100.0, where 100.0 means full speed (no time scaling), and 0.0 means stop. Values in between will slow down the trajectory execution proportionally.

Time scaling for Joint Trajectory Admittance Controller

Use Path Inverse Kinematics in MTC

Added a new behavior SetupMTCPathIK that allows users to set up a MoveIt Task Constructor (MTC) Path IK stage, which computes a joint-space trajectory to follow a specified path in Cartesian space. This stage can be used to perform Cartesian motions along a path defined by a vector of PoseStamped messages, and combine it with other MTC stages for more complex behaviors.

Use Path Inverse Kinematics in MTC

Ability to resize the sidebar and the view panes

You can now manually adjust the width and height of the various panes and sidebars in MoveIt Pro, allowing you to better fit your camera feed dimenetions and other data sources on the screen.

Ability to resize the sidebar and the view panes

Added recursive delete option for Behavior Tree nodes and their children

Annoyed at having to tediously delete every node in your Behavior Tree? Now when you delete a parent node, all its children are automatically deleted also (with the exception of Subtrees).

Added recursive delete option for Behavior Tree nodes and their children

Added visual highlighting for ports with matching values in the Behavior Tree editor

Wanted to better see how your port variables and data flows through your Behavior Tree? Automatic port highlighting makes this easier to see visually!

Added visual highlighting for ports with matching values in the Behavior Tree editor

Bin Picking Reference Application

Two new example pick and place Objectives have been added to the factory_sim robot configs, as easy to use reference applications. They are called Pick Brackets from Left Bin and Pick and Place Brackets from Left Bin. These Objectives demonstrate basic examples of picking automotive brackets from a bin, placing them precisely on a jig, waiting until a task is completed, and then picking and dropping them in another bin.

Bin Picking Reference Application

Other Enhancements

UI Changes

  • Invalid Behavior Tree XML in Objectives will now show the reason they are invalid while being edited in the UI.
  • Added file_path information to Edit Objective form
  • Added license information to About information modal
  • 3D Visualization: Added "Gridlines" toggle to the View menu, allowing users to control gridlines visibility in the 3D visualization. This gives users full control over gridlines display regardless of Nav2 occupancy grid status.

New Behaviors

  • SetupMTCPathIK: Sets up a MoveIt Task Constructor (MTC) Path IK stage to compute a joint-space trajectory to follow a specified path in Cartesian space. This is the equivalent of PlanCartesianPath for MTC tasks.
  • Added a core SubTree called Track Moving Frame that can be used in Objectives to track a moving frame in Cartesian space. This can be helpful for applications like data collection (e.g. tracking a remote controller pose) or visual servoing. See our Meta Quest Teleoperation Hardware Guide.
  • ConvertTransformStampedToPoseStamped: Converts a TransformStamped message into a PoseStamped message. Handy for the GetLatestTransform Behavior.
  • CreateSolidPrimitiveBox: Creates a box-shaped shape_msgs::msg::SolidPrimitive message.
  • CreateCollisionObjectFromSolidPrimitive: Creates a moveit_msgs::msg::CollisionObject from a shape_msgs::msg::SolidPrimitive, pose, and object ID.

Behavior Changes

  • Added a service called /verify_xml that allows verifying the content of a Behavior Tree XML file against your currently-loaded Behaviors and Objectives.
  • Moved the BreakpointSubscriber behavior from the "Control Flow" category to the "User Input" category to better reflect its purpose as a user interaction tool for controlling breakpoint flow during Objective execution.
  • Change segfault output of ML behaviors to use a less noisy toast message and output exception to console.

Reference Application Changes

  • Added a "Stack Blocks with ICP" example objective to show how the RegisterPointClouds behavior can be used and what transform steps are required.
  • Added example of planning Cartesian paths on curves

Documentation Improvements

  • Added comprehensive Doxygen documentation for the PlanningSceneMonitor class, providing detailed technical reference for developers integrating with MoveIt Pro's planning scene monitoring capabilities.
  • Added Hardware Guide for How to set up the Meta Quest for Teleop
  • Added Hardware Guide for How to set up FANUC CRX hardware using new moveit_pro_fanuc_config workspace
  • Improved Hardware Guide for How to set up UR hardware using new moveit_pro_ur_config workspace
  • Expanded and refactored the Teleoperation Overview page to provide comprehensive coverage of all teleoperation methods, including UI-based teleop (Joint Jog, Pose Jog, Interactive Markers, Waypoints) and hardware-based teleop (game controllers, Haply haptic devices, Meta Quest VR).
  • Added extensive detail to the Creating a Custom Robot Configuration How-To on customizing teleoperation for a robot.
  • Expanded the Planning Scene concept page to add information about the ACM and joint groups.
  • The Visual Servoing documentation has been modernized to use the PoseJog Behavior instead of the deprecated ServoTowardsPose, featuring the space_satellite_sim configuration with a real-world satellite grappling example.
  • Adds reference to "Stack Blocks with ICP" example objective to Perception & ML tutorial.
  • Added section to Tutorial 3 documenting the LLM-powered Behavior Tree Builder feature, including setup instructions for API keys, usage examples, and best practices for testing and refining generated Objectives.

Other Improvements

  • When editing an objective, nodes that are part of a subtree can now be copied and pasted.
  • Old dangling docker images from running moveit_pro dev are now removed automatically, saving disk space.

Bug Fixes

  • Addressed a performance issue where the blackboard pane in the UI would re-render even when the blackboard did not change.
  • Fixed an issue where commands in the MoveIt Pro shell do not wrap correctly.
  • Improved the performance of the Visualization pane when multiple collision objects and/or attached collision objects are present.
  • Fixes an issue where newley created objectives are always added to a directory called objectives/ as opposed to respecting the relative_path field in the objective_library_paths section of a config's config.yaml file.
  • When there is an error in the creation of a Behavior Tree, the previous tree will not be displayed.

Migration Guide

  • The ServoTowardsPose Behavior has been marked as deprecated and will be fully removed in a future release. Users should migrate to the PoseJog Behavior, which provides safer Cartesian motion with collision avoidance and singularity handling.
  • The Behavior SetupMTCMoveToNamedState has been deprecated and will be removed in a future release. Please use RetrieveWaypoint and SetupMTCMoveToJointState to achieve the same functionality.

8.6.2

· One min read

Bug Fixes

  • Fixed version mismatch in 8.6.1 falsely reporting as 8.6.0 in the UI and causing a warning to occur about updating unnecessarily.

8.6.1

· One min read

Reference Application Changes

  • Adds pick and place objectives in factory_sim "Pick Brackets from Left Bin" and "Pick and Place Brackets from Left Bin" which demonstrate basic examples of picking automotive brackets from a bin, placing them precisely on a jig, waiting until a task is completed, and then picking and dropping them in another bin.

8.6.0

· 4 min read

Major Features

Training Data Collection with Meta Quest

MoveIt Pro can now collect teleoperation data using the Meta Quest. Check out the Hardware Guide.

Meta Quest

Improved Vector Operations

Added general vector operations that work on vectors on the blackboard of any type, including GetElementOfVector, GetSizeOfVector, InsertInVector, RemoveFromVector, ReplaceInVector, add ResetVector Behaviors. Uses type BT::Any.

Improved Vector Operations

Create New Objectives & Behaviors Easier

It's now easier to access the popup forms for new Behaviors and Objectives, with a combined "+" button accessible from both sidebar modes.

Create New Objectives & Behaviors Easier

UI Changes

  • The UI now remembers your preferences on showing and hiding the URDF and point cloud between tabs in Pro and in your browser.
  • Improved the "New Objective" form to display the target location for the new Objective.
  • Added descriptions for plugin types in the "New Custom Behavior" form
  • Added an "About MoveIt Pro" popup modal to declutter the settings dropdown menu and provide a centralized location for company and product information.
  • Hide right connector dot in collapsed Behavior Tree subtree nodes
  • Added a Favorites section to the Objective sidebar to allow more favorites to be displayed without getting cut-off.
  • Added placeholder examples for vector input fields in Behavior Tree port editing

Enhancements

  • MTC Tasks can now be initialized with a timeout parameter to control the execution time of the task.

Behavior Changes

  • InitializeMTCTask now accepts a timeout parameter to set an overall timeout for the MTC Task, in seconds. This is useful for ensuring that the MTC Task does not run indefinitely and can be used to control the execution time of the task.
  • Renamed Tool behaviors to more general URDF behaviors:
    • AddToolAddURDF (deprecated AddTool still available)
    • AttachToolAttachURDF (deprecated AttachTool still available)
    • DetachToolDetachURDF (deprecated DetachTool still available)
    • RemoveToolFromSceneRemoveURDFFromScene (deprecated RemoveToolFromScene still available)
  • Added URDF/XACRO file validation in AddURDF behavior

Internal API Changes

  • Renamed ToolChangingCapability to URDFPlanningSceneCapability
  • Renamed ROS service messages:
    • moveit_studio_agent_msgs/srv/AddToolmoveit_studio_agent_msgs/srv/AddURDF
    • moveit_studio_agent_msgs/srv/AttachToolmoveit_studio_agent_msgs/srv/AttachURDF
    • moveit_studio_agent_msgs/srv/DetachOrRemoveToolmoveit_studio_agent_msgs/srv/DetachOrRemoveURDF
  • Updated service names:
    • add_tool_to_sceneadd_urdf_to_scene
    • attach_toolattach_urdf
    • detach_tooldetach_urdf
    • remove_tool_from_sceneremove_urdf_from_scene
  • Updated service field names:
    • tool_nameurdf_name
    • tool_urdfurdf_string
    • tool_poseurdf_pose

Documentation Improvements

Bug Fixes

  • Fixes issue where two markers overlapping each other would move both on drag. Now only moves the one closest to camera
  • Fixes issue where the "View" select button in the Visualization pane could sometimes overflow and be cut off
  • Fixed an issue where toast notifications that were hidden by log level rules took up vertical space in the toast container despite being invisible
  • Fixed an issue that can cause RetrieveWaypoint to time out
  • Fixed an issue where waypoints named with just a number (for instance "11") would cause a crash.
  • Fixed objective creation to use the last entry in objective_library_paths from the config.yaml for saving new objectives, allowing flexible configuration of where objectives are stored.
  • Fixed an issue where velocity scale was not being applied in GeneratePointToPointTrajectory.
  • Fixed a bug where the RetrieveJointStateParameter behavior would persist state between runs, possibly causing stale data to be retrieved.
  • Fixes bug where top bar navigation could be pushed out of view
  • Fixes bug where heartbeat topic would slow when working with larger behavior trees

8.5.0

· 2 min read

Major Features

Enhanced Visualize Pose Markers

Enhanced Visualize Pose behavior to display text information in Marker messages for improved debugging and visualization.

Enhanced Visualize Pose behavior

Execute Trajectories with 180 Deg Turns

MoveIt Pro now supports executing trajectories that make 180 degree turns, which is common in MTC solutions. So you can now use ConvertMtcSolutionToJointTrajectory and execute the resulting trajectories with ExecuteFollowJointTrajectory, even if those contain 180 degree turns.

Execute Trajectories with 180 Deg Turns

UI Changes

  • MoveIt Pro browser tabs now have more descriptive titles to aid in multi-tasking.
  • Plus buttons on Control and Decorator nodes in behavior trees will no longer show unless they are connected to the graph

Documentation Improvements

  • Refactored Tutorial 2 (Runtime SDK & Extensions) to be much more interactive and beginner-friendly with improved hands-on examples.
  • Refactored Tutorial 4 (Motion Planning) to be more interactive with improved hands-on examples.
  • Added documentation for benchmarking AprilTag pose detection accuracy using the new april_tag_sim configuration.
  • Added Franka Research 3 (FR3) Hardware Setup Guide.

Bug Fixes

  • Fixed an issue where newly added behavior tree nodes would persist in the underlying XML document. The visual state, XML document, and saved state are now properly synchronized during undo/redo operations.
  • Fixes issue where renaming an objective used as a subtree in other objectives did not reflect new name in other objectives until reloaded
  • Removed an unintended 40-character limit on Objective names when creating or editing Objective details.
  • Fixed an issue where the initial navigation to the Run tab when loading MoveIt Pro created two entries in browser history.
  • Fixed example workspace incorrect git version detection when multiple tags are associated to the same commit.
  • Fixed a bug where planning scene information wasn't being added to the MTCSolution provided by ValidateTrajectory
  • Fixed a bug where the right-hand handle on behavior tree nodes was sometimes unusable to create connections.
  • Fixed an issue where unconnected nodes in behavior trees would be removed when adding new nodes via the Plus button.
  • Debug MTC solutions generated by PlanCartesianPath now properly include the start scene.
  • Print out more details if Clipseg fails to initialize with "Failed to initialize the clipseg interface..." error message.

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.

8.3.1

· One min read

Bug Fixes

  • Fixed a handful of bugs in the satellite servicing simulation example.
  • Fixed a UI crash that could occur if a custom C++ behavior included invalid HTML in its description field.

8.3.0

· 4 min read

Major Features

Quick Add Behaviors

Introducing a more streamlined way to build Behavior Trees using a “+” button directly next to applicable Behaviors, like Sequences. This button opens a searchable dialog for quickly adding behaviors inline, reducing the need to manually drag nodes in.

Quick Add Behaviors

Ability to Move from Subtree Back to Parent Behavior Tree

You can now easily navigate back to a parent Behavior Tree after drilling into a subtree. Users previously found it unintuitive to use the browser back button.

Ability to Move from Subtree Back to Parent Behavior Tree

Track a Pose While Avoiding Obstacles

The new MPCPointCloudClearance Behavior tracks a pose in real-time while avoiding a point cloud using model predictive control (MPC). An example Objective is now available in lab_sim.

Track a Pose While Avoiding Obstacles

Enhancements

UI Changes

  • Improved the appearance of errors, warnings, and info messages that are published to the UI from the LoggerROS class.

Behaviors

New Behaviors

  • The MPCPointCloudClearance Behavior tracks a pose while avoiding a point cloud using model predictive control.
  • Adds Decorator ForEachUntilSuccess for iterating through vectors and until the subtree succeeds on an element.

Behavior Changes

  • The ActivateControllers Behavior has been deprecated in favor of the SwitchController Behavior, which provides more flexibility in managing controller activation / deactivation. Please switch to using the SwitchController Behavior in your applications.
  • A new Joint Velocity Controller allows for the control of robot joints using velocity setpoints. It takes as input desired joint velocities in a control_msgs/JointJog message and computes the next joint positions and velocities to send to the robot, while respecting the robot's joint velocity and acceleration constraints. This controller can be used for collecting ML teleoperation training data, or in conjunction with higher-level closed-loop controllers such as visual servoing or learned policies.

Documentation Improvements

  • Improved the Tool Changing guide to describe how it can be used for other tools like vacuum grippers.
  • Added a troubleshooting item for ros2 cli verbs reporting incorrect output.

Other Improvements

  • This release includes a new controller, the Joint Velocity Controller, which allows for the control of robot joints using velocity setpoints. It takes as input desired joint velocities in a control_msgs/JointJog message and computes the next joint positions and velocities to send to the robot, while respecting the robot's joint velocity and acceleration constraints. This controller can be used for teleoperation or in conjunction with higher-level closed-loop controllers such as visual servoing or learned policies.
  • Deleting a port from an objective will also remove the port everywhere the objective is used as a subtree.
  • PlanCartesianPath and other Behaviors using Path IK (e.g. SetupMTCMoveAlongFrameAxis) now support tip links that are not in the planning group, but are descendants of it.

Bug Fixes

  • Fixes bug where sometimes changing an Objective's name would toast an error that it is not found.
  • Fixed a bug where a list of IP addresses passed to the CycloneDDS configuration generator script could include extraneous whitespace.
  • Fixed a bug where logs generated by the LogMessage behavior don't show as expected in the UI.
  • FollowJointTrajectoryWithAdmittance action calls will populate the feedback time_from_start with the trajectory point's desired time_from_start.
  • Fixed a bug where it was possible to crash the objective editor by adding an objective to itself as a subtree.
  • Fixed a bug where a MarkerArray that included multiple markers with the same namespace and id would not display correctly. Note: that we're not sure allowing multiple markers with the same namespace and ID is deliberate in RViz, but we ensured that we now have the same behavior.
  • Fixed a few visual and performance issues in the AppendOrientationConstraint interactive constraint builder.
  • The blackboard viewer now displays type information for types without a registered JSON serializer in BehaviorTree.CPP.
  • Fixed an issue where SetupMTCMoveAlongFrameAxis would throw an exception under some conditions.
  • Fixed some performance issues with the UI parsing Nav2 map updates.

Migration Notes

  • The ActivateControllers Behavior has been deprecated in favor of the SwitchController Behavior, which provides more flexibility in managing controller activation / deactivation. Please switch to using the SwitchController Behavior in your applications.
  • Controller names given as input to Subtrees and Behaviors (e.g. in a controller_names port) no longer need to be prefixed with a slash. Existing pipelines will still work with the old format for backwards compatibility, but it is recommended to use the new format for consistency, e.g. controller_names="/joint_trajectory_controller" should be changed to controller_names="joint_trajectory_controller". This change will be enforced in the next breaking release (9.0).