상세보기

오프로스 시뮬레이터와 RILS, 가상으로 로봇 테스트 환경 제공 오프로스 시뮬레이터와 RILS, 가상으로 로봇 테스트 환경 제공 문정희 기자입력 2012-07-25 00:00:00

Open Platform for Robotic Services ⑤
오프로스 시뮬레이터와 RILS, 가상으로 로봇 테스트 환경 제공

 

지난 2007년 지능형로봇 개발을 위한 공통기반 플랫폼 기술개발의 과제로 시작된 오프로스(OPRoS; Open Platform for Robotic Services)는 로봇소프트웨어를 컴포넌트화하여 재사용과 동일기능을 하는 컴포넌트끼리 교체가 가능하도록 해 코드의 재사용성을 극대화하고, 빠른 로봇소프트웨어 개발이 가능하도록 개발도구를 개발하는 것을 목적으로 한다. 본문에서는 가상의 로봇을 이용하여 컴포넌트 또는 로봇소프트웨어 등의 테스트 또는 검증을 수행하기 위한 오프로스 시뮬레이터와 RILS를 개략적으로 설명한다.

 


1. 오프로스 시뮬레이터 개요
오프로스 시뮬레이터는 2007년 지능형로봇 개발을 위한 공통기반 플랫폼 기술개발의 과제로 시작된 오프로스(OPRoS; Open Platform for Robotic Services)의 시뮬레이터로서 오프로스의 장점인 로봇소프트웨어의 컴포넌트를 바탕으로 실제 로봇을 사용하지 않고 가상의 로봇을 이용하여 컴포넌트 및 로봇소프트웨어 등의 테스트 또는 검증을 수행하기 위한 기능을 제공한다.
오프로스 시뮬레이터는 <그림1>과 같이 가상로봇을 설계할 수 있는 로봇 빌더와 가상로봇을 구동할 수 있는 환경을 설계하는 환경 빌더, 그리고 가상로봇과 가상환경을 이용하여 오프로스 컴포넌트 등을 시뮬레이션할 수 있는 시뮬레이터 및 뷰어로 구성되어 있다.
오프로스 시뮬레이터는 심랩과 ED, MORSE의 시뮬레이터를 기반으로 오프로스와 연동이 가능하도록 개량된 시뮬레이터이다. 오프로스 시뮬레이터는 다양한 로봇에 적용하여 실제 로봇을 대신해 보다 사실적이고 정확한 동작을 계산한 후 3차원으로 정보를 제공함으로써, 다양한 분야에 적용할 수 있다. 이에 대한 예가 <그림2>에 있다.

 

2. 오프로스 시뮬레이터 뷰어
오프로스 시뮬레이터는 <그림3>과 같이 가상로봇과 가상 환경을 이용하여 실제 로봇이 구동되는 움직임을 물리적 특성으로 계산해 시뮬레이션을 수행함과 동시에 오프로스와 편리한 인터페이스를 제공하여 사용자가 쉽고 편리하게 오프로스 어플리케이션을 구동할 수 있다.
오프로스 시뮬레이터는 가상 로봇/환경을 로딩하여 오프로스 컴포넌트의 명령에 의해서 동작을 수행할 수 있도록 오프로스 컴포넌트 실행엔진을 내부적으로 수행할 수 있는 기능을 제공한다. 이에 대한 예가 <그림4>에 있다. 오프로스 컴포넌트 실행엔진은 컴포넌트들로 구성된 어플리케이션을 구동하여 실제로봇/가상로봇을 구동하게 되는데, 시뮬레이터에서는 구동될 수 있는 어플리케이션의 리스트와 내부적으로 동작할 수 있는 인터페이스를 제공한다.
오프로스 시뮬레이터는 컴포넌트 실행엔진이 구동될 때 컴포넌트들의 동작시 제공되는 메시지와 오류 정보 등을 보여주는 기능을 제공하며 그러한 예가 <그림5>에 표시되어 있다. 실제 컴포넌트들로 구성된 어플리케이션이 실행될 때 각각의 컴포넌트실행 정보를 제공하며, 이 정보를 통해서 각각의 컴포넌트들의 문제점 및 오류를 확인할 수 있다.
시뮬레이터 뷰어는 가상 로봇의 구동을 3차원 환경에서 사용자가 원하는 정보를 쉽게 획득할 수 있는 인터페이스를 제공하며, 제공되는 정보는 로봇의 이동 및 각 구동기의 회전 방향 또는 환경과의 연동을 구체적으로 보여준다.
시뮬레이터 뷰어는 <그림6>과 같이 가상 로봇/환경을 렌더(Render)형식과 충돌형식(Collision)으로 보여준다. 렌더 형식은 실제 물리적 계산에 사용되지 않고 보다 사실적으로 사용자에게 보여주는 기능으로 3D Max와 같은 그래픽적인 요소와 쉽게 결합하여 사실성을 강조할 수 있으며, 충돌 형식은 가상 로봇과 환경의 실제 충돌 등과 같이 물리적 계산에 사용되는 영역을 보여주는 기능이다.
시뮬레이션을 수행할 때 가상로봇의 센서가 영향을 미치는 영역을 3차원 환경에서 보여주기 위하여 <그림7>과 같은 SceneTree 기능이 제공된다. SceneTree 기능은 가상 로봇을 이용하여 시뮬레이션시 센서의 거리 또는 감지되었을 때의 반응 등을 실시간으로 모니터링 하고자 할 때 사용할 수 있다. 즉, 오프로스 컴포넌트를 검증하거나 확인이 필요할 때 센서가 제대로 동작하는지 등을 실시간으로 확인 및 검증할 수 있는 기능이다.
또한 시뮬레이터는 가상 로봇의 조인트, 프레임의 회전 상태, 각 바디의 이름 및 회전 각 등은 로봇 알고리즘의 검증에 있어서 중요한 정보이다. 이러한 정보를 위해서 <그림8>과 같이 가상 로봇이 얼마나 회전되었는지, 바디는 어느 위치에 있는지 등을 확인할 수 있는 정보를 제공한다.
시뮬레이터 및 뷰어는 이 밖에 다양한 기능을 제공하여 오프로스 사용자에게 보다 편리하고 쉽게 가상로봇을 구동할 수 있는 기능과 테스트 하고자 하는 컴포넌트의 정확성 여부를 쉽게 확인 할 수 있는 기능을 제공한다.

 

 

3. 로봇 빌더 및 환경 빌더
로봇 빌더는 시뮬레이터에서 사용될 가상 로봇을 설계하는 툴이며, 가상 로봇을 설계하기 위해서는 설계할 로봇의 형상 및 사용될 센서와 구동기 등을 실제 로봇처럼 사용할 수 있는 기능을 제공한다.
사용자가 쉽고 빠르게 로봇을 설계하기 위한 로봇 빌더는 다양한 뷰어를 제공한다. 그래픽적인 형상을 보여주는 창과 로봇의 구조적인 관점에서 설계를 할 수 있는 다이어그램 편집기, 로봇의 각 바디의 속성을 보여주는 속성창, 그리고 로봇의 구조를 트리형태로 보여주는 창 등으로 구성된다.
가상 로봇의 설계를 보다 편리하고 쉽게 하기 위한 다이어그램 편집기 <그림 9>는 로봇의 구조를 이용하여 보다 쉽게 설계할 수 있는 편집기능이다. 즉, 로봇이 필요한 모듈들의 관점에서 쉽게 설계하기 위한 툴로서, 일반 모바일 로봇 및 다관절 로봇 등을 쉽게 설계할 수 있도록 도와준다.
기본적인 로봇의 설계가 되었다면 각 로봇의 물성치 값들을 설정해야 한다. 이 물성치 값은 로봇의 무게 또는 마찰계수 등과 같이 시뮬레이션시 실제 로봇처럼 동작되도록 하는 값들을 의미한다.
이러한 값들이 잘 설정 된다면 시뮬레이션시 실제 로봇과 유사한 형태로 동작된다.
하지만 사용자가 이러한 물성치 값을 입력하기 위해서는 많은 어려움이 따른다. 이러한 어려움을 보다 쉽게 설정하기 위한 물성치 입력 마법사를 제공한다. <그림10>의 물성치 입력 마법사는 일반적인 환경에서 로봇이 가지는 물성치 값을 환경에 맞게 입력되도록 하기 위한 기능으로써, 다양한 조건의 환경에서 사용되는 물성치 값이 계산되어 있다.
지금까지는 시뮬레이션에 필요한 가상 로봇을 보다 편리하고 쉽게 설계하기 위한 툴로서 소개 되었다면, 가상 로봇이 구동될 환경을 설계하기 위한 환경 빌더를 소개한다.
환경 빌더 <그림11>은 시뮬레이터에서 가상로봇이 동작될 환경을 설계하는 툴로서, 실제 환경을 꾸미기는 많은 비용과 시간 그리고 노력이 필요하지만 시뮬레이터상에서는 보다 쉽고 빠르게 환경을 구성하여 로봇을 구동 및 테스트할 수 있는 기능을 제공한다.
환경 빌더는 로봇 빌더와 동일한 기본 기능을 제공하며, 로봇 환경에 필요한 다양한 모듈을 제공하여 보다 쉽게 환경을 구축할 수 있다. 또한 한번 설계된 모듈은 재사용이 가능하여 재사용성이 높은 툴이다.

 


4. RILS(Robot in the Loop Simulation)
RILS는 하나 이상의 실제 로봇 시스템이 시뮬레이션 상에서 가상로봇과 동시에 동작하는 시뮬레이션 기법을 말한다. 기본적으로 RILS는 HILS(Hardware in the Loop Simulation)을 기반으로 하지만 대상이 H/W 부품 단위가 아니라 로봇시스템이라는 차이가 있다. HILS란 실제 실험을 통해 하드웨어를 검증하기 어려운 환경에서, 시뮬레이션으로 구성된 가상환경과 하드웨어를 연결하여 시뮬레이션의 가상환경 상에서 하드웨어를 검증할 수 있는 기법이다. RILS는 기본적으로 HILS의 장점을 수용하지만 좀 더 복잡하고 큰 규모의 로봇시스템의 검증에 유용하다. 예를 들어 로봇의 동작을 검증하기 위한 환경구성이 어려운 경우, RILS를 통해 실제로봇은 시뮬레이션의 가상환경에서 동작할 수 있으며, 복수의 로봇이 동시에 동작하는 멀티로봇 시스템에서 소수의 실제로봇과 다수의 가상로봇이 시뮬레이션에서 동시에 동작할 수 있다.
RILS는 실제로봇의 동작이 시뮬레이션에 포함되어 동작하는 특징을 지니기 때문에, 실제로봇의 동작이 시뮬레이션 환경에서 재현되어야 하며 이를 위해 모델링된 로봇을 아바타로봇이라 한다. 아바타로봇은 <그림12>와 같이 실제로봇의 외형적 모습과 하드웨어의 종류 및 위치까지 동일하게 모델링되며 실제로봇의 동작을 시뮬레이션 상에서 재현한다.
아바타로봇은 기본적으로 일반적인 시뮬레이션 가상로봇과 동일하지만 활용에서 차이가 있다. 실제 시뮬레이션을 위한 가상로봇은 오프로스 컴포넌트 수행에 따라 자체적으로 동작을 수행하는 특징이 있다면, 아바타로봇은 실제로봇의 물리적 특성이 재현되므로 동기화 모듈에 따라 수동적으로 제어되는 특징이 있다.
<그림13>에 HIL(HW in the Loop) 드라이버는 오프로스 컴포넌트의 디바이스 드라이버 레벨에서 실제로봇과 아바타로봇의 동기화를 수행한다. 따라서 HIL 드라이버는 시뮬레이션의 아바타로봇과 실제로봇에 동시에 접근제어를 수행하며 실제로봇과 아바타로봇을 동작 및 보정한다. <그림13>의 예시는 WheelController, LaserScanner, RobotControl 컴포넌트로 구성된 로봇응용의 RILS 수행시의 구조를 보여준다. 이는 실제로봇의 액추에이터와 아바타로봇의 레이저 스캐너를 이용하여 오프로스 시뮬레이터에 존재하는 아바타로봇을 동작시킨다. WheelController 컴포넌트는 실제로봇과 아바타로봇 주행의 동기화를 위해 디바이스 드라이버로 HIL 드라이버를 사용한다. HIL 드라이버는 실제환경에서 주행하는 실제로봇의 주행정보를 이용하여 오프로스 시뮬레이터의 아바타로봇을 동작시키며, 실제로봇의 주행정보를 기반으로 아바타로봇의 주행을 보정한다. 이와 달리 LaserScanner 컴포넌트는 실제 센서정보를 이용하는 대신 오프로스 시뮬레이터의 센서를 사용하므로 시뮬레이션의 센서와 통신하기 위한 센서 디바이스 드라이버를 사용한다. 결과적으로 로봇응용은 실제로봇의 주행정보를 이용하여 시뮬레이션 환경에서 아바타로봇을 동작시키지만, 아바타로봇의 가상센서정보를 통해 다시 실제로봇의 주행을 변경하게 된다.
이와 같이 실제로봇의 하드웨어 장치와 시뮬레이션과의 연결을 통해 RILS가 동작할 수 있다. RILS를 통해 사용자는 실제로봇을 이용하여 다양한 시뮬레이션 환경에서 로봇시스템을 검증할 수 있다. 또한 소수의 실제로봇과 다수의 가상로봇이 시뮬레이션에서 동시에 동작하는 멀티로봇시스템을 RILS로 검증할 수 있다.

 

<필 자>              
강원대학교 박홍성, 김성훈
한국전자부품연구원 경동욱, 정학성, 전세웅

문정희 기자
로봇시대의 글로벌 리더를 만드는 로봇기술 뉴스레터 받기
전문보기
관련 뉴스
의견나누기 회원로그인
  • 자동등록방지