Edit on GitHub

Operation

GUI Program

NOTE:

  • This instructions are supposed to be running on PC with ROS packages installed in. Please run the instructions below on your PC ROS packages installed in.
  • Make sure to run the OpenMANIPULATOR-X controller instructions before running the GUI Program.
  1. Launch the GUI program. The OpenMANIPULATOR-X Controller must be running on another terminal.
    $ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch
    
  2. Click the Timer Start button.

  3. Check the status of OpenMANIPULATOR-X.

  4. To manipulate OpenMANIPULATOR-X in the joint space, enter the joint angles and total time for the trajectory. Then click the send button to start the motion.

  5. To manipulate OpenMANIPULATOR-X in the task space, enter the kinematics pose of the OpenMANIPULATOR-X end-effector(tool) in the task space and the total time for the trajectory. Then click the send button to start the motion.

  6. To create a drawing trajectory with OpenMANIPULATOR-X, choose the drawing trajectory type(line, circle, rhombus, heart). And enter the parameters according to the drawing trajectory type and the total time of the drawing trajectory. Then click the send button to start drawing.

NOTE:

  • This instructions are supposed to be running on PC with ROS packages installed in. Please run the instructions below on your PC ROS packages installed in.
  • Make sure to run the OpenMANIPULATOR-X controller instructions before running the GUI Program.
  1. Before Launch the GUI program, the OpenMANIPULATOR-X Controller must be running on another terminal. Plus, launch moveit_core using this command in the new terminal.
    $ ros2 launch open_manipulator_x_moveit_config moveit_core.launch.py
    
  2. Launch the GUI program.
    $ ros2 launch open_manipulator_x_gui open_manipulator_x_gui.launch.py
    
  3. Click the Timer Start button.

  4. Check the status of OpenMANIPULATOR-X.

  5. To manipulate OpenMANIPULATOR-X in the joint space, enter the joint angles and total time for the trajectory. Then click the send button to start the motion.

  6. To manipulate OpenMANIPULATOR-X in the task space, enter the kinematics pose of the OpenMANIPULATOR-X end-effector(tool) in the task space. Then click the send button to start the motion.

  7. Create a task constructor with OpenMANIPULATOR-X.
    7.1. Click the Read task button to prepare for saving tasks.
    (You can create or modify the pre-saved joint values in the robot_joint_log.csv file. The file’s load path can be checked in the terminal when the GUI node is launched.)
    7.2. Adjust the manipulator’s posture and save it by clicking Save pose.
    7.3. Save multiple postures to complete the preparation.

Press the Play button to make the manipulator move sequentially according to the saved tasks. Completed tasks will have their status changed to Done

  • The GUI for Arduino example is provided with the Processing.
  • Please refer to the Launch Controller in the Basic Operation section.

Control Interface

NOTE: Upload OpenCR example source code to OpenCR before run processing source code.

  1. To manipulate the OpenMANIPULATOR, click the toggle button to CONTROLLER ON.

  2. The user can manipulate the OpenMANIPULATOR-X in the joint space.
    Set the joint angles. Then click the SEND JOINT ANGLE button. And set the gripper parameter. Then click the SET GRIPPER button.

  3. The user can manipulate the OpenMANIPULATOR-X in the task space.
    Click the TASK SPACE CONTROL button to change the tab.
    Click the desired direction button to manipulate the OpenMANIPULATOR.

Hand Guiding

The user can make the demonstration using hand guiding function.

  1. Click the HAND GUIDING button to change the tab.
  2. Holds the OpenMANIPULATOR-X by hand and click the toggle button to TORQUE OFF.
  3. Move the OpenMANIPULATOR-X to the desired pose by hand.
  4. Click the SAVE JOINT POSE to save the present pose.
  5. Repeat step 3 and 4 to create the demonstration.
  6. Click the toggle button to TORQUE ON
  7. Click the MOTION START button to start the saved poses.

Click the toggle button to MOTION REPEAT ON if you want to repeat the demonstration. The total time of the trajectory between saved poses is the same as 2 seconds.

Teleoperation

NOTE:

Keyboard

TIP: Terminal can be found with the Ubuntu search icon on the top left corner of the screen. Shortcut key for Terminal is Ctrl+Alt+t.

  1. Launch open_manipulator_teleop_keyboard node for simple teleoperation test using the keyboard.
    The OpenMANIPULATOR-X Controller must be running on another terminal.
    $ roslaunch open_manipulator_teleop open_manipulator_teleop_keyboard.launch
    
  2. If the node is successfully launched, the following instruction will appear in the terminal window.
  ---------------------------
  Control Your OpenMANIPULATOR-X!
  ---------------------------
  w : increase x axis in task space
  s : decrease x axis in task space
  a : increase y axis in task space
  d : decrease y axis in task space
  z : increase z axis in task space
  x : decrease z axis in task space

  y : increase joint 1 angle
  h : decrease joint 1 angle
  u : increase joint 2 angle
  j : decrease joint 2 angle
  i : increase joint 3 angle
  k : decrease joint 3 angle
  o : increase joint 4 angle
  l : decrease joint 4 angle

  g : gripper open
  f : gripper close

  1 : init pose
  2 : home pose

  q to quit
  ---------------------------
  Present Joint Angle J1: 0.000 J2: 0.000 J3: 0.000 J4: 0.000
  Present Kinematics Position X: 0.000 Y: 0.000 Z: 0.000
  ---------------------------

RC-100

Not supported.

PS4 Joystick

Install packages for teleoperation using PS4 joystick.

$ sudo apt-get install ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy
$ sudo pip install ds4drv

Connect PS4 joystick to the PC via Bluetooth using the following command

$ sudo ds4drv

Enter pairing mode with PS4 by pressing and holding Playstation button + share button for 10 sec. If the light on PS4 turns blue, enter the following commands in terminal and control OpenMANIPULATOR-X.

$ export ROS_NAMESPACE=/open_manipulator
$ roslaunch teleop_twist_joy teleop.launch
$ roslaunch open_manipulator_teleop open_manipulator_teleop_joystick.launch

XBOX 360 Joystick

Install packages for teleoperation using XBOX 360 joystick.

$ sudo apt-get install xboxdrv ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy

Connect XBOX 360 joystick to the PC with wireless adapter or USB cable, and launch teleoperation packages for XBOX 360 joystick.

$ sudo xboxdrv --silent
$ export ROS_NAMESPACE=/open_manipulator
$ roslaunch teleop_twist_joy teleop.launch
$ roslaunch open_manipulator_teleop open_manipulator_teleop_joystick.launch

NOTE:

Keyboard

TIP: Terminal can be found with the Ubuntu search icon on the top left corner of the screen. Shortcut key for Terminal is Ctrl+Alt+t.

Open a terminal and execute the servo launch file below; MoveIt Servo provides real-time, smooth, and responsive control for robotic manipulators in joint or Cartesian space.

$ ros2 launch open_manipulator_x_moveit_config servo.launch.py

Open another terminal and enter below command.

$ ros2 run open_manipulator_x_teleop open_manipulator_x_teleop

You will see the interface below in the terminal window after a successful launch, and you can now easily control the OM-X using the keyboard.

[INFO] [1732776371.215661501] [servo_keyboard_input]: SUCCESS TO CONNECT SERVO START SERVER
[INFO] [1732776371.216112752] [servo_keyboard_input]: SUCCESS TO CONNECT SERVO STOP SERVER
[INFO] [1732776371.216172872] [servo_keyboard_input]: call 'moveit_servo' start srv.
[INFO] [1732776371.283417067] [servo_keyboard_input]: SUCCESS to start 'moveit_servo'
Reading from keyboard
---------------------------
Joint Control Keys:
  1/q: Joint1 +/-
  2/w: Joint2 +/-
  3/e: Joint3 +/-
  4/r: Joint4 +/-
Use o|p to open/close the gripper.
'ESC' to quit.

Keyboard

Not supported.

RC-100

The settings for ROBOTIS RC-100B controller is included in the OpenCR firmware for OpenMANIPULATOR.
This controller can be paired with BT-410 Bluetooth module.

PS4 Joystick

Not supported.

XBOX 360 Joystick

Not supported.