Demo

Technology

  • Docker API를 통해 Worker 컴퓨터를 제어해 강화 학습 Training 컨테이너를 구동
  • three.jscannon.js 를 연동해 브라우저 내에 강화 학습 시뮬레이션 환경 구성
  • 강화 학습 컨테이너와 시뮬레이션 환경을 socket.io 프로토콜을 통해서 환경 정보와 지시 사항을 주고받으며 강화 학습 진행

Abstract

웹 기술을 이용한 3D 로봇 팔 대상의 유연한 강화 학습 환경 구성

본 연구는 웹 기술을 이용해 사용자 친화적이고 유연한 강화 학습 시뮬레이션 환경 아키텍쳐를 구성하는 목적을 가지고 있으며, 실증을 위해 로봇 팔을 강화 학습의 대상으로 설정했다. 이를 위한 시스템은, 정역학적 계산과 시각화를 일관성 있는 코드로 구현할 수 있는 브라우저 상의 3D 시뮬레이션 모듈, 컨테이너 형태로 강화 학습 모델을 구동하는 강화 학습 서버 모듈, 강화 학습 서버 모듈 내의 컨테이너들을 제어하는 이벤트 기반 서버 모듈, 강화 학습 구동을 포함해서 앞선 모듈들과의 실시간 이벤트 기반 네트워킹 기능을 수행하고 유저와 상호 작용하는 이벤트 기반 클라이언트 모듈로 구성됐다.

본 시스템을 실증하기 위한 목적으로 로봇 팔을 이용한 Task 2가지를 구현했으며, 컨테이너 환경에서 구동되는 DDPG 알고리즘이 성공적으로 수렴하는 것을 확인했다. 첫 번째 Task는 로봇 팔이 임의의 Target을 추종하는 Reacher다. Open CV와 NumPy를 이용해 구현된 Baseline 환경과 비교했을 때, 본 시스템을 통해서 향상된 유연성, 빠른 수렴 시간을 얻을 수 있었다. 본 시스템의 강화 학습 진행 속도는 Unity, MuJoCo로 구현된 Reacher 환경에 상응하는 속도로 나타났다.

두 번째 Task는 회전하는 물체를 로봇 팔로 한 방향으로 돌리는 Task다. 이 Task는 현실 로봇에서 시도된 Task인데, 브라우저에서 구동되는 물리 엔진이 강화 학습 모델의 수렴에 필요한 일관된 데이터를 제공하는지 검증하는 실험적인 Task로서 구현했다. 여기서는 첫 번째 Task에서 사용했던 동일한 DDPG 알고리즘을 이용해서 로봇이 다양한 전략으로 Task를 수행하는 것을 확인했다.

본 시스템은 현재 서비스되고 있는 본 강화 학습 시스템은, 환경 구축에 있어서 기존의 강화 학습 환경보다 뛰어난 유연성을 확보하고, 기존의 강화 학습 시스템과 비교할만한 수준의 강화 학습 수행 속도를 보여준다. 구현 방식에 있어서 이벤트 기반 프로그래밍, 컨테이너 기술, 첨단 Web API 등의 웹 기술 등을 이용했으므로 본 시스템은 클라우드를 통한 서비스가 용이하며, 기존의 강화 학습 환경들에 비해서 개선된 사용자 친화성 및 접근성을 고려했을 때 본 시스템은 강화 학습 교육 소프트웨어로서 활용될 수 있다.

Lessons

  • 이 프로젝트에서 Docker API를 직접 호출해보면서 컨테이너에 대해서 이해한 내용은 개발 커리어 내내 좋은 배경 지식으로 사용되고 있습니다.