상기 목적을 달성하기 위한 본 발명은, 지능형 로봇을 위한 컴포넌트 기반 소프트웨어 구조에서, 작업 계획을 실제로 수행하는 제어 로직과 비교적 시간이 많이 소요되는 알고리즘 서비스가 위치하는 시퀀싱 층의 구조에 있어서, 외부 환경 및 입력 정보를 인식하는 인식 모듈; 사용자의 발화문으로부터 일정 규칙을 기반으로 하여 사용자의 의도를 파악하는 추론 모듈; 로봇의 움직임을 제어하는 동작 모듈; 및 로봇이 사용자에게 제공하는 특정 서비스를 수행하는 콘텐츠 모듈을 포함하는 것을 특징으로 한다.
이하, 본 발명의 지능형 로봇을 위한 컴포넌트 기반 시퀀싱 층 소프트웨어 구조의 도출 과정 및 그 구조를 첨부된 도면을 참조하여 설명한다.
본 발명의 지능형 로봇을 위한 컴포넌트 기반 시퀀싱 층 소프트웨어 구조를 도출하기 위해서는 요구사항 정의, 로봇 프로세스 모델링, 상위 수준의 시퀀스 모델링, 컴포넌트 식별 및 하위 수준의 시퀀스 모델링의 과정을 거친다.
상기 요구사항 정의 단계는 로봇 사용자의 요구사항을 나타낸 시나리오를 기술하는 것이다. 우선, 지능형 로봇, 본 발명의 실시예에서는 지능 로봇 플랫폼 중 하나인 티롯(T-Rot),의 주요 기능들을 정의하고, 이러한 기능들을 통해 구현할 수 있는 로봇 시나리오를 기술한다.
상기 티롯은 신체적, 정신적 능력이 떨어지는 노인들에게 독립된 생활을 가능하게 해주는 가정용 도우미 로봇의 개발과 이를 위해서 개발하고 있는 로봇 기술들을 통합, 검증해 볼 수 있는 연구용 플랫폼을 제공하기 위해서 본 지능로봇사업단에서 개발한 것이다.
상기 티롯의 주요 기능으로는 상황 인지, 물체인식, 얼굴인식, 자세인식, 조작, 주행 등이 있으며, 이러한 티롯의 기능들을 통합하여 다음과 같은 시나리오를 기술할 수 있다.
[시나리오 1 - 호출 인식]
노인은 소파에 앉아있고, 티롯이 다른 방향을 바라보고 서 있다.
노인이 "티롯, 여기봐!"하고 부른다.
티롯이 호출 명령을 인식하고, 방향을 검지한다.
티롯이 모바일 베이스를 움직여서 노인 방향으로 선다.
티롯이 "주인님, 부르셨습니까?"하고 발화한다.
[시나리오 2 - 음료수 심부름]
[노인이 "목이 마르구나."라고 발화하면]
티롯이 노인의 질문을 인식한다.
티롯이 "그러면 음료수를 가져다 드릴까요?"라고 발화한다.
노인이 "음료수는 뭐가 있지?"라고 묻는다.
티롯이 노인의 질문을 인식한다.
[노인이 "마실 것 좀 가져다오."라고 발화하면]
티롯이 노인의 질문을 인식한다.
티롯이 "평소 즐겨 드시던 솔의 눈을 가져다 드릴까요?"라고 묻는다. (사용 자의 평소 선호도를 기억해서 제안)
노인이 "그래, 솔의 눈을 갖다 줘"라고 발화한다.
로봇이 "솔의 눈을 가져다 드리겠습니다."라고 발화한다.
[음료수 가져오기]
티롯이 주방 선반 앞으로 이동한다.
티롯이 선반 위의 솔의 눈을 인식해서 잡는다.
티롯이 노인에게 이동한다.
티롯이 노인에게 "솔의 눈을 가져왔습니다."라고 발화한다.
티롯이 솔의 눈을 잡아서 노인 앞 테이블 위에 올려놓는다.
[시나리오 3 - TV 프로그램 추천]
(상황 : 저녁 9시 20분, 일정이 비어 한가한 시간에 사용자가 TV를 시청하려고 함.)
노인 : 재미있는 TV 프로그램을 추천해줄래?
로봇 : 네. 지금 '불멸의 이순신'이 방송 중입니다. '불멸의 이순신'을 보시겠습니까?
노인 : 그래. '불멸의 이순신'을 보자.
로봇 : 네. '불멸의 이순신'을 시청하시겠습니다.
[시나리오 4 - TV 프로그램 대화]
노인 : 앞 부분은 무슨 내용이었지?
로봇 : 네. 명랑해전이 시작되고 조선군이 전세를 유리하게 몰아가며 도망치는 일본군을 쫓아 공격하던 중 이순신이 일본군의 총에 맞아 부상을 당한 내용입니다.
노인 : 지난 회는 줄거리가 어떻게 되지?
로봇 : 네. 명랑해전의 출격을 막는 선조와 일본군을 끝까지 소탕하려는 이순신의 갈등이 심해지지만, 결국 이순신이 출격을 결정하는 내용이었습니다.
노인 : 남자배우 이름은 뭐지?
로봇 : 네. 남자배우 이름은 '김명민' 입니다.
[시나리오 5 - 다른 TV 프로그램 추천]
(상황 : 저녁 9시 55분, 사용자와 로봇이 '불멸의 이순신'을 함께 보고 있음.)
로봇 : 오늘 10시부터 다큐멘터리 '생로병사의 비밀'이 방송될 예정입니다.
노인 : '생로병사의 비밀'은 어떤 내용이지?
로봇 : 네. 오늘은 당뇨와의 전쟁 제3편으로 실제 당뇨환자들의 경험을 바탕으로 당뇨를 이길 수 있는 구체적인 식이요법과 운동요법 등을 소개합니다.
노인 : 그래, '생로병사의 비밀'을 보자꾸나.
로봇 : 네. 채널을 변경하겠습니다.
이하, 상기 컴포넌트 도출 과정을 상기 시나리오 2 및 시나리오 3의 경우를 예를 들어 설명하겠다.
다음으로 로봇 프로세스 모델링 단계이다. 상기 요구사항 정의 단계에서는, 로봇의 내부를 고려하지 않고 사용자와 상호작용하는 로봇의 서비스를 글로써 표현하는 반면, 로봇 프로세스 모델링 단계에서는 위의 시나리오를 기반으로 로봇이 어떻게 사용자와 상호작용을 하고 사용자에게 서비스를 제공하는지를 도식화한다.
상기 로봇 프로세스 모델링의 최상위 단계인 로봇 프로세스 모델링 레벨 0에서는 로봇이 제공하는 서비스를 추상화하여 설명한다. 도 1은 상기 지능형 로봇이 제공하는 서비스를 추상화한 액티비티 다이어그램으로, 상기 5개의 시나리오를 기반으로 한 것이다.
로봇 프로세스 모델링 레벨 1에서는 상기 지능형 로봇이 제공하는 각 서비스별로 좀 더 자세하게 도식화한다. 도 2는 지능형 로봇이 제공하는 음료수 심부름 서비스 과정을 나타낸 액티비티 다이어그램으로, 상기 시나리오 2를 모델링한 것이다. 그리고, 도 3은 지능형 로봇이 제공하는 TV 프로그램 추천 서비스 과정을 나타낸 액티비티 다이어그램으로, 상기 시나리오 3을 모델링한 것이다.
상기 상위 수준의 시퀀스 모델링 단계에서는, 상기 지능형 로봇 시스템 내부의 컴포넌트들과 사용자 사이의 상호작용을 상위수준에서 시퀀스 다이어그램으로 표현한다. 도 4는 지능형 로봇이 제공하는 음료수 심부름 서비스의 상위 수준 시퀀스 다이어그램으로, 상기 도 2의 액티비티 다이어그램을 기반으로 시퀀스 모델링한 것이다. 그리고, 도 5는 지능형 로봇이 제공하는 TV 프로그램 추천 서비스의 상위 수준 시퀀스 다이어그램으로, 상기 도 3의 액티비티 다이어그램을 기반으로 시퀀스 모델링한 것이다.
다음으로, 상기 컴포넌트 식별 단계에서는, 상기 상위 수준의 시퀀스 다이어그램으로부터 상기 지능형 로봇 작업의 최소 행위 단위인 컴포넌트를 도출한다. 도 6은 상위 수준의 시퀀스 다이어그램에서 식별된 각 컴포넌트를 나타낸 도면이다.
본 발명의 지능형 로봇을 위한 컴포넌트 기반 시퀀싱 층 소프트웨어는 크게 인식 모듈, 추론 모듈, 동작 모듈 및 콘텐츠 모듈로 구성된다.
상기 인식 모듈은 외부 환경 및 입력 정보를 인식하기 위한 것으로, 3차원 물체 인식부(Recognition), 음성 인식부(ActiveAudioPlanner), 동작 인식부 (GestureRecognition) 및 멀티모달 인식 통합부(MMIIntegrator)를 포함할 수 있다.
상기 3차원 물체 인식부는 스테레오 카메라로부터 얻은 2차원 이미지와 깊이 이미지를 이용하여 공간상의 3차원 라인을 추출한 후, 연속적인 영상으로부터 얻은 라인들을 이용하여 데이터베이스에 저장되어 있는 물체를 인식한다. 그리고 상기 음성 인식부는 사용자의 발화문을 인식하며, 상기 동작 인식부는 사용자의 동작을 인식하여 상위층인 딜리버릿 층으로 사용자가 어떤 동작을 했는지 알려준다. 또한, 상기 멀티모달 인식 통합부는 멀티모달의 입력 중 음성 인식 결과와 터치 스크린 인식 결과를 통합하여 그 결과를 딜리버릿 층으로 보낸다.
상기 추론 모듈은 사용자의 발화문으로부터 일정 규칙을 기반으로 하여 사용자의 의도를 파악하기 위한 것으로, 사용자의 의도를 파악함에 있어 사용자 발화문의 모호성을 해결하기 위해 사용자와 상호작용을 수행하는 인지 상호 작용부 (CognitiveInteraction)를 포함한다.
상기 동작 모듈은 로봇의 움직임을 제어하기 위한 것으로, 머리 동작 제어부(HeadFacialMovement), 팔 동작 제어부(ManiSupervisor), 주행 제어부 (Automove), 음성 발화 제어부(VoiceExpression)를 포함할 수 있다.
상기 머리 동작 제어부는 지시된 감정의 표현, 목 움직임, 노래 및 발성되는 음성의 립 싱크를 위하여 눈꺼풀, 눈썹, 안구, 입술 등 머리의 움직임을 제어한다. 그리고 상기 팔 동작 제어부는 로봇 팔 및 핸드 작동 입력값들을 조정해서 실제 제어부로 전달하고 작업의 수행 결과를 피드백한다. 상기 주행 제어부는 로봇이 주행하기 위해 필요한 세부 컴포넌트들 간의 상호작용을 관리하여 이에 대하여 오류가 발생하였거나 수행이 실패한 경우를 처리한다. 또한, 상기 음성 발화부는 로봇의 발화를 제어한다.
상기 콘텐츠 모듈은 로봇이 사용자에게 제공하는 특정 서비스를 수행하기 위한 것으로, 로봇의 목적에 따라 선택적으로 포함될 수 있으며, TV 프로그램 서비스부(TVProgramService), TV 프로그램 상영부(TVProgramPlayer) 및 메뉴 디스플레이부(MenuDisplay)를 포함할 수 있다.
상기 TV 프로그램 서비스부는 TV 프로그램을 추천하고 프로그램 정보를 제공하며, TV 프로그램 상영부는 TV 프로그램 상영 및 채널 변경을 제어하고, 상기 메뉴 디스플레이부는 사용자에게 주문받을 정보를 메뉴 형식으로 보여준다.
마지막으로, 하위 수준의 시퀀싱 모델링 단계에서는, 상기 지능형 로봇 시스템 내부의 컴포넌트들과 사용자 사이의 상호작용을 하위수준에서 시퀀스 다이어그램으로 표현하며, 상기 시퀀스 다이어그램에는 컴포넌트들의 오퍼레이션과 변수 정 보가 포함된다. 도 7은 지능형 로봇이 제공하는 음료수 심부름 서비스의 하위 수준 시퀀스 다이어그램으로, 상기 도 4의 시퀀스 다이어그램을 하위 수준으로 표현한 것이다. 그리고, 도 8은 지능형 로봇이 제공하는 TV 프로그램 추천 서비스의 하위 수준 시퀀스 다이어그램으로, 상기 도 5의 시퀀스 다이어그램을 하위 수준으로 표현한 것이다.