Teleoperating the Robot

While running your robot, you may encounter situations where you need to manually move the robot because:

  • You would like to move the arm to a specific configuration to save as a waypoint for future use (A waypoint is a named configuration of joint states)
  • You would like to apply fine-grained motions to the joints or end effector
  • The arm gets stuck and cannot retreat automatically

For cases like the ones listed above, MoveIt Pro offers several ways to teleoperate a robot. These options are available from the Manual Control tab in the web app.


Waypoint Control

Waypoints provide a method of returning the robot to previously saved joint poses. To access this control mode, select Waypoints from under the Manual Control tab.

The Move to Pose hotbar provides some quick waypoints to which the robot can maneuver. The Collapsible Objectives sidebar button from the Objectives view becomes the Collapsible Waypoints Sidebar button in this view.


The Waypoints sidebar can:

  • Mark a waypoint as favorite by using the star (favoriting a waypoint adds it to the Move to Pose hotbar).
  • Move to a waypoint by using the play button.
  • Add a waypoint by using the + button.
  • Remove a waypoint by using the three dots next to the play button.

Note that saving a waypoint will only write states for the joint group specified in the moveit_params.joint_group parameter of your robot configuration package. For example, the configuration

  joint_group: "manipulator"

will only save joint states from the manipulator joint group defined in your robot’s SRDF file.

Interactive Marker Control

This section will give an overview of the IMarker view, where you can move the robot end effector using an interactive marker. When moving the end effector in the “Interactive Marker” mode, a marker will appear situated around the robots end effector.


The marker can be used to move the end effector to a desired pose. This can be done by clicking and dragging the marker’s arrows and discs. Dragging an arrow will translate the marker along that direction while turning a disc will rotate the marker in that direction.

Before trajectory planning begins, a preview will show the inverse kinematics solver solution, if one exists.


No preview means that there is no valid inverse kinematics solution for the desired pose.

Once the marker is in the desired pose, a motion will be planned that brings the end effector from the current pose to the markers pose. A preview of the trajectory will play, and if it is acceptable, the “Execute Move” button can be pressed to start the motion.

If the marker is in an undesirable state, the “Reset Marker” button will bring the marker back to the end effector.

Cartesian Pose Jogging

The Pose Jog control option enables the user to translate or rotate the end-effector along different planes or axes. In the Visualization pane, there are a number of buttons around the edge. For example, the arrow on the left will translate the end effector in the positive direction along its x axis and the arrow on the right will rotate the end effector in the positive direction on the x axis plane.


On the top right of the Visualization pane are some additional buttons which can be used to translate and rotate the end effector on the z axis and z axis plane.


Gripper Control

On the bottom left of the Visualization pane are buttons that can be used to open and close the gripper.


Joint Control

This section will give an overview of the Joints Jog view, used for moving individual joints. To access this tooling, click on the Joints Jog

In the Visualization pane, there is an area that shows the current state and min/max limits of each joint, as well as +/- buttons to manipulate each joint. The joint states can represented in degrees or radians and also copied to the clipboard.


Joint Movement

There are a three ways to move a joint:

  1. Jogging using the +/- buttons. Clicking the + button will increase the joint state and clicking on the - button will decrease the joint state. When using the +/- buttons, a joint can be jogged up to the min or max limit of the joint or until a collision is detected.
  2. Trajectory movement by clicking and dragging the slider to move to the desired joint state.
  3. Trajectory movement by clicking the current joint state’s numerical value and entering the desired value.

Gripper Control

In the hotbar area above the Visualization pane, there are the “Open Gripper” and “Close Gripper” buttons.


note:: Teleoperating the gripper to joint values other than “Open” or “Close” is not currently supported.

Jog Collision Checking and Speed

The settings icon in the top right right will bring up some settings pertinent to jogging the robot while in the Endpoint or Joints view.


The Jog Collision Checking toggle informs the simulation if it should be checking for collisions between different solid entities.

There can be situations where the robot collides with an object during an Objective and is unable to be teleoperated because the beginning of the trajectory is in a collision. In that case, Jog Collision Checking can be turned off so that the robot can be teleoperated.

The Jog Speed slider adjusts the normalized speed at which the end effector/joints moves, meaning at 100% each joint is moving at its max speed, as dictated by the specified joint limits.


The Jog Collision Checking and Jog Speed parameters are only used when jogging a joint via the +/- buttons in the Joints view or when using the endpoint jog buttons around the Visualization pane in the Endpoint view. This is because those two methods use MoveIt Servo (and the respective servo parameters in the robot configuration package), whereas the other methods (such as the slider in Joints view and Interactive Marker in Endpoint view) use a regular motion planner.

Congratulations! You have successfully learned how to teleoperate the robot using MoveIt Pro!