MENU

피지컬 AI

Booster K1 걷기 학습, Isaac Lab으로 32분 걸렸습니다

GPU 한 장으로 K1 4,096대를 동시에 돌려 32분 만에 넘어지지 않는 걸음이 나왔습니다. 그런데 1초에 발을 15.2번 딛는 종종걸음이었습니다. 걸음 모양 점수를 넣어 다시 학습한 v4는 1초 3.6걸음으로 걸었습니다. 설치하며 막힌 곳과 아직 확인하지 않은 한계까지 그대로 적었습니다.

Isaac Sim 시뮬레이션에서 학습 전 쓰러진 Booster K1과 학습 뒤 서서 걷는 K1을 나란히 놓은 비교 화면.

피지컬 AI, 직접 해 봤습니다 · 1회

이 글은 실습 과정과 결과만 공개합니다. 대신 도입 기관에는 교재 본문과 지도서를 제공합니다.

GPU 한 장으로 K1 4,096대를 동시에 학습시켜 1,000회 반복, 약 32분 만에 넘어지지 않는 정책이 나왔습니다. 10초 동안 걸려 봤을 때 한 번도 넘어지지 않았습니다.

그런데 걸음 모양은 합격이 아니었습니다. 1초에 발을 15.2번 딛는 종종걸음이었고, 영상을 본 저희 대표의 평가는 "빵점"이었습니다. 걸음 모양에 점수를 주도록 고쳐 다시 학습한 v4는 1초에 3.6번 딛는, 무릎을 들어 번갈아 걷는 걸음이 됐습니다.

중간의 v2는 바닥 마찰·밀기·몸통 무게를 무작위로 바꿔, 다른 시뮬레이터에서도 넘어지지 않게 한 학습입니다(연재 4회). v3는 v2에서 회전 따라가기 점수만 높여 본 시험입니다. MuJoCo에서 옆걸음 방향은 잘 지켰지만 앞으로 가는 거리가 줄어 기준으로 삼지 않았고, 이 글에서는 걸음 모양이 달라진 v1과 v4만 비교합니다.

모두 평지, 시뮬레이션 안에서만 확인한 결과입니다. 실제 로봇에 올리는 단계는 아직 하지 않았습니다. 아래는 저희가 직접 설치하고 학습시킨 기록입니다.


어떤 환경에서 했나요?

윈도우 PC 한 대, 화면 없이 원격 터미널 명령만으로 진행했습니다.

항목이번에 쓴 것
PCWindows 11 Pro, RTX 4060 Ti 16GB, i7-13700F, RAM 32GB
시뮬레이터NVIDIA Isaac Sim 5.1.0
학습 프레임워크Isaac Lab 2.3.2
학습 알고리즘PPO (rsl-rl-lib 3.1.2)
로봇 모델Booster 공식 저장소 booster_assetsK1_22dof.urdf와 메시

Isaac Sim·Isaac Lab·로봇 모델은 모두 공개된 파일입니다. Booster 모델 저장소는 BSD-3-Clause 라이선스입니다.


K1 모델은 제대로 들어오나요?

들어옵니다. URDF를 USD로 바꾸자 관절 22개가 원본과 이름·개수 모두 같게 들어왔고, 처음 자세에서 키 약 0.955m로 바닥 위에 똑바로 섰습니다.

Isaac Sim에 불러온 Booster K1이 팔을 옆으로 벌린 처음 자세로 흰 바닥 위에 서 있다.
Isaac Sim에 불러온 Booster K1이 팔을 옆으로 벌린 처음 자세로 흰 바닥 위에 서 있다.

그런데 중력만 켜면 2~3초 안에 넘어집니다. 모델이 잘못된 게 아니라, 균형을 잡는 제어가 아직 없기 때문입니다. 이걸 학습으로 채우는 것이 이번 실습입니다.

변환 중에 Unresolved reference ... head_realsense_rgb_link 같은 경고가 뜨는데, 모양이 없는 카메라 부착용 링크라서 무시해도 됩니다.


학습은 어떻게 설정했나요?

Isaac Lab에 들어 있는 휴머노이드 평지 걷기 예제 과제를 K1에 맞게 옮겼습니다. 설정 파일 네 개(과제 등록, 로봇 설정, 환경·보상, PPO 설정)입니다.

  • 걷기 명령 — 앞 0~0.8 m/s, 옆 ±0.3 m/s, 회전 ±1 중에서 무작위로 줍니다
  • 서 있는 자세 — 시작 높이 0.56m, 엉덩이 -0.2 · 무릎 0.4 · 발목 -0.2 rad
  • 종료 조건 — 몸통이 바닥에 닿으면 그 로봇의 에피소드를 끝냅니다
  • 신경망 — 256-128-128, 학습률 1e-3

관절을 목표 각도로 당기는 힘(PD 게인)은 Booster 공개 학습 저장소의 T1 값을 참고해 K1 무게에 맞게 낮췄습니다.

게인은 다리에 가장 크게, 발목·팔·머리로 갈수록 작게 넣었습니다. 값 전체는 교육과정 자료에서 다룹니다.

이 게인은 제조사 공식 값이 아니라 저희가 정한 추정치입니다.


학습은 얼마나 걸렸나요?

처음 결과(v1)는 K1 4,096대를 동시에 돌려 1,000회 반복에 약 32분이 걸렸습니다. 1회에 약 1.9초, 전체 약 9,830만 스텝입니다.

학습 중 GPU 사용률은 약 56%, GPU 메모리는 약 4.9GB였습니다. 50회마다 중간 결과가 저장돼서, 도중에 멈춰도 이어서 쓸 수 있습니다.


보상은 어떻게 변했나요?

처음 학습(v1)에서는 -0.28에서 시작해 1,000회째 32.0(최고 32.5)까지 올랐습니다.

K1 평지 걷기 학습 곡선(Isaac Lab 2.3.2, PPO, 로봇 4,096대 동시, 32분). 왼쪽 평균 보상은 시작 -0.28에서 처음 떨어졌다가 약 85회에서 최저를 찍고 800회 무렵까지 꾸준히 올라 최고 32.5(986회), 1000회째 32.0이다. 오른쪽 평균 에피소드 길이는 초반 급상승 뒤 흔들리다 400회 이후 1000 근처를 유지한다.
K1 평지 걷기 학습 곡선(Isaac Lab 2.3.2, PPO, 로봇 4,096대 동시, 32분). 왼쪽 평균 보상은 시작 -0.28에서 처음 떨어졌다가 약 85회에서 최저를 찍고 800회 무렵까지 꾸준히 올라 최고 32.5(986회), 1000회째 32.0이다. 오른쪽 평균 에피소드 길이는 초반 급상승 뒤 흔들리다 400회 이후 1000 근처를 유지한다.
반복평균 보상평균 에피소드 길이(최대 1,000스텝 = 20초)
0-0.2813 — 0.3초 만에 넘어짐
약 85약 -21(최저)급상승 시작
131처음으로 1,000 도달
99932.0992

곡선은 이렇게 읽습니다. 초반에는 넘어지지 않는 법부터 배우느라 보상이 잠깐 내려갑니다. 서는 법을 익힌 뒤에는 명령 속도대로 걷기 점수가 꾸준히 오르고, 800회 이후로는 거의 평평해집니다.


학습 전과 처음 결과(v1)는 얼마나 다른가요?

같은 조건(앞으로 0.5 m/s 명령)에서 비교했습니다. 넘어지던 로봇이 서서 앞으로 갑니다.

Booster K1 학습 전과 처음 결과(v1) 비교. 왼쪽 학습 전(5초 동안 넘어짐 2~3번, 이동 0.7m) 네 장면에서는 쓰러져 바닥에 눕고, 오른쪽 v1(1,000회·32분, 10초 동안 넘어짐 0번, 이동 4.26m) 네 장면에서는 서서 걷고 있다.
Booster K1 학습 전과 처음 결과(v1) 비교. 왼쪽 학습 전(5초 동안 넘어짐 2~3번, 이동 0.7m) 네 장면에서는 쓰러져 바닥에 눕고, 오른쪽 v1(1,000회·32분, 10초 동안 넘어짐 0번, 이동 4.26m) 네 장면에서는 서서 걷고 있다.
학습 전처음 결과 v1(1,000회)
넘어짐5초 동안 2~3번10초 동안 0번
몸통 최저 높이0.08~0.10m(바닥에 누움)0.53m(서서 걸음)
이동 거리0.7m(쓰러지며 밀림)4.26m(약 0.43 m/s)

넘어지지 않는데 왜 "빵점"이었나요?

걸음 모양에는 점수를 주지 않았기 때문입니다. v1에게는 "넘어지지 말고 명령 속도를 맞춰라"만 가르쳤습니다. 그러자 로봇은 점수를 가장 쉽게 따는 방법, 발을 아주 빠르게 조금씩 딛는 종종걸음을 찾아냈습니다. 1초에 15.2번, 사람이 2~3번 딛는 것과 비교하면 튀듯이 걷는 셈입니다.

AI는 시킨 것만 합니다. 그래서 v4에서는 걸음 모양을 점수로 가르쳤습니다. Booster 공개 학습 저장소(booster_gym)의 걸음 점수 방식을 참고했습니다.

  • 걸음 박자 — 일정한 박자를 로봇에게 알려 주고, 박자에 맞춰 왼발·오른발을 번갈아 들어 올리면 점수
  • 두 발 간격·몸통 높이 — 두 발이 너무 붙거나 몸통이 내려앉으면 벌점
  • 급한 동작 벌점 강화 — 관절 명령이 갑자기 바뀌면 전보다 크게 벌점
  • 바탕 — 마찰·무게를 무작위로 바꾸고 로봇을 밀어 보는 학습 조건 위에 더함

점수 값 전체는 교육과정 자료에서 다룹니다. 같은 PC에서 4,096대로 2,500회, 약 1시간 40분 학습했습니다.

같은 명령에서 처음 결과 v1과 v4의 걸음 비교. 왼쪽 v1은 1초에 발 딛기 15.2번의 종종걸음, 오른쪽 v4는 무릎을 들어 번갈아 딛으며 1초 3.6번. 두 정책 모두 넘어짐 0번.
같은 명령에서 처음 결과 v1과 v4의 걸음 비교. 왼쪽 v1은 1초에 발 딛기 15.2번의 종종걸음, 오른쪽 v4는 무릎을 들어 번갈아 딛으며 1초 3.6번. 두 정책 모두 넘어짐 0번.
10초, 앞으로 0.5 m/s처음 결과 v1v4
1초에 발 딛는 횟수15.2번3.6번(사람 2~3번)
동작 급변 정도0.1990.062(작을수록 부드러움)
이동 거리4.26m5.02m(목표 5.0m)
넘어짐0번0번

v4는 저희 대표가 영상을 보고 합격 판정을 내렸고, 지금 저희 실습의 기준 정책입니다. 회전 명령에서도 목표 458°에 479°로 따라왔습니다. 다른 물리 엔진(MuJoCo)으로 옮긴 결과는 이 연재 4회에서 다룹니다.


설치하다 막힌 곳은 어디였나요?

윈도우에서 Isaac Sim 5.1.0과 Isaac Lab 2.3.2를 함께 쓸 때 버전이 맞지 않는 곳이 있었습니다. 실제로 겪은 것만 적습니다.

증상원인해결
Can't find extension ... isaacsim.asset.importer.urdf = 2.4.31Isaac Sim 5.1.0 윈도우판에는 URDF 확장 2.4.30이 들어 있고, Isaac Lab 2.3.2는 2.4.31을 찾음Isaac Lab 사본에서 찾는 버전을 2.4.30으로 변경
위를 고친 뒤 'ImportConfig' object has no attribute 'set_merge_fixed_ignore_inertia'2.4.30에 없는 함수함수가 있을 때만 부르도록 조건 추가
Warp error: Failed to open file ...윈도우 사용자 폴더 이름이 한글이라 임시 파일 경로가 깨짐환경 변수 WARP_CACHE_PATH를 영문 경로로 지정
No module named 'h5py'기록 기능에 필요한 부품이 없음h5py 추가 설치
예전 K1 설정을 그대로 쓰면 관절을 못 찾음옛 설정은 Left_Knee_Pitch 같은 옛 이름, 지금 URDF는 left_knee_pitch_joint관절 이름 규칙을 지금 URDF에 맞춰 새로 작성

K1 URDF의 팔·머리 관절 일부는 이름 앞에 aa가 붙어 있습니다(aahead_yaw_joint 등). 원본 이름 그대로이니 오타로 오해하지 않으셔도 됩니다.


실제 로봇에 바로 올릴 수 있나요?

아직은 아닙니다. 이번 결과는 평지 시뮬레이션에서만 확인했습니다.

v4는 마찰·무게를 바꾸고 밀어 보는 조건으로 학습했지만, 실제 로봇으로 가려면 시뮬레이션과 실제의 차이를 검증하는 단계가 더 필요합니다. 관절 게인도 제조사 공식 값이 아니라 추정치입니다. 저희는 이 단계를 아직 하지 않았습니다.

수업으로 옮긴다면 이번 실습은 "설치 → 모델 확인 → 학습 → 곡선 읽기 → 전후 비교 → 점수 고쳐 다시 학습" 한 묶음으로 쓸 수 있습니다. 마지막 단계가 "AI는 시킨 것만 한다"를 직접 보는 시간입니다.


자주 묻는 질문

이 정도 학습에 어떤 GPU가 필요한가요?

저희는 RTX 4060 Ti 16GB 한 장으로 했고, v1 학습 중 GPU 메모리는 약 4.9GB를 썼습니다. 다른 GPU에서는 시험하지 않았습니다.

넘어지지 않으면 성공 아닌가요?

저희도 처음엔 그렇게 봤습니다. v1은 넘어지지 않았지만 1초에 15.2번 딛는 종종걸음이었습니다. 걸음 모양에 점수를 준 v4에서 1초 3.6번으로 사람다운 걸음이 됐습니다.

리눅스가 아니어도 되나요?

이번 실습은 Windows 11에서 했습니다. 다만 Isaac Lab 2.3.2와 Isaac Sim 5.1.0 윈도우판 사이의 URDF 확장 버전 차이를 직접 고쳐야 했습니다.

학습한 정책을 실제 K1에서 쓸 수 있나요?

아직 확인하지 않았습니다. 평지 시뮬레이션 결과이고, 실제 로봇 적용에는 시뮬레이션과 실제 차이를 확인하는 추가 검증이 필요합니다.

관절 게인은 어디서 가져왔나요?

Booster 공개 학습 저장소의 T1 값을 참고해 K1 무게에 맞게 낮춘 추정치입니다. 제조사 공식 값은 아닙니다.


확인한 버전: Isaac Sim 5.1.0 · Isaac Lab 2.3.2 · rsl-rl-lib 3.1.2 · booster_assets 커밋 3c2dfa9

출처: 에스브이로보틱스 Isaac Sim 실습 기록(K1 변환 시험, K1 걷기 강화학습 절차서, v1↔v4 걸음 비교), BoosterRobotics/booster_assets(BSD-3-Clause), BoosterRobotics/booster_gym(걸음 점수 방식 참고), isaac-sim/IsaacLab v2.3.2(BSD-3-Clause)


이 글과 그림의 저작권은 SV로보틱스에 있습니다. 원문 링크를 밝힌 인용은 환영하며, 전문 복제·재배포와 교육 자료로의 전재는 허락이 필요합니다.

  • #Booster K1
  • #Isaac Sim
  • #Isaac Lab
  • #강화학습
  • #휴머노이드 로봇 교육
  • #PPO