늦깎이 공대생의 인공지능 연구실
강화학습으로 드론을 목적지에 착륙시키기(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는 하나의 정책을 얻을 수 있는데, 이는 모든 상태
에이전트의 내부 역학은 시간
특정한 정책
가치 함수는 행동-가치 함수(Action-Value Function)
최적의 정책
실제 로봇에 적용할 때 일반적인 문제는 상태 및 작업 공간이 종종 연속적인 공간이라는 점입니다. 연속 상태 혹은 행동 공간은 서로 다른 상태 혹은 행동의 상당히 많은 집합으로 인해 최적화 문제를 다루기 어렵게 만들 수 있습니다. 표현을 위한 일반적인 프레임워크인 강화학습 방법은 심층학습을 통해 강화되어 특징 표현을 위한 설계를 지원합니다. 이는 심층 강화 학습으로 알려져 있습니다.
최신 심층 강화학습 알고리즘의 최신 기법으로, DDPG는 인공신경망을 강화학습 패러다임에 성공적으로 적용한 사례 중 하나로서, 이 알고리즘은 연속적인 제어 문제를 해결할 수 있습니다. DDPG는 연속적인 상태와 행동 공간에서 동작할 수 있도록 설계된 정책 기반의 심층 강화학습 알고리즘입니다. 정책 기반의 강화학습 알고리즘 수단은 최적의 정책
이 때,
이 거대한 비선형 근사치를 수렴하기 위한(이산 공간 관점에서) 행심적인 변화는 리플레이 버퍼(replay buffer)를 사용하는 것입니다. 그리고,
행위자 신경망(Actor Network)은 행위자 매개변수와 관련하여 시작 분포 J에서 예상되는 반환값에 체인 규칙을 따르고 적용하여 업데이트됩니다
off-policy 방법의 장점은 탐색을 학습과 독립적으로 처리할 수 있다는 것입니다. 이 경우 자기 상관 Ornstein-Uhlenbeck 탐색 노이즈 전체에 걸쳐 탐색이 수행됩니다
Proposed Approach
이 논문에서, 저자들은 Gazebo 시뮬레이션 환경의 강화학습 프레임워크에서 모델을 학습하고, 학습된 모델을 실제 환경의 로봇에 적용을 하는 시도를 하였습니다.
Reinforcement Learning Simulation Framework
강화학습에서, 에이전트는 환경과 상호 작용하고 각 시간별 단계에서 누적된 보상을 최대화하려 합니다. 저자가 설계한 강화학습 프레임워크에서 에이전트와 환경과의 통신 채널은 표준화된 통신 방식을 제공하는 로봇 운영체제인 ROS를 사용합니다.

환경 인터페이스(Env Interface)는 에이전트와 시뮬레이션(Aerostack, Gazebo)와 상호작용할 수 있도록 위치하고 에이전트의 행동
Reinforcement Learning Based Formulation
강화학습 실험에서 상태 공간은
이 때,

실험 및 결과
저자는 위의 실험 방법을 통하여 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