머리말
RT 미들웨어는 기능 요소인 컴포넌트를 조합함으로써 기능을 추가하거나 변경하는 컴포넌트 지향 시스템 개발을 가능케 하는 것이다. 그러나 RT 미들웨어 콘테스트의 취지에서도 설명되어 있듯이 ‘필요한 부품이 갖춰져 있지 않으면 개발자에게는 RT 미들웨어에 대응하는 시간이 늘어날 뿐이어서 도입을 주저하게 되어’, ‘로봇 기술 공유와 축적을 꾀하기 위해 유익한 컴포넌트를 확충’하는 것이 필수적이다. 즉, RT 미들웨어는 개발자와 많은 유저의 공헌이 있어야만 발전해 나갈 수 있다. RT 미들웨어 콘테스트는 그것을 위한 유용한 장이다. 실제로 RT 미들웨어 콘테스트를 통해 컴포넌트뿐 아니라 RT 미들웨어를 보다 편리하게 사용하기 위한 툴 등 다양한 작품이 공개되었으며 필자도 1회부터 4회 및 6회 RT 미들웨어 콘테스트에 출품했다.
여기서는 앞으로 더 많은 사람이 RT 미들웨어 콘테스트에 참가해 각각의 참가자 관점에서 RT 미들웨어에 영향을 주는 작품을 제안할 것을 기대하고 지금까지 필자의 수상 작품에 대해 발상에 이른 경위와 그 내용을 소개한다. 또한, 마지막으로 향후 콘테스트 참가를 검토하고 있는 사람들이 참고하도록 RT 미들웨어 콘테스트에서 얻은 소감을 설명한다.
콘테스트 작품과 콘셉트
1. 캘리브레이션 지원 컴포넌트군
제1회 RT 미들웨어 콘테스트에는 당시 연구를 진행했던 공간에 매입된 센서가 서로 정보를 주고받음으로써 공간 내 현상을 인식하고 그 정보에 기초해 액추에이터가 사용자에게 정보적, 물리적 서비스를 제공하는 ‘지능화 공간’과 관련된 컴포넌트군을 출품했다. 이것은 네트워크를 통한 분산 기기, 컴포넌트의 연계가 가능한 RT 미들웨어가 지능화 공간에 적합하다고 판단했기 때문이다. 따라서 제1회 콘테스트에서의 작품 테마는 ‘RT 미들웨어의 이점을 살린 시스템 개발’로 했다.
이 콘테스트에서는 지능화 공간의 요소 중에서도 센서 캘리브레이션에 착안한 지능화 공간을 구축해 나갈 때에는 각 센서의 좌표계(로컬 좌표계)에서 얻어진 데이터를 지능화 공간의 좌표계(월드 좌표계)로 변환하기 위한 캘리브레이션이 필요하므로 다수의 센서를 캘리브레이션할 때 많은 시간과 노력이 필요하다는 문제가 있었다. 그래서 이 작업을 효율화하기 위해 분산 레이저 레인지 파인더(LRF)의 캘리브레이션 지원 기능을 RT 컴포넌트군으로서 개발했다.
그림 1과 그림 2는 컴포넌트군의 이용 예이다. 개발한 컴포넌트는 정밀도가 높고 절대적인 위치와 자세를 추정할 수 있는 캘리브레이션 객체를 이용한 수동 캘리브레이션이나 2대의 LRF 관측 영역의 겹침과 그 영역 내의 이동체의 위치 계측 결과를 이용한 LRF 간 상대적 위치·자세의 자동 캘리브레이션 등 다양한 캘리브레이션 방법에 적용할 수 있게 되어 있다. 또한, 캘리브레이션 처리뿐 아니라 LRF, 이동물체 트래킹과 같은 각 기능 요소에 관해서도 컴포넌트화하여 각 요소 기능의 컴포넌트에 관해서도 기능화 공간의 기본 용도로써 이용할 수 있도록 했다. 그러나 이것은 당시 컴포넌트의 축적이 충분하지 않고 다른 개발자가 작성한 컴포넌트를 재이용하는 것이 어려웠던 것도 이유였다.
▲ 그림 1. 캘리브레이션 객체에 의한 LRF 캘리브레이션
우선 글로벌 좌표계를 이미 알고 있는 장소에 캘리브레이션 객체를 두고,
그 좌표를 입력 컴포넌트에서 입력한다. 한편, LR F 및 위치 추정 컴포넌트가
LRF 좌표계에서 캘리브레이션 객체의 위치를 계측한다. 입력한 위치와 계측한
위치의 대응점 정보가 2 쌍 이상 갖춰지면 캘리브레이션 컴포넌트가 LRF의
글로벌 좌표계에서의 위치와 자세를 출력한다. 또한, 좌표 변환 컴포넌트는
계산 후의 결과 표시를 위한 것이다.
▲ 그림 2. 사람 트래킹에 의한 LRF 캘리브레이션
사람이 LRF 관측 영역이 겹치는 2개의 부분을 이동하면 2개의 LRF
및 위치 계측 컴포넌트가 각각 L R F 좌표계에서의 사람 위치를
계측한다. 캘리브레이션 컴포넌트는 이 2개의 좌표계에서의 동일
물체 위치 대응 관계로부터 2개의 LRF의 상대적인 위치와 자세를
출력한다.
RT 미들웨어는 이 콘테스트에서 처음으로 이용하게 되었지만, 네트워크 프로그래밍이 불필요하다는 장점 등 편리한 부분이 있는 반면, 인스톨 작업 등 환경 구축에 수고가 필요하고 재이용성을 이점으로 들 수 있지만 재이용 가능한 컴포넌트가 충분히 준비되어 있어야 하는 문제가 있다고 느꼈다.
2. 범용 입출력·정보처리 컴포넌트군
제2회부터 제4회까지 RT 미들웨어 콘테스트에서는 제1회 참가 당시의 경험을 살려 재이용성이 높은 컴포넌트 개발을 목표로 했다. 그래서 ‘특정 애플리케이션을 대상으로 하는 것이 아니라 범용적이고 폭넓은 용도에 이용할 수 있는 기본 컴포넌트 개발’을 작품 테마로 설정했다.
특히, 컴포넌트 동작 확인, 이상 발생 시의 원인 조기 발견, 다양한 데이터 처리 방법의 비교 검토, 동작 명령 생성과 같은 RT 컴포넌트에 의한 시스템 개발, 운영에서 폭넓게 요구되는 입출력, 정보처리 기능을 제공하는 범용적인 기본 컴포넌트군을 준비하자고 생각했다. 그래서 뷰어 컴포넌트, 펑션 제너레이터 컴포넌트, 연산 컴포넌트를 출품했다. 또한, 이러한 기본적인 컴포넌트에서는 그것이 어떻게 재이용성이나 유용성이 있는지를 전달하는 것도 중요하기 때문에 과거 RT 미들웨어 콘테스트 작품과의 연계를 중심으로 한 구체적인 예를 제시하는 것을 목표로 했다.
뷰어 컴포넌트는 RT 컴포넌트의 출력 데이터를 가시화하기 위한 컴포넌트이다. 이 컴포넌트는 그래프 그리기 툴로서 널리 이용되고 있는 gnuplot를 이용하고 있으며, gnuplot의 명령을 그대로 이용할 수 있는 구성으로 했기 때문에 사용자는 다양한 플롯 기능을 쉽게 활용할 수 있다. 또한, 입력 포트의 동적 추가·삭제 기능이 있어 그리기 대상이 표준적인 가변 길이 배열형 데이터라면 그 형태나 개수와 관계없이 그릴 수 있게 되어 있다. 이 컴포넌트에 의해 LRF 스캔 데이터 및 3차원 거리 측정 카메라에 의한 거리 화상을 각각 표시한 결과가 그림 3이다.
▲ 그림 3. 뷰어 컴포넌트에 의한 데이터 가시화 예 :
(a) LRF 스캔 데이터, (b) 3차원 거리 측정 카메라의 거리 화상 뷰어
컴포넌트는 표시 대상이 되는 데이터의 형태나 표시 형식을 지정
함으로써 1개의 컴포넌트로 다종다양한 데이터를 시각화할 수 있다.
펑션 제너레이터 컴포넌트는 다양한 패턴의 입력 데이터를 생성할 수 있는 입력 데이터 생성 컴포넌트이다. 삼각함수, 지수함수, 대수함수와 같은 일반적인 숫자 함수와 사칙연산 등의 연산자, 원주율 등의 상수에 따라 식을 지정함으로써 대응하는 데이터 열을 출력 포트에서 출력할 수 있다. 또한, 다른 컴포넌트에서 입력된 데이터를 저장해 두고 그 데이터를 읽음으로써 저장한 임의의 데이터 패턴을 출력하는 기능도 갖고 있다. 이로써 그림 4와 같이 미리 센서 출력 등을 저장해 두고 센서 정보처리 컴포넌트의 동작을 동일한 입력 조건에서 처리 파라미터를 변화시키면서 테스트하거나 여러 개의 처리 컴포넌트의 성능을 비교하는 것도 가능하다.
▲ 그림 4. 펑션 제너레이터 컴포넌트에 의한 트래킹 컴포넌트의
파라미터 조정
펑션 제너레이터 컴포넌트로 미리 저장해 둔 센서 데이터를
출력함으로써 센서 정보 처리 컴포넌트의 동작을 동일 입력
조건에서 반복해 테스트할 수 있다. 여기서는 파라미터의 값을
변화시키면서 테스트를 실시해 소정의 결과를 얻을 수 있도록
파라미터를 조정했다.
연산 컴포넌트는 다양한 입력 데이터에 대해 필요에 따라 처리할 수 있는 컴포넌트이다. 이 컴포넌트로는 펑션 제너레이터 컴포넌트와 마찬가지로 숫자 함수에 의한 처리 내용을 기술할 수 있다. 또한, 입출력 데이터의 형태를 선택할 수 있기 때문에 데이터 형태의 변환도 가능하다. 이와 같이 범용 연산 컴포넌트가 데이터 형태 변환 기능을 가진다는 것은 입출력 데이터 형태가 다른 컴포넌트 간 접속을 가능케 하는 점뿐 아니라 연산 컴포넌트 그 자체가 다양한 컴포넌트로서 접속할 수 있다는 점에서 유용하다고 할 수 있다. 그림 3은 컴포넌트에 의해 화상 데이터에 대해 처리한 결과이다.
이와 같이 3회에 걸쳐 개발·운용 단계에서 이용할 수 있는 범용적인 컴포넌트를 출품해 왔다. 그 사이에 이외에도 다양한 컴포넌트가 개발되고 RT 미들웨어의 연산 방법도 정비되는 등 RT 미들웨어 이용 장벽은 낮아졌다. 따라서 앞으로는 요소 기능이나 툴뿐 아니라 RT 컴포넌트를 이용함으로써 무엇을 실현할 수 있는지, 또한 어떠한 이점이 있는지를 보여주는 애플리케이션 제시가 필요할 것이다.
▲ 그림 5. 화상처리에 연산 컴포넌트를 적용 : (a) 원래 화상,
(b) 상하좌우 반전 화상, (c) 2값 화상
연산 컴포넌트는 단위 연산, 좌표 변환, 데이터 형태 변환과 같은
로봇 시스템에서의 다양한 데이터 처리에 이용할 수 있다. 배열
데이터의 순서를 바꾸거나 역치로 값을 바꾸는 처리를 함으로써 이
예와 같이 화상 처리에도 적용할 수 있다.
3. RT에 의한 프레젠테이션 지원 컴포넌트군
지금까지 개발되어 온 RT 컴포넌트는 개발자의 연구 내용을 RT화하는 예가 다수였다. 또한, RT 미들웨어를 사용하기 쉽게 하기 위한 다양한 툴도 제안되었다. 그러나 이것들은 이미 RT 미들웨어를 이용하고 있는 사람을 대상으로 한 것이 대부분이었다. 실제 시스템에서도 동작하는 적용 실적, RT 미들웨어를 사용함으로써 공정이 단축되었다거나 유지보수가 쉬워진 사례도 중요하지만 RT 미들웨어 보급을 더 촉진하는 데 있어 새로운 연구자나 기술자가 도입하도록 촉진하는 것도 필요하다.
이를 위해서는 RT 미들웨어의 새로운 적용 가능성을 제시하기 위한 매력적인 애플리케이션에 기초한 시연이 필수적일 것으로 생각했다. 그래서 제6회 콘테스트에서는 ‘지금까지 RT가 사용되어 오지 않았던 대상에 RT 미들웨어를 적용함으로써 기존 이용자에게 RT 미들웨어의 새로운 적용 가능성을 제시하고 일반인, 교육자, 기술자와 같은 다양한 대상에 시연할 수 있는 시스템 제안’을 테마로 했다. 이러한 이유로 제6회 RT 미들웨어 콘테스트에서는 프레젠테이션을 제재로 하여 RT를 이용함으로써 효과적이고 매력적인 프레젠테이션을 실현하기 위한 컴포넌트군을 출품했다.
프레젠테이션은 슬라이드를 사용하는 것이 일반적이고, 그것이 필수로 되어 있는 경우도 있기 때문에 프레젠테이션 컴포넌트는 슬라이드 표시를 주요 기능으로 하고 있다. 그러나 슬라이드 페이지 변경이나 슬라이드 내에 강조하고자 하는 부분, 보충 사항을 그 자리에서 다시 할 수 있는 펜 기능 등을 이용하기 위한 인터페이스를 갖고 있어 다양한 RT 요소를 조합함으로써 기능을 확장할 수 있다.
RT를 이용한 프레젠테이션 실례를 나타낸 것이 그림 6과 그림 7이다. 그림 6은 레이저 포인터로 제시한 슬라이드 내 위치에 프레젠테이션 컴포넌트인 펜 기능에 의해 그린 것이다. 이 애플리케이션은 카메라 컴포넌트에서 얻어진 화상에 대해 처리 컴포넌트가 휘도 변화가 높은 점을 추출하고 다시 그것을 카메라 파라미터값을 이용해 슬라이드 상의 위치로 좌표 변환하여 프레젠테이션 컴포넌트로 송신한다. 그림 7의 애플리케이션은 스크린 아래쪽에 LRF를 설치하고 LRF 컴포넌트에 의해 얻어진 거리 데이터로부터 처리 컴포넌트가 스크린에 닿은 손의 위치를 계측함과 동시에 손의 위치와 움직임에 따라 슬라이드 페이지 변경이나 선 그리기 정보를 출력하고 있다.
▲ 그림 6. 레이저 포인터를 이용한 슬라이드 내에서의 그리기
카메라 컴포넌트에서 얻어진 화상에 대해 처리 컴포넌트가 휘도
변화가 높은 점을 추출하고 다시 그것을 카메라 파라미터의 값을
이용해 슬라이드 상 의 위치로 좌 표 변환하여 프레젠테이션
컴포넌트로 송신한다. 이로써 레이저 포인터의 슬라이드 상에서의
지시 위치를 검출하여 선을 그리고 있다.
▲ 그림 7. LRF를 이용한 손동작에 의한 슬라이드 동작 스크린 아래쪽에
설치한 L R F 컴포넌트에 의해 얻어진 거리 데이터로부터 처리 컴포넌트가
스크린에 닿은 손의 위치를 계측함과 동시에 손의 위치와 움직임에 따라
슬라이드의 페이지 변경이나 선 그리기 정보를 출력하고 있다.
맺음말
지금까지 필자의 RT 미들웨어 콘테스트 작품에 대해 설명했다. 제1회 콘테스트에서는 RT 미들웨어를 지능화 공간에서의 센서 캘리브레이션에 적용해 RT 미들웨어의 이점을 살린 확장 가능한 시스템 기능을 구축했다. 제2회부터 제4회 콘테스트에서는 제1회 콘테스트에서 작품의 중심 부분뿐 아니라 보조적인 컴포넌트도 모두 스스로 작성해야 했기 때문에 범용적인 입출력 및 정보처리를 하는 기본적인 컴포넌트를 개발했다. 제6회 콘테스트에서는 RT 미들웨어를 더 보급시키는데 공헌하기 위해 RT를 이용한 프레젠테이션이라는 새로운 애플리케이션을 제안했다. 각각의 작품에서 개발 콘셉트도 변했지만, 이것들은 RT 미들웨어를 사용한 경험에서 생겨난 것이다. 이러한 RT 미들웨어 사용자의 의견을 반영한 작품을 널리 공개해 발표장이나 공개 사이트를 통해 RT 미들웨어 개발자나 다른 사용자와 의견을 교환할 수 있는 점이 이 콘테스트의 특징이라고 생각한다.
또한, 필자 자신이 초기 RT 미들웨어 이용에 힘이 들었던 경험이 있어 모든 작품을 통해 상세한 매뉴얼을 제공함과 동시에 가능한 한 다른 라이브러리 등을 인스톨하는 등의 환경 구축 수고를 덜도록 했다. 이것은 출품 작품의 성격상 초보자도 쉽게 이용할 수 있는 작품으로 만들고 싶었기 때문이기도 하지만 매뉴얼이나 웹사이트 정보의 충실은 다른 대부분의 수상 작품에 대해서도 해당되는 것으로 RT 미들웨어 콘테스트에서의 작품 평가의 큰 요소가 되고 있다. 또한, 제2회부터 제4회까지의 콘테스트 작품과 같이 여러 개의 컴포넌트로 이루어진 대규모 시스템이나 다기능 툴이 아니라 하나의 컴포넌트라도 아이디어가 공감을 불러일으키면 높은 평가를 얻을 수 있다.
佐々木 毅 시부야공업대학
本 記事는 日本 「計測自動制御學會」가 發行하는 「計測と制御」誌와의 著作權協定에 依據하여 提供받은 資料입니다.
게재월 | 2014 - 03
1035562
0