7.6.3
Bug Fixes
- Reverted the workspace version check to allow a smoother installation process. We will reintroduce the check in a future release.
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::createTrajectoryFromWaypoints
moveit_studio::behaviors::collisionValidationFunction
-> pro_rrt::collisionValidationFunction
moveit_studio::behaviors::planTrajectoryToJointGoal
-> pro_rrt::planTrajectoryToJointGoal
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_breakpoint
SwitchUIPrimaryView
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.