Skip to main content

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. The 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.

7.0.1

· One min read

Bug Fixes

  • Fixed an issue where objectives with nested SubTrees could take longer to load in the Build tab than expected.
  • Fixed an issue where duplicating objectives or editing their metadata from the sidebar would not refresh their listing in the sidebar.

7.0.0

· 6 min read

Major Features

  • Add trajectory stitching in the Joint Trajectory Admittance Controller. This enables the JTAC to stitch a new trajectory to a currently executing trajectory without stopping.
  • This version includes a built-in pose inverse kinematics solver (PoseIK) that is 10x faster than existing open-source solvers. Check out the corresponding how-to guide. The example configs have been updated to use this new IK solver.
  • Introduced a new sidebar that unifies the look and feel of the Build and Run tabs and allows leaving the sidebar open while the robot is executing a tree, for quicker multi-tasking while developing new objectives.

Other changes

  • Pro-RRT now supports robots with continuous joints, to move along the shortest direction to the target angles.
  • Pro-RRT now supports 2 DOF orientation constraints, e.g. keep the tool with a bound angle with respect to the horizontal.
  • Planning speed-up:
    • The default port values in PlanCartesianPath and ValidateTrajectory have been updated for faster planning out of the box.
    • MTC Cartesian planning Behaviors (e.g. SetupMTCMoveAlongFrameAxis) have been optimized for faster planning.
    • The RobotModel is now part of BehaviorContext so that it can be used right away from Behaviors without the cost of loading it.

New Behaviors

  • GetMasks2DFromPointQuery uses an ONNX model to segment images from a click and generate masks. The “Segment Point Cloud from Clicked Point” example objective in the moveit_pro_example_ws shows using this to segment objects from point clouds.
  • AddToolToScene and RemoveToolFromScene are new Behaviors that can be used to insert or remove a 'tool' into the Planning Scene. Please refer to the Tool Changing guide for more information.
  • The GeneratePointToPointTrajectory behavior can be used to generate a straight line JointTrajectory between two joint space waypoints defined by RobotJointState ROS messages. The waypoints may have non-zero velocities if desired.
  • The GetTrajectoryStateAtTime behavior can be used to get the joint state of a robot at a specified time in a JointTrajectory.

Behavior Changes

  • AttachTool now requires that the tool exists in the Planning Scene before it can be attached (via the new AddToolToScene Behavior).
  • AttachTool does not take the tool URDF and relative pose anymore, it just takes the parent link to attach to.
  • DetachTool will insert the detached tool back into the Planning Scene after it is detached, at the detachment pose.
  • CreateJointState now returns a moveit_studio_agent_msgs::msg::RobotJointState as output, to make it consistent and compatible with other Behaviors.
  • Removed redundant ForEachCollisionObject, ForEachGraspableObject, ForEachObjectSubframe, ForEachString, ForEachPoseStamped, ForEachMask2D, and ForEachMask3D Behaviors. Use base ForEach instead.
  • Re-retrieve input port values in PublishVelocityForceCommand while it is running so updates will be registered in the command.
  • Behaviors can now be marked as deprecated by adding a metadata key-value pair with key deprecated and a string with any detail you'd like to add. When deprecated behaviors are loaded during an objective run, a warning will be logged.

UI Changes

  • Changed Behavior Tree nodes to show 5 ports before the "Show more" button is shown, instead of 3.
  • Add ability to visualize TRIANGLE_LIST markers
  • Add ability to visualize mesh CollisionObjects as TRIANGLE_LIST markers
  • Add popovers and ability to copy text in port type labels.
  • Make the "Select Joint Groups" in new waypoint form secondary.
  • Unified terminology in UI to use "Duplicate" instead of "Clone"
  • Update notification toasts to use subject headers and add a "Clear All" button
  • Auto-focus the objective search input when opening the slide out objective panel
  • Add a "Planning Group" label in jog settings to clarify the purpose of the setting.
  • Reorder ports to show them in the sorted order "IN", "OUT", "INOUT" and alphabetically for ports with the same direction.
  • Adds visualization of the Global Costmap via Nav2 to the Visualization Pane of Pro, which dynamically updates via the global_costmap/costmap_updates topic.
  • Adds visualization of the Local Costmap via Nav2 to the Visualization Pane of Pro, which dynamically updates via the local_costmap/costmap_updates topic.
  • Subtree port remapping no longer allows the creation of input and output ports, as all subtree ports are actually in/out.

Documentation Improvements

  • The Tool Changing guide has been updated to reflect the changes in the tool-changing Behaviors.
  • The AprilTag guide has been updated to for the lab_sim world.
  • The workflow for Running MoveIt Pro without the CLI has been released.
  • Add the MoveIt Pro ML on Jetson Devices guide for enabling the GPU on Jetson devices while running MoveIt Pro.
  • Print MoveIt Pro header on first run or configure.
  • A guide has been added on how to setup a MoveIt Pro config to use Nav2.

Other Improvements

  • Deprecate the subtree_only flag for runnable flag for positive assertions and improved clarity.
  • Running moveit_pro down --rmi will delete Docker images that MoveIt Pro has built.

Bug Fixes

  • Fixed a bug where nodes with short node names but long port names could lay out incorrectly in the Behavior Tree Editor.
  • CreateJointState bugfix: avoid segfaulting if users don't pass in effort values.
  • Fixed a bug with MTCMoveAlongFrameAxis handling of min_distance and max_distance when they are equal.
  • Fixed an issue where certain prompts in the UI might not disappear correctly when a user cancels a running objective during execution.
  • Fixed a bug where terminals were not properly colorized inside moveit_pro shell.
  • Change SaveFromYaml and LoadFromYaml behaviors to save/load directly in the active configuration's source objectives folder instead of the temporary .config folder.
  • Fixed a bug where the Precondition Behavior's default value for the else port is different between the objective builder and the objective runner.
  • Uninstalling MoveIt Pro will now delete its Docker images again.
  • Fixed a bug where the application would crash if a robot configuration contained an empty objectives directory.
  • Fixed an issue where the UI detecting new ROS image topics could erroneously reset the layout in the run tab.
  • Fixed an issue where the "Run" tab could consume much more CPU than intended.

Migration Guide

  • Existing uses of CreateJointState may have to be adapted to the new type it returns: moveit_studio_agent_msgs::msg::RobotJointState.
  • Use ForEach in place of deprecated ForEach[Type] behaviors.
  • The docker-compose.yaml file found in the user workspace is now outddated and can be safely deleted. For configuring the workspace's base image further, please look at the Example Workspace's docker-compose.yaml.
  • Gazebo Configuration Guide is deprecated. We recommend you switch to the new simulation engine.
  • The internal dependency to trac_ik has been removed in favor of the new PoseIK solver. If you want to continue using trac_ik, you'll need to clone the trac_ik repository and build it in your user workspace. Otherwise you can switch to the new PoseIK solver by following the how-to guide.

6.5.2

· One min read

Bug Fixes

  • Fixed an issue where file conflicts could erroneously appear in the objective editor.
  • Fixed an issue where behavior tree metadata such as categories could be accidentally discarded by the objective editor.

6.5.1

· One min read

Bug Fixes

  • Fixed an issue where DDS tuning parameters were not correctly installed until after a reboot.
  • Fixed an issue where moveit_pro shell fails if no docker-compose.yaml exists in the user workspace.
  • Fixed an issue where default values in behavior tree XML files were not populated when created via the UI.
  • Fixed an issue where the UI could crash if drivers stopped publishing joint states while running the Teleoperate objective.
  • Fixed an issue where saved planning scenes did not load after relaunching Pro.
  • Fixed an issue to resolve the relative path of Pick AprilTag Labeled Object objective.