Skip to main content

6.2.0

· 4 min read

Major Features

Tool changing support

The ability to plan around collisions and visualize your robot while exchanging tools has been a popular feature request by users. We are pleased to announce support for this use case as well as MoveIt Pro simulator support for modeling tool change devices!

Refer to the new Tool Changing guide to configure this feature in your application.

New moveit_pro dev command

During the course of development, changes to your MoveIt Pro Docker image or user workspace may cause MoveIt Pro commands such as run to fail in such a way that the container cannot be started. When the container fails to start properly, moveit_pro shell has no container to enter, which can make diagnosing the source of failure difficult.

The new moveit_pro dev command enables you to start and enter a new container without building your user workspace packages or starting any MoveIt Pro services. In scenarios where run fails to start the container, use dev to diagnose the source of failure.

note

You need to define a dev service in your user workspace docker-compose file if not already defined for this service to work. See the dev service definition in the default UR workspace docker-compose.yaml as an example of this.

note

When your MoveIt Pro commands are working correctly, you should still use shell command when you want to enter the container. The dev command starts its own container which by default runs no MoveIt Pro services. If the dev container is present the shell command will open a shell session into it instead of the "agent_bridge" container enabling further troubleshooting or manually launching MoveIt Pro services as needed.

Ubuntu 24.04 (Noble Numbat) support

MoveIt Pro is now supported on the latest Ubuntu LTS release, 24.04.

As of this release, our supported platforms are

  • Ubuntu 22.04
  • Ubuntu 24.04
  • Debian Bookworm
  • VMware for Windows with Ubuntu 22.04
  • Parallels for OSX with Ubuntu 22.04

Using Parallels for OSX and VMWare for Windows with Ubuntu 24.04 is possible but may require extra setup due to current limitations in Parallels/VMWare out of box support for 24.04.

Other changes

Behavior Changes

  • LoadPointCloudFromFile allows specifying the file path either relative to a ROS package or as an absolute path.
  • Adds index output port to ForEach decorator node to enable getting unique IDs for each element.
    • This is useful if you use the ForLoop to create objects and you want to give it a unique name using its index.

UI Changes

  • Adds "Control Flow" category to all built-in Decorators and Controls behaviors.
  • Removes the top level of folderization of the Behaviors sidebar.
    • Behaviors without subcategory metadata (as explained in the Making a Hello World Behavior guide) will be placed in the Miscellaneous category.

Documentation Improvements

Bug Fixes

  • Fixes RCL guard condition failure.
  • Fixes port type in VisualizeMesh.
  • The UI now correctly displays that the contents of a subtree are uneditable without editing the subtree directly.
  • Prints correct config to screen after a launch time config change.
  • Fixes width of Edit Objective menu.
  • Fixes ports being ignored in the wrong place.
  • Fixes missing quaternion in SelectableMarker.
  • Reduced the incidence of erroneous "file conflict" warnings in the Behavior Tree Editor. We expect a complete fix in a later version soon.

Migration Guide

No steps are necessary to migrate from 6.1 to 6.2.

6.1.1

· One min read

UI Improvements

  • Added a placeholder screen to the status visualizer when MoveIt Pro has been started but no Behavior Tree has been instantiated.

Bug fixes

  • Fixed an issue where the end effector path preview may not populate correctly during trajectory preview.
  • Fixed a bug where the color and size of planning scene objects was not respected properly in the UI.
  • Fixed an issue where the UI would start in the two-pane layout even if you had cameras present.

6.1.0

· 4 min read

Major Features

Suggested Behaviors

When editing a behavior tree in the Build tab, the left-hand sidebar will suggest a handful of useful Behaviors that may be relevant to your current Objective.

Attached Collision Object Visualization

The MoveIt Pro UI has been updated to support visualizing AttachedCollisionObjects in the Planning Scene. Additionally, the rendering of the Planning Scene has been made generally more robust to allow more complex modifications to the scene from any behavior or external application.

Message assembler and disassembler behaviors

A new behavior plugin named moveit_studio::behaviors::ConverterBehaviorsLoader has been added. Adding the plugin to a site config allows for the creation of ROS messages on the blackboard using ports of the new behaviors. Additionally, the new behavior can unpack individual components of ROS messages to blackboard variables.

Other changes

New Behaviors

  • A Behavior that adds a Virtual Collision Object to the Planning Scene has been added to MoveIt Pro. A Virtual Collision Object is a Collision Object that does not exist in the actual world, but inside of the robots representation of the environment. This Behavior can be used to indicate areas where the robot should not plan into.
  • A Behavior that removes Collision Objects from the Planning Scene has been added to MoveIt Pro.

Behavior Changes

  • Updated the LoadPointcloudFromFile Behavior to make point cloud color an optional input.
  • Added a marker_name port to the VisualizePose Behavior.
  • Changed the SaveToYAML Transform port to now accept a TransformStamped message.
  • Added an optional link_padding port to the PlanToJointGoal behavior that is used by the Pro RRT planner. The padding applies only to robot links and will be used for self-collisions and for collisions with the environment.

UI Changes

  • Renamed “Objective Builder” and “Objectives” tabs to “Build” and “Run”, respectively
  • Added support for .obj files in visualized URDFs
  • Various text clarity and visual improvements

Documentation Improvements

  • Added guide on how to use the Velocity Force Controller.
  • Improved the guide on how to convert a URDF to a MJCF.
  • Added a guide for running MoveIt Pro without access to the internet.
  • Updated the MoveIt Pro Terms & Conditions.
  • Improved setup and upgrade documentation.

Other Improvements

  • The moveit_pro_controller_msgs package has been moved to the MoveIt Pro SDK to allow you to directly integrate with the Pro controllers from your configuration package (or any ROS application).
  • Available configuration packages listed during initial setup are now alphabetized.
  • Removed configuration prompt for a ROS_DOMAIN_ID from the initial setup process.
    • Our MoveIt Pro generated DDS configuration files do not use DDS multicast, so specifying a ROS_DOMAIN_ID is unnecessary. Providing your own DDS configuration file that uses ROS_DOMAIN_ID or multicast is still supported.
  • Updated the underlying versions of Ubuntu, ROS 2, and MoveIt 2 in Pro.
  • Made the moveit_pro test verb more robust to incomplete Pro configurations.
  • The underlying MuJoCo physics engine has been updated to now allow specifying initial joint positions.

Bug Fixes

  • Fixed bug where cameras in the MuJoCo physics engine were not applying the desired resolution correctly.
  • Fixed an issue where the license prompt in initial setup logged additional unnecessary error text.
  • Fixed a bug where offline licensing could crash the user interface.
  • Fixed an issue where the initial layout of the behavior tree in the builder and status windows could be incorrect.
  • Fixed an issue where published Markers could cause video streaming in the UI to halt unexpectedly.
  • Fixed an issue where published Markers with no name would show up blank in the marker show/hide list in the UI.
  • Fixed a bug where only particular Docker containers within MoveIt Pro were allowed to use X11.
  • Fixed an issue where favorited “subtree-only” behavior trees would still show up in the Favorites bar on the Run tab.
  • Fixed a number of issues with the “waypoint_name” dropdown in behaviors that utilize waypoints.
  • Removed moveit_pro reset, which was erroneously still present in the CLI despite no longer being necessary.
  • Other minor fixes.

6.0.2

· One min read

Bug fixes

  • Improve licence check message when launching MoveIt Pro
  • Fix SaveTransformStampedToYaml behavior port

6.0.1

· One min read
  • Fixed an issue where behavior tree's live status could be ordered incorrectly.
  • Fixed a bug where the edit menu in the Objective Builder would erroneously close itself shortly after text was input
  • Fixed a bug where the behavior tree's live status view would not correctly fit itself around the running objective upon initialization
  • Miscellaneous documentation fixes

6.0.0

· 10 min read

Major Features

New Simulation Engine

MoveIt Pro 6.0 introduces a new simulation engine that includes much higher fidelity physics simulation for manipulation tasks and more performant rendering of camera and depth data. This includes simulation of RGBD cameras, 2D and 3D LiDAR, force-torque sensors, and more! The new simulation engine has low system requirements and does not require a dedicated GPU. Check out the new arm_on_rail_sim configuration in the example workspace to try the new simulator for yourself.

Improved Configuration Parser

This version of Pro includes an overhaul of the parser that is used to construct a robot configuration from your YAML configs, Xacro files, and others. It includes much better error messaging for incorrectly-specified configuration arguments and will inform you when Pro deprecates parameters.

Pro RRTConnect

We have introduced a new joint-space planner (custom RRTConnect implementation), that can be used within MTC Tasks. This planner is deterministic, faster to compute, and more efficient compared to the default OMPL planner. In its initial release, orientation constraints are not supported. It can be used by setting planner_interface="pro_rrt" in your joint-space MTC planning Behaviors (SetupMTCMoveToJointState, SetupMTCMoveToPose, SetupMTCConnectWithTrajectory and SetupMTCMoveToNamedState).

Other New Features

Behavior Changes

  • Adds an optional constraints port to the SetupMTCMoveToPose Behavior for passing a moveit_msgs::msg::Constraints message to your selected planner.
  • The cost function for the SetupMTCMoveAlongFrameAxis Behavior now optimizes for longer Cartesian motions. This change enables MTC motion plans to move into contact. Previously, the planner favored short motions which made it difficult to move into contact.
  • Adds an optional ignore_environment_collisions port to the SetupMTCMoveAlongFrameAxis Behavior to ignore environment collisions during planning.
  • Adds an optional skip_collision_check port to the SetupMTCCurrentState Behavior to skip collision checking of the current robot state.
  • Updates the tip_offset port in the PlanCartesianPath Behavior to take in a 6D offset, i.e. position and orientation, instead of just a 3D position offset. Orientation is taken as roll, pitch, yaw (rad).
  • Adds optional ik_cartesian_space_density and ik_joint_space_density ports to the PlanCartesianPath Behavior that can be used to control the density of the path IK solution before turning it into a trajectory with TOTG.
  • Adds an optional timeout port to the GripperActionCommand Behavior in case the gripper is expected to take a long time to close.

New Behaviors

  • Adds a CropPointsInSphere Behavior.
  • Adds a PlanToJointGoal Behavior that plans between joint states using RRT. Short-cutting and time parameterization are applied to the path to create a trajectory message.
  • Adds a SetupMTCIgnoreCollisionsBetweenObjects Behavior to create an MTC Stage that modifies the planning scene's Allowed Collision Matrix to permit or forbid collision between a set of objects while planning subsequent Stages.
  • Adds a VisualizeMesh Behavior that can be used to visualize custom meshes within the Web UI.
  • Adds a VisualizePath Behavior that can be used to visualize a vector of PoseStamped as a polyline.
  • Add a VisualizePose Behavior. The Behavior publishes a Marker with three lines, one per axis, in red, green, blue at a location/orientation defined by a PoseStamped message.
  • Adds a GenerateCoveragePath Behavior to create a path that covers an area. The area to cover is defined by the origin (bottom-right corner), width, height and stride distance.
  • Adds two Behaviors to run admittance control at a stationary reference point. The GetRobotJointState Behavior extracts a ROS joint state message from a planning scene object. The CreateStationaryTrajectory Behavior creates a stationary trajectory of a specified duration at the provided joint state.

MoveIt Pro UI Changes

  • Increases the grid in the 3D visualization to 5 meters wide and includes useful measurement increments as sub-grids.
  • Removes running the Clear Snapshot Objective on UI bring-up and instead warns you if you have a non-empty Octomap that is now desynchronized from the UI.
  • Sorts favorited Objectives to the top of the Objectives list for easy access.
  • Renames the "Quick Objectives" list to "Favorites" to clarify how they are populated.
  • Adds a button to SubTree nodes to jump straight to the definition of that SubTree in the Objective Builder.
  • Adds an option to flag an Objective as being "SubTree Only" to hide it from the runnable Objectives list.
  • Improves some error messages in SubTree editing workflows.
  • Improves the search engine in the Behaviors list and Objectives list in the UI.
  • Adds an upgrade link to the UI when a new version of MoveIt Pro is available.
  • Errors when validating a user's license will now display in the user interface.

New Controllers

  • Adds a IOController controller to set discrete enable/disabled commands, such as when operating a vacuum gripper. The controller claims all state command interfaces specified by a ROS 2 parameter. The controller creates enable/disable service servers for each claimed interface.

Controller Changes

  • The JTAC and VFC controllers now offer services to re-zero the force-torque sensor readings. This allows logic for re-zeroing the force-torque sensor to be moved out of the hardware interfaces.
  • Enables using the JTAC even if a force/torque sensor is not defined. In this case JTAC will behave similarly to the JTC. It will disable admittance-related features, e.g. stop on force threshold, etc.

Dependency Changes

  • Upgrades the included version of Ubuntu to April 27 and ROS Humble to May 23.
  • Adds the ros2_control CLI to the MoveIt Pro Docker image.
  • Updates the included version of MoveIt Task Constructor.

Documentation Improvements

  • Revamped the MoveIt Pro documentation! 🎉
  • Added additional documentation for common installation questions
  • Added documentation for creating MoveIt Pro MuJoCo configuration based on a MoveIt Pro site config
  • Improved port documentation in some common behaviors
  • Clarified some installation instructions

Other Improvements

  • Reorders the questions in moveit_pro configure to be more intuitive.
  • Improves the help text in the moveit_pro CLI.
  • The moveit_pro CLI will now warn you if you do not have the proper permissions to access the Docker daemon.
  • Reduces the amount of warnings logged by MoveIt on bring-up of MoveIt Pro.
  • Verbose logging now includes timestamps at the beginning and end of running an objective.
  • Improves some licensing-related error messages.
  • Improves the MuJoCo integration to parse command interfaces from position, velocity, and motor tags in MJCF files.
  • Improves the validation logic for MoveIt Pro configuration packages to provide more helpful error messages when the config.yaml is syntactically incorrect.

Bug Fixes

  • Fixes acceleration profile calculation in the VFC.
  • Fixes a bug where larger Objectives might not zoom correctly when the "Fit to View" button is pressed.
  • Fixes a bug where copying and pasting port text could cause unnecessary duplication of behaviors.
  • Fixes a bug where a missing /camera_info topic for an image stream could cause the UI to freeze.
  • Fixes a bug where the waypoint_name dropdown on certain behaviors would not properly respond to clicks.
  • Fixes a bug where output ports would show up as in-out ports in the behavior tree status viewer.
  • Fixes a bug where a deleted objective could re-appear in the UI in the same session as it was deleted.
  • Fixes a bug where refreshing the MoveIt Pro UI would restart the running Objective.
  • Fixes a teleoperation bug where saving a new joint state to an existing waypoint might not succeed.
  • Fixes a bug where adding a port to a SubTree in the Objective Builder would prevent adding more ports to that same SubTree.
  • Fixes a bug where some Supervised Autonomy prompts would remain on-screen after stopping the objective that invoked them.
  • Fixes a bug where exceptionally large or exceptionally small Objectives caused strange tree layout behavior in the UI.
  • Fixes a visual bug with Joint Jog in Firefox.
  • Fixes a bug where the preview for waypoints might not change after the waypoint joint state was updated.
  • Fixes a bug where jogging a joint in Joint Jog did not exit the textual input for joint angles.

Known Issues

  • When using the MoveIt Pro UI, the Behavior sidebar for specifying port values will automatically close if you begin typing a value and then stop typing for ~2 seconds.

5.3.2

· One min read

Bug fixes

  • Fixed an issue where MoveIt Pro CLI commands could cause unnecessary rebuilding of the user workspace

5.3.1

· One min read

Bug fixes

  • Alleviated a performance issue when running the joint jog mode of teleoperation
  • Fixed an issue where you may have been unnecessarily prompted to remove your MoveIt Pro config directory during installation
  • Fixed an issue where clicking the “favorite” icon on an Objective would also execute that Objective
  • Fixed an issue where the runtime status of a behavior tree may not have automatically laid out correctly
  • Fixed an issue where MoveIt Pro could have unnecessarily restarted itself after a reboot of your computer
  • Fixed an issue where GenerateVacuumGraspPose could not be used in combination with some other MTC behaviors due to property conflicts
  • Additional miscellaneous fixes to installation and documentation

5.3.0

· 5 min read

New Controllers and Behaviors

  • We are releasing a "Joint Trajectory with Admittance" controller (JTAC) as a ros2_control controller plugin, and a corresponding behavior to interface with the controller, called ExecuteTrajectoryWithAdmittance. This behavior allows executing a trajectory in a compliant way if your robot has a force/torque sensor installed at the wrist. Check out our how-to guide Configure Admittance Control for more information.

User Interface Changes

  • The failure or completion of a running Objective will no longer jump you back to the Objectives homepage
  • Added a “restart” button for failed or completed Objectives
  • The Objectives tab now correctly resumes the UI for your currently-running objective when re-entered from another page
  • visualization_msgs/Markers of type ARROW are now supported
  • visualization_msgs/Markers of type MESH_RESOURCE are now supported
  • Editing an Objective that is referenced by another Objective as a SubTree will now warn you about its usage in other Objectives
  • The sidebar of the Objective Builder and Objectives tabs that lists all your Objectives now has a consistent look and feel between the two screens and has all the same functionality in both places

Behavior Changes

  • Add Velocity Force Controller interoperability:
    • Add PublishVelocityForceCommand behavior to send commands to the `Velocity Force Controller``
    • Add VelocityForceController plugin so it can be activated by the ActivateControllers behavior
    • Fix Velocity Force Controller control law direction
  • Improve Velocity Force Controller stopping behavior to limit jerk:
    • Execute a stop trajectory on timeout
    • Execute a stop trajectory on joint position limit prediction
  • Admittance Control updates:
    • Renamed UpdateAdmittanceController to `SetAdmittanceParameters``
    • SetAdmittanceParameters now generates parameters compatible with the MoveIt Pro Joint Trajectory Admittance Controller (JTAC) in addition to parameters compatible with the ros2_control admittance controller
      • Usage with the ros2_control admittance controller is deprecated and will be removed in a future version.
  • Simplified the behavior for displaying point clouds in the visualization pane. Point clouds are automatically transformed in to the world frame are no longer cropped via the ROS 2 parameter <sensor_name>.max_range. The unused port point_cloud_uuid was removed as well.
    • Migration: Remove the sensor_name="..." and point_cloud_uuid="..." ports from existing objectives with SendPointCloudToUI behaviors. The max_range parameter is no longer used by this behavior. To crop the point cloud, use one of our CropPoints behaviors.
    • Example:
      • Previous: <Action ID="SendPointCloudToUI" point_cloud="{point_cloud}" sensor_name="scene_scan_camera" pcd_topic="/pcd_pointcloud_captures" point_cloud_uuid=""/>
      • Updated: <Action ID="SendPointCloudToUI" point_cloud="{point_cloud}" />

Other Enhancements

  • Updated launcher and documentation tips for easier workspace builds try `moveit pro build --help``
  • ign_ros2_control removed as a core dependency.
    • Migration options:
      • Clone the version of your choice to your user workspace, and build your workspace using `moveit_pro build user_workspace``
      • Add the ROS 2 dependency to your configuration’s package.xml and build your Docker overlay using `moveit_pro build user_image``

Bug Fixes

  • Fixed moveit_pro test to correctly run colcon test in a MoveIt Pro Docker container. Use moveit_pro test --help for additional usage tips
  • Clarified the joint limit exceeded error message to not imply that the joint was necessarily commanded to that position
  • visualization_msgs/Markers will now properly have their frame_id respected instead of rendering only in world frame
  • Fixed an issue where the previews for joint jogging in Teleoperate could become desynchronized from the robot state
  • Additional miscellaneous fixes and improvements

Previous:

<Action ID="SendPointCloudToUI" point_cloud="{point_cloud}" sensor_name="scene_scan_camera" pcd_topic="/pcd_pointcloud_captures" point_cloud_uuid=""/>

Updated:

<Action ID="SendPointCloudToUI" point_cloud="{point_cloud}" />
  • Other Enhancements:
    • Updated launcher and documentation tips for easier workspace builds try moveit pro build --help
      • ign_ros2_control removed as a core dependency.
        • Migration options:
          • Clone the version of your choice to your user workspace, and build your workspace using moveit_pro build user_workspace
            • Add the ROS 2 dependency to your configuration’s package.xml and build your Docker overlay using moveit_pro build user_image

5.2.0

· 3 min read

Key Changes

  • Added support for differential drive mobile manipulators. Please reference the configuration for the Hello Robot Stretch RE1 for an example of how to configure MoveIt Pro for this use case.

Coffee Shop Demo

Configuration Improvements

  • Added support for MuJoCo simulation backend.
    • The user workspace can now be built with additional Colcon arguments (like packages_select) using moveit_pro build user_workspace --colcon-args="--packages-select your_package"

New User Interface Features

  • If your robot is reporting joint states outside of the defined limits in your URDF, the UI will display a warning including the joint name, state, and the violated limit.
    • If your robot is erroneously reporting joint states for fixed joints, the UI will display a warning including the name of the joint that may be mis-defined in the URDF or misconfigured in the robot driver.
    • MTC Solutions containing Multi-DOF joint states e.g. mobile bases can now be previewed in the UI
    • Interactive Marker teleoperation is now compatible with Multi-DOF joints e.g. mobile bases.
    • Saved Waypoints can now include Multi-DOF joints e.g. mobile bases.
    • The interface will now notify you if there’s a new version of Pro available with your subscription.
    • Clicking on the version number in the help dropdown will now take you to the release notes of your version of MoveIt Pro.
    • When using Interactive Marker teleoperation, you can now select which planning group you would like to drag.

Behavior Changes

  • Navigation behaviors that call actions on a system running Nav2:
    • NavigateToPoseAction: Sends the base to a single pose using Nav2
      • NavigateThroughPosesAction: Sends the base through a vector of poses using Nav2
    • GetMasks2D has been updated to handle clicked points on the image.
      • GetMasks2D Behavior updated to use PointStamped as the clicked-point message type for better interoperability with other ML Behaviors.
        • Segment Anything Action Server now parses clicked points for better Segment Anything inference.
    • YAML Behaviors for saving and loading new message types have been added. MoveIt Pro now supports saving and loading:
      • std_msgs/Header
        • geometry_msgs/PointStamped
        • geometry_msgs/Quaternion
        • geometry_msgs/Vector3
        • geometry_msgs/Transform
        • geometry_msgs/TransformStamped
        • UnorderedMap<String, Waypoint>
    • Added a CropPointsInSphere behavior that enables users to crop point clouds based on their radial distance from a designated frame
    • MTC Behaviors requiring Cartesian motion will now use an improved internal solver.
    • GetSyncedImageFromPointCloud now allows the topics being synchronized to have differing QoS settings
    • SetupMTCConnectWithTrajectory will add a connect MTC stage to the task to join the previous stage with the start state of the next stage using a freespace trajectory.

Planner Changes

  • The default joint-space interpolation planner is now exclusively RRTConnect, instead of both RRTConnect and Pilz PTP, to reduce the number of required configuration files for most users.

Other Enhancements

  • Added a stop_accelerations port to the MoveIt Pro Joint Trajectory Admittance Controller to allow specifying per-joint decelerations to use when halting trajectory execution, in the event of force threshold being met or other exit criteria.
    • Apply a second-order Butterworth filter and deadband to the force/torque sensor signal in the Trajectory Admittance Controller.
  • Updated SubTree turorial
    • Bug fixes and performance improvements.
    • Improved errors for unsupported configurations.
    • Dropped mainline support for Ubuntu 20.04, to support continuing improvements to the moveit_pro launcher.
      • Current customers can contact us at support@picknik.ai for a workaround if needed to support mission-critical 20.04 systems.