[Learning Vision-based Agile Flight via Differentiable Physics]([2407.10648] Back to Newton's Laws: Learning Vision-based Agile Flight via Differentiable Physics) (Yuang Zhang, Yu Hu, Yunlong Song, Danping Zou, Weiyao Lin / Nature Machine Intelligence 2025)
Problem
기존 방법 한계
-
기존 방법 1 : Classical Methods : localization + mapping + planning + control
- cascade structure기 때문에 latency + error 누적 → 빠른 비행 불가
- localization + mapping 자체가 computation 높고, high speed에서 불안정
-
기존 방법 2 : RL control : explicit mapping + planning이 없는 end-to-end policy
- slow convergence, data-intensive → large scale parallelized env 필수적
- 이전에는 state based control 문제만 주로 다루어짐
-
기존 방법 3 : Imitation learning
- expert demonstration에 너무 크게 의존
- 특정 task만 수행 가능
Differentiable physics
- Differentiable physical simulator를 통해 직접 backpropagation 가능
- 기존 model-free RL은 샘플링된 rollout을 통해 policy gradient를 추정하는 식
- 반면 differentiable simulator에서는 loss에서 시작한 gradient가 policy에 직접 반영 → sample efficiency 매우 높음
Core Idea

Task
- Task = velocity tracking + obstacle avoidance → vision-based 이고 velocity 정보를 입력으로 활용하지 않아도 velocity tracking이 가능
Method
- quadrotor dynamic 자체를 simple point mass로 가정
→ 오히려 학습 효율이 좋음
➡️ acc만으로 state 계산 가능 → 시뮬레이션 진행 빠름
➡️ 미분 계산이 간결해짐 → 강체 모델 쓰면 자세와 회전을 다뤄야해서 비선형성이 추가됨
➡️ low-level control은 내부 FC → 드론 하드웨어 의존성 낮음
-
시뮬레이션 환경 자체도 simple한 환경으로 구성
→ high fidelity가 아니여도 충분히 잘 일반화 됨
-
Backpropagation 할 때 position, velocity gradient에 exp decay 적용

- end-to-end로 gradient descent하면 gradient 터지는 경우가 많아서.
- Network Architecture = CRNN 구조
- CNN : depth map 입력을 받아 feature 추출
- GRU : planning + control 수행
- 입력 : image feature에 [target velocity + attitude estimation + velocity estimation (optional)] 을 추가해서 넣어줌
- 출력 : GRU cell은 이 feature를 받아서 GRU state ht를 출력하고 이를 통해 thrust acceleration 명령과 velocity estimation을 출력
✅ acceleration을 출력하고 나머지는 FC가 알아서 제어하도록 설계
→ point mass dynamics와 딱 맞음 (acc만 있으면 바로 다음 state 계산 가능)
→ FC는 acc 받아서 thrust vec → att → rate → motor control 수행
→ 기체 의존성 제거
✅ RNN을 활용하여 internal state estimate 정보를 가지고 있을 수 있도록 설계 → velocity tracking loss
✅ GRU가 속도를 예측하게 함으로써 GRU의 내부 state가 물리적인 상태 정보를 담을 수 있도록 강제하는게 자연스럽긴 한데,, 이 velocity estimation을 정확히 어떻게 활용하는지 논문에는 안 나와있는거 같음.
→ 이렇게 해서 실제로 odometry-free인 상황에서도 오히려 VIO를 쓴 agent보다 잘 비행함.