본문 바로가기

이슈&리포트

로봇 시스템 개발을 위한 로봇 소프트웨어 살펴보기(下)

로봇 시스템 개발을 위한
로봇 소프트웨어 살펴보기(下)

로봇 시스템 개발을 위해서는 운영체제에서부터 시스템 구성을 위한 시뮬레이션까지 다양한 분야의 소프트웨어들이 필요하다. 이 소프트웨어들은 각자의 영역에서 각자의 역할을 다하며 로봇 시스템 개발에 일조하고 있다. 본지에서는 로봇 시스템 개발과 관련된 다양한 소프트웨어들을 소개하고자 한다. 소개될 각각의 소프트웨어들은 개연성을 떠나 다양한 방면의 로봇 개발자들의 관심을 끌 것으로 예상된다.


범용PC를 사용한 지능형 이동로봇의 개발

로봇 개발을 쉽게 해주는 범용PC
이동로봇용 소프트웨어 툴은 최근 ROS, RT Middleware 등이 있으며, 여러 연구실에서 실장하고 있다. 과거 학창시절 지능이동 로봇을 구축하기 위해 개발한 SSM, SH-Spur은 목적에 따라 다른 구성의 로봇을 범용PC를 사용해서 쉽게 구성하는 것을 목적으로 개발했다. 

Tsukuba 대학, 독자 OS 및 모듈화 시스템 개발
로봇의 연구 개발은 기계, 회로, 소프트웨어 등 다양한 분야의 지식과 경험이 필요하다.
대학에서 로봇을 연구할 때, 단기간에 연구개발을 효율적으로 이룩하는 툴의 개발은 매우 중요하다.
Tsukuba 대학 지능로봇 연구실에서는 독자 OS 및 모듈화 시스템을 개발해 연구에서 얻은 지식을 모듈에 축척해 쉽게 안정된 이동로봇을 구성할 수 있었다.

Tsukuba 대학의 범용PC를 이용한 이동로봇 개발
범용PC를 이용한 이동로봇의 실현을 위해서는 ▲프로세스 단위의 모듈화 ▲다수의 센서를 센서퓨전에 대응 ▲로봇의 크기 등의 변경에 대한 대응 ▲장착이나 보수가 쉬울 것 등을 중시해야 한다. 또한 자율이동로봇은 다수의 센서를 이용해 다수의 기능을 필요하게 되는데 이때 과제가 되는 것은 △센서 데이터를 얻기 위한 통신 프로그램의 실장 △복수 프로그램에 의한 센서 데이터의 이용 △관측시각의 어긋남에 따른 맵핑의 부정합 △고속으로 갱신되는 센서 데이터 등을 들 수 있다.

· SSM을 통한 센서 데이터 추상화
센서 데이터의 타입은 센서마다 다르지만 거의 주기적으로 계측 데이터가 흘러 들어오는 것은 공통이다. SSM(Sensor Sharing Manager)에서는 모든 센서 데이터를 관측시각과 데이터 및 크기를 추상화해 관리한다.

· 센서 데이터 기억 후 위치정보 갱신
SSM에서 데이터를 추상화시켜 취급하기 위해 데이터의 해석이 불필요한 처리에 대해서는 공통화할 수 있다. 또한 시각탐색이나 지정된 데이터의 기록·재생, 네트워크상에서 공유 등의 기능을 라이브러리나 UNIX 라이크 커맨드를 갖추고 있다.
공유 메모리를 이용하는 경우 문제가 되는 것은 액세스의 경합이다.
SSM에서는 센서 데이터를 기억하는 프로세스의 경우 센서 핸들러 뿐이므로, 기억시키는데 경합이 일어나지 않는다. 기억시키기와 읽기가 동시에 일어나는 경우 최신 데이터 위치를 넘어 읽지 않도록 하고 또 센서 데이터의 기억 후 최신 데이터의 위치정보를 갱신하면 읽기와 기억시킴 사이에 충돌은 일어나지 않는다.   

· 프로그램의 분리 실장
보통 로봇을 제어하는데 실시간 OS 등을 이용하는 것으로 생각하나 라이브러리나 드라이브의 이용은 특히 실시간성을 고려하지 않는 범용 OS를 사용하는 것이 쉬운 편이다. 속도 제어 등 비교적 고속제어가 필요한 경우에는 통상의 범용 OS는 적절하지 않다.
주행제어 프로그램을 PC측과 마이크로컴퓨터 측을 분리해 실장한다. 제어측면에서 이동 로봇의 주행제어계 요소는 차륜의 속도제어와 궤적추종의 위치제어계가 있다. 속도제어는 비례계산으로 취급하는 값의 영역도 유한하다. 차륜은 차체에 비해 관성이 작고 응답이 빠른 관계로 속도제어는 차체에 비해 미세한 제어 주기가 요구되며 위치 제어계 값의 영역은 무한이다.
japan.jpg

· 임의적인 데이터 지연
지도생성 처리에서는 외계센서의 계측시각과 추정위치의 계측시각이 동일해야 한다. 계측시효에 의해 데이터에 대응을 할 경우 같은 기계에 맞출 필요가 있다. 시리얼통신을 개입해 정보를 취득하기 때문에 PC측에 시각을 기억시킬 경우 시리얼통신에 의한 지연과 콘텍스트스위치에 의한 지연이 있다.


지능형 이동로봇 구성에 유리한 Tsukuba 대학의 시스템
소개하는 시스템은 파라미터의 파일을 변경함에 따라 여러 크기의 로봇에 대응이 가능하다. 40㎝에서 수 m 정도의 로봇 주행제어계에 적용되고 있으며 위치 추정이나 지도생성, 장애물 검지에 있어서도 추정 위치를 근거해 외계 센서 데이터를 세계좌표계로 변환, 쉽게 맵핑할 수 있다.
범용PC를 사용한 지능형 이동로봇을 구성하기 위해 모듈 실장과 함께 계측시각 관리를 축으로 움직이면서 계측하는 장치의 개발을 쉽게 했다.
소프트웨어 라이브러리 등 구체적으로 실장된 소프트웨어는 설계자가 생각한 조건에서 필요하다고 생각하는 기능을 실현한 것이다.

tukuba.jpg
Choreonoid를 위한 ‘graspPlugin’

        
로봇 소프트웨어 ‘graspPlugin’이란?
‘graspPlugin’은 로봇암 선단에 핸드가 부착된 구조의 로봇에 대해 파지계획, 궤도계획, 작업계획 등 여러 계획업무를 할 수 있는 소프트웨어이다. 이는 로봇의 스펙이나 작업 목적에 대응해서 확장이나 커스트마이징이 되도록 설계되어 로봇용 통합 GUI환경인 Choreonoid의 플러그인으로 개발됐다.

graspPlugin을 이용한 로봇 개발
파지계획은 대상물의 위치·자세와 형상, 로봇의 모델이 결정되면 로봇핸드에 의한 대상물의 파지자세를 결정한다. 여기서 파지자세란 손목의 위치·자세, 손가락 관절의 관절 변위에서 구성된다. 경로계획은 로봇의 초기 컨피그레이션과 목표 컨피그레이션이 주어질 때 이들 사이의 동작경로를 결정하게 된다. 로봇의 동작계획 문제는 응용의 범위나 로봇 종류의 증가로 다양한 처리를 수용할 수 있는 프레임워크가 필요하게 된다. 
graspPlugin에서 파지계획이나 경로계획의 표준적인 기능을 실장함과 동시에 이들 기능을 개발자나 이용자에 의해 치환 가능한 구조로 만들어 개발자는 전문부분에 대해 집중개발을 할 수 있어 경합을 피할 수 있다. 파지계획개발자는 관련된 관수만을 치환해 기존의 GUI를 그냥 사용할 수 있다.

여러 가지 플러그인
graspPlugin에서는 Grasp 플러그인과 PRM 플러그인이 파지계획, 경로계획의 표준기능을 제공하는 플러그인으로 작용한다. Grasp 플러그인은 다지 핸드의 여러 파지형태가 사용되며, 고속으로 파지형태를 계산할 수 있다. PRM 플러그인은 MPK에 포함되는 경로계획에 연결되어 있다.
Gripper Manipulation은 평행한 그리퍼의 지면(指面) 유연성을 고려해 픽 앤 플레이스의 동작계획을 실행하기 위한 플러그인이다. graspPlugin에는 전부 11종이 있다.
GraspConsumer 플러그인은 NEDO의 차세대 로봇 지능화 기술개발 프로젝트에서 개발한 핸드파지동작 모듈을 조작하기 위한 Open RPM 컨슈머를 제공한다. Robot Interface 플러그인은 같은 프로젝트의 SubWG에서 정한 로봇 암이나 듀얼 암 로봇의 공통 I/F에 대응하는 로봇조작을 위한 인터페이스이다.  

로봇 시뮬레이션 기능 지원
계획문제의 초기 상태나 목표 상태는 유저인터페이스를 경유하면 대부분 유연하게 바꿀 수 있다. Choreonoid에 표준으로 준비되어 있는 기능으로써 현재의 로봇 링크의 위치나 관절각도의 수치를 화면상에서 확인할 수 있다. 또한 생성된 동작의 도중경로를 화상으로 씬-뷰 상에 순차적으로 표시해 확인 가능하며 수치와 화상 양방향에서 동작확인이 된다.
Grasp 플러그인을 사용한 휴머노이드 로봇 HRP 3P에 탑재된 다지 핸드의 경우 여러 파지형태가 있는데 각각의 파지 형태에 따라 정수 파일을 준비하는 것만으로도 조건에 맞는 파지 형태를 선택해 파지할 수 있다.
한편 PRM 플러그인을 사용해 초기 자세부터 파지 자세까지 로봇의 동작경로를 계획할 수 있다. 또한 초기자세, 목표자세에 더해 도중에 경유하는 자세를 프로그램 상의 관수나 GUI로 지정할 수 있다. 더불어 로봇이 물체를 파지한 상태로 동작할 때 파지물체도 간섭 판정에 포함해서 경로를 형성할 수 있다.

후발주자지만 다양한 이점 갖춰…
복수의 플러그인을 조합해 사용하는 경우는 듀얼 암 로봇 HiroMX에 의해 픽 앤 플레이스의 동작을 계획한 사례가 있다. 지정한 대상물을 지정한 장소에 두는 동작을 필요에 의해서 양손으로 바꾸어 가며 실행하고 동작경로에 장애물이 존재하면 이를 피하는 경로를 생성하게 된다. 
graspPlugin for Choreonoid는 전부 공짜로 공개하고 있다. 공개할 때 라이센스는 Choreonoid 본체의 라이센스 형태에 따라 LGPL ver.2로 한다. 상세한 설명은 http://choreonoid.org/GraspPlugin/에서 볼 수 있다.
유사 소프트웨어에 비해 늦었지만 많은 이점을 가진 소프트웨어이다. 중요한 이용자는 공동연구를 실행하는 기업이나 연구 그룹에 소속된 학생, 연구원으로 연구그룹의 소프트웨어의 효율화에 이바지하고 있다.
*본 원고는 지면상의 이유로 재편집되었으며, 원문 열람 희망 시 이메일(makyuha@chol.com)로 문의주시기 바랍니다.
ki.jpg

※ 출처 : EngNews (산업포탈 여기에) - 로봇 시스템 개발을 위한 로봇 소프트웨어 살펴보기(下)