Skip to main content

Robot Control

Use this page for standalone OMY 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 robot-side OpenMANIPULATOR Docker container.

info

The commands in this page are written for OMY_F3M. When running with OMY_3M, replace omy_f3m with omy_3m where the corresponding launch file exists.

Launch Bringup

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

Open a new OpenMANIPULATOR Docker container and launch the OMY packages:

ros2 launch open_manipulator_bringup omy_f3m.launch.py

MoveIt 2

MoveIt 2 provides motion planning, manipulation, inverse kinematics, control, 3D perception, and collision checking.

Launch MoveIt 2:

ros2 launch open_manipulator_moveit_config omy_f3m_moveit.launch.py

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

Basic MoveIt 2 usage:

  1. Move the robot to a desired pose using the Interactive Marker in RViz.
  2. Use Plan to simulate the motion.
  3. Click Execute to move the robot.
  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.

OpenMANIPULATOR GUI

After running bringup and MoveIt 2, launch the GUI:

ros2 launch open_manipulator_gui omy_f3m_gui.launch.py

Basic Controls

  • Start Timer: Activates the system.
  • Robot Status: Displays the 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, save, play, stop, or reset saved task poses.

GUI Steps

  1. Click Timer Start.

  2. Check the status of OMY.

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

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

  5. Create a task constructor with OMY.

  • Click Read task to prepare saved tasks.
  • Adjust the manipulator posture and click Save pose.
  • Save multiple postures to prepare the task sequence.
  1. Press Play to execute the saved tasks sequentially. Completed tasks are marked as Done.

OMY GUI Demo

Keyboard Teleop

After launching the real robot or Gazebo bringup, run keyboard teleop in a new OpenMANIPULATOR Docker container:

ros2 run open_manipulator_teleop omy_f3m_teleop

Joint controls:

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

Gripper controls:

  • o: Open gripper
  • p: Close gripper

Keyboard Teleop Demo