사람은 걷는 법을 의식하지 않아도, 미끄러운 바닥이나 계단 앞에서는 걸음걸이를 바꿉니다. 휴머노이드 로봇도 두 발로 서 있는 것만으로는 부족하고, 몸이 기울기 전에 다음 발을 어디에 둘지 정해야 합니다. 걷기를 따로 학습시키는 이유는 발을 움직이는 순서를 외우게 하기보다, 예상하지 못한 흔들림에도 균형을 되찾는 판단을 만들기 위해서입니다.
보행은 여러 문제를 동시에 푸는 일입니다
한쪽 발을 들면 몸을 지탱하는 면적이 줄어듭니다. 반대쪽 발이 바닥을 충분히 지지하지 못하거나 몸통이 너무 많이 기울면, 다음 발을 내딛기 전에 넘어질 수 있습니다. 여기에 관절의 속도와 힘, 바닥 마찰, 명령한 방향까지 함께 맞춰야 하므로 보행은 단순한 애니메이션보다 균형을 계속 조절하는 문제에 가깝습니다.
사람은 근육과 감각을 통해 이런 조절을 자연스럽게 하지만, 로봇은 무엇을 감지하고 어떤 변화를 위험으로 볼지 명시해야 합니다. 몸통의 기울기만 볼지, 발의 접촉도 함께 볼지, 빠르게 걷는 것과 넘어지지 않는 것 중 무엇을 우선할지도 정해야 합니다. 이 기준이 달라지면 로봇이 배우는 행동도 달라집니다.
학습은 ‘정답 걸음’을 주입하는 일이 아닙니다
강화학습에서는 로봇이 시뮬레이션에서 행동을 시도하고, 환경이 결과에 따라 점수를 돌려줍니다. 앞으로 잘 나아가고 균형을 유지하면 좋은 신호를 주고, 넘어지거나 너무 큰 힘을 쓰면 좋지 않은 신호를 주는 식입니다. 로봇은 많은 시도를 통해 어떤 행동이 더 높은 점수로 이어지는지 찾지만, 점수의 설계가 부정확하면 사람이 기대하지 않은 행동도 배울 수 있습니다.
예를 들어 ‘오래 서 있기’에 너무 큰 점수를 주면 로봇은 걷는 대신 가만히 버티는 선택을 할 수 있습니다. 반대로 앞으로 가는 거리만 보면, 빠르게 움직이다가 불안정해져도 좋은 점수를 받을 수 있습니다. 그래서 보행 학습에서는 한 개의 숫자로 성공을 선언하기보다, 이동·자세·발 접촉·넘어짐 같은 여러 관찰을 함께 봐야 합니다.
시뮬레이션은 실패를 싸게 만드는 공간입니다
실제 휴머노이드 로봇을 반복해서 넘어뜨리며 배우게 하면 시간도 오래 걸리고 장비 손상도 걱정해야 합니다. 시뮬레이션에서는 같은 조건을 여러 번 만들고, 바닥 마찰이나 시작 자세처럼 한 가지 조건만 바꿔 볼 수 있습니다. 이 때문에 학습이 빨라지는 것보다, 실패의 원인을 비교할 수 있게 되는 점이 더 중요합니다.
물론 시뮬레이션에서 통과했다고 현실 보행이 보장되지는 않습니다. 실제 로봇의 센서 지연과 관절 특성, 바닥 조건은 시뮬레이터와 다를 수 있기 때문입니다. 그래서 시뮬레이션은 현실을 대신하는 마지막 답이 아니라, 현실에서 무엇을 더 확인해야 하는지 좁혀 주는 첫 실험장입니다.
이 블로그에서 보는 보행 학습
현재 프로젝트에서는 보행을 정책 하나의 성능으로 보지 않고, 관측·행동·보상·종료 조건이 함께 만든 학습 문제로 봅니다. 어떤 값이 로봇에게 보이는지, 무엇을 할 수 있는지, 어느 순간을 실패로 처리하는지가 모두 행동을 바꿉니다. 로봇 강화학습 환경 읽기에서 이 네 요소가 실제 보행 환경에서 어떻게 이어지는지 볼 수 있습니다.
오늘의 요점은 걷기가 ‘발을 움직이는 기술’보다 ‘넘어지기 전에 다음 선택을 고르는 기술’에 가깝다는 것입니다. 다음 글에서는 이런 시행착오를 통해 정책을 조금씩 바꾸는 강화학습과 PPO를 살펴봅니다.
이 글에서 다룬 건 개념입니다. 실제로 G1에 이 개념을 적용했을 때 무슨 일이 있었는지 — 쓰러지기만 하던 단계부터, 편법으로 뒤로 걷던 단계, 그리고 지금까지 확인한 첫 전진 보행까지 — 는 별도 시리즈로 기록해 두었습니다. G1이 가상환경에서 앞으로 걷기까지에서 그 흐름 전체를 볼 수 있습니다.