SO-ARM101 – 제품 소개

SO-ARM101 오픈소스 로봇팔 – 제품 소개
Language

SO-ARM101은 교육, 연구 및 애호가를 위한 고성능 오픈소스 로봇팔 플랫폼으로, Hugging Face LeRobot 에코시스템과 완벽하게 호환되며 로봇 조작 학습, 데이터 수집, 모델 훈련, AI 추론의 전체 프로세스를 지원합니다. 로봇 기술을 배우고 AI 로봇 애플리케이션을 개발하기에 이상적인 선택입니다.

📋 주요 특징

  • 6자유도 설계, 유연한 모션 제어 지원
  • 완전 오픈소스 하드웨어와 소프트웨어, 자유로운 커스터마이징 및 확장 지원
  • LeRobot 프레임워크와 완벽 호환, 다양한 로봇 학습 알고리즘 지원(ACT, Diffusion, Pi0, SmolVLA 등)
  • 완전한 튜토리얼과 예제 포함, 초보자도 빠르게 시작 가능
  • 마스터-슬레이브 원격 조작, 다중 카메라 시각 피드백, 데이터셋 녹화, 모델 훈련의 전체 프로세스 지원

🔧 하드웨어 사양

파라미터 세부 정보
자유도 6축 + 그리퍼
페이로드 500g
반복 위치 정밀도 ±0.1mm
작업 반경 520mm
서보 타입 시리얼 버스 서보
전원 요구 사항 마스터 암: 5V 6A, 슬레이브 암: 12V 5A
통신 방식 USB-C

🚀 빠른 시작

1. 환경 준비

SO-ARM101은 Ubuntu x86과 Jetson Orin 두 플랫폼을 지원합니다:

Ubuntu x86 환경 요구 사항:

  • Ubuntu 22.04
  • CUDA 12+
  • Python 3.10
  • Torch 2.6+

Jetson Orin 환경 요구 사항:

  • JetPack 6.0+
  • Python 3.10
  • Torch 2.5.0a0+

2. 종속성 설치


# Install Miniconda (Ubuntu x86 version)
mkdir -p ~/miniconda3
cd miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init --all

# Create and activate environment
conda create -y -n lerobot python=3.10
conda activate lerobot

# Clone code repository
git clone https://github.com/Juxi-Technology/lerobot.git

# Install dependencies
conda install ffmpeg -c conda-forge
cd ~/lerobot && pip install -e ".[feetech]"
            

3. 로봇팔 제어

포트 찾기


# Find USB port corresponding to the robotic arm
lerobot-find-port
            

안내에 따라 로봇팔 USB 케이블을 뺐다 꽂아 해당 포트 번호를 확인합니다(일반적으로 /dev/ttyACM0 및 /dev/ttyACM1)

포트 권한 설정


sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1
            

로봇팔 캘리브레이션


# Calibrate slave arm
lerobot-calibrate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm

# Calibrate master arm
lerobot-calibrate \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm
            

안내에 따라 로봇팔을 중립 위치로 이동한 후 각 관절의 스트로크 캘리브레이션을 완료합니다.

🎮 핵심 기능 예시

1. 마스터-슬레이브 원격 조작


# Basic teleoperation (without camera)
lerobot-teleoperate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm

# Teleoperation with camera display
lerobot-teleoperate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm \
    --display_data=true
            

2. 데이터셋 녹화


# Record dataset locally
lerobot-record \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}, side: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm \
    --display_data=true \
    --dataset.repo_id=juxi/so101_test \
    --dataset.num_episodes=5 \
    --dataset.single_task="Put the blue cube on the black box" \
    --dataset.push_to_hub=false \
    --dataset.episode_time_s=30 \
    --dataset.reset_time_s=30
            

녹화된 데이터는 ~/.cache/huggingface/lerobot 디렉터리에 저장됩니다.

3. 모델 훈련(ACT 알고리즘)


# Train with local dataset
lerobot-train \
  --dataset.repo_id=juxi/so101_test \
  --policy.type=act \
  --output_dir=outputs/train/act_so101_test \
  --job_name=act_so101_test \
  --policy.device=cuda \
  --wandb.enable=false \
  --policy.push_to_hub=false \
  --steps=300000
            

훈련이 완료된 모델 가중치는 outputs/train/act_so101_test/checkpoints 디렉터리에 저장됩니다.

4. AI 추론 실행


# Control robotic arm with trained model
lerobot-record \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"},   side: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30,fourcc: \"MJPG\"}}" \
  --robot.id=my_awesome_follower_arm \
  --display_data=false \
  --dataset.repo_id=juxi/eval_test \
  --dataset.single_task="Put the blue cube on the black box" \
  --policy.path=outputs/train/act_so101_test/checkpoints/last/pretrained_model
            

📚 관련 자료

🛠️ 자주 묻는 질문

Q: 실행 시 GPU를 사용할 수 없다는 메시지가 표시되나요?
A: CUDA 버전과 일치하는 PyTorch를 설치했는지 확인하세요. Jetson 플랫폼에서는 Jetson 전용 PyTorch를 설치해야 합니다.
Q: 원격 조작 중 키보드가 응답하지 않나요?
A: pynput 버전을 1.6.8로 다운그레이드해 보세요:pip install pynput==1.6.8
Q: 캘리브레이션이 실패하면 어떻게 하나요?
A: 직렬 포트 권한이 올바른지 확인하고 ~/.cache/huggingface/lerobot/calibration 디렉터리의 이전 캘리브레이션 파일을 삭제한 후 다시 시도하세요.

SO-ARM101 로봇팔은 로봇 학습과 개발을 위한 완전한 에코시스템 지원을 제공합니다. 교육, 연구, 개인 애호가 모두 자신만의 로봇 애플리케이션을 빠르게 개발할 수 있습니다.

이 글은 요약본입니다. 전체 기술 문서는 Wiki에서 읽어보세요.

Wiki에서 전체 글 읽기 →

Feishu Wiki에서 열기