이하, 첨부된 도면을 참조하여, 본 발명에 따른 다중 로봇 협업 방법 및 시스템에 대하여 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 다중 로봇 협업 시스템의 구성을 도시한 도면이다.
다중 로봇 협업 시스템(100)은 소프트웨어 자원 관리 모듈(110), 하드웨어 자원 관리 모듈(120), 로봇 업무 제어 모듈(130), 및 정보 저장소(140)를 포함하여 구성될 수 있다.
여기서, 다중 로봇 협업 시스템(100)은 로봇에 장착되어 수행될 수 있으며, 다중 로봇 협업 시스템(100)이 프로그램화되어 로봇에 설치되어 수행될 수 있다. 이때, 상기 로봇은 다른 로봇과의 통신을 위한 통신모듈을 포함할 수 있다.
먼저, 소프트웨어 자원 관리 모듈(110)은 구동하는 프로그램에 관한 프로그램 정보를, 로봇 각각으로부터 수집한다.
복수의 로봇으로부터 각 로봇에 이용되는 프로그램 정보를 수집한다. 여기서, 상기 프로그램 정보라 함은, 조작제어, 환경인식, 위치인식, 자율주행 등에서의 알고리즘 단위별로 개발될 수 있는 소프트웨어에 대한 정보일 수 있다.
만약, 다중 로봇 협업 시스템(100)이 로봇에 장착되어 수행되는 경우, 소프트웨어 자원 관리 모듈(110)은 자신 이외에 다른 로봇들로부터 각 로봇에 이용되는 프로그램 정보를 수집할 수 있다.
또는, 로봇이 마스터(Master) 로봇과 슬레이브(Slave) 로봇으로 나누어진 경우, 하나의 마스터 로봇이 다수의 슬레이브 로봇으로부터 각 슬레이브 로봇의 프로그램 정보를 수집할 수도 있다.
이하에서는 도 2를 참조하여 설명한다.
도 2는 본 발명의 일실시예에 따른 다중 로봇 협업 시스템을 장착한 로봇의 일례를 도시한 도면이다.
도시한 바와 같이, 도면부호(210)는 마스터 로봇이고, 도면부호(220)은 슬레이브 로봇이다. 상기 마스터 로봇은 다양한 센서 정보 및 컴퓨팅 능력이 PC급 이상의 성능을 가지는 로봇일 수 있으며, 상기 슬레이브 로봇은 단일 또는 2-3가지의 센서 정보와 PC급 미만의 성능을 가지는 로봇일 수 있다.
도면부호(210)에서, 마스터 로봇은 다중 로봇 협업 시스템(100)이 장착된 로봇일 수 있으며, 도면부호(220)에서, 슬레이브 로봇은 다중 로봇 협업 시스템(100)이 프로그램화된 로봇 미들웨어(robot middleware) 소프트웨어가 장착된 로봇일 수 있다.
로봇 업무 제어 모듈(130)은 상기 수집된 프로그램 정보에 기초하여, 상기 복수의 로봇 간의 업무를 중재한다. 예를 들어, 로봇 업무 제어 모듈(130)은 업무의 발생에 따라, 상기 프로그램 정보에 근거하여 상기 발생된 업무를 처리할 로봇을 선택하고, 상기 선택된 로봇에게 상기 업무를 할당할 수 있다. 즉, 로봇 업무 제어 모듈(130)은 주어진 업무를 최적으로 처리할 수 있는 로봇을 선택하여, 그 선택된 로봇에게 상기 업무 처리를 맡김으로써, 업무를 효율적으로 처리할 수 있도록 한다. 이때, 로봇 업무 제어 모듈(130)은 '검색 제어 메시지'를 상기 복수의 로봇에게 전달함으로써, 각 로봇의 프로그램 정보를 획득할 수 있다.
다음으로, 하드웨어 자원 관리 모듈(120)은 장착하는 디바이스에 관한 디바이스 정보를, 로봇 각각으로부터 수집한다. 상기 디바이스 정보는 센서, 휠(wheel), 카메라, Gripper, 네트워크 인터페이스(network interface), CPU, 메모리(memory) 등의 모듈화된 하드웨어 디바이스에 대한 정보일 수 있다.
하드웨어 자원 관리 모듈(120)도 소프트웨어 자원 관리 모듈(110)과 마찬가지로, 다중 로봇 협업 시스템(100)이 로봇에 장착되어 수행되는 경우, 자신 이외에 다른 로봇들로부터 각 로봇에 장착된 디바이스 정보를 수집하거나, 또는 하나의 마스터 로봇이 다수의 슬레이브 로봇으로부터 각 슬레이브 로봇의 디바이스 정보를 수집할 수도 있다.
로봇 업무 제어 모듈(130)은 상기 디바이스 정보에 기초하여, 상기 업무와 연관된 디바이스를 장착한 로봇을 선택하고, 상기 선택된 로봇에게 상기 업무를 할당할 수 있다. 즉, 로봇 업무 제어 모듈(130)은 하나의 업무를 처리하기 위해 필요한 디바이스(device)를 먼저 파악하고, 상기 디바이스가 장착되어 상기 디바이스를 이용하기 편한 로봇이 상기 업무를 처리하도록 함으로써, 업무를 효율적으로 처리할 수 있도록 한다. 이때, 로봇 업무 제어 모듈(130)은 '작업 제어 메시지'를 상기 선택된 로봇에게 전달함으로써, 상기 업무를 할당할 수 있다.
본 발명의 실시예로, 로봇 업무 제어 모듈(130)은 (1) 상기 디바이스 정보에 기초하여, 상기 업무와 연관된 디바이스 중 상기 선택된 로봇이 장착하지 않는 디바이스를 장착하는, 타로봇을 식별하고, (2) 상기 식별된 타로봇으로부터 상기 장착하지 않은 디바이스에 대한 사용 권한을 획득하며, (3) 상기 선택된 로봇이, 상기 사용 권한이 획득된 상기 타로봇의 디바이스를 이용하도록 할 수 있다. 즉, 로봇 간에 디바이스를 공유하도록 함으로써, 업무 수행을 위해 필요한 디바이스가 장착되지 않은 로봇도 타로봇의 디바이스를 공유하여 상기 업무를 처리할 수 있다.
예를 들어, 선택된 로봇이 환경 인식을 위하여, 카메라 센서가 필요하지만, 상기 선택된 로봇에는 카메라 센서가 장착되지 않은 경우, 상기 카메라 센서가 장착된 타로봇으로부터 상기 카메라 센서의 사용 권한을 획득하여 상기 선택된 로봇이 상기 타로봇의 카메라 센서를 사용할 수 있게 된다. 이때, 로봇 업무 제어 모듈(130)은 '공유 제어 메시지'를 상기 타로봇에게 전달함으로써, 상기 디바이스 사 용 권한을 획득할 수 있다.
본 발명의 다른 실시예로, 로봇 업무 제어 모듈(130)은 상기 수집된 프로그램 정보에 근거하여, 상기 선택된 로봇에서 상기 구동하는 프로그램에 의해 처리되는 기존 업무를, 처리할 타로봇을 선택하여 할당할 수 있다. 즉, 상기 선택된 로봇이 상기 업무를 처리하지 못하였거나, 다른 업무를 수행하는 도중인 경우, 로봇 업무 제어 모듈(130)은 상기 선택된 로봇의 업무를 상기 타로봇에게 이관하고, 상기 타로봇의 업무는 다른 로봇에게 할당함으로써, 로봇 간의 업무를 중재할 수 있다.
본 발명의 또 다른 실시예로, 로봇 업무 제어 모듈(130)은 상기 선택된 로봇으로부터 상기 선택된 로봇에 할당된 업무에 대한 수행 불가를 통보받은 경우, 상기 각 로봇에게 상기 업무에 대한 업무 정보를 전달하고, 상기 전달된 업무 정보에 대한 수행 응답을 전송한 타로봇에게 상기 업무를 할당할 수 있다. 여기서, 상기 업무 정보는 업무에 대한 설명 예를 들어, 장애물 감시일 수 있으며, 로봇 업무 제어 모듈(130)은 상기 업무 정보에, 상기 업무를 이관한 선택된 로봇의 위치정보, 업무 수행 실패 원인 등의 정보가 포함된 context 정보를 포함시켜는 전달할 수 있다.
즉, 로봇 업무 제어 모듈(130)은 상기 선택된 업무를 상기 선택된 로봇이 아닌 타로봇에게 재할당하기 위하여, 브로드캐스팅(broadcasting)으로 상기 업무 정보를 타로봇들에게 전송할 수 있다. 로봇 업무 제어 모듈(130)은 상기 전송된 업무 정보에 대한 응답으로 상기 업무에 대한 수행 가능을 통보한 로봇에게 상기 업 무를 할당할 수 있다.
예를 들어, 상기 업무 정보를 수신한 타로봇이, 상기 업무를 처리 가능한 것으로 판단한 경우, 상기 타로봇은 상기 업무에 대한 수행 가능을 로봇 업무 제어 모듈(130)로 통보하고, 로봇 업무 제어 모듈(130)이 허가하면 상기 업무를 수행하도록 한다.
정보 저장소(140)는 각 로봇별 프로그램 정보 및 디바이스 정보를 기록한다. 정보 저장소(140)는 소프트웨어 자원 관리 모듈(110) 및 하드웨어 자원 관리 모듈(120)에 의해 수집되는 각 로봇별 상기 프로그램 정보 및 상기 디바이스 정보를 주기적으로 갱신하여 기록할 수 있다.
예컨대, 정보 저장소(140)는 마스터 로봇에만 포함될 수 있으며, 마스터 로봇은 다수의 슬레이브 로봇으로부터 프로그램 정보 및 디바이스 정보를 수신하여 정보 저장소(140)에 기록할 수 있다. 이에 따라, 마스터 로봇의 로봇 업무 제어 모듈(140)은 선택된 로봇으로부터 상기 선택된 로봇에 할당된 업무에 대한 수행 불가를 통보받은 경우, 정보 저장소(140)에 저장된 상기 프로그램 정보 및 상기 디바이스 정보에 기초하여, 상기 업무를 수행 가능한 타로봇을 선택하여 상기 타로봇에게 상기 업무를 할당할 수 있다. 즉, 로봇 업무 제어 모듈(140)은 상기 프로그램 정보 또는 상기 디바이스 정보에 기반하여 상기 업무를 수행 가능한 최적의 로봇인 타로봇을 선택하고, 상기 선택된 타로봇에게 상기 업무를 할당하거나, 성능이 좋은 로봇을 우선순위로 하여 상기 업무를 할당할 수 있다.
또 달리, 정보 저장소(140)는 상기 프로그램 정보, 상기 디바이스 정보 및 주변 공간 정보를 메타데이터(metadata) 형태로 저장할 수 있다. 상기 메타데이터로 저장되는 프로그램 정보는 로봇에 사용되는 알고리즘 정보, 센서 정보 및 동작 제어를 수행할 수 있는 디바이스 정보를 포함하고, 상기 디바이스 정보는 적외선, 초음파, 카메라를 포함하는 센서타입과 바퀴, 다족형, 체인형의 휠타입(wheel type) 등의 정보를 포함할 수 있다.
본 발명의 또 다른 실시예로, 로봇 업무 제어 모듈(130)은 상기 복수의 로봇간의 네트워크를 제어하여, 서비스 품질(QoS: Quality of Service) 서비스 및 터너링(Tunneling) 서비스를 제공한다.
상기 서비스 품질 서비스는 사용자 또는 어플리케이션에 대한 중요도에 따라 서비스 수준을 차등화하여 한정된 WAN 대역폭에서 트래픽과 대역폭을 정책적으로 관리하는 기술이다. 본 발명에서는, 각 로봇에 할당된 업무의 중요도에 따라 트래픽과 대역폭을 관리하는 것일 수 있다.
또한, 상기 터너링 서비스는 하위층 통신 규약의 패킷을 상위층 통신 규약으로 캡슐화하는 것으로, 통신망상의 두 점 간에 통신이 되도록 하는 기술이다. 본 발명에서는, 로봇 간의 업무를 중재하기 위해, 로봇 간에 통신하도록 하는 것일 수 있다.
이때, 로봇 업무 제어 모듈(130)은 '네트워크 제어 메시지'를 상기 복수의 로봇에게 전달함으로써, 멀티미디어 데이터와 같은 실시간성을 요하는 작업을 요청하거나, 망간의 프로토콜의 정보를 설정할 수 있다.
이하에서는, 도 3을 참조하여 설명한다.
도 3은 본 발명의 일실시예에 따른 다중 로봇 협업 시스템에 의해, 로봇 간 의 업무를 중재하는 일례를 도시한 도면이다.
도시한 바와 같이, A, B, C, D는 다중 로봇 협업 시스템(100)에 의해 특정 공간에서 서로 협업하여 작업을 수행하는 것을 나타낸다. 여기서, 마스터 로봇 및 슬레이브 로봇은 A, B, C, D 모두가 동시역할을 수행하는 것으로 가정한다.
(1) A, B, C, D, 각 로봇들은 '초기화 작업'을 수행한 후, 각 로봇들이 보유하고 있는 프로그램 정보 및 디바이스 정보를 수집한다. 이를 기반으로 로봇 'A'는 어떤 로봇도 정보를 가지고 있지 않은 영역에 대해 특정 방향으로 장애물을 감시하는 업무인 'Task T'를 수행한다.
(2) 만약, 로봇 'A'가 Task T를 수행하는데 있어서 연속적으로 실패하는 경우가 발생할 수 있다.
(3) 그러면, 로봇 'A'는 로봇 업무 제어 모듈(130)을 이용하여 각 로봇의 정보를 저장하고 있는 마스터 로봇의 정보 저장소(140)에서 Task T를 수행할 수 있는 로봇을 검색한다. 이때, Task T를 수행할 수 있는 프로그램 정보와 같은 로봇 파라미터(parameter)를 알고 있을 경우, Task T를 수행 가능한 로봇을 바로 탐색할 수 있다. 그러나, 그렇지 않은 경우, 로봇들 B, C, D 중 성능이 좋은 로봇을 우선으로 검색할 수 있다.
(4) 로봇 'D'가 Task T를 수행하는데 최적의 로봇이라고 선택된 경우, 로봇 'A'는 Task T에 대한 context 정보를 로봇 'D'에게 전달하고, Task T에 대한 업무를 이관할 수 있다. 상기에서 설명한 바와 같이, context 정보는 로봇 'A'의 위치정보, 수행 실패 원인 등의 정보를 포함한다.
(5) 로봇 'D'는 상기 Task T에 대한 이관을 허락하고, 상기 context 정보를 이용하여 상기 Task T를 수행한다.
(6) 로봇 'D'는 상기 Task T를 완료하고, 로봇 'A'에게 상기 Task T를 완료하였음을 전달한다.
(7) 로봇 'D'는 다음 업무(Task)가 할당될 때까지 대기한다.
이렇게 하여, 다중 로봇 협업 시스템(100)이 장착된 A, B, C, D, 각 로봇들은 로봇 간의 업무를 서로 중재할 수 있다.
도 4는 본 발명의 일실시예에 따른 로봇에서 다중 로봇 협업 시스템에 의해 로봇 간의 업무를 중재하는 방법의 일례를 도시한 흐름도이다.
로봇에 전원이 인가되면(Robot Power On), (1) 상기 로봇은 자신의 다중 로봇 협업 시스템(100) 구동을 위한 초기화 프로그램이 실행할 수 있다. 즉, 로봇은 소프트웨어 자원 관리 모듈(110), 하드웨어 자원 관리 모듈(120) 및 로봇 업무 관리 모듈(130)에 대한 초기화 프로그램이 수행되는 것이다.
(2) 다음으로, 상기 로봇은 자신의 프로그램 정보 및 디바이스 정보를 정보 저장소(140)에 저장할 수 있다.
(3) 상기 로봇은 네트워크 상의 복수의 로봇들에게 로봇 정보(프로그램 정보 및 디바이스 정보) 수집을 요청하고, 자신의 로봇 정보도 상기 복수의 로봇들에게 전달할 수 있다.
(4) 상기 로봇은 상기 복수의 로봇들로부터 수신되는 로봇 정보를 정보 저장소(140)에 저장할 수 있다.
(5) 이후, 상기 로봇은 주기적으로 네트워크 상의 복수의 로봇들에 대한 로봇 정보를 주기적으로 갱신할 수 있다.
(6) 이후, 선택된 로봇에 할당된 업무(Task)가 수행되었을 시, 선택된 로봇 자신이 수행할 수 없으면 협업 환경 하의 정보 저장소(140)에서 검색하여 상기 업무를 수행하기 적합한 타로봇을 탐색할 수 있다. 또는, 협업 환경 하의 로봇들에게 상기 업무 정보를 전송하여 그에 대한 응답을 전송한 타로봇에게 상기 업무를 이관하고, 상기 업무에 대한 결과를 상기 선택된 로봇에게 전달하도록 한다.
따라서, 본 발명에 따른 로봇은 상기와 같은 일련의 프로세스를 반복적 또는 이벤트 요청에 따라 계속적으로 처리할 수 있도록 한다.
도 5는 본 발명의 일실시예에 따른 다중 로봇 협업 시스템에서, 로봇 간의 업무를 중재하는 방법의 다른 일례를 도시한 흐름도이다.
도 5에서 설명될 흐름도는 상기에서 도 1를 참조하여 이미 상세히 설명하였으므로, 도 5에서는 간단히 설명한다.
단계 S510에서, 다중 로봇 협업 시스템(100)은 구동하는 프로그램에 관한 프로그램 정보를, 로봇 각각으로부터 수집할 수 있다. 상기 프로그램 정보는 조작제어, 환경인식, 위치인식, 자율주행 등에서의 알고리즘 단위별로 개발될 수 있는 소프트웨어에 대한 정보일 수 있다.
단계 S520에서, 다중 로봇 협업 시스템(100)은 장착하는 디바이스에 관한 디바이스 정보를, 상기 로봇 각각으로부터 수집할 수 있다. 상기 디바이스 정보는 센서, 휠, 카메라, Gripper, 네트워크 인터페이스, CPU, 메모리 등의 모듈화된 하 드웨어 디바이스에 대한 정보일 수 있다.
단계 S530에서, 다중 로봇 협업 시스템(100)은 상기 수집된 프로그램 정보 또는 디바이스 정보에 기초하여, 상기 로봇 간의 업무를 중재할 수 있다.
예를 들어, 다중 로봇 협업 시스템(100)은 업무의 발생에 따라, 상기 프로그램 정보에 근거하여 상기 발생된 업무를 처리할 로봇을 선택하고, 상기 선택된 로봇에게 상기 업무를 할당할 수 있다. 또는, 다중 로봇 협업 시스템(100)은 상기 디바이스 정보에 기초하여, 상기 업무와 연관된 디바이스를 장착한 로봇을 선택하고, 상기 선택된 로봇에게 상기 업무를 할당할 수도 있다.
또한, 다중 로봇 협업 시스템(100)은 상기 디바이스 정보에 기초하여, 상기 업무와 연관된 디바이스 중 상기 선택된 로봇이 장착하지 않는 디바이스를 장착하는, 타로봇을 식별하고, 상기 식별된 타로봇으로부터 상기 장착하지 않은 디바이스에 대한 사용 권한을 획득하며, 상기 선택된 로봇이, 상기 사용 권한이 획득된 상기 타로봇의 디바이스를 이용하도록 하여, 로봇 간의 디바이스를 공유하여 이용하게 할 수도 있다.
또한, 상기 선택된 로봇으로부터 상기 선택된 로봇에 할당된 업무에 대한 수행 불가를 통보받은 경우, 다중 로봇 협업 시스템(100)은 상기 각 로봇에게 상기 업무에 대한 업무 정보를 전달하고, 상기 전달된 업무 정보에 대한 수행 응답을 전송한 타로봇에게 상기 업무를 할당할 수도 있다.
또는, 각 로봇별 프로그램 정보 및 디바이스 정보를 정보 저장소(140)에 저장하고, 다중 로봇 협업 시스템(100)은 상기 선택된 로봇으로부터 상기 선택된 로 봇에 할당된 업무에 대한 수행 불가를 통보받은 경우, 정보 저장소(140)에 저장된 상기 프로그램 정보 및 상기 디바이스 정보에 기초하여, 상기 업무를 수행 가능한 타로봇을 선택하여 상기 타로봇에게 상기 업무를 할당할 수도 있다.
또한, 다중 로봇 협업 시스템(100)은 상기 복수의 로봇간의 네트워크를 제어하여, 서비스 품질 서비스 및 터너링 서비스를 제공할 수도 있다.
또한, 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.