LeRobot documentation
OMX
OMX
부품 정렬 및 조립
먼저 공식 조립 가이드에 따라 OMX 하드웨어를 조립합니다.
OMX 조립 가이드: https://ai.robotis.com/omx/assembly_guide_omx.html
OMX 로봇은 공장 출하 시 사전 구성되어 있습니다. 모터 ID, 통신 매개변수, 조인트 오프셋이 이미 설정되어 있으므로 LeRobot을 사용하기 전에 추가적인 모터 설정이나 보정이 필요하지 않습니다.
LeRobot 설치 🤗
LeRobot를 설치하려면 설치 가이드를 따르세요.
이 지침 외에도 Dynamixel 모터 지원을 설치해야 합니다:
pip install -e ".[dynamixel]"로봇 연결
각 버스 서보 어댑터의 포트를 찾으려면 다음 스크립트를 실행하세요:
lerobot-find-port
This command runs and when prompted, disconnect the USB cable from either the leader or follower arm and press Enter. The output will show ‘The port of this MotorsBus is [port]’. This identifies the port for the disconnected arm. Repeat for the other arm to identify both ports.
macOS의 예시 출력:
Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Remove the USB cable from your MotorsBus and press Enter when done.
[...Disconnect corresponding leader or follower arm and press Enter...]
The port of this MotorsBus is /dev/tty.usbmodem575E0032081
Reconnect the USB cable.발견된 포트는 리더 또는 팔로워 팔에 해당하는 /dev/tty.usbmodem575E0032081입니다.
Linux에서는 OMX 리더 및 팔로워 암에 영구적이고 사람이 읽을 수 있는 장치 이름을 할당하기 위해 udev 규칙 사용을 강력히 권장합니다. 이를 통해 로봇을 분리했다가 다시 연결하거나 시스템을 재부팅할 때 ttyACM0, ttyACM1과 같은 장치 이름이 변경되는 문제를 방지할 수 있습니다.
1. 기기 일련 번호 찾기
리더와 팔로워의 포트 번호를 lerobot-find-port를 사용하여 ../../ttyACM?과 같이 얻었어야 합니다. ls -l /dev/serial/by-id/ 명령을 사용하여 해당 결과를 시리얼 번호와 일치시킬 수 있습니다.
udev 규칙을 생성하려면 각 OMX 장치의 고유한 시리얼 번호가 필요합니다. 가장 쉬운 방법은 다음 아래에 있는 장치를 나열하는 것입니다:
ls -l /dev/serial/by-id/다음과 유사한 출력을 확인합니다:
usb-ROBOTIS_OpenRB-150_228BDD7B503059384C2E3120FF0A2B19-if00 -> ../../ttyACM0 usb-ROBOTIS_OpenRB-150_67E1ED68503059384C2E3120FF092234-if00 -> ../../ttyACM1
각 줄에서 직렬 번호는 usb-ROBOTIS_OpenRB-150_ 이후의 긴 문자열이며, -if00 이전까지입니다.
팔로워 시리얼: 228BDD7B503059384C2E3120FF0A2B19
리더 직렬: 67E1ED68503059384C2E3120FF092234
2. udev 규칙 생성
새로운 udev 규칙 파일을 생성합니다:
sudo nano /etc/udev/rules.d/99-omx.rules다음 줄을 붙여넣고, 직렬 번호를 위에서 찾은 값으로 교체하세요:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="228BDD7B503059384C2E3120FF0A2B19", SYMLINK+="omx_follower"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="67E1ED68503059384C2E3120FF092234", SYMLINK+="omx_leader"udev 규칙을 저장하고 다시 로드합니다:
sudo udevadm control --reload-rules
sudo udevadm trigger이제 두 장치를 모두 한 번씩 분리하고 다시 연결하세요.
3. 심볼릭 링크 확인
영속적 장치 이름이 존재하는지 확인합니다:
ls -l /dev/omx_follower /dev/omx_leaderttyACM* 디바이스를 가리키고 있는 것을 확인해야 합니다:
/dev/omx_follower -> ttyACM* /dev/omx_leader -> ttyACM*
이 이름들은 재부팅 및 재연결 시에도 안정적으로 유지됩니다.
원격 조작
ports를 올바르게 식별한 후, 리더 암을 사용하여 팔로워 암을 직접 텔레오퍼레이트할 수 있습니다.
카메라 없이 텔레오퍼레이트
lerobot-teleoperate \ --robot.type=omx_follower \ --robot.port=<your_follower_port> \ --robot.id=omx_follower_arm \ --teleop.type=omx_leader \ --teleop.port=<your_leader_port> \ --teleop.id=omx_leader_arm
원격 조작(teleoperation) 중 리더 암의 움직임은 팔로워 암에 의해 실시간으로 미러링됩니다. OMX는 이미 사전 구성되어 있어, 보정 단계 없이 즉시 원격 조작을 시작할 수 있습니다.
카메라로 텔레오퍼레이션
팔로워 암에 대한 카메라 구성을 제공하여 텔레오퍼레이션 중 카메라 입력도 활성화할 수 있습니다.
lerobot-teleoperate \
--robot.type=omx_follower \
--robot.port=<your_follower_port> \
--robot.id=omx_follower_arm \
--robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', width: 640, height: 480, fps: 30}}" \
--teleop.type=omx_leader \
--teleop.port=<your_leader_port> \
--teleop.id=omx_leader_arm \
--display_data=true카메라가 활성화되면 카메라 스트림이 실시간으로 표시되며 로봇 상태와 동기화됩니다. 이 설정은 시각적 모니터링에 유용하며, 나중에 데모 녹화 및 모방 학습에 재사용할 수 있습니다.
카메라 없이 텔레오퍼레이트
lerobot-teleoperate \ --robot.type=omx_follower \ --robot.port=/dev/omx_follower \ --robot.id=omx_follower_arm \ --teleop.type=omx_leader \ --teleop.port=/dev/omx_leader \ --teleop.id=omx_leader_arm
원격 조작(teleoperation) 중 리더 암의 움직임은 팔로워 암에 의해 실시간으로 미러링됩니다. OMX는 이미 사전 구성되어 있어, 보정 단계 없이 즉시 원격 조작을 시작할 수 있습니다.
카메라로 텔레오퍼레이션
팔로워 암에 대한 카메라 구성을 제공하여 텔레오퍼레이션 중 카메라 입력도 활성화할 수 있습니다.
lerobot-teleoperate \
--robot.type=omx_follower \
--robot.port=/dev/omx_follower \
--robot.id=omx_follower_arm \
--robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', width: 640, height: 480, fps: 30}}" \
--teleop.type=omx_leader \
--teleop.port=/dev/omx_leader \
--teleop.id=omx_leader_arm \
--display_data=true카메라가 활성화되면 카메라 스트림이 실시간으로 표시되며 로봇 상태와 동기화됩니다. 이 설정은 시각적 모니터링에 유용하며, 나중에 데모 녹화 및 모방 학습에 재사용할 수 있습니다.
축하합니다 🎉. 이제 로봇이 스스로 작업을 학습할 준비가 완료되었습니다.
Update on GitHub질문이 있거나 도움이 필요하시면 Discord로 문의해 주세요.