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.yaml
in 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_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.
The 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 outddated 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.