Reaching the Limit in Autonomous Racing: Optimal Control versus Reinforcement Learning 논문 리뷰

신희준·2025년 12월 9일

Reaching the Limit in Autonomous Racing: Optimal Control versus Reinforcement Learning

[Reaching the Limit in Autonomous Racing: Optimal Control versus Reinforcement Learning] ([2310.10943] Reaching the Limit in Autonomous Racing: Optimal Control versus Reinforcement Learning) (Yunlong Song, Angel Romero, Matthias Mueller, Vladlen Koltun, Davide Scaramuzza / Sci. Robot. 2023)

Summary

  • Autonomous drone racing task에서 Optimal control에 비해서 RL control의 성능이 훨씬 좋다
    → 그 이유는 optimization을 더 잘해서가 아니고, 사용하는 objective 자체가 더 좋기 때문임.
    → RL은 task-level objective를 직접적으로 최적화

My Thoughts & Takeaways

  • Drone racing과 같은 Autonomous agile flight에서 왜 RL기반 제어를 사용하는 것이 좋은지 알아볼 수 있는 연구
  • 결국엔 task-level objective를 직접적으로 최적화할 수 있기 때문에 더 잘 작동한는 것. → RL 기반 학습할 때는 task level objective를 더 신경써서 잘 설계해줄 필요가 있어보인다.
  • 맨 처음에 planning + control 공부할 때 왜 이게 구분되어야하지 생각을 했었던게 기억이 난다.

  • 매번 느끼는거지만 확실히 learning 기반 모델들이 모델 자체는 blackbox긴 해도 뭔가 설계 그 자체는 사람이랑 훨씬 더 비슷한거 같다.

  • Robot controller로써 RL의 효용성에 대해서 잘 검증했지만, 결국 이상적인 상황 (full state information)에서 제어 성능만 비교하고자 한 연구이므로 앞으로는 더 sparse한 정보를 활용하는 human-like control 기법들이 등장할 것 으로 기대한다.

Problem

Optimal Control and Reinforcement Learning

  • Robot Control System에서 현재 주로 사용되는 두 개의 패러다임
    Optimal Control (OC) vs. Reinforcement Learning (RL)
  • 두 방법 모두 어떤 테스크를 수행하기 위해 observation로부터 control command로 가는 최적의 매핑을 찾는 것이 목표
  • 또한 두 방법 모두 Dynamic programming의 최적성 원리 위에서 작동함.

DP의 최적성 원리 = 벨만 방정식 최적성 원리

  • 전체 문제의 최적해는 그 하위 문제의 최적해로부터 구성된다는 것
  • 따라서 어떤 시점 t에서 최적 행동이라는 것은, 그 이후의 모든 시점에서 행동들도 최적이 되도록 만드는 행동이여야 한다.
    V(s)=max a[r(s,a)+E[γV(s)]]V^*(s)=\underset{a}{\text{max }}[r(s,a)+\mathbb E[\gamma V^*(s')]]
    → 즉, 현재 최적 행동은 지금의 보상 + 미래 최적 가치를 최대화하는 행동
    → 그래서 기본적으로 재귀적 특성을 가짐.
  • RL은 기본적으로 벨만 방정식을 그대로 사용하기 때문에 DP 기반
  • OC도 마찬가지로 뿌리는 같음.

Optimal Control

  • OC에서는 정확한 수학적 모델 (dynamcis & constraints)를 가정하고 이 위에서 cost를 최소화하는 제어 입력을 계산하는 방식.

  • OC는 전형적으로 high level task를 Planning과 Control로 분리해서 해결

    • Planning : drone racing과 같은 고수준 task를 시간이 붙은 reference trajectory로 바꿈

    • Control : planning에서 나온 reference를 잘 따라가도록 최적화 (trajectory에서 얼마나 벗어낫는가? 와 같은 cost를 설계)

      control layer의 optimization objective가 사실상 high-level task objective랑 분리되어 있음

  • 이 분리된 구조 때문에 정확한 모델링이 어려운 상황에서는 최적 제어를 하기가 어려워짐.

  • 왜냐하면 planning은 offline으로 이루어지고 이상적인 dynamics를 기반으로 이루어지는데, control은 현실 dynamics를 기반으로 이 trajectory를 tracking하니까 이 둘이 불일치할 수 밖에 없기 때문에 효율적이지 못함.

Reinforcement Learning

  • RL은 주어진 환경과 상호작용하면서 reward를 최대화하는 행동을 취하는 정책을 학습하는 방식.

  • 정확한 수학 모델 없이도 데이터를 통해 trial and error로 학습
    → 즉 샘플링 기반이므로 nonconvex & sparse objective를 다루기가 편함
    → OC는 실시간으로 최적화 문제 풀기 위해 convex optimization으로 근사해줘야함.

  • 정책이 offline으로 최적화되어 있으므로, 실제로는 단순히 feed-forward로만 control command 구할 수 있음.

    • 미리 정해진 trajectory를 따라가는 것이 아니고 실시간으로 달라지는 observation에 대처할 수 있음
      → feedback controller 자체를 학습하는 느낌
  • Task objective를 직접적으로 최적화할 수 있음

    → 이 task objective를 최적화하기 위해 controller는 더 넓은 행동 공간을 가질 수 있음.

    • 그러니까 racing을 진짜 잘하기 위해서 다양한 움직임을 구사해볼 수 있음.
    • OC는 단순히 trajectory tracking만을 위한 움직임만 가능
  • RL 학습 시 시뮬레이션에서 domain randomization을 활용할 수 있고, 여러 환경에 해당 정책이 작동하도록 할 수 있음.

Problem Definition

  • 이 연구에서는 RL이 OC보다 좋은 이유를 fundamental하게 살펴보려고 함.

  • 두 가지의 관점에서 질문을 던져봄

    1. 같은 cost function이 주어졌을 때 어떤 방법이 더 robust solution을 내놓는가?

      → 근데 실제로는 두 방법이 서로 다른 objective를 사용하니까..

    2. 어떤 optimization objective가 더 robust한 task performance를 내놓는가?

      • 불확실성이나 외란에도 성공적으로 task를 수행할 수 있는 능력을 본다는 뜻

Task Definition

Autonomous drone racing

  • 정해진 순서의 gate를 최소 시간으로 통과하는 문제
  • 기체의 physical limit을 최대로 사용해야 성능을 최대화할 수 있음
  • 에러 허용 범위가 매우 작아서 제어기가 조금만 부정확해도 성능으로 바로 반영됨

→ RL vs OC의 성능을 비교하기에 좋은 테스크

Results

Experimental settings

  • RL과 비교할 OC 방법론으로 두 가지 사용

    1. Trajectory Tracking
      • Time-optimal trajectory + MPC tracking
      • Trajectory를 오프라인으로 아주 정확하게 구하고 (full drone dynamics), 온라인에서는 해당 trajectory를 최대한 잘 따라가도록 MPC 돌림
      • minimum time planning 문제가 매우 오래걸리므로 미리 계산한 trajectory 사용
    2. Contouring Control
      • Progress Maximization + Path tracking
      • 미분 가능한 3d nominal path를 만들고, 이 path에 대해 얼마나 앞으로 갔는지 (progress)와 얼마나 path에서 떨어졌는지 (contouring error)를 동시에 최적화.
        → 즉 여기서 path는 time이 없음. 그냥 공간 경로
      • Trajectory tracking과 다르게 online 최적화가 가능
  • 드론 모델로는 세 가지를 사용

    1. nominal drone model

      • 간단한 rigid-body dynamics를 활용

        ⇒ OC 설계와 RL 학습에 사용함

    2. realistic drone model

      • Blade element momentum theory를 활용

        ⇒ 훨씬 현실에 가까운 물리모델을 활용했기 때문에, test로 활용

    3. real-world racing drone

      ⇒ 최종 sim2real generalization 테스트

Experimental results

  • Nominal 모델과 Realistic Model에서 각 방법론들의 성능 비교

  • 4번 5번 게이트 위에서 본 view이고, 이게 확 돌아야하는 코스인데, OC 방법들은 RL에 비해서 unmodeled dynamics에 대해 영향을 많이 받는다는걸 알 수 있다.

  • 특히 real world에서는 시뮬레이션에서는 고려되지 않는 aerodynamic effects나 system delay, battery voltage fluctuation 등이 존재함.

    → OC 방법들의 success rate가 확실히 떨어짐

Optimization Method versus Optimization Objectives

  • RL이 OC에 비해서 확실히 성능이 좋다는 것을 확인함
    ⇒ 그러면 이제 왜 그런지를 파악해보자.

Optimization Method Hypothesis

  • RL이 OC보다 성능이 좋은 이유는 optimizer로써 RL이 성능이 더 좋아서인가?
    → RL과 Non-linear MPC를 비교
  • time-optimal trajectory를 미리 구해놓고 RL과 MPC가 같은 cost를 최소화하도록 해서 비교

  • RL의 tracking loss가 더 큼.
  • 그리고 planning-and-control 설계를 활용하는 이 경우, model mismatch 발생 시 (realistic sim) RL과 MPC 모두 성능이 떨어짐

Optimization Objective Hypothesis

  • RL이 OC보다 성능이 좋은 이유는 더 나은 objective를 사용해서인가?

  • RL은 nonlinear, nonconvex, nondifferentiable objective를 최적화할 수 있는 반면

  • OC는 이 objective의 continuity와 convexity가 필요하기 때문에 이 task objective를 reference trajectory와 같은 중간 단계의 representation으로 표현해서 문제를 단순화해야함.

  • 그래서 같은 RL 알고리즘을 서로 다른 objective로 학습해봄.

    → trajectory tracking objective vs. gate progress objective

  • gate center까지의 distance를 비교해보면, gate progress로 학습한 RL 모델이 훨씬 더 성능이 좋다는 것을 알 수 있음.
  • OC의 objective로 학습한 RL은 OC처럼 행동함.

✅ task-level optimization objective를 사용하는 것이 RL success의 KEY

Value Functions for Different Optimization Objectives

  • RL에서 state-value function은 해당 state에 있을 때 앞으로 얻게 될 reward의 총합. → 즉 agent의 action이 이상적인 state로 향하도록 guide

  • 위 그림은 특정 state (x로 표시)에 있을 때의 state value를 표현하는 그림.
  • 순서대로 Trajectory tracking objective with OC, Trajectory tracking with RC, Gate Progress with RC임. (OC의 경우 MPC의 optimal cost를 표현한 것)
  • 위 그림을 보면 Trajectory tracking objective를 쓴 경우 state의 value는 단순히 reference trajectory에 가까워질때 높아짐.
  • 미리 계산된 time-optimal trajectory가 실제 model mismatch나 variation으로 틀어지게 되면 드론은 이상하게 날 수밖에 없음.
  • 반면에 Gate Progress objective를 사용한 RC의 경우 더 안전하고 가능한 path에 높은 value를 부여하는 것을 볼 수 있음.

Pushing the Limit of Autonomous Racing

  • Real world에서도 잘 작동하는지 실험해봄

  • 실제 드론 만들어서 racing 실험했고, 5회 씩 3개의 랩 → 100% 완주

  • Battery drop에도 robust

  • 시뮬레이션에서만 학습했고, 10분정도밖에 학습 안함 → zero shot deploy까지 수행
  • 실제 Human Champion들보다도 잘한다고 함.
    • Variance도 훨씬 낮음
    • 최고 속도 108km/h, 최대 가속 12.6g 도달 가능
    • 이론적으로 optimum에 근접하는 lap time 달성

  • 하지만 VICON + EKF로 정확한 상태 추정해서 넣어줌 + low latency 상황 가정
    → 이건 이제 살짝 트릭이긴 어디까지나 연구 목적 자체가 controller 방법론 비교니까

Materials and Methods

  • Drone racing optimization problem 정의
  • Optimization Method

⇒ 딱히 정리할 내용은 없어 보임

Optimization Objective

  • r은 reference
  • s는 state
  • 빨간 선이 cost라고 보면 될듯.
  • Trajectory tracking은 정해진 time에 정해진 state를 갖도록 강요
  • Contouring Control은 reference는 contour path로 정의되고 이를 최대한 따르도록
    • contouring error는 path상의 가장 가까운 점이랑 거리로 구함.
    • time에 대한 DOF를 추가적으로 갖음
  • Gate Progress는 애초에 reference trajectory나 path가 필요없음.
    r(k)=gkpk1gkpkbwkr(k)=||g_k-p_{k-1}||-||g_k-p_k||-b||w_k||
    • time step k에 대해 reward 정의
    • w는 bodyrate penalty

Policy Training

  • PPO (SB3) 활용
  • Flightmare simulator 활용 → parallel simulation

profile
공부하고 싶은 사람

0개의 댓글