7.6.2
Bug Fixes
- Fixed an issue where the auto workspace updater was not triggering git-lfs submodule updates, resulting in outdated dependencies and failed builds.

MoveIt Pro now supports computing Inverse Kinematics for multiple end-effectors simultaneously using the ComputeInverseKinematics Behavior. This feature is useful for robots with multiple arms or end-effectors that need to reach multiple goals at the same time.

You can now assign categories to Objectives, as well as create new categories, from within the UI.

Our example workspace fanuc_sim is now factory_sim and contains new assets and example Objectives for planar and mesh based reachability analysis.

Creates a new d-pad for pose jog in the sidebar rather than overlaying it on visualization pane
/objective_server_heartbeat ROS topic with the currently running process runtime, current Objective name, and the status of the Objective. This topic publishes the moveit_studio_agent_msgs/msg/ObjectiveServerStatus message.moveit_pro_objectives package) that can be inherited in any robot config or workspace to speed up development time and increase consistency.ComputeInverseKinematics Behavior to compute IK for multiple end-effectors simultaneously.-l and --list options to moveit_pro run verb to list all available configuration packages in the current user workspace.--browser (default) and --no-browser options to prevent the application to launch a new browser window on startup.PublishMask2D exposes opacity as an input port to change the translucency of the overlaid masks.InitializeMTCTask has a new port called trajectory_monitoring. If it is set to true, every subtrajectory of that task is going to be collision checked against the most recent planning scene right before it is executed. The default value of the port is False since this additional collision check is only necessary if anything other than the robot state in the planning scene has changed.LoadObjectiveParameters has been deprecated. Please migrate to declaring ports directly on Behaviors, or to specializations of the LoadFromYaml template Behavior.--browser (default) and --no-browser options to prevent the application to launch a new browser window on startup.--browser (default) and --no-browser options to prevent the application to launch a new browser window on startup.MetadataFields element is being stripped from an Objective's xml file resulting in Objectives becoming uncategorized and "subtree only" Objectives becoming runnable.hangar_sim that have large URDFs should now properly do first-time setup of the camera stream layout in the UI.runnable metadata field in an Objective xml file is now the source of truth for specifying "subtree only" Objectives. If the _subtreeOnly BehaviorTree attribute exists in an Objective file and runnable is not set, MoveIt Pro will respect the old BehaviorTree attribute and automatically migrate to runnable on the next update to the Objective.BreakpointSubscriber Behavior would cause the "Stop Motion" button to disappear.PlanToJointGoal where if the given target robot state message was missing values for some joints in the group, the planner would assume those values were zero.
Now the planner will use the current robot state for those missing joints.moveit_studio::behaviors::createTrajectoryFromWaypoints -> cartesian_planning::createTrajectoryFromWaypointsmoveit_studio::behaviors::collisionValidationFunction -> pro_rrt::collisionValidationFunctionmoveit_studio::behaviors::planTrajectoryToJointGoal -> pro_rrt::planTrajectoryToJointGoaldocker-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.