7.5.1
Bug Fixes
- Fixed an issue where toggling the sidebar between open and closed did not work properly.
- Fixed a bug requiring a
docker-compose.yamlin the example user workspace for those with NVIDIA hardware.
docker-compose.yaml in the example user workspace for those with NVIDIA hardware.
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.

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.

You can now publish text markers in our visualizer, to better help understand and debug your robotics system.
RecordJointTrajectory Behavior which allows you to record the joint states of a given planning group as a JointTrajectory message./studio_breakpoint to /moveit_pro_breakpointSwitchUIPrimaryView 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.moveit_pro configure, users will be asked to re-enter the name if the package cannot be found.
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.

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.

Extending our existing Nav2 support, MoveIt Pro now has the ability to visualize a generated navigation path in the "Run" tab visualization panel.
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.
Checkout these new robot worlds to explore the full possibilities of MoveIt Pro:
Mobile manipulator moving cargo boxes in an airplane hangar.
moveit_pro run -c hangar_sim
Engine block machining example with PushCorp end effector on UR10e.
moveit_pro run -c grinding_sim
Client and servicer space vehicles performing grappling operation.
moveit_pro run -c space_satellite_sim
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.SetupMTCMultiEEFMoveAlongAxis behavior, for adding a "Move along frame axis" task to an MTC pipeline for multiple end-effectors.ros2_control.moveit_pro command line tool error output and print exceptions in red./joint_states while Teleoperating caused the UI to crash instead of displaying a temporary error message.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!
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.
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.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.fanuc_sim example.servo_node process rather than the more ambiguous component_container_mt process.RobotJointState message, when there was a mismatch between the number of joint names and joint positions.GetOdom behavior subscribes to an odometry message and stores it on the blackboard.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.IsPoseNearIdentity behavior checks if a pose is within the position and rotation tolerances of the identity pose. Useful for evaluating an error pose.PlanToJointGoal is run, contacts will be displayed as red spheres in the visualization pane./blackboard_contents topic to view the current state of all blackboard variables, the
variable types, and their values.
"variable_name": null in the
/blackboard_contents publications./visual_markers topic were computed incorrectly.index output port of the ForEach behavior wasn't accessible.SetupMTCPlanToJointState and SetupMTCPlanToPose which surface Pro RRT planner configuration
parameters on their input ports. SetupMTCMoveToJointState and SetupMTCMoveToPose have been marked as deprecated.SetupMTCMoveToJointState and SetupMTCMoveToPose as they will be removed in future
releases and the Pro RRT behaviors SetupMTCPlanToJointState and SetupMTCMoveToPose should be used instead.moveit::task_constructor::stages::ModifyPlanningScene and/or modify the global planning scene.src directory was not at the top-most level of the folder workspaceSetupMTCMoveToJointState or SetupMTCMoveToPose, please switch to SetupMTCPlanToJointState or SetupMTCPlanToPose respectively.
These new Behaviors use the pro_rrt planner and do not expose a planner_interface port.
These 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.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.PlanCartesianPath and ValidateTrajectory have been updated for faster planning out of the box.SetupMTCMoveAlongFrameAxis) have been optimized for faster planning.RobotModel is now part of BehaviorContext so that it can be used right away from Behaviors without the cost of loading it.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.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.GetTrajectoryStateAtTime behavior can be used to get the joint state of a robot at a specified time in a JointTrajectory.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.ForEachCollisionObject, ForEachGraspableObject, ForEachObjectSubframe, ForEachString, ForEachPoseStamped, ForEachMask2D, and ForEachMask3D Behaviors. Use base ForEach instead.PublishVelocityForceCommand while it is running so updates will be registered in the command.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.global_costmap/costmap_updates topic.local_costmap/costmap_updates topic.lab_sim world.moveit_pro down --rmi will delete Docker images that MoveIt Pro has built.MTCMoveAlongFrameAxis handling of min_distance and max_distance when they are equal.moveit_pro shell.else port is different between the objective builder and the objective runner.objectives directory.CreateJointState may have to be adapted to the new type it returns: moveit_studio_agent_msgs::msg::RobotJointState.ForEach in place of deprecated ForEach[Type] behaviors.docker-compose.yaml file found in the user workspace is now outdated and can be safely deleted. For configuring the workspace's base image further, please look at the Example Workspace's docker-compose.yaml.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.moveit_pro shell fails if no docker-compose.yaml exists in the user workspace.Pick AprilTag Labeled Object objective.