[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를 직접적으로 최적화
맨 처음에 planning + control 공부할 때 왜 이게 구분되어야하지 생각을 했었던게 기억이 난다.
매번 느끼는거지만 확실히 learning 기반 모델들이 모델 자체는 blackbox긴 해도 뭔가 설계 그 자체는 사람이랑 훨씬 더 비슷한거 같다.
Robot controller로써 RL의 효용성에 대해서 잘 검증했지만, 결국 이상적인 상황 (full state information)에서 제어 성능만 비교하고자 한 연구이므로 앞으로는 더 sparse한 정보를 활용하는 human-like control 기법들이 등장할 것 으로 기대한다.
Optimal Control (OC) vs. Reinforcement Learning (RL)✅ DP의 최적성 원리 = 벨만 방정식 최적성 원리
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하니까 이 둘이 불일치할 수 밖에 없기 때문에 효율적이지 못함.
RL은 주어진 환경과 상호작용하면서 reward를 최대화하는 행동을 취하는 정책을 학습하는 방식.
정확한 수학 모델 없이도 데이터를 통해 trial and error로 학습
→ 즉 샘플링 기반이므로 nonconvex & sparse objective를 다루기가 편함
→ OC는 실시간으로 최적화 문제 풀기 위해 convex optimization으로 근사해줘야함.
정책이 offline으로 최적화되어 있으므로, 실제로는 단순히 feed-forward로만 control command 구할 수 있음.
Task objective를 직접적으로 최적화할 수 있음
→ 이 task objective를 최적화하기 위해 controller는 더 넓은 행동 공간을 가질 수 있음.
RL 학습 시 시뮬레이션에서 domain randomization을 활용할 수 있고, 여러 환경에 해당 정책이 작동하도록 할 수 있음.
이 연구에서는 RL이 OC보다 좋은 이유를 fundamental하게 살펴보려고 함.
두 가지의 관점에서 질문을 던져봄
같은 cost function이 주어졌을 때 어떤 방법이 더 robust solution을 내놓는가?
→ 근데 실제로는 두 방법이 서로 다른 objective를 사용하니까..
어떤 optimization objective가 더 robust한 task performance를 내놓는가?
Autonomous drone racing
→ RL vs OC의 성능을 비교하기에 좋은 테스크
RL과 비교할 OC 방법론으로 두 가지 사용
Trajectory TrackingContouring Control드론 모델로는 세 가지를 사용
nominal drone model
간단한 rigid-body dynamics를 활용
⇒ OC 설계와 RL 학습에 사용함
realistic drone model
Blade element momentum theory를 활용
⇒ 훨씬 현실에 가까운 물리모델을 활용했기 때문에, test로 활용
real-world racing drone
⇒ 최종 sim2real generalization 테스트

Nominal 모델과 Realistic Model에서 각 방법론들의 성능 비교
4번 5번 게이트 위에서 본 view이고, 이게 확 돌아야하는 코스인데, OC 방법들은 RL에 비해서 unmodeled dynamics에 대해 영향을 많이 받는다는걸 알 수 있다.
특히 real world에서는 시뮬레이션에서는 고려되지 않는 aerodynamic effects나 system delay, battery voltage fluctuation 등이 존재함.
→ OC 방법들의 success rate가 확실히 떨어짐

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

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


Real world에서도 잘 작동하는지 실험해봄
실제 드론 만들어서 racing 실험했고, 5회 씩 3개의 랩 → 100% 완주
Battery drop에도 robust

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

Trajectory tracking은 정해진 time에 정해진 state를 갖도록 강요Contouring Control은 reference는 contour path로 정의되고 이를 최대한 따르도록Gate Progress는 애초에 reference trajectory나 path가 필요없음.