8.7.1
Bug Fixes
- Fixed a python
ImportError
for the nameAny
that shows when installing MoveIt Pro.
ImportError
for the name Any
that shows when installing MoveIt Pro.We’re excited to announce a new and easier way to build Behavior Trees in MoveIt Pro using Large Language Models. A built-in text prompt is now directly in the UI, that instantly generates complete Behavior Trees. This dramatically accelerates the creation of Objectives, reducing setup time and making it easier to prototype and deploy complex robotic workflows.
The Joint Trajectory Admittance Controller now supports time scaling, allowing users to adjust the speed of trajectory execution dynamically.
This feature can be used to slow down or speed up the execution of trajectories during execution, even pausing it completely if needed.
The time scaling is controlled using the joint_trajectory_admittance_controller
node parameter named time_scale_percentage
, which accepts values between 0.0 and 100.0, where 100.0 means full speed (no time scaling), and 0.0 means stop.
Values in between will slow down the trajectory execution proportionally.
Added a new behavior SetupMTCPathIK
that allows users to set up a MoveIt Task Constructor (MTC) Path IK stage, which computes a joint-space trajectory to follow a specified path in Cartesian space.
This stage can be used to perform Cartesian motions along a path defined by a vector of PoseStamped
messages, and combine it with other MTC stages for more complex behaviors.
You can now manually adjust the width and height of the various panes and sidebars in MoveIt Pro, allowing you to better fit your camera feed dimenetions and other data sources on the screen.
Annoyed at having to tediously delete every node in your Behavior Tree? Now when you delete a parent node, all its children are automatically deleted also (with the exception of Subtrees).
Wanted to better see how your port variables and data flows through your Behavior Tree? Automatic port highlighting makes this easier to see visually!
Two new example pick and place Objectives have been added to the factory_sim
robot configs, as easy to use reference applications. They are called Pick Brackets from Left Bin
and Pick and Place Brackets from Left Bin
. These Objectives demonstrate basic examples of picking automotive brackets from a bin, placing them precisely on a jig, waiting until a task is completed, and then picking and dropping them in another bin.
file_path
information to Edit Objective formSetupMTCPathIK
: Sets up a MoveIt Task Constructor (MTC) Path IK stage to compute a joint-space trajectory to follow a specified path in Cartesian space.
This is the equivalent of PlanCartesianPath
for MTC tasks.Track Moving Frame
that can be used in Objectives to track a moving frame in Cartesian space.
This can be helpful for applications like data collection (e.g. tracking a remote controller pose) or visual servoing.
See our Meta Quest Teleoperation Hardware Guide.ConvertTransformStampedToPoseStamped
: Converts a TransformStamped
message into a PoseStamped
message. Handy for the GetLatestTransform
Behavior.CreateSolidPrimitiveBox
: Creates a box-shaped shape_msgs::msg::SolidPrimitive
message.CreateCollisionObjectFromSolidPrimitive
: Creates a moveit_msgs::msg::CollisionObject
from a shape_msgs::msg::SolidPrimitive
, pose, and object ID./verify_xml
that allows verifying the content of a Behavior Tree XML file against your currently-loaded Behaviors and Objectives.BreakpointSubscriber
behavior from the "Control Flow" category to the "User Input" category to better reflect its purpose as a user interaction tool for controlling breakpoint flow during Objective execution.RegisterPointClouds
behavior can be used and what transform steps are required.moveit_pro_fanuc_config
workspacemoveit_pro_ur_config
workspacePoseJog
Behavior instead of the deprecated ServoTowardsPose
, featuring the space_satellite_sim
configuration with a real-world satellite grappling example.moveit_pro dev
are now removed automatically, saving disk space.objectives/
as opposed to respecting the relative_path
field in the objective_library_paths
section of a config's config.yaml
file.ServoTowardsPose
Behavior has been marked as deprecated and will be fully removed in a future release.
Users should migrate to the PoseJog
Behavior, which provides safer Cartesian motion with collision avoidance and singularity handling.SetupMTCMoveToNamedState
has been deprecated and will be removed in a future release.
Please use RetrieveWaypoint
and SetupMTCMoveToJointState
to achieve the same functionality.MoveIt Pro can now collect teleoperation data using the Meta Quest. Check out the Hardware Guide.
Added general vector operations that work on vectors on the blackboard of any type, including GetElementOfVector
, GetSizeOfVector
, InsertInVector
, RemoveFromVector
, ReplaceInVector
, add ResetVector
Behaviors. Uses type BT::Any
.
It's now easier to access the popup forms for new Behaviors and Objectives, with a combined "+" button accessible from both sidebar modes.
InitializeMTCTask
now accepts a timeout
parameter to set an overall timeout for the MTC Task, in seconds.
This is useful for ensuring that the MTC Task does not run indefinitely and can be used to control the execution time of the task.AddTool
→ AddURDF
(deprecated AddTool
still available)AttachTool
→ AttachURDF
(deprecated AttachTool
still available)DetachTool
→ DetachURDF
(deprecated DetachTool
still available)RemoveToolFromScene
→ RemoveURDFFromScene
(deprecated RemoveToolFromScene
still available)AddURDF
behaviorToolChangingCapability
to URDFPlanningSceneCapability
moveit_studio_agent_msgs/srv/AddTool
→ moveit_studio_agent_msgs/srv/AddURDF
moveit_studio_agent_msgs/srv/AttachTool
→ moveit_studio_agent_msgs/srv/AttachURDF
moveit_studio_agent_msgs/srv/DetachOrRemoveTool
→ moveit_studio_agent_msgs/srv/DetachOrRemoveURDF
add_tool_to_scene
→ add_urdf_to_scene
attach_tool
→ attach_urdf
detach_tool
→ detach_urdf
remove_tool_from_scene
→ remove_urdf_from_scene
tool_name
→ urdf_name
tool_urdf
→ urdf_string
tool_pose
→ urdf_pose
objective_library_paths
from the config.yaml for saving new objectives, allowing flexible configuration of where objectives are stored.Enhanced Visualize Pose behavior to display text information in Marker messages for improved debugging and visualization.
MoveIt Pro now supports executing trajectories that make 180 degree turns, which is common in MTC solutions.
So you can now use ConvertMtcSolutionToJointTrajectory
and execute the resulting trajectories with ExecuteFollowJointTrajectory
, even if those contain 180 degree turns.
april_tag_sim
configuration.ValidateTrajectory
PlanCartesianPath
now properly include the start scene.A ton of exciting new UI features are included in this release!
The Interactive Marker (IMarker) teleoperation panel now supports multiple planning groups and end effectors, allowing users to select which planning group to teleoperate.
A long requested feature during development and testing cycles, you can now comment and uncomment individual Behaviors, including entire subtrees of functionality. This aids in easier and faster debugging and development.
By default MoveIt Pro hides ports beyond the top 5, in order to keep the Behavior Tree compact and more viewable. However there are use cases, such as when searching with Ctrl+F or creating documentation, where you might want to expand all ports on each Behavior. You can now use the checkbox to "Show All Ports" in the Behavior Tree editor menu!
Quaternions are not intuitive for humands, but roll pitch yaw is. We've added a popup UI dialog that allows you to enter orientation values instead of Quaternions.
When adding and editing sub-trees, the port descriptions and port types are now UI-visible for sub-tree remapped ports. This makes working with subtrees much more intuitive.
It's now possible to hide the URDF robot model and any visualized point clouds from the visualizer from the newly renamed "View" menu.
You can now edit comments directly in Behavior Tree editor, improving the readability and in-line documentation capabilities of MoveIt Pro.
GetContourFromPointCloudSlice
, which creates a planar contour that is offset around a point cloud slice. This can be used to generate tool paths for surface treatment operations.ReversePoseStampedVector
to reverse the direction of a vector of poses, such as a Cartesian path.CropPosesInBox
to filter a vector of poses, such as a Cartesian path, based on a bounding box.VisualizePath
to accept a name input to visualize multiple paths at once, and to optionally show the poses with orientation axes in addition to the path line.GetMasks2DAction
, ShapeCompletionAction
, and CalibratePoseAction
behaviors.MergePointClouds
Behavior now exposes an option to align the point clouds using ICP when merging them.
This can be used to incrementally register multiple point clouds to each other and minimize the alignment error.SolveIKQueries
Behavior has been updated to use our most recent IK pipeline, and now exposes a new port called check_collisions
to enable or disable collision checking during IK solving.GetImage
behavior to configure how long to wait for an image publisher to advertise.planning_group_name
configuration parameter to the JTAC config, with the name of the
planning group that the JTAC will control. This planning group name must be a valid group defined in the SRDF file.
The joints
config parameter is no longer required, since the JTAC will automatically determine the joints from the
planning group.GetGraspPoseFromPointCloud
to automatically infer grasp poses using machine learning from point clouds.LoadObjectiveParameters
is deprecated and is planned for removal in 9.0.SetAdmittanceParameters
and AppendOrientationConstraint
behaviors' interactive parameter editors in the UI.GetImage
by allowing halting.planning_group_name
parameter, which is the
name of the planning group that the JTAC will control. The joints
and base_frame
parameters are now deprecated.
If your ros2_control.yaml
file defines a Joint Trajectory Admittance Controller, please update it to include the
planning_group_name
parameter. The deprecated joints
and base_link
parameters will be removed in the next major
release.LoadObjectiveParameters
is deprecated and is planned for removal in 9.0.Introducing a more streamlined way to build Behavior Trees using a “+” button directly next to applicable Behaviors, like Sequences
. This button opens a searchable dialog for quickly adding behaviors inline, reducing the need to manually drag nodes in.
You can now easily navigate back to a parent Behavior Tree after drilling into a subtree. Users previously found it unintuitive to use the browser back button.
The new MPCPointCloudClearance
Behavior tracks a pose in real-time while avoiding a point cloud using model predictive control (MPC). An example Objective is now available in lab_sim
.
LoggerROS
class.MPCPointCloudClearance
Behavior tracks a pose while avoiding a point cloud using model predictive control.ForEachUntilSuccess
for iterating through vectors and until the subtree succeeds on an element.ActivateControllers
Behavior has been deprecated in favor of the SwitchController
Behavior, which provides more flexibility in managing controller activation / deactivation.
Please switch to using the SwitchController
Behavior in your applications.Joint Velocity Controller
allows for the control of robot joints using velocity setpoints. It takes as input desired joint velocities in a control_msgs/JointJog
message and computes the next joint positions and velocities to send to the robot, while respecting the robot's joint velocity and acceleration constraints. This controller can be used for collecting ML teleoperation training data, or in conjunction with higher-level closed-loop controllers such as visual servoing or learned policies.control_msgs/JointJog
message and computes the next joint positions and velocities to send to the robot, while respecting the robot's joint velocity and acceleration constraints.
This controller can be used for teleoperation or in conjunction with higher-level closed-loop controllers such as visual servoing or learned policies.PlanCartesianPath
and other Behaviors using Path IK (e.g. SetupMTCMoveAlongFrameAxis
) now support tip links that are not in the planning group, but are descendants of it.LogMessage
behavior don't show as expected in the UI.SetupMTCMoveAlongFrameAxis
would throw an exception under some conditions.ActivateControllers
Behavior has been deprecated in favor of the SwitchController
Behavior, which provides more flexibility in managing controller activation / deactivation.
Please switch to using the SwitchController
Behavior in your applications.controller_names
port) no longer need to be prefixed with a slash.
Existing pipelines will still work with the old format for backwards compatibility, but it is recommended to use the new format for consistency, e.g. controller_names="/joint_trajectory_controller"
should be changed to controller_names="joint_trajectory_controller"
.
This change will be enforced in the next breaking release (9.0).Feeling crunched on screen space, but have multiple monitors? There is now a "New Window" option in the settings menu that opens MoveIt Pro in a new tab. This is useful, for example, in having one screen for editing and monitoring large Behavior Trees, and a second screen for monitoring camera feeds and visualizations. Note: it is recommended that you don't have the same view pane type open on multiple windows, as there are currently some known limitations.
There is now a button to switch between full screen and windowed mode in the settings menu, allowing for more screen space and enhancing usage as a robot operator terminal.
GeneratePointToPointTrajectory
can now take a target_state
that contains a subset of the joints in the
planning group. The positions and velocities of all joints not included in the target_state
will be set to the
start_state
values.CallTriggerService
Behavior.waitForServerAvailableTimeout
configurable in ServiceClientBehaviorBase
through optional getWaitForServerAvailableTimeout function.moveit_pro_ml::DiffusionPolicy
to the moveit_pro_ml
package. This class exposes an interface for running a diffusion policy to generate trajectories.moveit_pro run
is called.CreateJointState
behavior where the created RobotJointState did not contain the names the user specified on the 'names' input port.moveit_core
and moveit_ros_planning
targets. No migration is required.planning_group_name
configuration parameter to the VFC config, with the name of the planning group that the VFC will control.
This planning group name must be a valid group defined in the SRDF file.
The joints
config parameter is no longer required, since the VFC will automatically determine the joints from the planning group.planning_group_name
parameter, which is the name of the planning group that the VFC will control.
The joints
and base_link
parameters are now deprecated.
If your ros2_control.yaml
file defines a Velocity Force Controller, please update it to include the planning_group_name
parameter.
The deprecated joints
and base_link
parameters will be removed in the next major release.