robots
ROBOTIS OMY
ROBOTIS OMY 6-DOF 팔(OMY-3M / OMY-F3M)을 원격 SSH로 연결해 등록.
최근 확인 버전: v5.0.0
ROBOTIS OMY는 DYNAMIXEL-Y 시리즈 액추에이터 기반의 6-DOF 팔로, 로봇 자체 PC(온보드)에서 ROS 드라이버가 동작하는 ROS 2 네이티브 로봇입니다. 일반적인 운용에서는 Easy Trainer가 네트워크로 로봇 PC에 원격 SSH 접속해 드라이버를 기동하고, 두 장비는 같은 ROS 도메인에서 토픽만 주고받습니다. Easy Trainer는 OMY 모듈에서 다음 두 가지 variant를 지원합니다.
- OMY-3M — 6-DOF 팔만 있는 구성 (그리퍼 없음). 조인트:
joint1~joint6. - OMY-F3M — 6-DOF 팔 + RH-P12-RN 2지(2-finger) 그리퍼 + Intel RealSense D405 뎁스 카메라 내장 구성. 조인트:
joint1~joint6+rh_r1_joint.
사전 조건
- 모듈 추가에서 OMY 모듈 설치
- OMY 로봇 PC가 켜져 있고 네트워크에 연결된 상태
- Easy Trainer 호스트에서 로봇 PC로 SSH 접속이 가능한 상태 (호스트명 또는 IP)
- Easy Trainer 호스트와 로봇 PC가 같은
ROS_DOMAIN_ID(OMY는 30) 를 사용하는 상태
/docs/robots/omy-01-hardware.pngOMY-F3M 본체 + RH-P12-RN 그리퍼 + RealSense D405 (온보드 PC 운용)
원격 SSH 운용 (기본)
OMY는 ROS 드라이버가 로봇 자체 PC에서 동작합니다. 로봇 등록 시 SSH 접속 정보를 입력하면, Easy Trainer가 로봇 PC에 원격 접속해 드라이버를 자동으로 기동·제어합니다. 사용자가 컨트롤러를 직접 띄우거나 토픽을 수동으로 연결할 필요는 없습니다.
SSH 인증
로봇 등록 화면에 SSH 비밀번호 필드가 있습니다. 두 가지 방식 중 하나로 인증합니다.
-
비밀번호 인증: SSH 비밀번호 필드에 로봇 PC 계정의 비밀번호를 입력합니다.
-
키 기반 인증: SSH 비밀번호 필드를 비워 두면 SSH 키 인증을 사용합니다. 이 경우 Easy Trainer 호스트의 SSH 공개키를 로봇 PC에 미리 등록해 두어야 합니다.
ssh-copy-id root@omy-SNxxxx.local
/docs/robots/omy-03-ssh-fields.png로봇 등록 화면의 SSH Host / SSH User / SSH Port / SSH 비밀번호 입력 필드
등록 시 SSH 입력값
공통 절차 Step 2에서 아래 SSH 필드를 입력하면 원격 모드로 동작합니다.
- SSH Host: 로봇 PC의 주소 (예:
omy-SNxxxx.local또는 IP) - SSH User: 로봇 PC 접속 사용자 (기본값
root) - SSH Port: 로봇 PC SSH 포트 (기본값
22) - SSH 비밀번호: 로봇 PC 계정의 비밀번호. 키 기반 인증을 사용하려면 비워 둡니다.
동작 방식
로봇을 처음 실행하면 Easy Trainer가 로봇 PC에 SSH로 접속해 준비 작업을 자동으로 수행합니다.
- 로봇 PC에 OpenManipulator 저장소가 없으면 git으로 내려받습니다(최초 1회, 수 분 소요).
- 로봇 PC의 docker 컨테이너
open_manipulator(ROS 2 Jazzy)를 기동합니다. 첫 기동에서는 큰 이미지를 준비하므로 시간이 걸립니다. - 컨테이너 안에서 stock 드라이버를 실행합니다. OMY-3M은
arm_controller(조인트 트래젝토리), OMY-F3M은 팔과 그리퍼를 한 트래젝토리로 묶어 구동하는follower_ai를 실행합니다.
이미 완료된 단계는 건너뛰므로, 최초 1회만 시간이 걸리고 이후에는 빠르게 기동됩니다. 명령은 내부적으로 trajectory_msgs/JointTrajectory로 전달되고, 상태는 /joint_states로 들어옵니다.
등록 입력값
공통 절차 Step 2에서 다음 값을 입력합니다. 원격으로 운용하는 경우 위의 원격 SSH 운용 필드를 함께 입력합니다.
OMY-3M (팔만)
- Robot Type:
omy_3m - 조인트 (총 6개):
joint1~joint6 - IK: 사용 가능 (엔드 이펙터 위치 제어)
OMY-F3M (팔 + 그리퍼 + 카메라)
- Robot Type:
omy_f3m - 조인트 (총 7개):
joint1~joint6+rh_r1_joint(그리퍼) - IK: 사용 가능 (그리퍼 조인트는 IK 계산에서 잠금 처리)
저장 후 카드의 토글을 ON 한 뒤 RobotPendant로 각 조인트를 한 칸씩 움직여 회전 방향이 올바른지 확인합니다.
/docs/robots/omy-02-online.pngOMY 카드 ONLINE + RobotPendant 조인트 슬라이더 (6-DOF + 그리퍼)
로컬(직결) 모드 — fallback
SSH 필드를 모두 비워 두면 로컬(직접 연결) 모드로 동작합니다. 이 모드는 Easy Trainer가 설치된 PC 자체가 OMY의 Dynamixel 버스에 물리적으로 직접 연결된 특수한 경우에만 사용합니다(일반적인 운용 방식이 아닙니다).
이 모드에서는 모듈에 동봉된 omy_bringup이 단일 JointGroupPositionController로 팔(+ F3M 그리퍼)을 구동합니다. 명령은 std_msgs/Float64MultiArray 타입으로 /joint_group_position_controller/commands 토픽에 전달됩니다.
사전 조건 (로컬 모드)
-
Easy Trainer 호스트에서 온보드 UART 포트가 보이는지 확인:
ls /dev/ttyAMA*OMY-3M은 팔 버스 하나(
/dev/ttyAMA2), OMY-F3M은 팔 버스(/dev/ttyAMA2)와 그리퍼(엔드 유닛) 버스(/dev/ttyAMA4)를 사용합니다. -
모터 버스에 전원이 인가된 상태
등록 입력값 (로컬 모드)
- Serial Port:
/dev/ttyAMA2(기본값. 팔 버스 포트가 다르면 변경) - Gripper Port:
/dev/ttyAMA4(OMY-F3M 그리퍼(엔드 유닛) 버스. 기본값)
트러블슈팅
원격 SSH 모드
- 카드가 ONLINE으로 바뀌지 않습니다. 먼저 Easy Trainer 호스트에서 로봇 PC로
ssh가 되는지 확인합니다(호스트명/IP, 사용자, 포트, 비밀번호 또는 키). 키 기반 인증이면 공개키가 로봇 PC에 등록되어 있어야 합니다. - 카드는 ONLINE인데 토픽이 보이지 않습니다. Easy Trainer 호스트와 로봇 PC의
ROS_DOMAIN_ID가 30으로 동일한지 확인합니다. 두 장비를 같은 네트워크(서브넷)에 두는 것을 권장합니다. - 첫 기동이 오래 걸립니다. 로봇 PC에서
open_manipulator컨테이너가 떠 있는지 확인합니다. 최초 1회는 저장소 클론과 이미지 준비로 수 분이 걸립니다.
로컬(직결) 모드
- 카드는 ONLINE인데 움직이지 않습니다.
/joint_group_position_controller/commands토픽이 publish 되는지ros2 topic echo로 확인하세요. ros2_control 컨트롤러가 spawn 되지 않은 상태일 수 있습니다. - OMY-F3M 그리퍼만 반응이 없습니다. Gripper Port(기본
/dev/ttyAMA4)가 올바른지 확인하세요. 팔 버스와 그리퍼(엔드 유닛) 버스는 서로 다른 온보드 UART를 사용합니다. - 모터가 검출되지 않습니다. 모터 전원과
/dev/ttyAMA2(팔) //dev/ttyAMA4(F3M 그리퍼) 포트를 차례로 점검합니다. 포트가 출고 기본값과 다르면 등록 화면에서 Serial Port / Gripper Port 값을 실제 포트로 맞추세요.