본문으로 건너뛰기
#frontier-one#robotics#embodied-ai

로봇개는 어떻게 배터리 하나로 마라톤을 뛰었나

RAIBO2는 기구·모터 드라이버·강화학습 보행을 함께 설계해 마라톤을 완주했다. 달리기 기록과 완전 자율 임무의 차이를 구분한다.

먼저 결론부터. RAIBO2는 한 번 충전으로 마라톤을 완주한 사족보행 로봇이다. 논문이 강조하는 설계는 가벼운 기구, 손실이 적은 모터 구동 회로, 에너지 낭비를 줄이는 강화학습 보행의 결합이다. 이를 “더 큰 배터리는 쓰지 않았다”거나 “완전 자율로 마라톤을 뛰었다”는 주장으로 바꾸어 읽어서는 안 된다.

마라톤 현장 사진은 저자 공개 원고의 그림 1에서 확인할 수 있다.

#왜 다리로 이동하면 전기가 많이 들까

바퀴는 평평한 길에서 몸을 받친 채 굴러갈 수 있다. 다리 로봇은 몸을 받치면서 관절을 굽히고 펴야 한다. 발을 앞으로 보내고, 바닥에 내려놓고, 다시 떼는 동작이 반복된다. 발이 부딪치거나 미끄러지고 무거운 다리가 가속·감속하면, 배터리 에너지 일부가 앞으로 가는 일 대신 열이나 충격으로 사라진다.

배터리를 늘리는 선택에도 대가가 있다. 저장 에너지는 커지지만 몸이 무거워져 지탱하고 움직이는 데 필요한 에너지도 달라진다. 반대로 무조건 천천히 움직이는 것도 답은 아니다. 이동 시간이 길어지는 동안 컴퓨터와 센서 같은 장치도 계속 켜져 있어야 하기 때문이다. 장거리 주행에서는 부품 하나의 효율보다 로봇 전체가 한 거리를 이동하는 데 쓰는 에너지를 봐야 한다.

#서로 연결된 세 가지 설계

첫째는 기구다. 논문의 공개 요약은 움직이는 부분을 가볍게 만든 설계를 제시한다. 보충 그림의 설명에는 응력 분석을 이용한 질량 감소와 베어링 설계가 나온다. 다만 어떤 부품의 무게를 얼마나 줄였는지까지 확인하려면 전체 본문과 제원표 대조가 더 필요하다.

둘째는 모터 드라이버, 즉 배터리 전기를 모터에 필요한 전류로 공급하는 회로다. 전류가 흐르는 저항과 스위칭 과정에서도 열이 생긴다. 공개된 보충 그림 설명은 전압, 회로 기판의 구리 두께, 스위칭 조건 등에 따른 손실 평가를 구분한다. 기계가 부드럽게 움직여도 회로가 전기를 많이 버리면 장거리 이동의 이점은 줄어든다.

셋째는 보행 정책이다. 강화학습은 여러 동작의 결과를 평가해 행동 규칙을 학습하는 방법이다. 이 연구의 공개 코드 설명에는 제안 정책과 함께 모터의 줄열 손실, 발의 충돌 손실, 지면 반력의 매끄러움에 관한 항을 각각 뺀 비교 정책이 제시돼 있다. 항을 하나씩 빼는 비교는 각 설계 요소의 역할을 따져보는 방법이다. 코드가 공개돼 있다는 사실만으로 그 성능을 여기서 재현한 것은 아니다.

#달리기 기록과 효율 지표를 분리해 읽기

보고된 마라톤 기록은 4시간 19분 52초다. 저자들은 총 수송비용(total cost of transport, TCOT) 0.25, 사람의 비교 기준 0.37을 제시한다. 공개 프리프린트 v1은 기존 사족보행 로봇과의 비교를 배터리 에너지당 이동거리(km/Wh)가 약 3배라고 설명한다. 배터리 크기가 서로 다를 수 있으므로, 이를 서로 다른 로봇이 한 번 완충한 뒤 달리는 절대 거리가 모두 3배라는 뜻으로 바꾸면 안 된다. [프리프린트 인쇄 쪽 4, 66–73행; 그림 1e 설명]

같은 프리프린트는 마라톤에서 소비한 에너지를 1,280 Wh, 배터리 총용량을 2,016 Wh로 적었다. 실제 달린 거리는 42.195 km이며, 약 67 km는 이 소비량과 총용량을 바탕으로 추정한 이동 가능 거리다. 67 km를 별도로 달려 검증한 기록이 아니다. 남은 에너지를 같은 비율로 쓸 수 있다는 외삽과 실제 완주 시험을 구분해야 한다. [프리프린트 인쇄 쪽 15, 208–214행]

TCOT는 단순히 “배터리의 몇 퍼센트를 썼나”가 아니다. 이동에 쓴 에너지를 무게와 이동거리로 정규화하는 지표다. 다른 크기의 이동체를 비교하는 데 도움을 주지만, 같은 시험에서 같은 기능을 수행했다는 보장은 아니다. 사람의 감각·판단과 로봇의 인지·경로 계획을 모두 포함한 임무 전체 효율의 우열로 확대해서는 안 된다. 아래에서는 공개 프리프린트의 배터리 단자 측정과 계산 범위를 설명한다. 출판본의 전체 집계 범위와 비교 대상별 보충 표 대조는 별도로 남아 있다.

#실제 실험과 시뮬레이션은 같은 증거가 아니다

#TCOT의 분모를 따라가 보기

공개 프리프린트 v1의 Methods 「Loss measurement」 식 (11)–(12)는 배터리 전압과 출력 전류를 곱해 전력을 구한 뒤, 이를 무게와 이동 속도로 나눈다.

적분 기호가 낯설다면, 짧은 시간마다 전력을 기록해 그동안 쓴 에너지를 차곡차곡 더한다고 생각하면 된다. 전력이 시간에 따라 바뀌므로 한 시점의 값만 고르지 않고 전체 측정 구간을 합친다. 아래 식의 적분은 이 누적을, 마지막에 T로 나누는 과정은 시간 평균을 뜻한다. 실제 수치 계산에서는 기록된 시계열을 사용하며, 여기서는 원시 로그까지 재분석한 것은 아니다.

P‾=1T∫0TVbat(t)Ibat(t) dt\overline P=\frac{1}{T}\int_0^T V_{bat}(t)I_{bat}(t)\,dt

전력의 시간 평균을 구한 뒤, 다음 단계에서 무게와 속도로 나눈다. 두 식을 나눈 것은 계산 순서를 보여주기 위한 편집이며 원문의 정의를 바꾼 것이 아니다.

TCOT=P‾mgvTCOT=\frac{\overline P}{mgv}

전압 V의 단위는 볼트, 전류 I는 암페어다. 둘의 곱은 와트(W), 즉 초당 사용하는 에너지다. T는 측정 시간(s), m은 로봇 질량(kg), g는 중력가속도(m/s²), v는 트레드밀 속도(m/s)다. 분모 mgv도 와트이므로 TCOT에는 단위가 없다. 이 식은 일정한 속도의 트레드밀 시험에서 쓰인 형태다. 주행 중 속도와 소비 전력이 달라지는 마라톤은 총 에너지를 mg와 총 거리의 곱으로 나누어 계산했다.

같은 프리프린트가 제시한 소비 에너지 1,280 Wh, 질량 45 kg, 거리 42.195 km를 대입해 보자. 1 Wh는 3,600 J이므로 에너지는 4,608,000 J이고, 거리는 42,195 m다. 이를 45 × 9.81 × 42,195로 나누면 약 0.247이다. 원문 보고값 0.248과 가까운 반올림 수치 재계산이며, 원시 로그를 재현한 결과는 아니다. 이 계산은 사람보다 모든 면에서 뛰어나다는 뜻이 아니라, 비교 지표의 분모에 무엇이 들어가는지 보여준다.

#손실을 나눌 때 직접 잰 것과 추정한 것

같은 Methods 식 (13)은 모터 구리 손실을 전류 제곱과 유효 저항의 곱으로 계산한다. 발의 충돌 손실인 식 (18)은 충돌 후 운동에너지가 0이 되는 완전 비탄성 충돌을 가정한다. 이 가정과 다른 탄성 반발이 있는 상황까지 정확히 측정한 식은 아니다.

#발을 세게 내려놓으면 왜 손해일까

발이 땅에 닿기 직전 빠르게 움직일수록, 그 운동을 멈추거나 바꾸는 과정에서 잃을 수 있는 에너지도 커진다. 다리 전체를 가볍게 만드는 일과 착지 직전 발의 속도를 줄이는 일이 연결되는 이유다. 다만 발끝에 로봇 전체 질량 45 kg이 그대로 매달려 있다고 계산하지는 않는다. 관절 자세와 로봇의 관성에 따라 발끝에서 느껴지는 유효 질량이 달라진다.

프리프린트 Methods 식 (18)은 이 관계를 다음처럼 계산한다. 원문에 명시된 충돌 손실 추정식이며, 이번 기사를 위해 만든 새 실험식이 아니다.

Pcollision=1Tgait∑j=1n12vjT(JM−1JT)−1vjP_{collision}=\frac{1}{T_{gait}}\sum_{j=1}^{n}\frac{1}{2}v_j^T(JM^{-1}J^T)^{-1}v_j

먼저 한 번의 착지만 보자. v_j는 j번째 착지 직전 발끝의 선속도 벡터(m/s)이고, 가운데 행렬은 그 접촉에서 발끝의 운동 방향별로 작용하는 유효 관성을 나타낸다. 벡터는 앞뒤·좌우·상하처럼 방향별 값을 모아 둔 것이고, 위첨자 T는 그 값들의 나열 방향을 바꾸는 전치다. 속도의 전치·행렬·속도를 차례로 곱하면 방향별 효과가 하나의 수로 모인다. 이를 2로 나누는 부분은 그 충돌에서 잃는 것으로 모델링한 운동에너지(J)다. 여러 번의 착지를 더한 다음 한 보행 주기 T_gait(s)로 나누므로 최종 값은 평균 손실 전력(W)이 된다. n은 한 주기의 발 충돌 횟수다.

J와 M은 무엇이며, 어떤 가정에서 쓸 수 있을까?

J는 로봇의 일반화 속도를 발끝의 선속도로 연결하는 야코비안 행렬이고, M은 로봇의 질량·관성 행렬이다. 원문은 두 행렬의 구체적인 좌표 구성까지 이 식 옆에서 전개하지 않으므로, 로봇 전체 질량을 나타내는 숫자 하나로 M을 바꾸지 않는다. 일반화 좌표에는 위치와 관절각이 함께 들어갈 수 있어 M의 모든 원소에 같은 단위를 붙이는 것도 주의해야 한다. 발끝의 선속도 좌표로 환산한 유효 질량 행렬과 속도를 결합했을 때 에너지 차원이 되는지를 확인한다.

속도 벡터와 야코비안은 같은 접촉 좌표계를 써야 한다. 또한 접촉 좌표가 중복되지 않고 해당 행렬을 역으로 계산할 수 있어야 한다. ‘충돌 후 운동에너지를 0으로 둔다’는 설명도 이 접촉 모형의 손실 계산 가정이지, 로봇 전체가 착지할 때마다 완전히 멈춘다는 뜻은 아니다.

이 유효 관성항에는 선행 연구가 있다. 프리프린트가 인용한 Wensing 외의 로봇 구동기 연구는 같은 형태의 접촉공간 관성을 사용해 충격량과 구동기의 충격 완화를 분석한다. RAIBO2의 위 식은 이를 접촉 전 속도와 결합한 에너지 추정치를 보행주기로 나누어 손실전력으로 읽는다. 같은 관성항을 쓴다는 것과 두 논문이 같은 성능 지표를 측정했다는 것은 다르다. 관련 없는 비교식을 더해 선행 방법의 수를 채우지는 않는다.

이 식은 완전 비탄성 충돌을 가정하고 충돌 뒤 운동에너지를 0으로 둔다. 탄성 바닥·발 구조가 에너지를 돌려주거나 여러 접촉이 동시에 얽히는 실제 상황 전체를 이 식 하나로 그대로 측정했다는 뜻이 아니다. 역행렬을 계산할 수 있는 접촉 모델이라는 조건도 필요하다. 원문 위치는 프리프린트 인쇄 쪽 36, 식 (18)이다. 출판본 Methods와의 변경 대조는 남아 있다.

조건을 바꿔 생각해 보자. 같은 자세·유효 질량·충돌 횟수·보행 주기를 유지하고 착지 직전 속도 벡터만 절반으로 줄이면, 식 안에서 속도가 두 번 곱해지므로 이 모형의 충돌 손실 전력은 4분의 1이 된다. 이는 식의 성질을 설명한 가정 실험이지 논문이 그런 조건의 새 시험값을 보고했다는 뜻이 아니다. 실제 보행에서는 자세·속도·다른 손실도 함께 바뀔 수 있으므로 총 소비 전력까지 4분의 1이라고 확대하면 안 된다.

특히 식 (19)의 미끄럼 손실은 전체 기계 손실에서 충돌과 관절 마찰 손실을 뺀 잔차다. 저자들은 이 항에 실제 미끄럼뿐 아니라 모델에 포함되지 않은 다른 기계 손실도 들어간다고 명시한다. 따라서 그래프의 해당 부분을 “미끄럼만 정밀 센서로 직접 측정한 값”이라고 설명하면 안 된다. 이 방법 설명은 현재 열람한 프리프린트 v1에 해당하며, 출판본 Methods와의 전체 변경 대조는 남아 있다.

논문의 공개 그림 설명에는 실제 구동 회로 손실 평가, 트레드밀 시험, 마라톤 기록뿐 아니라 시뮬레이션에서 하드웨어 조건을 바꾼 분석도 있다. 특히 Extended Data Fig. 3은 실험에 기반한 손실 특성을 활용하더라도 하드웨어 조건 변경 전체가 실제 로봇 실험이라는 뜻은 아니다. 가상 환경에서 분리해 본 효과와 현실에서 달린 결과는 서로 보완하는 증거이지 같은 종류의 반복 실험은 아니다.

공개 데이터는 논문이 연결한 Zenodo v1과 이후 v2를 구분해야 한다. 최신 기록이 있다는 이유로 인용 버전을 조용히 바꾸지 않는다. 실제 파일의 수치와 분석 절차는 아직 검토하지 않았다.

#보상 항을 빼 보면 무엇이 달라질까

보행 정책은 앞으로 가는 속도만 맞추면 되는 것이 아니다. 발을 거칠게 내려놓거나 큰 토크를 자주 사용해도 속도는 맞을 수 있기 때문이다. 연구진은 학습 중 이런 행동에 불이익을 주는 보상 항을 넣고, 특정 항을 뺀 정책과 비교했다. 이를 절제 실험(ablation)이라고 한다.

프리프린트 Methods와 Extended Data Table 3b는 실제 로봇의 4 m/s 트레드밀 주행에서 다음 손실 전력을 제시한다. 이 표는 마라톤 전체의 평균 전력이나 시뮬레이션 결과와는 별도 조건이다.

정책구동부 전기 손실기계 손실시스템 손실보고된 총손실
제안 정책284.6 W120.9 W41.7 W447.2 W
지면 반력 매끄러움 항 제외279.8 W151.3 W40.0 W471.0 W
자기 포화 고려 제외299.4 W149.2 W44.9 W493.4 W
발 충돌 손실 보상 제외324.6 W272.1 W26.4 W623.1 W

작은 화면에서는 표를 좌우로 움직여 마지막 총손실 열까지 확인할 수 있다. 핵심 비교를 글로 먼저 읽으면, 제안 정책은 총 447.2 W, 발 충돌 보상을 제외한 정책은 총 623.1 W다. 이 두 값은 바로 위 표와 같은 4 m/s 트레드밀 조건이다.

처음에는 총손실 열을 보고, 다음에는 어떤 손실이 늘었는지 가로로 읽어 보자. 발 충돌 보상을 제외한 행은 제안 정책보다 보고된 총손실이 175.9 W 크고 기계 손실도 151.2 W 크다. 착지를 다루는 학습 항이 왜 필요한지 살펴볼 근거다. 그러나 한 항을 없앴을 때 보행 자체가 달라질 수 있으므로, 차이 전부를 서로 독립적인 부품 손실의 인과 효과로 읽지는 않는다.

두 중간 행은 표시된 구성요소를 더한 값과 총손실 사이에 0.1 W 차이가 있다. 소수 한 자리 표시의 반올림과 양립하는 차이이며, 원시 집계가 확인되지 않은 상태에서 수치를 임의로 고치지 않았다. 또한 현재 확인한 쪽에는 반복 횟수·정책 seed·시험 시간·불확실성·통계검정이 충분히 제시되지 않는다. 같은 로봇·4 m/s라는 명시 조건은 확인했지만 모든 세부 조건이 동일하다고 보장하지 않는다.

이 표의 ‘자기 포화 고려 제외’와 코드 README의 파일 이름을 자동으로 같은 정의라고 합치지도 않는다. 실제 보상 구현·계수·학습 조건의 대조가 남아 있다. 원문 표 3a의 구동부 손실 보상은 물리적 손실 측정식과 구분해야 하며, 여기서는 그 수식을 임의로 토크 식으로 치환하지 않았다.

공개 코드의 고정 버전에서 이 구분을 더 확인할 수 있다. RaiboController.hpp의 444–450행은 접촉 전 발 속도의 크기를 저장하고 접촉 중 보상 계수와 곱한다. 위 식 (18)의 유효 질량 행렬을 넣은 충돌 에너지 계산을 그대로 보상에 사용하는 코드는 아니다. 즉 ‘충돌을 줄이는 행동을 유도하는 학습 신호’와 ‘그 보행의 손실전력을 추정하는 물리식’은 목적과 계산이 다르다.

같은 파일 479–489행은 관절 토크를 모터 토크로 바꾸고, 구간별 전류 추정 뒤 저항 손실 등을 반영한 항을 누적한다. 따라서 일반 토크 제곱 벌점 하나만으로 모든 구동부 손실 보상을 설명할 수도 없다. 이 확인은 선택한 코드 구간에 한정하며, 공개 학습 가중치가 논문의 각 절제 실험에 정확히 대응한다는 검증은 아니다.

확인 질문: 발 충돌 보상을 뺀 정책의 총손실이 더 크면, 모든 지형에서도 그 비율만큼 배터리가 빨리 닳을까? 그렇지 않다. 여기서 비교한 것은 정해진 속도의 트레드밀 조건이다. 계단·경사·장거리 주행에서는 접촉과 자세, 에너지 회생, 주행 시간의 비중이 달라지므로 해당 조건에서 다시 검증해야 한다.

#마라톤 완주가 증명하지 않은 것

장거리 보행 능력과 장거리 자율 임무는 다르다. 길을 인식하고, 사람과 장애물을 피하고, 경로를 계획하는 기능까지 켠 상태의 전력과 안전성을 별도로 확인해야 한다. 공개 프리프린트 Discussion은 연구가 사람의 조작을 가정하며 자율 주행에는 전역 지도를 이해하는 에너지 최적 경로 계획이 필요하다고 명시한다. 이는 완전 자율 임무로 확대하면 안 된다는 근거다. 다만 실제 마라톤의 세부 조작 방식까지 조이스틱 지원 README만으로 확정하지는 않는다.

또 마라톤 도로를 완주한 결과가 잔해·계단·눈길에서 같은 거리를 보장하지는 않는다. 짐을 실었을 때의 이동거리, 온도와 방수 조건, 여러 대의 로봇에서 같은 결과가 나오는지도 실제 배치에 중요한 질문이다.

다음에 볼 것은 기록을 조금 더 줄였는지뿐 아니라 어떤 기능과 짐을 켜고 실은 상태에서, 어떤 길을 얼마나 안정적으로 이동했는지다. 이 연구의 설계 가치는 기구·전력전자·보행 제어를 별개로 최적화하지 않고 같은 에너지 예산 안에서 연결했다는 데 있다.

원문·공개 코드와 열람 범위
  1. Lee et al., Nature 원 논문, 2026년 9월 23일. 초록·공개 보충 그림 설명·데이터와 코드 안내를 확인했다. 구독 제한 본문·Methods·보충 표와 핵심 수식의 전체 대조는 미완료다.
  2. 논문 연결 데이터 v1 / 공개 기록의 v2. 기록과 파일 목록을 확인했으며 압축 파일을 분석한 것은 아니다.
  3. RaiLab 학습·평가 코드. README와 아래 고정 버전의 선택한 구현 구간을 확인했다. 전체 구현 검토·논문 정책과의 대응 확인·실행 재현은 하지 않았다.
  4. 저자 공개 프리프린트 v1, DOI 10.21203/rs.3.rs-6040970/v1. 51쪽 PDF를 확보했다. 표지의 CC BY 4.0, 그림 1과 사진, 마라톤 결과·Discussion, Methods의 관절 요구량과 손실 측정 구간을 확인했다. 후속 출처 역할은 전체 추출 텍스트를, 수식 역할은 Methods와 관련 표를 대조했다. 부모도 충돌 식과 절제 실험 표의 실제 페이지를 확인했다. 다른 도판 픽셀·별도 보충 파일·출판본과의 일치 검증은 완료한 것이 아니다.

사진은 프리프린트의 CC BY 4.0 범위에서 선택했다. 공개 사이트용 NewsFigure·미디어 원장 등록과 화면 검수는 남아 있다. 나머지 그림·수식·전체 원문 대조도 미완료이며 발행 준비 완료본이 아니다.

코드의 변경 가능성을 피하기 위해 이번 추가 확인은 커밋 14844f483fe06125eddc76b3119274aca0f7924e에 고정했다. 해당 버전의 Environment.hpp는 보상 계산을 controller에 위임하며, cfg.yaml에는 착지 전 발 속도·지면 반력 매끄러움·토크 등에 대한 계수가 들어 있다. 설정 파일에 항이 있다는 사실만으로 논문의 보상식·절제 정책과 같은 구현이라고 확인한 것은 아니다. controller의 선택한 보상 구간은 위에서 설명했지만, 학습 가중치와 절제 정책의 정확한 대응 및 실제 실행 재현은 남아 있다.

출판본과 프리프린트의 수치도 혼합하지 않는다. 공개된 Nature 그림 3 설명에는 1,447 Wh가 표시되지만, 위 계산 예제는 프리프린트의 1,280 Wh에 한정한다. 측정 범위나 버전 변경 이유를 대조하기 전에는 두 값을 서로 치환하거나 하나가 오류라고 단정하지 않는다.

Connect