1. Basic Usage
đź•’ Duration: 1-2 hours
đź’Ş Level: Beginner
Four Course Overview​
Welcome to MoveIt Pro's four part tutorial series for teaching you how to use MoveIt Pro. These four tutorials are self-paced, and can be completed independently within two hours each. If you prefer a more guided experience, the same material is also covered in our monthly live training sessions, but with expert engineers available to answer questions and guide you through the material.
Training Goals​
The tutorials all build on top of each other, and assume you have completed the previous tutorial:
- Tutorial 1 leverages our optional, yet comprehensive, user interface, to make the beginner experience easy.
- Tutorial 2 covers how to use MoveIt Pro without its frontend, diving into the runtime SDK, Python integrations, and how to build Behavior plugins / extensions.
- Tutorial 3 teaches more advanced Behavior Tree concepts with subtrees, as well as using more computer vision and machine learning.
- Tutorial 4 teaches advanced motion planning and control concepts, including the many types of dynamic trajectory generation, collision checking, and Cartesian control.
Tutorial 1 Basic Usage - Overview​
This tutorial is designed to be your first hands-on introduction to the high level functionality of the platform, giving you a general overview of MoveIt Pro, including how to:
- Create and run your own robot applications (Objectives) using Behavior Trees.
- Leverage teleoperation tools
- Build a pick-and-place workflows
- Set up keep-out zones
- Integrate human-in-the-loop recovery
Pre-reqs​
We assume you have already installed MoveIt Pro and have some familiarity with robotic arms.
Start MoveIt Pro​
Launch the application if you haven't already, using:
moveit_pro run -c lab_sim
Exploring the User Interface​
You should a UI similar to the following, though the exact view pane layout may vary as it is customizable:
Panes Overview​
Make sure the Run tab is selected.
An Objective is basically an application in MoveIt Pro, though it can also be a lower level function (a subtree) that is then combined into a higher level Objective. Objectives are created using behavior trees, which are similar to state machines. Behavior Trees are composed of Behaviors, which are the low-level nodes or skills. An example of a Behavior is opening a gripper or moving to a pose. To learn more about Behaviors, see the Behaviors Concepts Page.
Customizing the Panes​
Your configuration of panes may vary depending on previously saved settings. The following diagram highlights some of the ways to customize your view panes:
Try it yourself:
- Use "Change view pane option" to change the bottom right pane to
/wrist_camera/color
. This will allow you to see the camera view of the camera mounted on the robot’s wrist.
- Change the number of windows available by clicking on the Pane Selection menu in the top right. Select the 3 pane view option
More information about each pane:
Visualization Pane​
Displays a rendering of what the robot understands of the world, similar to the common Rviz visualizer in ROS. In MoveIt Pro this understanding of the world is stored in a Planning Scene. The Planning scene is a combination of our robot’s URDF model, point clouds, octomaps, meshes, and geometric primitives. These data sources are used to avoid collision with the robot and the world.
For lab_sim, you should see a robot arm on a rail. We shouldn't see any other objects from the simulated scene, since the robot has not 'perceived' them yet. The view of the scene can be adjusted by clicking within the pane and dragging the mouse around. The left mouse button rotates the scene, and the right mouse button drags the scene.
Camera Feeds​
The /scene_camera/color
, /scene_camera/depth
, /wrist_camera/color
, and /wrist_camera/depth
panes show the camera feeds from the underlying simulator. If you were connected to hardware, these cameras would show the real world and not simulations. By default, these are set to the scene cameras, which are simulated third-person views of the robot, both in color, and depth respectively.
Behavior Tree Pane​
In this pane the most recently run Objective is shown, if any. While running an Objective, this pane will highlight which Behavior is currently executing, which is useful for debugging and introspection.
Blackboard Pane​
This pane shows the variables being passed around on the Behavior Tree blackboard. These parameters are the key data that is passed around between Behavior nodes.
Scan the environment into the scene​
You might notice our virtual world in the Visualization pane is a bit empty - let’s scan in the entire environment by running the _Scan Scene
Objective. We can find it in three different ways:
- In the favorites toolbar (clicking runs automatically)
- By scrolling through the Objectives sidebar categories
- Or by typing in the name of the Objective in the sidebar search area
If using the sidebar, click the play icon next to _Scan Scene
to run the Objective, and you should see:
Planning Scene
The planning scene is a representation of the robot's environment, including the robot itself, obstacles, and other objects.
It is used by motion planners to determine valid paths and trajectories for the robot.
In MoveIt Pro, the planning scene is represented by the moveit_msgs::PlanningScene
message type.
Obstacles can be added manually from the UI (keep-out zones), in Behavior Trees via planning scene manipulation Behaviors, or automatically from perception data by configuring the perception pipeline.