늦깎이 공대생의 인공지능 연구실

강화학습으로 드론을 목적지에 착륙시키기(A Deep Reinforcement Learning Strategy for UAV Autonomous Landing on a Moving Platform) 본문

논문

강화학습으로 드론을 목적지에 착륙시키기(A Deep Reinforcement Learning Strategy for UAV Autonomous Landing on a Moving Platform)

Justin T. 2023. 1. 18. 23:52

 강화학습을 사용하여 로봇을 조종하는 것은 저에게 있어 가장 큰 로망 중 하나이기도 합니다. 이번에 소개드리고자 하는 논문은 스페인 마드리드 공과대학교(Universidad Politécnica de Madrid)에서 2019년에 공개된 저널 논문에 대해 간단히 소개드리고자 합니다. 강화학습에 관심있는 분들에게 이 논문에서 소개드리고자 하는 내용들이 강화학습을 현실세계에 적용하는 방법을 이해하는데 큰 도움이 될 것입니다.

 

 

Abstract

 최근 배달 및 탐색 등 멀티콥터 드론을 활용하는 분야가 기하급수적으로 늘어나고 있습니다. 특히, Deep Q-Learning이 연속적인 행동(Action)이 요구되는 게임에서 성공적으로 적용됨으로서 움직임 제어를 위한 딥러닝 기술 또한 단계적으로 발전해 나아가고 있습니다. 이러한 아이디어를 기반으로, DDPG(Deep Deterministic Policy Gradients) 알고리즘이 연속적인 상태(State) 및 행동(Action)의 영역에서 뛰어한 결과를 보여주고 있는데, 이는 대다수의 로봇과 관련된 작업에서 필요로 합니다. 이러한 맥락에서, 연구 커뮤니티는 강화학습의 패러다임과 현실적인 시뮬레이션 시스템과의 통합에 부족함이 있음을 통감하고 있으며, 이를 극복하기 위해 로봇 분야에 심층 강화학습 알고리즘을 적용하고자 합니다. 이 논문에서는 다목적의 gazebo 기반의 강화학습 프레임워크를 설계하여 연속적인 UAV 착륙 작업을 입증하고자 합니다. 움직이는 플랫폼 위에 드론을 착륙시키는 동작은 새로운 DDPG 알고리즘을 사용하여 해결하였으며 이는 우리의 강화학습 프레임워크에 통합되어 있습니다. 시뮬레이션 비행과 실제 비행 두 조건의 다양한 조건에서 여러번의 실험을 수행함으로서 이러한 접근의 일반성(The generality)을 설명하고자 합니다. 간접적인 결과로서, 로봇이 시뮬레이션에서 학습하고 실제 동작 환경에서 적절하게 수행할 수 있는 로봇에 대한 강력한 작업속도가 검증되었습니다. 저자들이 아는 한, 이는 움직이는 플랫폼에서 지속적인 UAV 착륙 기동을 다루는 첫 번째 사례입니다. 이는 시뮬레이션에서 훈련되고 실제 비행에서 테스트되는 최첨단 심층 강화 학습 알고리즘 학습법입니다.

Introduction

 인공지능의 발전으로 어느덧 우리의 일상에 인공지능이 적용된 사례들을 많이 볼 수 있게 되었습니다. 특히 Vision 분야에서 CNN알고리즘을 시작으로 ViT가 등장하는 등 카메라 영상에서 물체 감지 정확도 및 속도는 상당히 향상되었으며 음성인식으로 알려진 NLP 또한 상당한 발전 양상을 보여 사람이 말한 내용을 기록하는 인공지능 또한 오인식률이 감소하여 더 정확하게 사람의 말을 알아듣는 모습을 보이고 있습니다.

 

 그러나 이러한 인공지능의 발전이 로봇 분야에서는 놀라울 정도로의 발전을 보이지는 못하고 있습니다. 동작 원리가 수십년 전 입증된 제어 알고리즘과는 달리 우리는 아직도 인공지능이 어떻게 물체를 정확하게 인식하고 행동하는지 완벽하게 입증해내지 못하였습니다. 즉 이는, 혹여나 로봇을 사용하는 과정에서 오인식으로 인해 발생하는 불미스러운 사고를 방지하기 아렵기 때문입니다. 종종 자율주행 자동차가 오인식으로 사고가 났을 때 사람의 입장에서는 분명 피할 수 있었던 상황을 인공지능이 피하지 못하는 상황만 보더라도 아직까지 로봇 분야에 인공지능을 적용하는 것이 소극적인 이유를 알 수 있습니다. 그럼에도 불구하고 로봇 분야의 연구원들은 인공지능의 가능성을 결코 포기하지 않습니다. 지속적인 도전과 실패를 이어가다보면 미래에는 안전이 보장된 인공지능 알고리즘이 세상을 놀라게 할 것입니다.

 

 이번에 소개드리고자 하는 논문은 UAV에 연속 제어 심층 강화학습 모델인 DDPG를 활용하여 UAV가 실시간으로 움직이는 플랫폼 위에 착륙하는 것을 목적으로 합니다. 이를 위해 저자는 Gazebo 시뮬레이션 환경에서 강화학습 프레임워크를 만들어 가상환경에서 로봇이 학습을 할 수 있게 구성하였으머, 이러한 환경에서 DDPG를 적용하였습니다. 이러한 시뮬레이션에서 학습된 DDPG 모델을 실제 환경에 적용하여 이를 증명하는 것이 논문의 목적입니다.

Background

 강화학습에서 에이전트(Agent)는 환경과 상호 작용하도록 정의되어 있으며, 언제든지 각 상태(State)에 가장 적합한 행동(Action)을 찾습니다. 에이전트는 환경과의 상호 작용에서 누적된 보상을 최대화하는 최적의 정책(Policy)을 찾기 위해 상태 공간에 대한 탐색(Exploration)과 활용(Exploitation)의 균형을 유지해야 합니다. 이러한 맥락에서 에이전트는 모든 시간 단계에 대한 상태, 취한 행동 및 보상에 대한 인식을 가지고 행동 또는 정책을 수정합니다. 실제로, 강화학습은 누적된 보상(Reward)을 최대화하기 위해 전체 상태 공간에 걸쳐 최적화 프로세스를 포함합니다. 로봇 문제(Robotic Problem)는 종종 시간 구조(Temporal Structure)와 함께 작업을 기반으로 합니다. 이러한 유형의 문제는 강화학습 프레임워크를 통해 해결하기에 적합하다고 볼 수 있습니다.

 

 표준 강화학습 이론에서 하나의 Agent는 하나의 정책을 얻을 수 있는데, 이는 모든 상태 \(s\in\mathbb{S}\)가 모든 행동 \(a\in\mathbb{A}\)으로 매핑됩니다. 여기서 \(\mathbb{S}\)는 상태 공간(환경 내 Agent의 가능한 상태)이고 \(\mathbb{A}\)는 유한한 행동 공간 입니다. 

에이전트의 내부 역학은 시간 \(t\)에 대해 전이 확률 모델 \(p(s_{t+1}|s_t,a_t)\)로 표현됩니다. 정책은 각각의 가능한 행동 \( a\)에 대한 확률 \(\pi(a|s)\)로 표현할 수 있으며, 결정된 \(pi(s)\)로 표현됩니다. 각 시간 단계에서, 정책은 선택된 행동 \(a\)에 따라 결정되며, 보상 \(r(s_t,a_t)\)는 환경으로부터 값을 얻을 수 있습니다. 에이전트의 목적은 어느 한 상태(State)에서 시간 t에서 T까지의 누적된 할인 보상(Accumulated Discounted Reward) \(R_t=\sum_{i=t}^T\gamma^{i-t}r(s_i,a_i)\)을 최대화하는 것입니다. 할인율 \(\gamma\)는 미래의 보상에 대해 가중치에 차이를 주기 위해 적용되는 값으로 정의할 수 있습니다.

 

 특정한 정책 \(\pi\)에 대하여, 가치 함수 \(V^{\pi}\)는 각각의 상태 \(s\in \mathbb{S}\)에 대한 누적된 할인 보상 \(R^t\)의 기대값을 나타냅니다.

$$V^{\pi}(S_t)=\mathbb{E}[R_t|s_t,a_t=\pi(s_t)]$$

 가치 함수는 행동-가치 함수(Action-Value Function)\(Q^\pi\)로 동등하게 나타낼 수 있습니다.

$$Q^\pi(s_t,a_t)=r(s_t,a_t)+\gamma\sum_{s_t+1}p(s_{t+1}|s_t,a_t)V^{\pi}(s_t+1)$$

 최적의 정책 \(\pi^*\)은 가치 함수를 최대화할 것입니다.

$$\pi^*=\operatorname*{argmax}_\pi V^\pi(s_t)=\operatorname*{argmax}_{a_t}Q^*(s_t,a_t)$$

 실제 로봇에 적용할 때 일반적인 문제는 상태 및 작업 공간이 종종 연속적인 공간이라는 점입니다. 연속 상태 혹은 행동 공간은 서로 다른 상태 혹은 행동의 상당히 많은 집합으로 인해 최적화 문제를 다루기 어렵게 만들 수 있습니다. 표현을 위한 일반적인 프레임워크인 강화학습 방법은 심층학습을 통해 강화되어 특징 표현을 위한 설계를 지원합니다. 이는 심층 강화 학습으로 알려져 있습니다.

 

 최신 심층 강화학습 알고리즘의 최신 기법으로, DDPG는 인공신경망을 강화학습 패러다임에 성공적으로 적용한 사례 중 하나로서, 이 알고리즘은 연속적인 제어 문제를 해결할 수 있습니다. DDPG는 연속적인 상태와 행동 공간에서 동작할 수 있도록 설계된 정책 기반의 심층 강화학습 알고리즘입니다. 정책 기반의 강화학습 알고리즘 수단은 최적의 정책 \(\pi^*\)을 직접적으로 탐색할 수 있도록 해주며, 연속적인 제어 환경에서 실행할 수 있는 프레임워크입니다. 만약 목표 정책 \(\pi^*\)는 확정적 정책 \(\mu\)이며, Q함수는 다른 확률적 행동방식 정책 \(\beta\)로부터 생성된 (환경 E로부터)전이를 사용하여 off-policy 방식으로 학습합니다.

$$Q(s_t,a_t)=\mathbb{E}_{r_t,s_{t+1}\sim E}[r(s_t,a_t)+\gamma Q^\mu(s_{t+1},\mu(s_{t+1}))]]$$

 \(\theta^Q\)로 매개변수화된 함수 근사치(Function Approximator)는 Q함수를 근사화하기 위해 DDPG를 고려합니다. 이 함수는 손실값 \(L(\theta^Q)\)을 최소화함으로서 최적화합니다.

$$L(\theta^Q)=\mathbb{E}_{s_t\sim\rho^\beta,a_t\sim\beta,r_t\sim E}[(Q(s_t,a_t|\theta^Q)-y_t)^2]$$

이 때, \(y_t\)는

$$y_t=r(s_t,a_t)+\gamma Q(s_{t+1},\mu(s_{t+1})|\theta^Q)$$

 이 거대한 비선형 근사치를 수렴하기 위한(이산 공간 관점에서) 행심적인 변화는 리플레이 버퍼(replay buffer)를 사용하는 것입니다. 그리고, \(y_t\)를 계산하기 위한 별도의 목표 신경망은 DQN에 의해 처음부터 증명되었습니다. 거대한 연속적인 상태 및 행등 공간을 다루기 위해, DDPG는 행위자-비평자(Actor-Critic) 패러다임을 적용하였습니다. 행위자-비평자는 두 개의 신경망을 사용하여 탐욕적인 결정적 정책을 수행하는 행위자(Actor)와 Q함수를 수행하는 비평자(Critic)가 근사치를 차즌 과정이라고 설명드리겠습니다. DDPG는 DQN에 비해 평균 20배 더 적은 경험 단계로 학습합니다.

 행위자 신경망(Actor Network)은 행위자 매개변수와 관련하여 시작 분포 J에서 예상되는 반환값에 체인 규칙을 따르고 적용하여 업데이트됩니다

$$\triangledown_{\theta\mu}J\approx\mathbb{E}_{s_t\sim \rho^\beta}[\triangledown_{\theta\mu}Q(s,a|\theta^Q)|_{s=s_t,a=\mu(s_t|
\theta^\mu)}]$$

 off-policy 방법의 장점은 탐색을 학습과 독립적으로 처리할 수 있다는 것입니다. 이 경우 자기 상관 Ornstein-Uhlenbeck 탐색 노이즈 전체에 걸쳐 탐색이 수행됩니다

Proposed Approach

 이 논문에서, 저자들은 Gazebo 시뮬레이션 환경의 강화학습 프레임워크에서 모델을 학습하고, 학습된 모델을 실제 환경의 로봇에 적용을 하는 시도를 하였습니다.

Reinforcement Learning Simulation Framework

 강화학습에서, 에이전트는 환경과 상호 작용하고 각 시간별 단계에서 누적된 보상을 최대화하려 합니다. 저자가 설계한 강화학습 프레임워크에서 에이전트와 환경과의 통신 채널은 표준화된 통신 방식을 제공하는 로봇 운영체제인 ROS를 사용합니다. 

 환경 인터페이스(Env Interface)는 에이전트와 시뮬레이션(Aerostack, Gazebo)와 상호작용할 수 있도록 위치하고 에이전트의 행동 \(a_t\)에 대해 시뮬레이션에서 나온 결과값인 보상 \(r_t\)를 전달받습니다. 이 과정에서 ROS 인터페이스를 통해 에이전트와 시뮬레이션이 통신을 수행하며, Gazebo 시뮬레이션이 일시적으로 중단되었을 때, 공유 메모리 인터페이스를 통하여 지속적으로 학습을 할 수 있도록 설계되어 있습니다.

Reinforcement Learning Based Formulation

 강화학습 실험에서 상태 공간은 \(s \in \mathbb{S}\)로 정의하며, 행동 공간은 \(a \in \mathbb{A}\)로 나타내며 보상함수는 \(r\)로 표현됩니다. 이 실험에서 제안하는 접근방법으로 상태공간 \(\mathbb{S}\)는 다음과 같은 식으로 정의할 수 있습니다.

$$\mathbb{S} = \{p_x,p_y,p_z,v_x,v_y,C\}$$

 이 때, \(p_x, p_y, p_x\)는 시간 \(t\)일 때 움직이는 플랫폼(Moving Platform)에 대한 UAV의 공간좌표이며, \(v_x, v_y\)는 시간 \(t\)일 때 움직이는 플랫폼에 대한 UAV의 속도를 나타내며, \(C\)는 움직이는 플랫폼에 달려있는 압력 센서의 상태를 나타내는 이진값(0 혹은 1)입니다. 에이전트는 환경 인터페이스로부터 상태 s와 보상 r을 받으며 해당 값을 통하여 환경 인터페이스에 행동값을 전달합니다.

실험 및 결과

  저자는 위의 실험 방법을 통하여 Gazebo 시뮬레이션에서 UAV를 강화학습 하는 방법을 제안하였으며 이를 통해 학습된 모델을 실제 UAV에 적용하여 실시간으로 움직이는 플랫폼에 착륙하는 실험을 진행하였습니다. 이 실험은 아래의 사이트를 통해 영상으로 확인하실 수 있습니다.

 

 

 

 


 시뮬레이션에서 학습한 모델을 실제 현실에서 구현된 환경에 적용을 시도하였던 저자의 기획 의도가 대단해보입니다. 자율주행 분야에서도 시뮬레이션으로 학습된 모델을 실제 차량에 적용하는 사례들이 많지만 생각보다 잘 되는 경우는 많지 않습니다. 과연 이러한 시도들을 통해 차후 로켓을 쏘아올리는 인공지능이 탄생할 수 있을지 살짝 기대해보고 싶습니다!

 

 

참고논문: https://link.springer.com/article/10.1007/s10846-018-0891-8

Rodriguez-Ramos, A., Sampedro, C., Bavle, H. et al. A Deep Reinforcement Learning Strategy for UAV Autonomous Landing on a Moving Platform. J Intell Robot Syst 93, 351–366 (2019).

 

https://orbilu.uni.lu/bitstream/10993/47163/2/index.pdf

 

반응형