Skip to main content

8.0.1

· One min read

Bug Fixes

  • Fixed an issue where the behavior tree status visualizer would throw an error when loaded.

8.0.0

· 12 min read

Major Features

We're proud to announce our latest major release - 8.0!

A reminder that our major releases typically include more complex migration steps for your robot_config, so that we can evolve the capabilities of MoveIt Pro and reduce technical debt. We promise to release major versions no more than 4 times per year, or about once per quarter.

Revamped Pose Jog Teleoperation

A totally reimagined Pose Jog teleoperation mode that replaces the old MoveIt Servo TeleoperateTwist Behavior.

PoseJog offers several improvements over the previous implementation, such as better behavior at singularities, improved collision avoidance and recovery, and support for multiple groups. The new PoseJog can be used beyond teleoperation, for instance in any application that requires streaming Cartesian velocities to the robot. More details here, and also check out the Migration Guide, below, for how to migrate from the old TeleoperateTwist Behavior to the new PoseJog Behavior.

PoseJog in the Multi-arm sim config

Learning to Grasp

GetGraspPoseFromPointCloud uses the Learning to Grasp AI model to produce grasp poses for objects from point clouds.

Multi-tip Path IK

PlanCartesianPath can now solve the path Inverse Kinematics for multiple end-effectors moving synchronously along a path. Check out the Multi-tip Path IK Example Objective in the multi_arm_sim config for an example of this feature.

Multi-tip Path IK example

Integration of Fuse

MoveIt Pro now includes the Fuse state estimation framework out of the box, and has a new guide on how to utilize it in your custom MoveIt Pro configuration.

fuse

Enhancements

  • We now use the OrtCudnnConvAlgoSearchHeuristic configuration for the CUDA ONNX runtime provider, which improves first time inference speed up to 2x faster.

UI Changes

  • Adds a sidebar for the IMarker, moves the reset button there
  • Improved the visibility and usability of the Auto Layout button.
  • Sidebar now auto-closes during objective execution to maximize workspace visibility.
  • Changed the toast message for out of date software versions from an error to a warning.
  • When a Subtree is expanded in the editor, the entire graph will layout to avoid nodes overlapping
  • Fixed inconsistent styling of primary and secondary buttons.
  • Improved UX alignment: Prevented the search bar from shifting when switching between Build and Run tabs.
  • Removed unnecessary confirmation screens to improve user experience and usability.
  • Added a button to expand/collapse Behavior/Objective sidebar categories for improved navigation.
  • Changed keep-out zones to green to make them easier to distinguish from collision spheres.
  • Removed the click handler from "Run" tab objectives list to increase safety. Require users to use the action buttons on the right.
  • Removes Teleoperation mode top bar and relocates all functionality to the sidebar
  • Consolidates favorited waypoints to appear at the top of the waypoints sidebar list
  • A Subtree used in other objectives can now be deleted. First showing a confirm modal with the list of objectives it is being used in
  • Removes behavior search popover in favor of filtering down listed behaviors in sidebar

Reference Application Changes

  • Improve ML example behaviors to include bounding boxes visualization of segment image
  • Add new Objectives category called "ML - Applications" that clarifies which Objectives leverage ML models and likely require GPUs
  • Add kinova_gen3_site_config for kinova hardware
  • Add fuse grappling example to space_satellite_sim config

Other New Behaviors

  • Added a SwitchController Behavior which allows you to use the ros2_control API to switch controllers.
  • Added IsAnyObjectAttached, IsCollisionObjectInPlanningScene, and WhichObjectIsAttached Behaviors to better introspect a PlanningScene.
  • Added a ComputeLinkPoseForwardKinematics Behavior to compute the cartesian pose of a link given joint states.
  • The AsyncBehavior base class is now an option when generating custom behaviors from the UI. Take a look here for some examples of behaviors that inherit from AsyncBehaviorBase.

Behavior Changes

  • The ActivateControllers and InitializeMTCTask Behaviors now require a list of controller names separated by semicolons instead of spaces. This makes it more consistent with how arrays of objects are handled in other Behaviors.
  • The Behaviors SetupMTCPickFromPose, SetupMTCPickObject and SetupMTCPlaceFromPose have been removed, since similar functionality can now be achieved with more granular MTC Behaviors.
  • The PlanCartesianPath Behavior can now solve for multiple end-effectors. Therefore the tip_link input port has been renamed to tip_links, which can now accept a list of tip links.
  • SetupMTCCurrentState port skip_collision_check is removed (the port was deprecated in 7.5.0).
  • The AsyncBehaviorBase template class and all its dependents now have clearer error messages in the UI when they fail.
  • PublishMask2D can now publish bounding boxes around masks when given a class label or annotations.
  • Visual markers are deleted before running an objective. The default behavior can be switched off by setting the configuration parameter "clear_visual_markers_at_start": False.
  • CalculatePoseOffset now returns the offset as a geometry_msgs/PoseStamped message instead of a geometry_msgs/Pose message, to make it compatible with the rest of Behaviors that use PoseStamped messages. The frame_id of the returned pose will match the frame_id of the 'source' pose. TransformPoseFromYaml has been deprecated and will be removed in a future release. It is recommended to use LoadPoseStampedFromYaml and TransformPoseWithPose instead.
  • Added the ik_group port to SetupMTCBatchPoseIK, enabling users to specify the group for which inverse kinematics should be solved.
  • The CreateStampedPose Behavior will now fail if the input quaternion is of zero length and cannot be normalized.
  • AddPoseStampedToVector will now send a descriptive error message to the UI if the user attempts to run the behavior without setting the required input port.

Documentation Improvements

Other Improvements

  • Submodules are now downloaded in parallel, speeding up download times for the example workspace repository.
  • Switched to a trimmed down version of the MoveIt library to reduce code maintenance. See the Migration Guide section below for details.
  • The ignition_resources volume, only relevant to Gazebo, has been removed from the default docker-compose file.
  • The moveit_pro dev service now has the nvidia runtime set by default on NVIDIA machines, matching the environment in the full application.
  • The user workspace docker-compose.yaml can now be used to override the runtime: nvidia parameter for more advanced users on NVIDIA machines.
  • The Velocity/Force Controller (VFC) now supports both joint position and velocity interfaces, and can rename the commanded joint names to support layered controllers.
  • Added -c option to moveit_pro configure command to specify the configuration package.
  • Added -w option to moveit_pro configure, moveit_pro build, moveit_pro build user_image and moveit_pro build user_workspace commands to specify the location of the user workspace.
  • Error messages when creating a new objective from the UI are now more clear.
  • Added new pytest fixture in the moveit_pro_test_utils package to test objectives in a robot config.
  • MoveIt Pro now installs a recommended zram configuration on Ubuntu by default, to make memory-intensive use cases like compiling large configurations or running ML models more consistent.

Bug Fixes

  • Fixed documentation admonition stating wrong version.
  • Fixed an issue where the UI would not respond to a /switch_primary_view service call if the view was already visible - even though it wasn't primary.
  • Fixes issue where opening / closing gripper buttons would change teleoperation sidebar unnecessarily
  • Fixed an issue where the UI would incorrectly show an objective as "loading" when it had already completed or failed.
  • Fixed crash that occurs frequently when running Pro with FastDDS during destruction of behaviors that inherit from the GetMessageFromTopicBehaviorBase class.
  • Fixed launcher script prompting for configuration package twice.
  • Fixed issue causing Debian package uninstall to read configuration files from the root folder instead of user folder.
  • Fixed dead DDS doc link that is printed when moveit_pro configure is run
  • Fixes issue where "Run" button would stay after an objective was changed to non-runnable
  • Fixed a bug where some nodes other than Sequence nodes could erroneously be converted to SubTrees in the Build tab.
  • The Debian package now installs .version into /opt/moveit_pro instead of /etc/moveit_pro.

Migration Guide

Pose Jog Teleoperation

The TeleoperateTwist Behavior has been replaced with the new PoseJog Behavior. This required changes in the way the UI communicates with the backend, and therefore the UI after 8.0.0 is not compatible with the old TeleoperateTwist Behavior.

You will need to update your Request Teleoperation Objective to use the new PoseJog Behavior, and include a PoseJog config file. Please check out this configuration guide for details.

C++ API Changes

  • The TF buffer for the moveit_studio::behaviors::BehaviorContext shared_resources is now accessed via the pointer transform_buffer_ptr. The pointer field replaces the old value type named transform_buffer. Additionally, transform_listener_ptr and transform_broadcaster_ptr replaced transform_listener and transform_broadcaster.

Behavior API Changes

  • References to ActivateControllers or InitializeMTCTask in Objectives need to be updated to include the list of controllers as controller names separated by semicolons, instead of spaces, in case multiple controllers are listed. For example:
<Action
ID="ActivateControllers"
controller_names="controller_one;controller_two"
/>
<Action
ID="InitializeMTCTask"
controller_names="controller_one;controller_two"
/>
  • PlanCartesianPath now accepts a list of tip links instead of a single tip link. The input port tip_link has been renamed to tip_links, and the input type has changed from string to string[]. For example:
<Action
ID="PlanCartesianPath"
...
tip_links="grasp_link" # Separate multiple tips with semicolons, e.g. "link_one;link_two"
...
/>
  • All references to the skip_collision_check port in SetupMTCCurrentState should be removed

  • DetectApriltags now takes in all AprilTag detection parameters on ports rather than by parsing YAML input. Users can now delete the deprecated LoadObjectiveParameters behavior in their objectives that use DetectApriltags and transfer the parameters from the .yaml file to the ports of DetectApriltags. Also note: the z_up parameter is no longer accepted for AprilTag detections and tags will always be detected with the detection pose z axis facing up, out of the tag and towards the camera. If you were previously setting the z_up parameter to false, you can use the TransformPose behavior with the detected pose on the input_pose port and the quaternion_xyzw port set to 1;0;0;0.

  • FindSingularCuboids now takes in all cuboid detection parameters on ports rather than by parsing YAML input. Users can now delete the deprecated LoadObjectiveParameters behavior in their objectives that use FindSingularCuboids and transfer the parameters from the .yaml file to the ports of FindSingularCuboids.

  • Several breaking changes were made to the IsConstraintSatisfied Behavior:

    • The Behavior has been renamed to IsVisibilityConstraintSatisfied for disambiguation.
    • IsVisibilityConstraintSatisfied now takes in all visibility constraint parameters on ports rather than by parsing YAML input as was done with IsConstraintSatisfied. Users can now delete the deprecated LoadObjectiveParameters behavior in their objectives that used IsConstraintSatisfied and transfer the parameters from the .yaml file to the ports of IsVisibilityConstraintSatisfied.
    • IsVisibilityConstraintSatisfied now takes in a planning_scene_msg port to reduce the overhead of managing a planning scene monitor within the behavior. Users can use the GetCurrentPlanningScene Behavior to get the planning_scene_msg object needed as an input port to IsVisibilityConstraintSatisfied.
  • CalculatePoseOffset now returns the offset as a geometry_msgs/PoseStamped message. Any Objectives using this Behavior should be updated to use its output as geometry_msgs/PoseStamped instead of geometry_msgs/Pose.

  • SetupMTCBatchPoseIK now requires the ik_group input port to be specified which informs the solver of the planning group for which inverse kinematics should be solved. For example:

<Action
ID="SetupMTCBatchPoseIK"
...
ik_group="manipulator"
...
/>
  • GetPointsFromUser, GetImage, GetPointCloud, GetSyncedImageAndPointCloud, and GetSyncedImages have had their default parameters for certain ports updated:
    • GetPointsFromUser
      • view_name: /wrist_mounted_camera/color/image_raw -> /wrist_camera/color
    • GetImage
      • topic_name: /wrist_mounted_camera/color/image_raw -> /wrist_camera/color
    • GetPointCloud
      • topic_name: /wrist_mounted_camera/depth/color/points -> /wrist_camera/points
    • GetSyncedImages
      • image_1_topic_name: /wrist_mounted_camera/color/image_raw -> /wrist_camera/color
      • camera_info_1_topic_name: /wrist_mounted_camera/color/camera_info -> /wrist_camera/camera_info
      • image_2_topic_name: /wrist_mounted_camera/depth/image_raw -> /scene_camera/color
      • camera_info_2_topic_name: /wrist_mounted_camera/depth_registered/camera_info -> /scene_camera/camera_info
    • GetSyncedImageAndPointCloud
      • point_cloud_topic_name: /wrist_mounted_camera/depth/color/points -> /wrist_camera/points
      • rgb_image_topic_name: /wrist_mounted_camera/color/image_raw -> /wrist_camera/color
      • rgb_camera_info_topic_name: /wrist_mounted_camera/color/camera_info -> /wrist_camera/camera_info

MoveIt Library Changes

We have switched to a trimmed down version of the MoveIt library. The following plugins and APIs will no longer be available in the default installation for their use in configs and Behaviors. Please contact us if you were using any of these APIs in your custom Behaviors.

  • Kinematics plugins: KDL, FastIK, Srv have been removed from the default installation. Please switch to PoseIK.
  • MoveIt Setup Assistant is no longer available within the MoveIt Pro container. You can still install the package in your host system via apt-get if needed, e.g. sudo apt-get install ros-humble-moveit-setup-assistant.
  • Trajectory cache (a C++ API to cache motion plans).
  • Some MoveGroup capabilities that are not used in MoveIt Pro: MoveGroupCartesianPathService, MoveGroupExecuteService, MoveGroupExecuteTrajectoryAction, MoveGroupMoveAction, MoveGroupPlanService, MoveGroupQueryPlannersService, MoveGroupStateValidationService, TfPublisher.
  • The Hybrid Planning pipeline.
  • Planners unused in MoveIt Pro: chomp and pilz. stomp is still available for anyone needing an optimization-based planner. Use of pilz should be replaced with MoveIt Pro Cartesian planning capabilities.
  • The Bullet collision checker, since FCL has been used by default in all the configs.

Please contact support if you were using any of the above features and need help migrating.

Behaviors removed

  • SetupMTCPickFromPose, SetupMTCPickObject and SetupMTCPlaceFromPose have been removed. If you were using any of these Behaviors, please take a look at the Pick from Pose and Place at Pose Subtrees in lab_sim for an example of how to achieve similar functionality by combining other more granular Behaviors, or contact support for help.
  • GetDoorHandle has been removed. It is now recommended to use the new Machine Learning Behaviors for more granularity. We recommend creating a subtree that has the Behaviors GetMasks2DFromTextQueryInterface with door handle as the object, GetMasks3DFromMasks2D to convert the 2D masks to 3D masks, GetPointCloudFromMask3D to create the point cloud for the segmented door handle, and GetGraspPoseFromPointCloud to get the grasp pose for the door handle.

7.7.1

· One min read

Bug Fixes

  • Fixed an issue where MoveIt Pro writes objective xml files with too much whitespace.

7.7.0

· 3 min read

A small release before the upcoming 8.0 release...

Enhancements

UI Changes

  • No longer show "+n More" ports button as clickable in the status Behavior Tree pane
  • Renamed the "Success" button to "Continue" to better reflect its function of proceeding with the objective execution.

Reference Application Changes

  • Various improvements to multi_arm_sim example robot_config

Behavior Changes

  • PlanToJointGoal and its MTC-equivalent SetupMTCPlanToJointState now have a new port called seed that allows you to specify the seed for the random number generator used during path planning. The same seed number will generate the same results for the same input parameters. This can be used to explore other solutions if the one found by the planner with the default seed is not satisfactory.
  • Removed SetupMTCGraspAndTwistThenMoveAlongArcPush and SetupMTCGraspThenMoveAlongArcPull Behaviors. These can be replicated as Objectives using existing Behaviors.
  • Updated SetupMTCApproachGrasp, SetupMTCConnectWithTrajectory, SetupMTCMoveToJointState, SetupMTCMoveToNamedState, SetupMTCMoveToPose, SetupMTCPickFromPose, SetupMTCPickObject, and SetupMTCPlaceFromPose to use ProRRT by default.
  • SetupMTCApproachGrasp now exposes link_padding as a parameter for use with ProRRT.

Documentation Improvements

  • Clarified how to interact with IMarker in "Basic Usage" tutorial and fixed typo
  • Updated "Basic Usage" tutorial to show updated PoseJog d-pad screenshot

Bug Fixes

  • Fixed an issue where the gamepad support in Pose Jog mode of Teleoperate was not respecting analog trigger inputs on capable controllers.
  • Some topic subscriptions in the UI were erroneously using ROS 1 message types. They have been updated to use ROS 2 message types.
  • Fixes inability to interact with "Markers" dropdown menu when it was in a bottom pane.
  • It should no longer be possible to navigate away from an objective with unsaved changes.
  • Fixed a bug where an objective might revert to an earlier state in the editor when clicking "Done" or "Convert to Subtree".
  • Fixes issue where trying to scroll through a port dropdown in the Behavior Tree editor would instead zoom.
  • Fixed a bug where running moveit_pro dev after changing the workspace Dockerfile doesn't use an updated version of the image.
  • Fix issue in moveit_pro configure where available robot configs were not being displayed.
  • Fixes issue where log level preferences were not being saved to local storage
  • Fixed a dependency issue on Debian Bookworm.
  • Fixes a issue in the Joint Trajectory with Admittance controller (JTAC) that could cause a deadlock when loading the controller.
  • Fixed issue where IOController claimed more command interfaces than specified
  • Fixes bug that wouldn't allow you to add a port whose name starts with another port's name
  • Fixed issue with double titles in documentation

7.6.3

· One min read

Bug Fixes

  • Reverted the workspace version check to allow a smoother installation process. We will reintroduce the check in a future release.

7.6.2

· One min read

Bug Fixes

  • Fixed an issue where the auto workspace updater was not triggering git-lfs submodule updates, resulting in outdated dependencies and failed builds.

7.6.1

· One min read

Bug Fixes

  • Fixed an issue where the auto workspace updater was not triggering submodule updates, resulting in outdated dependencies and failed builds.
  • Fixed a failure during first time setup of MoveIt Pro where the script complains about a not yet existing workspace.

7.6.0

· 6 min read

Major Features

Multi-Tip Pose Inverse Kinematics

Multi-tip Pose IK

MoveIt Pro now supports computing Inverse Kinematics for multiple end-effectors simultaneously using the ComputeInverseKinematics behavior. This feature is useful for robots with multiple arms or end-effectors that need to reach multiple goals at the same time.

Assign Categories in the UI

Assign Categories in the UI

You can now assign categories to objectives, as well as create new categories, from within the UI.

Factory Sim

factory_sim

Our example workspace fanuc_sim is now factory_sim and contains new assets and example objectives for planar and mesh based reachability analysis.

New Pose Jog in the UI

New Pose Jog in the UI

Creates a new d-pad for pose jog in the sidebar rather than overlaying it on visualization pane

Enhancements

  • MoveIt Pro now publishes a heartbeat signal to the /objective_server_heartbeat ROS topic with the currently running process runtime, current objective name, and the status of the objective. This topic publishes the moveit_studio_agent_msgs/msg/ObjectiveServerStatus message.
  • MoveIt Pro now ships with core objectives (via a new moveit_pro_objectives package) that can be inherited in any robot config or workspace to speed up development time and increase consistency.
  • You can now send a Behavior Tree as a string to the Objective Server through the API.
  • Added ComputeInverseKinematics behavior to compute IK for multiple end-effectors simultaneously.
  • Added -l and --list options to moveit_pro run verb to list all available configuration packages in the current user workspace.
  • Added --browser (default) and --no-browser options to prevent the application to launch a new browser window on startup.
  • Allow REST API to connect over HTTPS

UI Changes

  • Added keyboard navigation to port dropdown combo-boxes
  • Improved the keepout zone modal by saving your last used values
  • Improved the "Exit" button to not change widths when running an objective

Behavior Changes

  • PublishMask2D exposes opacity as an input port to change the translucency of the overlaid masks.
  • InitializeMTCTask has a new port called trajectory_monitoring. If it is set to true, every subtrajectory of that task is going to be collision checked against the most recent planning scene right before it is executed. The default value of the port is False since this additional collision check is only necessary if anything other than the robot state in the planning scene has changed.
  • LoadObjectiveParameters has been deprecated. Please migrate to declaring ports directly on behaviors, or to specializations of the LoadFromYaml template behavior.

Documentation Improvements

  • Added a new guide about Behaviors available to compute Inverse Kinematics.
  • Expose C++ API (Doxygen) documentation for MoveIt Pro Kinematics libraries and controllers. Find it here.
  • Improved documentation for adding simulated sensors, such as force torque sensors.
  • Added documentation on how to send a Behavior Tree as a string to the Objective Server.
  • Added new tutorial 3. Mobile Manipulation & Cartesian Planning

Other Improvements

  • Synced pre-commit hooks for xml with objective saving from the UI, removing unnecessary pre-commit diffs in user workspace git trees.
  • Added a progress bar when cloning the example user workspace
  • NVIDIA computers now check for the NVIDIA container toolkit to be installed, and provide instructions on how to install it if it is not found.
  • Improved flow for first run after install
  • Added --browser (default) and --no-browser options to prevent the application to launch a new browser window on startup.
  • Docker images are now tagged with the user workspace name, meaning switching between unchanged workspaces should be faster.
  • The objective server no longer sends INFO-level toasts to the UI when objectives begin and end. If you need this information, reference the verbose log output or the ROS logs.
  • Since plugins need to be rebuilt after upgrading, the user is now asked if they want to delete their install folder.
  • Reduce severity and frequency of Mujcoo model timestep log.
  • Added --browser (default) and --no-browser options to prevent the application to launch a new browser window on startup.
  • Reduce severity and frequency of MuJoCo simulator model timestep log.
  • Check for example workspace version mismatch and switch branches.

Bug Fixes

  • Fixed an issue where the MetadataFields element is being stripped from an objective's xml file resulting in objectives becoming uncategorized and "subtree only" objectives becoming runnable.
  • Candidate IK solutions when dragging the interactive marker should no longer flicker while dragging.
  • Robot configurations such as hangar_sim that have large URDFs should now properly do first-time setup of the camera stream layout in the UI.
  • The runnable metadata field in an objective xml file is now the source of truth for specifying "subtree only" objectives. If the _subtreeOnly BehaviorTree attribute exists in an objective file and runnable is not set, MoveIt Pro will respect the old BehaviorTree attribute and automatically migrate to runnable on the next update to the objective.
  • Fixed an issue where multiple new lines at the end of a copy paste in the configuration would skip prompts.
  • Fixed an issue where updating an objective name doesn't update the filename of its xml file.
  • Clarity of licensing errors in the UI has been improved.
  • Resolved a race condition where navigating between objectives could cause the inner pane of the objective editor to crash.
  • Objectives created via "Convert to subtree" now immediately show up as an option in the Build sidebar.
  • Fixed a bug where an objective being paused by a BreakpointSubscriber behavior would cause the "Stop Motion" button to disappear.
  • The "subtree only" checkbox when cloning an objective now works as expected.
  • Clicking on the "build" or "run" tabs when they are already active no longer causes the contents of the page to reload.
  • Fixed bug where clicked points on camera streams were getting the wrong Y coordinates.
  • Editing an objective immediately after editing its metadata should no longer cause the metadata to be reverted.
  • Fixed a bug in PlanToJointGoal where if the given target robot state message was missing values for some joints in the group, the planner would assume those values were zero. Now the planner will use the current robot state for those missing joints.
  • It is no longer possible to navigate to an objective name in the Run tab that doesn't have a corresponding objective in your configuration.
  • Fixed issue with the UI not receiving the first Segmentation Mask when running behavior Segment Image From Text Prompt.
  • Fix issue with Run tab panels having inconsistent sizing
  • Fixed bug where prompt to click point in "Navigate to Clicked Point" didn't go away when objective exited.
  • Fixed bug causing the keepout zone marker not to drag.

Migration Guide

  • Some ProRRT-related functions (C++ API) have been moved into separate packages. If those functions were used in custom Behaviors, they'll need to be updated:
    • moveit_studio::behaviors::createTrajectoryFromWaypoints -> cartesian_planning::createTrajectoryFromWaypoints
    • moveit_studio::behaviors::collisionValidationFunction -> pro_rrt::collisionValidationFunction
    • moveit_studio::behaviors::planTrajectoryToJointGoal -> pro_rrt::planTrajectoryToJointGoal

7.5.1

· One min read

Bug Fixes

  • Fixed an issue where toggling the sidebar between open and closed did not work properly.
  • Fixed a bug requiring a docker-compose.yaml in the example user workspace for those with NVIDIA hardware.

7.5.0

· 4 min read

Major Features

Tool for Decimating Meshes to Speed Up Performance

Tool for Decimating Meshes to Speed Up Performance

MoveIt Pro now includes a new tool for decimating meshes to increase performance of collision checking and simulation. See the Simulation Troubleshooting Guide for usage details.

UI Improvements to Joint Control

UI Improvements to Joint Control

The joint control spinner user inputs are now always present and don't require a click to enter into them. They are also refreshed with updated styling and they have been moved into the side bar.

Text Markers support in UI

Text Markers support in UI

You can now publish text markers in our visualizer, to better help understand and debug your robotics system.

Enhancements

UI Changes

  • The default ground plane in the visualization is now hidden if your robot has a visible occupancy grid, to avoid graphical artifacting from two planes at Z=0.
  • When disabling collision checking, the UI now displays a warning and an explanation of which controls are affected.
  • Reworded the "Cancel" button when running an objective to make it clearer when an objective will be canceled when pressing the button.
  • The buttons in pose jog are now color-coded to make it clearer which axis is being translated or rotated when jogging in a view other than a wrist camera stream.

Reference Application Changes

Other New Behaviors

  • Added a RecordJointTrajectory Behavior which allows you to record the joint states of a given planning group as a JointTrajectory message.

Behavior Changes

  • Default name for breakpoint subscriber topic is changed from /studio_breakpoint to /moveit_pro_breakpoint
  • The SwitchUIPrimaryView behavior no longer throws an error when a topic does not exist yet, and instead displays a placeholder while waiting for the topic to become available.
  • SetupMTCCurrentState no longer makes a collision check. Planners downstream in the pipeline are responsible for this. The skip_collision_check input port is kept for backwards compatibility, but it is now ignored and will be fully removed in the next major release.

Bug Fixes

  • Fixed an issue where visual materials in Collada files in URDFs were incorrectly converted between colorspaces.
  • Fixed a visual bug in the UI when rendering arrow markers with multiple points.
  • The dropdown of suggestions on an IN/OUT port containing a blackboard variable no longer steals your keyboard focus while typing.
  • Fixed an issue where the objective execution status would not show while execution was backgrounded by navigating to the Build tab.
  • Objectives are now sorted the same way in the favorites bar as in the sidebar.
  • Fixed a bug where modifying an objective would not cause subtree references to that objective to appear updated in the editor.
  • The UI now correctly uses port 80 to proxy rosbridge communication instead of requiring port 3201 to be exposed.
  • Fixed a bug where failure to load a mesh referenced by a URDF file would cause the UI to hang silently instead of displaying an error message informing the user which mesh failed and why.
  • Fixed an issue where subtrees created using the "Convert to Subtree" button would initially appear empty, despite being populated properly when executed.
  • Fixed a bug where subtree XMLs would erroneously have port information in the BehaviorTree element.
  • The interactive marker control generated by the RequestTeleoperation behavior now properly disappears when the teleoperation request ends.
  • Fixed a broken link to the release notes when clicking the MoveIt Studio version in the help menu.
  • Waypoints are now sorted when written to disk. Version control diffs of the waypoints yaml file should now be more readable.
  • Fixed an issue where planning with MTC to the exact state where the robot is already at would trigger an error.
  • Fixed an issue where "Resume" button could stick around after advancing through all breakpoints in a behavior tree.
  • Fixed a bug where host NVIDIA resources were not properly initialized in the Docker container for the drivers service, causing issues with GPU acceleration.
  • Invalid configuration package names are not accepted when using moveit_pro configure, users will be asked to re-enter the name if the package cannot be found.