본문 바로가기
메이커 프로젝트

로봇 만들기 (SOARM101 + LeRobot) | 환경 설정부터 AI 모델 학습까지

by 올리브테라스 2025. 9. 26.
반응형

https://photos.app.goo.gl/7jzcjuAU6HRduS4q9

 

 

https://photos.app.goo.gl/4f1K7TMdTQRXiqvo6

 

https://photos.app.goo.gl/tjriAhepqM6iUrvbA

 

 

 

 

실습을 따라해보기 위한 spec 정보 

(권장사양) CPU: Intel i7-14700K 또는 AMD 라이젠9 9900X  / GPU: RTX5080 (VRAM 16GB) / RAM: 32GB / SSD: 1TB
(최소사양) CPU: Intel i5-14600K 또는 AMD 라이젠5 9600X / GPU: RTX4070Ti (VRAM 16GB) / RAM: 16GB / SSD: 512GB

 

하드웨어 만들기(조립 영상) 

https://www.youtube.com/@RoboSEasy/videos

 

로보시지 RoboSEasy

이게 로보시지 🤖✨ 누구나 쉽게 로봇을 조립하고, 배우고, 즐기는 곳!

www.youtube.com

 

 

환경 설정부터 AI 모델 학습까지

https://www.youtube.com/watch?v=ElZvzKRt9g8&t=813s

 

SO-ARM101 STL 다운로드 

https://github.com/TheRobotStudio/SO-ARM100/tree/main/STL

 

SO-ARM100/STL at main · TheRobotStudio/SO-ARM100

Standard Open Arm 100. Contribute to TheRobotStudio/SO-ARM100 development by creating an account on GitHub.

github.com

 

Ender_Follower_SO101.gcode.3mf
9.70MB
Ender_Leader_SO101.gcode.3mf
9.35MB

 

 

 

Control SO-ARM101 Robotic Arm

https://www.youtube.com/watch?v=xCXfpMrkKaw

 

캘리브레이션 사이트 

https://codelabs.viam.com/guide/so101/index.html#7

 

Control a SO-ARM101 Robotic Arm

Ready to bring robotic manipulation to life? The SO-ARM101 is a 5-degree-of-freedom robotic arm with a built-in gripper that serves as a solid entrypoint in an accessible package. Whether you're exploring automation, learning about inverse kinematics, or b

codelabs.viam.com

 

 

 

더 많은 로봇팔 보러가기 

https://www.youtube.com/watch?v=_yXJFTpnEXY

 

 

 

 

 

Miniconda 설치하기

먼저 프로젝트를 시작하기 전에 아니콘다, 깃이 설치되어 있어야 합니다. 

 

아래와 같이 운영체제에 맞도록 설치파일을 다운받아 설치를 할 수 있는 링크들이 있습니다. Mac, 리눅스 등 다양하게 있고, 우리는 윈도우즈 환경에서 설치를 하도록 하겠습니다. 미니콘다 3 윈도우 64 bit 설치파일을 다운받겠습니다.

 

 

 

그럼 다운로드 폴더에 아래와 같이 minconda 설치파일이 다운 받아져 있습니다.

 

 

 

설치 파일을 더블 클릭 하시면 아래와 같이 설치 창이 뜨게 되고 Next를 누르신 후 라이선스 동의 창에서 I Agree 를 누릅니다.

 
 

 

 

 

다음에 나오는 Just Me 를 선택 후 Next를 클릭하시면 어디에 설치할 것인지 Destination 폴더를 정해주게 되어 있습니다.

일반적으로 C:\users\ 윈도우로그인아이디\miniconda3 로 설정이 되어 있을텐데 한글이 있거나 띄어쓰기가 있거나 하면 가끔 문제가 되는 경우가 있으므로 한글이나 띄어쓰기가 있다면 경로를 다른 곳으로 바꿔주시면 됩니다.

간단하게는 C:\miniconda3 에 설치하셔도 됩니다.

 

 

 

 

저는 기본으로 설정 후 다음을 누르겠습니다.

다음에는 advanced option을 선택하는 창이 뜨는데, 아래와 같이 Add Miniconda 3 to my PATH environment variable 을 선택하면 됩니다. not recommended 라고 뜨긴 하지만 설정 하시면 별도 추가 설정이 필요 없기 때문에 편리해집니다. 이제 install 버튼을 누르시면 설치가 됩니다.

 

 

 

 

installation 이 완료가 되었으면 Next 버튼을 누르신 후 튜토리얼 같은 것은 지금 필요 없으니 체크 해제 하시고 Finish 버튼을 누르시면 됩니다.

 

 

 

이제 윈도우 버튼 옆에 보시면 검색창이 있는데, 검색창 anaconda를 치시면 Anaconda Prompt (miniconda 3) 라는 것이 검색이 됩니다.

 

 

 

 

아나콘다 프롬프트(미니콘다 3)을 클릭하시면 아래와 같이 콘솔창이 뜨는 것을 볼 수 있습니다. 여기에서 필요한 라이브러리들을 설치하도록 하겠습니다.

 

 

 

 

허깅페이스 홈페이지 

아래 허깅페이스 홈페이지에 접속합니다. 

https://huggingface.co/docs/lerobot

 

LeRobot

 

huggingface.co

 

 

 

 

가상환경 설치 

아래 인스톨레이션 탭에 들어가서 우선 가상환경을 설치해 줍니다. 

conda create -y -n lerobot python=3.12

conda activate lerobot

conda install -c conda-forge ffmpeg=7.1.1

 

 

 

 

르로봇 홈페이지  설치파일 다운로드 

이제 깃클론을 할 차례입니다. 

르로봇 깃 페이지에 있는 파일을 다운로드 하는 깃 클론!! 

cd\
git clone https://github.com/huggingface/lerobot.git
cd lerobot

 

 

 

 

 6개 모터 관절의 모터가 feetech 모터이기때문에 이를 붙여넣고 인스톨 해 줘야 오류가 안뜸. 

pip install -e ".[feetech]"

 

 

 

 

르로봇 연결 포트 찾기 

 

그다음 로봇에 연결된 포트를 찾아주는 과정을 실행합니다. 

lerobot-find-port

 

 

 

 

위 명령어를 입력하고 엔터를 누르면 다음과 같은 포트명이 나와요. 

이때, 하나의 로봇팔만 포트에 연결된 상태에서 엔터를 눌러주셔야 하고, 만약 2개가 연결되어 있다면 하나의 USB를 제거하고 엔터를 치라는 명령어가 나옵니다. 

리더암과 마찬가지로 팔로워 암도 똑같이 실행!!  

 

 

 

 

르로봇 모터 셋업(팔로워암) 

다음 로봇 모터 셋업 명령어를 실행합니다. 

이 코드는 모터에 ID 값을 6번에서 1번까지 역순으로 부여하는 과정을 진행하는 거에요.... 

lerobot-setup-motors ^
--robot.type=so101_follower ^
--robot.port=COM10

 

 

 

 

 

명령어를 치고 엔터를 누르면 다음과 같이 첫번째 Gripper 모터와 컨트롤보드를 연결하고 엔터 버튼을 치라는 메시지가 나옵니다. 

 

 

 

엔터를 치면, 다음 wrist_roll 모터를 컨트럴러 보드에 연결하고 엔터를 치라고 나와요. 

이렇게

5번 모터연결 + 엔터키

4번 모터연결 + 엔터키

3번 모터연결 + 엔터키

2번 모터연결 + 엔터키

1번 모터연결 + 엔터키

이렇게 하면 각 서보모터에 ID 값이 역순으로 부여가 됩니다. 

 

 

 

르로봇 모터 셋업(리더암) 

리더암도 똑같이 모터 셋업을 진행해 주셔야 합니다. 

 

 

로봇팔 켈리브레이션(팔로워암) 

마찬가지로 포트이름을 내 포트명으로 변경한 다음 엔터 

lerobot-calibrate ^
    --robot.type=so101_follower ^
    --robot.port=COM10 ^ # <- The port of your robot
    --robot.id=my_awesome_follower_arm # <- Give the robot a unique name

 

 

 

그러면 로봇팔을 미들 포지션!!   ㄱ 자로 위치시키고 엔터 라는 명령이 나타납니다. 

 

 

 

그럼 다음번에는 모든 모터를 처음부터 끝까지 스트레칭 해 주시면 됩니다. 

모든 모터를 끝까지 스트레칭 해준 다음 엔터!! 

.cache 폴더 -> hugging face 폴더 -> lerobot 폴더 -> calibration 폴더 -> robots 폴더 -> so-101 fallower arm 폴더 -> my_follower.json 파일이 생성된 걸 확인 가능!!! 

 

 

로봇팔 켈리브레이션(리더암) 

리더암도 똑같이 캘리브레이션 해주면 됨. 

아까 명령어에 포트 변호를 수정하고, 똑같이 엔터를 하면 미들 포지션으로 움직이도록 하고, 엔터후 캘리브레이션 과정 진행. 

 

lerobot-calibrate ^
    --teleop.type=so101_leader ^
    --teleop.port=COM9 # <- 리더 암이 연결된 포트로 변경 (예: COM10)
    --teleop.id=my_awesome_leader_arm # <- 리더 암의 고유 이름 지정

 

 

 

 

로봇팔 원격 조정 해보기

Imitation Learning for Robots 에서 Teleoperate 하는 방법부터 데이터 레코딩 하는 방법까지 확인이 가능합니다. 

마찬가지로 명령어를 복사한 다음 포트 번호를 수정한 다음 실행!!!! 

코드를 복사해서 엔터를 치면 로봇팔이 리더암을 따라 팔로워엠이 움직입니다. 

lerobot-teleoperate ^
    --robot.type=so101_follower ^
    --robot.port=COM10 ^
    --robot.id=my_awesome_follower_arm ^
    --teleop.type=so101_leader ^
    --teleop.port=COM9 ^
    --teleop.id=my_awesome_leader_arm

 

 

 

 

Ctrl+C로 텔레오퍼레이션 중지 가능 

 

 

 

인공지능 학습을 위한 카메라 연결

데이터 레코딩을 해서 인공지능을 학습시키려면 카메라 세팅을 해야 합니다!! 

 

아래 명령어를 아나콘다에 입력하면 컴퓨터 USB에 연결된 모든 컴퓨터를 알아서 찾아줍니다. 

보통 노트북 웹캠이 하나 있고, 탑뷰그리퍼카메라 이렇게 2개의 카메라 번호를 찾으면 됩니다. 

 

 

 

다시 Imitation Learning for Robots 탭으롸 와서 가운데 빨간 상자에 카메라 옵션만 추가된 것이기 때문에, 마찬가지로 포트 번호 수정하고 카메라 인덱스 번호를 수정해 준 뒤 아나콘다에서 코드를 복붙해 실행해 주면 됩니다. 

우리는 front 카메라 뿐 아니라 탑뷰 카메라 까지 있기 때문에 탑뷰도 추가해 준 다음 마찬가지로 인덱스 번호까지 추가. 

모니터에 실시간으로 카메라 영상이 나오는 모습을 확인하실 수 있습니다. 

 

설정을 아래와 같이 변경. 만약 하지 않으면 나중에 인공지능 학습할때에도 시간이 너무 오래 걸린다. 

(참고로, 1920*1080 은 너무 크기 때문에 640*480 을 추천_)

lerobot-teleoperate ^
    --robot.type=koch_follower ^
    --robot.port=COM10 ^
    --robot.id=my_awesome_follower_arm ^
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, top: {type: opencv, index_or_path: 4, width: 640, height: 480, fps: 30}}" \
    --teleop.type=koch_leader ^
    --teleop.port=COM9 ^
    --teleop.id=my_awesome_leader_arm ^
    --display_data=true

 

 

 

 

인공지능 학습시키기 _ 데이터 레코딩

포트번호, 카메라번호 수정

dataset.repo_id 에 저장위치 수정

dataset.num_episodes 는 몇번 녹화할 지를 묻는 것으로 100번으로 해둬도 중간에 끝냈다가 다시 녹화가 가능 

lerobot-record ^
    --robot.type=so101_follower ^
    --robot.port=COM10 ^
    --robot.id=my_awesome_follower_arm ^
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
    --teleop.type=so101_leader ^
    --teleop.port=COM9 ^
    --teleop.id=my_awesome_leader_arm ^
    --display_data=true ^
    --dataset.repo_id= data /record-test ^
    --dataset.num_episodes=100 ^
    --dataset.single_task="Grab the black cube"

 

 

 

 

코드를 실행한 다음 바로 리더암을 이용해서 팔로워암이 학습이 될 수 있도록 바로 동작을 시키도록 하면 됨. 

늦장부리면 안됨. 

만약 다시하고 싶다면 Ctrl+c 버튼을 눌러서 다시 시작. 

다시 녹화를 하려고 하면 기존 파일이 존재한다고 하는데요, 삭제하고 다시해도 되고 그냥 해주셔도 무방합니다. 

( 저장 경로는 허깅페이스 폴더 data폴더에 설정한 폴더명으로 데이터가 저장됨) 

 

코드를 실행하면 뷰어가 뜨고,,, 레코딩 시작 후 끝나면 레스팅포지션으로. 

1번의 녹화 과정이 끝나면, 키보드 방향키 → (우측 화살표) 버튼을 눌러서 녹화를 마무리 해 주면 됩니다. 

 

이렇게 10번 50번 100번 녹화를 반복하면서 AI를 학습시킴!! 

기존에 코딩 방법으로 해결할 수 없는 문제들이기 때문에 AI를 활용하는 것임을 인지!! 

 

 

 

AI 모델 학습

데이터를 획득 했다면, 이번에는 획득된 데이터를 이용해서 AI를 학습시켜야 함. 대단원의 마지막 

AI 모델 = ACT 모델 사용 

 

 

아래 코드를 이용해서 AI를 학습시킴!! 

 

 

 

 

이후 트레이닝값과 로스값들을 확인해 보면서 학습이 잘 되었는지를 Check!! 

 

 

 

 

인퍼런스 시작

인퍼런스란 학습을 마친 모델로 실제 과제를 수행하는 행위 혹은 그 과정을 가리킵니다. 다시 말해 모델을 개체명 인식이라는 실전에 투입하는 것입니다.

 

인퍼런스를 시킬때는 repo_id에 eval_clean_desk를 꼭 해주셔야 합니다.

그리고 그 밑에 책상정리를 몇번 시킬껀지 episode_time 횟수를 설정해 주시면 됩니다. 

그 밑에 에피소드 타임은 50초

그 밑에 에피소드 리셋타임은 20초로 상황에 맞게 설정

마지막 훈련된(Pretrained_model)로 설정해 주어야 인퍼런스가 정확히 동작하게 됩니다. 

(home/lerobot/outputs/train/act_clean_desk/checkpoints/last)

 

동작을 시키면 Weight값을 받아오면서 결과대로 동작!! 

 

 

 

 

반응형