Skip to main content

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.

7.4.0

· 4 min read

Major Features

Blackboard Introspection Viewer

Blackboard Introspection Viewer

Based on a large amount of customer demand, we’ve added a new view pane in the "Run" tab that allows users to introspect the variable value contents of the blackboard.

Behavior Tree Port Autocomplete

Behavior Tree Port Autocomplete

Now when editing an Objective in the Build tab, the input and in/out ports will now provide a drop down of autocompletion suggestions based on the presence of output and in/out ports in the objective.

Navigation Path Visualizations

Extending our existing Nav2 support, MoveIt Pro now has the ability to visualize a generated navigation path in the "Run" tab visualization panel.

Enhanced Behavior Tree Viewing at Runtime

Now when running an Objective, watching the live status of Behavior Trees is more manageable with the ability to collapse and expand subtrees in the Behavior Tree Status panel. This allows you to specify how much of a large Behavior Tree to monitor.

New Example Robot Configs

Checkout these new robot worlds to explore the full possibilities of MoveIt Pro:

Hangar Sim

Mobile manipulator moving cargo boxes in an airplane hangar.

moveit_pro run -c hangar_sim

Grinding Sim

Engine block machining example with PushCorp end effector on UR10e.

moveit_pro run -c grinding_sim

Space Satellite Sim

Client and servicer space vehicles performing grappling operation.

moveit_pro run -c space_satellite_sim

Enhancements

UI Changes

  • Add ability to visualize LINE_STRIP markers
  • Adds a modal at startup for free trial users that specifies the remaining trial period and limitations of the free trial.
  • The state of the Nav2 visualization menu is now saved
  • Renamed option "Save Position" to "Overwrite Joint Position" in the Waypoint menu
  • Removed the behavior type filters from the search in the sidebar in the Build tab, as they were not frequently used.
  • Repositions user prompts over camera streams to not be over center of image
  • Removes display of the algorithms used from trajectory approval prompts, as most users are now declaring their planners in their behavior trees and can see the planner in the status viewer.

New Behaviors

  • The WaitForUserPathApproval Behavior visualizes a nav_msgs/Path message in the UI, giving the user the opportunity to either accept or reject the path. Try it out in the hangar_sim MoveIt Pro configuration.
  • Added SetupMTCMultiEEFMoveAlongAxis behavior, for adding a "Move along frame axis" task to an MTC pipeline for multiple end-effectors.

Documentation Improvements

Other Improvements

  • Refine moveit_pro command line tool error output and print exceptions in red.

Bug Fixes

  • Fixed a bug where UI layouts would erroneously persist between different robot configurations
  • Fixed an issue where the suggested connection for a new node in the Build tab would not appear if the potential parent node was too wide (i.e. had a long name)
  • Fixed a bug where missing /joint_states while Teleoperating caused the UI to crash instead of displaying a temporary error message.
  • Clicking on an objective search result from the "Run" tab now runs the objective instead of taking you to the builder
  • Fixed an issue where a saved layout containing an image topic that is not present would result in a blank pane that could not be removed.
  • Fixed a bug where editing YAML parameters via the Objective Builder, like admittance control parameters, would not save changes.
  • Fixed a bug where the bottom few pixels of the UI were cut off at certain resolutions.
  • Fixed a crash that sometimes occurs when running objectives.

7.3.0

· 5 min read

Major Features

Click Visualization Window to Get Pose

The ability to get a pose by clicking in the UI has been added via the GetPoseFromUser Behavior. With this Behavior, you can prompt the user to click in the Visualization pane in the UI, and return a PoseStamped message which corresponds the location of the click in the world frame. This Behavior can be used in conjunction with others, such as NavigateToPoseAction to command the robot more interactively!

Enhanced Nav2 Support

  • The ComputePathToPoseAction Behavior was added which interfaces with Nav2. This Behavior is intended to call the /compute_path_to_pose Nav2 action server so that a nav_msgs/Path is generated to some goal pose.

  • The FollowPath Behavior was added which interfaces with Nav2. This Behavior is intended to call the /follow_path Nav2 action server with a nav_msgs/Path message so that Nav2 can follow that path with the desired controller.

Enhancements

UI Changes

  • The expand/collapse state of folders in the left-hand sidebar in the UI is now persisted between sessions.
  • The "Clear Markers" button has been moved to the top of the marker dropdown list for easier access in a long list of visualizations.
  • Adds a modal at startup for free trial users that specifies the remaining trial period and limitations of the free trial.

Reference Application Changes

  • Improved ML model SAM2 example in lab_sim
  • Added basic tool-changing example to fanuc_sim
  • Removed the arm_on_rail_sim world in favor of lab_sim

Other New Behaviors

  • Added a new MTC Behavior, called SetupMTCBatchPoseIK, to compute pose inverse kinematics on a given set of target poses and insert the solutions in the MTC pipeline. This can be used, for instance, for grasping, where the set of grasp poses is computed externally.

Behavior Changes

  • Added a keep_orientation_link_names port to the PlanToJointGoal and SetupMTCPlanToJointState Behaviors. This port allows the user to specify the link names where the orientation constraint will be enforced. Multiple links can be constrained.

Documentation Improvements

Other Improvements

  • Launch the servo_node in its own process so errors in the log due to MoveIt Servo will be reported under the servo_node process rather than the more ambiguous component_container_mt process.
  • Blackboard viewer: Add "__type" field for primitive types that are in the JSON published on the "/blackboard_contents" topic.
  • Update the ros2 humble snapshot to 2025-01-21
  • Added the concept of MOVEIT_PRO_IGNORE files, which tells MoveIt Pro not to show certain robot config in the user-presentd list if they are not intended to be launched/run.

Bug Fixes

  • Fixed a bug that caused a Sequence that was converted to a SubTree to remain in the XML document erroneously.
  • Fixed a bug where streaming video in Chrome caused extreme degradation of UI performance.
  • Fixes an xml parsing issue leading to verbose console warnings such as "This search incorrectly ignores the root element, and will be fixed in a future version.".
  • Fixed a bug where clicking outside of Keepout Zones in the UI was not deselecting them as intended.
  • Fixed a bug where the first Marker published to the UI would cause the whole visualization to temporarily go blank and then reload.
  • Fixed an issue where error messages that contained numbers with decimal points could have an extraneous line break added to the middle of them.
  • Fixed a bug where subtree remap ports specified in a text editor would appear with a blank direction instead of assuming they are of direction IN/OUT.
  • Fixes a bug in an internal function that could cause a crash on Behaviors taking a RobotJointState message, when there was a mismatch between the number of joint names and joint positions.
  • Fixed a bug where the Build tab would not always correctly fit the tree to the view when jumping directly to editing an objective from screens other than the home screen.
  • Fixed a bug where prompts for user input were not being displayed in the UI.
  • Fixed a bug where searching for latter portions of behavior names (for instance, "stampedpose" as part of "createstampedpose") would not return the expected results
  • Fixed a graphical issue where hovered behaviors in the sidebar were the same color as the currently selected objective when editing.
  • Fixed a bug in CropPointsInBox where TF lookup times out frequently for valid transforms.
  • Fixed a bug where hidden folders were checked to find robot config packages.
  • Fixed a bug where the Marker Dropdown was not scrollable, making it impossible to select newer markers.
  • Folders in the left-hand sidebar no longer have inverted expand/collapsed state between different screens in the UI.

7.2.0

· 3 min read

New Behaviors

  • The GetOdom behavior subscribes to an odometry message and stores it on the blackboard.
  • The ComputeVelocityToAlignWithTarget behavior calculates a Cartesian control velocity to move a given 'end-effector' link towards a target. The output velocity is a sum of the target velocity and a 'catchup' velocity, so this Behavior can be used to align to and grasps objects in motion, in combination with a Cartesian Velocity controller (e.g. VFC) or Servo.
  • The IsPoseNearIdentity behavior checks if a pose is within the position and rotation tolerances of the identity pose. Useful for evaluating an error pose.

UI Changes

  • If the robot is initially in collision when PlanToJointGoal is run, contacts will be displayed as red spheres in the visualization pane.
  • Added more options to the Convert To Subtree menu in the Build tab.
  • Collision objects generated by the "add keepout zone" button now have user-readable IDs to make collision check errors more useful.

Other Improvements

  • Users can now echo the /blackboard_contents topic to view the current state of all blackboard variables, the variable types, and their values.
    • Note: at this time, only generic C++ types, vectors, and PoseStamped ROS messages + its recursive subfields are supported. All other objects on the blackboard will be displayed as "variable_name": null in the /blackboard_contents publications.
  • Improve error message if Pro fails to start because the provided URDF and MuJoCo MJCF model have mismatched actuators. Now the error message will print out the name of the missing/mismatched actuator.
  • Docker container prompts are now more obvious and fun!

Bug Fixes

  • Fixed a bug where waypoint would show when they're not usable from other telop modes.
  • Fixed a bug where the lifetime of markers published on the /visual_markers topic were computed incorrectly.
  • Fixed a bug where refreshing the Pro UI while running Teleoperate would lead to the objective getting canceled but the UI thinking it was still running.
  • Updates MoveIt2 version to include a fix for deleted objects not having their ACM entries removed.
  • Fixed a bug where expanding and collapsing a subtree will create duplicate nodes that cannot be removed.
  • Fixed a performance degradation when visualizing the Nav2 occupancy grid and/or costmaps in the UI.
  • Fixed a bug where the index output port of the ForEach behavior wasn't accessible.
  • Fixed "pause_servo" timeout that frequently occurs when users first attempt to servo the robot on startup of Pro.
  • Fixed a bug where converting a sequence to a subtree could result in incorrect behavior if the subtree had the same name as an existing objective.
  • Fixed a bug where an error during objective creation when converting a sequence to a subtree still erroneously removed the contents of the sequence instead of letting you try again.

7.1.0

· 3 min read

Major Features

  • ProRRT is now the default sampling-based joint-space planner used in all our example configs. ProRRT generates deterministic paths that are shorter, when compared to OMPL, and take less time to compute. In addition, it allows exposing additional features like velocity /acceleration scaling and link padding. Behaviors using OMPL pipelines have been deprecated.

Other changes

New Behaviors

  • Added SetupMTCPlanToJointState and SetupMTCPlanToPose which surface Pro RRT planner configuration parameters on their input ports. SetupMTCMoveToJointState and SetupMTCMoveToPose have been marked as deprecated.

Behavior Changes

  • Add deprecation warning to SetupMTCMoveToJointState and SetupMTCMoveToPose as they will be removed in future releases and the Pro RRT behaviors SetupMTCPlanToJointState and SetupMTCMoveToPose should be used instead.

UI Changes

  • Hides non-runnable objectives in the "Run" tab objective list.
  • Makes objectives start when clicked on in the "Run" tab objective list.

Documentation Improvements

  • Updated "Example UR5 Hardware Setup Guide" to explain which URCaps to install and a note about incompatibility with "Robotiq Gripper" URCap.
  • Updated behavior descriptions which use moveit::task_constructor::stages::ModifyPlanningScene and/or modify the global planning scene.
  • Added state estimation how-to guide.

Other Improvements

  • Improved the performance of saving objective updates from the UI.

Bug Fixes

  • Fixed an issue where loading a saved planning scene via the UI could result in the Allowed Collision Matrix (ACM) being cleared.
  • Fixed an issue where errors encountered when converting a sequence to a subtree could be unreadable.
  • Fixed a bug where objectives could fail to be created if your workspace's src directory was not at the top-most level of the folder workspace
  • Fixed bug where suggested nodes in Builder would show as selected

Migration Guide

  • We are winding down support for OMPL planners in MoveIt Pro in favor of our new Pro RRT planner. The OMPL-based behaviors will be functional while we transition to the new planner, but we encourage users to switch to the new Behaviors as soon as possible. If you are using SetupMTCMoveToJointState or SetupMTCMoveToPose, please switch to SetupMTCPlanToJointState or SetupMTCPlanToPose respectively. These new Behaviors use the pro_rrt planner and do not expose a planner_interface port. These new Behaviors still take planning_group_name and joint_state as inputs, but now also take additional inputs that help you control planning details as joint velocities, accelerations, link padding, etc. These additional inputs are optional and can be left as default values if you don't need them, so the new Behaviors are fully backward compatible with the old ones for most use cases. One exception is if you need to specify planning constraints. Please take a look at this how-to guide for more information on how to set planning constraints, or refer to the Behavior documentation in the UI for details.