SO-ARM 리더-팔로워 텔레오퍼레이션 가이드
리더-팔로워 텔레오퍼레이션이란?
리더-팔로워(Leader-Follower) 방식은 한 대의 로봇(리더)을 사람이 직접 조작하면, 다른 로봇(팔로워)이 그 동작을 실시간으로 따라하는 직관적 원격 제어 방식입니다.
SO-ARM 두 대와 Ubuntu 환경에서 USB 포트(/dev/so101_leader
, /dev/so101_follower
)로 쉽게 구현할 수 있습니다.
개요
- 직관적 제어: 리더 암을 손으로 움직이면 팔로워 암이 그대로 따라함
- 고품질 데이터 수집: Imitation Learning 등 학습용 데이터셋 구축에 최적
- Ubuntu 환경: USB 포트(
/dev/so101_leader
,/dev/so101_follower
) 기준 설명
실습 영상
실습 영상을 함께 같이 보면서 같이 진행해 보세요!
텔레오퍼레이션 가이드 영상
하드웨어 및 환경 준비
- SO-ARM 로봇 2대 (리더/팔로워)
- Ubuntu PC (USB 포트 2개 이상)
- USB 케이블 2개
- (선택) 카메라: 데이터 수집/모델 추론용
캘리브레이션
리더/팔로워 모두 캘리브레이션을 반드시 진행해야 합니다.
자세한 방법은 SO-ARM 캘리브레이션 가이드 참고.
0. 가상환경 활성화
cd lerobot
# 가상환경 활성화
source .venv/bin/activate
1. 카메라 index 찾기
카메라 index, 스펙, fps 확인
2개 이상의 카메라를 연결해 데이터셋 구축/모델 추론에 활용할 수 있습니다.
PC에 연결된 카메라의 index, 해상도, fps 등 정보를 확인하려면 아래 명령어를 실행하세요.
lerobot-find-cameras
출력 예시:
--- Detected Cameras ---
Camera#0:
Name: OpenCV Camera @ 0
Type: OpenCV
Id: 0
Backend api: V4L2
Default stream profile:
Format: 16.0
Width: 1920
Height: 1080
Fps: 15.0
--------------------
Camera#1:
Name: OpenCV Camera @ 1
Type: OpenCV
Id: 1
Backend api: V4L2
Default stream profile:
Format: 16.0
Width: 1280
Height: 720
Fps: 30.0
--------------------
2. 텔레오퍼레이션 실행 예시
SO-ARM 두 대를 Ubuntu에서 USB로 연결한 환경 기준 예시입니다.
# 카메라 없이 기본 텔레옵
lerobot-teleoperate \
--robot.type=so101_follower \
--robot.port=/dev/so101_follower \
--robot.id=follower \
--teleop.type=so101_leader \
--teleop.port=/dev/so101_leader \
--teleop.id=leader \
--display_data=false
# 카메라 추가 설정
lerobot-teleoperate \
--teleop.type=so101_leader \
--teleop.port=/dev/so101_leader \
--teleop.id=leader \
--robot.type=so101_follower \
--robot.port=/dev/so101_follower \
--robot.id=follower \
--robot.cameras='{
top: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 25},
wrist: {type: opencv, index_or_path: 4, width: 640, height: 480, fps: 25},
}' \
--display_data=true
옵션명 | 설명 | 예시 값 |
---|---|---|
—robot.type | 팔로워 로봇 타입 | so101_follower |
—robot.port | 팔로워 USB 포트 | /dev/so101_follower |
—robot.id | 팔로워 이름 | follower |
—teleop.type | 리더 로봇 타입 | so101_leader |
—teleop.port | 리더 USB 포트 | /dev/so101_leader |
—teleop.id | 리더 이름 | leader |
- 여러 카메라를 동시에 사용할 수 있습니다.
- 각 카메라의 index, 해상도, fps는
lerobot.find_cameras
로 확인한 값 사용
6. 문제 해결 / 트러블슈팅
자주 발생하는 문제와 해결법
- 포트 인식 안됨: USB 케이블 재연결, 포트 번호 확인, 권한 설정(
chmod 666
) - 동기화 문제: 캘리브레이션 파일 삭제 후 재실행
rm -rf ~/.cache/huggingface/lerobot/calibration/
- 카메라 인식 안됨: 카메라 index 확인, OpenCV 설치 확인, 다른 USB 포트 사용
- 권한 문제:
sudo usermod -a -G dialout $USER # 로그아웃 후 재로그인 필요
7. 안전 및 팁
- 로봇 주변에 충분한 공간 확보
- 비상시 전원 차단 준비 (Ctrl+C)
- 데이터 수집 전 체크리스트: 포트/권한/캘리브레이션/카메라 모두 점검
실전 팁
- 실패 케이스도 데이터로 수집하면 학습에 더 유리
- 여러 번 반복해 다양한 상황을 기록
- 카메라 연결 순서에 따라 index가 달라질 수 있으니, 항상
lerobot.find_cameras
로 확인
다음 단계
teleoperation을 완료 하였다면,