KR20190023835A - 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇 - Google Patents

다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇 Download PDF

Info

Publication number
KR20190023835A
KR20190023835A KR1020170110171A KR20170110171A KR20190023835A KR 20190023835 A KR20190023835 A KR 20190023835A KR 1020170110171 A KR1020170110171 A KR 1020170110171A KR 20170110171 A KR20170110171 A KR 20170110171A KR 20190023835 A KR20190023835 A KR 20190023835A
Authority
KR
South Korea
Prior art keywords
robot
partitioning
robots
map
space
Prior art date
Application number
KR1020170110171A
Other languages
English (en)
Inventor
최지은
최규천
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020170110171A priority Critical patent/KR20190023835A/ko
Priority to PCT/KR2018/008725 priority patent/WO2019045288A1/ko
Publication of KR20190023835A publication Critical patent/KR20190023835A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators

Abstract

본 발명은 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇에 관한 것으로, 본 발명의 일 실시예에 의한 공간을 분할-작업하는 로봇은 센싱부, 로봇이 이동하는 공간의 고정 객체의 위치를 저장하는 맵 저장부, 이동부, 파티셔닝 정보 및 환경 정보를 하나 이상의 다른 로봇과 송수신하는 통신부, 작업부 및 제어부를 포함하며, 제어부는 센싱부가 센싱한 객체 중 맵 저장부의 고정 객체에 해당하지 않는 객체와 로봇이 작업을 수행한 공간에 대한 정보 중 어느 하나 이상을 환경 정보로 생성하며, 통신부를 제어하여 파티셔닝 정보와 환경 정보를 송수신할 하나 이상의 이웃 로봇을 결정한다.

Description

다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇{METHOD OF SPACE PARTITIONING-WORKING BY MULTI-ROBOT AND ROBOT IMPLEMENTING THEREOF}
본 발명은 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇에 관한 기술이다.
공항, 학교, 관공서, 호텔, 사무실, 공장, 체육관, 공연장과 같은 문화시설 등 인적, 물적 교류가 활발하게 발생하는 공간에서는 하나의 로봇이 전체 공간을 커버하여 동작할 수 없다. 따라서, 다수의 로봇들이 공간에 배치되어 동작하는 것이 필요하다.
그런데, 다수의 로봇들이 동작하기 위해서는 공간을 효과적으로 분할하여 작업하는 것이 필요한데, 로봇이 동작하는 공간은 다양한 변수가 발생할 가능성이 높다. 특히, 대면적의 유동 인구가 많은 공간에서는 이동 장애물이 다수 배치될 수 있으며, 또한 로봇이 동작 과정에서 고장이 날 수도 있다. 또한, 로봇들 간의 통신이 원활하지 못할 수 있는데, 이는 대면적의 공간에서 로봇의 통신에 일시적인 장애가 발생할 수 있기 때문이다.
따라서, 본 명세서에서는 대면적의 공간에서 로봇들이 협업하여 공간에서 작업을 수행하는 방안에 대해 살펴본다.
본 명세서에서는 전술한 문제점을 해결하기 위한 것으로, 다수의 로봇이 공간을 분할하여 작업하되 실시간 혹은 특정한 주기를 가지고 공간의 변화 상황에 대응하여 새로이 공간을 분할하여 작업하는 방법 및 로봇을 제안한다.
또한. 본 명세서에서는 로봇들 간의 통신을 보장하기 위해 일부 로봇들 간의 통신망을 연결하는 방법 및 로봇을 제안한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 발명의 일 실시예에 의한 공간을 분할-작업하는 로봇은 외부에 배치된 객체를 센싱하는 센싱부, 로봇이 이동하는 공간의 고정 객체의 위치를 저장하는 맵 저장부, 로봇을 이동시키는 이동부, 파티셔닝 정보 및 환경 정보를 하나 이상의 다른 로봇과 송수신하는 통신부, 로봇이 작업을 수행하는 작업부, 및 센싱부와 맵 저장부와 이동부와 통신부와 작업부를 제어하며, 센싱부가 센싱한 객체 중 맵 저장부의 고정 객체에 해당하지 않는 객체와 로봇이 작업을 수행한 공간에 대한 정보 중 어느 하나 이상을 환경 정보로 생성하며, 통신부를 제어하여 파티셔닝 정보와 환경 정보를 송수신할 하나 이상의 이웃 로봇을 결정하는 제어부를 포함한다.
본 발명의 다른 실시예에 의한 로봇이 공간을 분할-작업하는 방법은 로봇의 제어부가 공간에서 작업할 다수의 로봇들의 파티셔닝 영역을 포함하는 초기 파티셔닝 맵을 생성하는 단계, 로봇의 이동부가 로봇에게 할당된 파티셔닝 영역으로 로봇을 이동시키는 단계, 로봇의 작업부가 파티셔닝 영역에서 로봇에게 할당된 작업을 수행하는 단계, 제어부가 로봇의 센싱부가 센싱한 객체 중 로봇의 맵 저장부에 저장된 고정 객체에 해당하지 않는 객체와 로봇이 작업을 수행한 공간에 대한 정보 중 어느 하나 이상을 제1환경 정보로 생성하는 단계, 로봇의 통신부가 다수의 로봇들 중 하나 이상의 이웃 로봇으로부터 이웃 로봇의 제2환경 정보를 수신하는 단계, 및 제어부가 제1환경 정보 및 제2환경 정보를 이용하여 다수의 로봇들 중 일부 또는 전체의 로봇들에 할당할 재파티셔닝 맵을 생성하는 단계를 포함한다.
본 발명의 실시예들을 적용할 경우, 다중로봇이 주어진 대면적 환경에서 환경의 형태 및 동적/정적 장애물 정보를 모두 고려한 실시간 파티셔닝을 통해 협업하여 최적으로 지역을 커버할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 대면적 공간에서 다중로봇들이 분산형 통신 시스템을 이용하거나 허브형 통신 시스템을 이용하여 모든 로봇의 연결성이 확보되지 않아도 실시간 파티셔닝을 수행하여 각 로봇이 작업할 커버리지를 최적화 시킬 수 있다.
본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.
도 1은 본 발명의 일 실시예에 의한 분산 통신 방식으로 로봇이 동작하는 과정을 보여주는 도면이다.
도 2는 본 발명의 다른 실시예에 의한 허브 통신 방식으로 로봇이 동작하는 과정을 보여주는 도면이다.
도 3 및 도 4는 본 발명의 일 실시예에 의한 고정맵의 구성을 보여주는 도면이다.
도 5는 본 발명의 일 실시예에 의한 파티셔닝 맵의 구성을 보여주는 도면이다.
도 6은 본 발명의 일 실시예에 의한 로봇들이 각각의 파티셔닝 영역으로 이동한 상태에서의 분산 통신 방식의 통신 링크를 보여주는 도면이다.
도 7은 본 발명의 일 실시예에 의한 재파티셔닝된 맵의 구성을 보여주는 도면이다.
도 8은 도 5의 파티셔닝 맵에서 작업이 완료된 영역을 표시한 도면이다.
도 9는 본 발명의 일 실시예에 의한 도 7의 파티셔닝 맵을 기준으로 재파티셔닝한 결과를 보여주는 도면이다.
도 10은 본 발명의 일 실시예에 의한 허브 로봇을 중심으로 통신망의 설정을 보여주는 도면이다.
도 11은 본 발명의 일 실시예에 의한 로봇들이 각각의 파티셔닝 영역으로 이동한 상태에서의 허브 통신 방식의 통신 링크를 보여주는 도면이다.
도 12는 본 발명의 일 실시예에 의한 로봇의 구성을 보여주는 도면이다.
도 13은 본 발명의 일 실시예에 의한 로봇이 공간을 분할-작업하는 과정을 보여주는 도면이다.
도 14는 본 발명의 일 실시예에 의한 초기파티셔닝맵을 생성한 후 각 로봇이 인접한 영역으로 이동하는 과정을 보여주는 도면이다.
도 15는 본 발명의 다른 실시예에 의한 로봇들이 상이한 위치에 배치되어초기 파티셔닝 맵을 생성한 후 각 로봇이 인접한 영역으로 이동하는 과정을 보여주는 도면이다.
도 16은 본 발명의 일 실시예에 의한 분산 통신 방식에서 로봇이 파티셔닝을 요청하는 과정을 보여주는 도면이다.
도 17 및 도 18은 본 발명의 일 실시예에 의한 재파티셔닝 과정에서 각 환경 정보에 가중치를 적용하여 재파티셔닝하는 도면이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
또한, 본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
이하 본 명세서에서는 인접한 로봇들 사이에서 협업하여 정보를 교환하고 작업할 공간을 파티셔닝(partitioning)하고 작업을 수행하며, 이 과정에서 발생한 변화 요소를 반영하여 재파티셔닝(Re-Partitioning)을 수행하는 과정 및 이를 구현하는 로봇에 대해 살펴본다.
또한, 로봇은 공간에 대한 정보를 저장할 수 있다. 공간에 대한 정보를 저장하기 위해 공간을 소정의 단위가 되는 셀로 나눌 수 있으며, 각 셀은 정보를 저장할 수 있다. 일 실시예로, 고정된 장애물이 배치된 고정맵(Fixed Map), 고정맵에 추가하여 각 로봇이 작업하도록 파티셔닝된 파티셔닝 맵(Partitioning Map), 파티셔닝 맵에서 로봇이 작업을 수행한 영역을 표시하는 커버드 맵(Covered Map) 등이 존재한다. 커버드 맵은 파티셔닝 맵의 특정 셀을 표시하는 방식으로 구현할 수 있다.
로봇은 전체 공간에 대한 고정맵을 저장하며, 전체 공간 중 해당 로봇에게 할당된 공간과 할당한 공간에 인접한 다른 로봇의 공간 등의 정보를 포함하는 임시맵(Temporary Map)을 저장할 수 있다. 로봇이 다른 로봇과 통신할 수 있는 능력에 따라 임시맵이 전체 공간을 모두 포괄할 수 있다. 또한, 로봇의 통신 능력에 따라 임시맵이 일부 공간만을 포괄할 수 있다.
한편, 본 명세서에서 로봇들의 통신 방식은 두 가지 방식으로 이루어진다. 로봇들이 통신에 있어서 수평적인 관계를 가지는 분산 통신 방식과 로봇들 중에서 하나의 로봇이 통신의 중심에 있는 허브 통신 방식으로 나뉘어진다. 분산 통신 방식의 실시예로 로봇들의 통신망은 링(Ring) 형태로 구성될 수 있다. 허브 통신 방식의 일 실시예로 로봇들의 통신망은 스타(Star) 형태로 구성될 수 있다.
또한, 본 명세서에서 로봇은 특정한 목적(청소, 보안, 모니터링, 안내 등)을 가지거나 혹은 로봇이 이동하는 공간의 특성에 따른 기능을 제공하며 이동하는 장치를 포함한다. 따라서, 본 명세서에서의 로봇은 소정의 정보와 센서를 이용하여 이동할 수 있는 이동수단을 보유하며 소정의 기능을 제공하는 장치를 통칭한다.
본 명세서에서 로봇은 맵을 보유하면서 이동할 수 있다. 맵은 공간에서 이동하지 않는 것으로 확인된 고정된 벽, 계단 등 고정 객체에 대한 정보를 의미한다. 또한, 주기적으로 배치되는 동적인 객체들에 대한 정보도 맵 상에 저장될 수 있다. 일 실시예로 로봇의 진행 방향을 기준으로 일정한 범위 내에 배치된 장애물들에 대한 정보도 맵 상에 저장될 수 있다.
전술한 본 발명의 실시예가 가지는 기술적 특징들에 기반하여 다음과 같이 로봇의 구성 및 동작 과정에 대해 살펴본다.
도 1은 본 발명의 일 실시예에 의한 분산 통신 방식으로 로봇이 동작하는 과정을 보여주는 도면이다. 분산 통신 방식인 경우 로봇은 주어진 정보를 기준으로 각각 다음 정보를 산출할 수 있다. 본 발명의 일 실시예에서 로봇들은 주어진 정보가 동일할 경우 동일한 결과를 산출하도록 프로세싱할 수 있다.
각 로봇들은 주어진 형태의 환경, 즉 공간의 환경을 고려하여 N-개로 공간을 파티셔닝한다(S1). 각 로봇에게 초기에 주어진 환경 정보(공간의 정보)가 동일할 경우 각 로봇이 산출하는 N 개의 공간의 파티셔닝 결과는 동일할 수 있다. 반면, 각 로봇이 초기에 주어진 환경 정보(공간의 정보) 외에 각각의 로봇이 센싱하거나 취득한 개별 정보가 있을 경우, 각 로봇이 산출하는 N 개의 공간의 파티셔닝 결과는 상이할 수 있다.
각각의 로봇들은 파티셔닝된 영역(파티션)으로 이동한다(S2). 이동 후 로봇들은 근접하여 이웃하는 파티션의 로봇과 통신 연결성을 확인한다(S3). 통신 연결이 확인되면 각 파티션에서 로봇들은 각각의 작업을 수행한다(S4). 로봇이 수행하는 작업은 로봇이 수행하는 기능에 따라 상이할 수 있다. 청소 로봇인 경우 청소 작업을 수행할 수 있으며, 보안 로봇인 경우 위험물을 탐지하는 작업을 수행할 수 있다. 안내 로봇인 경우 파티션 내에서 사람들의 이동에 대응하여 안내 작업을 수행할 수 있다. 디스플레이 로봇인 경우, 파티션 내에서 일정한 정보를 지속하여 출력할 수 있다.
로봇은 일정한 주기로 파티션에서 작업의 수행이 완료되었는지를 확인한다(S5). 일정한 주기란 시간적 주기를 의미한다. 시간적 주기가 무한대인 경우 로봇은 작업을 완료할 때까지 S1에서 결정된 파티션 내에서 작업을 수행한다. 시간적 주기가 10분인 경우, 로봇은 10분동안 작업을 수행한 후, 작업이 완료되지 않은 경우 S6 단계로 진행한다. 시간적 주기 내에 작업이 완료되면 전체 영역의 커버 완료를 확인하고(S7) 종료한다.
S6 단계로 진행하면 각각의 로봇들은 최소 한대 이상 근접한 로봇과 연결성을 보장하면서 전체 영역의 커버리지를 최대화하는 파티셔닝을 수행한다(S6). 이는 재파티셔닝을 의미하며, 지금까지 로봇이 작업한 영역과 새로운 장애물로 인한 작업 불가 영역, 혹은 특정 로봇의 고장 등 변화한 환경을 반영하여 공간을 새롭게 파티셔닝하는 실시예를 포함한다.
재파티셔닝(S6) 이후 로봇은 다시 새로운 파티셔닝된 영역으로 이동하여 S2 내지 S5 단계를 수행한다.
S6 단계에서 기존의 통신 연결을 재설정할 수 있다. 예를 들어, 4개의 로봇인 R1-R2-R3-R4들이 배치된 상태에서 초기 파티셔닝 과정에서는 R1-R2-R3-R4-R1과 같은 링 형태로 통신연결이 된 경우(도 16 참조)에서 재파티셔닝하는 과정에서 통신 효율을 재점검하여 통신 연결을 변경할 수 있다.
즉, 도 16과 같은 구성에서 R1-R2-R3-R4-R1의 연결 대신, R1-R2-R4-R3-R1과 같은 방식으로 통신이 연결될 수도 있다.
도 2는 본 발명의 다른 실시예에 의한 허브 통신 방식으로 로봇이 동작하는 과정을 보여주는 도면이다. 도 1은 각각의 로봇들이 각자 파티셔닝을 수행하며 다른 로봇과 정보를 교환하는 방식이다. 이와 달리 도 2는 허브 로봇이 각각의 로봇들로부터 정보를 수집하여 파티셔닝을 수행한 후 다른 로봇에게 정보를 제공하는 방식이다. 여기서 모든 로봇들이 허브 로봇에게 정보를 직접 제공할 수도 있으며, 혹은 허브 로봇에 근접한 로봇들은 허브 로봇에게 정보를 직접 제공하고, 허브 로봇과 멀리 있는 로봇들은 허브 로봇에 근접한 로봇을 이용하여 정보를 간접 제공할 수 있다.
이하, 허브 로봇에 근접하여 허브 로봇과 직접 통신이 가능한 로봇을 T1(Tier 1) 로봇이라고 한다. 한편, T1 로봇에 근접하여 T1 로봇과 직접 통신이 가능하지만 허브 로봇과는 통신이 불가능한 로봇을 T2(Tier 2) 로봇이라고 한다. 마찬가지로 Tk 로봇은 T(k-1) 로봇과 직접 통신이 가능하지만 허브 로봇과는 통신이 불가능한 로봇을 지시한다. k의 수가 작을수록 로봇들이 보다 통신 환경이 좋은 상태에 있음을 의미한다. k의 숫자가 커질 경우, 허브 로봇이 다른 로봇들과 통신이 원활하지 않으므로, 허브 역할을 새로운 로봇이 수행하도록 조정될 수 있다.
앞서 로봇들을 R1, R2 등으로 지시할 경우, 특정한 로봇들이 T1 로봇이 될 수 있다. 예를 들어 R1 로봇이 허브이며 R2, R3 로봇이 T1 로봇이며, R4, R5 로봇이 T2 로봇이 될 수 있다.
허브 로봇(10)은 주어진 형태의 환경을 고려하여 로봇의 수 N에 따라 N개로 파티셔닝한다(S21). 허브 로봇(10)은 하나 이상의 T1 로봇(11)에게 파티셔닝 정보를 전송한다(S22). 파티셔닝 정보를 수신한 T1 로봇(11)은 T2 로봇(12)에게 파티셔닝 정보를 전송한다(S23). 이러한 과정은 T1 내지 Tk 로봇들에게 전달되어 전체 로봇들은 파티셔닝 정보를 확인하고 저장할 수 있다.
이후 허브 로봇(10) 및 다른 로봇들(11, 12)은 각각 파티셔닝된 영역으로 이동하여 작업을 수행한다(S25, S26, S27). 작업 수행 과정에서 각각의 로봇들(10, 11, 12)은 파티셔닝된 영역 내에서 작업을 수행한 공간에 대한 정보, 즉 작업 완료 정보를 생성하며, 또한 새로운 장애물과 같은 변화된 환경 정보를 생성한다. 그리고 생성된 정보는 S31(T1 로봇의 작업 완료 정보 및 변화된 환경 정보 전송), S32(T2 로봇이 T1 로봇에게 작업 완료 상황 및 변화된 환경 정보 전송), S33(T1 로봇이 T2 로봇의 작업 완료 정보 및 변화된 환경 정보 전송)의 단계에 따라 허브 로봇(10)에게 전송된다.
허브 로봇(10)은 작업이 완료되지 않은 경우, 수신된 정보에 기반하여 재파티셔닝을 수행한다(S41). 그리고 S22 내지 S23 과 같이 재파티셔닝된 정보를 전송한다(S42). T1 로봇(11)은 T2 로봇(12)에게 재파티셔닝 정보를 전송한다(S43).
이후 각 로봇들은 각각 각각 파티셔닝된 영역으로 이동하여 작업을 수행한다(S45, S46, S47). 작업의 수행이 완료되기 까지는 S31 내지 S47 단계를 진행할 수 있다.
도 1 및 도 2에서 살펴본 로봇들의 동작은 맵에 기반하여 이루어진다. 맵은 공간에 대한 정보를 의미하며 맵 상에는 다양한 정보들이 저장될 수 있다. 맵은 중첩적으로 구성될 수 있다. 앞서 살펴본 고정맵은 고정된 장애물의 위치가 배치된다. 고정맵은 전체 공간의 정보를 저장하며 장애물 등 로봇이 이동할 수 없는 지점을 보여준다. 고정맵에 기반하여 로봇은 전체 공간 또는 일부 공간에 대해 파티셔닝을 수행하며 작업을 수행하는 과정에서 커버드 맵을 생성할 수 있다.
따라서 파티셔닝 맵은 고정맵 전체 또는 일부를 둘 이상의 로봇이 동작할 수 있는 공간으로 나눈 맵을 의미한다. 커버드 맵은 각 로봇에게 할당된 파티셔닝된 공간 내에서 로봇이 작업을 수행한 맵을 의미한다. 커버드 맵은 전술한 고정맵 전체 또는 일부에 대응할 수 있다. 예를 들어 로봇들은 모두 전체 공간에 대응하는 고정맵 및 각 고정맵 내의 각 셀들에서 로봇이 작업했는지 여부를 확인하는 커버된 영역에 대한 정보를 임시로 저장할 수 있다.
도 1 및 도 2를 정리하면 다음과 같다.
N개의 로봇이 서로 협업하며, 주어진 공간을 N개의 파티션으로 초기 분할한다. 분할은 도 1과 같이 각각의 로봇이 분할할 수도 있고 도2와 같이 허브 로봇이 분할하여 분할된 영역에 대한 정보(파티셔닝 정보)를 다른 로봇에게 제공할 수 있다. 그리고 각 로봇들은 파티셔닝 정보에 따라 지정된 충전 위치에서 각자의 파티셔닝 영역으로 이동한다.
로봇의 이동 목적지는 근접한 파티셔닝의 로봇과의 통신이 확보 되는 지점으로 자동 설정될 수 있다. 이는 장애물이 배치되지 않은 지점을 선택하는 것을 포함한다. 최소 한대 이상의 근접 파티셔닝의 로봇과 연결이 가능하도록 이동하며, 자신의 현재 영역의 커버리지를 최대화 할 수 있는 다음 셀로 이동하여 작업을 수행한다.
도 1의 분산 통신 방식에 따를 경우 통신망으로 연결되는 로봇들은 서로간의 현재 커버리지 상태와 현재 위치, 장애물 정보 등을 기반으로 다음 최적화된 파티셔닝을 진행하며 그를 토대로 다시 커버리지 작업을 수행한다.
도 2의 허브 통신 방식에 따를 경우 통신망으로 연결되는 로봇들은 각자의 커버리지 상태와 현재 위치, 장애물 정보를 직접 또는 간접으로 허브 로봇에게 전송한다. 허브 로봇은 전송받은 정보에 기반하여 다음 최적화된 파티셔닝을 진행하며 파티셔닝한 정보를 다른 로봇들에게 제공하고, 각각의 로봇들은 새로운 파티셔닝 정보에 기반하여 다시 커버리지 작업을 수행한다.
이 과정에서 특정 로봇이 임무 수행이 불가능한 상황이 되면 그 로봇을 제외하고 남은 로봇들이 협업하여 작업을 지속할 수 있다. 예를 들어 R3 로봇이 동작할 수 없는 상황인 경우 R3 로봇을 제외하고 전체 공간을 4개로 재파티셔닝하여 모든 영역이 커버 될 때까지 작업을 수행할 수 있다.
도 3 및 도 4는 본 발명의 일 실시예에 의한 고정맵의 구성을 보여주는 도면이다. 전체 공간에서 장애물의 위치는 도 3의 51과 같이 확인될 수 있다. 그리고 전체 공간을 소정의 셀로 나누면 도 3의 52가 된다. 도 3의 52를 기반으로 장애물이 있는 셀과 장애물이 없는 셀의 값을 달리 설정하면 고정맵이 될 수 있다. 물론, 셀의 값 외에도 52와 같이 검은 색이라는 컬러로도 장애물을 표시할 수 있다. 컬러로 표시하는 것은 로봇의 디스플레이부가 저장된 셀의 값을 특정한 셀로 표시하는 것을 포함하며, 로봇의 맵 저장부에 저장될 경우에는 도 4와 같이 각 셀에 배치된 장애물을 지시하는 값이 저장될 수 있다.
도 4는 고정물들을 하나의 단일한 값인 F라는 값으로 설정한 실시예이다. 210은 고정맵을 보여주며, F가 표시된 셀은 고정물이 배치된 셀을 의미한다. 실시예에 따라 F 대신 숫자나 혹은 다른 기호(f, a, b 등)으로 고정물의 특성에 따라 분류할 수 있다. 물론, 도 3의 52와 같이 검은 색으로 표시할 수 있다. 즉 고정맵은 52 또는 210 등 다양한 형태로 표시 및 저장될 수 있다.
셀을 지시하기 위해 좌측 및 하단의 좌표 정보를 이용할 수 있다. 좌하단을 (0, 0)으로, 우상단을 (21, 13)으로 지시할 수 있다.
도 1의 S1 또는 도 2의 S21은 로봇이 작업을 할 공간(최대 공간은 고정맵의 공간이며 최소 공간은 고정 맵의 하위 공간)을 로봇의 수 대로 파티셔닝을 수행한다. 고정맵에 대한 정보는 동일하며, 로봇이 작업을 할 공간 역시 동일한 입력값으로 주어지므로 다수의 로봇이 파티셔닝을 하여도 그 결과는 동일할 수 있다.
그 결과 도 1의 S1 또는 도 2의 S21의 과정을 적용하면 로봇의 맵 저장부는 파티셔닝 맵이 저장된다. 파티셔닝 맵은 고정물의 위치나 공간을 고려하여 N개의 로봇들이 효율적으로 작업할 수 있도록 공간을 세분화한 것을 의미한다. 이하 로봇의 개수인 N 이 5인 실시예를 중심으로 살펴본다.
도 5는 본 발명의 일 실시예에 의한 파티셔닝 맵의 구성을 보여주는 도면이다. 도 4의 고정맵(210)에 각 로봇에게 할당된 영역이 로봇의 식별정보(1~5)가 표시된 파티셔닝 맵(220a)을 살펴본다. 1은 제1로봇에 할당된 셀이며, 2는 제2로봇에 할당된 셀을 의미한다. 이렇게 총 1~5까지 5개의 로봇들이 작업할 공간을 파티셔닝하였다. 시각적으로 구별될 수 있도록 F 부분에 해칭으로 표시하였으며 각 파티셔닝 공간 사이의 경계 부분을 굵은 선으로 표시하였다.
도 5에서 각 로봇들 간의 파티셔닝 공간을 설정한 후 로봇은 해당 파티셔닝 영역으로 이동한다(도 1의 S2 및 도 2의 S25~S27). 도 2의 경우 로봇들 간에 파티셔닝 정보를 공유하는 과정(S22, S23)가 추가적으로 수행될 수 있다.
도 5에서 동그라미로 표시된 영역은 로봇이 파티셔닝한 영역으로 이동한 위치를 보여준다.
로봇은 해당 파티셔닝 맵에서 작업하는 과정에서 일정한 시간이 지난 후, 변화된 환경 정보에 기반하여 재파티셔닝을 수행할 수 있다. 일 실시예로, 우하단에 예측하지 못한 이동 장애물이 발생한 경우 우하단 영역을 제3로봇이 작업할 수 없으므로 인접한 제2로봇의 영역과 제4 로봇의 영역, 그리고 이들 제2 및 제4로봇의 영역에 인접한 제1로봇의 영역까지 재파티셔닝할 수 있다. 이에 대해 보다 상세히 살펴본다. 이러한 재파티셔닝 방식은 도 1의 방식(분산 통신 방식) 및 도 2의 방식(허브 방식)에 따라 달리 구현될 수 있다. 먼저 도 1의 방식에 대해 살펴본다.
도 6은 본 발명의 일 실시예에 의한 로봇들이 각각의 파티셔닝 영역으로 이동한 상태에서의 분산 통신 방식의 통신 링크를 보여주는 도면이다. 각 로봇은 인접한 다른 로봇과 통신 채널을 연결한다. 제1로봇(R1), 제2로봇(R2), ..., 제5로봇(R5)이 배치되며, 도 5의 동그라미 위치에 대응한다. 인접한 로봇들 사이에는 통신 링크가 형성되는데 i번 로봇과 j번 로봇 사이의 링크를 Linkij라 표시한다.
도 6에는 5개의 링크들이 표시되어 있다. 로봇들 간의 링크 형성은 각 로봇의 현재 위치를 기준으로 시계 방향 또는 반시계 방향으로 구성할 수 있다. 또는 각 로봇이 할당된 파티셔닝 영역에서 인접한 경계선의 길이가 긴 파티셔닝 영역의 로봇과 통신 링크를 형성할 수 있다. 또는 로봇과 로봇 사이에 장애물이 배치되었는지 여부에 따라 통신 링크를 형성하거나 혹은 형성하지 않을 수 있다.
특히, 장애물에 의해 통신이 원할하지 않은 로봇이 우선적으로 통신 링크를 설정할 수 있도록 할 수 있다. 이는 각 로봇이 자신의 파티셔닝 위치로 이동한 후 브로드캐스팅 방식으로 이동 완료 상태를 순서대로 메시지로 전송한 후 메시지가 다른 로봇들에게 전송되지 않은 횟수가 가장 많은 로봇이 통신 상태가 좋지 않은 것으로 판단하여, 다른 로봇과의 링크를 설정함에 있어 우선 순위를 줄 수 있다.
로봇은 파티셔닝 정보에 기반하여 파티셔닝 영역으로 이동한 후 각각 작업을 수행한다. 수행 과정에서 일부 로봇은 주어진 파티셔닝 영역에서 작업을 수행하는데 있어 고정맵을 기준으로 변화가 발생하지 않은 상태가 될 수 있다. 그러나 일부 로봇은 주어진 파티셔닝 영역에서 작업을 수행하는 과정에서 고정맵에서 예측하지 못한 변화가 발생한 상태일 수 있다. 앞서 도 5의 맵에서 우측 하단의 제3 로봇의 파티셔닝 영역에 장애물이 발생할 수 있다.
이 경우, 제3로봇(R3)은 자신이 할당받은 파티셔닝 영역에 장애가 발생하여 실제로 작업할 수 있는 공간이 줄어들게 되므로, 인접한 다른 로봇들(R2/R4)에게 재파티셔닝을 요청하여 제2로봇 및 제3로봇, 그리고 제3로봇 및 제4로봇 사이에 재파티셔닝이 완료된다(S61, S62).
한편, 제2로봇(R2) 및 제4로봇(R4) 역시 재파티셔닝 결과에 따라 자신의 파티셔닝 영역이 변경된 경우 인접한 다른 로봇들에게 재파티셔닝을 요청할 수 있다. 따라서, 제2로봇(R2)은 제1로봇(R1)에게 재파티셔닝을 요청하고(S63), 제4로봇(R4)은 제5로봇(R5)에게 재파티셔닝을 요청한다(S64). 그리고 그 결과 재파티셔닝이 이루어진다. 이후 제1로봇(R1)과 제5로봇(R5)은 각각 재파티셔닝을 했으며, 새로이 파티셔닝이 필요한지 상호 확인한 후(S65) 재파티셔닝을 완료하거나 더이상 진행하지 않는다.
여기서 파티셔닝은 인접한 로봇들 사이의 경계 영역을 변경하는 것을 의미한다. 예를 들어, S61 과정에서 제2로봇과 제3로봇에게 할당된 파티셔닝 영역 내에서 재파티셔닝 하여 과도한 재파티셔닝의 전파가 발생하지 않도록 할 수 있다.
도 7은 본 발명의 일 실시예에 의한 재파티셔닝된 맵의 구성을 보여주는 도면이다. 도 5와 비교할 때 제3로봇의 파티셔닝 영역이 장애물(X로 표시)들로 인해 좁아진 결과 제3로봇은 작업할 수 있는 면적이 줄어들게 되므로, 인접한 로봇들(R2, R4)의 영역과 재파티셔닝하고, 이는 다시 제2로봇/제4로봇과 인접한 제1로봇 및 제5로봇과의 영역도 재파티셔닝하는 결과를 도출한다. 따라서, 특정 로봇의 작업 영역이 줄어든 환경에서 줄어든 영역을 반영하여 재파티셔닝하여 로봇이 보다 빨리 동작할 수 있다.
한편, 도 6의 과정에서 장애물이 발생하지 않은 경우라도 각자의 로봇이 작업을 수행한 속도에 따라 재파티셔닝을 수행할 수 있다. 예를 들어 특정 로봇이 할당된 파티셔닝 내에서 작업을 신속하게 수행한 경우에 재파티셔닝하여 인접한 영역까지 작업을 수행할 수 있도록 한다.
앞서 도 6의 과정을 그대로 적용할 수 있다. 이를 도 8의 파티셔닝 맵을 기준으로 살펴본다.
도 8은 도 5의 파티셔닝 맵에서 작업이 완료된 영역을 표시한 도면이다. 도 8은 도 5의 파티셔닝 맵에서 각각의 로봇이 작업을 완료한 셀을 "C"로 표시한 파티셔닝 맵(220c)을 도시하고 있다.
일정한 기간(예를 들어 10분 또는 30분 등)동안 각각의 로봇들은 도 5의 파티셔닝 맵(220a)을 기준으로 작업을 수행하고, 작업이 완료된 영역을 "C"와 같이 표시한다. 이후 로봇은 인접한 로봇들과 자신이 작업을 완료한 영역의 비율에 대한 정보를 교환한다.
예를 들어, 제1로봇은 할당된 영역 내에서 6개의 셀의 작업을 완료했다. 제2로봇은 3개의 셀을, 제3로봇은 18개의 셀을, 제4로봇은 20개의 셀을, 제5로봇은 12개의 셀을 완료했다. 각 로봇들은 인접한 로봇들의 작업 완료 상태(커버한 영역의 개수 또는 비율)을 확인하고 인접한 로봇과 영역을 재분배한다. 앞서 도 6에서 살펴본 링크들에 기반하여 각각의 로봇들끼리 통신을 한 후, 재파티셔닝을 수행한다.
작업이 완료한 공간은 제외하고 나머지 셀들의 수를 기반으로 각 로봇들에게 할당하여 재파티셔닝을 수행할 수 있다. 재파티셔닝 과정에서 각 로봇이 작업을 처리한 속도를 기준으로 재파티셔닝할 수 있다. 예를 들어 제2로봇은 로봇이 가지는 상태 정보(로봇의 배터리 잔량 등)와 환경적 정보를 반영하여 처리 속도가 매우 낮은 것으로 인접한 로봇들(제1/제3 로봇)이 판단하여 제2로봇에 할당할 영역을 줄일 수 있다.
마찬가지로 셀을 처리하는 속도가 높은 로봇은 새로이 파티셔닝이 될 경우라 하여도 작업 처리 속도가 높아질 것으로 가정하여 파티셔닝 공간을 더 많이 할당할 수 있다. 예를 들어 20개의 셀을 처리한 제4로봇이 할당받을 영역을 넓힐 수 있다.
도 9는 본 발명의 일 실시예에 의한 도 7의 파티셔닝 맵을 기준으로 재파티셔닝한 결과를 보여주는 도면이다. 도 7과 달리 작업 처리 속도가 높은 제4로봇에게 할당된 파티셔닝 영역이 확장되었다. 그리고 각 파티셔닝 영역들이 조정된 결과 로봇들이 보다 효율적으로 동작할 수 있다.
도 6 내지 도 9는 각 로봇들이 인접한 로봇들과 통신을 수행하며 재파티셔닝한다. 다음으로 허브 통신을 기준으로 재파티셔닝하는 과정을 살펴본다.
도 10은 본 발명의 일 실시예에 의한 허브 로봇을 중심으로 통신망의 설정을 보여주는 도면이다.
도 5와 같이 파티셔닝된 공간에서 동그라미 위치로 이동한다. 설명의 편의를 위해 장애물만 표시된 도 3의 51 상에 로봇들의 위치를 표시한다. 도 10에서 제1로봇(R1)은 거리 및 장애물로 인해 제4로봇(R4)과 제5로봇(R5)과 통신이 가능한 상태이다(Link14, Link51). 여기서 R4, R5가 T1 로봇이 된다.
한편 제4로봇은 제2로봇과 통신이 가능하다(Link24). 여기서 R2는 T2 로봇이 된다.
제3로봇은 장애물에 막혀있으나 통신 신호의 반사로 인해 제4로봇과 통신이 가능하다(Link34). 마찬가지로 R3는 T2 로봇이 된다.
따라서, 도 10에서 허브 로봇(R1) 및 다른 로봇들(R2~R5)은 각자 위치한 파티셔닝 영역에서 작업을 수행하고, 일정한 주기를 가지고 작업을 완료한 영역과 새로운 장애물이 발견된 정보 등 변경된 환경 정보를 허브 로봇(R1)이 수집한다. 수집한 결과 허브 로봇(R1)은 변경된 상황에 따라 도 7 내지 도 9와 같이 재파티셔닝을 수행할 수 있다. 다만 정보의 흐름이 도 6과 다르다. 이에 대해 도 11에서 살펴본다.
도 11은 본 발명의 일 실시예에 의한 로봇들이 각각의 파티셔닝 영역으로 이동한 상태에서의 허브 통신 방식의 통신 링크를 보여주는 도면이다.
허브 로봇(R1)의 트리거에 따라, 혹은 미리 정해진 주기에 따라 각 로봇은 수집한 정보를 허브 로봇(R1)에게 직접 또는 간접으로 전송한다.
R2 및 R3가 R4에게 환경 정보를 전송한다(S71, S72). R5가 R1에게 환경 정보를 전송한다(S73). 그리고 R4는 자신이 수집한 환경정보와 R2, R3가 전송한 환경 정보를 R1에게 전송한다(S74). 허브 로봇은 수집한 환경정보들을 기반으로 장애물이 발생했거나 작업을 완료한 영역에 대해 재파티셔닝이 필요한지 확인하여, 재파티셔닝을 수행한 후 새로운 파티셔닝 정보를 R2~R5에게 직접 또는 간접으로 전송한다.
예를 들어, 허브 로봇(R1)은 제5로봇(R5)에게 새로운 파티셔닝 정보를 전송한다(S76). 또한, 허브 로봇(R1)은 제4로봇(R4)에게 새로운 파티셔닝 정보를 전송한다(S77). T1 로봇인 제4로봇(R4)은 T2로봇인 R2, R3에게 새로운 파티셔닝 정보를 전송한다(S78, S79). 이후 도 2의 S45 내지 S47에서 살펴본 바와 같이 재파티셔닝된 영역으로 각각의 로봇이 이동하여 작업을 수행한다.
본 발명을 적용할 경우, 대면적 공간에서 다중로봇들이 분산형 통신 시스템을 이용하거나 허브형 통신 시스템을 이용하여 모든 로봇의 연결성이 확보되지 않아도 실시간 파티셔닝을 수행하여 각 로봇이 작업할 커버리지를 최적화 시킬 수 있다. 특히, 허브형 통신 시스템에 있어서도, 허브 로봇과 통신이 가능한 로봇들과 그렇지 않은 로봇들을 분류하여 계층적으로 로봇들이 통신할 수 있도록 한다.
특히, 본 발명을 적용할 경우, 다중로봇이 주어진 대면적 환경에서 환경의 형태 및 동적/정적 장애물 정보를 모두 고려한 실시간 파티셔닝을 통해 협업하여 최적으로 지역을 커버할 수 있다.
만약, 본 발명을 적용하지 않을 경우, 초기에 1회 면적을 분할하여 작업을 수행하고 재분할(repartitioning) 작업을 수행하지 않을 경우 작업 과정에서 발생하는 환경의 변화와 현재까지 커버된 영역을 반영하지 못한다. 그러나 본 발명에서 살펴본 재파티셔닝을 주기적으로 수행할 경우 현재까지 작업한 영역 및 새로운 장애물이 발생한 영역을 반영하여 새로이 작업 효율을 높이도록 분할 영역을 변경할 수 있으므로 효율적인 커버리지 작업이 가능하다. 특히, 본 발명에서는 커버리지의 최적화를 위하여 동적 및 정적 장애물과 공간의 형태 또한 반영하여 재파티셔닝할 수 있다.
특히, 커버리지 정보에 기반하여 각 로봇마다 상이한 작업 처리 속도를 포함하는 현재 상황(장애물, 커버리지면적, 속도 등)을 실시간으로 반영하여 실시간 파티셔닝을 수행함으로서 효율적인 커버리지 작업이 가능하다. 즉, 특정 영역에 장애물이 많은 경우, 커버한 영역의 차이가 큰 경우 등 다양한 상황을 고려한 실시간 파티셔닝을 진행하여 효율적인 커버리지 작업이 가능하다.
도 12는 본 발명의 일 실시예에 의한 로봇의 구성을 보여주는 도면이다. 로봇(500)은 분산 통신 방식의 로봇이 될 수 있다. 또는 허브 통신 방식의 허브 로봇이 될 수 있다. 또는 허브 통신 방식에서 허브가 아닌 로봇이 될 수 있다.
로봇(500)의 구성요소로 외부에 배치된 객체를 센싱하는 센싱부(100), 로봇이 동하는 공간의 고정 객체의 위치를 저장하는 맵 저장부(200), 로봇을 이동시키는 이동부(310), 공간에서 파티셔닝 정보 및 환경 정보를 송수신하는 통신부(300), 그리고 로봇이 작업을 수행하는 작업부(320)를 포함한다. 또한 각 구성요소들을 제어하는 제어부(400)와 로봇의 동작 상태를 출력하고 외부로부터 지시를 수신하는 인터페이스부(330)를 포함한다.
센싱부(100)는 외부 사물의 존재 혹은 거리, 특성 등을 센싱하는 다양한 종류의 센서들을 의미한다. 본 발명의 실시예들을 적용할 경우, 센싱부(100)는 뎁스 값을 산출하는 뎁스 센싱부, 비전 정보를 산출하는 비전 센싱부, 적외선(IR) 센싱부, 초음파 센싱부, 라이다 센싱부 등을 포함할 수 있다.
제어부(400)는 맵 저장부(200)에 저장된 고정맵(210)에 기반하여 파티셔닝 맵(220)을 생성한다. 또한, 제어부(400)는 일정한 시간 간격 후에 센싱부(100)가 센싱한 객체 중 맵 저장부(200)의 고정 객체에 해당하지 않는 객체(새로운 장애물)와 로봇이 작업을 수행한 공간에 대한 정보 중 어느 하나 이상을 환경 정보로 생성한다.
생성된 환경 정보는 이웃 로봇 또는 허브 로봇 등 다른 로봇과 송수신할 수 있다. 즉, 제어부(400)는 통신부를 제어하여 파티셔닝 정보와 환경 정보를 송수신할 하나 이상의 이웃 로봇을 결정하고 이웃 로봇에게 파티셔닝 정보와 환경 정보를 전송하거나 혹은 교환하여 새로운 파티셔닝을 수행하여 재파티셔닝 맵을 생성한다.
이웃 로봇의 결정 방식은 도 6에서 살펴본 바와 같이 인접한 파티셔닝 영역에 배치된 로봇과을 이웃 로봇으로 결정하고, 이웃 로봇과 통신 링크를 설정하는 분산 통신 방식을 일 실시예로 한다. 또한, 도 10 및 도 11과 같이 허브 로봇을 중심으로 T1 로봇과 T2 로봇이 구분된 경우 T1 로봇은 허브 로봇과 통신 링크를 설정하여 허브 로봇에게 파티셔닝 정보와 환경 정보를 전송한다. 반면 T2 로봇은 T1로봇과 통신 링크를 설정하고, T1 로봇에게 파티셔닝 정보와 환경 정보를 전송한다.
제어부(400)는 도 7에서 살펴본 바와 같이 맵 저장부(200)에 저장된 공간의 고정 객체의 위치와 공간의 넓이와 공간에서 작업할 로봇의 수 N을 입력값으로 하여 N 개로 분할된 초기 파티셔닝 맵(220a)을 생성할 수 있다.
도 1 및 도 6에서 살펴본 바와 같이 분산 통신 방식에 기반할 경우 로봇의 이웃 로봇은 로봇에 할당된 파티셔닝 영역에 인접한 파티셔닝 영역을 할당받은 로봇이 될 수 있다. 그리고 제어부(400)는 이웃 로봇과 환경 정보를 송수신하여 새로운 파티셔닝 영역을 생성하는 과정을 도 6에서 살펴보았다.
도 2 및 도 11에서 살펴본 바와 같이 허브 통신에 기반할 경우 로봇(500)은 허브 로봇의 역할을 수행할 수 있다. 이 경우 허브인 로봇(500)의 이웃 로봇은 T1로봇이다. 또한 T1 로봇의 이웃 로봇은 T2 로봇이 되며 이러한 구성은 Tk 로봇까지 증가할 수 있다(k는 로봇의 개수 N 보다 작은 수)
허브인 로봇(500)의 통신부(300)는 이웃 로봇의 환경 정보를 직접 수신할 수 있으며 또한 이웃 로봇의 이웃 로봇으로부터 간접적으로(이웃 로봇을 매개로 하여) 환경 정보를 수신할 수 있다. 그 결과 제어부(400)는 수신한 환경 정보에 기반하여 이웃 로봇들(T1 & T2 & ... Tk)에게 할당할 재파티셔닝 맵을 생성한 후 이웃 로봇들에게 직접 또는 간접으로 파티셔닝 영역에 대한 정보를 통신부(300)가 전송하도록 제어한다.
또한, 분산 통신 방식 또는 허브 통신 방식 모두 로봇(또는 허브 로봇)의 제어부(400)는 재파티셔닝 하는 과정에서 변경된 환경 정보를 반영할 수 있다. 이 과정에서 어느 하나 이상의 로봇이 동작할 수 없는 상황이 발생할 수 있다. 따라서, 제어부(400)는 맵 저장부(200)에 저장된 공간의 고정 객체의 위치와 환경 정보, 그리고 공간에서 작업할 로봇의 수 N보다 작거나 같은 수를 입력값으로 하여 N보다 작거나 같은 개수로 분할된 재파티셔닝 맵을 생성한다. 모든 로봇이 동작 가능한 경우 N 개의 파티셔닝이 이루어진다. 하나의 로봇이 동작할 수 없는 경우 (N-1)개의 파티셔닝이 이루어진다.
앞서, 도 8 및 도 9에서 살펴본 바와 같이 로봇이 작업한 셀은 재파티셔닝 과정에서 제외시키고 파티셔닝을 수행한다. 이때, 제어부(400)는 환경 정보에서 이웃 로봇 및 로봇의 작업을 수행한 셀에 기반하여 로봇의 작업 속도를 산출하여 작업 속도가 높은 로봇에게 더 많은 영역이 할당된 재파티셔닝 맵을 생성할 수 있다. 도 9에서 작업 속도가 빠른 제4로봇에게 보다 넓은 영역이 할당된 실시예를 포함한다.
다음으로 재파티셔닝 과정에서 로봇의 상태 정보를 반영하여 재파티셔닝 할 수 있다. 예를 들어, 환경 정보는 로봇 및 이웃 로봇의 작업 가능 시간 또는 작업 가능 면적에 대한 정보를 더 포함할 수 있다. 작업 가능 시간은 로봇의 배터리 잔량에 기반하여 산출할 수 있다. 작업 가능 면적 역시 로봇의 배터리 잔량에 기초하여 산출할 수 있다. 또는 전술한 작업 속도에 기반하여 작업 가능 면적을 산출할 수 있다.
제어부(400)는 이웃 로봇 및 로봇 중 작업 가능 시간 또는 작업 가능 면적이 더 큰 값을 가지는 로봇에게 더 많은 영역이 할당된 재파티셔닝 맵을 생성하여 로봇의 작업 효율을 높일 수 있다.
도 12의 로봇의 구성 및 전술한 로봇의 동작 과정을 정리하면 다음과 같다. 재파티셔닝 하는 기준으로는 각 파티셔닝의 중심 셀 혹은 시작 셀(노드) 까지의 이동 거리와, 현재 배치된 장애물의 정보, 그리고 각 로봇이 작업을 수행한 영역(커버한 영역), 그리고 로봇의 상태 정보와 같은 환경 정보가 기준이 된다. 장애물 정보를 환경 정보에 포함시키는 과정에서 효율을 고려하여 일정 크기 이하(예를 들어 셀 보다 작거나 로봇보다 작은 크기)의 장애물은 배제할 수 있다. 이는 재파티셔닝 과정에서 작은 크기의 장애물을 배제하는 것을 의미하며 로봇은 이동 및 작업 과정에서 작은 크기의 장애물을 회피하여 동작한다. 특히, 재파티셔닝 과정에서 중요하게 반영해야 하는 것은 장애물, 한동안 이동하지 않은 동적 장애물이다.
한편, 커버한 영역을 환경 정보에 포함시킬 경우, 제어부(400)는 장애물에 의해 다른 로봇 보다 커버를 많이 못한 경우, 파티션 형태가 단순하여 커버를 많이 한 경우 등 다양한 상황을 반영할 수 있다. 또한 장애물의 크기가 큰 경우 로봇이 장애물의 주변을 이동하며 작업하는 방식 보다는 장애물의 위치를 파티셔닝 경계로 설정하여 로봇이 효율적으로 이동할 수 있도록 한다.
뿐만 아니라 로봇의 상태를 재파티셔닝 과정에서 반영할 수 있는데, 예를 들어 로봇이 동작하지 못한 상황이 발생하여 나머지 로봇만 작업이 가능한 경우, 혹은 로봇의 크기나 작업 처리 속도가 다른 경우를 반영할 수 있다. 도 13은 본 발명의 일 실시예에 의한 로봇이 공간을 분할-작업하는 과정을 보여주는 도면이다. 본 발명의 일 실시예에 의하면, 도 13에 제시된 바와 같이, 로봇(500)의 제어부(400)가 공간에서 작업할 다수의 로봇(500)들의 파티셔닝 영역을 포함하는 초기 파티셔닝 맵을 생성한다(S81).
초기 파티셔닝 맵은 도 5와 같이 구성될 수 있으며 맵 저장부(200)에 파티셔닝 맵(220)으로 저장된다. 초기 파티셔닝 맵은 통신 방식이 분산/허브와 무관하게 모든 로봇들이 생성할 수 있다. 만약 허브 통신 방식인 경우 허브 로봇이 생성한 초기 파티셔닝 맵을 다른 로봇에게 전송하는 과정을 추가로 포함한다.
이후, 로봇(500)의 이동부(310)가 로봇(500)에게 할당된 파티셔닝 영역으로 로봇(500)을 이동시키고(S82), 로봇(500)의 작업부(320)가 파티셔닝 영역에서 로봇(500)에게 할당된 작업을 수행한다(S83). 이후, 제어부(400)가 로봇(500)의 센싱부(100)가 센싱한 객체 중 로봇(500)의 맵 저장부에 저장된 고정 객체에 해당하지 않는 객체, 그리고 로봇(500)이 작업을 수행한 공간에 대한 정보 중 어느 하나 이상을 제1환경 정보로 생성한다(S84). 생성한 정보는 이후 재파티셔닝 맵의 생성에 반영할 정보가 된다.
또한, 로봇(500)의 통신부는 다수의 로봇들 중 하나 이상의 이웃 로봇으로부터 해당 이웃 로봇의 제2환경 정보를 수신한다(S85). 분산 통신 방식인 경우, 이웃 로봇은 하나 또는 두 개와 같이 전체 로봇의 일부가 된다. 그리고 이웃 로봇은 통신이 가능한 인접한 거리의 로봇이며 도 6에서 살펴보았다.
허브 통신 방식인 경우 도 10 및 도 11에서 살펴본 바와 같이 허브 로봇을 중심으로 인접한 로봇들이 이웃 로봇들(T1 로봇)이 되고, 이웃 로봇들에 인접한 로봇들이 T2 로봇이 됨을 살펴보았다.
이후 제어부(400)가 제1환경 정보 및 제2환경 정보를 이용하여 다수의 로봇들 중 일부 또는 전체의 로봇들에 할당할 재파티셔닝 맵을 생성한다. 분산 통신 방식의 경우, 인접한 이웃 로봇들과 환경 정보들을 교환하고 재파티셔닝 맵을 생성한다. 이 경우 전체 파티셔닝 맵 중 일부만 업데이트 될 수 있다.
한편, 허브 통신 방식인 경우 허브 로봇은 전체 맵을 재파티셔닝 맵으로 변환할 수 있다.
도 14는 본 발명의 일 실시예에 의한 초기파티셔닝맵을 생성한 후 각 로봇이 인접한 영역으로 이동하는 과정을 보여주는 도면이다. 도 14는 근접하게 배치된 로봇들 사이에서 파티셔닝 영역을 설정하는 과정이다.
도 14에서 4개의 로봇(R1~R4)가 인접한 상태에서 각자 초기 파티셔닝 맵을 산출하거나(S91) 혹은 어느 하나의 로봇(R1)이 초기 파티셔닝 맵을 산출하여 다른 로봇들에게 브로드캐스팅 또는 유니캐스트 방식으로 전송할 수 있다(S92). 이후, 각 로봇의 제어부는 각 파티셔닝 영역과의 적합도를 산출하여 적합도가 높은 파티셔닝 영역을 선정하고, 선정한 파티셔닝 영역에 대한 정보를 각 로봇의 식별 정보와 함께 메시지 형태로 순차적으로 브로드캐스팅하거나(S93~S96) 또는 특정한 로봇(R1)에게 각 로봇들(R2~R4)이 선정한 파티셔닝에 대한 정보를 유니캐스트 방식으로 전송할 수 있다.
브로드캐스팅의 경우 동일한 파티셔닝 영역의 적합도를 선정한 R3, R4는 서로 통신하여 P3를 할당받을 로봇을 결정할 수 있다. 파티셔닝 영역의 적합도를 선정하기 위해 두 로봇의 제어부는 재파티셔닝 영역을 결정하는 것과 같은 방식으로 통신할 수 있다.
유니캐스트 방식으로 R1이 모든 선정된 파티셔닝 영역 정보를 수신한 경우 R1이 중복되는 파티셔닝 영역을 조정하여 다시 S92의 방식과 같이 파티셔닝 영역에 할당된 로봇의 정보를 각 로봇들에게 전송할 수 있다.
또한, 파티셔닝 영역에 대해 할당된 로봇들 및 이들의 위치가 확정되면 각 로봇들은 해당 파티셔닝 영역으로 이동하기 전에 이웃 로봇을 미리 선정할 수 있다. 파티셔닝 맵은 고정 장애물들의 위치도 배치되어 있으므로, 로봇들은 인접한 파티셔닝 영역에 할당된 다른 로봇들을 식별하여 이웃 노드로 통신을 미리 연결할 수 있다.
혹은 파티셔닝 영역으로 이동한 후, 로봇의 제어부(400)는 통신 연결이 가능한 로봇을 검색하여 가장 통신 신호가 양호한 로봇을 이웃 로봇으로 선정할 수 있다.
도 15는 본 발명의 다른 실시예에 의한 로봇들이 상이한 위치에 배치되어초기 파티셔닝 맵을 생성한 후 각 로봇이 인접한 영역으로 이동하는 과정을 보여주는 도면이다. 로봇들이 분산되어 배치된 상태에서 서버가 초기 파티셔닝 맵을 생성할 것을 로봇들에게 명령하는 메시지가 로봇들에게 전송될 수 있다. 또는 로봇들 중 어느 하나 이상이 서버로부터 이러한 메시지를 수신하여, 다른 로봇들에게 수신한 메시지를 전송할 수 있다. 또는 로봇의 제어부(400)들이 일정한 시간에 초기 파티셔닝 맵을 생성하여 작업하도록 스케줄링된 경우 로봇의 제어부(400)는 외부의 지시 없이도 각각 초기 파티셔닝 맵을 생성할 수 있다.
도 14의 과정과 유사하게 각 로봇들의 제어부(400)는 초기 파티셔닝 맵을 생성한다. 또는 허브 로봇의 제어부(400)가 초기 파티셔닝 맵을 생성하여 브로드캐스팅 한 결과 모든 로봇들이 초기파티셔닝 맵을 파티셔닝 맵(220)으로 저장한 상태이다. 허브 로봇과 직접 통신이 불가능한 로봇인 경우 이 로봇에 인접한 다른 로봇이 초기 파티셔닝 맵을 포워드할 수 있다. 각 로봇들에게 초기 파티셔닝 맵이 저장된 상태에서 도 15의 실시예를 살펴본다.
각 로봇들(R1~R4)는 각 로봇의 현재 위치를 확인할 수 있다. 다른 로봇의 위치는 확인한 실시예 및 확인하지 않은 실시예 모두 가능하다. 각각의 로봇들이 자신들의 현재 위치를 기준으로 가장 근접한 파티셔닝 영역의 식별정보를 확인할 수 있다. 또는 각 로봇의 제어부(400)는 각 파티셔닝 영역과의 적합도를 산출하여 적합도가 높은 파티셔닝 영역을 선정할 수 있다.
선정 결과 각 로봇들은 도 14에서 살펴본 바와 같이, 각 로봇의 식별 정보와 선정한 파티셔닝 영역의 식별 정보를 함께 순차적으로 브로드캐스팅할 수 있다. 브로드캐스팅을 순차적으로 하는 것은 신호가 충돌하지 않는 범위 내에서 식별 정보와 파티셔닝 영역의 식별 정보를 전송하는 것을 의미한다. 순차적 전송을 위해 각 로봇들은 파티셔닝 맵을 생성하거나 저장한 후, 미리 약속된 시간(스케줄링된 시간, 예를 들어 5초 등)이 흐른 뒤 로봇의 식별 번호 순서대로 브로드캐스팅을 할 수 있다. 도 15에서는 R1-R2-R3-R4로 전송한다.
그런데 브로드캐스팅 과정에서 각 로봇은 앞서 브로드캐스팅한 로봇의 식별정보 및 해당 로봇이 선택한 파티셔닝 영역 정보를 함께 브로드캐스팅한다. 예를 들어, 제1로봇(R1)이 제1파티셔닝 영역(P1)을 선택하였음을 알리는 메시지인 MSG(R1, P1)를 time01 시점에서 브로드캐스팅하는데(S101), 제2로봇(R2)은 장벽(55)으로 인해 R1의 브로드캐스팅된 메시지를 수신하지 못한 상태이다.
이 상황에서 제2로봇(R2)는 자신이 선택한 제2파티셔닝 영역 정보(P2)를 MSG(R2, P2)로 time02 시점에서 브로드캐스팅할 수 있다(S101). 한편, 제3로봇(R3)는 제2로봇의 메시지는 수신하지 못한 상태에서, 자신에게 할당된 순서에 따라 time03 시점에서 R1의 브로드캐스트 메시지인 (R1, P1)과 자신의 파티셔닝 영역 선택(R3, P3)을 결합한 메시지인 MSG((R1, P1), (R3, P3))를 브로드캐스팅한다(S103).
한편, 제4로봇(R4)는 R1, R2의 메시지 및 R3의 메시지를 모두 수신할 수 있으므로, 이들을 통합하고, 또한 제4로봇이 선택한 파티셔닝 영역에 대한 정보를 포함하여 다음과 같은 메시지로 브로드캐스팅한다(S104).
MSG((R1, P1), (R2, P2), (R3, P3), (R4, P3))
이로 인해 통신 과정에서 고립된 제2로봇(R2)는 제1로봇 및 제3로봇의 파티셔닝 영역에 대한 정보를 확인할 수 있다.
한편, 동일한 파티셔닝 영역인 P3를 선택한 두 개의 로봇인 R3 및 R4는 상호 통신에 기반하거나 로봇의 식별 정보에 따라 우선순위를 두어 P3를 어느 한 로봇에게 할당하고, 나머지 P4 영역을 다른 로봇이 할당받는다. 그리고 R3 및 R4 로봇은 자신이 할당받은 파티셔닝 영역에 대한 정보를 브로드캐스팅한 후 각각의 로봇들은 파티셔닝 영역으로 이동한다.
정리하면 다음과 같다.
로봇의 제어부(400)는 초기 파티셔닝 맵을 생성하고 각 파티셔닝 영역을 선택한다. 선택 방식은 로봇의 현재 위치에서 파티셔닝 영역까지 이동하는데 필요한 거리이며, 이 거리를 산정하는 과정에서 고정맵(210)에 저장된 고정 객체들의 위치를 반영할 수 있다.
또한, 로봇의 제어부(400)는 선택한 파티셔닝 영역 및 파티셔닝 영역에 대한 로봇의 식별 정보를 포함하는 메시지를 통신부(300)를 이용하여 다른 로봇에게 전송한 후, 동일한 파티셔닝 영역을 선택한 다른 로봇이 존재할 경우 파티셔닝 영역을 변경할 수 있다.
변경하는 기준은 로봇의 식별 정보의 우선순위, 또는 로봇의 배터리 잔량, 로봇이 파티셔닝 영역으로 이동하는데 소요되는 시간 또는 거리, 또는 로봇들에게 설정된 우선순위 등을 일 실시예로 한다. 특히, 파티셔닝 영역으로 이동하는 거리와 할당되지 않은 파티셔닝 영역으로 이동하는 거리를 고려하여 변경할 수 있다.
일 실시예로 R3 로봇에서 P3까지 거리는 30미터이며, R3로봇에서 선택되지 않은 P4까지 거리는 50미터이며, R4 로봇에서 P3까지 거리는 20 미터이며, R4 로봇에서 선택되지 않은 P4까지 거리는 35미터인 경우를 살펴본다.
P3까지의 거리는 R4 로봇이 더 가깝지만, 이 경우 R3 로봇은 P4로 이동해야 하는데 이 거리는 50미터가 된다. 반면 R4 로봇은 P4까지 35미터이므로, 이 경우 R3 로봇은 P3에, R4 로봇은 P4에 할당된다. 물론, P4까지의 거리가 R3 로봇 및 R4 로봇 모두 동일할 경우 R4 로봇이 P3에 할당될 수 있다.
도 14 및 도 15의 과정은 재파티셔닝 과정에도 적용될 수 있다.
로봇들이 각 파티셔닝 영역에서 작업을 수행한 후, 지금까지 진행한 작업이 완료된 영역(셀 정보)과 새로운 장애물이 발생하여 작업할 수 없는 공간에 대한 정보, 그리고 로봇의 현재 상태 등을 환경정보로 하여 로봇들 사이에 교환하고, 파티셔닝 영역을 재조정할 수 있다.
특히, 재파티셔닝 과정에서 로봇은 인접한 이웃 로봇들로부터 환경 정보를 수신할 수 있다. 또는 다른 모든 이웃 로봇들로부터 환경 정보를 수신할 수 있다. 그리고 수신한 환경 정보에 기반하여 인접한 이웃 로봇들과 재파티셔닝을 수행하거나, 혹은 모든 로봇들에게 재파티셔닝된 결과를 제공할 수 있다.
본 발명에서 살펴본 바와 같이, 대면적 환경에서의 통신 불안정성을 감안한 분산형 협업 시스템을 구성함으로서 환경변화 및 로봇의 고장과 같은 비상상황에 강인하고 그 상황에 맞는 최적 커버리지 알고리즘을 토대로 운용할 수 있다. 일 실시예로 특정한 기능을 수행하는 로봇(예를 들어 청소 로봇)인 경우, 협업 시스템을 통하여 대면적에서의 능동적으로 빠른 시간 협업으로 작업(청소)을 수행할 수 있다.
또한, 정찰, 보안, 안내 등 특정 임무를 나눠서 스케쥴링하여 협업하는 시스템에도 적용할 수 있다. 특히, 각 로봇들은 현재 상황(장애물, 커버리지면적, 속도 등)을 실시간으로 환경정보로 생성한 후, 실시간 파티셔닝을 수행함으로서 효율적인 커버리지 작업이 가능하다.
커버리지 작업 외에 특정 임무가 추가로 주어졌을 경우에 그 임무를 수행하기 위한 최적 로봇이 선정되고 해당 로봇이 그 임무를 수행하는 중에 나머지 로봇들은 협업하여 계속해서 커버리지 작업을 진행 하는 적응적(Adaptive)한 시스템으로 운영 될 수 있다. 최적 로봇의 선정은 분산 통신 방식의 경우 도 6과 같이 링 형 통신 링크를 만들어서 작업에 대한 메시지를 토큰 형식으로 링을 통해 이동시켜 이를 수행하기에 적합한 로봇이 메시지를 수신하면 해당 작업을 수행할 수 있도록 한다. 허브 통신 방식에서는 허브 로봇이 특정 로봇을 선택하여 작업을 수행하는 명령 메시지를 전송할 수 있다.
또한, 로봇들은 허브 통신 방식과 분산 통신 방식 중에서 현재 로봇들의 통신 상태에 따라 선택할 수 있다. 도 15에서 파티셔닝 및 메시지를 전달하는 방식에 있어서, 모든 로봇들이 통신이 가능한 상태인 것으로 확인될 경우 로봇들은 미리 설정된 우선 순위 또는 식별번호, 혹은 로봇 간의 거리 등에 기반하여 허브 로봇을 선택한다. 그리고 허브 로봇을 중심으로 통신할 수 있다.
따라서, 각 로봇의 제어부는 도 15 과정에서 로봇들 간의 메시지 송수신 과정에서 누락되는 로봇의 수가 없거나 혹은 적은 경우에 허브 통신 방식으로 통신을 수행할 수 있다
또한, 로봇들은 작업을 수행하는 과정에서 주기적으로 통신 방식의 전환을 시도할 수 있다. 예를 들어, 분산 통신 방식으로 작업하는 과정에서 모든 로봇들의 통신 신호가 확인되는 어느 하나의 로봇의 제어부가 통신 방식의 전환을 알리는 메시지를 모든 로봇에게 전송할 수 있다.
따라서 일 실시예에 의하면 로봇들 간에 통신은 항상 브로드캐스팅으로 이루어지되, 분산 통신 방식에서는 각 로봇은 자신과 링크가 연결되지 않은 다른 로봇의 메시지는 무시한다. 다만, 자신과 통신 링크가 연결된 로봇의 메시지만을 확인하여 재파티셔닝을 수행할 수 있다. 이 경우, 모든 로봇들 간의 통신은 다른 로봇도 확인할 수 있으며, 이 과정에서 분산 통신 방식에서 허브 통신 방식으로 전환할 수 있다.
도 16은 본 발명의 일 실시예에 의한 분산 통신 방식에서 로봇이 파티셔닝을 요청하는 과정을 보여주는 도면이다.
한편, 파티셔닝은 특정한 로봇의 요청에 의해 이루어질 수 있다. 예를 들어, 특정 로봇이 할당받은 파티셔닝 영역을 작업하는 도중 재파티셔닝이 필요한 상황을 확인한다. 예를 들어 장애물이 다수 분포된 상황, 작업을 수행할 수 없는 바닥 상태, 혹은 배터리, 혹은 해당 로봇이 매우 빨리 작업을 완료한 경우 등 변화 요소가 발생한 경우이다. 도 16의 R1 내지 R4의 로봇들이 각각 통신 링크를 형성한 상태에서 R2가 R1 및 R3에게 R2가 할당받은 파티셔닝 영역에서 발생한 환경 정보(장애물, 커버리지 등)를 전송하며 재파티셔닝을 요청한다.
R2가 R1 및 R3에게 전송하는 메시지는 MSG(Repartition, R2_Environment) 이며 S111 및 S112 단계에서 전송된다. 이와 달리, R2는 R1 또는 R3 중 어느 하나의 로봇에게만 전송할 수도 있다.
전송 결과 R1 및 R3는 각각 자신들의 환경 정보를 R2에게 전송한다(S113, S114). R2는 R1/R3의 환경 정보에 기반하여 재파티셔닝을 할 우선순위를 R1 또는 R3 중에 선택할 수 있다. 이는 R2의 상황에 따라 달라질 수 있다.
R2가 소정의 새로운 변화로 인해 자신의 파티셔닝 영역 중 일부를 다른 로봇에게 이전시키기 위해 재파티셔닝 할 경우, R2는 R1 및 R3 중에서 자신의 파티셔닝 영역을 일부 이전해갈 수 있는 상태의 로봇을 선택한다. 이 경우 R1 또는 R3 중에서 처리할 파티셔닝 영역이 적게 남아 있는 로봇이 선택될 수 있다.
반대로, R2가 소정의 새로운 변화로 인해 인접한 파티셔닝 영역의 일부를 자신에게 이전시키기 위해 재파티셔닝 할 경우, R2는 R1 및 R3 중에서 그들의 파티셔닝 영역을 일부 가져올 수 있는 상태의 로봇을 선택한다. 이 경우 R1 또는 R3 중에서 처리할 파티셔닝 영역이 많이 남아 있는 로봇이 선택될 수 있다.
선택한 로봇(R1 또는 R3)와 R2가 재파티셔닝을 수행한 후(S115, R1-R2 재파티셔닝), 재파티셔닝된 영역에 따라 로봇들이 이동하여 작업을 수행할 수 있다.
또는 R2는 R1 또는 R3 중에서 재파티셔닝을 하지 않은 남은 로봇(R3 또는과 R1) 중에서 새로이 재파티셔닝을 수행한 후(S116, R2-R3 재파티셔닝) 재파티셔닝된 영역에 따라 로봇들이 이동하여 작업을 수행할 수 있다.
R2로부터 촉발된 재파티셔닝은 R1/R3와 재파티셔닝을 진행한 후, 각각 R1 및 R3가 R4에게 재파티셔닝을 다시 요청할 수 있다. 이 과정에서 R1/R4/R3 역시 앞서 S111 내지 S116의 과정을 반복하여 재파티셔닝할 수 있다.
도 16과 같은 구성에서는 허브 혹은 그 역할을 하는 로봇이 있지 않고 분산 통신으로 진행된다. 따라서, 각 로봇의 식별 번호 혹은 각 로봇에 부여된 통신 상의 우선 순위 등에 기반하여 링 형태로 통신을 하며 각 순서마다 두 로봇의 최적 파티셔닝 영역을 구할 수 있다. 다만, 도 15의 R2와 같이 R4와만 연결이 가능한 로봇이 있는 경우 일부 로봇들만 링 형태를 구성할 수 있다. 도 15의 경우 R1-R4-R3가 링을 이루며, R2가 R4에 추가적으로 연결될 수 있다.
또 방금 전 로봇과 파티셔닝한 자신의 새로운 파티셔닝 영역을 기반으로 그 옆에 로봇과 통신하여 새로운 최적 파티셔닝 영역을 산출할 수 있다. 도 16에서 R2가 R1과 먼저 파티셔닝을 수행한 후 R3와 다음으로 파티셔닝을 수행하는 것을 일 실시예로 한다. 도 16과 같은 구성에서 전체 사이클을 돌면 모든 로봇의 상태를 반영한 결과가 도출 된다.
이때 전체 면적에 대한 파티셔닝을 진행 하는 것이 아니라 작업한 영역, 즉 커버한 면적 및 변화하는 환경의 코스트를 달리한 면적에 대해 파티셔닝을 진행한다.
파티셔닝 후 커버리지를 높이기 위한 위치로 로봇들이 이동하여 계속하여 작업한다. 만약, 특정 로봇이 고장 나거나 연결이 끊긴 경우엔 나머지 로봇에 통신을 보장하는 위치로 즉각 변화 하며 그 상황을 나머지 로봇이 능동적으로 대처하여 협업할 수 있으며, 다중로봇이 협업하여 할당된 임무를 매 순간 최적의 방향으로 수행할 수 있다.
일 실시예로, 도 15의 R2가 벽에 지나치게 근접하여 이동하여 작업을 수행하는 과정에서 도 15의 R4와의 통신이 끊어질 경우 도 15의 R2는 빠른 작업 후 다시 도 15의 R4와 통신이 가능한 위치로 이동하여 작업한 상황 및 변화된 환경을 환경 정보로 R4와 공유할 수 있다.
본 발명에서 모든 로봇들은 동일한 위치에서 각각의 파티셔닝 파티셔닝된 영역으로 이동할 수도 있으나, 각각의 로봇이 상이한 위치에 배치된 상태에서 파티셔닝 영역으로 이동할 수도 있다. 로봇들이 인접하여 배치된 경우에는 각 로봇들 간에 초기 파티셔닝 맵 상의 파티셔닝 영역을 미리 설정된 방식으로 배분하여 이동할 수 있다. 일 실시예로, 각 로봇들이 시리얼 번호가 있는 경우, 시리얼 번호 순서와 파티셔닝 영역을 순차적으로 대입할 수 있다. 반면, 로봇들이 특정 파티셔닝 영역을 선택할 수 있는데 이는 로봇의 배터리 잔량과 이동 속도 등을 각 로봇이 산출할 수 있다. 그리고 이러한 환경적인 특성은 재파티셔닝 과정에서도 항상 반영될 수 있다.
도 17 및 도 18은 본 발명의 일 실시예에 의한 재파티셔닝 과정에서 각 환경 정보에 가중치를 적용하여 재파티셔닝하는 도면이다.
허브 통신에 기반하거나 혹은 분산 통신에 기반하는 경우, 로봇은 최소한 자신의 환경 정보와 인접한 로봇의 환경 정보에 기반하여 재파티셔닝할 수 있다.
제1로봇의 제어부(400)는 제1로봇의 제1환경 정보 및 제2로봇의 제2환경정보를 저장한다(S121). 환경정보는 현재 작업중인 파티셔닝 정보(파티셔닝 영역의 식별 정보와 셀 개수 등), 작업한 영역의 정보(작업한 영역의 셀의 개수), 그리고 장애물이 배치된 영역의 정보(장애물이 차지하는 셀의 개수), 미작업된 영역의 정보(미작업된 셀의 개수) 등이 될 수 있다. 한편, 제2로봇에 장애가 발생한 경우, 제1로봇은 제2환경 정보를 NULL 값으로 하고, 제2로봇에 연결된 또다른 로봇들에 연결을 시도할 수 있다. 또는 제2로봇에 장애가 발생하여 환경 정보를 전송하지 못하는 경우, 제1로봇은 제2로봇에 할당된 파티셔닝 영역 및 제1로봇에 할당된 파티셔닝 영역을 포함하는 새로운 파티셔닝 영역을 설정한 후, 인접한 다른 로봇들 혹은 앞서 제2로봇과 연결된 또다른 로봇들과 재파티셔닝을 수행할 수 있다.
제1환경 정보 및 제2환경 정보는 각 필드별 셀의 개수뿐만 아니라, 해당 공간의 형상이나 굴곡된 부분에 대한 정보도 포함할 수 있다. 즉, 동일한 셀 개수를 가지는 면적이라 하여도 긴 형상 혹은 꺾인 형상의 영역은 작업하는데 있어 시간이 많이 소요될 수 있으므로, 가로-세로가 지나치게 큰 차이가 있거나 혹은 공간 내에 고정 장애물이 다수 배치된 경우에 필드 별 가중치를 달리할 수 있다.
즉, 작업하기 어려운 형상(예를 들어 도 7의 3 영역)에 대해서는 남은 셀의 수가 적어도 다른 파티셔닝 영역의 남은 셀의 수 보다 많은 가중치를 줄 수 있다. 즉, 도 7의 3영역에서 작업 대상으로 남은 셀의 수가 10개이고 이들이 분산된 경우와 도 7의 4영역에서 작업 대상으로 남은 셀의 수가 15개이고 이들이 하나의 덩어리로 배치된 경우를 비교할 때, 3영역의 남은 셀의 수가 적으나 이에 1.5를 곱하여 15개의 셀에 준하는 것으로 산출할 수 있다.
마찬가지로, 로봇이 작업한 영역의 셀 수를 비교함에 있어서도 작업한 셀들이 분산된 경우에는 로봇이 작업을 수행함에 있어 당연히 많은 시간을 소요한 것으로 판단할 수 있다.
따라서 제어부(400)는 제1로봇 및 제2로봇 각각의 환경 정보의 필드 별로 가중치를 적용한다(S122, S123). 그리고 제어부(400)는 제1로봇 및 제2로봇이 조정해야 하는 영역의 크기를 산출한다(S124). S122 및 S123에 대응하여 제1로봇과 제2로봇의 현재 파티셔닝 영역의 셀들 중에서 제1로봇에서 A개의 셀만큼 줄이고 제2로봇에서 A개의 셀만큼 늘리는 것으로 판단하는 것을 일 실시예로 한다.
그리고, 제어부(400)는 조정해야 하는 크기에 대응하는 재파티셔닝 맵을 생성한다(S125). 이는 로봇의 이동 속도나 각 파티셔닝 영역에 배치된 장애물의 위치, 그리고 각 파티셔닝 영역 내에 배치된 작업된 셀 등을 반영하여 로봇의 이동거리를 줄이도록 재파티셔닝 맵을 생성하는 것을 포함한다. 일 실시예로 도 18을 살펴본다.
도 18의 131은 현재 파티셔닝 영역의 상태를 보여주는 맵이다. 이 상태에서 재파티셔닝을 수행한 결과 제1로봇의 영역에서 1개의 셀을 늘리고, 제2로봇의 영역에서 1개의 셀을 줄이는 것으로 제1로봇 또는 제2로봇의 제어부가 판단할 수 있다. 이 경우 132와 같이 굴곡이 많은 경계를 가지는 경우 제1로봇 및 제2로봇 모두 굴곡을 따라 이동해야 하는 문제가 있다. 따라서 제어부는 133과 같이 로봇의 이동 속도를 높이도록 재파티셔닝 맵을 생성할 수 있다. 파티셔닝 맵이 생성된 후 각 로봇들은 재파티셔닝 영역 정보에 이동하여 작업을 수행한다(S126).
도 17 및 도 18에 제시된 바와 같이, 로봇은 재파티셔닝을 수행하는 과정에서 이전에 작업한 영역의 크기나 분산 정도, 새로운 장애물이 배치된 영역의 크기나 분산 정도, 그리고 작업 속도와 경계선의 형태 등을 모두 가중치로 적용하여 재파티셔닝맵을 생성할 수 있다. 제어부(400)는 동일한 개수의 셀들이라 하여도 해당 셀들의 분산 정도, 위치와 로봇의 배터리 상태 등을 가중치로 적용하여 재파티셔닝할 영역의 셀들의 개수를 먼저 산출하고, 개수를 적용함에 있어서 로봇의 이동 거리를 줄이는 경계선을 선택할 수 있다.
또한, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
이상에서는 본 발명의 실시예를 중심으로 설명하였지만, 통상의 기술자의 수준에서 다양한 변경이나 변형을 가할 수 있다. 따라서, 이러한 변경과 변형이 본 발명의 범위를 벗어나지 않는 한 본 발명의 범주 내에 포함되는 것으로 이해할 수 있을 것이다.
100: 센싱부 200: 맵 저장부
210: 고정맵 220: 파티셔닝맵
300: 통신부 310: 이동부
320: 작업부 330: 인터페이스부
400: 제어부 500: 로봇

Claims (14)

  1. 공간을 분할-작업하는 로봇에 있어서,
    외부에 배치된 객체를 센싱하는 센싱부;
    상기 로봇이 이동하는 공간의 고정 객체의 위치를 저장하는 맵 저장부;
    상기 로봇을 이동시키는 이동부;
    파티셔닝 정보 및 환경 정보를 하나 이상의 다른 로봇과 송수신하는 통신부;
    상기 로봇이 작업을 수행하는 작업부; 및
    상기 센싱부와 상기 맵 저장부와 상기 이동부와 상기 통신부와 상기 작업부를 제어하며, 상기 센싱부가 센싱한 객체 중 상기 맵 저장부의 고정 객체에 해당하지 않는 객체와 상기 로봇이 작업을 수행한 공간에 대한 정보 중 어느 하나 이상을 상기 환경 정보로 생성하며, 상기 통신부를 제어하여 상기 파티셔닝 정보와 상기 환경 정보를 송수신할 하나 이상의 이웃 로봇을 결정하는 제어부를 포함하는, 공간을 분할-작업하는 로봇.
  2. 제1항에 있어서,
    상기 제어부는 상기 맵 저장부에 저장된 공간의 고정 객체의 위치와 상기 공간의 넓이와 상기 공간에서 작업할 로봇의 수 N을 입력값으로 하여 N 개로 분할된 초기 파티셔닝 맵을 생성하는, 공간을 분할-작업하는 로봇.
  3. 제1항에 있어서,
    상기 이웃 로봇은 상기 로봇에 할당된 파티셔닝 영역에 인접한 파티셔닝 영역을 할당받은 로봇이며,
    상기 제어부는 상기 이웃 로봇과 상기 환경 정보를 송수신하여 재파티셔닝 맵을 생성하는, 공간을 분할-작업하는 로봇.
  4. 제1항에 있어서,
    상기 로봇은 허브 로봇이며,
    상기 통신부는 상기 이웃 로봇 또는 상기 이웃 로봇의 이웃 로봇으로부터 상기 환경 정보를 수신하며,
    상기 제어부는 상기 수신한 환경 정보에 기반하여 상기 이웃 로봇들에게 할당할 재파티셔닝 맵을 생성한 후 상기 이웃 로봇들에게 직접 또는 간접으로 상기 파티셔닝 영역에 대한 정보를 상기 통신부가 전송하도록 제어하는, 공간을 분할-작업하는 로봇.
  5. 제1항에 있어서,
    상기 제어부는 상기 맵 저장부에 저장된 공간의 고정 객체의 위치와 상기 환경 정보와 상기 공간에서 작업할 로봇의 수 N보다 작거나 같은 수를 입력값으로 하여 N보다 작거나 같은 개수로 분할된 재파티셔닝 맵을 생성하는, 공간을 분할-작업하는 로봇.
  6. 제5항에 있어서,
    상기 제어부는 상기 환경 정보에서 상기 이웃 로봇 및 상기 로봇의 작업을 수행한 셀에 기반하여 상기 로봇의 작업 속도를 산출하여 작업 속도가 높은 로봇에게 더 많은 영역이 할당된 재파티셔닝 맵을 생성하는, 공간을 분할-작업하는 로봇.
  7. 제5항에 있어서,
    상기 환경 정보는 상기 로봇 및 상기 이웃 로봇의 작업 가능 시간 또는 작업 가능 면적에 대한 정보를 더 포함하며,
    상기 제어부는 이웃 로봇 및 상기 로봇 중 상기 작업 가능 시간 또는 상기 작업 가능 면적이 더 큰 값을 가지는 로봇에게 더 많은 영역이 할당된 재파티셔닝 맵을 생성하는, 공간을 분할-작업하는 로봇.
  8. 로봇의 제어부가 공간에서 작업할 다수의 로봇들의 파티셔닝 영역을 포함하는 초기 파티셔닝 맵을 생성하는 단계;
    상기 로봇의 이동부가 상기 로봇에게 할당된 파티셔닝 영역으로 상기 로봇을 이동시키는 단계;
    상기 로봇의 작업부가 상기 파티셔닝 영역에서 상기 로봇에게 할당된 작업을 수행하는 단계;
    상기 제어부가 상기 로봇의 센싱부가 센싱한 객체 중 상기 로봇의 맵 저장부에 저장된 고정 객체에 해당하지 않는 객체와 상기 로봇이 작업을 수행한 공간에 대한 정보 중 어느 하나 이상을 제1환경 정보로 생성하는 단계;
    상기 로봇의 통신부가 상기 다수의 로봇들 중 하나 이상의 이웃 로봇으로부터 상기 이웃 로봇의 제2환경 정보를 수신하는 단계; 및
    상기 제어부가 상기 제1환경 정보 및 상기 제2환경 정보를 이용하여 상기 다수의 로봇들 중 일부 또는 전체의 로봇들에 할당할 재파티셔닝 맵을 생성하는 단계를 포함하는, 로봇이 공간을 분할-작업하는 방법.
  9. 제8항에 있어서,
    상기 제어부는 상기 맵 저장부에 저장된 공간의 고정 객체의 위치와 상기 공간의 넓이와 상기 공간에서 작업할 로봇의 수 N을 입력값으로 하여 N 개로 분할된 초기 파티셔닝 맵을 생성하는 단계를 더 포함하는, 로봇이 공간을 분할-작업하는 방법.
  10. 제8항에 있어서,
    상기 이웃 로봇은 상기 로봇에 할당된 파티셔닝 영역에 인접한 파티셔닝 영역을 할당받은 로봇이며,
    상기 제어부는 상기 이웃 로봇과 상기 환경 정보를 송수신하여 재파티셔닝 맵을 생성하는 단계를 더 포함하는, 로봇이 공간을 분할-작업하는 방법.
  11. 제8항에 있어서,
    상기 로봇은 허브 로봇이며,
    상기 통신부는 상기 이웃 로봇 또는 상기 이웃 로봇의 이웃 로봇으로부터 상기 환경 정보를 수신하는 단계를 더 포함하며,
    상기 제어부는 상기 수신한 환경 정보에 기반하여 상기 이웃 로봇들에게 할당할 재파티셔닝 맵을 생성한 후 상기 이웃 로봇들에게 직접 또는 간접으로 상기 파티셔닝 영역에 대한 정보를 상기 통신부가 전송하도록 제어하는 단계를 더 포함하는, 로봇이 공간을 분할-작업하는 방법.
  12. 제8항에 있어서,
    상기 제어부는 상기 맵 저장부에 저장된 공간의 고정 객체의 위치와 상기 환경 정보와 상기 공간에서 작업할 로봇의 수 N보다 작거나 같은 수를 입력값으로 하여 N보다 작거나 같은 개수로 분할된 재파티셔닝 맵을 생성하는 단계를 더 포함하는, 로봇이 공간을 분할-작업하는 방법.
  13. 제12항에 있어서,
    상기 제어부는 상기 환경 정보에서 상기 이웃 로봇 및 상기 로봇의 작업을 수행한 셀에 기반하여 상기 로봇의 작업 속도를 산출하여 작업 속도가 높은 로봇에게 더 많은 영역이 할당된 재파티셔닝 맵을 생성하는 단계를 더 포함하는, 로봇이 공간을 분할-작업하는 방법.
  14. 제12항에 있어서,
    상기 환경 정보는 상기 로봇 및 상기 이웃 로봇의 작업 가능 시간 또는 작업 가능 면적에 대한 정보를 더 포함하며,
    상기 제어부는 이웃 로봇 및 상기 로봇 중 상기 작업 가능 시간 또는 상기 작업 가능 면적이 더 큰 값을 가지는 로봇에게 더 많은 영역이 할당된 재파티셔닝 맵을 생성하는 단계를 더 포함하는, 로봇이 공간을 분할-작업하는 방법.


KR1020170110171A 2017-08-30 2017-08-30 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇 KR20190023835A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170110171A KR20190023835A (ko) 2017-08-30 2017-08-30 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇
PCT/KR2018/008725 WO2019045288A1 (ko) 2017-08-30 2018-07-31 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170110171A KR20190023835A (ko) 2017-08-30 2017-08-30 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇

Publications (1)

Publication Number Publication Date
KR20190023835A true KR20190023835A (ko) 2019-03-08

Family

ID=65525713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170110171A KR20190023835A (ko) 2017-08-30 2017-08-30 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇

Country Status (2)

Country Link
KR (1) KR20190023835A (ko)
WO (1) WO2019045288A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112060097A (zh) * 2020-11-10 2020-12-11 纳博特南京科技有限公司 多机器人系统的多任务协同控制方法
WO2023071922A1 (zh) * 2021-11-01 2023-05-04 速感科技(北京)有限公司 地图优化方法、装置、电子设备和存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716545A (zh) * 2019-10-18 2020-01-21 深圳拓邦股份有限公司 一种多台清洁设备协同作业方法及系统
CN113084807B (zh) * 2021-03-31 2022-04-19 中国科学技术大学 多机器人系统有毒气体泄露源头搜寻方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2908424B1 (ja) * 1998-03-23 1999-06-21 川崎重工業株式会社 複数台ロボットへの作業割当方法および複数台ロボットの干渉回避方法
KR101222624B1 (ko) * 2010-12-17 2013-01-16 한국생산기술연구원 군집 로봇 및 군집 로봇을 이용한 수색 방법
KR101871430B1 (ko) * 2011-11-14 2018-06-26 한국전자통신연구원 소형 로봇의 다중 운용 방법 및 그 운용 시스템
KR102117984B1 (ko) * 2013-11-27 2020-06-02 한국전자통신연구원 군집 로봇의 협력 청소 방법 및 제어 장치
KR101668078B1 (ko) * 2015-04-23 2016-10-19 국방과학연구소 자율적 로봇 협업 시스템과 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112060097A (zh) * 2020-11-10 2020-12-11 纳博特南京科技有限公司 多机器人系统的多任务协同控制方法
WO2023071922A1 (zh) * 2021-11-01 2023-05-04 速感科技(北京)有限公司 地图优化方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
WO2019045288A1 (ko) 2019-03-07

Similar Documents

Publication Publication Date Title
KR20190023835A (ko) 다중 로봇이 공간을 분할-작업하는 방법 및 이를 구현하는 로봇
CN109814556B (zh) 一种多机器人协作探索未知环境与地图构建的装置与方法
CN102707675B (zh) 群机器人控制器、群机器人控制方法及控制器终端
US20130123981A1 (en) Swarm intelligence routing robot device and movement path control system using the same
Yao et al. Distributed roadmaps for robot navigation in sensor networks
Wichmann et al. The integration of mobile (tele) robotics and wireless sensor networks: A survey
Li et al. Sensor placement in sensor and actuator networks
Clark Probabilistic road map sampling strategies for multi-robot motion planning
Renzaglia et al. Potential field based approach for coordinate exploration with a multi-robot team
Verma et al. Selection and navigation of mobile sensor nodes using a sensor network
Lopez-Perez et al. Distributed multirobot exploration based on scene partitioning and frontier selection
Yan et al. Team size optimization for multi-robot exploration
CN112702431B (zh) 基于分布式边缘计算的工业移动设备定位系统及方法
KR20220070736A (ko) 관제 로봇의 네트워크 관리 시스템 및 방법
Zhang et al. Unmanned ground vehicle navigation in coordinate-free and localization-free wireless sensor and actuator networks
JP6285849B2 (ja) 行動制御システム、その方法及びプログラム
Kashino et al. A multi-robot sensor-delivery planning strategy for static-sensor networks
Kameyama et al. Active modular environment for robot navigation
KR20190024468A (ko) 공간을 분할-작업하는 다중 로봇들 간의 통신 방법 및 이를 구현하는 로봇
Pásztor et al. Compass and odometry based navigation of a mobile robot swarm equipped by bluetooth communication
Mathews et al. Deployment of mobile routers ensuring coverage and connectivity
Haque et al. SCAN: a sensor deployment algorithm in hazardous regions via mobile actuators
Seah et al. TARANTULAS: mobility-enhanced wireless sensor-actuator networks
Chiu et al. Tentacles: Self-configuring robotic radio networks in unknown environments
Lee et al. Seamless routing and cooperative localization of multiple mobile robots for search and rescue application