Skip to main content

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

Migration Guide

Behavior changes

  • The Behavior UpdateAdmittanceController has been renamed to SetAdmittanceParameters and updated to interface with a Joint Trajectory with Admittance controller (JTAC). It can be used in combination with ExecuteTrajectoryWithAdmittance to execute a trajectory with admittance control. Any Objectives using the old UpdateAdmittanceController need to be updated to the new name, e.g:
<!-- Old -->
<!-- <Action ID="UpdateAdmittanceController" config_file_name="admittance.yaml"/> -->

<!-- New -->
<Action ID="SetAdmittanceParameters" config_file_name="admittance.yaml"/>
  • The SendPointCloudToUI behavior no longer depends upon the name of a sensor as registered with MoveIt, so the sensor_name input port was removed. Remove the sensor_name port from any references to this behavior.

Deprecations

  • Interfacing with a ros2_control layered admittance controller is now deprecated. SetAdmittanceParameters can still be used to set parameters in those controllers, but the Joint Trajectory With Admittance controller in MoveIt Pro (JTAC) is now the recommended way to perform admittance control.
Removed dependencies
  • MoveIt Pro does not depend on gz_ros2_control, and therefore it is no longer installed in the base image for MoveIt Pro. If you want to include this package in your overlay image, we recommend one of the following two approaches:
    • Clone the version of your choice to your user workspace, and build your workspace using `moveit_pro build user_workspace``
      • This approach allows full control over the version that is used and provides all the benefits of a source build
      • The moveit_studio_ur_ws was migrated to 5.3 in this way. You can see the changes here. <https://github.com/PickNikRobotics/moveit_studio_ur_ws/pull/288/files>_
    • Add the ROS 2 dependency to your configuration’s package.xml and build your Docker overlay using `moveit_pro build user_image``
      • The upstream dependencies are installed via rosdep, so your image will contain the latest version available through rosdep.