4.0.0
Changes in This Release
Major version increase and rebrand to MoveIt Pro.
- Updated Terms and Conditions.
- Several user commands and folder locations have changed from
moveit_studio
tomoveit_pro
. - MoveIt Pro core Docker image no longer contains robot-specific packages, which changes user workflows.
- Major refactor of teleoperation:
- Switched to single
Teleoperate
Objective that allows user to move between different teleoperation modes without switching Objectives.- Added reusable
Request Teleoperation
Subtree that allows adding teleoperation in your custom Objectives, with configurable prompts to guide operators.
- Added reusable
- Switched to single
- New Behaviors:
FitLineSegmentToMask3D
- Fits a line segment to a 3D point cloud fragment.LoadPoseStampedFromYaml
- Loads a stamped pose ROS message from a YAML file.
- Developer tooling:
- Modifications to Objectives and Waypoints in the UI are now synced to user workspace source code, and vice versa.
- New metadata format in
tree_nodes_model.xml
to categorize your Behaviors. - Added
SendMessageToTopicBehaviorBase
class to create Behaviors that publish to a ROS topic. - Improved error messages when Behavior ports are set incorrectly.
- New metadata format in
- Modifications to Objectives and Waypoints in the UI are now synced to user workspace source code, and vice versa.
- Universal Robots (UR) example workspace:
- Repository renamed to moveit_studio_ur_ws for clarity.
- Removed the camera-aligned
manual_grasp_link
frame from robot description, in favor of the gripper-alignedgrasp_link
frame.
- Removed the camera-aligned
- Repository renamed to moveit_studio_ur_ws for clarity.
- Improved servoing for position-controller robots, which requires changes in MoveIt Servo configuration.
- New
./moveit_pro logs
command to open a log viewer. - Documentation:
- Tutorials on creating Behaviors that interact with ROS services and actions.
- New reference application pages on Object Registration and ML Segmentation.
- Added ability to provide user feedback on documentation pages. Please share your feedback with us!
- Tutorials on creating Behaviors that interact with ROS services and actions.
- UI Updates:
- Simplified interface: smaller logo, manual control options appear only when teleoperating.
- Improved validation for misconfigured ports and unconnected Behaviors.
- Simplified interface: smaller logo, manual control options appear only when teleoperating.
Migration Guide
Rebrand to MoveIt Pro
MoveIt Studio has been rebranded to MoveIt Pro.
While several of the internal developer tooling still retains the moveit_studio
prefix, the documentation and user install/launch scripts have been switched to moveit_pro
.
Key things to highlight:
- MoveIt Pro will now install to the
${HOME}/moveit_pro
folder. - Launch commands now take the syntax
./moveit_pro <args>
, for example./moveit_pro run -v
. - Local configuration now exists in the
${HOME}/.config/moveit_pro
folder, and is symlinked to your user workspace source code.
If you are upgrading from a previous version, which has files installed in the ${HOME}/moveit_studio
folder, ensure to uninstall those files as they will no longer be used as of version 4.0.0.
Core Docker image no longer contains robot-specific packages
In previous releases, all the necessary packages for running with Universal Robots were already included with the core MoveIt Pro Docker image. As the tool moves towards a robot-agnostic core, users are now required to Create Overlay Docker Images containing any additional dependencies specific to robot hardware.
Now, the ./moveit_pro
command will locate your user workspace location using the STUDIO_HOST_USER_WORKSPACE
environment variable and use the Dockerfile available in that workspace.
This Dockerfile must define the additional operations to ensure any additional robot-specific dependencies are installed.
With these changes, the ./moveit_pro build
command will now ensure that both your overlay Docker image and your user workspace packages are built.
To run these steps individually, you can use ./moveit_pro build_docker
and ./moveit_pro build_workspace
, respectively.
Teleoperation changes
In previous releases, MoveIt Pro required two separate Teleoperate Joint Jog
and Teleoperate Twist
Objectives, for joint jogging and pose jogging, respectively.
Additionally, other modes of teleoperation (such as moving to Waypoints, joint sliders, etc.) required starting new Objectives.
Starting with version 4.0.0, there is a single Teleoperate
Objective that switches teleoperation modes based on state within the UI.
This allows you to switch between different teleoperation modes without switching Objectives, which reduces latency in switching modes.
Additionally, you can now add a reusable Request Teleoperation
Subtree to your custom Objectives to introduce teleoperation as part of an existing Objective.
This includes the ability to provide prompts to display to operators, potentially instructing them on how to teleoperate their robot to achieve the intended task.
To include teleoperation in your custom Objectives, you can insert the following XML:
<SubTree ID="Request Teleoperation"
enable_user_interaction="true"
user_interaction_prompt="Your prompt goes here"
initial_teleop_mode="3"
/>
Here, the initial_teleop_mode
number is defined in this ROS message enumeration.
New Behavior Metadata format in tree_nodes_model.xml
file
In upgrading to BehaviorTree.CPP 4.5.0, the way to express metadata has been standardized to automatically generate metadata fields from source code.
When switching to MoveIt Pro version 4.0.0, ensure these changes are implemented in your tree_nodes_model.xml
files containing custom Behavior metadata.
Previous:
<Action ID="MyBehavior">
<metadata subcategory="My Category"/>
</Action>
Updated:
<Action ID="MyBehavior">
<MetadataFields>
<Metadata subcategory="My Category"/>
</MetadataFields>
</Action>
Servo Configuration Changes
MoveIt Servo has been updated to a new version that provides improved capabilities for position-controlled robots by accounting for maximum latency.
Starting with version 4.0.0, your MoveIt Servo configuration file can contain the following changes:
# New parameter: Delay between sending a command and the robot executing it
max_expected_latency: 0.1
# Previously existing smoothing plugin, and parameters
smoothing_filter_plugin_name: "online_signal_smoothing::ButterworthFilterPlugin"
low_pass_filter_coeff: 1.5
# Can instead choose the following new smoothing plugin, along with its parameters
smoothing_filter_plugin_name: "online_signal_smoothing::AccelerationLimitedPlugin"
acceleration_filter_update_period: 0.01 # Must match the publish_period parameter
Additionally, your config.yaml
file in your configuration package now has a moveit_params.servo_joint_limits
option that can specify different joint limits than motion planning.
If this is omitted, the same joint limits as motion planning (defined in moveit_params.joint_limits
) will be used.
moveit_params:
# ... other configuration goes here
servo:
package: "picknik_ur_base_config"
path: "config/moveit/ur_servo.yaml"
servo_kinematics:
package: "picknik_ur_base_config"
path: "config/moveit/trac_ik_kinematics_speed.yaml"
servo_joint_limits:
package: "picknik_ur_base_config"
path: "config/moveit/hard_joint_limits.yaml"
For more information on these changes, refer to the following MoveIt pull requests: