Skip to main content

5.1.1

· One min read
  • Documentation fixes.

5.1.0

· 6 min read

Key Changes

  • MoveIt Pro no longer automatically launches RealSense cameras defined in the cameras.yaml. To better support different hardware configurations, cameras.yaml is no longer required and you must launch your camera drivers yourself. We’ve included an easy migration script to convert your cameras.yaml to a cameras.launch.xml!
    • Added an ExecuteTrajectoryWithAdmittance behavior to allow use of the MoveIt Pro Joint Trajectory Admittance Controller
      • This controller has no dynamic memory allocation during execution to improve safety and reliability.
        • This controller takes admittance parameters as part of the command, as opposed to a separate ROS 2 parameter interface, which makes it easier to use.
        • This controller implements ‘stop-on-contact’ functionality and smooth stop trajectories.
    • Added new Behaviors and UI functionality for operator input, RequestTextFromPrompts and AdjustPoseWithIMarker
    • Major SubTree usability enhancements in the Objective Builder

Configuration Improvements

  • Removed cameras.yaml from MoveIt Pro’s configuration parser and launcher (see Key Changes section)
    • Fixed many issues with stale configurations that were caused by persistent ~/.config/moveit_pro directories. This directory is now ephemeral, and all changes persist back to your site configuration’s source directory.
    • moveit_pro setup_workspace now supports cloning SSH / git@ repositories
    • Corrected ~ expansion in User workspace path ({STUDIO_HOST_USER_WORKSPACE})

New User Interface Features

  • MoveIt Pro’s URDF visualizer now supports Planar and Floating joints.
    • Using the AdjustPoseWithIMarker behavior, an Objective can now request that an operator adjust a pose within the 3D scene using an interactive marker. For example, verifying a candidate grasp pose in a user-in-the-loop pick-and-place.
    • Using the RequestTextFromPrompts behavior, an Objective can now request that an operator input textual content into a form. This enables, for example, including operator-driven prompting of an ML model within your Objective.
    • Improved display of SubTree descriptions in the Objective Builder
    • Modifications to SubTree ports are now saved as defaults within the SubTree. Subsequent uses of the SubTree will automatically populate the ports with default values
    • Visual clarity improvements to crosshair when selecting points on an image feed
    • Replaced port directionality arrows in the Objective Builder with color-coded text to improve glanceability
    • SubTrees are now collapsed by default in the Objective Builder, to make editing large, highly-composed Objectives less unwieldy. Manually expanding them will still keep them expanded between sessions.
    • Bug fixes and performance improvements, especially for teleoperating robots without grippers

Behavior Changes

  • Behaviors added to support grasp candidate adjustment in the UI:
    • AdjustPoseWithIMarker publishes a candidate pose and returns the adjusted pose from the UI
      • GetSyncedImages synchronizes two camera topics, most useful for synchronizing RGB data with depth data to generate a pose from a pixel coordinate
    • Added the RequestTextFromPrompts behavior to display textual forms in the UI
    • Removed internal-only GetPoseFromUser and GetIntFromUser behaviors
    • Added template behaviors AddToVector<T> and ResetVector<T> which can be implemented to allow composing vectors during Objective runtime
    • Error message improvement to ActionClientBehaviorBase:
      • The ActionClientBehaviorBase behavior template now exposes a getAbortedMessage function that returns a string. The string will be displayed in the MoveIt Studio error toast message if the action is aborted. The ExecuteFollowJointTrajectory and ExecuteTrajectoryWithAdmittance behaviors now provide useful hints if they are aborted.
    • Added ExecuteTrajectoryWithAdmittance (see Key Changes section)
    • SetupMTCUpdateGroupCollisionRule behavior's parameters are no longer read in from a YAML file using the LoadObjectiveParameters behavior. The behavior parameters are set as input ports.
    • Added GetMeshNormalPose behavior to calculate the surface normals of a visual mesh in the robot model
    • Added PublishMarkers behavior to publish a MarkerArray to the UI/RViz.
    • Added SolveIKQueries behavior to determine if the robot can reach a list of target poses.
    • New “load from YAML” and “save to YAML” behaviors for:
      • Octonion
        • Vector3
        • Transform
        • TransformStamped
        • Time (builtin_interfaces)
        • Waypoint (moveit_studio_agent_msgs)
        • UnorderedMap<String, Waypoint>

Controller Changes

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

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

  • Improvements to MoveIt Pro’s Docker configuration to allow better interoperability with EtherCAT-based hardware
    • Numerous improvements to error messaging in the moveit_pro script and the included launchfiles
    • The MoveIt Pro installer will now attempt to version-match a requested configuration download against the installed version of Pro.

5.0.0

· 7 min read

Major version increase.

Major UI Enhancements

  • Web UI Modifications: The Web UI now automatically retrieves the generated end effector URDF, enhancing integration and reducing manual configuration efforts.
    • Enhanced Jog Interface: The UI dynamically queries the servo system to identify joggable joints, streamlining user interaction.
    • Request Points from User: Your objective can now request that an operator click location(s) on an image stream, to help you build supervised autonomous workflows.
    • UI Bug Fixes and Improvements:
      • Resolved various UI issues including constraints editor malfunctions, sidebar layout fixes, and enhanced scroll interactions in multiple UI components.
        • Enhanced Error Handling and User Interface Adjustments: Improved error feedback mechanisms and refined user interface elements to enhance the user experience.

Behavior Development and Enhancements

  • Behavior Server Updates: Objective Server now supports automatic generation of tree_nodes_model.xml for Behavior plugins, significantly simplifying behavior management.
    • New Behaviors Introduced:
      • Servo Towards Pose: Allows more intuitive point-and-move operations. Enables Visual Servoing applications.
        • User Interactive Behaviors: Enhanced capabilities for user interaction, including getting points and poses from pixel coordinates.
    • Behavior Stability: Significant stability enhancements and refactoring across various behaviors to improve reliability and performance.
    • Behavior Refactoring: Complex behaviors have been converted to behavior tree objectives using a collection of simpler behaviors, adding further insight and adaptability to existing capabilities.

URDF and SRDF Updates

  • Enhancements to streamline the handling of robot descriptions and semantics.
    • Centralized fetching of robot descriptions ensures consistent application settings.
    • Gripper configurations are now directly integrated from SRDF, improving setup accuracy.

Documentation and Tutorials

  • Added comprehensive guides on using Visual Servoing and implementing pick and place operations, fostering a deeper understanding and broader application of MoveIt Studio functionalities.

MTC (MoveIt Task Constructor) Enhancements

  • Enhanced Debugger Features:
    • Solution Introspection: The MTC solution can be inspected by clicking the bug icon on the PlanMTCTask node in the behavior tree after it gets ticked. Each stage of the MTC task is labelled with a pass/fail indicator as well as time to compute and number of valid solutions.
      • Runtime Metrics: Run times are now displayed in the MTC debugger, providing immediate feedback on task execution durations.
      • Advanced Visualization Overlays: Introduced visualization overlays in the MTC debugger to enhance the clarity of task planning.
    • Visualization and User Interface Optimizations: Improved Error Displays. Collision information is now displayed when MTC plans fail, providing detailed feedback for troubleshooting.
    • Backend Enhancements and Error Handling:
      • Data Storage Enhancements: Task descriptions and statistics are now stored in the backend, enabling better tracking and historical analysis of MTC operations.

Installer and Launcher Updates

  • New Installer: Transitioned to a Debian package-based installer, facilitating a smoother installation process.
    • Launcher Enhancements: Improved the moveit_pro launch script for enhanced user experience starting and managing sessions.

Dependency Management

  • ROS and Ubuntu Snapshot Updates: Current to the latest February 2024 snapshots, ensuring compatibility and performance.
    • BehaviorTree.CPP Upgrade: Updated to version 4.5.2, leveraging new functionalities and performance improvements. This update is part of broader enhancements in package management and dependency declarations, ensuring the system remains robust and efficient.
    • MoveIt 2 Servo Updates: Updated to fix collision checking with attached objects, significantly improving motion planning reliability.

Other improvements

  • Reduce memory usage, improve load times, data consistency and network efficiency.
    • Stability Improvements: Multiple fixes and validations added to enhance the overall stability and reliability of the application framework.

4.0.2

· One min read
  • moveit_pro build_workspace reports if there are errors building or running the user Docker overlay.
  • Fixes to use and error reporting of symlinks.
  • Fix use of symlinks to create/delete/clone objectives from REST API.

4.0.1

· One min read
  • Add ability to authenticate licenses offline after one-time setup.
  • Allow overriding lists in robot configuration files with empty lists.
  • Fix displaying prismatic joints with nonzero rotation in UI.

3.0.2

· One min read
  • Add ability to authenticate licenses offline after one-time setup.
  • Allow overriding lists in robot configuration files with empty lists.
  • Fix displaying prismatic joints with nonzero rotation in UI.

4.0.0

· 5 min read

Changes in This Release

Major version increase and rebrand to MoveIt Pro.

  • Updated Terms and Conditions.
  • Several user commands and folder locations have changed from moveit_studio to moveit_pro.
  • MoveIt Pro core Docker image no longer contains robot-specific packages, which changes user workflows.
  • Major refactor of teleoperation:
    • Switched to single Teleoperate Objective that allows user to move between different teleoperation modes without switching Objectives.
      • Added reusable Request Teleoperation Subtree that allows adding teleoperation in your custom Objectives, with configurable prompts to guide operators.
  • New Behaviors:
    • FitLineSegmentToMask3D - Fits a line segment to a 3D point cloud fragment.
      • LoadPoseStampedFromYaml - Loads a stamped pose ROS message from a YAML file.
  • Developer tooling:
    • Modifications to Objectives and Waypoints in the UI are now synced to user workspace source code, and vice versa.
      • New metadata format in tree_nodes_model.xml to categorize your Behaviors.
      • Added SendMessageToTopicBehaviorBase class to create Behaviors that publish to a ROS topic.
      • Improved error messages when Behavior ports are set incorrectly.
  • Universal Robots (UR) example workspace:
    • Repository renamed to moveit_studio_ur_ws for clarity.
      • Removed the camera-aligned manual_grasp_link frame from robot description, in favor of the gripper-aligned grasp_link frame.
  • Improved servoing for position-controller robots, which requires changes in MoveIt Servo configuration.
  • New ./moveit_pro logs command to open a log viewer.
  • Documentation:
    • Tutorials on creating Behaviors that interact with ROS services and actions.
      • New reference application pages on Object Registration and ML Segmentation.
      • Added ability to provide user feedback on documentation pages. Please share your feedback with us!
  • UI Updates:
    • Simplified interface: smaller logo, manual control options appear only when teleoperating.
      • Improved validation for misconfigured ports and unconnected Behaviors.

3.0.1

· One min read
  • UI bug fixes
  • Fix STOMP segfault when robot is in collision during planning

3.0.0

· 6 min read

Changes in This Release

Major version increase.

  • Updated MoveIt version to include planning pipeline refactor and per-joint limit margins in MoveIt Servo.
  • Added new Parameter Manager node to store and retrieve joint state and pose parameters set from the UI for manual control applications.
  • New Behaviors:
    • ExtractGraspableObjectPose - Given a Graspable Object, returns its pose to an output port.
      • RetrieveJointStateParameter / RetrievePoseParameter - Retrieve joint states and poses that are set from the UI for manual control applications.
      • PublishStaticFrame - Publishes a static transform to the tf2 buffer.
      • PublishString - Publishes a string to a specified ROS topic.
  • Behavior Changes:
    • AveragePoseStamped - No longer an experimental Behavior. Can be used multiple times in a single Objective, improved orientation averaging, and configurable for finite-time vs. continuously running operation.
      • Pick AprilTag Labeled Object tutorial updated with new pose averaging capabilities.
      • GetJointStateFromUser removed in favor of RetrieveJointStateParameter.
      • SetupMTCMoveAlongFrameAxis - Get all input parameters from individual ports instead of a YAML file.
      • YAML read/write Behaviors:
        • New LoadFromYaml, LoadMultipleFromYaml, and SaveToYaml base classes for authoring custom Behaviors.
          • All Behaviors now support absolute paths and relative paths to the configuration folder (${HOME}/.config/moveit_pro/<config_package_name>/objectives) folder.
          • SaveJointTrajectoryToYaml / SavePoseToYaml - Refactored to reuse generic implementation.
          • WritePoseToYaml removed in favor of SavePoseToYaml.
      • Behavior interface for developers:
        • Replaced all uses of fp::Result with tl::expected.
          • ActionClientBehaviorBase base class now provides a processFeedback function to insert user code for handling action feedback.
  • moveit_studio_agent_msgs package moved to the public moveit_studio_sdk repository.
  • Added integration testing reference package to moveit_studio_ws repository, including CI support.
  • UI Updates:
    • New debug overlay when planning fails with PlanMTCTask Behavior.
      • Added debugging resume button to be used along with BreakpointSubscriber Behaviors.
      • Allow streaming images from arbitrary ROS topics.
      • Show pre- and post-conditions in Behavior Tree editor.
      • Trajectory previewing: Display planning algorithms, replaced stepped with simplified approval view.
      • Removed Logs tab.

2.11.0

· 2 min read

Changes in This Release

  • New Behaviors:
    • Point Cloud Manipulation Behaviors:
      • MergePointClouds - For merging multiple point clouds into a single cloud.
        • AddPointCloudToVector - Adds a point cloud to a vector of point clouds.
        • TransformPointCloud, TransformPointCloudFrame - For transforming point cloud frames.
      • Grasping and Planning Behaviors:
        • AddSubframeToObject, GetGraspAndTwistSubframes, GetMoveAlongArcSubframes - For interacting with object affordances in planning tasks.
          • TransformPoseWithPose - For applying transforms (as poses) to poses.
          • PublishStaticFrame - Publishes static transforms to tf2.
      • Utility and Testing Behaviors:
        • ReadTextFileAsString - Reads the contents of a text file as a string.
          • LoadSubframesFromYaml - Loads a set of frames from a persisted file.
          • LoadPoseStampedVectorFromYaml - Loads a set of PoseStamped objects from a yaml file into a vector.
          • GenerateObjectsInBox - For testing; can be used to generate random cuboids in a bounding volume.
          • ForEachPoseStamped - Iterates over a vector of poses.
  • Behavior Changes:
    • LoadPointCloudFromFile - New scaling factor added for resizing imported meshes if needed.
      • GetMasks2DAction - Option added for filtering masks by object classes.
  • Documentation changes:
  • UI Updates:
    • Additional color and skinning updates to the Behavior Tree panels.
      • Fixed synchronization issues when deleting Behavior Tree nodes.
      • Prevent users from updating subtrees in certain scenarios.