ISO TC299 WG6 회의에서 서비스 로봇 모듈화 국제 표준 추진
글_ 박홍성 교수, 강원대학교 전기전자공학과
현재 대부분의 산학연 기관에서는 모듈화 개념을 사용하고 있다. 하지만, 모듈의 상호운용성 및 상호 교환성에 대해서는 고려하지 않고 있다. 더구나, 모듈에 대한 설명과 모듈들을 구분할 수 있는 어떠한 방법도 제공하지 않는다.
이러한 문제로 인해 로봇용 모듈들은 사용성, 제품화 및 유지보수에 문제를 안고 있다. 물론, 이러한 문제는 현재 학계 및 연구계에서 많이 사용하고 있고 국내의 산업계에서도 많이 활용하고 있는 미들웨어의 하나인 ROS(Robot Operating System)에서도 발생한다.
ISO TC299 WG6 모듈화 표준
이러한 문제를 해결하고자 ISO TC299 WG6에서는 모듈화 표준을 만들고 있으며, 이 표준은 로봇용 모듈의 상호운용성 및 상호교환성과 모듈들의 제품화를 지향하고 있다.
현재 WG6에서는 국제 표준으로 “ISO 22166-1 서비스 로봇 모듈화 – 제 1 부 일반요구사항”이 표준화되었고, 이를 기반으로 “DIS 22166-201 서비스 로봇 모듈화 – 제 201부 공통정보모델”이 FDIS(최종국제표준안; Final Draft International Standard)를 준비 중에 있다. 또한, “CD 22166-202 서비스 로봇 모듈화 – 제 202부 소프트웨어 모듈용 정보모델”이 DIS(국제표준안; Draft International Standard)를 준비 중에 있다.
제 1부 일반요구사항은 국내의 전문가들이 많은 기여를 하였고, 제 201부 및 제 202부는 국내 전문가가 프로젝트 리더가 되어 이끌고 있다. 제 201부는 2023년 또는 2024년 초에 IS(국제표준; International Standard)가 가능할 것으로 예상된다. 그리고, 제 202부는 2024년에 FDIS까지 완료될 것으로 기대된다. 이렇게 되면 소프트웨어 모듈 관점에서 상호운용성 및 상호교환성을 제공하는 표준이 처음 만들어지는 것이고, 이에 대한 효과는 산업용 로봇을 포함하여 자동화 시스템에 많은 긍정적 영향을 줄 것이다.
*. ISO에서 국제표준을 제정하는 절차는 일반적으로 제안부터 발간까지 다음과 같은 6단계를 거쳐 표준으로 발간된다. 먼저, 준비단계에서 신규작업표준안(NP; new proposal)를 거쳐 작업초안(WD; working draft)이 마련된다. 이후 본격적인 표준 단계가 시작된다. 본격적으로 위원회 초안(CD; committee draft)을 거쳐 국제표준안(DIS; draft international standard)이 되고, 승인단계인 최종국제표준안(FDIS; final draft international standard)를 거쳐 최종 국제표준(IS; international standard)으로 발간(출판)된다.
[NP(신규작업표준안) -> WD(작업초안) -> CD(위원회초안) -> DIS(국제표준안) -> FDIS(최종국제표준안) -> IS(국제표준)]
(편집자 주)
ROS 미들웨어간의 연동 지원
현재 국가 표준으로 제정되어 있는 일본의 RTC(Robot Technology Component), 한국의 OPRoS (Open Platform for Robotic Services) component와 국제적인 사실상 표준으로 간주하고 있는 ROS(Robot Operation System)들간 연동도 표준으로 지원할 예정이다. 현재 제 202부에서는 정보모델을 기반으로 ROS와 openRTM에 대한 연동 방식을 제공한다.
*. ROS는 사실상의 표준이라기보다는 표준 문서는 DDS만 존재하고 있고, 그 외의 표준 문서가 없으므로 표준이라고 언급하는 것도 이상하지만 많이 사용하는 미들웨어이므로 적절한 용어가 없음.
(저자 주)
여기서 정보모델이라고 하는 것은 모듈이 로봇에 사용될 때 필요한 정보들을 저장하는 방식을 모델링한 것을 의미한다. 이러한 정보들에는 모듈의 설명, 제조자, 식별자, 모듈에서 사용하는 변수(예, ROS의 토픽), 모듈에서 제공하는 서비스(예: ROS의 서비스), 시뮬레이션 모델, 사용하는 통신 인터페이스, 미들웨어 및 데이터베이스, 모듈의 실행 방법 등이 있다. 물론 하드웨어적으로도 모듈의 크기, 모듈의 마운트 방법 등의 정보를 제공할 수 있다.
이러한 정보들은 모듈 기반으로 로봇 혹은 모듈의 조합을 만들 때 유용하다. 먼저 소프트웨어 관점에서 보면 다음과 같이 설명할 수 있다. 현재는 로봇을 개발할 때 대부분이 소스코드를 활용하여 개발하거나 상용 라이브러리를 구입해 그 라이브러리를 활용하는 소스코드를 개발하고 있다. 즉, 현재는 모듈들로 개발하고 있지만, 개발된 소프트웨어 모듈들을 모두 컴파일 및 링크를 통해야만 실행할 수 있다. 이는 독립적인 모듈들이 서로 의존적인 형태로 개발되어 활용성에 있어서 제약을 가지고 있다는 의미이다.
이러한 독립적 모듈들을 실행 파일 형태로 제공하면, 별도의 컴파일 및 링크 과정 없이 수행할 수 있으므로 매우 이득이 크고, 문제가 생기면 해당 파일에서 수정만 하면 된다. 즉, 활용성에 있어서 많은 장점이 존재한다. 그러나 이 경우에는 필요한 정보(예: ROS의 경우 토픽, 서비스 등의 정보)가 제공되지 않으면 활용성에 있어서 역시 제약이 있으므로, 이 제약을 없애기 위하여 정보모델을 통하여 관련 정보를 제공하고 있다. 이러한 정보는 실제로 매뉴얼로 제공되기는 하지만, 모듈의 실행 파일에 포함되어 제공되므로 해당 정보는 모듈을 폐기할 때까지 계속 사용할 수 있다.
“모듈 기반이 되면, 전문가가 아니더라도 로봇 소프트웨어를 개발할 수 있다. 전문가들은 로봇 관련 모듈들을 만들어 판매하고, 로봇 운영자나 제작자들은 모듈이나 도구를 활용하여 제작이 가능하다. 이러한 개발 방식의 패러다임이 변경되면, 다양한 사람들이 다양한 종류의 로봇을 개발할 수 있으므로 인력 문제도 해결할 수 있다.”
– 박홍성 강원대학교 교수
모듈 기반으로 로봇 SW 개발이 쉬워진다
이러한 내용이 기존 방식과 차이가 있다. 이러한 정보모델을 활용하여 모듈들을 그림 1과 같이 로봇에 배치하면 로봇의 소프트웨어 구성이 완료되므로 매우 편리하다. 즉, 모듈들을 로봇에 배치하여 다운로드하고 수행시키면 로봇이 동작한다. 물론 모듈들을 다운로드하기 전에 로봇의 시뮬레이터에 다운로드하여 수행시킬 수 있다.
그림 1에서 육각형은 로봇 혹은 에지(Edge) 서버 관련 하드웨어 관점의 모듈을 표시하고, 노란색 원은 로봇 소프트웨어 모듈이고, 녹색 원은 에지 서버에서 동작하는 소프트웨어 모듈로, 모두 정보모델을 제공하고 있다. 소프트웨어 모듈이 장착된 로봇 혹은 에지 서버는 조합 모듈로, 같은 하드웨어이더라도 사용되는 소프트웨어 모듈의 종류에 따라 모듈 식별자가 달리 설정될 수 있다.
로봇에 들어가는 소프트웨어 모듈은 왼쪽의 메뉴에서 선택하여 관련 로봇 혹은 에지 서버에 드래그 앤 드롭 방식으로 넣으면 배치된다. 모듈 기반이 되면 기존의 소프트웨어 개발 방식보다 훨씬 진보된 방식을 사용할 수 있으며, 전문가가 아니더라도 로봇 소프트웨어를 개발할 수 있는 장점이 있다. 전문가들은 로봇 관련 모듈들을 만들어 판매하고, 로봇 운영자 혹은 제작자들은 모듈이나 그림 1과 같은 도구를 활용하여 제작하면, 개발 방식의 패러다임을 변경하여 다양한 사람들이 다양한 종류의 로봇을 개발할 수 있게 함으로 인력 문제도 해결할 수 있게 한다.
그림 1에서 모듈을 배치하면, 모듈들의 작동 여부를 검증하고, 이를 위해 정보모델이 필요하다. 정보모델에서 제공하는 정보들을 활용하여 모듈들이 필요한 내용(토픽, 서비스 등)들이 모두 있는지 혹은 문제가 있는지 알 수 있다. 문제가 없다면 다운로드하여 수행시킨다.
수행 중에 해당 모듈의 업데이트가 필요하면, 모듈 식별자를 활용하여 로봇들에 해당 모듈이 있는지 확인하여 업데이트를 진행할 수 있다. 이 경우 모든 로봇 프로그램을 업데이트하는 것이 아니고 해당 모듈만 원격에서 업데이트할 수 있다.
모듈의 종류로는 크게 기본 모듈, 조합 모듈로 나누어지면, 조합 모듈의 예에는 모바일(mobile) 모듈, 매니퓰레이터(manipulator) 모듈, 내비게이션(navigation) 모듈 등이 있다. 참고로 로봇 역시 조합 모듈이다. 조합 모듈 역시 모듈 식별자를 가진다. 모듈 식별자에는 버전도 포함되어 있어, 로봇에 포함된 식별자를 보면 업데이트 버전의 사용 여부도 알 수 있다. 이러한 내용은 현재 스마트폰의 버전 관리와 유사하다고 보면 된다.