KR102159971B1 - 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법 - Google Patents
이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법 Download PDFInfo
- Publication number
- KR102159971B1 KR102159971B1 KR1020187031610A KR20187031610A KR102159971B1 KR 102159971 B1 KR102159971 B1 KR 102159971B1 KR 1020187031610 A KR1020187031610 A KR 1020187031610A KR 20187031610 A KR20187031610 A KR 20187031610A KR 102159971 B1 KR102159971 B1 KR 102159971B1
- Authority
- KR
- South Korea
- Prior art keywords
- mobile robot
- node
- information
- map
- displacement
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000006073 displacement reaction Methods 0.000 claims abstract description 218
- 238000012986 modification Methods 0.000 claims description 12
- 230000004048 modification Effects 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000009826 distribution Methods 0.000 description 46
- 239000013598 vector Substances 0.000 description 36
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 17
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000004140 cleaning Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 10
- 238000005259 measurement Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 239000000428 dust Substances 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 101100028093 Drosophila melanogaster Or22b gene Proteins 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 101100406487 Drosophila melanogaster Or47a gene Proteins 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000002187 spin decoupling employing ultra-broadband-inversion sequences generated via simulated annealing Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013316 zoning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L9/00—Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
- A47L9/28—Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
- A47L9/2836—Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
- A47L9/2852—Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
- B25J11/0085—Cleaning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0003—Home robots, i.e. small robots for domestic use
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1615—Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
- B25J9/162—Mobile manipulator, movable base with manipulator arm mounted on it
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0219—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L2201/00—Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
- A47L2201/04—Automatic control of the travelling movement; Automatic obstacle detection
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Robotics (AREA)
- Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Orthopedic Medicine & Surgery (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
Abstract
본 발명은 이동 로봇이 스스로 생성한 정보 및 타 이동 로봇으로부터 수신한 정보를 이용하여 맵(map)을 학습하는 기술에 관한 것으로서, 본 발명에 따른 이동 로봇의 맵 학습방법은, 본 이동 로봇이 주행중 측정된 변위를 근거로 노드 정보를 생성하고, 타 이동 로봇의 노드 그룹 정보를 수신하는 단계를 포함한다. 본 발명에 따른 이동 로봇은, 본체를 이동시키는 주행부, 주행 변위를 측정하는 주행 변위 측정부, 타 이동 로봇의 노드 그룹 정보를 수신하는 수신부, 및 상기 주행 변위를 근거로 맵 상에 노드 정보를 생성하고 상기 타 이동 로봇의 노드 그룹 정보를 상기 맵에 추가하는 제어부를 포함한다.
Description
본 발명은, 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법에 관한 것으로, 보다 자세하게는 이동 로봇이 스스로 생성한 정보 및 타 이동 로봇으로부터 수신한 정보를 이용하여 맵(map)을 학습하는 기술에 관한 것이다.
로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것을 이동 로봇이라고 한다.
가정에서 사용되는 이동 로봇의 대표적인 예는 로봇 청소기로서, 청소하고자 하는 주행구역을 이동하면서 먼지 또는 이물질을 흡입하여 청소하는 가전기기이다. 로봇 청소기는 충전 가능한 배터리를 구비하여 스스로 주행이 가능하며, 배터리의 잔량이 부족한 경우나 청소가 완료된 이후에는, 충전대를 찾아 스스로 이동하여 배터리를 충전한다.
종래기술에서, 이동 로봇의 연속적인 이동 중에 자신의 직전 위치 정보를 바탕으로 현재 위치를 지속적으로 파악하고, 스스로 청소구역의 맵(map)을 생성하는 다양한 방법이 이미 알려져 있다.
주행구역이 넓은 등의 이유로, 같은 실내 공간에 2대 이상의 이동 로봇이 주행을 할 수 있다.
종래기술(공개번호 10-2013-0056586)에서는, 복수의 이동 로봇간의 상대 거리를 측정하고, 상기 측정된 상대 거리를 기반으로 복수의 이동 로봇 별로 구역을 분할하여 구역 정보를 탐색한 뒤, 탐색한 구역 정보를 상대에게 전송하는 기술을 개시한다.
제 1과제는 복수개의 이동 로봇이 같은 주행 공간을 주행하고 있는 경우에 서로의 정보를 종합하여 효율적으로 맵 학습이 이루어지는 기술을 제시하는 것이다.
상기 종래 기술에서, 이동 로봇은 서로의 상대 거리를 측정하는데 거리상의 이유 또는 장애물 등의 이유로, 상대 거리의 측정이 곤란할 수 있다는 문제가 있다.
제 2과제는 이러한 문제를 해결하여 이동 로봇들간의 상대 거리 측정 없이도 효율적으로 탐색구역을 분할하는 기술을 제시하는 것이다.
상기 종래 기술에서, 이동 로봇은 측정된 서로간의 상대 거리를 기반으로 구역을 분할하는데, 이 경우 해당 주행구역의 형태가 복잡하다거나 어느 하나의 이동로봇의 위치가 주행구역의 구석으로 몰려있는 경우, 효율적인 구역분배가 불가하다는 문제가 있다. 제 3과제는 이러한 문제를 해결하여, 먼저 구역을 분배하고 탐색하는 것이 아니라, 먼저 주행구역을 학습하면서 자동적이고 효율적으로 탐색 구역이 분배되는 기술을 제시하는 것이다.
제 4과제는 이동 로봇이 생성한 맵 학습 정보를 계속적으로 정확도 높게 수정하는 기술을 제시하는 것이다.
상기 종래 기술에서는, 각 이동 로봇이 자신이 탐색한 정보를 공유하는 것일 뿐, 서로의 정보를 서로 보다 정확하게 하는 기술의 개시가 없다. 제 5과제는 복수의 로봇이 맵을 학습하고 서로 공유하면서도 복수의 로봇이 자신은 물론 서로의 맵 학습 정보를 정확도 높게 수정하는 기술을 제시하는 것이다.
본 발명의 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 제 1 내지 3과제를 달성하기 위하여, 본 발명에 따른 이동 로봇의 맵 학습방법은, 본 이동 로봇이 주행중 측정된 변위를 근거로 노드 정보를 생성하고, 타 이동 로봇의 노드 그룹 정보를 수신하는 단계를 포함한다.
어느 한 이동 로봇의 맵 상의 노드 정보 들은, 본 이동 로봇이 직접 생성한 노드 정보들 및 타 이동 로봇의 노드 그룹 정보로 이루어진다.
상기 노드 정보는, 노드 고유 인덱스, 대응하는 획득영상 정보, 주변 환경과의 거리 정보, 노드 좌표 정보, 및 노드 갱신 시각정보를 포함할 수 있다.
상기 타 이동 로봇의 노드 그룹 정보는, 상기 타 이동 로봇이 저장하고 있는 모든 노드 정보에서 상기 타 이동 로봇이 생성한 모든 노드 정보를 제외한 노드 정보들의 집합일 수 있다.
타 이동 로봇에서도 같은 과제를 달성시키고 결과적으로 본 이동 로봇의 맵 학습의 효율성도 보다 상승시키기 위하여, 상기 학습방법은, 본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 단계를 포함할 수 있다.
상기 제 4과제를 달성하기 위하여, 상기 학습방법은, 본 이동 로봇이 생성한 두 노드 사이에 루프 변위가 측정되는 단계, 및 상기 측정된 루프 변위를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 5과제를 달성하기 위하여, 상기 학습방법은, 본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위가 측정되는 단계를 포함할 수 있다. 상기 학습방법은, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함하거나, 상기 측정된 경계 변위를 근거로 하여, 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 5과제를 보다 효율적으로 달성하기 위하여 조정(Align) 또는 수정 중 어느 하나를 선택하는 알고리즘을 구현할 수 있다. 이를 위하여, 상기 학습방법은, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 1 내지 5과제를 달성하기 위한 복수의 로봇 들 간의 상호 과정을 중심으로 본 발명을 구체화 할 수 있다. 본 발명의 다른 실시예에 따른 이동 로봇의 맵 학습방법은, 복수의 이동 로봇이 각각 주행중 측정된 변위를 근거로 각각 이동 로봇의 노드 정보를 생성하고, 각각의 노드 그룹 정보를 서로 송신 및 수신하는 단계를 포함한다.
상기 제 5과제를 달성하기 위하여, 상기 학습방법은, 상기 복수의 이동 로봇이 각각 생성한 두 노드 사이에 경계 변위가 측정되는 단계, 및 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 다른 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 상기 다른 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함할 수 있다.
상기 제 5과제를 달성하기 위하여, 상기 학습방법은, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇이 생성한 노드의 좌표를 수정하고, 다른 하나의 이동 로봇의 맵 상에서 상기 다른 하나의 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 5과제를 보다 효율적으로 달성하기 위하여 조정(Align) 또는 수정 중 어느 하나를 선택하는 알고리즘을 구현할 수 있다. 상기 학습방법은, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정하지 않은 경우, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 다른 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 상기 다른 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함한다. 또한, 상기 학습방법은, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇이 생성한 노드의 좌표를 수정하고, 다른 하나의 이동 로봇의 맵 상에서 상기 다른 하나의 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 4 및 5과제를 달성하기 위하여, 노드 정보는 노드 갱신 시각 정보를 포함하고, 동일한 노드에 대해서 수신한 노드 정보와 저장된 노드 정보가 서로 다른 경우 상기 노드 갱신 시각 정보를 근거로 하여 최신의 노드 정보를 선택할 수 있다.
상기 복수의 이동 로봇은 3개 이상의 이동 로봇인 경우의 실시예에 있어서 제 4 및 5과제를 해결하기 위하여, 제 1이동 로봇이 제 2이동 로봇으로부터 수신한 노드 그룹 정보는, 제 2이동 로봇이 제 3이동 로봇으로부터 수신한 노드 그룹 정보를 포함할 수 있고, 이 경우에도 상기 노드 갱신 시각 정보를 근거로 최신의 노드 정보를 선택할 수 있다.
상기 학습방법을 실행시키기 위한 프로그램이 구현될 수 있고, 상기 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 구현될 수 있다.
본 발명은 각 처리단계가 서로 다른 이동로봇이나 중앙서버나 컴퓨터상에서 이루어질 수 도 있으나, 하나의 이동 로봇 내에 구성된 각 구성요소에 의해 실시될 수 있다. 상기 제 1 내지 5과제를 해결하기 위하여, 본 발명에 따른 이동 로봇은, 본체를 이동시키는 주행부, 주행 변위를 측정하는 주행 변위 측정부, 타 이동 로봇의 노드 그룹 정보를 수신하는 수신부, 및 상기 주행 변위를 근거로 맵 상에 노드 정보를 생성하고 상기 타 이동 로봇의 노드 그룹 정보를 상기 맵에 추가하는 제어부를 포함한다. 상기 이동 로봇은, 본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 송신부를 포함할 수 있다. 상기 제어부는, 노드 정보 생성 모듈, 노드 정보 수정 모듈, 및 노드 그룹 좌표 조정 모듈을 포함할 수 있다.
상기 제 1 내지 5과제를 달성하기 위한 복수의 로봇 들 간의 시스템을 중심으로 본 발명을 구체화 할 수 있다. 본 발명에 따른 제 1이동 로봇 및 제 2이동 로봇을 포함하는 복수의 이동 로봇 시스템에서, 상기 제 1이동 로봇은, 상기 제 1이동 로봇을 이동시키는 제 1주행부, 상기 제 1이동 로봇의 주행 변위를 측정하는 제 1주행 변위 측정부, 상기 제 2이동 로봇의 노드 그룹 정보를 수신하는 제 1수신부, 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 1송신부, 및 상기 제 1이동 로봇의 주행 변위를 근거로 제 1맵 상에 노드 정보를 생성하고 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 1맵에 추가하는 제 1제어부를 포함한다. 또한, 상기 제 2이동 로봇은, 상기 제 2이동 로봇을 이동시키는 제 2주행부, 상기 제 2이동 로봇의 주행 변위를 측정하는 제 2주행 변위 측정부, 상기 제 1이동 로봇의 노드 그룹 정보를 수신하는 제 2수신부, 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 2송신부, 및 상기 제 2이동 로봇의 주행 변위를 근거로 제 2맵 상에 노드 정보를 생성하고, 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2맵에 추가하는 제 2제어부를 포함한다.
이와 같이, 상기 제 1이동 로봇 및 상기 제 2이동 로봇의 각 구성요소에는 앞서 기술한 각 구성요소의 앞에 각각 ‘제 1’ 및 ‘제 2’를 붙여 구분 표기할 수 있다. 상기 제 1제어부는, 제 1노드 정보 생성 모듈, 제 1노드 정보 수정 모듈, 및 제 1노드 그룹 좌표 조정 모듈을 포함할 수 있다. 상기 제 2제어부는, 제 2노드 정보 생성 모듈, 제 2노드 정보 수정 모듈, 및 제 2노드 그룹 좌표 조정 모듈을 포함할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
이와 같은 과제해결수단을 통해서, 복수개의 이동 로봇이 같은 주행 공간을 주행하고 있는 경우에 효율적이고 정확하게 맵을 학습할 수 있는 효과가 있다.
또한, 종래 기술과 달리 이동 로봇들간의 상대 거리 측정 없이도, 서로 탐색구역이 분할되는 효과가 있다.
또한, 초기에 탐색 구역을 분할함으로써 발생할 수 있는 탐색 구역의 비효율적인 배분 가능성을 없애고, 구역 분배없이 맵을 학습하는 과정에서 결론적으로 탐색구역이 분할되게 함으로써 탐색구역 분할의 효율성을 현저하게 상승시키는 효과가 있다.
또한, 이동 로봇이 많으면 많을수록 맵 학습과정의 효율성이 크게 상승되도록 유도할 수 있는 효과가 있다.
또한, 복수의 이동 로봇이 서로 맵 정보를 공유하면서 오차를 줄이는 과정을 거치게 됨으로써, 학습된 맵의 정확도를 크게 향상시킬 수 있는 효과가 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇 및 이동 로봇을 충전시키는 충전대를 도시한 사시도이다.
도 2는 도 1에 도시된 이동 로봇의 상면부를 도시한 것이다.
도 3은 도 1에 도시된 이동 로봇의 정면부를 도시한 것이다.
도 4는 도 1에 도시된 이동 로봇의 저면부를 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇의 맵 학습과정 및 맵상에서 위치 인식과정을 전체적으로 나타낸 순서도이다.
도 7은 일 실시예에 따른 복수의 구역(A1,A2,A3,A4,A5) 및 복수의 구역(A1,A2,A3,A4,A5)으로 이루어진 어느 하나의 주행구역(X)을 도시한 평면 개념도이다.
도 8은 일 실시예에 따른 주행구역(X) 내의 복수의 구역(A1,A2)을 예시적으로 도시하고, 도시한 각각의 구역(A1,A2) 내의 복수의 위치(노드)(A1p1, A1p2, A1p3, A1p4, A2p1, A2p1, A2p1, A2p1)에서 각각 획득한 영상을 보여주는 그림이다.
도 9는 도 8의 어느 하나의 위치(A1p1)에서 획득한 영상에서 특징점(f1,f2,f3,f4,f5,f6,f7)을 도시한 그림이다.
도 10은 일 실시예에 따라 어느 하나의 구역(A1) 내의 모든 특징점(f1,f2,f3,..,fm)에 각각 대응하는 n차원 벡터인 디스크립터를 산출하는 도식을 나타낸 개념도이다.
도 11은 어느 하나의 구역(A1) 내에서 도 10의 과정을 거쳐 산출된 복수의 디스크립터를 소정 분류규칙에 따라 복수의 군(A1G1, A1G2, A1G3,..,A1Gl)으로 분류하는 도식을 나타내고, 같은 군에 포함된 복수의 디스크립터를 소정 대표규칙에 따라 각각 대표 디스크립터로 변환하는 도식을 나타낸 개념도이다.
도 12는 도 11의 각각의 대표 디스크립터의 개수(w)가 많을수록 작아지는 스코어(s)를 도수로 하는 어느 하나의 구역(A1) 히스토그램을 나타내고, 어느 하나의 구역(A1) 특징분포를 시각적으로 나타내기 위한 그림이다.
도 13은 미지의 현재 위치에서 획득환 영상에서 인식 특징점(h1,h2,h3,h4,h5,h6,h7)을 도시한 그림이다.
도 14는 도 13에서 획득한 영상 내의 모든 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 n차원 벡터인 인식 디스크립터를 산출하는 도식을 나타낸 개념도이다.
도 15는, 도 14의 인식 디스크립터를 소정 변환규칙에 따라 비교대상인 구역(A1)의 대표 디스크립터 로 변환하여, 비교대상 구역(A1)에 대한 인식 특징분포를 산출하는 도식을 나타낸 개념도이다. 인식 특징분포를 시각적으로 나타내기 위해, 각각의 대표 디스크립터의 개수(wh)가 많을수록 커지는 인식 스코아(Sh)를 도수로 하는 히스토그램이 도시된다.
도 16은, 각각의 구역에 대해 도 15의 과정을 거쳐 산출된 각각의 인식 특징분포와, 각각의 구역 특징분포를 소정 비교규칙에 따라 각각 비교하여, 각각의 확률을 산출하고, 어느 하나의 구역을 결정하는 도식을 나타낸 개념도이다.
도 17은, 하나의 이동 로봇만이 주행구역을 주행하면서 맵을 학습하는 제 1실시예에 따른 과정(S100)을 나타낸 순서도이다.
도 18은, 도 17의 제 1실시예에 따른 노드(N) 정보를 이루는 구성 정보들 및 노드(N) 정보에 영향을 주는 정보를 나타낸 블록도이다.
도 19는, 도 17의 제 1실시예에 따라 하나의 이동 로봇이 이동하면서 생성하는 노드(N) 및 노드 간의 변위(C)를 도시한 도식도이다.
도 20은, 복수의 이동 로봇이 주행구역을 주행하면서 맵을 학습하는 제 2실시예에 따른 과정(S200)을 나타낸 순서도이다.
도 21은, 도 20의 제 2실시예에 따른 노드(N) 정보를 이루는 구성 정보들 및 노드(N) 정보에 영향을 주는 정보, 그리고 다른 로봇의 노드 정보에 영향을 주는 정보를 나타낸 블록도이다.
도 22 내지 24는, 도 20의 제 2실시예에 따라 복수의 이동 로봇이 이동하면서 생성하는 노드(N) 및 노드 간의 변위(C)를 도시하고, A 이동 로봇이 학습하는 맵 을 도시한 도식도이다. 도 22는 A 이동 로봇이 학습하는 맵에서 아직 B 이동 로봇 노드 그룹(GB) 좌표가 조정(Align)되지 않은 상태의 그림이고, 도 23은 노드 간의 경계 변위(EC1)가 측정됨에 따라 A 이동 로봇이 학습하는 맵에서 B 이동 로봇의 노드 그룹(GB) 좌표가 조정(Align)된 상태의 그림이고, 도 24는 노드 간의 추가적인 경계 변위(EC2, EC3)가 측정됨에 따라 A 이동 로봇이 학습하는 맵에서 노드(N) 정보가 수정되는 상태의 그림이다.
도 25는, 3대의 이동 로봇이 이동하면서 생성하는 노드(N)와 노드간의 변위(C), 노드 간의 루프 변위(A-LC1, B-LC1, C-LC1), 및 노드 간의 경계 변위(AB-EC1, BC-EC1, BC-EC2, CA-EC1, CA-EC2)를 도시하고, A 이동 로봇이 학습하는 맵 을 도시한 도식도이다.
도 26a 내지 도 26f는, 본 이동 로봇(100a)과 타 이동 로봇(100b)이 협업하여 맵을 생성하고 이를 활용하는 일 시나리오를 도시한 그림으로서, 이동 로봇(100a, 100b)의 현실의 위치와 본 이동 로봇(100a)이 학습하는 맵을 도시한다.
도 2는 도 1에 도시된 이동 로봇의 상면부를 도시한 것이다.
도 3은 도 1에 도시된 이동 로봇의 정면부를 도시한 것이다.
도 4는 도 1에 도시된 이동 로봇의 저면부를 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇의 맵 학습과정 및 맵상에서 위치 인식과정을 전체적으로 나타낸 순서도이다.
도 7은 일 실시예에 따른 복수의 구역(A1,A2,A3,A4,A5) 및 복수의 구역(A1,A2,A3,A4,A5)으로 이루어진 어느 하나의 주행구역(X)을 도시한 평면 개념도이다.
도 8은 일 실시예에 따른 주행구역(X) 내의 복수의 구역(A1,A2)을 예시적으로 도시하고, 도시한 각각의 구역(A1,A2) 내의 복수의 위치(노드)(A1p1, A1p2, A1p3, A1p4, A2p1, A2p1, A2p1, A2p1)에서 각각 획득한 영상을 보여주는 그림이다.
도 9는 도 8의 어느 하나의 위치(A1p1)에서 획득한 영상에서 특징점(f1,f2,f3,f4,f5,f6,f7)을 도시한 그림이다.
도 10은 일 실시예에 따라 어느 하나의 구역(A1) 내의 모든 특징점(f1,f2,f3,..,fm)에 각각 대응하는 n차원 벡터인 디스크립터를 산출하는 도식을 나타낸 개념도이다.
도 11은 어느 하나의 구역(A1) 내에서 도 10의 과정을 거쳐 산출된 복수의 디스크립터를 소정 분류규칙에 따라 복수의 군(A1G1, A1G2, A1G3,..,A1Gl)으로 분류하는 도식을 나타내고, 같은 군에 포함된 복수의 디스크립터를 소정 대표규칙에 따라 각각 대표 디스크립터로 변환하는 도식을 나타낸 개념도이다.
도 12는 도 11의 각각의 대표 디스크립터의 개수(w)가 많을수록 작아지는 스코어(s)를 도수로 하는 어느 하나의 구역(A1) 히스토그램을 나타내고, 어느 하나의 구역(A1) 특징분포를 시각적으로 나타내기 위한 그림이다.
도 13은 미지의 현재 위치에서 획득환 영상에서 인식 특징점(h1,h2,h3,h4,h5,h6,h7)을 도시한 그림이다.
도 14는 도 13에서 획득한 영상 내의 모든 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 n차원 벡터인 인식 디스크립터를 산출하는 도식을 나타낸 개념도이다.
도 15는, 도 14의 인식 디스크립터를 소정 변환규칙에 따라 비교대상인 구역(A1)의 대표 디스크립터 로 변환하여, 비교대상 구역(A1)에 대한 인식 특징분포를 산출하는 도식을 나타낸 개념도이다. 인식 특징분포를 시각적으로 나타내기 위해, 각각의 대표 디스크립터의 개수(wh)가 많을수록 커지는 인식 스코아(Sh)를 도수로 하는 히스토그램이 도시된다.
도 16은, 각각의 구역에 대해 도 15의 과정을 거쳐 산출된 각각의 인식 특징분포와, 각각의 구역 특징분포를 소정 비교규칙에 따라 각각 비교하여, 각각의 확률을 산출하고, 어느 하나의 구역을 결정하는 도식을 나타낸 개념도이다.
도 17은, 하나의 이동 로봇만이 주행구역을 주행하면서 맵을 학습하는 제 1실시예에 따른 과정(S100)을 나타낸 순서도이다.
도 18은, 도 17의 제 1실시예에 따른 노드(N) 정보를 이루는 구성 정보들 및 노드(N) 정보에 영향을 주는 정보를 나타낸 블록도이다.
도 19는, 도 17의 제 1실시예에 따라 하나의 이동 로봇이 이동하면서 생성하는 노드(N) 및 노드 간의 변위(C)를 도시한 도식도이다.
도 20은, 복수의 이동 로봇이 주행구역을 주행하면서 맵을 학습하는 제 2실시예에 따른 과정(S200)을 나타낸 순서도이다.
도 21은, 도 20의 제 2실시예에 따른 노드(N) 정보를 이루는 구성 정보들 및 노드(N) 정보에 영향을 주는 정보, 그리고 다른 로봇의 노드 정보에 영향을 주는 정보를 나타낸 블록도이다.
도 22 내지 24는, 도 20의 제 2실시예에 따라 복수의 이동 로봇이 이동하면서 생성하는 노드(N) 및 노드 간의 변위(C)를 도시하고, A 이동 로봇이 학습하는 맵 을 도시한 도식도이다. 도 22는 A 이동 로봇이 학습하는 맵에서 아직 B 이동 로봇 노드 그룹(GB) 좌표가 조정(Align)되지 않은 상태의 그림이고, 도 23은 노드 간의 경계 변위(EC1)가 측정됨에 따라 A 이동 로봇이 학습하는 맵에서 B 이동 로봇의 노드 그룹(GB) 좌표가 조정(Align)된 상태의 그림이고, 도 24는 노드 간의 추가적인 경계 변위(EC2, EC3)가 측정됨에 따라 A 이동 로봇이 학습하는 맵에서 노드(N) 정보가 수정되는 상태의 그림이다.
도 25는, 3대의 이동 로봇이 이동하면서 생성하는 노드(N)와 노드간의 변위(C), 노드 간의 루프 변위(A-LC1, B-LC1, C-LC1), 및 노드 간의 경계 변위(AB-EC1, BC-EC1, BC-EC2, CA-EC1, CA-EC2)를 도시하고, A 이동 로봇이 학습하는 맵 을 도시한 도식도이다.
도 26a 내지 도 26f는, 본 이동 로봇(100a)과 타 이동 로봇(100b)이 협업하여 맵을 생성하고 이를 활용하는 일 시나리오를 도시한 그림으로서, 이동 로봇(100a, 100b)의 현실의 위치와 본 이동 로봇(100a)이 학습하는 맵을 도시한다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명인 이동 로봇(100)은 바퀴 등을 이용하여 스스로 이동이 가능한 로봇을 의미하고, 가정 도우미 로봇 및 로봇 청소기 등이 될 수 있다. 이하 도 1 내지 도 4를 참조하여, 이동 로봇 중 로봇 청소기(100)를 예로들어 설명하나, 반드시 이에 한정될 필요는 없다.
도 1은 로봇 청소기(100) 및 이동 로봇을 충전시키는 충전대(200)를 도시한 사시도이다. 도 2는 도 1에 도시된 로봇 청소기(100)의 상면부를 도시한 것이다. 도 3은 도 1에 도시된 로봇 청소기(100)의 정면부를 도시한 것이다. 도 4는 도 1에 도시된 로봇 청소기(100)의 저면부를 도시한 것이다.
로봇 청소기(100)는 본체(110)와, 본체(110) 주변의 영상을 획득하는 영상획득부(120)를 포함한다. 이하, 본체(110)의 각부분을 정의함에 있어서, 청소구역 내의 천장을 향하는 부분을 상면부(도 2 참조.)로 정의하고, 청소구역 내의 바닥을 향하는 부분을 저면부(도 4 참조.)로 정의하고, 상기 상면부와 저면부 사이에서 본체(110)의 둘레를 이루는 부분 중 주행방향을 향하는 부분을 정면부(도 3 참조.)라고 정의한다.
로봇 청소기(100)는 본체(110)를 이동시키는 주행부(160)를 포함한다. 주행부(160)는 본체(110)를 이동시키는 적어도 하나의 구동 바퀴(136)를 포함한다. 주행부(160)는 구동 모터를 포함할 수 있다. 구동 바퀴(136)는 본체(110)의 좌, 우 측에 각각 구비될 수 있으며, 이하, 각각 좌륜(136(L))과 우륜(136(R))이라고 한다.
좌륜(136(L))과 우륜(136(R))은 하나의 구동 모터에 의해 구동될 수도 있으나, 필요에 따라 좌륜(136(L))을 구동시키는 좌륜 구동 모터와 우륜(136(R))을 구동시키는 우륜 구동 모터가 각각 구비될 수도 있다. 좌륜(136(L))과 우륜(136(R))의 회전 속도에 차이를 두어 좌측 또는 우측으로 본체(110)의 주행방향을 전환할 수 있다.
본체(110)의 저면부에는 공기의 흡입이 이루어지는 흡입구(110h)가 형성될 수 있으며, 본체(110) 내에는 흡입구(110h)를 통해 공기가 흡입될 수 있도록 흡입력을 제공하는 흡입장치(미도시)와, 흡입구(110h)를 통해 공기와 함께 흡입된 먼지를 집진하는 먼지통(미도시)이 구비될 수 있다.
본체(110)는 로봇 청소기(100)를 구성하는 각종 부품들이 수용되는 공간을 형성하는 케이스(111)를 포함할 수 있다. 케이스(111)에는 상기 먼지통의 삽입과 탈거를 위한 개구부가 형성될 수 있고, 상기 개구부를 여닫는 먼지통 커버(112)가 케이스(111)에 대해 회전 가능하게 구비될 수 있다.
흡입구(110h)를 통해 노출되는 솔들을 갖는 롤형의 메인 브러시(134)와, 본체(110)의 저면부 전방측에 위치하며, 방사상으로 연장된 다수개의 날개로 이루어진 솔을 갖는 보조 브러시(135)가 구비될 수 있다. 이들 브러시(134, 135)들의 회전에 의해 청소구역내 바닥으로부터 먼지들이 제거되며, 이렇게 바닥으로부터 분리된 먼지들은 흡입구(110h)를 통해 흡입되어 먼지통에 모인다.
배터리(138)는 상기 구동 모터뿐만 아니라, 로봇 청소기(100)의 작동 전반에 필요한 전원을 공급하는 것이다. 배터리(138)가 방전될 시, 로봇 청소기(100)는 충전을 위해 충전대(200)로 복귀하는 주행을 실시할 수 있으며, 이러한 복귀 주행 중, 로봇 청소기(100)는 스스로 충전대(200)의 위치를 탐지할 수 있다.
충전대(200)는 소정의 복귀 신호를 송출하는 신호 송출부(미도시)를 포함할 수 있다. 상기 복귀 신호는 초음파 신호 또는 적외선 신호일 수 있으나, 반드시 이에 한정되어야하는 것은 아니다.
로봇 청소기(100)는 상기 복귀 신호를 수신하는 신호 감지부(미도시)를 포함할 수 있다. 충전대(200)는 신호 송출부를 통해 적외선 신호를 송출하고, 상기 신호 감지부는 상기 적외선 신호를 감지하는 적외선 센서를 포함할 수 있다. 로봇 청소기(100)는 충전대(200)로부터 송출된 적외선 신호에 따라 충전대(200)의 위치로 이동하여 충전대(200)와 도킹(docking)한다. 이러한 도킹에 의해 로봇 청소기(100)의 충전 단자(133)와 충전대(200)의 충전 단자(210) 간에 충전에 이루어진다.
영상획득부(120)는 청소구역을 촬영하는 것으로, 디지털 카메라를 포함할 수 있다. 상기 디지털 카메라는 적어도 하나의 광학렌즈와, 상기 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를들어, pixel)를 포함하여 구성된 이미지센서(예를들어, CMOS image sensor)와, 상기 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(DSP: Digital Signal Processor)를 포함할 수 있다. 상기 디지털 신호 처리기는 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성하는 것도 가능하다.
바람직하게, 영상획득부(120)는 본체(110)의 상면부에 구비되어, 청소구역 내의 천장에 대한 영상을 획득하나, 영상획득부(120)의 위치와 촬영범위가 반드시 이에 한정되어야 하는 것은 아니다. 예를들어, 영상획득부(120)는 본체(110) 전방의 영상을 획득하도록 구비될 수도 있다. 본 발명은 천정의 영상만으로도 구현될 수 있다.
또한, 로봇 청소기(100)는 전방의 장애물을 감지하는 장애물 감지센서(131)를 더 포함할 수 있다. 로봇 청소기(100)는 청소구역 내 바닥에 낭떠러지의 존재 여부를 감지하는 낭떠러지 감지센서(132)와, 바닥의 영상을 획득하는 하부 카메라 센서(139)를 더 포함할 수 있다.
또한, 로봇 청소기(100)는 On/Off 또는 각종 명령을 입력할 수 있는 조작부(137)를 포함한다.
도 5를 참조하면, 이동 로봇(100)은 현재 위치를 인식하는 등 각종 정보를 처리하고 판단하는 제어부(140), 및 각종 데이터를 저장하는 저장부(150)를 포함한다. 제어부(140)는 이동 로봇(100)을 구성하는 각종 구성들(예를들어, 주행 변위 측정부(121), 장애물 감지 센서(131), 영상획득부(120), 조작부(137), 주행부(160), 송신부(170), 수신부(190) 등)의 제어를 통해, 이동 로봇(100)의 동작 전반을 제어하며, 주행제어모듈(141), 구역구분모듈(142), 학습모듈(143) 및 인식모듈(144)을 포함할 수 있다.
저장부(150)는 이동 로봇(100)의 제어에 필요한 각종 정보들을 기록하는 것으로, 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 상기 기록 매체는 마이크로 프로세서(micro processor)에 의해 읽힐 수 있는 데이터를 저장한 것으로, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등을 포함할 수 있다.
한편, 저장부(150)에는 청소구역에 대한 맵이 저장될 수 있다. 상기 맵은 이동 로봇(100)과 유선 또는 무선 통신을 통해 정보를 교환할 수 있는 외부 단말기에 의해 입력된 것일 수도 있고, 이동 로봇(100)이 스스로 학습을 하여 생성한 것일 수도 있다. 전자의 경우, 외부 단말기로는 맵 설정을 위한 어플리케이션(application)이 탑재된 리모콘, PDA, 랩탑(laptop), 스마트 폰, 태블렛 등을 예로 들 수 있다.
상기 맵에는 주행구역 내의 실(room)들의 위치가 표시될 수 있다. 또한, 이동 로봇(100)의 현재 위치가 상기 맵 상에 표시될 수 있으며, 상기 맵 상에서의 이동 로봇(100)의 현재의 위치는 주행 과정에서 갱신될 수 있다.
제어부(140)는 소정 기준에 따라 주행구역(X)을 복수의 구역으로 구분하는 구역구분모듈(142)을 포함할 수 있다. 주행구역(X)은 이동 로봇(100)이 주행 경험이 있는 모든 평면상의 구역 및 현재 주행하고 있는 평면상의 구역을 모두 합한 범위로 정의될 수 있다.
상기 구역은 주행구역(X) 내의 각 실(방)을 근거로 구분될 수 있다. 구역구분모듈(142)은 주행구역(X)을 주행능력상 서로 분리된 복수의 구역으로 구분할 수 있다. 예를 들면, 서로 동선상 완전히 분리된 두개의 실내공간은 각각 두개의 구역으로 구분될 수 있다. 다른 예로, 같은 실내 공간이라 하더라도, 상기 구역은 주행구역(X) 내의 각 층을 근거로 구분될 수 있다.
제어부(140)는 주행구역(X)의 맵을 생성하는 학습모듈(143)을 포함할 수 있다. 전역위치 인식을 위해서, 학습모듈(143)은 각 위치에서 획득한 영상을 처리하여 상기 맵과 연계시킬 수 있다.
주행 변위 측정부(121)는 예를 들어 상기 하부 카메라 센서(139)일 수 있다. 주행 변위 측정부(121)는 이동 로봇(100)이 연속적으로 이동하는 경우, 예를들면 픽셀(pixel)을 이용하여 달라진 바닥 영상의 연속적인 비교를 통해서 주행에 따른 변위를 측정할 수 있다. 주행에 따른 변위는, 이동 방향과 이동 거리를 포함하는 개념이다. 주행구역의 바닥면을 X축 및 Y축이 직교하는 평면 상에 있다고 가정할 때, 주행 변위는 (Δx,Δy,θ)로 표현할 수 있고, Δx,Δy는 각각 X축 및 Y축 방향으로의 변위를 의미하고, θ 는 회전 각도를 의미한다.
주행제어모듈(141)은 이동 로봇(100)의 주행을 제어하는 것으로, 주행 설정에 따라 주행부(160)의 구동을 제어한다. 또한, 주행제어모듈(141)은 주행부(160)의 동작을 바탕으로 이동 로봇(100)의 이동 경로를 파악할 수 있다. 예를들어, 주행제어모듈(141)은 구동 바퀴(136)의 회전속도를 바탕으로 이동 로봇(100)의 현재 또는 과거의 이동속도, 주행한 거리 등을 파악할 수 있으며, 각 구동 바퀴(136(L), 136(R))의 회전 방향에 따라 현재 또는 과거의 방향 전환 과정 또한 파악할 수 있다. 이렇게 파악된 이동 로봇(100)의 주행 정보를 바탕으로, 맵 상에서 이동 로봇(100)의 위치가 갱신될 수 있다.
이동 로봇(100)은, 상기 주행 변위 측정부(121), 주행제어모듈(141), 장애물 감지센서(131) 및 영상획득부(125) 중 적어도 어느 하나를 이용하여 상기 주행 변위를 측정한다. 제어부(140)는, 상기 주행 변위 정보를 바탕으로 맵 상에 후술할 각 노드(node, N) 정보를 생성하는 노드 정보 생성 모듈(143a)을 포함한다. 예를 들어, 후술할 원점 노드(O)를 기준으로 측정한 상기 주행 변위를 이용하여, 생성되는 노드(N)의 좌표를 생성할 수 있다. 생성된 노드(N)의 좌표는 원점 노드(O)에 대한 상대적 좌표값이다. 생성된 노드(N) 정보는 대응하는 획득영상 정보를 포함할 수 있다. 본 설명 전체에 걸쳐 ‘대응’한다는 것은 1 쌍의 대상(예를들면, 1 쌍의 데이터)이 서로 매칭(mathing)되어, 둘 중 어느 하나를 입력하면 다른 하나가 출력될 수 있는 관계가 형성됨을 의미한다. 예를 들면, 상기 어느 하나의 위치를 입력하면 상기 어느 하나의 위치에서 획득된 획득영상이 출력될 수 있거나, 상기 어느 하나의 획득영상을 입력하면 상기 어느 하나의 획득영상이 획득된 어느 하나의 위치가 출력된다고 할 때, 상기 어느 하나의 획득영상과 상기 어느 하나의 위치는 ‘대응’한다고 표현될 수 있다.
이동 로봇(100)은 노드(N)와 노드간의 변위를 근거로 현실의 주행구역을 맵으로 생성할 수 있다. 노드(N)는 현실의 한 지점의 정보를 데이터화 하여 맵 상의 한 지점으로 나타낸 것을 의미한다. 즉, 현실의 각 위치는 학습된 맵상에서 각 노드와 대응되고, 현실의 위치와 맵상의 노드는 서로 반드시 일치하지 않고 오차가 있을 수 있으며, 이러한 오차를 줄여 정확도 높은 맵을 생성하는 것은 본 발명의 하나의 과제이다. 이러한 오차를 줄이는 과정과 관련하여, 루프 변위(LC) 및 경계 변위(EC)에 대한 설명은 후술한다.
이동 로봇(100)은, 상기 장애물 감지센서(131) 및 영상획득부(125) 중 적어도 어느 하나를 이용하여, 기 생성한 노드(N) 정보(D180) 중 노드 좌표 정보(D186)의 오차를 측정할 수 있다.(도 18 및 21 참고) 제어부(140)는 측정한 노드 좌표 정보의 오차를 바탕으로 맵 상에 생성된 각 노드(N) 정보를 수정하는 노드 정보 수정 모듈(143b)을 포함한다.
예를 들어, 상기 주행 변위를 근거로 생성된 어느 하나의 노드(N1) 정보(D180)는 노드 좌표 정보(D186) 및 해당 노드(N1)에 대응하는 획득영상 정보(D183)를 포함하는데, 해당 노드(N1) 근처에서 생성된 다른 노드(N2)의 정보 중 노드(N2)에 대응하는 획득영상 정보(D183)를 노드(N1)에 대응하는 획득영상 정보(D183)와 비교하면 두 노드(N1,N2) 사이의 변위(후술할 루프 변위(LC) 또는 경계 변위(EC))가 측정된다. 이 경우, 획득영상 정보 비교를 통해 측정된 변위(루프 변위(LC) 또는 경계 변위(EC))와 기 저장된 두 노드(N1,N2)의 좌표 정보(D186)를 통한 변위에 차이가 발생할 경우 이를 오차로 보고, 두 노드(N1,N2)의 좌표 정보(D186)의 좌표 정보를 수정할 수 있다. 이 경우, 두 노드(N1,N2)와 연결된 다른 노드 들의 좌표 정보(D186)도 수정될 수 있다. 또한, 한번 수정된 노드 좌표 정보(D186)도 계속해서 상기 과정을 거쳐 거듭 수정될 수 있다. 이에 대한 자세한 내용은 후술한다.
이동 로봇(100)의 위치가 인위적으로 도약(jumping)된 경우에는 상기 주행 정보를 바탕으로 현재 위치를 파악할 수 없다. 인식모듈(144)은 장애물 감지센서(131) 및 영상획득부(125) 중 적어도 어느 하나를 이용하여, 미지의 현재위치를 맵상에서 인식할 수 있다. 이하에서는 영상획득부를 이용하여 미지의 현재위치를 인식하는 과정을 예로들어 설명하나, 반드시 이에 한정될 필요는 없다.
송신부(170)는 본 이동 로봇의 정보를 타 이동 로봇이나 중앙 서버에 송신해줄 수 있다. 송신부(170)가 송신하는 정보는 후술할 본 이동 로봇의 노드(N) 정보 또는 노드 그룹(M) 정보가 될 수 있다.
수신부(190)는 타 이동 로봇의 정보를 타 이동 로봇이나 중앙 서보로부터 수신할 수 있다. 수신부(190)가 수신하는 정보는 후술할 타 이동 로봇의 노드(N) 정보 또는 노드 그룹(M) 정보가 될 수 있다.
도 6 내지 15를 참고하여, 획득된 영상을 이용하여 주행구역을 학습하여 맵으로 저장하고, 위치 도약등의 상황에서 미지의 현재위치의 영상을 이용하여 현재위치를 추정하는 이동 로봇 및 그 제어방법의 일 실시예를 설명하면 다음과 같다.
상기 일 실시예에 따른 제어방법은, 소정 기준에 따라 주행구역(X)을 복수의 구역으로 구분하는 구역 구분단계(S10), 주행구역을 학습하여 맵을 생성하는 학습단계, 및 상기 맵 상에서 현재 위치가 속한 구역을 결정하는 인식단계를 포함한다. 상기 인식단계는 현재 위치를 결정하는 단계를 포함할 수 있다. 상기 구역 구분단계(S10)와 상기 학습단계는 일부가 동시에 진행될 수 있다. 본 설명 전체에 걸쳐 ‘결정’한다는 것은, 사람이 판단한다는 것이 아니라, 본 발명의 제어부 또는 본 발명의 제어방법이 구현되는 프로그램 등이 일정한 규칙을 이용하여 어느 하나를 선택한다는 의미이다. 예를들어, 제어부가 소정 추정규칙을 이용하여 복수의 소구역 중 어느 하나를 선택하는 경우, 소구역을 ‘결정’한다고 표현할 수 있다. ‘결정’한다는 의미는, 복수의 대상 중 어느 하나를 선택하는 경우 뿐만아니라, 대상이 하나밖에 없어 그 하나를 선택하는 경우까지 포함하는 개념이다.
구역 구분단계(S10)는 구역구분모듈(142)에서 진행되고, 상기 학습단계는 학습모듈(143)에서 진행되고, 상기 인식단계는 인식모듈(144)에서 진행될 수 있다.
구역 구분단계(S10)에서, 소정 기준에 따라 주행구역(X)을 복수의 구역으로 구분할 수 있다. 도 7을 참고하여, 상기 구역은 주행구역(X) 내의 각 실(A1,A2,A3,A4,A5)을 근거로 구분할 수 있다. 도 8에서, 각 실(A1,A2,A3,A4,A5) 들이 벽(20)과 개폐가능한 문(21) 들에 의해서 구분된다. 상술한 바, 복수의 구역은 층을 기준으로 구분되거나 동선상 분리된 공간을 기준으로 분리될 수도 있다. 또 다른 예로, 주행구역이 복수의 대구역으로 구분되고 각 대구역은 복수의 소구역으로 구분될 수도 있다.
도 11을 참고하여, 각 구역(A1,A2)은 해당 구역을 이루는 복수의 위치로 이루어진다. 이중 대응하는 획득영상 정보 및 좌표 정보를 가진 위치를 맵상에서 노드(N)로 정의할 수 있다. 어느 하나의 구역 A1은 복수의 위치(노드) A1p1, A1p2, A1p3, …, A1pn (n은 자연수)를 포함할 수 있다.
맵을 학습하고 각 노드(N)에서 획득한 획득영상(각 노드(N)에 대응하는 획득영상)으로부터 얻은 데이터(특징점 데이터)와 연계시키는 과정에 대한 설명은 다음과 같다.
상기 학습단계는, 각각의 상기 구역 내의 복수의 위치(맵상에서는 노드)에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 산출하는 디스크립터 산출단계(S15)를 포함한다. 디스크립터 산출단계(S15)는 구역 구분단계(S10)와 동시에 진행될 수 있다. 본 설명 전체에 걸쳐 ‘산출’한다는 것은 입력되는 데이터를 이용하여 다른 데이터를 출력한다는 의미이고, ‘입력되는 수치 데이터를 계산하여 결과값인 다른 데이터를 구하는 것’을 포함하는 의미이다. 물론, 입력되는 데이터 및/또는 산출되는 데이터는 복수개일 수 있다.
이동 로봇(100)이 주행하는 중에, 영상획득부(120)는 이동 로봇(100) 주변의 영상들을 획득한다. 영상획득부(120)에 의해 획득된 영상을 '획득영상'이라고 정의한다. 영상획득부(120)는 맵 상의 각 위치들에서 획득영상을 획득한다.
도 8을 참고하여, 각각의 노드(예를 들어, A1p1, A1p2, A1p3, …, A1pn)에는 각각의 노드에 대응하는 획득영상이 있다. 대응하는 획득영상 정보(D183)를 포함하는 각 노드 정보(D180)가 저장부(150)에 저장된다.
도 9의 그림은 주행구역 내의 어떤 위치에서 촬영된 획득영상을 도시한 것으로, 영상을 통해 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등의 여러가지 특징(feature)들이 확인된다.
학습모듈(143)은 획득영상들 각각으로부터 특징점((예를들어, 도12의 f1,f2,f3,f4,f5,f6,f7))을 검출 및 추출한다. 컴퓨터 비전(Computer Vision) 기술 분야에서 영상으로부터 특징점을 검출하는 다양한 방법(Feature Detection)이 잘 알려져 있다. 이들 특징의 검출에 적합한 여러 특징검출기(feature detector)들이 알려져 있다. 예를들어, Canny, Sobel, Harris&Stephens/Plessey, SUSAN, Shi&Tomasi, Level curve curvature, FAST, Laplacian of Gaussian, Difference of Gaussians, Determinant of Hessian, MSER, PCBR, Grey-level blobs 검출기 등이 있다.
도 10은 각 특징점(f1,f2,f3,..,fm)을 근거로 디스크립터 산출단계(S15)를 거쳐 디스크립터를 산출하는 것을 보여주는 도식도이다.(m은 자연수) 특징 검출을 위해 SIFT(Scale Invariant Feature Transform) 기법을 이용하여 특징점(f1,f2,f3,..,fm)을 디스크립터(descriptor)로 변환할 수 있다. 본 설명 전체에 걸쳐 ‘변환’한다는 것은, 어느 하나의 데이터를 다른 데이터로 바꾸는 것을 의미한다.
상기 디스크립터는 n차원 벡터(vector)로 표기될 수 있다.(n은 자연수) 도 10에서, 은 n차원 벡터를 의미한다. 의 중괄호 { } 안의 f1(1), f1(2), f1(3),..,f1(n)은 을 이루는 각 차원의 수치를 의미한다. 나머지 에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
예를들면, SIFT는 도 9의 획득영상에서 코너점 등 식별이 용이한 특징점(f1,f2,f3,f4,f5,f6,f7)을 선택한 후, 각 특징점(f1,f2,f3,f4,f5,f6,f7) 주변의 일정한 구역에 속한 픽셀들의 밝기 구배(gradient)의 분포 특성(밝기 변화의 방향 및 변화의 급격한 정도)에 대해, 각 방향에 대한 변화의 급격한 정도를 각 차원에 대한 수치로 하는 n차원 벡터(vector)를 구하는 영상인식기법이다.
SIFT는 촬영 대상의 스케일(scale), 회전, 밝기변화에 대해서 불변하는 특징을 검출할 수 있어, 같은 영역을 로봇 청소기(100)의 자세를 달리하며 촬영하더라도 불변하는(즉, 회전 불변한(Rotation-invariant)) 특징을 검출할 수 있다. 물론, 이에 한정되지 않고 다른 다양한 기법(예를들어, HOG: Histogram of Oriented Gradient, Haar feature, Fems, LBP:Local Binary Pattern, MCT:Modified Census Transform)들이 적용될 수도 있다.
학습모듈(143)은 각 위치의 획득영상을 통해 얻은 디스크립터 정보를 바탕으로, 획득영상마다 적어도 하나의 디스크립터를 소정 하위 분류규칙에 따라 복수의 군으로 분류하고, 소정 하위 대표규칙에 따라 같은 군에 포함된 디스크립터들을 각각 하위 대표 디스크립터로 변환할 수 있다.(이 경우, 같은 군에 포함된 디스크립터가 오직 하나인 경우에는 디스크립터와 하위 대표 디스크립터가 결과적으로 같을 수 있다.)
다른 예로, 실(room)과 같이 소정 구역내의 획득영상 들로부터 모인 모든 디스크립터를 소정 하위 분류규칙에 따라 복수의 군으로 분류하여 상기 소정 하위 대표규칙에 따라 같은 군에 포함된 디스크립터들을 각각 하위 대표 디스크립터로 변환할 수도 있다.
상기 소정 하위 분류규칙 및 상기 소정 하위 대표규칙에 대한 내용은, 후술할 소정 분류규칙 및 소정 대표규칙에 대한 설명을 통해 이해할 수 있다. 이 같은 과정을 거쳐, 각 위치의 특징분포를 구할 수 있다. 각 위치 특징분포는 히스토그램 또는 n차원 벡터로 표현될 수 있다.
또 다른 예로, 상기 소정 하위 분류규칙 및 소정 하위 대표규칙을 거치지 않고, 각 특징점으로부터 산출된 디스크립터를 바탕으로 미지의 현재위치를 추정하는 방법은 이미 알려져 있다.
구역 구분단계(S10) 및 디스크립터 산출단계(S15) 이후, 상기 학습단계는, 복수의 상기 디스크립터를 근거로 하여 상기 소정 학습규칙에 따라 각각의 상기 구역 별로 산출된 구역 특징분포를 저장하는 구역 특징분포 산출단계(S20)를 포함한다.
상기 소정 학습규칙은, 복수의 상기 디스크립터를 복수의 군으로 분류하는 소정 분류규칙, 및 같은 군에 포함된 상기 디스크립터를 각각 대표 디스크립터로 변환하는 소정 대표규칙을 포함한다.(상술한 소정 하위 분류규칙 및 소정 하위 대표규칙은, 본 설명을 통해 이해될 수 있다.)
학습모듈(143)은, 각 구역내의 모든 획득영상들로부터 얻은 복수의 디스크립터를 소정 분류규칙에 따라 복수의 군으로 분류할 수도 있고(제 1경우), 상기 하위 대표규칙에 의해 산출된 복수의 하위 대표 디스크립터를 소정 분류규칙에 따라 복수의 군으로 분류할 수도 있다(제 2경우). 상기 제 2경우에 있어서, 상기 소정 분류규칙의 분류 대상인 디스크립터는 상기 하위 대표 디스크립터를 지칭하는 것으로 본다.
도 11에서, A1G1, A1G2, A1G3, …, A1Gl은 구역 A1 내의 모든 디스크립터를 소정 분류규칙에 따라 나눌 각 군을 도시한 것이다. 대괄호 [ ] 안에는 같은 군으로 분류된 적어도 하나의 디스크립터를 도시한 것이다. 예를 들어, 어떤 하나의 군 A1G1으로 분류된 디스크립터들은 이다. 나머지 A1G2, A1G3, …, A1Gl에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
도 11를 참고하여, 학습모듈(143)은 상기 소정 대표규칙에 따라 같은 군에 포함된 디스크립터들을 각각 대표 디스크립터로 변환한다. 도 14에서, 은 소정 대표규칙에 따라 변환된 대표 디스크립터를 도시한 것이다. 같은 군에 속해 있는 복수의 디스크립터는 모두 같은 대표 디스크립터로 변환된다. 예를 들어, 어떤 하나의 군 A1G1에 속해 있는 디스크립터인은 소정 대표규칙에 따라 모두 으로 변환된다. 즉, A1G1에 속해 있는 서로 다른 디스크립터 3개가 같은 대표 디스크립터 3개로 변환된다. 나머지 A1G2, A1G3, …, A1Gl군에 속해있는 디스크립터들의 변환도 이와 같은 방식이므로 설명을 생략한다.
상기 소정 분류규칙은 두 n차원 벡터 사이의 거리(distance)를 근거로 할 수 있다. 예를 들면, n차원 벡터의 거리가 소정 값(ST1) 이하인 디스크립터(n차원 벡터)끼리 같은 군으로 분류할 수 있고, 두 n차원 벡터가 같은 군으로 분류되기 위한 수학식 1은 다음과 같이 정의될 수 있다.
d는 두 n차원 벡터간의 거리,
ST1는 소정 값 임.
상기 소정 대표규칙은 같은 군으로 분류된 적어도 하나의 디스크립터(n차원 벡터)의 평균값을 근거로 할 수 있다. 예를 들어, 어느 하나의 군으로 분류된 디스크립터(n차원 벡터)가 라고 가정하고, x는 어느 하나의 군으로 분류된 디스크립터의 개수라고 가정할 때, 대표 디스크립터(n차원 벡터) 는 다음의 수학식 2와 같이 정의 될 수 있다.
상기 소정 분류규칙 및 소정 대표규칙에 따라 변환된 대표 디스크립터의 종류 및 각 대표 디스크립터의 개수(웨이트, w)는 각 구역 단위로 데이터화 된다. 예를들어, 각각의 상기 구역(예를들어, A1) 별로 상기 대표 디스크립터의 종류 및 각 종류당 개수(w)를 근거로 상기 구역 특징분포가 산출될 수 있다. 어느 하나의 구역 내에서 획득한 모든 획득영상을 통해 상기 어느 하나의 구역 내의 모든 대표 디스크립터의 종류 및 각 종류별 개수(w)를 산출할 수 있다. 어느 하나의 구역 특징분포는 히스토그램으로 표현될 수 있는데, 각 대표 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류별 개수(웨이트,w)가 적을수록 커지는 스코어(s)를 도수(세로 축의 값)로 보는 히스토그램으로 표현될 수 있다.(도 12 참조) 예를들면, 어느 한 대표 디스크립터의 스코어(s1)는, 상기 어느 한 대표 디스크립터의 웨이트(w1) 분의 해당 구역(특징분포를 구하고자 하는 구역을 의미함)으로부터 산출된 모든 대표 디스크립터의 개수(해당 구역의 총 웨이트(w))로 정의될 수 있고, 이는 아래의 수학식 3으로 표현될 수 있다.
여기서, s1은 어느 한 대표 디스크립터의 스코어,
w1은 상기 어느 한 대표 디스크립터의 웨이트,
상기 수학식 3은, 희소성이 있는 특징점에 의해 산출된 대표 디스크립터에 더 큰 스코어(s)를 부여하여, 후술할 미지의 현재 위치의 획득영상에 상기 희소성이 있는 특징점이 있는 경우, 더 정확하게 실제 위치가 속한 구역을 추정할 수 있도록 한 것이다.
어느 하나의 구역 특징분포 히스토그램은, 각 대표값(대표 디스크립터)를 각 차원으로 보고, 각 대표값의 도수(스코어,s)를 각 차원의 수치로 보는 구역 특징분포 벡터로 표현될 수 있다. 맵 상의 복수의 구역(A1,A2,…,Ak)과 각각 대응되는 구역 특징분포 벡터가 산출될 수 있다.(k는 자연수)
다음으로, 위치 도약 등의 이유로 이동 로봇(100)의 현재 위치가 미지의 상태가 된 경우에, 기 저장된 각 구역 특징분포 벡터 등의 데이터를 근거로 현재 위치가 속한 구역을 추정하고, 기 저장된 상기 디스크립터 또는 하위 대표 디스크립터 등의 데이터를 근거로 현재 위치를 추정하는 과정을 설명하면, 아래와 같다.
상기 인식단계는, 상기 현재 위치의 영상을 획득하고, 획득된 영상에서 적어도 하나의 상기 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 상기 인식 디스크립터를 산출하는 인식 디스크립터 산출단계(S31)를 포함한다.
이동 로봇(100)이 미지의 현재 위치에서 영상획득부(120)를 통해 획득영상을 획득한다. 인식모듈(144)은 미지의 현재 위치에서 획득된 영상으로부터 적어도 하나의 상기 인식 특징점을 추출한다. 도 13의 그림은 미지의 현재 위치에서 촬영된 영상을 도시한 것으로, 영상을 통해 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등의 여러가지 특징(feature)들이 확인된다. 영상을 통해 천장에 위치하는 복수의 인식 특징점(h1,h2,h3,h4,h5,h6,h7)이 확인된다.
상기 ‘인식 특징점’은 인식모듈(144)에서 수행하는 과정을 설명하는 용어로서, 학습모듈(143)에서 수행하는 과정을 설명하는 용어인 ‘특징점’과 구별하여 정의하나, 이동 로봇(100)의 외부 세계의 특징이 각각 다른 용어로 정의되는 것에 불과하다.
인식모듈(144)은 획득영상으로부터 특징들을 검출한다. 컴퓨터 비전 기술 분야에서 영상으로부터 특징을 검출하는 다양한 방법 및 이들 특징의 검출에 적합한 여러 특징검출기들에 대한 설명은 상기한 바와 같다.
도 21을 참고하여, 본 특징 검출을 위해 상기 SIFT(Scale Invariant Feature Transform) 기법을 이용하여, 인식모듈(144)은 상기 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 인식 디스크립터를 산출한다. 상기 인식 디스크립터는 n차원 벡터(vector)로 표기될 수 있다. 도 21에서, 은 n차원 벡터를 의미한다. 의 중괄호 { } 안의 h1(1), h1(2), h1(3),..,h1(n)은 을 이루는 각 차원의 수치를 의미한다. 나머지 에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
인식 디스크립터 산출단계(S31) 이후, 상기 인식단계는, 상기 소정 추정규칙에 따라 각각의 상기 구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 구역을 결정하는 구역 결정단계(S33)를 포함한다. 본 설명 전체에 걸쳐 ‘연산’한다는 것는 입력값(하나 또는 복수개의 입력값)을 일정한 규칙에 따라 계산한다는 의미이다. 예를 들어, 상기 소구역 특징분포 및/또는 상기 인식 디스크립터를 2개의 입력값으로 보아 상기 소정 츄정규칙에 따라 계산하는 경우, 소구역 특징분포 및/또는 인식 디스크립터를 ‘연산’한다고 표현할 수 있다.
상기 소정 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 구역 특징분포와 비교 가능한 인식 특징분포를 산출하는 소정 변환규칙을 포함한다. 본 설명 전체에 걸쳐 ‘비교 가능’하다는 것은, 어느 하나의 대상과 비교를 위한 소정 규칙을 적용할 수 있는 상태인 것을 의미한다. 예를 들면, 다양한 색채의 물건으로 구성된 두 집합을 서로 색깔별로 그 개수를 비교하기 위하여, 두 집합 중 어느 하나의 색채 분류기준에 따라 다른 하나의 집합을 이루는 각 대상들의 색채를 분류해준 경우, 두 집합은 ‘비교 가능’하다고 표현될 수 있다. 다른 예를 들면, 각 종류당 개수를 달리하는 n차원 벡터들로 구성된 어느 한 집합과 다른 집합을 상기 n차원 벡터별로 그 개수를 비교하기 위하여, 두 집합 중 어느 하나의 n차원 벡터들로 다른 집합의 n차원 벡터들을 변환해준 경우, 두 집합은 ‘비교 가능’하다고 표현될 수 있다.
도 15를 참고하여, 인식모듈(144)은 미지의 현재 위치의 획득영상을 통해 얻은 적어도 하나의 인식 디스크립터 정보를 근거로, 소정 변환규칙에 따라 비교대상이 되는 구역 정보(예를 들면, 각 구역 특징분포)와 비교 가능한 정보(인식 특징분포)로 변환한다. 예를 들면, 소정 변환규칙에 따라 상기 적어도 하나의 인식 디스크립터를 근거로, 상기 각 구역 특징분포 벡터와 비교 가능한 인식 특징분포 벡터를 산출할 수 있다. 인식 디스크립터 들은 비교대상 구역 별로 상기 소정 변환규칙을 거쳐 근접한 대표 디스크립터로 각각 변환된다.
일 실시예로, 비교대상이 되는 어느 한 구역의 상기 구역 특징분포 벡터의 각 차원(각 대표 디스크립터)을 기준으로, 소정 변환규칙에 따라 적어도 하나의 인식 디스크립터를 각각 벡터간 거리가 가장 가까운 대표 디스크립터로 변환시킬 수 있다. 예를 들어, 인식 디스크립터 중 및 는 어느 한 구역 특징분포를 이루는 대표 디스크립터들 중 가장 거리가 가까운 어느 하나로 각각 변환될 수 있다.
나아가, 상기 소정 변환규칙에서 인식 디스크립터 및 인식 디스크립터에 가장 가까운 대표 디스크립터 사이의 거리가 소정 값을 초과하는 경우에는, 해당 인식 디스크립터는 제외시키고 나머지 인식 디스크립터 들에 대한 정보만을 가지고 변환을 진행할 수도 있다.
어느 하나의 비교대상 구역과 비교하는 경우에 있어서, 상기 변환된 대표 디스크립터의 종류 및 각 종류별 개수(인식웨이트, wh)를 근거로, 상기 비교대상 구역에 대한 인식 특징분포를 정의할 수 있다. 상기 비교대상 구역에 대한 인식 특징분포는 인식 히스토그램으로 표현될 수 있는데, 각 변환된 대표 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류별 개수(인식웨이트,wh)가 클수록 커지는 인식스코어(sh)를 도수(세로 축의 값)로 보는 인식 히스토그램으로 표현될 수 있다.(도 15 참조) 예를들면, 어느 한 변환된 대표 디스크립터의 스코어(sh1)는, 인식 디스크립터 들이 변환된 모든 대표 디스크립터의 개수(총 인식웨이트(wh)) 분의 상기 어느 한 변환된 대표 디스크립터의 웨이트(wh1)로 정의될 수 있고, 이는 아래의 수학식 4로 표현될 수 있다.
여기서, sh1은 어느 한 변환된 대표 디스크립터의 인식스코어,
wh1은 상기 어느 한 변환된 대표 디스크립터의 인식웨이트,
상기 수학식 4는, 미지의 현재 위치의 인식특징점에 의해 산출된 변환된 대표 디스크립터의 개수가 많을수록 더 큰 인식스코어(sh)를 부여하여, 미지의 현재 위치의 획득영상에 유사한 인식특징점들이 많이 존재한다면 이를 현재 위치의 추정에 있어서 주요 단서로 보아, 더 정확하게 실제 위치를 추정할 수 있도록 한 것이다.
미지의 현재위치의 비교대상 위치에 대한 인식 히스토그램은, 각 대표값(변환된 대표 디스크립터)을 각 차원으로 보고, 각 대표값의 도수(인식스코어,sh)를 각 차원의 수치로 보는 인식 특징분포 벡터로 표현될 수 있다. 이를 통해, 각 비교대상 구역 별로 각각 비교 가능한 인식 특징분포 벡터를 산출할 수 있다.
상기 소정 추정규칙은, 각각의 상기 구역 특징분포를 상기 인식 특징분포와 비교하여 각각의 유사도를 산출하는 소정 비교규칙을 포함한다. 도 16을 참고하여, 소정 비교규칙에 따라 각각의 구역 특징분포를 각각의 인식 특징분포와 비교하여 각각의 유사도를 산출할 수 있다. 예를 들어, 어느 하나의 상기 구역 특징분포 벡터와 이에 대한 각각의 인식 특징분포 벡터(비교대상 구역에 따라 소정 변환규칙에 따라 비교가능하게 변환된 인식 특징분포 벡터를 의미함)의 유사도는 아래의 수학식 5로 정의될 수 있다. (cosine similarity)
여기서, cosθ는 유사도인 확률이고,
각각의 비교대상 구역 별로 유사도(확률)를 산출하고, 그 중 가장 큰 확률이 산출되는 구역을 현재위치가 속한 구역으로 결정할 수 있다.
구역 결정단계(S33) 이후, 상기 인식단계는, 상기 결정된 어느 한 구역 내의 복수의 위치 중 상기 현재위치를 결정하는 위치 결정단계(S35)를 포함한다.
인식모듈(144)은 미지의 현재 위치의 획득영상을 통해 얻은 적어도 하나의 인식 디스크립터 정보를 근거로, 소정 하위 변환규칙에 따라 비교대상이 되는 위치 정보(예를 들면, 각 위치의 특징분포)와 비교 가능한 정보(하위 인식 특징분포)로 변환한다.
소정 하위 비교규칙에 따라, 각각의 위치 특징분포를 각각의 인식 특징분포와 비교하여 각각의 유사도를 산출할 수 있다. 각각의 위치에 해당하는 상기 위치 별로 유사도(확률)를 산출하고, 그 중 가장 큰 확률이 산출되는 위치를 현재위치로 결정할 수 있다.
상기 소정 하위 변환규칙 및 상기 소정 하위 비교규칙에 대한 내용은, 상술한 소정 변환규칙 및 소정 비교규칙에 대한 설명을 통해 이해할 수 있다.
이하 도 17 내지 19를 참고하여, 제 1실시예에 따라 하나의 이동 로봇만이 주행구역(X)을 주행하면서 맵을 학습하는 학습단계(S100)를 설명한다.
본 발명에 따른 이동 로봇의 맵 학습단계는 상기 노드(N) 정보(D180)를 바탕으로 한다.
학습단계(S100)는, 원점 노드(O)를 설정하는 단계(S110)를 포함한다. 원점 노드(O)는 맵 상의 기준 점으로서, 노드(N) 좌표 정보(D186)는 원점 노드(O)와의 상대적 변위를 측정하여 생성된다. 노드(N) 좌표 정보(D186)가 수정되는 경우에도 원점 노드(O)는 변경되지 않는다.
학습단계(S100)는, 원점 노드(O)를 설정하는 단계(S110) 이후, 이동 로봇(100)의 주행 중 노드(N) 정보(D180)를 생성하는 단계(S120)를 포함한다.
도 18을 참고하여, 노드(N) 정보(D180)는, 복수의 노드(N) 정보(D180)들 중에 어느 노드에 노드(N) 정보(D180)인지 식별이 가능케 해주는 노드 고유 인덱스(D181)를 포함한다. 후술하는 바 노드(N) 정보(D180)를 복수의 이동 로봇이 서로 송수신하거나 중앙 서버와 서로 송수신하는 경우, 노드 고유 인덱스(D181)를 근거로 복수의 노드(N) 정보(D180)들 중 중복되는 노드(N) 정보(D180)를 식별할 수 있다.
또한, 노드(N) 정보(D180)는 해당 노드(N)에 대응하는 획득영상 정보(D183)를 포함할 수 있다. 대응하는 획득영상 정보(D183)는, 해당 노드(N)와 대응하는 현실의 위치에서 영상획득부(125)가 획득한 영상일 수 있다.
또한, 노드(N) 정보(D180)는 해당 노드(N)에서 주변 환경과의 거리 정보(D184)를 포함할 수 있다. 주변 환경과의 거리 정보(D184)는, 해당 노드(N)와 대응하는 현실의 위치에서 장애물 감지센서(131) 등이 측정한 거리 정보일 수 있다.
또한, 노드(N) 정보(D180)는 노드(N) 좌표 정보(D186)를 포함한다. 노드(N) 좌표 정보(D186)는 원점 노드(O)를 기준으로 얻어질 수 있다.
또한, 노드(N) 정보(D180)는 노드 갱신 시각 정보(D188)를 포함할 수 있다. 노드 갱신 시각 정보(D188)는 노드(N) 정보(D180)가 생성 또는 수정되는 시점에 대한 정보이다. 이동 로봇(100)이 기존의 노드(N) 정보(D180)와 노드 고유 인덱스(D181)가 같은 노드(N) 정보(D180)를 수신받은 경우, 노드 갱신 시각 정보(D188)를 근거로 노드(N) 정보(D180)의 갱신여부를 결정할 수도 있다. 노드 갱신 시각 정보(D188)는 최신의 노드(N) 정보(D180)로의 갱신 여부를 판단할 수 있게 해준다.
인접 노드와의 측정 변위 정보(D165)는 상기 주행 변위 정보 및 후술할 루프 변위(LC) 정보를 의미한다. 인접 노드와의 측정 변위 정보(D165)가 제어부(140)에 입력되면, 노드(N) 정보(D180)가 생성되거나 수정된다.
노드(N) 정보(D180)의 수정은 노드(N) 좌표 정보 및 노드 갱신 시각 정보(D188)의 수정일 수 있다. 즉, 노드 고유 인덱스(D181), 대응하는 획득영상 정보(D183) 및 주변 환경과의 거리 정보(D184)는 한번 생성되면 인접 노드와의 측정 변위 정보(D165)가 입력되어도 수정되지 않는 반면, 노드(N) 좌표 정보(D186) 및 노드 갱신 시각 정보(D188)는 인접 노드와의 측정 변위 정보(D165)가 입력되면 수정될 수 있다.
노드(N) 정보(D180)를 생성하는 단계(S120)에서, 측정된 상기 주행 변위(인접 노드와의 측정 변위 정보(D165))가 입력되면, 이를 근거로 노드(N) 정보(D180)가 생성된다. 상기 주행 변위의 시점이 되는 노드(N1)의 좌표(노드 좌표 정보(D186))에 상기 주행 변위를 더하여, 상기 주행 변위의 종점이 되는 생성되는 노드(N2)의 좌표(노드 좌표 정보(D186))를 생성할 수 있다. 노드(N) 정보(D180)가 생성되는 시점을 기준으로 노드 갱신 시각 정보(D188)가 생성된다. 이때, 생성되는 노드(N2)의 노드 고유 인덱스(D181)가 생성된다. 또한, 생성되는 노드(N2)에 대응하는 획득영상의 정보(D183)가 해당 노드(N2)에 매칭될 수 있다. 또한, 생성되는 노드(N2)의 주변 환경과의 거리 정보(D184)가 해당 노드(N2)에 매칭될 수 있다.
도 19를 참고하여, 노드(N) 정보(D180)를 생성하는 단계(S120)를 설명하면, 원점 노드(O)가 설정된 상태에서 측정된 주행 변위(C1)가 입력되어 노드(N1) 정보(D180)가 생성되고, 노드(N1) 정보(D180)가 생성된 상태에서 주행 변위(C2)가 입력되어 노드(N2) 정보(D180)가 생성되고, 노드(N2) 정보(D180)가 생성된 상태에서 주행 변위(C3)가 입력되어 노드(N3) 정보(D180)가 생성된다. 이와 같이 순차적으로 입력되는 주행 변위(C1,C2,C3,…,C16)를 근거로 순차적으로 노드(N1,N2,N3,…,N16)의 노드 정보(D180)가 생성된다.
학습단계(S100)는, 주행 중 노드(N) 정보(D180)를 생성하는 단계(S120) 이후, 노드(N) 사이의 루프 변위(LC) 측정여부를 판단하는 단계(S130)를 포함한다. 노드(N) 간 루프 변위(LC) 측정여부 판단단계(S130)에서, 루프 변위(LC)가 측정되면 노드(N) 좌표 정보를 수정하는 단계(S135)를 진행하고, 루프 변위(LC)가 측정되지 않으면 이동 로봇(100)의 맵 학습 종료여부를 판단하는 단계(S150)를 진행한다. 맵 학습 종료여부 판단단계(S150)에서, 맵 학습이 종료되지 않으면 다시 주행 중 노드(N) 정보 생성단계(S120)를 진행할 수 있다. 도 17은 하나의 실시예를 제시한 것이고, 주행 중 노드(N) 정보 생성 단계(S120) 및 노드 간 루프 변위(LC) 측정여부 판단단계(S130)의 선후 관계는 서로 바뀔 수 있고, 동시에 진행될 수도 있다.
도 19를 참고하여, 어느 하나의 주행 변위(C15)의 시점이 되는 노드(C15)를 해당 주행 변위(C15)의 종점이 되는 노드(16)의 ‘기초 노드’라고 정의할 때, 루프 변위(Loop Constraint, LC)는 어느 한 노드(N15) 및 상기 어느 한 노드(N15)의 상기 ‘기초 노드(N14)가 아닌’ 다른 인접한 노드(N5) 사이의 변위가 측정된 값을 의미한다.
일 예로, 어느 한 노드(N15)에 대응하는 획득영상 정보(D183)와 다른 인접한 노드(N5)에 대응하는 획득영상 정보(D183)가 서로 비교되어 두 노드(N15,N5) 사이의 루프 변위(LC)가 측정될 수 있다. 다른 예로, 어느 한 노드(N15)의 거리 정보(D184)와 다른 인접한 노드(N5)의 거리 정보(D184)가 서로 비교되어 두 노드(N15,N5) 사이의 루프 변위(LC)가 측정될 수 있다.
도 19에는, 노드 N5와 노드 N15 사이에서 측정된 루프 변위(LC1), 및 노드 N4와 노드 N16 사이에서 측정된 루프 변위(LC2)가 예시적으로 도시되어 있다.
설명의 편의를 위해, 루프 변위(LC)가 측정된 두 노드(N)를 각각 제 1루프 노드 및 제 2루프 노드라고 정의한다. 기 저장된 제 1루프 노드의 노드 좌표 정보(D186) 및 제 2루프 노드의 노드 좌표 정보(D186)에 의해 산출되는 ‘산출 변위(Δx1,Δy1,θ1)’(좌표값의 차에 의해 산출됨)가 루프 변위(LC)(Δx2,Δy2,θ2)와 차이(Δx1-Δx2,Δy1-Δy2,θ1- θ2)가 발생할 수 있다. 상기 차이가 발생하면, 상기 차이를 오차로 보고 노드 좌표 정보(D186)를 수정할 수 있는데, 루프 변위(LC)가 상기 산출 변위보다 더 정확한 값이라는 가정하에 노드 좌표 정보(D186)를 수정한다.
노드 좌표 정보(D186)를 수정하는 경우, 상기 제 1루프 노드 및 제 2루프 노드의 노드 좌표 정보(D186)만 수정할 수도 있으나, 상기 오차의 발생은 주행 변위들의 오차가 누적되어 발생된 것이므로 상기 오차를 분산시켜 다른 노드들의 노드 좌표 정보(D186)도 수정하도록 설정할 수 있다. 예를 들어, 상기 제 1루프 노드와 제 2루프 노드 사이에 상기 주행 변위에 의해 생성된 모든 노드들에, 상기 오차 값을 분산시켜 노드 좌표 정보(D186)를 수정할 수 있다. 도 19를 참고하여, 루프 변위 LC1이 측정되고 상기 오차가 산출된 경우, 제 1루프 노드 N15와 제 2루프 노드 N5를 포함한 노드 N6 내지 N14에 상기 오차를 분산시켜, 노드 N5 내지 N15의 노드 좌표 정보(D186)가 모두 조금씩 수정될 수 있다. 물론, 이러한 오차 분산을 확대시켜, 노드 N1 내지 N4의 노드 좌표 정보(D186)를 같이 수정할 수도 있음은 물론이다.
이하 도 20 내지 24를 참고하여, 제 2실시예에 따라 복수의 이동 로봇이 주행구역(X)을 주행하면서 서로 협업하여 맵을 학습하는 학습단계(S200)를 설명한다. 이하, 제 2실시예에서 상기 제 1실시예와 중복되는 설명은 생략한다.
학습단계(S200)는 복수의 이동 로봇 중 어느 한 이동 로봇 A를 기준으로 설명한다. 즉, 이하의 설명에서 A 이동 로봇(100)은 본 이동 로봇(100)을 의미한다. 타 이동 로봇(100)은 여러 대일 수 있으나, 도 20 내지 24에서는 설명의 편의를 위해, 타 이동 로봇은 B 이동 로봇(100) 1대인 것을 기준으로 설명하나, 반드시 이에 한정될 필요는 없다.
학습단계(S200)는, 본 이동 로봇(100)의 원점 노드(AO)를 설정하는 단계(S210)를 포함한다. 원점 노드(AO)는 맵 상의 기준 점으로서, 본 이동 로봇(100)의 노드(AN) 좌표 정보(D186)는 본 이동 로봇(100)의 원점 노드(AO)와의 상대적 변위를 측정하여 생성된다. 노드(AN) 좌표 정보(D186)가 수정되는 경우에도 원점 노드(AO)는 변경되지 않는다. 그러나, 타 이동 로봇(100)의 원점 노드(BO)는 본 이동 로봇(100)의 수신부(190)에 의해 수신받는 정보로서 본 이동 로봇(100)이 학습하는 맵상에서 기준점이 아니며, 생성 및 수정/조정될 수 있는 하나의 노드(N) 정보로 볼 수 있다.
학습단계(S100)는, 원점 노드(AO)를 설정하는 단계(S110) 이후, 본 이동 로봇(100)의 주행 중 노드(N) 정보(D180)를 생성하고, 수신부(190)를 통해 타 이동 로봇(100)의 노드 그룹 정보를 수신하고, 송신부(170)를 통해 본 이동 로봇(100)의 노드 그룹정보를 타 이동 로봇에게 송신하는 단계(S220)를 포함한다.
어느 한 이동 로봇의 노드 그룹 정보는, 상기 어느 한 이동 로봇이 저장하고 있는 모든 노드 정보(D180)에서 상기 어느 한 이동 로봇이 생성한 모든 노드 정보(D180)를 제외한 노드 정보(D180)들의 집합으로 정의할 수 있다. 또한, 어느 한 타 이동 로봇의 노드 그룹 정보는, 상기 어느 한 타 이동 로봇이 저장하고 있는 모든 노드 정보(D180)에서 상기 어느 한 타 이동 로봇이 생성한 모든 노드 정보(D180)를 제외한 노드 정보(D180)들의 집합으로 정의할 수 있다.
도 22 내지 24에서, A 이동 로봇 입장에서 B 이동 로봇의 노드 그룹 정보는 GB로 도시된 영역 내의 노드 정보(D180)들을 의미하고, B 이동 로봇 입장에서 A 이동 로봇의 노드 그룹 정보는 GA로 도시된 영역 내의 노드 정보(D180)들을 의미한다. 또한, 도 25에서, A 이동 로봇 입장에서 B 이동 로봇의 노드 그룹 정보는 GB 및 GC (B 이동 로봇이 A 또는 C 이동 로봇으로부터 이미 GC 영역 내의 노드 정보들을 수신 받은 경우)로 도시된 영역 내의 노드 정보(D180)들을 의미하고, A 이동 로봇 입장에서 C 이동 로봇의 노드 그룹 정보는 GB 및 GC (C 이동 로봇이 A 또는 B 이동 로봇으로부터 이미 GB 영역 내의 노드 정보들을 수신 받은 경우)로 도시된 영역 내의 노드 정보(D180)들을 의미한다.
이와 달리, 어느 한 이동 로봇의 노드 그룹 정보를 상기 어느 한 이동 로봇이 ‘생성한’ 노드 정보 들의 집합으로 정의할 수도 있다. 예를 들어, 도 25를 참고하면, A 이동 로봇입장에서 C 이동 로봇의 노드 그룹 정보는 GC영역 내의 노드 정보들일 수 있고, C 이동 로봇으로 부터만 수신 받을 수 있도록 기설정 될 수 있다.
도 21을 참고하여, 노드(N) 정보(D180)는, 상기 노드 고유 인덱스(D181), 해당 노드(N)에 대응하는 획득영상 정보(D183), 해당 노드(N)에서 주변 환경과의 거리 정보(D184), 노드(N) 좌표 정보(D186) 및 노드 갱신 시각 정보(D188)를 포함할 수 있다. 이에 대한 설명은 상기한 바와 같다.
송신부 송신 정보(D190)는, 본 이동 로봇이 생성하거나 수정한 노드(N) 정보를 타 이동 로봇에게 송신해주는 정보를 의미한다. 본 이동 로봇의 송신부 송신 정보(D190)는 본 이동 로봇의 노드 그룹 정보일 수 있다.
수신부 수신 정보(D170)는, 타 이동 로봇이 생성하거나 수정한 노드(N) 정보를 타 이동 로봇으로부터 수신받는 정보를 의미한다. 본 이동 로봇의 수신부 수신 정보(D170)는 타 이동 로봇의 노드 그룹 정보일 수 있다. 수신부 수신 정보(D170)는 기존에 저장된 노드 정보(D180)들에 추가되거나 기존 노드 정보(D180)를 갱신시킨다.
본 이동 로봇(100)의 주행 중 노드(N) 정보(D180)를 생성하는 과정에 대한 설명은 상기 제 1실시예의 내용과 같다.
도 21을 참고하여, 인접 노드와의 측정 변위 정보(D165)는 상기 주행 변위 정보, 상기 루프 변위(LC) 정보 및 후술할 경계 변위(EC) 정보를 의미한다. 인접 노드와의 측정 변위 정보(D165)가 제어부(140)에 입력되면, 노드(N) 정보(D180)가 생성되거나 수정된다.
노드(N) 정보(D180)의 수정은 노드(N) 좌표 정보 및 노드 갱신 시각 정보(D188)의 수정일 수 있다. 즉, 노드 고유 인덱스(D181), 대응하는 획득영상 정보(D183) 및 주변 환경과의 거리 정보(D184)는 한번 생성되면 인접 노드와의 측정 변위 정보(D165)가 입력되어도 수정되지 않는 반면, 노드(N) 좌표 정보(D186) 및 노드 갱신 시각 정보(D188)는 인접 노드와의 측정 변위 정보(D165)가 입력되면 수정될 수 있다.
도 22 내지 24을 참고하여, 본 이동 로봇(100)의 맵 상의 노드(N) 정보 들은, 본 이동 로봇(100)이 직접 생성한 노드 정보(D180)들(GA) 및 타 이동 로봇(100)의 노드 그룹 정보(GB)로 이루어진다.
상기 단계(S220)에서, 복수의 이동 로봇이 각각 주행중 측정된 변위를 근거로 각각 이동 로봇의 노드 정보를 생성한다.
도 22 내지 24를 참고하여, 본 이동 로봇(100)이 노드(AN) 정보(D180)를 생성하는 단계(S220)를 설명하면, 원점 노드(AO)가 설정된 상태에서 측정된 주행 변위(AC1)가 입력되어 노드(AN1) 정보(D180)가 생성되고, 노드(AN1) 정보(D180)가 생성된 상태에서 주행 변위(AC2)가 입력되어 노드(AN2) 정보(D180)가 생성되고, 노드(AN2) 정보(D180)가 생성된 상태에서 주행 변위(AC3)가 입력되어 노드(AN3) 정보(D180)가 생성된다. 이와 같이 순차적으로 입력되는 주행 변위(AC1,AC2,AC3,…,AC12)를 근거로 순차적으로 노드(AN1,AN2,AN3,…,AN12)의 노드 정보(D180)가 생성된다.
타 이동 로봇(100)이 노드(BN) 정보(D180)를 생성하는 단계(S220)를 설명하면, 원점 노드(BO)가 설정된 상태에서 측정된 주행 변위(BC1)가 입력되어 노드(BN1) 정보(D180)가 생성되는 것을 시작으로, 순차적으로 입력되는 주행 변위(BC1,BC2,BC3,…,BC12)를 근거로 순차적으로 노드(BN1,BN2,BN3,…,BN12)의 노드 정보(D180)가 생성된다.
상기 단계(S220)에서, 복수의 이동 로봇이 각각의 노드 그룹 정보를 서로 송신 및 수신한다.
도 22 내지 24를 참고하여, 본 이동 로봇(100)은 타 이동 로봇의 노드 그룹정보(BN)를 수신하여, 본 이동 로봇(100)의 맵상에 타 이동 로봇의 노드 그룹 정보(GB)를 추가한다. 도 22에서, 아직 본 이동 로봇(100)과 타 이동 로봇(100) 사이에 경계 변위(EC)가 측정되지 않은 경우, 본 이동 로봇(100)의 맵 상에 타 이동 로봇(100)의 원점 노드(BO)의 위치는 임의로 배치될 수 있다. 본 실시예에서, 본 이동 로봇(100)의 맵 상에 타 이동 로봇(100)의 원점 노드(BO)는 본 이동 로봇(100)의 원점 노드(AO)의 위치와 같도록 설정된다. 경계 변위(EC)가 측정되어 맵상에 타 이동 로봇(100)의 노드 그풉 정보가 조정되기 전에는, 본 이동 로봇이 생성한 노드 정보들(GA)과 타 이동 로봇의 노드 그룹 정보(GB)가 조합되어 현실의 상황과 일치하는 맵을 생성하기 곤란해진다.
본 이동 로봇(100)은 본 이동 로봇(100)의 노드 그룹 정보(GA)를 타 이동 로봇에게 송신한다. 타 이동 로봇(100)의 맵상에 본 이동 로봇의 노드 그룹 정보(GA)가 추가된다.
학습단계(S200)는, 본 이동 로봇이 생성한 두 노드 사이의 루프 변위(LC) 측정여부를 판단하는 단계(S230)를 포함한다. 학습단계(S200)은, 본 이동 로봇이 생성한 두 노드 사이의 루프 변위(LC) 측정되는 단계를 포함할 수 있다.
루프 변위(LC)에 대한 설명은 상기 제 1실시예에서의 설명과 같다.
상기 학습단계(S200)는, 상기 측정된 루프 변위(LC)를 근거로 하여, 본 이동 로봇의 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계(S245)를 포함할 수 있다.
노드(AN) 간 루프 변위(LC) 측정여부 판단단계(S230)에서, 루프 변위(LC)가 측정되면 복수의 이동 로봇이 생성한 노드(AN) 좌표 정보를 수정하는 단계(S235)를 진행하고, 루프 변위(LC)가 측정되지 않으면 본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위(EC) 측정여부를 판단하는 단계(240)를 포함한다. 학습단계(S200)는, 본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위(EC)가 측정되는 단계를 포함할 수 있다. 학습단계(S200)는, 복수의 이동 로봇이 각각 생성한 두 노드 사이에 경계 변위(EC)가 측정되는 단계를 포함할 수 있다.
도 23 및 24를 참고하여, 경계 변위(Edge Constraint, EC)는 어느 한 이동 로봇이 생성한 노드(AN11) 및 다른 한 이동 로봇이 생성한 노드(BN11) 사이의 변위가 측정된 값을 의미한다.
일 예로, 본 이동 로봇이 생성한 노드(AN11)에 대응하는 획득영상 정보(D183)와 타 이동 로봇이 생성한 노드(BN11)에 대응하는 획득영상 정보(D183)가 서로 비교되어 두 노드(AN11,BN11) 사이의 경계 변위(EC1)가 측정될 수 있다. 다른 예로, 본 이동 로봇이 생성한 노드(AN11)의 거리 정보(D184)와 타 이동 로봇이 생성한 노드(BN11)의 거리 정보(D184)가 서로 비교되어 두 노드(AN11,BN11) 사이의 경계 변위(EC1)가 측정될 수 있다.
위와 같은 경계 변위(EC)의 측정은 각각의 이동 로봇 내에서 이루어지는데, 수신부(190)를 통해 타 이동 로봇으로부터 타 이동 로봇이 생성한 노드 그룹 정보를 수신받을 수 있고, 이를 바탕으로 자신이 생성한 노드 정보 들과 비교할 수 있기 때문이다.
도 23 및 24에는, 노드 AN11과 노드 BN11 사이에서 측정된 경계 변위(EC1), 노드 AN12와 노드 BN4 사이에서 측정된 경계 변위(EC2), 및 노드 AN10과 노드 BN12 사이에서 측정된 경계 변위(EC3)가 예시적으로 도시되어 있다.
경계 변위(EC) 측정여부를 판단하는 단계(240)에서, 경계 변위(EC)가 측정되지 않으면 이동 로봇(100)의 맵 학습 종료여부를 판단하는 단계(S250)를 진행한다. 맵 학습 종료여부 판단단계(S250)에서, 맵 학습이 종료되지 않으면 다시 주행 중 노드(N) 정보 생성하고 복수의 이동 로봇이 서로 노드 그룹 정보를 송수신하는 단계(S220)를 진행할 수 있다. 도 20은 하나의 실시예를 제시한 것이고, 주행 중 노드(N) 정보 생성하고 노드 그룹 정보를 송수신하는 단계(S120), 노드 간 루프 변위(LC) 측정여부 판단단계(S130) 및 노드 간 경계 변위(EC) 측정여부 판단단계(S240)의 선후 관계는 서로 바뀔 수 있고, 동시에 진행될 수도 있다.
경계 변위(EC) 측정여부를 판단하는 단계(S240)에서 경계 변위(EC)가 측정되면, 본 이동 로봇(100)의 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹(GB)의 좌표를 기 조정(Align)하였는지 여부를 판단하는 단계(S242)가 진행된다.
상기 조정(Align)은 본 이동 로봇의 노드 그룹 정보(GA)와 타 이동 로봇의 노드 그룹 정보(GB)가 본 이동 로봇의 맵상에서 경계 변위(EC)를 근거로 현실과 유사하게 정렬되는 것을 의미한다. 즉, 경계 변위(EC)는 퍼즐 조각과 같은 본 이동 로봇의 노드 그룹 정보(GA)와 타 이동 로봇의 노드 그룹 정보(GB)가 서로 짜 맞춰지도록 하는 단서를 제공한다. 본 이동 로봇의 맵상에서, 타 이동 로봇의 노드 그룹 정보(GB) 중 타 이동 로봇의 원점 노드(BO)의 좌표가 수정되고, 나머지 타 이동 로봇의 노드(BN)의 좌표는 타 이동 로봇의 원점 노드(BO)의 수정된 좌표를 기준으로 수정됨으로써, 조정(Align)이 이루어진다.
도 23을 참고하여, 상기 단계(S242)에서 본 이동 로봇의 맵상에 타 이동 로봇의 노드 그룹(GB)이 기 조정되지 않은 경우, 상기 측정된 경계 변위(EC1)를 근거로 하여, 어느 하나의 이동 로봇(본 이동 로봇)의 맵 상에서 다른 하나의 이동 로봇(타 이동 로봇)으로부터 수신한 노드 그룹(GB)의 좌표를 조정하는 단계(S244)가 진행된다. 동시에, 상기 다른 하나의 이동 로봇(타 이동 로봇)의 맵 상에서 상기 어느 하나의 이동 로봇(본 이동 로봇)으로부터 수신한 노드 그룹(GA)의 좌표를 조정하는 단계(S244)가 진행된다. 도 23에서, 본 이동 로봇의 맵상에 상기 도 22의 그림과 달리 타 이동 로봇의 노드 그룹 정보(GB)가 전체적으로 이동하며 조정(Align)된 것을 볼 수 있다.
두 이동 로봇이 생성한 노드 간에 측정된 경계 변위(EC1) 정보는 상기 두 이동 로봇에게 모두 송신되어, 각 이동 로봇의 맵상에서 자신을 기준으로 상대 로봇의 노드 그룹 정보를 조정할 수 있다.
도 24를 참고하여, 상기 단계(S242)에서 본 이동 로봇의 맵 상에 타 이동 로봇으로부터 수신한 노드 그룹(GB)의 좌표를 기 조정한 경우, 추가로 측정된 경계 변위(EC2, EC3)를 근거로 하여, 어느 하나의 이동 로봇(본 이동 로봇)의 맵 상에서 상기 어느 하나의 이동 로봇(본 이동 로봇)이 생성한 노드의 좌표를 수정하는 단계(S245)가 진행된다. 동시에, 다른 하나의 이동 로봇(타 이동 로봇)의 맵 상에서 상기 다른 하나의 이동 로봇(타 이동 로봇)이 생성한 노드의 좌표를 수정하는 단계(S245)가 진행된다.
두 이동 로봇이 생성한 노드 간에 측정된 경계 변위(EC2, EC3) 정보는 상기 두 이동 로봇에게 모두 송신되어, 각 이동 로봇의 맵상에서 자신을 기준으로 자신이 생성한 노드 정보를 수정할 수 있다.
설명의 편의를 위해, 경계 변위(EC)가 측정된 두 노드 중 본 이동 로봇이 생성한 노드를 본 경계 노드라고 정의하고, 타 이동 로봇이 생성한 노드를 타 경계 노드라고 정의한다. 기 저장된 본 경계 노드의 노드 좌표 정보(D186) 및 타 경계 노드의 노드 좌표 정보(D186)에 의해 산출되는 ‘산출 변위’(좌표값의 차에 의해 산출됨)가 경계 변위(EC)와 차이가 발생할 수 있다. 상기 차이가 발생하면, 상기 차이를 오차로 보고 본 이동 로봇이 생성한 노드 좌표 정보(D186)를 수정할 수 있는데, 경계 변위(EC)가 상기 산출 변위보다 더 정확한 값이라는 가정하에 노드 좌표 정보(D186)를 수정한다.
노드 좌표 정보(D186)를 수정하는 경우, 상기 본 경계 노드의 노드 좌표 정보(D186)만 수정할 수도 있으나, 상기 오차의 발생은 주행 변위들의 오차가 누적되어 발생된 것이므로 상기 오차를 분산시켜 본 이동 로봇이 생성한 다른 노드들의 노드 좌표 정보(D186)도 수정하도록 설정할 수 있다. 예를 들어, 2개의 본 경계 노드(경계 변위가 2번 이상 측정된 경우 발생됨) 사이에 상기 주행 변위에 의해 생성된 모든 노드들에, 상기 오차 값을 분산시켜 노드 좌표 정보(D186)를 수정할 수 있다. 도 24를 참고하여, 경계 변위 EC3이 측정되고 상기 오차가 산출된 경우, 본 경계 노드 AN12와 다른 본 경계 노드 AN10을 포함한 노드 AC11에 상기 오차를 분산시켜, 노드 AN10 내지 AN12의 노드 좌표 정보(D186)가 모두 조금씩 수정될 수 있다. 물론, 이러한 오차 분산을 확대시켜, 노드 AN1 내지 AN12의 노드 좌표 정보(D186)를 같이 수정할 수도 있음은 물론이다.
상기 학습단계(S200)는, 상기 측정된 경계 변위(EC)를 근거로 하여, 어느 하나의 이동 로봇(본 이동 로봇)의 맵 상에서 다른 하나의 이동 로봇(타 이동 로봇)으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함할 수 있고, 상기 다른 하나의 이동 로봇(타 이동 로봇)의 맵 상에서 상기 어느 하나의 이동 로봇(본 이동 로봇)으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함할 수 있다.
상기 학습단계(S200)는, 상기 측정된 경계 변위(EC)를 근거로 하여, 어느 하나의 이동 로봇(본 이동 로봇)의 맵 상에서 상기 어느 하나의 이동 로봇(본 이동 로봇)이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있고, 다른 하나의 이동 로봇(타 이동 로봇)의 맵 상에서 상기 다른 하나의 이동 로봇(타 이동 로봇)이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 단계(S244,S245) 이후, 이동 로봇(100)의 맵 학습 종료여부를 판단하는 단계(S250)를 진행할 수 있다. 맵 학습 종료여부 판단단계(S250)에서, 맵 학습이 종료되지 않으면 다시 주행 중 노드(N) 정보 생성하고 복수의 이동 로봇이 서로 노드 그룹 정보를 송수신하는 단계(S220)를 진행할 수 있다.
도 25를 참고하여, 상기 제 2실시예의 설명은, 이동 로봇이 3개 이상인 경우까지 확장하여 적용될 수 있다.
상기 복수의 이동 로봇이 3개 이상의 이동 로봇인 경우, 제 1이동 로봇이 제 2이동 로봇으로부터 수신한 노드 그룹 정보는, 제 2이동 로봇이 제 3이동 로봇으로부터 수신한 노드 그룹 정보를 포함할 수 있다. 이 경우, 동일한 노드에 대해서 수신한 노드 정보(예를 들어, 제 2이동 로봇으로부터 수신받은 제 3이동 로봇이 생성한 노드 정보)와 저장된 노드 정보(예를 들어, 이전에 이미 제 3이동 로봇으로부터 수신받은 제 3 이동 로봇이 생성한 노드 정보)가 서로 다른 경우, 상기 노드 갱신 시각 정보를 근거로 하여 최신의 노드 정보를 선택하여, 노드 정보의 갱신여부를 결정할 수 있다.
도 25에서, A 이동 로봇이 생성한 두 노드 사이에서 측정된 루프 변위(A-LC1), B 이동 로봇이 생성한 두 노드 사이에서 측정된 루프 변위(B-LC1), 및 C 이동 로봇이 생성한 두 노드 사이에서 측정된 루프 변위(C-LC1)가 예시적으로 도시되어 있다. 또한, 도 25에서, A 이동 로봇이 생성한 노드와 B 이동 로봇이 생성한 노드 사이에서 측정된 경계 변위(AB-EC1), B 이동 로봇이 생성한 노드와 C 이동 로봇이 생성한 노드 사이에서 측정된 2개의 경계 변위(BC-EC1, BC-EC2), 및 C 이동 로봇이 생성한 노드와 A 이동 로봇이 생성한 노드 사이에서 측정된 2개의 경계 변위(CA-EC1, CA-EC2)가 예시적으로 도시되어 있다.
도 25에서, A 이동 로봇의 맵 상에는, A 로봇이 생성한 노드 정보들이 도시되고, 타 이동 로봇의 노드 그룹 정보가 상기 경계 변위를 통해 조정(Align)된 것이 도시된다.
도 26a 내지 도 26f를 참고하여, 이하 본 이동 로봇(100a)과 타 이동 로봇(100b)이 협업하여 맵을 생성하고 이를 활용하는 일 시나리오를 설명한다.
도 26a 내지 도 26f의 일 시나리오의 조건은 다음과 같다. 현실의 평면에는 모두 5개의 방(Room1, Room2, Room3, Room4, Room5)이 있다. 현실의 평면에서, 본 이동 로봇(100a)은 방(Room3)에 배치되고, 타 이동 로봇(100b)은 방(Room1)에 배치된다. 현재 상태는, 방(Room1)과 방(Room4) 사이의 도어가 닫혀있고, 방(Room1)과 방(Room5) 사이의 도어가 닫혀있어, 방(Room1)에서 방(Room4) 또는 방(Room5)로 이동 로봇(100a, 100b)이 스스로 이동할 수 없는 상태이다. 또한, 현재 상태는, 방(Room1)과 방(Room3) 사이의 도어가 열려 있어, 방(Room1)과 방(Room3) 중 어느 하나에서 다른 하나로 이동 로봇(100a, 100b)이 스스로 이동할 수 있는 상태이다. 이동 로봇(100a, 100b)은 아직 현실의 평면을 학습하지 못한 상태로서, 도 26a 내지 도 26f에 도시된 주행은 본 현실의 형면에서의 최초의 주행이라고 가정한다.
도 26a 내지 도 26f에서, 본 이동 로봇(100a)의 맵 상의 노드(N) 정보 들은, 본 이동 로봇(100a)이 직접 생성한 노드 정보(D180)들(GA) 및 타 이동 로봇(100b)의 노드 그룹 정보(GB)로 이루어진다. 본 이동 로봇(100a)의 맵 상의 노드 들중 까만 점으로 표시된 노드(ANp)는, 본 이동 로봇(100a)의 현실의 현재 위치와 대응되는 노드를 의미한다. 또한, 본 이동 로봇(100a)의 맵 상의 노드 들중 까만 점으로 표시된 노드(BNp)는, 타 이동 로봇(100b)의 현실의 현재 위치와 대응되는 노드를 의미한다.
도 26a를 참고하여, 본 이동 로봇(100a)은 최초의 현실의 위치와 대응되는 원점 노드(AO)가 설정된 상태에서, 주행하면서 측정된 주행 변위를 근거로 순차적으로 복수의 노드 정보를 생성한다. 이와 동시에, 타 이동 로봇(100b)은 최초의 현실의 위치와 대응되는 원점 노드(BO)가 설정된 상태에서, 주행하면서 측정된 주행 변위를 근거로 순차적으로 복수의 노드 정보를 생성한다. 본 이동 로봇()은 본 이동 로봇()의 맵 상에 노드 그룹 정보(GA)를 스스로 생성시킨다. 이와 동시에, 도시되지는 않았으나, 타 이동 로봇()은 타 이동 로봇()의 맵 상에는 노드 그룹 정보(GB)를 스스로 생성시킨다. 또한, 본 이동 로봇()과 타 이동 로봇()이 서로 노드 그룹 정보를 송수신하고, 이에 따라 본 이동 로봇()의 맵 상에 노드 그룹 정보(GB)가 추가된다. 도 26a에서, 경계 변위(EC)가 아직 측정되지 않은 상태로서, 본 이동 로봇()의 맵상에서 원점 노드(AO)와 원점 노드(BO)가 일치되는 것을 기준으로 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)가 병합된다. 이 때, 도 26a의 본 이동 로봇()의 맵 상의 노드 그룹 정보(GA) 내의 노드와 노드 그룹 정보(GB) 내의 노드의 상대적 위치 관계(노드 좌표 정보를 통해 알 수 있음)는, 현실의 위치 관계를 반영하지 못하고 있다.
도 26b를 참고하여, 그 후, 본 이동 로봇()과 타 이동 로봇()이 지속적으로 주행 및 학습을 수행한다. 노드 그룹 정보(GA) 내의 어느 한 노드(AN18) 및 노드 그룹 정보(GB) 내의 어느 한 노드(BN7) 사이의 경계 변위(EC)가 측정된다. 본 이동 로봇()의 맵 상에서 경계 변위(EC)를 근거로 노드 그룹 정보(GB) 내의 노드 들의 좌표가 수정됨으로써, 노드 그룹 정보(GA)와 노드 그룹 정보(GB)의 조정(Align)이 이루어진다. 이 때, 도 26b의 본 이동 로봇()의 맵 상의 노드 그룹 정보(GA) 내의 노드와 노드 그룹 정보(GB) 내의 노드의 상대적 위치 관계는, 현실의 위치 관계를 반영하게 된다. 또한, 본 이동 로봇()은 타 이동 로봇()이 주행한 영역을 직접 주행하지 않더라도, 타 이동 로봇()이 주행한 영역을 맵핑할 수 있게 된다.
도 26c를 참고하여, 본 이동 로봇()의 맵 상에 노드 그룹 정보(GB)의 좌표를 기 조정한 후, 본 이동 로봇()은 계속해서 방(Room3)을 주행하며 학습을 진행하여, 노드 그룹 정보(GA)에 노드 정보가 추가된다. 또한, 타 이동 로봇()은 계속해서 방(Room1)을 주행하며 학습을 진행하여, 노드 그룹 정보(GB)에 노드 정보가 추가하고, 갱신된 노드 그룹 정보(GB)를 본 이동 로봇()에 송신한다. 이에 따라, 본 이동 로봇()의 맵 상에서 지속적으로 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)에 노드 정보가 추가된다. 또한, 추가의 경계 변위 및 루프 변위가 측정되어, 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)의 노드 정보는 지속적으로 수정된다.
도 26d를 참고하여, 그 후, 본 이동 로봇()은 주행 중 사용자 등에 의해 방(Room3)에서 방(Room1)로 들려서 옮겨지는 상황이 발생한다. (화살표 J 참고) 본 이동 로봇()이 옮겨진 지점에 대응하는 맵 상의 위치는 노드 그룹 정보(GB) 내의 어느 한 노드이다. 본 이동 로봇()은 본 이동 로봇()의 맵 상에서 현재 위치(ANp)를 인식한다.
도 26f를 참고하여, 그 후, 본 이동 로봇()은 본 이동 로봇()의 맵을 이용하여 목표 위치로 이동한다. (화살표 Mr) 본 시나리오에서는, 본 이동 로봇()이 원래 주행을 하고 있었던 방(Room3)으로 이동한다. 도시되지는 않았으나 다른 시나리오에서, 본 이동 로봇()은 타 이동 로봇()과 방(Room1)을 함께 청소하기 위하여, 방(Room1)의 영역 중 아직 타 이동 로봇()이 주행을 하지 않은 영역으로 이동한 후, 청소 주행을 수행할 수 있다. 본 이동 로봇()이 목표 위치로 이동하는 중에도, 타 이동 로봇()은 계속해서 방(Room1)을 주행하며 학습을 진행하여, 노드 그룹 정보(GB)에 노드 정보가 추가하고, 갱신된 노드 그룹 정보(GB)를 본 이동 로봇()에 송신한다. 이에 따라, 본 이동 로봇()의 맵 상에서 지속적으로 노드 그룹 정보(GB)에 노드 정보가 추가된다.
도 26f를 참고하여, 본 이동 로봇()이 목표 위치로 이동을 마친 후, 이동 로봇()은 방(Room3)에서 아직 청소가 진행되지 않은 영역으로 청소 주행을 재시작하고, 학습을 진행한다. 또한, 타 이동 로봇()은 계속해서 방(Room1)을 주행하며 학습을 진행하여, 노드 그룹 정보(GB)에 노드 정보가 추가하고, 갱신된 노드 그룹 정보(GB)를 본 이동 로봇()에 송신한다. 이에 따라, 본 이동 로봇()의 맵 상에서 지속적으로 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)에 노드 정보가 추가된다. 또한, 추가의 루프 변위가 측정되어, 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)의 노드 정보는 지속적으로 수정된다.
본 발명의 상기 제 2실시예에 따른 이동 로봇(100)은, 본체(110)를 이동시키는 주행부(160), 주행 변위를 측정하는 주행 변위 측정부(121), 타 이동 로봇의 노드 그룹 정보를 수신하는 수신부(190), 및 상기 주행 변위를 근거로 맵 상에 노드 정보를 생성하고, 상기 타 이동 로봇의 노드 그룹 정보를 상기 맵에 추가하는 제어부(140)를 포함한다. 상기 설명한 내용과 중복되는 설명은 생략한다.
이동 로봇(100)은, 본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 송신부(170)를 포함할 수 있다.
제어부(140)는, 두 노드 사이에 측정되는 상기 루프 변위(LC) 또는 상기 경계 변위(EC)를 근거로 하여, 상기 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 노드 정보 수정 모듈(143b)을 포함할 수 있다.
제어부(140)는, 본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 측정되는 상기 경계 변위(EC)를 근거로 하여, 상기 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 노드 그룹 좌표 조정 모듈(143c)을 포함할 수 있다.
노드 정보 수정 모듈(143b)은, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정(Align)한 경우, 상기 측정된 경계 변위(EC)를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정할 수 있다.
본 발명의 상기 제 2실시예에 따른 복수의 이동 로봇(100) 시스템은, 제 1이동 로봇 및 제 2이동 로봇을 포함한다.
상기 제 1이동 로봇(100)은, 상기 제 1이동 로봇을 이동시키는 제 1주행부(160), 상기 제 1이동 로봇의 주행 변위를 측정하는 제 1주행 변위 측정부(121), 상기 제 2이동 로봇의 노드 그룹 정보를 수신하는 제 1수신부(190), 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 1송신부(170), 및 제 1제어부(140)를 포함한다. 상기 제 1제어부(140)는, 상기 제 1이동 로봇의 주행 변위를 근거로 제 1이동 로봇이 생성하는 제 1맵 상에 노드 정보를 생성하고, 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 1맵에 추가한다.
상기 제 2이동 로봇(100)은, 상기 제 2이동 로봇을 이동시키는 제 2주행부(160), 상기 제 2이동 로봇의 주행 변위를 측정하는 제 2주행 변위 측정부(121), 상기 제 1이동 로봇의 노드 그룹 정보를 수신하는 제 2수신부(190), 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 2송신부(170), 및 제 2제어부(140)를 포함한다. 상기 제 2제어부(140)는, 상기 제 2이동 로봇의 주행 변위를 근거로 상기 제 2이동 로봇이 생성하는 제 2맵 상에 노드 정보를 생성하고, 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2맵에 추가한다.
상기 제 1제어부는, 두 노드 사이에 측정되는 상기 루프 변위(LC) 또는 경계 변위(EC)를 근거로 하여, 상기 제 1맵 상에서 상기 제 1이동 로봇이 생성한 노드의 좌표를 수정하는 제 1노드 정보 수정 모듈(143b)을 포함할 수 있다.
상기 제 2제어부는, 상기 루프 변위(LC) 또는 경계 변위(EC)를 근거로 하여, 상기 제 2맵 상에서 상기 제 2이동 로봇이 생성한 노드의 좌표를 수정하는 제 2노드 정보 수정 모듈(143b)을 포함할 수 있다.
상기 제 1제어부는, 상기 제 1이동 로봇이 생성한 노드와 상기 제 2이동 로봇이 생성한 노드 사이에 측정되는 경계 변위(LC)를 근거로 하여, 상기 제 1맵 상에서 상기 제 2이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 제 1노드 그룹 좌표 조정 모듈(143c)을 포함할 수 있다.
상기 제 2제어부는, 상기 경계 변위(LC)를 근거로 하여, 상기 제 2맵 상에서 상기 제 1이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 제 2노드 그룹 좌표 조정 모듈(143c)을 포함할 수 있다.
Claims (20)
- 본 이동 로봇이 주행중 측정된 변위를 근거로 노드 정보를 생성하고, 타 이동 로봇의 노드 그룹 정보를 수신하는 단계;
본 이동 로봇이 생성한 두 노드 사이에 루프 변위가 측정되는 단계; 및
상기 측정된 루프 변위를 근거로 하여, 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법. - 제 1항에 있어서,
본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 단계를 포함하는 이동 로봇의 맵 학습방법. - 삭제
- 제 1항에 있어서,
본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위가 측정되는 단계; 및
상기 측정된 경계 변위를 근거로 하여, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함하는 이동 로봇의 맵 학습방법. - 제 1항에 있어서,
본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위가 측정되는 단계; 및
상기 측정된 경계 변위를 근거로 하여, 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법. - 제 1항에 있어서,
본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위가 측정되는 단계; 및
맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정하지 않은 경우, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법. - 복수의 이동 로봇이 각각 주행중 측정된 변위를 근거로 각각 이동 로봇의 노드 정보를 생성하고, 각각의 노드 그룹 정보를 서로 송신 및 수신하는 단계;
상기 복수의 이동 로봇이 각각 생성한 두 노드 사이에 경계 변위가 측정되는 단계; 및
상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 다른 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 상기 다른 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함하는 이동 로봇의 맵 학습방법. - 삭제
- 제 7항에 있어서,
상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇이 생성한 노드의 좌표를 수정하고, 다른 하나의 이동 로봇의 맵 상에서 상기 다른 하나의 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법. - 제 7항에 있어서,
맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정하지 않은 경우, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 다른 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 상기 다른 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고,
맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇이 생성한 노드의 좌표를 수정하고, 다른 하나의 이동 로봇의 맵 상에서 상기 다른 하나의 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법. - 제 7항에 있어서,
노드 그룹 정보는 각각의 노드 정보를 포함하고,
노드 정보는 노드 갱신 시각 정보를 포함하고,
동일한 노드에 대해서 수신한 노드 정보와 저장된 노드 정보가 서로 다른 경우, 상기 노드 갱신 시각 정보를 근거로 하여 최신의 노드 정보를 선택하는 이동 로봇의 맵 학습방법. - 제 11항에 있어서,
상기 복수의 이동 로봇은 3개 이상의 이동 로봇이고,
제 1이동 로봇이 제 2이동 로봇으로부터 수신한 노드 그룹 정보는, 제 2이동 로봇이 제 3이동 로봇으로부터 수신한 노드 그룹 정보를 포함하는 맵 학습방법. - 본체를 이동시키는 주행부;
주행 변위를 측정하는 주행 변위 측정부;
타 이동 로봇의 노드 그룹 정보를 수신하는 수신부; 및
상기 주행 변위를 근거로 맵 상에 노드 정보를 생성하고, 상기 타 이동 로봇의 노드 그룹 정보를 상기 맵에 추가하는 제어부를 포함하고,
상기 제어부는,
본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 측정되는 경계 변위를 근거로 하여, 상기 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 노드 그룹 좌표 조정 모듈과,
맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 노드 정보 수정 모듈을 포함하는 이동 로봇. - 제 13항에 있어서,
본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 송신부를 포함하는 이동 로봇. - 제 13항에 있어서,
상기 노드 정보 수정 모듈은 두 노드 사이에 측정되는 루프 변위 또는 경계 변위를 근거로 하여, 상기 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 노드 정보 수정 모듈을 포함하는 이동 로봇. - 삭제
- 삭제
- 제 1이동 로봇 및 제 2이동 로봇을 포함하는 복수의 이동 로봇 시스템에서,
상기 제 1이동 로봇은,
상기 제 1이동 로봇을 이동시키는 제 1주행부;
상기 제 1이동 로봇의 주행 변위를 측정하는 제 1주행 변위 측정부;
상기 제 2이동 로봇의 노드 그룹 정보를 수신하는 제 1수신부;
상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 1송신부; 및
상기 제 1이동 로봇의 주행 변위를 근거로 제 1맵 상에 노드 정보를 생성하고, 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 1맵에 추가하는 제 1제어부를 포함하고,
상기 제 2이동 로봇은,
상기 제 2이동 로봇을 이동시키는 제 2주행부;
상기 제 2이동 로봇의 주행 변위를 측정하는 제 2주행 변위 측정부;
상기 제 1이동 로봇의 노드 그룹 정보를 수신하는 제 2수신부;
상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 2송신부; 및
상기 제 2이동 로봇의 주행 변위를 근거로 제 2맵 상에 노드 정보를 생성하고, 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2맵에 추가하는 제 2제어부를 포함하며,
상기 제 1제어부는,
두 노드 사이에 측정되는 루프 변위 또는 경계 변위를 근거로 하여, 상기 제 1맵 상에서 상기 제 1이동 로봇이 생성한 노드의 좌표를 수정하는 제 1노드 정보 수정 모듈을 포함하고,
상기 제 2제어부는,
상기 루프 변위 또는 경계 변위를 근거로 하여, 상기 제 2맵 상에서 상기 제 2이동 로봇이 생성한 노드의 좌표를 수정하는 제 2노드 정보 수정 모듈을 포함하는 복수의 이동 로봇 시스템. - 삭제
- 제 18항에 있어서,
상기 제 1제어부는,
상기 제 1이동 로봇이 생성한 노드와 상기 제 2이동 로봇이 생성한 노드 사이에 측정되는 경계 변위를 근거로 하여, 상기 제 1맵 상에서 상기 제 2이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 제 1노드 그룹 좌표 조정 모듈을 포함하고,
상기 제 2제어부는,
상기 경계 변위를 근거로 하여, 상기 제 2맵 상에서 상기 제 1이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 제 2노드 그룹 좌표 조정 모듈을 포함하는 복수의 이동 로봇 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160050212 | 2016-04-25 | ||
KR1020160050212 | 2016-04-25 | ||
PCT/KR2017/004390 WO2017188708A2 (ko) | 2016-04-25 | 2017-04-25 | 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180125587A KR20180125587A (ko) | 2018-11-23 |
KR102159971B1 true KR102159971B1 (ko) | 2020-09-25 |
Family
ID=60161027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187031610A KR102159971B1 (ko) | 2016-04-25 | 2017-04-25 | 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20200326722A1 (ko) |
KR (1) | KR102159971B1 (ko) |
AU (2) | AU2017256477A1 (ko) |
DE (1) | DE112017002156B4 (ko) |
WO (1) | WO2017188708A2 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102015498B1 (ko) | 2018-06-27 | 2019-10-23 | 엘지전자 주식회사 | 복수의 자율주행 청소기 및 그 제어방법 |
DE102018121365A1 (de) | 2018-08-31 | 2020-04-23 | RobArt GmbH | Exploration eines robotereinsatzgebietes durch einen autonomen mobilen roboter |
CN111369640B (zh) * | 2020-02-28 | 2024-03-26 | 广州高新兴机器人有限公司 | 多机器人建图方法、系统、计算机存储介质及电子设备 |
CN111515965B (zh) * | 2020-04-16 | 2023-02-17 | 广东博智林机器人有限公司 | 一种装饰面材的铺贴方法、装置、机器人及存储介质 |
CN115552340A (zh) | 2020-05-27 | 2022-12-30 | 欧姆龙株式会社 | 使用安全级plc的独立机器人安全系统 |
DE102020214301A1 (de) | 2020-11-13 | 2022-05-19 | Robert Bosch Gesellschaft mit beschränkter Haftung | Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014160436A (ja) * | 2013-02-20 | 2014-09-04 | Kaname Seto | 経路マップ生成方法、経路マップ一部情報抽出方法、システム、及びコンピュータ・プログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100748245B1 (ko) * | 2005-12-09 | 2007-08-10 | 한국전자통신연구원 | 인공표식과 지역좌표계를 이용한 이동로봇의 환경지도 작성방법 및 이동 방법 |
KR20090077547A (ko) * | 2008-01-11 | 2009-07-15 | 삼성전자주식회사 | 이동 로봇의 경로 계획 방법 및 장치 |
KR100977514B1 (ko) * | 2008-04-02 | 2010-08-23 | 연세대학교 산학협력단 | 복수 개의 모바일 로봇들로 이루어지는 경로 탐색 시스템및 경로 탐색 방법 |
KR101081495B1 (ko) * | 2009-11-09 | 2011-11-09 | 한국과학기술연구원 | 이동로봇의 혼합환경지도 작성방법 |
KR20120058945A (ko) * | 2010-11-30 | 2012-06-08 | 이커스텍(주) | 무선 네트워크기반 로봇 청소기 제어 장치 및 방법 |
WO2012141601A2 (en) * | 2011-04-11 | 2012-10-18 | Crown Equipment Limited | Method and apparatus for efficient scheduling for multiple automated non-holonomic vehicles using a coordinated path planner |
KR20130056586A (ko) | 2011-11-22 | 2013-05-30 | 한국전자통신연구원 | 군집 지능 로봇을 이용한 지도 구축 방법 및 그 장치 |
KR102117984B1 (ko) * | 2013-11-27 | 2020-06-02 | 한국전자통신연구원 | 군집 로봇의 협력 청소 방법 및 제어 장치 |
US10660496B2 (en) * | 2014-09-24 | 2020-05-26 | Samsung Electronics Co., Ltd. | Cleaning robot and method of controlling the cleaning robot |
DE102015006014A1 (de) * | 2015-05-13 | 2016-11-17 | Universität Bielefeld | Bodenbearbeitungsgerät und Verfahren zu dessen Navigation sowie Schwarm von Bodenbearbeitungsgeräten und Verfahren zu deren gemeinsamer Navigation |
-
2017
- 2017-04-25 DE DE112017002156.1T patent/DE112017002156B4/de active Active
- 2017-04-25 KR KR1020187031610A patent/KR102159971B1/ko active IP Right Grant
- 2017-04-25 US US16/096,650 patent/US20200326722A1/en not_active Abandoned
- 2017-04-25 WO PCT/KR2017/004390 patent/WO2017188708A2/ko active Application Filing
- 2017-04-25 AU AU2017256477A patent/AU2017256477A1/en not_active Abandoned
-
2020
- 2020-09-16 AU AU2020233700A patent/AU2020233700A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014160436A (ja) * | 2013-02-20 | 2014-09-04 | Kaname Seto | 経路マップ生成方法、経路マップ一部情報抽出方法、システム、及びコンピュータ・プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20200326722A1 (en) | 2020-10-15 |
AU2020233700A1 (en) | 2020-10-08 |
AU2017256477A1 (en) | 2018-12-13 |
DE112017002156B4 (de) | 2020-11-26 |
WO2017188708A3 (ko) | 2018-08-02 |
DE112017002156T5 (de) | 2019-01-10 |
WO2017188708A2 (ko) | 2017-11-02 |
KR20180125587A (ko) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102159971B1 (ko) | 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법 | |
KR101868374B1 (ko) | 이동 로봇의 제어방법 | |
KR102192791B1 (ko) | 이동 로봇 및 이동 로봇의 제어방법 | |
KR101982780B1 (ko) | 이동 로봇 및 이동 로봇의 제어방법 | |
AU2017258264B2 (en) | Mobile robot and control method therefor | |
US20180114064A1 (en) | Systems and Methods for Capturing Images and Annotating the Captured Images with Information | |
CN110717927A (zh) | 基于深度学习和视惯融合的室内机器人运动估计方法 | |
JP5480667B2 (ja) | 位置姿勢計測装置、位置姿勢計測方法、プログラム | |
US11348276B2 (en) | Mobile robot control method | |
KR102024094B1 (ko) | 인공지능을 이용한 이동 로봇 및 그 제어방법 | |
US20200125597A1 (en) | Controlling method for artificial intelligence moving robot | |
US11709499B2 (en) | Controlling method for artificial intelligence moving robot | |
JP4449410B2 (ja) | ロボット装置及びその物体学習方法 | |
Choi et al. | Metric SLAM in home environment with visual objects and sonar features | |
Ristić-Durrant et al. | Low-level sensor fusion-based human tracking for mobile robot | |
KR101836847B1 (ko) | 이동 로봇 및 이동 로봇의 제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |