선수 지식과 준비물

선수 지식

  • Python, NumPy 및 C++17 기초
  • 4×4 동차변환행렬과 회전행렬
  • ROS 2 노드, 토픽, QoS(Quality of Service)의 기본 개념
  • Linux 직렬 장치와 사용자 권한의 기본 개념

기준 환경

  • Ubuntu 24.04 LTS
  • ROS 2 Jazzy Jalisco
  • Python 3.12, NumPy
  • C++17, rclcpp, sensor_msgs
  • LeRobot 최신 안정 릴리스: CLI와 설정 필드는 릴리스에 따라 바뀔 수 있으므로 실행 전 공식 SO-101 문서를 확인한다.
  • 선택: SO-101 Leader/Follower, 각 암의 전원 공급 장치와 USB 직렬 어댑터
  • 선택: NVIDIA Isaac Sim과 SO-101 URDF/USD 자산

실물 실습 전 안전 원칙

위험: 텔레오퍼레이션 코드는 사람의 손동작을 즉시 모터 명령으로 바꾼다. 잘못된 관절 부호, 첫 프레임의 큰 점프, 통신 지연은 충돌과 끼임을 일으킬 수 있다.

실물 전원을 넣기 전에 다음을 확인한다.

  1. 암을 단단한 작업대에 고정하고 예상 작업 공간에서 사람, 케이블, 공구를 치운다.
  2. 모터와 전원 공급 장치의 정격 전압이 일치하는지 확인한다. 변형별 정격이 다를 수 있다.
  3. 하드웨어 전원 차단 수단을 조작자의 손이 닿는 곳에 둔다. 소프트웨어의 Ctrl+C는 비상 정지가 아니다.
  4. 최초 시험은 토크 비활성 또는 저속·무부하 조건에서 수행한다.
  5. 관절별 소프트 리밋(software limit)을 실제 기계 한계보다 안쪽에 둔다.
  6. Leader와 Follower의 첫 자세가 크게 다르면 즉시 미러링하지 말고 제한된 속도로 정렬한다.
  7. 명령 스트림이 끊기면 현재 자세 유지 또는 토크 해제 중 장비에 맞는 안전 상태로 전이한다.
이 장의 예제 코드·설정 파일 (6)

이 장의 자가 점검·가상실습