Skip to main content

ROS Operation

GUI Program

info

NOTE:

  • Make sure ROS 2 Jazzy dependencies are installed before performing these instructions
  • Install ROS Packages
  • Docker installation is recommended for ROS 2 Jazzy
  • If you are using the Docker environment, make sure you are inside the container before running these commands. Use ./docker/container.sh enter to enter the container.

Launch the GUI program for OpenMANIPULATOR-X with ROS 2 Jazzy.

Terminal 1 - Launch the hardware controller:

$ ros2 launch open_manipulator_bringup open_manipulator_x.launch.py

Terminal 2 - Launch MoveIt configuration:

$ ros2 launch open_manipulator_moveit_config open_manipulator_x_moveit.launch.py

Terminal 3 - Launch the GUI program:

$ ros2 launch open_manipulator_gui open_manipulator_x_gui.launch.py
  1. Click the Timer Start button.

  2. Check the status of OpenMANIPULATOR-X.

  3. 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.

  4. 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.

  5. 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 will provide an interface for controlling the manipulator.

Teleoperation

info

NOTE: If you are using the Docker environment, make sure you are inside the container before running these commands. Use ./docker/container.sh enter to enter the container.

Terminal 1 - Launch the hardware controller:

$ ros2 launch open_manipulator_bringup open_manipulator_x.launch.py

Terminal 2 - Launch teleoperation:

$ ros2 run open_manipulator_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 OpenMANIPULATOR-X using the keyboard.

[INFO] [1751512149.624709736] [keyboard_controller]: Waiting for /joint_states...
[INFO] [1751512149.625639191] [keyboard_controller]: Waiting for initial joint states...
[INFO] [1751512149.626929914] [keyboard_controller]: Received joint states: [-0.05982525065917969, -0.9157865293212891, 0.8517752421836835, 0.0], Gripper: 0.0
[INFO] [1751512149.627527555] [keyboard_controller]: Ready to receive keyboard input!
[INFO] [1751512149.627527555] [keyboard_controller]: Use 1/q, 2/w, 3/e, 4/r for joints 1-4, o/p for gripper. Press ESC to exit.