본문 바로가기
ML Study/Robotics논문리뷰

Concurrent Training 논문리뷰(Concurrent Training of a Control Policy and a State Estimator for Dynamic and Robust Legged Locomotion)

by 누워있는말티즈 2024. 8. 1.

Concurrent Training of a Control Policy and a State Estimator for Dynamic and Robust Legged Locomotion

Concurrent Training of a Control Policy and a State Estimator for...

simple end-to-end locomotion learning framework that concurrently trains a control policy and a state estimator

Introduction

기존의 4족보행 로봇의 locomotion control은 정교하게 미리 계산된 state estimation을 input으로 받아 계산한다. 하지만 이런 기존의 state estimator는 복잡한 지면 환경(얼음, 모래 등)에서 좋은 성능을 보이지 못한다. 마찰계수, 질감 차이에 의해 예츠값과 실제값의 차이가 매우 크다! 또한 미지의 지면에 대해서는 환경 자체를 예측해야 한다. 이 경우 기존에는 미리 학습된 NN을 이용해 내재적/외재적 정보를 통해 proprioceptive state를 구한다. 다만 이 경우 (1) latent vector가 해석될 수 없어 state info가 필요한 다른 모듈에서 복합적으로 사용할 수 없고 (2) 연산량이 과하게 늘어난다.

본 연구에서는 policy network와 동시에 학습하는 state estimation network를 개발해 해당 문제를 해결한다.

  • policy와 state-estimator를 동시에 학습하는 간단한 end-to-end locomotion learning framework
  • 미끄러운 지면, 경사에서의 안정적인 보행

하드웨어는 Mini Cheetah 모델 기준이다.

Method

프레임워크는 크게 세 가지 네트워크로 구성된다.

(obs) → [estimator] → (state-est) → [actor] → (commands) → [critic]

critic 네트워크는 policy gradient에서 variance를 줄인다.

Actor Critic 네트워크는 PPO로 학습하며 estimator는 지도학습으로 학습한다. 두 네트워크의 loss를 함꼐 optimize하는 과정에서 estimation이 부정확하더라도 policy는 부정확한 예측값에도 적응해버린다. 예를 들어, 미끄러운 환경에서 state estimation는 신뢰도가 떨어지지만 policy는 이미 신뢰도가 낮은 데이터에 대해 보수적인 결과를 내도록 학습되어 있다.

학습 기반은 커스텀한 Mini Cheetah 로봇 함체 기준으로 정했다.

Training Setup

Setting Environment

Randomization이 기본으로 깔려있다! Initial state를 randomize하고 간다.

Setting Curriculum

velocity command를 점진적으로 증가하도록 curriculum을 구성한다. y 방향은 배제하고 V_x만을 명령으로 잡는다.

Setting Rewards

아래와 같은 formulation으로 Reward를 정의한다.

이때, 무식하게 다 합치는 것이 아니라 아래와 같이 reward 자체에 대해 우선도를 준다

$r_{tot}=r_{pos}*exp(0.2r_{neg})$

로봇의 무릎과 발을 제외한 부분이 바닥을 건드리면 바로 -10의 큰 cost를 발생시켜 잘못된 움직임을 막는다.

Network Architecture

actor&critic : MLP [512 x 256 x 64]

extimator : MLP [256 x 128]

RNN보다 MLP가 효율적이고 LSTM으로도 해봤는데 유의미한 차이가 없어 MLP로 한다

observation 튜플을 받은 estimator network가 에측값을 actor network에 먹이고 여기서 joint position command가 나온다.

(obs) → [estimator] → (state-est) → [actor] → (commands) → [critic]

estimator network는 로봇의 state를 estimation algorithm 없이 학습을 통해 예측값을 내는 것으로 본 논문에서는 linear velocity, foot height, contact probability에 대한 estimation을 한다.

Dynamic Randomization

Simulation과 Real world의 갭을 메우기 위해 dynamic randomization 요소를 추가한다.

Result

Simulation

성능 테스트를 위해 Implicit, Sequential, Built-In MPC, *Concurrent, *Concurrent+Slope의 모델을 비교한다.

foot clearance를 높여둔 덕에 concurrent 모델이 전체적으로 좋은 수치를 보이며 특히 넘어지지 않는 모습을 보인다.

Real Robot

Built-in MPC, RL-LKF, Concurrent, Concurrent+Slope를 비교한다.

실제 로봇에 적용시 state estimation에서 0.01초의 통신 시간을 포함한 0.04초의 딜레이가 발생한다. 실제 로봇의 체인과 고무 발바닥에 의해 발생하는 reality gap으로 3 control step을 씹는다.

실제 로봇에 강화학습 기반 4족보행으로 가장 빠른 기록이다!

반응형

댓글