Skip to main content

Robot Control

Use this page for standalone OMX bringup, MoveIt 2, the OpenMANIPULATOR GUI, and keyboard teleop.

info

At least one Zenoh daemon must be running in the communication network. If no Zenoh daemon is running, ROS 2 nodes cannot discover or communicate with each other.

For the recommended setup, run zenohd in a terminal inside the OpenMANIPULATOR Docker container.

Launch Bringup

The OMX controller uses ros2_control and MoveIt 2 for modular robot control, trajectory planning, and state feedback.

To use MoveIt 2, GUI, or Keyboard Teleop, open a new OpenMANIPULATOR Docker container and launch the OMX packages:

ros2 launch open_manipulator_bringup omx_f.launch.py

MoveIt 2

MoveIt 2 is a set of packages for motion planning, manipulation, inverse kinematics, control, 3D perception, and collision checking.

Enable MoveIt 2 functionality for advanced motion planning in RViz:

ros2 launch open_manipulator_moveit_config omx_f_moveit.launch.py

Move interactive markers to position the robotic arm, then click Plan & Execute.

Simple Instructions for Using MoveIt 2:

  1. Move the robot to your desired pose using the Interactive Marker visible in RViz.
  2. Use Plan in the Commands panel to simulate the motion.
  3. Click Execute to move the robot according to the simulated motion.
  4. Set Planning Group to arm and use Goal State options such as init or home.
  5. Set Planning Group to gripper and use Goal State options such as close or open.

GUI

After running bringup and MoveIt 2, launch the OpenMANIPULATOR GUI:

ros2 launch open_manipulator_gui omx_f_gui.launch.py

Basic Controls

  • Start Timer: Activates the system.
  • Robot Status: Displays current manipulator state.
  • Init Pose: Moves the manipulator to a vertical position.
  • Home Pose: Moves the manipulator to a compact, safe position.
  • Gripper Open/Close: Opens or closes the gripper.

Task Execution

  • Joint Space Tab: Adjust individual joint angles.
  • Task Space Tab: Control the end-effector position.
  • Task Constructor Tab: Read tasks, save poses, set repetitions, play tasks, stop motion, or reset saved tasks.

Explore GUI Features

  1. Click the Timer Start button.

  1. Check the status of OMX.

  1. To manipulate OMX in joint space, enter the joint angles and total trajectory time. Then click Send.

  1. To manipulate OMX in task space, enter the end-effector pose. Then click Send.

  1. Create a task constructor with OMX.
  • Click Read task to prepare for saving tasks.
  • Adjust the manipulator posture and click Save pose.
  • Save multiple postures to complete the task sequence.

  1. Press Play to execute the saved tasks in sequence.

OMX GUI Demo

Keyboard Teleop

Control the manipulator with your keyboard after launching the real robot or Gazebo bringup.

ros2 run open_manipulator_teleop omx_f_teleop

Joint Control

  • 1 / q: Joint 1
  • 2 / w: Joint 2
  • 3 / e: Joint 3
  • 4 / r: Joint 4
  • 5 / t: Joint 5

Gripper Control

  • o: Open gripper
  • p: Close gripper

Keyboard Teleop Demo