LeRobot documentation

Koch v1.1

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Koch v1.1

…

부품을 주문하고 조립합니다

이 README에 제공된 소싱 및 조립 지침을 따르세요. 아래 이미지에 표시된 대로 팔로어 암과 리더 암의 설정을 안내합니다.

조립 과정에 대한 시각적 안내를 위해 이 영상 튜토리얼을 참고할 수 있습니다.

이 영상 제작 이후로 설정 단계를 간소화했습니다. 따라서 해당 영상의 설명과 다른 두 가지가 있습니다:

  • 모든 모터 케이블을 바로 연결하지 말고, 모터 구성에서 지시할 때까지 기다리세요.
  • 컨트롤러 보드(PCB)를 베이스에 바로 나사로 고정하지 말고, 모터 구성 단계에서 지시할 때까지 기다리세요.

LeRobot 설치 🤗

LeRobot를 설치하려면 설치 가이드를 따르세요.

이 지침 외에도 Dynamixel SDK를 설치해야 합니다. (PyPI에서 LeRobot을 설치한 경우, 대신 pip install 'lerobot[dynamixel]'을 실행하세요):

pip install -e ".[dynamixel]"

모터 구성

1. 각 팔에 연결된 USB 포트를 찾습니다

각 버스 서보 어댑터의 포트를 찾으려면 다음 스크립트를 실행하세요:

lerobot-find-port
Mac
Linux

예시 출력:

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입니다.

2. 모터 ID와 baudrate를 설정합니다

각 모터는 버스에서 고유한 id로 식별됩니다. 새 모터는 일반적으로 기본 id가 1로 설정되어 있습니다. 모터와 컨트롤러 간의 통신이 정상적으로 작동하려면 먼저 각 모터에 고유하고 서로 다른 id를 설정해야 합니다. 또한, 버스를 통해 전송되는 데이터의 속도는 baudrate에 의해 결정됩니다. 컨트롤러와 모든 모터가 서로 통신하려면 동일한 baudrate로 구성되어야 합니다.

이를 위해 먼저 컨트롤러를 통해 각 모터에 개별적으로 연결하여 이 값들을 설정해야 합니다. 이 매개변수들은 모터 내부 메모리의 비휘발성 영역(EEPROM)에 기록되므로, 이 작업은 한 번만 수행하면 됩니다.

다른 로봇에서 모터를 재사용하는 경우, id와 baudrate가 일치하지 않을 가능성이 높으므로 이 단계도 수행해야 합니다.

팔로워

컴퓨터와 12V 전원 공급 장치를 follower arm의 컨트롤 보드에 USB 케이블로 연결합니다(leader arm은 5V 전원 공급 장치를 사용합니다). 그런 다음, 이전 단계에서 얻은 포트와 함께 다음 명령을 실행하거나 API 예제를 실행합니다. 또한 id 매개변수를 사용하여 follower arm에 이름을 지정해야 합니다.

모터 ID 설정 방법에 대한 시각적 참고 자료로, SO101 팔의 설정 과정을 따라가는 이 영상을 참고하세요.

명령
API 예시
lerobot-setup-motors \
    --robot.type=koch_follower \
    --robot.port=/dev/tty.usbmodem575E0031751 # <- paste here the port found at previous step

다음 지침을 확인해야 합니다.

Connect the controller board to the 'gripper' motor only and press enter.

지시대로 그리퍼의 모터를 연결합니다. 보드에 연결된 유일한 모터인지, 그리고 해당 모터가 다른 모터와 직렬 연결(daisy-chain)되어 있지 않은지 확인합니다. [Enter]를 누르면 스크립트가 해당 모터의 id와 baudrate를 자동으로 설정합니다.

Troubleshooting

해당 단계에서 오류가 발생하면 케이블을 확인하고 올바르게 연결되어 있는지 확인하세요:

  • 전원 공급
  • 컴퓨터와 컨트롤러 보드 사이의 USB 케이블
  • 컨트롤러 보드에서 모터로 이어지는 3핀 케이블

Waveshare 컨트롤 보드를 사용하는 경우, 두 개의 점퍼가 B 채널(USB)에 설정되어 있는지 확인하세요.

다음 메시지가 표시되어야 합니다:

'gripper' motor id set to 6

다음 지침이 따릅니다:

Connect the controller board to the 'wrist_roll' motor only and press enter.

컨트롤러 보드에서 3핀 케이블을 분리할 수 있지만, 다른 끝의 gripper 모터에는 그대로 연결해 두어도 됩니다. 이미 올바른 위치에 있기 때문입니다. 이제 손목 롤(wrist roll) 모터에 다른 3핀 케이블을 연결하고 컨트롤러 보드에 연결하세요. 이전 모터와 마찬가지로, 보드에 연결된 모터가 이 모터 하나뿐인지, 그리고 모터 자체가 다른 모터에 연결되어 있지 않은지 확인하세요.

지시대로 각 모터에 대해 해당 작업을 반복합니다.

Enter를 누르기 전에 각 단계에서 케이블 연결 상태를 확인하세요. 예를 들어, 보드를 조작하는 과정에서 전원 공급 케이블이 분리될 수 있습니다.

작업이 완료되면 스크립트가 종료되며, 이때 모터가 사용 준비가 됩니다. 이제 각 모터의 3핀 케이블을 다음 모터에 연결하고, 첫 번째 모터(id=1인 ‘shoulder pan’)의 케이블을 컨트롤 보드에 연결합니다. 컨트롤 보드는 이제 팔의 베이스에 부착할 수 있습니다.

리더

리더 암에 대해 동일한 단계를 수행하되, 명령어나 스크립트를 그에 맞게 수정하세요.

명령
API 예시
lerobot-setup-motors \
    --teleop.type=koch_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751

교정

다음으로, 리더와 팔로워 팔이 동일한 물리적 위치에 있을 때 동일한 위치 값을 가지도록 로봇을 보정해야 합니다. 보정 과정은 매우 중요하며, 이를 통해 한 로봇에서 학습된 신경망이 다른 로봇에서도 작동할 수 있게 됩니다.

팔로워

팔로워 암을 보정하려면 다음 명령어나 API 예제를 실행하세요:

명령
API 예시
# Use the port of your follower arm, and give the arm a unique name with --robot.id
lerobot-calibrate \
    --robot.type=koch_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_awesome_follower_arm

대부분의 로봇에 대해 보정 방법을 통합했습니다. 따라서 이 Koch arm의 보정 단계는 SO100 및 SO101의 단계와 동일합니다. 먼저, 각 관절이 자신의 범위의 중간에 위치하도록 로봇을 이동한 다음 Enter를 누릅니다. 두 번째로, 모든 관절을 전체 운동 범위를 따라 이동합니다. 참고용으로 SO101에 대한 동일한 과정의 비디오는 여기에서 찾을 수 있습니다.

리더

리더 암을 보정하려면 동일한 단계를 수행하고, 다음 명령어나 API 예제를 실행하세요:

명령
API 예시
# Use the port of your leader arm, and give the arm a unique name with --teleop.id
lerobot-calibrate \
    --teleop.type=koch_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm

축하합니다 🎉. 이제 로봇이 스스로 작업을 학습할 준비가 완료되었습니다. 다음 튜토리얼을 따라 학습을 시작하세요: 실제 로봇으로 시작하기

질문이 있거나 도움이 필요하시면 Discord로 문의해 주세요.

Update on GitHub