combine hands and omy#370
Conversation
Bump 3.2.0
Bump 3.2.1
Bump 3.2.1
Bump 3.2.2
Bump-3.2.2
Bump 3.2.2
Bump 3.2.3
Bump 3.2.4
Bump 3.3.0
Bump 3.3.0
Bump 4.0.0
Bump 4.0.1
Bump 4.0.2
Bump 4.0.3
Bump 4.0.4
Bump 4.0.5
Bump 4.0.6
Bump 4.0.7
Bump 4.0.8
Bump 4.0.9
Bump 4.0.10
Bump 4.1.0
Bump 4.1.1
Bump 4.1.2
Bump 4.1.3
Signed-off-by: dayeol kang <kangdy1997@gmail.com>
There was a problem hiding this comment.
Pull request overview
This PR adds configuration and launch support for operating OMY arms with HX5 hands (including MoveIt config for an OMY-3M + HX5 right hand), plus several standalone URDF/ros2_control variants and teleoperation “leader → follower” trajectory bridge nodes.
Changes:
- Add MoveIt launch + SRDF/controller/limits config for
omy_3m_hands. - Add URDF/xacro + ros2_control definitions for HX5 hands and multiple F3M/OMY-END standalone test setups.
- Add bringup launch files, controller manager configs, and trajectory-bridge/watchdog Python nodes for teleoperation and hardware testing.
Reviewed changes
Copilot reviewed 51 out of 69 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| open_manipulator_moveit_config/package.xml | Adds runtime dependency for xacro loading in MoveIt launch. |
| open_manipulator_moveit_config/launch/omy_3m_hands_moveit.launch.py | New MoveIt launch for OMY-3M + HX5 right hand. |
| open_manipulator_moveit_config/config/omy_3m_hands/omy_3m_hands.srdf | New SRDF for OMY-3M + HX5 right hand planning groups/collisions. |
| open_manipulator_moveit_config/config/omy_3m_hands/moveit_controllers.yaml | MoveIt controller mapping for arm + HX5 trajectory controllers. |
| open_manipulator_moveit_config/config/omy_3m_hands/joint_limits.yaml | Joint limit overrides for arm + HX5 joints. |
| open_manipulator_description/urdf/omy_f3m/omy_f3m_hx5_left.urdf.xacro | New combined F3M + HX5-left URDF with dual ros2_control systems. |
| open_manipulator_description/urdf/omy_f3m/omy_f3m_arm_only.urdf.xacro | New “arm only” F3M URDF to avoid end-unit contention. |
| open_manipulator_description/urdf/omy_f3m/omy_end_hx5_right_standalone.urdf.xacro | Standalone HX5-right + OMY-END ros2_control URDF for testing. |
| open_manipulator_description/urdf/omy_f3m/omy_end_hx5_ping_test.urdf.xacro | Minimal URDF to test OMY-END → HX5 SyncTable relay connectivity. |
| open_manipulator_description/urdf/omy_f3m/omy_end_hx5_left_standalone.urdf.xacro | Standalone HX5-left + OMY-END ros2_control URDF for testing. |
| open_manipulator_description/urdf/omy_f3m/omy_end_hx5_left_readonly_standalone.urdf.xacro | Read-only standalone HX5-left URDF variant to avoid indirect-write overlap. |
| open_manipulator_description/urdf/omy_f3m/hx5_d20_left_stub.urdf.xacro | Minimal stub macro for HX5-left visuals. |
| open_manipulator_description/urdf/omy_3m/omy_3m_hands.urdf.xacro | New OMY-3M + HX5-right combined URDF (arm + end unit + hand). |
| open_manipulator_description/urdf/hx5_d20_rev2/hx5_d20_right.xacro | New HX5-right wrapper xacro referencing robotis_hand packages + Gazebo plugin. |
| open_manipulator_description/urdf/hx5_d20_rev2/hx5_d20_right.urdf.xacro | New HX5-right hand geometry (links/joints/inertials). |
| open_manipulator_description/urdf/hx5_d20_rev2/hx5_d20_left.xacro | New HX5-left wrapper xacro referencing robotis_hand packages + Gazebo plugin. |
| open_manipulator_description/ros2_control/omy_l100_current.ros2_control.xacro | Adjusts baud-rate param lines (commented out). |
| open_manipulator_description/ros2_control/omy_f3m_end_unit_hx5_left_readonly.ros2_control.xacro | Adds read-only ros2_control system for HX5-left via OMY END. |
| open_manipulator_description/ros2_control/omy_f3m_end_unit_hx5_left.ros2_control.xacro.back | Adds a backup/alternate ros2_control xacro (editor artifact). |
| open_manipulator_description/ros2_control/omy_end_hx5_ping_test.ros2_control.xacro | Adds ros2_control system for OMY-END ping/relay testing. |
| open_manipulator_description/ros2_control/omy_3m_hx5_d20_right.ros2_control.xacro | Adds ros2_control system for HX5-right on OMY-3M. |
| open_manipulator_description/ros2_control/omy_3m_hands_gz_ros2_control.yaml | Adds Gazebo controller manager config for OMY-3M + HX5. |
| open_manipulator_description/gazebo/hx5_d20_right_omy_3m.gazebo.xacro | Adds Gazebo contact + transmission settings for HX5-right on OMY-3M. |
| open_manipulator_bringup/setup.py | Installs new configs and registers additional console scripts. |
| open_manipulator_bringup/open_manipulator_bringup/synctable_watchdog.py | New watchdog node to keep OMY END SyncTable enables asserted. |
| open_manipulator_bringup/open_manipulator_bringup/omy_f3m_hx5_right_leader_trajectory_bridge.py | New leader→HX5-right preset mapping trajectory bridge node. |
| open_manipulator_bringup/open_manipulator_bringup/omy_f3m_hx5_left_leader_trajectory_bridge.py | New leader→HX5-left preset mapping trajectory bridge node. |
| open_manipulator_bringup/open_manipulator_bringup/omy_3m_hands_leader_trajectory_bridge.py | New leader→(arm-only republish + HX5 presets) bridge for OMY-3M hands. |
| open_manipulator_bringup/launch/omy_f3m_hx5_right.launch.py | New combined teleop launch (F3M follower + HX5-right + L100 leader). |
| open_manipulator_bringup/launch/omy_f3m_hx5_left.launch.py | New combined teleop launch (F3M follower + HX5-left + L100 leader). |
| open_manipulator_bringup/launch/omy_f3m_follower_ai_hx5_left.launch.py | New/updated follower AI launch for F3M + HX5-left. |
| open_manipulator_bringup/launch/omy_end_hx5_ping_test.launch.py | New minimal hardware ping test launch for OMY END → HX5 relay. |
| open_manipulator_bringup/launch/omy_end_hx5_left_test.launch.py | New end-only test launch (L100 leader + HX5-left end hardware only). |
| open_manipulator_bringup/launch/omy_end_hx5_left_l100.launch.py | New follower-only HX5-left + leader composite launch. |
| open_manipulator_bringup/launch/omy_end_hx5_left_full_test.launch.py | New full relay test launch for HX5-left via SyncTable. |
| open_manipulator_bringup/launch/omy_ai_hand.launch.py | Updates AI teleoperation launch to include HX5-left follower/bridge. |
| open_manipulator_bringup/launch/omy_3m_hands_l100_leader_ai.launch.py | New real-hardware composite launch for OMY-3M + HX5-right + L100 leader. |
| open_manipulator_bringup/launch/omy_3m_hands_gazebo_l100_leader_ai.launch.py | New Gazebo composite launch for OMY-3M + HX5-right + L100 leader. |
| open_manipulator_bringup/launch/omy_3m_hands_gazebo.launch.py | New Gazebo launch for OMY-3M + HX5-right setup. |
| open_manipulator_bringup/config/omy_f3m_follower_ai_hx5_left/hardware_controller_manager.yaml | Adds controller manager config for F3M follower AI + HX5-left. |
| open_manipulator_bringup/config/omy_f3m/init_position_hx5.yaml | Adds initial pose config for F3M arm in HX5 teleop flows. |
| open_manipulator_bringup/config/omy_end_hx5_right_l100/hardware_controller_manager.yaml | Adds controller manager config for HX5-right end + leader flows. |
| open_manipulator_bringup/config/omy_end_hx5_ping_test/hardware_controller_manager.yaml | Adds controller manager config for ping test. |
| open_manipulator_bringup/config/omy_end_hx5_left_test/initial_positions.yaml | Adds initial pose trajectory config for HX5-left test. |
| open_manipulator_bringup/config/omy_end_hx5_left_test/hardware_controller_manager.yaml | Adds controller manager config for HX5-left test. |
| open_manipulator_bringup/config/omy_end_hx5_left_l100/hardware_controller_manager.yaml | Adds controller manager config for HX5-left end + leader flow. |
| open_manipulator_bringup/config/omy_end_hx5_left_full_test/hardware_controller_manager.yaml | Adds controller manager config for full relay test. |
| open_manipulator_bringup/config/omy_3m_hands_gazebo_l100_leader_ai/initial_positions.yaml | Adds Gazebo initial pose config for OMY-3M hands scenario. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # No config/omy_3m_hands.urdf in this package; load hands xacro from description before | ||
| # to_moveit_configs() so MoveItConfigsBuilder does not warn or leave robot_description empty. | ||
| moveit_builder = MoveItConfigsBuilder( | ||
| robot_name='omy_3m_hands', package_name='open_manipulator_moveit_config' | ||
| ) | ||
| moveit_builder._MoveItConfigsBuilder__moveit_configs.robot_description = { | ||
| 'robot_description': load_xacro( | ||
| # HANDS_DESCRIPTION_XACRO, mappings={'use_sim': 'false'} | ||
| HANDS_DESCRIPTION_XACRO, mappings={'use_sim': 'true'} | ||
| ) | ||
| } |
| moveit_builder._MoveItConfigsBuilder__moveit_configs.robot_description = { | ||
| 'robot_description': load_xacro( | ||
| # HANDS_DESCRIPTION_XACRO, mappings={'use_sim': 'false'} | ||
| HANDS_DESCRIPTION_XACRO, mappings={'use_sim': 'true'} | ||
| ) |
| 'console_scripts': [ | ||
| 'joint_trajectory_executor = open_manipulator_bringup.joint_trajectory_executor:main', | ||
| 'omy_3m_hands_leader_trajectory_bridge = open_manipulator_bringup.omy_3m_hands_leader_trajectory_bridge:main', | ||
| 'omy_f3m_hx5_left_leader_trajectory_bridge = open_manipulator_bringup.omy_f3m_hx5_left_leader_trajectory_bridge:main', |
| # OMY 3M follower arm controller is remapped to /leader/joint_trajectory in omy_3m.launch.py. | ||
| {'arm_command_topic': '/leader/joint_trajectory'}, |
| <xacro:include filename="$(find open_manipulator_description)/urdf/hx5_d20_rev2/hx5_d20_right.urdf.xacro" /> | ||
|
|
||
| <xacro:include filename="$(find robotis_hand_description)/gazebo/hx5_d20_right.gazebo.xacro" /> | ||
|
|
||
| <xacro:include filename="$(find robotis_hand_description)/ros2_control/hx5_d20_rev2/hx5_d20_right.ros2_control.xacro" /> | ||
|
|
||
| <link name="world"/> | ||
|
|
||
| <joint name="$(arg prefix)world_fixed" type="fixed"> | ||
| <parent link="world"/> | ||
| <child link="$(arg prefix)hx5_d20_right_base"/> | ||
| <origin xyz="0 0 0" rpy="0 0 0"/> | ||
| </joint> | ||
|
|
||
| <xacro:hx5_d20_right prefix="$(arg prefix)" /> | ||
| <xacro:robotis_hand_gazebo prefix="$(arg prefix)" /> | ||
|
|
||
| <xacro:robotis_hand_system | ||
| name="RobotisHandSystem" prefix="$(arg prefix)" use_sim="$(arg use_sim)" | ||
| use_mock_hardware="$(arg use_mock_hardware)" | ||
| mock_sensor_commands="$(arg mock_sensor_commands)"/> | ||
|
|
||
| <gazebo> | ||
| <plugin filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin"> | ||
| <parameters>$(find robotis_hand_bringup)/config/robotis_hand_hardware_controller_manager.yaml</parameters> | ||
| </plugin> |
| <xacro:include filename="$(find open_manipulator_description)/urdf/hx5_d20_rev2/hx5_d20_left.urdf.xacro" /> | ||
|
|
||
| <xacro:include filename="$(find robotis_hand_description)/gazebo/hx5_d20_left.gazebo.xacro" /> | ||
|
|
||
| <xacro:include filename="$(find robotis_hand_description)/ros2_control/hx5_d20_rev2/hx5_d20_left.ros2_control.xacro" /> | ||
|
|
||
| <link name="world"/> | ||
|
|
||
| <joint name="$(arg prefix)world_fixed" type="fixed"> | ||
| <parent link="world"/> | ||
| <child link="$(arg prefix)hx5_d20_left_base"/> | ||
| <origin xyz="0 0 0" rpy="0 0 0"/> | ||
| </joint> | ||
|
|
||
| <xacro:hx5_d20_left prefix="$(arg prefix)" /> | ||
| <xacro:robotis_hand_gazebo prefix="$(arg prefix)" /> | ||
|
|
||
| <xacro:robotis_hand_system | ||
| name="RobotisHandSystem" prefix="$(arg prefix)" use_sim="$(arg use_sim)" | ||
| use_mock_hardware="$(arg use_mock_hardware)" | ||
| mock_sensor_commands="$(arg mock_sensor_commands)"/> | ||
|
|
||
| <gazebo> | ||
| <plugin filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin"> | ||
| <parameters>$(find robotis_hand_bringup)/config/robotis_hand_hardware_controller_manager.yaml</parameters> | ||
| </plugin> |
| <?xml version="1.0"?> | ||
| <robot xmlns:xacro="http://www.ros.org/wiki/xacro"> | ||
| <xacro:macro name="omy_f3m_end_unit_hx5_left_system" params="name prefix port_name:=^|/dev/ttyAMA4 use_sim:=^|false use_mock_hardware:=^|false mock_sensor_commands:=^|false"> | ||
| <ros2_control name="${name}" type="system" is_async="true"> | ||
| <xacro:if value="$(arg use_sim)"> |
|
Warning Gemini is experiencing higher than usual traffic and was unable to create the review. Please try again in a few hours by commenting |
2 similar comments
|
Warning Gemini is experiencing higher than usual traffic and was unable to create the review. Please try again in a few hours by commenting |
|
Warning Gemini is experiencing higher than usual traffic and was unable to create the review. Please try again in a few hours by commenting |
No description provided.