Skip to main content

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

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

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.

6.5.0

· 6 min read

Major Features

Interactive definition of keep-out zones

The MoveIt Pro UI now provides a convenient interface for defining "keep-out zones" for regions you want to temporarily prevent your robot from planning motion into.

Occupancy Grid visualization

When using Nav2, the MoveIt Pro UI will now automatically display the occupancy grid in the visualization pane.

Save and load Planning Scenes from the UI

The MoveIt Pro UI now provides the ability to save and load MoveIt PlanningScenes to/from files. In conjunction with the keep-out zone feature, this can allow you to rapidly prototype a work area without adding environmental collision geometry to your URDF.

Mujoco Interactive Viewer

Launching pro with the mujoco_viewer in a config set to true will now launch both the MoveIt Pro UI and Mujoco viewer in an interactive state. You can make changes to the Mujoco simulation that are reflected in MoveIt Pro and vice versa.

New default workspace and config: introducing lab_sim

The new default MoveIt Pro workspace is the moveit_pro_example_ws, found here. The default config is now lab_sim, featuring a UR arm on a rail in a pharmaceutical environment. This workspace still contains the moveit_pro_ur_configs from past MoveIt Pro versions.

Other changes

  • Non-core behaviors, including user defined Objectives, show up as "Uncategorized" by default instead of "Miscellaneous" if no category is given.
  • Update ROS Humble snapshot to 2024-11-04.
  • Update moveit2 submodule to commit 5049e4d.

New Behaviors

  • Adds a GetCentroidFromPointCloud behavior, that estimates the cloud centroid given an input point cloud using pcl::compute3DCentroid, outputting a pose with the same header.
  • Adds ConvertMTCSolutionToJointTrajectory, SetupMTCPlaceFromPose, and SetupMTCPickFromPose to the core library from the previous example_behaviors config. The source code for these behaviors is still visible in that config.

Behavior Changes

  • Behaviors that inherit from ActionClientBehaviorBase must now set a positive timeout with the port goal_result_timeout. Setting 0 returns complete as soon as the action goal is accepted and setting a negative number blocks indefinitely until the action returns a result.

UI Changes

  • The subtree category in the Objectives sidebar now displays the number of objectives within it.
  • Core MoveIt Pro Behaviors now have better subcategorization in the Edit mode, making them easier to find.
  • Hovering over the abbreviated objective description will show the entire description.
  • Subtree port remapping definitions are now defined in the root node of the behavior tree being referenced instead of in the consuming SubTree node, making SubTree nodes' port edit menu behave similarly to all other port edit menus.
  • Adds visualization of the Occupancy Grid via Nav2 to the Visualization Pane of Pro, allowing users to now see Nav2 Occupancy Grid data without using rviz.
  • Visual enhancements when in tri or quad screens, including shrinking play controls.
  • Joint Groups are now only referred to as Planning Groups for consistency.

Documentation Improvements

Other Improvements

  • Questions during the setup process are now more clearly indicated with bolded text.
  • Robot config packages are more clearly listed when running moveit_pro configure.
  • Robot config packages now parse the package.xml to properly report config errors.
  • REST API errors are more clear for debugging purposes.
  • The default Cyclone DDS config was modified to better accommodate large messages on ROS topics such as point clouds. Behaviors such as GetPointCloud should execute much faster now.
  • Objective files are now formatted in a more readable manner when edited by the MoveIt Pro UI.
  • Velocity-Force Controller improvements:
    • Added support for 'control frames'.
    • Added a field in the command to specify motion to execute in the nullspace.
  • All CLI commands have received better prompts.
  • Installing MoveIt Pro now utilizes git-lfs to shrink the size of the moveit_pro_example_ws.

Bug Fixes

  • IMPORTANT: Fixed an issue where moveit_pro build fails when switching between workspaces. In order to fix this we had to revert a previous bug fix from 6.4 to use the docker-compose.yaml in the user workspace so for now this configuration will not be read by the moveit_pro CLI.
  • Fixed an issue where copy-pasted or duplicated behavior nodes in the behavior tree editor would erroneously retain read-only state if copied from within a subtree.
  • Un-built user workspaces will no longer erroneously throw a "missing environment variable" error on startup and will instead indicate hint that your workspace might not be built or sourced.
  • Fixed an issue where it was possible to connect two parents to one Behavior Tree node.
  • Fix CMake cyclical dependency issue that displays multiple "There is a cycle in the constraint graph" warnings during builds.
  • Fixed moveit_pro run showing all packages even if the user already selected a package.
  • Fixed an issue in cyclonedds that would cause Pro to crash during long-running objectives.
  • Fixed a bug where waypoints may fail to be edited on systems using FastDDS.
  • Fixed an issue where modifying a behavior tree could result in newlines being erroneously stripped from the file.
  • Fixes incorrect handling of the mass matrix in the Joint Trajectory With Admittance controller.
  • Fixes a bug causing loss of the Teleoperation modal when the Manual Control Tab fails to load.
  • Fixed keepout zone positioning in the UI not matching the ROS backend and inability to set negative integers for positions.
  • Fixed a middleware issue crashing MoveIt Pro after a day or longer of operation.
  • Fixed newlines being parsed out of xml files by MoveIt Pro UI changes to behaviors.
  • Fixed orbit controls being enabled during Teleop iMarker control, making it difficult to move the robot
  • Fixed inability to select text in the Behavior Search Bar.

6.4.0

· 2 min read

New Features

  • Added the export_logs CLI verb, creating a simple and efficient way to add log files to support requests.

UI Changes

  • Improved general UI performance when point clouds are present in the visualization pane.
  • The UI now remembers which panes you were looking at and displays them by default on next launch.
  • Waypoint and Objective Sidebars have been moved to the left side of the screen along with their toggle buttons. This greatly decreases cursor travel.
  • Joint Jog sliders are now disabled when collision checking is turned off.
  • The Joint Jog Slider Panel is now attached to the Visualization View.
  • Pose Jog Teleoperation buttons only exist within the primary view.

Documentation Improvements

  • Update MuJoCo config migration docs on retrieving the generated robot URDF
  • Added troubleshooting tips for docker-compose.yaml issues

Bug Fixes

  • Fixed numerous issues causing strange behavior and extraneous “File Conflict” warnings while editing behavior trees in the UI
  • Fixed an issue where the marker generated by AdjustPoseWithIMarker would not be removed from the UI upon cancellation of a running behavior tree
  • Fixed packages appearing in a random order when using commands like moveit_pro configure.
  • moveit_pro build now uses the user_ws docker-compose.yaml instead of always defaulting to the main docker-compose.yaml
  • Other minor fixes and improvements
  • Add dev service to installed docker-compose file so moveit_pro shell works when there is no docker-compose in the user workspace
  • When first node in a subtree is a comment node, and that subtree is expanded, the comment will no longer show in the UI blocking the visualization of the behaviors
  • The UI no longer flashes an incomplete rendering when initially switching to the Interactive Marker.
  • Moved Pose Jog buttons to a more stable position that are unaffected by other UI elements.
  • Updating objective name no longer throws error if subtree only checkbox is not toggled.
  • Added “Loading Objective” Prompt to top bar showing when a new objective is loading as opposed to showing the value left behind from the previously run objective.
  • “Approve Trajectory” message in Interactive Marker mode is correctly centered and positioned on screen.

6.4.1

· One min read

Bug Fixes

  • Fixed a bug where the subsampling of trajectories generated via motion planning was not guaranteed to include the last point in the trajectory, which could lead to non-zero ending velocities of the trajectory.

6.3.3

· One min read

Bug Fixes

  • Fixed a bug where the subsampling of trajectories generated via motion planning was not guaranteed to include the last point in the trajectory, which could lead to non-zero ending velocities of the trajectory.

6.3.2

· One min read

Bug Fixes

  • Fixes a bug where vector types on the blackboard in a behavior tree that cross a subtree boundary could throw an error related to converting between vector<T> and vector<Any>.

6.3.1

· One min read

Bug fixes

  • moveit_pro configure now lists packages in the workspace
  • In Offline Mode, "ROS invoked from outside a ROS context provider!" will no longer be thrown if an offline license is valid