diff --git a/_includes/en/platform/openmanipulator_x/controller/check_setting_humble.md b/_includes/en/platform/openmanipulator_x/controller/check_setting_humble.md
new file mode 100644
index 000000000..4dfb60088
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/controller/check_setting_humble.md
@@ -0,0 +1,2 @@
+Not supported.
+{: .notice--warning}
diff --git a/_includes/en/platform/openmanipulator_x/controller/check_setting_rviz_humble.md b/_includes/en/platform/openmanipulator_x/controller/check_setting_rviz_humble.md
new file mode 100644
index 000000000..fd87770dc
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/controller/check_setting_rviz_humble.md
@@ -0,0 +1,5 @@
+Load OpenMANIPULATOR-X on RViz.
+``` bash
+$ ros2 launch open_manipulator_x_description model.launch.py
+```
+![](/assets/images/platform/openmanipulator_x/ros2_OpenManipulator_rviz.png)
diff --git a/_includes/en/platform/openmanipulator_x/controller/launch_controller_humble.md b/_includes/en/platform/openmanipulator_x/controller/launch_controller_humble.md
new file mode 100644
index 000000000..dc49ecfef
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/controller/launch_controller_humble.md
@@ -0,0 +1,175 @@
+Open a new terminal and launch the open_manipulator_x packages.
+
+- When operating with `U2D2`
+Close all terminal and enter the command below in each new terminal.
+```bash
+$ ros2 launch open_manipulator_x_bringup hardware.launch.py
+```
+
+- When operating with `OpenCR`
+Close all terminal and enter the command below in the new terminal.
+```bash
+$ ros2 launch open_manipulator_x_bringup hardware.launch.py port_name:=/dev/ttyACM0
+```
+
+{% capture warning_01 %}
+**WARNING** :
+Please check each joint position before running OpenMANIPULATOR-X. The manipulator will not operate if any joint is out of operable range.
+The following image describes the recommended pose of OpenMANIPULATOR-X at start up. Please adjust the pose before the torque is turned on by the controller.
+
+{% endcapture %}
+
{{ warning_01 | markdownify }}
+
+Follwing message will be shown in the Terminal after the process done successfully with `U2D2`.
+
+```
+$ ros2 launch open_manipulator_x_bringup hardware.launch.py
+
+[INFO] [launch]: All log files can be found below /home/omx/.ros/log/2024-12-10-16-13-03-846807-omx-3063
+[INFO] [launch]: Default logging verbosity is set to INFO
+[INFO] [ros2_control_node-1]: process started with pid [3066]
+[INFO] [robot_state_publisher-2]: process started with pid [3068]
+[INFO] [spawner-3]: process started with pid [3070]
+[robot_state_publisher-2] [INFO] [1733814784.140348781] [robot_state_publisher]: got segment dummy_mimic_fix
+[robot_state_publisher-2] [INFO] [1733814784.140441706] [robot_state_publisher]: got segment end_effector_link
+[robot_state_publisher-2] [INFO] [1733814784.140450447] [robot_state_publisher]: got segment gripper_left_link
+[robot_state_publisher-2] [INFO] [1733814784.140455005] [robot_state_publisher]: got segment gripper_right_link
+[robot_state_publisher-2] [INFO] [1733814784.140459339] [robot_state_publisher]: got segment link1
+[robot_state_publisher-2] [INFO] [1733814784.140463495] [robot_state_publisher]: got segment link2
+[robot_state_publisher-2] [INFO] [1733814784.140467530] [robot_state_publisher]: got segment link3
+[robot_state_publisher-2] [INFO] [1733814784.140471673] [robot_state_publisher]: got segment link4
+[robot_state_publisher-2] [INFO] [1733814784.140475662] [robot_state_publisher]: got segment link5
+[robot_state_publisher-2] [INFO] [1733814784.140479440] [robot_state_publisher]: got segment world
+[ros2_control_node-1] [WARN] [1733814784.150297704] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use '~/robot_description' topic from 'robot_state_publisher' instead.
+[ros2_control_node-1] [INFO] [1733814784.150762238] [resource_manager]: Loading hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.163256190] [resource_manager]: Initialize hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] transmission_to_joint_matrix_
+[ros2_control_node-1] [0][0] 1.000000, [0][1] 0.000000, [0][2] 0.000000, [0][3] 0.000000, [0][4] 0.000000,
+[ros2_control_node-1] [1][0] 0.000000, [1][1] 1.000000, [1][2] 0.000000, [1][3] 0.000000, [1][4] 0.000000,
+[ros2_control_node-1] [2][0] 0.000000, [2][1] 0.000000, [2][2] 1.000000, [2][3] 0.000000, [2][4] 0.000000,
+[ros2_control_node-1] [3][0] 0.000000, [3][1] 0.000000, [3][2] 0.000000, [3][3] 1.000000, [3][4] 0.000000,
+[ros2_control_node-1] [4][0] 0.000000, [4][1] 0.000000, [4][2] 0.000000, [4][3] 0.000000, [4][4] 1.000000,
+[ros2_control_node-1] [5][0] 0.000000, [5][1] 0.000000, [5][2] 0.000000, [5][3] 0.000000, [5][4] 0.000000,
+[ros2_control_node-1] joint_to_transmission_matrix_
+[ros2_control_node-1] [0][0] 1.000000, [0][1] 0.000000, [0][2] 0.000000, [0][3] 0.000000, [0][4] 0.000000, [0][5] 0.000000,
+[ros2_control_node-1] [1][0] 0.000000, [1][1] 1.000000, [1][2] 0.000000, [1][3] 0.000000, [1][4] 0.000000, [1][5] 0.000000,
+[ros2_control_node-1] [2][0] 0.000000, [2][1] 0.000000, [2][2] 1.000000, [2][3] 0.000000, [2][4] 0.000000, [2][5] 0.000000,
+[ros2_control_node-1] [3][0] 0.000000, [3][1] 0.000000, [3][2] 0.000000, [3][3] 1.000000, [3][4] 0.000000, [3][5] 0.000000,
+[ros2_control_node-1] [4][0] 0.000000, [4][1] 0.000000, [4][2] 0.000000, [4][3] 0.000000, [4][4] 1.000000, [4][5] 0.000000,
+[ros2_control_node-1] [INFO] [1733814784.164000125] [dynamixel_hardware_interface]: port_name /dev/ttyUSB0 / baudrate 1000000
+[ros2_control_node-1] Dynamixel Information File List.
+[ros2_control_node-1] num: 1000, name: xh430_w350.model
+[ros2_control_node-1] num: 1020, name: xm430_w350.model
+[ros2_control_node-1] num: 1060, name: xl430_w250.model
+[ros2_control_node-1] num: 1080, name: xc430_w240.model
+[ros2_control_node-1] num: 1100, name: xh540_w270.model
+[ros2_control_node-1] num: 1160, name: 2xc430_w250.model
+[ros2_control_node-1] num: 4000, name: ym070_210_m001.model
+[ros2_control_node-1] num: 4020, name: ym070_210_r051.model
+[ros2_control_node-1] num: 4030, name: ym070_210_r099.model
+[ros2_control_node-1] num: 4050, name: ym070_210_a099.model
+[ros2_control_node-1] num: 4120, name: ym080_230_m001.model
+[ros2_control_node-1] num: 4140, name: ym080_230_r051.model
+[ros2_control_node-1] num: 4150, name: ym080_230_r099.model
+[ros2_control_node-1] num: 4170, name: ym080_230_a099.model
+[ros2_control_node-1] num: 35074, name: rh_p12_rn.model
+[ros2_control_node-1] [INFO] [1733814784.165060244] [dynamixel_hardware_interface]: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+[ros2_control_node-1] [INFO] [1733814784.165085781] [dynamixel_hardware_interface]: $$$$$ Init Dxl Comm Port
+[ros2_control_node-1] [INFO] [1733814784.165119953] [dynamixel_hardware_interface]: Revolute to Prismatic gripper conversion enabled.
+[ros2_control_node-1] Succeeded to open the port!
+[ros2_control_node-1] Succeeded to change the [1000000] baudrate!
+[ros2_control_node-1] [ID:011] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [ID:012] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [ID:013] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [ID:014] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [ID:015] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [INFO] [1733814784.172855510] [dynamixel_hardware_interface]: Trying to connect to the communication port...
+[ros2_control_node-1] [INFO] [1733814784.172904554] [dynamixel_hardware_interface]: $$$$$ Init Dxl Items
+[ros2_control_node-1] [INFO] [1733814784.174263837] [dynamixel_hardware_interface]: [ID:11] item_name:Drive Mode data:0
+[ros2_control_node-1] [INFO] [1733814784.175202777] [dynamixel_hardware_interface]: [ID:11] item_name:Position D Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.176189566] [dynamixel_hardware_interface]: [ID:11] item_name:Position I Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.177218657] [dynamixel_hardware_interface]: [ID:11] item_name:Position P Gain data:800
+[ros2_control_node-1] [INFO] [1733814784.178201814] [dynamixel_hardware_interface]: [ID:12] item_name:Drive Mode data:0
+[ros2_control_node-1] [INFO] [1733814784.179188157] [dynamixel_hardware_interface]: [ID:12] item_name:Position D Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.180215312] [dynamixel_hardware_interface]: [ID:12] item_name:Position I Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.181209639] [dynamixel_hardware_interface]: [ID:12] item_name:Position P Gain data:800
+[ros2_control_node-1] [INFO] [1733814784.182195348] [dynamixel_hardware_interface]: [ID:13] item_name:Drive Mode data:0
+[ros2_control_node-1] [INFO] [1733814784.183204690] [dynamixel_hardware_interface]: [ID:13] item_name:Position D Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.184192489] [dynamixel_hardware_interface]: [ID:13] item_name:Position I Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.185186500] [dynamixel_hardware_interface]: [ID:13] item_name:Position P Gain data:800
+[ros2_control_node-1] [INFO] [1733814784.186251591] [dynamixel_hardware_interface]: [ID:14] item_name:Drive Mode data:0
+[ros2_control_node-1] [INFO] [1733814784.187186969] [dynamixel_hardware_interface]: [ID:14] item_name:Position D Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.188187523] [dynamixel_hardware_interface]: [ID:14] item_name:Position I Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.189248186] [dynamixel_hardware_interface]: [ID:14] item_name:Position P Gain data:800
+[ros2_control_node-1] [INFO] [1733814784.189281693] [dynamixel_hardware_interface]: $$$$$ Init Dxl Read Items
+[ros2_control_node-1] Dynamixel Read Type : sync read
+[ros2_control_node-1] ID : 11, 12, 13, 14, 15,
+[ros2_control_node-1] Read items : Present Position Present VelocityPresent Current Torque Enable Present Input Voltage
+[ros2_control_node-1] set sync read (indirect addr) : addr 224, size 13
+[ros2_control_node-1] Success to set SyncRead handler using indirect address
+[ros2_control_node-1] [INFO] [1733814784.255333410] [dynamixel_hardware_interface]: $$$$$ Init Dxl Write Items
+[ros2_control_node-1] Dynamixel Write Type : sync write
+[ros2_control_node-1] ID : 11, 12, 13, 14, 15,
+[ros2_control_node-1] Write items : Goal Position
+[ros2_control_node-1] set sync write (indirect addr) : addr 634, size 4
+[ros2_control_node-1] Success to set SyncWrite handler using indirect address
+[ros2_control_node-1] [INFO] [1733814784.285087764] [resource_manager]: Successful initialization of hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.285623329] [resource_manager]: 'configure' hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.285649762] [resource_manager]: Successful 'configure' of hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.285677277] [resource_manager]: 'activate' hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.288399302] [dynamixel_hardware_interface]: Sync joint state to command (position, 3.25354 <- position, 3.25354
+[ros2_control_node-1] [INFO] [1733814784.288484144] [dynamixel_hardware_interface]: Sync joint state to command (position, -22.5879 <- position, -22.5879
+[ros2_control_node-1] [INFO] [1733814784.288522542] [dynamixel_hardware_interface]: Sync joint state to command (position, 48.5393 <- position, 48.5393
+[ros2_control_node-1] [INFO] [1733814784.288556311] [dynamixel_hardware_interface]: Sync joint state to command (position, 59.4431 <- position, 59.4431
+[ros2_control_node-1] [INFO] [1733814784.288587808] [dynamixel_hardware_interface]: Sync joint state to command (position, 1.08561 <- position, 1.08561
+[ros2_control_node-1] [INFO] [1733814784.288619773] [dynamixel_hardware_interface]: Sync joint state to command (position, 0 <- position, 0
+[spawner-3] [INFO] [1733814784.344387122] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available...
+[ros2_control_node-1] [ID:011] Torque ON
+[ros2_control_node-1] [ID:012] Torque ON
+[ros2_control_node-1] [ID:013] Torque ON
+[ros2_control_node-1] [ID:014] Torque ON
+[ros2_control_node-1] [ID:015] Torque ON
+[ros2_control_node-1] [INFO] [1733814784.794363518] [dynamixel_hardware_interface]: Dynamixel Hardware Start!
+[ros2_control_node-1] [INFO] [1733814784.794583503] [resource_manager]: Successful 'activate' of hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.844187956] [controller_manager]: update rate is 1000 Hz
+[ros2_control_node-1] [INFO] [1733814784.844239126] [controller_manager]: Spawning controller_manager RT thread with scheduler priority: 50
+[ros2_control_node-1] [WARN] [1733814784.847602761] [controller_manager]: No real-time kernel detected on this system. See [https://control.ros.org/master/doc/ros2_control/controller_manager/doc/userdoc.html] for details on how to enable realtime scheduling.
+[ros2_control_node-1] [INFO] [1733814784.864748196] [controller_manager]: Loading controller 'joint_state_broadcaster'
+[spawner-3] [INFO] [1733814784.872066996] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
+[ros2_control_node-1] [INFO] [1733814784.872576377] [controller_manager]: Configuring controller 'joint_state_broadcaster'
+[ros2_control_node-1] [INFO] [1733814784.872671446] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
+[spawner-3] [INFO] [1733814784.890559256] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
+[INFO] [spawner-3]: process has finished cleanly [pid 3070]
+[INFO] [spawner-4]: process started with pid [3114]
+[INFO] [spawner-5]: process started with pid [3116]
+[ros2_control_node-1] [INFO] [1733814785.561511632] [controller_manager]: Loading controller 'arm_controller'
+[ros2_control_node-1] [WARN] [1733814785.574916138] [arm_controller]: [Deprecated]: "allow_nonzero_velocity_at_trajectory_end" is set to true. The default behavior will change to false.
+[ros2_control_node-1] [INFO] [1733814785.576633589] [controller_manager]: Loading controller 'gripper_controller'
+[spawner-5] [INFO] [1733814785.598697696] [spawner_arm_controller]: Loaded arm_controller
+[ros2_control_node-1] [INFO] [1733814785.599380288] [controller_manager]: Configuring controller 'arm_controller'
+[ros2_control_node-1] [INFO] [1733814785.599545696] [arm_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
+[ros2_control_node-1] [INFO] [1733814785.599572347] [arm_controller]: Command interfaces are [position] and state interfaces are [position velocity].
+[ros2_control_node-1] [INFO] [1733814785.599598355] [arm_controller]: Using 'splines' interpolation method.
+[spawner-4] [INFO] [1733814785.600233495] [spawner_gripper_controller]: Loaded gripper_controller
+[ros2_control_node-1] [INFO] [1733814785.600325312] [arm_controller]: Controller state will be published at 200.00 Hz.
+[ros2_control_node-1] [INFO] [1733814785.605748626] [arm_controller]: Action status changes will be monitored at 20.00 Hz.
+[ros2_control_node-1] [INFO] [1733814785.609463352] [controller_manager]: Configuring controller 'gripper_controller'
+[ros2_control_node-1] [INFO] [1733814785.609542143] [gripper_controller]: Action status changes will be monitored at 20Hz.
+[spawner-5] [INFO] [1733814785.619695267] [spawner_arm_controller]: Configured and activated arm_controller
+[spawner-4] [INFO] [1733814785.626031382] [spawner_gripper_controller]: Configured and activated gripper_controller
+[INFO] [spawner-4]: process has finished cleanly [pid 3114]
+[INFO] [spawner-5]: process has finished cleanly [pid 3116]
+```
+
+
+{% capture notice_01 %}
+**TIP**:
+- If you can't load DYNAMIXEL, please check firmware to use ROBOTIS software ([DYNAMIXEL Wizard 2.0](/docs/en/software/dynamixel/dynamixel_wizard2/#firmware-update))
+
+{% endcapture %}
+
{{ notice_01 | markdownify }}
+
+{% capture notice_02 %}
+**NOTE**: OpenMANIPULATOR-X controller is compatible with [Protocol 2.0](/docs/en/dxl/protocol2/) which supports `MX 2.0`, `X` and `Pro` series. [Protocol 1.0](/docs/en/dxl/protocol1/) does not support SyncRead instructions to access to multiple DYNAMIXEL's's simultaneously.
+{% endcapture %}
+
{{ notice_02 | markdownify}}
diff --git a/_includes/en/platform/openmanipulator_x/controller/launch_controller_pkg_humble.md b/_includes/en/platform/openmanipulator_x/controller/launch_controller_pkg_humble.md
new file mode 100644
index 000000000..b15f36e8f
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/controller/launch_controller_pkg_humble.md
@@ -0,0 +1,7 @@
+The OpenMANIPULATOR-X controller has been restructured to utilize the ros2_control framework and MoveIt for enhanced flexibility, modularity, and usability. This updated controller allows for seamless integration with ROS 2-based systems, offering advanced features such as trajectory planning, real-time control, and state feedback.
+
+{% capture notice_01 %}
+**NOTE**:
+- Make sure ROS dependencies are installed before performing these instructions. - [Install ROS Packages](/docs/en/platform/openmanipulator_x/quick_start_guide/#install-ros-packages)
+{% endcapture %}
+
{{ notice_01 | markdownify }}
diff --git a/_includes/en/platform/openmanipulator_x/controller/moveit_humble.md b/_includes/en/platform/openmanipulator_x/controller/moveit_humble.md
new file mode 100644
index 000000000..9e3968f74
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/controller/moveit_humble.md
@@ -0,0 +1,30 @@
+MoveIt 2! is a set of packages for your robot to manipulate for Motion Planning, Manipulation, Inverse Kinematics, Control, 3D Perception and Collision Checking.
+
+#### [Launch MoveIt 2 with Hardware](#launch-moveit)
+
+Before launching MoveIt 2, ensure that the `hardware.launch.py` from [Launch Controller](/docs/en/platform/openmanipulator_x/ros_controller_package/#launch-controller) is running in a separate terminal.
+Then launch **MoveIt!** with the following command.
+```bash
+$ ros2 launch open_manipulator_x_moveit_config moveit_core.launch.py
+```
+ ![](/assets/images/platform/openmanipulator_x/moveit2_example.png)
+
+**Simple Instructions for Using MOVEIT 2:**
+
+1. You can move the robot to your desired pose using the **Interactive Marker** visible in RViz.
+2. Use the **Plan** option in the Commands column to simulate the motion of the robotic arm.
+3. Click **Execute** to move the robot according to the simulated motion.
+4. Set the **Planning Group** to `arm` and use the **Goal State** options `init` or `home` to move the robot to predefined poses.
+5. Change the **Planning Group** to `gripper` and use **Goal State** options such as `close` or `open` to open and close the gripper.
+
+#### [Using MoveIt! with Gazebo](#using-moveit-with-gazebo)
+Gazebo is a tool to simulate and test your robot in a virtual enviroment, without an actual robot.
+
+Also, you can use MoveIt feature using your virtual robot in the Gazebo enviroment with the following command.
+
+For more information on Gazebo, See [Simulation](/docs/en/platform/openmanipulator_x/ros_simulation/)
+
+Close all terminals and then launch the Gazebo simulator and RViz visualization tool.
+```bash
+$ ros2 launch open_manipulator_x_moveit_config moveit_gazebo.launch.py
+```
diff --git a/_includes/en/platform/openmanipulator_x/operation/gui_program_humble.md b/_includes/en/platform/openmanipulator_x/operation/gui_program_humble.md
new file mode 100644
index 000000000..23782d5c1
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/operation/gui_program_humble.md
@@ -0,0 +1,42 @@
+{% capture notice_01 %}
+**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](/docs/en/platform/openmanipulator_x/ros_controller_package/#launch-controller) instructions before running the GUI Program.
+{% endcapture %}
+
{{ notice_01 | markdownify }}
+
+1. Before Launch the GUI program, the [OpenMANIPULATOR-X Controller](/docs/en/platform/openmanipulator_x/ros_controller_package/#launch-controller) must be running on another terminal. Plus, launch moveit_core using this command in the new terminal.
+```bash
+$ ros2 launch open_manipulator_x_moveit_config moveit_core.launch.py
+```
+
+2. Launch the GUI program.
+```bash
+$ ros2 launch open_manipulator_x_gui open_manipulator_x_gui.launch.py
+```
+
+3. Click the `Timer Start` button.
+![](/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI2.png)
+
+4. Check the status of OpenMANIPULATOR-X.
+![](/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI3.png)
+
+5. To manipulate OpenMANIPULATOR-X in the [joint space]{: .popup}, enter the joint angles and total time for the trajectory. Then click the `send` button to start the motion.
+![](/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI4.png)
+
+6. To manipulate OpenMANIPULATOR-X in the [task space]{: .popup}, enter the kinematics pose of the OpenMANIPULATOR-X end-effector(tool) in the [task space]{: .popup}. Then click the `send` button to start the motion.
+![](/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI5.png)
+
+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.
+![](/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI6.png)
+
+Press the `Play` button to make the manipulator move sequentially according to the saved tasks. Completed tasks will have their status changed to Done
+![](/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI7.png)
+
+
+[task space]: /docs/en/popup/open_manipulator_coordinates/
+[joint space]: /docs/en/popup/open_manipulator_coordinates/
diff --git a/_includes/en/platform/openmanipulator_x/operation/teleop_humble.md b/_includes/en/platform/openmanipulator_x/operation/teleop_humble.md
new file mode 100644
index 000000000..9f306ede5
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/operation/teleop_humble.md
@@ -0,0 +1,43 @@
+
+{% capture notice_01 %}
+**NOTE**:
+- Make sure ROS dependencies are installed before performing these instructions - [Install ROS Packages](/docs/en/platform/openmanipulator_x/ros_setup/#install-ros-packages)
+- Make sure to run [OpenMANIPULATOR-X controller](/docs/en/platform/openmanipulator_x/ros_controller_package/#launch-controller) instructions before use of the instruction
+{% endcapture %}
+
{{ notice_01 | markdownify }}
+
+
+
+### [Keyboard](#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`.
+{: .notice--success}
+
+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.
+```bash
+$ ros2 launch open_manipulator_x_moveit_config servo.launch.py
+```
+
+
+Open another terminal and enter below command.
+```bash
+$ 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.
+```
diff --git a/_includes/en/platform/openmanipulator_x/quick_start_guide/keyboard_teleop_humble.md b/_includes/en/platform/openmanipulator_x/quick_start_guide/keyboard_teleop_humble.md
new file mode 100644
index 000000000..214345d16
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/quick_start_guide/keyboard_teleop_humble.md
@@ -0,0 +1,29 @@
+
+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.
+```bash
+$ ros2 launch open_manipulator_x_moveit_config servo.launch.py
+```
+
+
+Open another terminal and enter below command.
+```bash
+$ 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.
+```
diff --git a/_includes/en/platform/openmanipulator_x/quick_start_guide/launch_controller_humble.md b/_includes/en/platform/openmanipulator_x/quick_start_guide/launch_controller_humble.md
new file mode 100644
index 000000000..90fd5c765
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/quick_start_guide/launch_controller_humble.md
@@ -0,0 +1,171 @@
+
+After running this section, software controller that controls the OpenMANIPULAOTR-X will be launched and each joint of the OpenMANIPULATOR-X will be locked (Torque On).
+
+- When operating with `U2D2`
+Close all terminal and enter the command below in each new terminal.
+```bash
+$ ros2 launch open_manipulator_x_bringup hardware.launch.py
+```
+
+- When operating with `OpenCR`
+Close all terminal and enter the command below in the new terminal.
+```bash
+$ ros2 launch open_manipulator_x_bringup hardware.launch.py port_name:=/dev/ttyACM0
+```
+
+{% capture warning_01 %}
+**WARNING** :
+Please check each joint position before running OpenMANIPULATOR-X. If joints are set inappropriately, OpenMANIPULATOR-X might not start operating.
+The picture of OpenMANIPULATOR-X below is showing you the ideal pose of OpenMANIPULATOR-X. Please adjust each joints along with the following picture when DYNAMIXEL torque is not enabled.
+
+
+{% endcapture %}
+
{{ warning_01 | markdownify }}
+
+Launch result on the terminal will look like below.
+
+```
+$ ros2 launch open_manipulator_x_bringup hardware.launch.py
+
+[INFO] [launch]: All log files can be found below /home/omx/.ros/log/2024-12-10-16-13-03-846807-omx-3063
+[INFO] [launch]: Default logging verbosity is set to INFO
+[INFO] [ros2_control_node-1]: process started with pid [3066]
+[INFO] [robot_state_publisher-2]: process started with pid [3068]
+[INFO] [spawner-3]: process started with pid [3070]
+[robot_state_publisher-2] [INFO] [1733814784.140348781] [robot_state_publisher]: got segment dummy_mimic_fix
+[robot_state_publisher-2] [INFO] [1733814784.140441706] [robot_state_publisher]: got segment end_effector_link
+[robot_state_publisher-2] [INFO] [1733814784.140450447] [robot_state_publisher]: got segment gripper_left_link
+[robot_state_publisher-2] [INFO] [1733814784.140455005] [robot_state_publisher]: got segment gripper_right_link
+[robot_state_publisher-2] [INFO] [1733814784.140459339] [robot_state_publisher]: got segment link1
+[robot_state_publisher-2] [INFO] [1733814784.140463495] [robot_state_publisher]: got segment link2
+[robot_state_publisher-2] [INFO] [1733814784.140467530] [robot_state_publisher]: got segment link3
+[robot_state_publisher-2] [INFO] [1733814784.140471673] [robot_state_publisher]: got segment link4
+[robot_state_publisher-2] [INFO] [1733814784.140475662] [robot_state_publisher]: got segment link5
+[robot_state_publisher-2] [INFO] [1733814784.140479440] [robot_state_publisher]: got segment world
+[ros2_control_node-1] [WARN] [1733814784.150297704] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use '~/robot_description' topic from 'robot_state_publisher' instead.
+[ros2_control_node-1] [INFO] [1733814784.150762238] [resource_manager]: Loading hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.163256190] [resource_manager]: Initialize hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] transmission_to_joint_matrix_
+[ros2_control_node-1] [0][0] 1.000000, [0][1] 0.000000, [0][2] 0.000000, [0][3] 0.000000, [0][4] 0.000000,
+[ros2_control_node-1] [1][0] 0.000000, [1][1] 1.000000, [1][2] 0.000000, [1][3] 0.000000, [1][4] 0.000000,
+[ros2_control_node-1] [2][0] 0.000000, [2][1] 0.000000, [2][2] 1.000000, [2][3] 0.000000, [2][4] 0.000000,
+[ros2_control_node-1] [3][0] 0.000000, [3][1] 0.000000, [3][2] 0.000000, [3][3] 1.000000, [3][4] 0.000000,
+[ros2_control_node-1] [4][0] 0.000000, [4][1] 0.000000, [4][2] 0.000000, [4][3] 0.000000, [4][4] 1.000000,
+[ros2_control_node-1] [5][0] 0.000000, [5][1] 0.000000, [5][2] 0.000000, [5][3] 0.000000, [5][4] 0.000000,
+[ros2_control_node-1] joint_to_transmission_matrix_
+[ros2_control_node-1] [0][0] 1.000000, [0][1] 0.000000, [0][2] 0.000000, [0][3] 0.000000, [0][4] 0.000000, [0][5] 0.000000,
+[ros2_control_node-1] [1][0] 0.000000, [1][1] 1.000000, [1][2] 0.000000, [1][3] 0.000000, [1][4] 0.000000, [1][5] 0.000000,
+[ros2_control_node-1] [2][0] 0.000000, [2][1] 0.000000, [2][2] 1.000000, [2][3] 0.000000, [2][4] 0.000000, [2][5] 0.000000,
+[ros2_control_node-1] [3][0] 0.000000, [3][1] 0.000000, [3][2] 0.000000, [3][3] 1.000000, [3][4] 0.000000, [3][5] 0.000000,
+[ros2_control_node-1] [4][0] 0.000000, [4][1] 0.000000, [4][2] 0.000000, [4][3] 0.000000, [4][4] 1.000000, [4][5] 0.000000,
+[ros2_control_node-1] [INFO] [1733814784.164000125] [dynamixel_hardware_interface]: port_name /dev/ttyUSB0 / baudrate 1000000
+[ros2_control_node-1] Dynamixel Information File List.
+[ros2_control_node-1] num: 1000, name: xh430_w350.model
+[ros2_control_node-1] num: 1020, name: xm430_w350.model
+[ros2_control_node-1] num: 1060, name: xl430_w250.model
+[ros2_control_node-1] num: 1080, name: xc430_w240.model
+[ros2_control_node-1] num: 1100, name: xh540_w270.model
+[ros2_control_node-1] num: 1160, name: 2xc430_w250.model
+[ros2_control_node-1] num: 4000, name: ym070_210_m001.model
+[ros2_control_node-1] num: 4020, name: ym070_210_r051.model
+[ros2_control_node-1] num: 4030, name: ym070_210_r099.model
+[ros2_control_node-1] num: 4050, name: ym070_210_a099.model
+[ros2_control_node-1] num: 4120, name: ym080_230_m001.model
+[ros2_control_node-1] num: 4140, name: ym080_230_r051.model
+[ros2_control_node-1] num: 4150, name: ym080_230_r099.model
+[ros2_control_node-1] num: 4170, name: ym080_230_a099.model
+[ros2_control_node-1] num: 35074, name: rh_p12_rn.model
+[ros2_control_node-1] [INFO] [1733814784.165060244] [dynamixel_hardware_interface]: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+[ros2_control_node-1] [INFO] [1733814784.165085781] [dynamixel_hardware_interface]: $$$$$ Init Dxl Comm Port
+[ros2_control_node-1] [INFO] [1733814784.165119953] [dynamixel_hardware_interface]: Revolute to Prismatic gripper conversion enabled.
+[ros2_control_node-1] Succeeded to open the port!
+[ros2_control_node-1] Succeeded to change the [1000000] baudrate!
+[ros2_control_node-1] [ID:011] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [ID:012] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [ID:013] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [ID:014] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [ID:015] Request ping - Ping succeeded. Dynamixel model number : 1020
+[ros2_control_node-1] [INFO] [1733814784.172855510] [dynamixel_hardware_interface]: Trying to connect to the communication port...
+[ros2_control_node-1] [INFO] [1733814784.172904554] [dynamixel_hardware_interface]: $$$$$ Init Dxl Items
+[ros2_control_node-1] [INFO] [1733814784.174263837] [dynamixel_hardware_interface]: [ID:11] item_name:Drive Mode data:0
+[ros2_control_node-1] [INFO] [1733814784.175202777] [dynamixel_hardware_interface]: [ID:11] item_name:Position D Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.176189566] [dynamixel_hardware_interface]: [ID:11] item_name:Position I Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.177218657] [dynamixel_hardware_interface]: [ID:11] item_name:Position P Gain data:800
+[ros2_control_node-1] [INFO] [1733814784.178201814] [dynamixel_hardware_interface]: [ID:12] item_name:Drive Mode data:0
+[ros2_control_node-1] [INFO] [1733814784.179188157] [dynamixel_hardware_interface]: [ID:12] item_name:Position D Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.180215312] [dynamixel_hardware_interface]: [ID:12] item_name:Position I Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.181209639] [dynamixel_hardware_interface]: [ID:12] item_name:Position P Gain data:800
+[ros2_control_node-1] [INFO] [1733814784.182195348] [dynamixel_hardware_interface]: [ID:13] item_name:Drive Mode data:0
+[ros2_control_node-1] [INFO] [1733814784.183204690] [dynamixel_hardware_interface]: [ID:13] item_name:Position D Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.184192489] [dynamixel_hardware_interface]: [ID:13] item_name:Position I Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.185186500] [dynamixel_hardware_interface]: [ID:13] item_name:Position P Gain data:800
+[ros2_control_node-1] [INFO] [1733814784.186251591] [dynamixel_hardware_interface]: [ID:14] item_name:Drive Mode data:0
+[ros2_control_node-1] [INFO] [1733814784.187186969] [dynamixel_hardware_interface]: [ID:14] item_name:Position D Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.188187523] [dynamixel_hardware_interface]: [ID:14] item_name:Position I Gain data:100
+[ros2_control_node-1] [INFO] [1733814784.189248186] [dynamixel_hardware_interface]: [ID:14] item_name:Position P Gain data:800
+[ros2_control_node-1] [INFO] [1733814784.189281693] [dynamixel_hardware_interface]: $$$$$ Init Dxl Read Items
+[ros2_control_node-1] Dynamixel Read Type : sync read
+[ros2_control_node-1] ID : 11, 12, 13, 14, 15,
+[ros2_control_node-1] Read items : Present Position Present VelocityPresent Current Torque Enable Present Input Voltage
+[ros2_control_node-1] set sync read (indirect addr) : addr 224, size 13
+[ros2_control_node-1] Success to set SyncRead handler using indirect address
+[ros2_control_node-1] [INFO] [1733814784.255333410] [dynamixel_hardware_interface]: $$$$$ Init Dxl Write Items
+[ros2_control_node-1] Dynamixel Write Type : sync write
+[ros2_control_node-1] ID : 11, 12, 13, 14, 15,
+[ros2_control_node-1] Write items : Goal Position
+[ros2_control_node-1] set sync write (indirect addr) : addr 634, size 4
+[ros2_control_node-1] Success to set SyncWrite handler using indirect address
+[ros2_control_node-1] [INFO] [1733814784.285087764] [resource_manager]: Successful initialization of hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.285623329] [resource_manager]: 'configure' hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.285649762] [resource_manager]: Successful 'configure' of hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.285677277] [resource_manager]: 'activate' hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.288399302] [dynamixel_hardware_interface]: Sync joint state to command (position, 3.25354 <- position, 3.25354
+[ros2_control_node-1] [INFO] [1733814784.288484144] [dynamixel_hardware_interface]: Sync joint state to command (position, -22.5879 <- position, -22.5879
+[ros2_control_node-1] [INFO] [1733814784.288522542] [dynamixel_hardware_interface]: Sync joint state to command (position, 48.5393 <- position, 48.5393
+[ros2_control_node-1] [INFO] [1733814784.288556311] [dynamixel_hardware_interface]: Sync joint state to command (position, 59.4431 <- position, 59.4431
+[ros2_control_node-1] [INFO] [1733814784.288587808] [dynamixel_hardware_interface]: Sync joint state to command (position, 1.08561 <- position, 1.08561
+[ros2_control_node-1] [INFO] [1733814784.288619773] [dynamixel_hardware_interface]: Sync joint state to command (position, 0 <- position, 0
+[spawner-3] [INFO] [1733814784.344387122] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available...
+[ros2_control_node-1] [ID:011] Torque ON
+[ros2_control_node-1] [ID:012] Torque ON
+[ros2_control_node-1] [ID:013] Torque ON
+[ros2_control_node-1] [ID:014] Torque ON
+[ros2_control_node-1] [ID:015] Torque ON
+[ros2_control_node-1] [INFO] [1733814784.794363518] [dynamixel_hardware_interface]: Dynamixel Hardware Start!
+[ros2_control_node-1] [INFO] [1733814784.794583503] [resource_manager]: Successful 'activate' of hardware 'OpenManipulatorXSystem'
+[ros2_control_node-1] [INFO] [1733814784.844187956] [controller_manager]: update rate is 1000 Hz
+[ros2_control_node-1] [INFO] [1733814784.844239126] [controller_manager]: Spawning controller_manager RT thread with scheduler priority: 50
+[ros2_control_node-1] [WARN] [1733814784.847602761] [controller_manager]: No real-time kernel detected on this system. See [https://control.ros.org/master/doc/ros2_control/controller_manager/doc/userdoc.html] for details on how to enable realtime scheduling.
+[ros2_control_node-1] [INFO] [1733814784.864748196] [controller_manager]: Loading controller 'joint_state_broadcaster'
+[spawner-3] [INFO] [1733814784.872066996] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
+[ros2_control_node-1] [INFO] [1733814784.872576377] [controller_manager]: Configuring controller 'joint_state_broadcaster'
+[ros2_control_node-1] [INFO] [1733814784.872671446] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
+[spawner-3] [INFO] [1733814784.890559256] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
+[INFO] [spawner-3]: process has finished cleanly [pid 3070]
+[INFO] [spawner-4]: process started with pid [3114]
+[INFO] [spawner-5]: process started with pid [3116]
+[ros2_control_node-1] [INFO] [1733814785.561511632] [controller_manager]: Loading controller 'arm_controller'
+[ros2_control_node-1] [WARN] [1733814785.574916138] [arm_controller]: [Deprecated]: "allow_nonzero_velocity_at_trajectory_end" is set to true. The default behavior will change to false.
+[ros2_control_node-1] [INFO] [1733814785.576633589] [controller_manager]: Loading controller 'gripper_controller'
+[spawner-5] [INFO] [1733814785.598697696] [spawner_arm_controller]: Loaded arm_controller
+[ros2_control_node-1] [INFO] [1733814785.599380288] [controller_manager]: Configuring controller 'arm_controller'
+[ros2_control_node-1] [INFO] [1733814785.599545696] [arm_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
+[ros2_control_node-1] [INFO] [1733814785.599572347] [arm_controller]: Command interfaces are [position] and state interfaces are [position velocity].
+[ros2_control_node-1] [INFO] [1733814785.599598355] [arm_controller]: Using 'splines' interpolation method.
+[spawner-4] [INFO] [1733814785.600233495] [spawner_gripper_controller]: Loaded gripper_controller
+[ros2_control_node-1] [INFO] [1733814785.600325312] [arm_controller]: Controller state will be published at 200.00 Hz.
+[ros2_control_node-1] [INFO] [1733814785.605748626] [arm_controller]: Action status changes will be monitored at 20.00 Hz.
+[ros2_control_node-1] [INFO] [1733814785.609463352] [controller_manager]: Configuring controller 'gripper_controller'
+[ros2_control_node-1] [INFO] [1733814785.609542143] [gripper_controller]: Action status changes will be monitored at 20Hz.
+[spawner-5] [INFO] [1733814785.619695267] [spawner_arm_controller]: Configured and activated arm_controller
+[spawner-4] [INFO] [1733814785.626031382] [spawner_gripper_controller]: Configured and activated gripper_controller
+[INFO] [spawner-4]: process has finished cleanly [pid 3114]
+[INFO] [spawner-5]: process has finished cleanly [pid 3116]
+```
+
+{% capture notice_01 %}
+**TIP**:
+- If you can't load DYNAMIXEL, please check firmware to use ROBOTIS software ([DYNAMIXEL Wizard 2.0](/docs/en/software/dynamixel/dynamixel_wizard2/#firmware-update))
+
+{% endcapture %}
+
{{ notice_01 | markdownify }}
diff --git a/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_comm_interface_humble.md b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_comm_interface_humble.md
new file mode 100644
index 000000000..6ec6bf960
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_comm_interface_humble.md
@@ -0,0 +1,84 @@
+There are two communication interface hardware options available for controlling the OpenMANIPULATOR-X. Please select one of the below options.
+After completing this section, turn on the power switch and check if all DYNAMIXEL LED blink once.
+
+
+
+![](/assets/images/icon_unfold.png) **Option 1(Recommended) : Use U2D2 as a communication interface**
+
+
+#### Connection
+Connect micro USB (connected to PC), DYNAMIXEL's(OpenMANIPULATOR-X), and 12V Power to U2D2 and U2D2 power hub board as shown below.
+
+
+
+**NOTE** : Please refer to [U2D2 e-Manual](/docs/en/parts/interface/u2d2/) and [U2D2 power hub board e-manual](/docs/en/parts/interface/u2d2_power_hub/) for detailed connection of U2D2 and U2D2 power hub board.
+{: .notice--info}
+
+#### USB Latency Timer Setting
+In Linux(Ubuntu platform) environment, USB latency time is set to 16ms by default. Follow the steps below to set the communication latency time to the lowest value (1ms) between DYNAMIXEL's and PC connected via USB.
+
+Open a terminal window and enter the following command to set usb latency time. The command below will set the USB latency to **1 ms**.
+
+**TIP**: You can open a new terminal window by pressing `CTRL` + `ALT` + `T`.
+{: .notice}
+
+``` bash
+$ ros2 run open_manipulator_x_bringup create_udev_rules
+```
+
+{% capture notice_01 %}
+**TIP**: If you would like to see the current latency, enter the following command in the terminal.
+
+```bash
+$ cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
+```
+
+{% endcapture %}
+
{{ notice_01 | markdownify }}
+
+
+
+
+
+![](/assets/images/icon_unfold.png) **Option 2 : Use OpenCR as a communication interface**
+
+
+This section describes how to set up OpenCR as a communication board between **ROS Packages** of PC and DYNAMIXEL's of OpenMANIPULATOR-X.
+
+#### Connection
+
+Connect micro USB (connected to PC), DYNAMIXEL's(OpenMANIPULATOR-X), and 12V Power to OpenCR as shown below.
+
+
+
+#### Upload Source code
+
+1. Set up the Arduino IDE for OpenCR ([Instructions](/docs/en/parts/controller/opencr10/#arduino-ide))
+
+2. Connect OpenCR to the PC.
+
+3. Open the example from `File > Examples > OpenCR > 10.Etc > usb_to_dxl`
+ ![](/assets/images/platform/openmanipulator_x/OpenManipulator_opencr_utd_setup.png)
+ > Open the `usb to dxl` example.
+
+4. Upload the example to OpenCR.
+ ![](/assets/images/platform/openmanipulator_x/upload_use_to_dxl.png)
+
+5. When the upload is completed, the following comments are displayed in the log window.
+ ![](/assets/images/parts/controller/opencr10/downloader_01.png)
+
+
+{% capture note_03 %}
+`FAQ`
+If upload fails, try with [Recovery Mode](/docs/en/parts/controller/opencr10/#recovery-mode)
+1. Turn on the power of the OpenCR board.
+2. Hold down the `PUSH SW2` button.
+3. Press the `Reset` button.
+4. Release the `Reset` button.
+5. Release the `PUSH SW2` button.
+
+The STATUS LED should blink every 100ms after entering Recovery Mode successfully.
+{% endcapture %}
+
{{ note_03 | markdownify }}
+
+
diff --git a/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble.md b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble.md
new file mode 100644
index 000000000..622843910
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble.md
@@ -0,0 +1,10 @@
+
+Installing Ubuntu on a PC or laptop may differ by model. Please contact the manufacturer or community for more details.
+{: .notice--warning}
+
+ROS 2 Humble is supported on `Ubuntu 22.04`.
+Please refer to the Ubuntu installation tutorial below.
+
+- ![](/assets/images/icon_download.png) [Download Ubuntu](https://releases.ubuntu.com/?_ga=2.219480409.1908348701.1627362888-1311983284.1627362888)
+
+- [Official Ubuntu Installation Tutorial](https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview)
diff --git a/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble_ros.md b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble_ros.md
new file mode 100644
index 000000000..4dc8e0d8c
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble_ros.md
@@ -0,0 +1,20 @@
+![](/assets/images/platform/openmanipulator_p/logo_ros.png)
+
+Please follow [the official ROS2 documentation](https://docs.ros.org/en/humble/Installation.html) to install the ROS2 Humble.
+For most Linux users, [Debian package installation](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html) method is strongly recommended.
+
+
diff --git a/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble_ros_packages.md b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble_ros_packages.md
new file mode 100644
index 000000000..d4beab492
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_humble_ros_packages.md
@@ -0,0 +1,36 @@
+
+Install dependent packages for OpenMANIPULATOR-X. Run the following commands in a terminal window.
+
+
+```bash
+$ sudo apt install \
+ ros-humble-dynamixel-sdk \
+ ros-humble-ros2-control \
+ ros-humble-moveit* \
+ ros-humble-gazebo-ros2-control \
+ ros-humble-ros2-controllers \
+ ros-humble-controller-manager \
+ ros-humble-position-controllers \
+ ros-humble-joint-state-broadcaster \
+ ros-humble-joint-trajectory-controller \
+ ros-humble-gripper-controllers \
+ ros-humble-hardware-interface \
+ ros-humble-xacro
+```
+
+```bash
+$ mkdir -p colcon_ws/src
+$ cd ~/colcon_ws/src/
+$ git clone -b humble https://github.com/ROBOTIS-GIT/open_manipulator.git
+$ git clone -b humble https://github.com/ROBOTIS-GIT/dynamixel_hardware_interface.git
+$ git clone -b humble https://github.com/ROBOTIS-GIT/dynamixel_interfaces.git
+$ cd ~/colcon_ws && colcon build --symlink-install
+```
+
+Set the ROS environment for PC
+
+```bash
+$ echo 'source /usr/share/gazebo/setup.sh' >> ~/.bashrc
+$ echo 'source ~/colcon_ws/install/local_setup.bash' >> ~/.bashrc
+$ source ~/.bashrc
+```
diff --git a/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_noetic_ros_packages.md b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_noetic_ros_packages.md
index 516132b07..a7347a14f 100644
--- a/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_noetic_ros_packages.md
+++ b/_includes/en/platform/openmanipulator_x/quick_start_guide/quickstart_noetic_ros_packages.md
@@ -12,9 +12,9 @@ $ sudo apt install ros-noetic-robotis-manipulator
2. Download and build OpenMANIPULATOR-X packages
```bash
$ cd ~/catkin_ws/src/
-$ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/open_manipulator.git
-$ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
-$ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/open_manipulator_simulations.git
+$ git clone -b noetic https://github.com/ROBOTIS-GIT/open_manipulator.git
+$ git clone -b noetic https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
+$ git clone -b noetic https://github.com/ROBOTIS-GIT/open_manipulator_simulations.git
$ git clone -b noetic https://github.com/ROBOTIS-GIT/open_manipulator_dependencies.git
$ cd ~/catkin_ws && catkin_make
```
diff --git a/_includes/en/platform/openmanipulator_x/simulation/gazebo_controller_humble.md b/_includes/en/platform/openmanipulator_x/simulation/gazebo_controller_humble.md
new file mode 100644
index 000000000..9af49ed57
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/simulation/gazebo_controller_humble.md
@@ -0,0 +1,106 @@
+
+Launch the open_manipulator_controller for Gazebo simulation.
+
+``` bash
+$ ros2 launch open_manipulator_x_moveit_config moveit_core.launch.py
+```
+
+If the OpenMANIPULATOR-X controller for Gazebo simulation Launched successfully, the below messages will be printed on the terminal.
+
+```
+[INFO] [launch]: All log files can be found below /home/omx/.ros/log/2024-11-29-17-28-11-688953-omx-32077
+[INFO] [launch]: Default logging verbosity is set to INFO
+[INFO] [rviz2-1]: process started with pid [32079]
+[INFO] [move_group-2]: process started with pid [32081]
+[move_group-2] [WARN] [1732868892.050631042] [move_group.move_group]: Falling back to using the the move_group node namespace (deprecated behavior).
+[move_group-2] [INFO] [1732868892.053471484] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0 seconds
+[move_group-2] [INFO] [1732868892.053512872] [moveit_robot_model.robot_model]: Loading robot model 'open_manipulator_x'...
+[move_group-2] [WARN] [1732868892.116979404] [moveit_robot_model.robot_model]: Link end_effector_link has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
+[move_group-2] [INFO] [1732868892.124119921] [moveit_kinematics_base.kinematics_base]: Using position only ik
+[rviz2-1] [INFO] [1732868892.340975665] [rviz2]: Stereo is NOT SUPPORTED
+[rviz2-1] [INFO] [1732868892.341211952] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
+[rviz2-1] [INFO] [1732868892.360708219] [rviz2]: Stereo is NOT SUPPORTED
+[move_group-2] [INFO] [1732868892.365328140] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene'
+[move_group-2] [INFO] [1732868892.365466603] [moveit.ros_planning_interface.moveit_cpp]: Listening to 'joint_states' for joint states
+[move_group-2] [INFO] [1732868892.365915390] [moveit_ros.current_state_monitor]: Listening to joint states on topic 'joint_states'
+[move_group-2] [INFO] [1732868892.366113375] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects
+[move_group-2] [INFO] [1732868892.366124664] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
+[move_group-2] [INFO] [1732868892.366240628] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene'
+[move_group-2] [INFO] [1732868892.366248218] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
+[move_group-2] [INFO] [1732868892.366379382] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object'
+[move_group-2] [INFO] [1732868892.366515892] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry
+[move_group-2] [WARN] [1732868892.366901130] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
+[move_group-2] [ERROR] [1732868892.366910881] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates
+[move_group-2] [INFO] [1732868892.499850613] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'move_group'
+[move_group-2] [INFO] [1732868892.507455943] [moveit.ros_planning.planning_pipeline]: Using planning interface 'OMPL'
+[rviz2-1] Warning: class_loader.impl: SEVERE WARNING!!! A namespace collision has occurred with plugin factory for class rviz_default_plugins::displays::InteractiveMarkerDisplay. New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
+[rviz2-1] at line 253 in /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp
+[move_group-2] [INFO] [1732868892.509438401] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.path_tolerance' was not set. Using default value: 0.100000
+[move_group-2] [INFO] [1732868892.509453409] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.resample_dt' was not set. Using default value: 0.100000
+[move_group-2] [INFO] [1732868892.509456509] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.min_angle_change' was not set. Using default value: 0.001000
+[move_group-2] [INFO] [1732868892.509465205] [moveit_ros.fix_workspace_bounds]: Param 'move_group.default_workspace_bounds' was not set. Using default value: 10.000000
+[move_group-2] [INFO] [1732868892.509475665] [moveit_ros.fix_start_state_bounds]: Param 'move_group.start_state_max_bounds_error' was set to 0.100000
+[move_group-2] [INFO] [1732868892.509478239] [moveit_ros.fix_start_state_bounds]: Param 'move_group.start_state_max_dt' was not set. Using default value: 0.500000
+[move_group-2] [INFO] [1732868892.509485286] [moveit_ros.fix_start_state_collision]: Param 'move_group.start_state_max_dt' was not set. Using default value: 0.500000
+[move_group-2] [INFO] [1732868892.509489253] [moveit_ros.fix_start_state_collision]: Param 'move_group.jiggle_fraction' was not set. Using default value: 0.020000
+[move_group-2] [INFO] [1732868892.509492194] [moveit_ros.fix_start_state_collision]: Param 'move_group.max_sampling_attempts' was not set. Using default value: 100
+[move_group-2] [INFO] [1732868892.509499197] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Add Time Optimal Parameterization'
+[move_group-2] [INFO] [1732868892.509501614] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Workspace Bounds'
+[move_group-2] [INFO] [1732868892.509503570] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Bounds'
+[move_group-2] [INFO] [1732868892.509524030] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State In Collision'
+[move_group-2] [INFO] [1732868892.509526078] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Path Constraints'
+[move_group-2] [INFO] [1732868892.537435366] [moveit.plugins.moveit_simple_controller_manager]: Added FollowJointTrajectory controller for arm_controller
+[move_group-2] [INFO] [1732868892.537485376] [moveit.plugins.moveit_simple_controller_manager]: Max effort set to 0.0
+[move_group-2] [INFO] [1732868892.538656730] [moveit.plugins.moveit_simple_controller_manager]: Added GripperCommand controller for gripper_controller
+[move_group-2] [INFO] [1732868892.538765617] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
+[move_group-2] [INFO] [1732868892.538779236] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
+[move_group-2] [INFO] [1732868892.538962577] [moveit_ros.trajectory_execution_manager]: Trajectory execution is managing controllers
+[move_group-2] [INFO] [1732868892.538972871] [move_group.move_group]: MoveGroup debug mode is ON
+[move_group-2] [INFO] [1732868892.551168187] [move_group.move_group]:
+[move_group-2]
+[move_group-2] ********************************************************
+[move_group-2] * MoveGroup using:
+[move_group-2] * - ApplyPlanningSceneService
+[move_group-2] * - ClearOctomapService
+[move_group-2] * - CartesianPathService
+[move_group-2] * - ExecuteTrajectoryAction
+[move_group-2] * - GetPlanningSceneService
+[move_group-2] * - KinematicsService
+[move_group-2] * - MoveAction
+[move_group-2] * - MotionPlanService
+[move_group-2] * - QueryPlannersService
+[move_group-2] * - StateValidationService
+[move_group-2] ********************************************************
+[move_group-2]
+[move_group-2] [INFO] [1732868892.551227324] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner
+[move_group-2] [INFO] [1732868892.551236259] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context initialization complete
+[move_group-2] Loading 'move_group/ApplyPlanningSceneService'...
+[move_group-2] Loading 'move_group/ClearOctomapService'...
+[move_group-2] Loading 'move_group/MoveGroupCartesianPathService'...
+[move_group-2] Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
+[move_group-2] Loading 'move_group/MoveGroupGetPlanningSceneService'...
+[move_group-2] Loading 'move_group/MoveGroupKinematicsService'...
+[move_group-2] Loading 'move_group/MoveGroupMoveAction'...
+[move_group-2] Loading 'move_group/MoveGroupPlanService'...
+[move_group-2] Loading 'move_group/MoveGroupQueryPlannersService'...
+[move_group-2] Loading 'move_group/MoveGroupStateValidationService'...
+[move_group-2]
+[move_group-2] You can start planning now!
+[move_group-2]
+[rviz2-1] [ERROR] [1732868895.530799244] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available
+[rviz2-1] [INFO] [1732868895.568490164] [moveit_ros_visualization.motion_planning_frame]: MoveGroup namespace changed: / -> . Reloading params.
+[rviz2-1] [INFO] [1732868895.621169604] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00698233 seconds
+[rviz2-1] [INFO] [1732868895.621219448] [moveit_robot_model.robot_model]: Loading robot model 'open_manipulator_x'...
+[rviz2-1] [WARN] [1732868895.725265369] [moveit_robot_model.robot_model]: Link end_effector_link has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
+[rviz2-1] [INFO] [1732868895.991052343] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
+[rviz2-1] [INFO] [1732868895.991657971] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/monitored_planning_scene'
+[rviz2-1] [INFO] [1732868896.113884156] [interactive_marker_display_94048109057936]: Connected on namespace: /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic
+[rviz2-1] [INFO] [1732868896.121726559] [moveit_ros_visualization.motion_planning_frame]: group arm
+[rviz2-1] [INFO] [1732868896.121747021] [moveit_ros_visualization.motion_planning_frame]: Constructing new MoveGroup connection for group 'arm' in namespace ''
+[rviz2-1] [INFO] [1732868896.136189756] [move_group_interface]: Ready to take commands for planning group arm.
+[rviz2-1] [INFO] [1732868896.137926927] [interactive_marker_display_94048109057936]: Sending request for interactive markers
+[rviz2-1] [INFO] [1732868896.138014560] [moveit_ros_visualization.motion_planning_frame]: group arm
+[rviz2-1] [INFO] [1732868896.171382689] [interactive_marker_display_94048109057936]: Service response received for initialization
+
+
+```
diff --git a/_includes/en/platform/openmanipulator_x/simulation/gazebo_operation_humble.md b/_includes/en/platform/openmanipulator_x/simulation/gazebo_operation_humble.md
new file mode 100644
index 000000000..b0d5b0409
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/simulation/gazebo_operation_humble.md
@@ -0,0 +1,37 @@
+In order to control the simulated OpenMANIPULATOR-X, launch the [OpenManipulator control GUI](/docs/en/platform/openmanipulator_x/ros_operation/#gui-program) or [Keyboard teleoperation](/docs/en/platform/openmanipulator_x/ros_operation/#keyboard)
+Click to view detailed instructions.
+
+- GUI Program
+ ```bash
+ $ ros2 launch open_manipulator_x_gui open_manipulator_x_gui.launch.py
+ ```
+ ![](/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI.png)
+
+- Keyboard Teleoperation
+
+ 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.
+ ```bash
+ $ ros2 launch open_manipulator_x_moveit_config servo.launch.py
+ ```
+
+ Open another terminal
+
+ ```bash
+ $ ros2 run open_manipulator_x_teleop open_manipulator_x_teleop
+ ```
+
+ ```
+ [INFO] [1732869286.738207239] [servo_keyboard_input]: SUCCESS TO CONNECT SERVO START SERVER
+ [INFO] [1732869286.738351481] [servo_keyboard_input]: SUCCESS TO CONNECT SERVO STOP SERVER
+ [INFO] [1732869286.738367129] [servo_keyboard_input]: call 'moveit_servo' start srv.
+ [INFO] [1732869286.738923809] [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.
+ ```
diff --git a/_includes/en/platform/openmanipulator_x/simulation/launch_gazebo_humble.md b/_includes/en/platform/openmanipulator_x/simulation/launch_gazebo_humble.md
new file mode 100644
index 000000000..4dd34ca5a
--- /dev/null
+++ b/_includes/en/platform/openmanipulator_x/simulation/launch_gazebo_humble.md
@@ -0,0 +1,8 @@
+
+1. Close all terminals, then open new terminals and enter the commands below to load OpenManipulator-X on the Gazebo simulator.
+``` bash
+$ ros2 launch open_manipulator_x_bringup gazebo.launch.py
+```
+
+2. The red cube indicates the end-effector link.
+ ![](/assets/images/platform/openmanipulator_x/OpenManipulator_Chain_gazebo_1.png)
diff --git a/_includes/en/platform/turtlebot3/sbc_setup_noetic.md b/_includes/en/platform/turtlebot3/sbc_setup_noetic.md
index 9e4fa189f..5753ccd37 100644
--- a/_includes/en/platform/turtlebot3/sbc_setup_noetic.md
+++ b/_includes/en/platform/turtlebot3/sbc_setup_noetic.md
@@ -275,7 +275,7 @@ $ sudo apt install ros-noetic-hls-lfcd-lds-driver
$ sudo apt install ros-noetic-turtlebot3-msgs
$ sudo apt install ros-noetic-dynamixel-sdk
$ cd ~/catkin_ws/src
-$ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git
+$ git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3.git
$ cd ~/catkin_ws/src/turtlebot3
$ rm -r turtlebot3_description/ turtlebot3_teleop/ turtlebot3_navigation/ turtlebot3_slam/ turtlebot3_example/
$ cd ~/catkin_ws/
diff --git a/assets/images/content_select_button.png b/assets/images/content_select_button.png
index 18bdc4e5e..15b933ff5 100644
Binary files a/assets/images/content_select_button.png and b/assets/images/content_select_button.png differ
diff --git a/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI.png b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI.png
new file mode 100644
index 000000000..88347c9bf
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI.png differ
diff --git a/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI2.png b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI2.png
new file mode 100644
index 000000000..da89545a3
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI2.png differ
diff --git a/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI3.png b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI3.png
new file mode 100644
index 000000000..0280af9df
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI3.png differ
diff --git a/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI4.png b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI4.png
new file mode 100644
index 000000000..1ee8aaf9a
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI4.png differ
diff --git a/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI5.png b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI5.png
new file mode 100644
index 000000000..b526f7ef3
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI5.png differ
diff --git a/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI6.png b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI6.png
new file mode 100644
index 000000000..1935a4be4
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI6.png differ
diff --git a/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI7.png b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI7.png
new file mode 100644
index 000000000..57ea90d40
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/OpenManipulator_x_GUI7.png differ
diff --git a/assets/images/platform/openmanipulator_x/moveit2_example.png b/assets/images/platform/openmanipulator_x/moveit2_example.png
new file mode 100644
index 000000000..8df116419
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/moveit2_example.png differ
diff --git a/assets/images/platform/openmanipulator_x/real_omx_init_pose.png b/assets/images/platform/openmanipulator_x/real_omx_init_pose.png
new file mode 100644
index 000000000..21928a6ef
Binary files /dev/null and b/assets/images/platform/openmanipulator_x/real_omx_init_pose.png differ
diff --git a/docs/en/platform/openmanipulator_x/quick_start_guide.md b/docs/en/platform/openmanipulator_x/quick_start_guide.md
index edf34827b..6f5e76c18 100644
--- a/docs/en/platform/openmanipulator_x/quick_start_guide.md
+++ b/docs/en/platform/openmanipulator_x/quick_start_guide.md
@@ -11,7 +11,8 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -42,12 +43,16 @@ page_number: 4
-->
+{% include en/platform/openmanipulator_x/quick_start_guide/ros_intro.md %}
+
+
+
{% include en/platform/openmanipulator_x/quick_start_guide/arduino_intro.md %}
## [Setup](#setup)
-
+
{% include en/platform/openmanipulator_x/quick_start_guide/quickstart_arduino.md %}
@@ -70,6 +75,10 @@ page_number: 4
-->
+{% include en/platform/openmanipulator_x/quick_start_guide/quickstart_humble.md %}
+
+
+
Not required.
{: .notice--warning}
@@ -93,6 +102,10 @@ Not required.
-->
+{% include en/platform/openmanipulator_x/quick_start_guide/quickstart_humble_ros.md %}
+
+
+
Not required.
{: .notice--warning}
@@ -116,6 +129,10 @@ Not required.
-->
+{% include en/platform/openmanipulator_x/quick_start_guide/quickstart_humble_ros_packages.md %}
+
+
+
Not required.
{: .notice--warning}
@@ -139,6 +156,10 @@ Not required.
-->
+{% include en/platform/openmanipulator_x/quick_start_guide/quickstart_comm_interface_humble.md %}
+
+
+
Not required.
{: .notice--warning}
diff --git a/docs/en/platform/openmanipulator_x/quick_start_guide_basic_operation.md b/docs/en/platform/openmanipulator_x/quick_start_guide_basic_operation.md
index 1d0e6cd23..3144422ca 100644
--- a/docs/en/platform/openmanipulator_x/quick_start_guide_basic_operation.md
+++ b/docs/en/platform/openmanipulator_x/quick_start_guide_basic_operation.md
@@ -11,7 +11,8 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -65,6 +66,10 @@ Please note that this instruction is written for the **ROBOTIS official OpenMANI
-->
+{% include en/platform/openmanipulator_x/quick_start_guide/launch_controller_humble.md %}
+
+
+
{% include en/platform/openmanipulator_x/quick_start_guide/launch_controller_arduino.md %}
@@ -87,6 +92,10 @@ Please note that this instruction is written for the **ROBOTIS official OpenMANI
-->
+{% include en/platform/openmanipulator_x/quick_start_guide/keyboard_teleop_humble.md %}
+
+
+
Not supported.
{: .notice--warning}
diff --git a/docs/en/platform/openmanipulator_x/ros_applications.md b/docs/en/platform/openmanipulator_x/ros_applications.md
index 75aec4733..63b45fe1b 100644
--- a/docs/en/platform/openmanipulator_x/ros_applications.md
+++ b/docs/en/platform/openmanipulator_x/ros_applications.md
@@ -11,7 +11,8 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -46,11 +47,16 @@ In this example, if the user is holding the master OpenMANIPULATOR, the slave Op
-->
+Not supported
+{: .notice--warning}
+
+
+
Master and Slave is not supported in Arduino
{: .notice--warning}
diff --git a/docs/en/platform/openmanipulator_x/ros_controller_check_setting.md b/docs/en/platform/openmanipulator_x/ros_controller_check_setting.md
index 905e98d51..72673d8ed 100644
--- a/docs/en/platform/openmanipulator_x/ros_controller_check_setting.md
+++ b/docs/en/platform/openmanipulator_x/ros_controller_check_setting.md
@@ -11,7 +11,9 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
+
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -51,6 +53,11 @@ page_number: 7
-->
+Not supported.
+{: .notice--warning}
+
+
+
Not supported
{: .notice--warning}
@@ -74,6 +81,10 @@ Not supported
-->
+{% include en/platform/openmanipulator_x/controller/check_setting_rviz_humble.md %}
+
+
+
Not supported
{: .notice--warning}
diff --git a/docs/en/platform/openmanipulator_x/ros_controller_experiment.md b/docs/en/platform/openmanipulator_x/ros_controller_experiment.md
index 7bc5b39c6..2a40b63ce 100644
--- a/docs/en/platform/openmanipulator_x/ros_controller_experiment.md
+++ b/docs/en/platform/openmanipulator_x/ros_controller_experiment.md
@@ -11,7 +11,8 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -32,9 +33,11 @@ page_number: 9
## [Experimental](#experimental)
+{% if page.tab_title5 != "Humble" %}
**WARNING**
This section introduces other experimental controllers. These controllers may not fully compatible with OpenMANIPULATOR-X.
{: .notice--warning}
+{% endif %}
### [MoveIt!](#moveit)
@@ -55,6 +58,10 @@ This section introduces other experimental controllers. These controllers may no
-->
+{% include en/platform/openmanipulator_x/controller/moveit_humble.md %}
+
+
+
Not supported
{: .notice--warning}
@@ -78,6 +85,10 @@ Not supported
-->
+{% include en/platform/openmanipulator_x/controller/gravity_compensation_dashing.md %}
+
+
+
Not supported
{: .notice--warning}
diff --git a/docs/en/platform/openmanipulator_x/ros_controller_msg.md b/docs/en/platform/openmanipulator_x/ros_controller_msg.md
index e68f797c0..b371c07c3 100644
--- a/docs/en/platform/openmanipulator_x/ros_controller_msg.md
+++ b/docs/en/platform/openmanipulator_x/ros_controller_msg.md
@@ -11,7 +11,8 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -65,6 +66,15 @@ Please launch the [OpenMANIPULATOR-X Controller](/docs/en/platform/openmanipulat
The controller uses **topic** and **service** to control and check the status of OpenMANIPULATOR-X.
-->
+
+**NOTE**:
+If you want to learn more, please refer to the official documentation for MoveIt 2 and ros2_control:
+[MoveIt 2 Documentation](https://moveit.picknik.ai/main/index.html)
+[ros2_control Documentation](https://control.ros.org/humble/index.html)
+{: .notice--info}
+
+
+
### [Topic](#topic)
+{% include en/platform/openmanipulator_x/controller/launch_controller_pkg_humble.md %}
+
+
+
Arduino sketch for OpenCR OpenMANIPULATOR-X includes the controller in the code.
{: .notice}
@@ -65,6 +70,10 @@ Arduino sketch for OpenCR OpenMANIPULATOR-X includes the controller in the code.
-->
+{% include en/platform/openmanipulator_x/controller/launch_controller_humble.md %}
+
+
+
{% capture note_01 %}
- Arduino sketch for OpenCR OpenMANIPULATOR-X includes the controller in the code.
- Connecting the OpenMANIPULATOR-X and 12V power source, and turning on the power switch of the OpenCR 1.0 will automatically launch the controller.
diff --git a/docs/en/platform/openmanipulator_x/ros_operation.md b/docs/en/platform/openmanipulator_x/ros_operation.md
index 728177ca6..5a5e7a219 100644
--- a/docs/en/platform/openmanipulator_x/ros_operation.md
+++ b/docs/en/platform/openmanipulator_x/ros_operation.md
@@ -11,7 +11,9 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
+
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -41,6 +43,10 @@ page_number: 10
-->
+
+
+
+
## [GUI Program](#gui-program)
-{% include en/platform/openmanipulator_x/operation/gui_program_arduino.md %}
+{% include en/platform/openmanipulator_x/operation/gui_program_humble.md %}
+
+{% include en/platform/openmanipulator_x/operation/gui_program_arduino.md %}
+
## [Teleoperation](#teleoperation)
@@ -83,5 +92,9 @@ page_number: 10
-->
+{% include en/platform/openmanipulator_x/operation/teleop_humble.md %}
+
+
+
{% include en/platform/openmanipulator_x/operation/teleop_arduino.md %}
diff --git a/docs/en/platform/openmanipulator_x/ros_perceptions.md b/docs/en/platform/openmanipulator_x/ros_perceptions.md
index c89a02a10..807fd70ae 100644
--- a/docs/en/platform/openmanipulator_x/ros_perceptions.md
+++ b/docs/en/platform/openmanipulator_x/ros_perceptions.md
@@ -11,7 +11,8 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -56,6 +57,12 @@ This example is not supported.
-->
+This example is not supported.
+[https://github.com/ROBOTIS-GIT/open_manipulator_perceptions](https://github.com/ROBOTIS-GIT/open_manipulator_perceptions)
+{: .notice--warning}
+
+
+
The following is an example of connecting the OV7725 camera module with AL422B buffer to the GPIO of OpenCR.
[https://community.robotsource.org/t/opencr-with-ov7725-al422b-camera-2-8-tftlcd/1413](https://community.robotsource.org/t/opencr-with-ov7725-al422b-camera-2-8-tftlcd/1413)
@@ -68,7 +75,7 @@ The Arduino sketch code can be found from [OpenCR examples](https://github.com/R
{% include en/platform/openmanipulator_x/perceptions/camera_kinetic.md %}
-->
-
+
Not supported in Arduino
{: .notice--warning}
@@ -79,7 +86,7 @@ Not supported in Arduino
{% include en/platform/openmanipulator_x/perceptions/ar_marker_kinetic.md %}
-->
-
+
Not supported in Arduino
{: .notice--warning}
@@ -90,7 +97,7 @@ Not supported in Arduino
{% include en/platform/openmanipulator_x/perceptions/pick_place_kinetic.md %}
-->
-
+
Not supported in Arduino
{: .notice--warning}
diff --git a/docs/en/platform/openmanipulator_x/ros_simulation.md b/docs/en/platform/openmanipulator_x/ros_simulation.md
index 2a8c8f73a..e8f628bc0 100644
--- a/docs/en/platform/openmanipulator_x/ros_simulation.md
+++ b/docs/en/platform/openmanipulator_x/ros_simulation.md
@@ -11,7 +11,8 @@ tabs: "ROS"
tab_title2: Noetic
#tab_title3: Dashing
#tab_title4: Foxy
-tab_title5: Arduino
+tab_title5: Humble
+tab_title6: Arduino
sidebar:
title: "OpenMANIPULATOR-X"
nav: "openmanipulator_x"
@@ -54,7 +55,12 @@ Coming Soon (2021 4Q)
{: .notice--success}
-->
-
+
+
+
Not supported with Arduino
{: .notice--warning}
@@ -69,10 +75,14 @@ Not supported with Arduino
{% include en/platform/openmanipulator_x/simulation/launch_gazebo_noetic.md %}
-
+
## [Controller for Gazebo](#controller-for-gazebo)
@@ -85,6 +95,10 @@ Not supported with Arduino
+{% include en/platform/openmanipulator_x/simulation/gazebo_controller_humble.md %}
+
+
+
Not supported with Arduino
{: .notice--warning}
@@ -100,6 +114,10 @@ Not supported with Arduino
+{% include en/platform/openmanipulator_x/simulation/gazebo_operation_humble.md %}
+
+
+
Not supported with Arduino
{: .notice--warning}