KR20200015340A - 속성 블록에 따라 동적 주행하는 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버 - Google Patents
속성 블록에 따라 동적 주행하는 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버 Download PDFInfo
- Publication number
- KR20200015340A KR20200015340A KR1020180131436A KR20180131436A KR20200015340A KR 20200015340 A KR20200015340 A KR 20200015340A KR 1020180131436 A KR1020180131436 A KR 1020180131436A KR 20180131436 A KR20180131436 A KR 20180131436A KR 20200015340 A KR20200015340 A KR 20200015340A
- Authority
- KR
- South Korea
- Prior art keywords
- map
- zone
- mobile robot
- attribute
- robot
- Prior art date
Links
- 238000004140 cleaning Methods 0.000 claims description 56
- 238000004891 communication Methods 0.000 claims description 51
- 238000000034 method Methods 0.000 claims description 31
- 230000008859 change Effects 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 8
- 238000013459 approach Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 39
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 230000006399 behavior Effects 0.000 description 7
- 238000010295 mobile communication Methods 0.000 description 6
- 239000002245 particle Substances 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000003032 molecular docking Methods 0.000 description 4
- 239000002131 composite material Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012952 Resampling Methods 0.000 description 2
- 235000012813 breadcrumbs Nutrition 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000282849 Ruminantia Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000002366 time-of-flight method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 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
-
- 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
-
- 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W40/00—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
- B60W40/02—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
-
- 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/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- 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/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- 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/0217—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
-
- 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
-
- 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/0272—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S901/00—Robots
- Y10S901/01—Mobile robot
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Mathematical Physics (AREA)
- Transportation (AREA)
- Health & Medical Sciences (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Business, Economics & Management (AREA)
- Robotics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
본 실시예들은 추상 인터페이스로 정의된 속성 블록을 기반으로 속성 블록이 지정된 영역에 위치하는 이동 로봇의 상황에 따라 주행 경로 계획을 동적으로 변경함으로써, 사용자의 다양한 요구사항에 능동적으로 대응 가능하고, 로봇의 운행을 중지하지 않고 런타임 중에 주행 모드를 변경할 수 있는 이동 로봇, 속성 블록을 설정하는 사용자 단말 장치, 및 속성 블록을 저장하는 지도 관리 서버를 제공한다.
Description
본 발명이 속하는 기술 분야는 이동 로봇이 위치하는 공간에 관한 지도에 구역을 설정하여 이동 로봇의 동작을 제어하는 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
각종 센서와 IT기술의 발전으로 자율 주행이 가능한 무인 이동 로봇 기술이 발전하며 무인 이동 로봇의 활용 분야 역시 빠르게 확대하고 있다. 이동 로봇의 경로 계획 또는 주행 거동에 다양한 요구 조건이 필요하며, 이러한 요구 조건을 충족하면서 서비스 품질을 담보할 필요가 있다.
단순한 또는 단일 주행 방법은 자율 주행 로봇의 사용자가 원하는 다양한 요구 사항을 모두 충족시킬 수 없다. 예를 들면, 사용자는 일부 구간에서는 로봇이 감속 운행하거나 또는 금지구역을 설정하여 로봇의 진입을 원천 차단하는 것을 원할 수 있다. 사용자는 임시로 장애물이 쌓여 경로가 폐쇄된 경우나 화재와 같은 긴급상황에서 로봇이 준수해야 하는 권장 이동 경로를 사전에 지정하는 것을 원할 수 있다. 사용자는 특정 구간에서는 로봇이 최대한 넓은 구간에서 활보하되, 다른 구간에서는 한 쪽 벽에 바짝 붙어서 이동하는 것을 원할 수도 있다.
특허문헌1 내지 특허문헌3에 기재된 이동 로봇들은 사용자의 단일 요구 사항에 관한 동작을 수행하기 때문에 다른 요구 사항으로 변경하거나 확장하기 어렵다. 요구 사항은 자율 주행 로봇의 사용자의 목적과 의도에 따라 임의적 혹은 가변적으로 반영될 필요가 있고, 단순한 또는 단일의 수단으로 다양한 상황에 대응하는 것이 곤란하다. 다수의 주행 방법을 구비해두고 그 때마다 혼합하여 사용하더라도 하나의 방법에서 다른 방법으로의 전이(transition) 상태를 관리하기 위한 유지 보수 비용이 증가한다.
본 발명의 실시예들은 사용자의 다양한 요구사항에 대응 가능하도록 유연하고 확장이 용이한 추상 인터페이스를 설계하여 이동 로봇의 주행 동작을 동적으로 변경하는 데 발명의 주된 목적이 있다.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
본 실시예의 일 측면에 의하면, 이동 로봇에 있어서, 상기 이동 로봇의 오도메트리 정보를 감지하는 제1 센서; 상기 이동 로봇의 주변 환경 정보를 감지하는 제2 센서; 구역(Zone)의 유형 별로 상기 구역에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록(Attribute Block)을 수신하는 통신부; 상기 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도 및 상기 복수의 속성 블록을 저장하는 저장부; 상기 오도메트리 정보 및 상기 주변 환경 정보를 기반으로 상기 이동 로봇의 위치를 추정하고 기본 이동 경로 계획을 설정하며, 상기 복수의 속성 블록을 참조하여 상기 이동 로봇의 상황에 따라 상기 기본 이동 경로 계획에 확장된 이동 경로 계획을 적용하여 상기 기본 이동 경로 계획을 동적으로 변경하는 제어부; 및 상기 기본 이동 경로 계획 또는 상기 확장된 기본 이동 경로 계획을 기반으로 상기 이동 로봇을 이동시키는 이동 장치를 포함하는 이동 로봇을 제공한다.
본 실시예의 다른 측면에 의하면, 사용자 단말 장치에 있어서, 구역(Zone)의 유형 별로 상기 구역에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록을 입력받는 사용자 입력부; 지도 및 상기 속성 블록을 표시하는 표시부; 상기 지도 및 상기 속성 블록을 저장하는 저장부; 상기 지도 및 상기 속성 블록을 송수신하는 통신부; 및 상기 사용자 입력부, 상기 표시부, 상기 저장부, 및 상기 통신부에 연결되어 상호 간에 동작 신호를 제어하는 제어부를 포함하는 사용자 단말 장치를 제공한다.
본 실시예의 다른 측면에 의하면, 지도 관리 서버에 있어서, 지도 및 구역(Zone)의 유형 별로 상기 구역에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록을 송수신하는 통신부; 상기 지도 및 상기 속성 블록을 저장하는 저장부; 및 상기 통신부 및 상기 저장부에 연결되어 상호 간에 동작 신호를 제어하는 제어부를 포함하는 지도 관리 서버를 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 추상 인터페이스로 정의된 속성 블록을 기반으로 속성 블록이 지정된 영역에 위치하는 이동 로봇의 상황에 따라 주행 경로 계획을 동적으로 변경함으로써, 사용자의 다양한 요구사항에 대응 가능하고, 로봇의 운행을 중지하지 않고 런타임 중에 주행 모드를 변경할 수 있는 효과가 있다.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.
도 1은 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버를 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 이동 로봇을 예시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 이동 로봇의 제어부를 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 이동 로봇이 생성한 지도를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 설정한 구역을 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇이 지도에서 설정하는 구역의 형상을 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 이동 경로 계획을 동적으로 변경하는 것을 예시한 도면이다.
도 8은 본 발명의 다른 실시예에 따른 사용자 단말 장치를 예시한 블록도이다.
도 9는 본 발명의 다른 실시예에 따른 사용자 단말 장치가 지도를 편집하는 동작을 예시한 도면이다.
도 10은 본 발명의 다른 실시예에 따른 사용자 단말 장치가 특정 영역의 외곽선을 추출하는 것을 예시한 도면이다.
도 11은 본 발명의 다른 실시예에 따른 지도 관리 서버를 예시한 블록도이다.
도 12는 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버의 동작을 예시한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 이동 로봇을 예시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 이동 로봇의 제어부를 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 이동 로봇이 생성한 지도를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 설정한 구역을 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇이 지도에서 설정하는 구역의 형상을 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 이동 경로 계획을 동적으로 변경하는 것을 예시한 도면이다.
도 8은 본 발명의 다른 실시예에 따른 사용자 단말 장치를 예시한 블록도이다.
도 9는 본 발명의 다른 실시예에 따른 사용자 단말 장치가 지도를 편집하는 동작을 예시한 도면이다.
도 10은 본 발명의 다른 실시예에 따른 사용자 단말 장치가 특정 영역의 외곽선을 추출하는 것을 예시한 도면이다.
도 11은 본 발명의 다른 실시예에 따른 지도 관리 서버를 예시한 블록도이다.
도 12는 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버의 동작을 예시한 흐름도이다.
이하, 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하고, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다.
본 명세서에서 자율 주행 로봇의 주행 거동에 영향을 주는 사용자의 다양한 요구사항을 '속성'이라 정의한다. 속성(Attribute)은 자율 주행 로봇이 사용자의 공간 활용 목적과 의도에 따라 이동하도록 사용자가 지정하는 요구 조건을 의미한다. 예를 들어, 사용자가 특정 구간에 로봇이 아예 진입하지 못하게 하고자 한다면, 특정 구간의 속성을 '금지'로 설정한다. 청소 로봇의 집중 청소 구간을 설정하는 것과 같이, 로봇이 특정 구간을 1회 주행으로 통과하는 것이 아니라 수 차례 반복하여 주행하기를 원한다면 해당 구간을 '반복'으로 설정한다.
속성 블록(Attribute Block)은 사용자가 지정한 속성이 적용될 영역을 지정한 지도 영역을 의미한다. 속성 블록은 자율 주행을 위해 로봇이 저장하거나 외부 장치와 동기화한 지도 데이터 상에 설정 가능하다. 이동 로봇, 사용자 단말 장치, 또는 지도 관리 서버는 각 속성 블록의 크기를 조정하여 해당 속성이 부여될 영역의 범위를 지정할 수 있다. 하나의 속성 블록은 하나의 속성(요구 조건)을 기술한다. 사용자의 의도와 목적에 맞게 복수의 속성 블록들은 한 영역에 중첩 또는 중복하여 적용 가능하다.
속성 블록은 로봇이 해당 구간 내에 존재할 때 해당 구간의 속성(요구 조건)을 만족하도록 특화된 주행 알고리즘과 경로 계획을 실시하기 위한 촉발 조건을 제공한다. 예를 들어, 자율 주행 로봇이 아무런 속성 블록이 없는 구간을 통과할 때는 기본(Default) 경로 계획과 기본 주행 제어에 따라 움직인다. 로봇이 속성 블록이 부여된 구간에 진입하면, 로봇은 해당 속성에 맞춤화된 경로 계획과 주행 제어로 동적으로 전환된다. 로봇이 해당 구간에서 빠져나오면 이전의 기본 경로 계획과 주행 제어로 복귀한다.
도 1은 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버를 예시한 도면이다.
이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 상호 통신하면서 지도를 생성하고 갱신한다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 생성 중이거나 생성된 지도와 설정된 속성 블록을 매칭한다.
이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 상호 직접 통신하거나 통신망을 통하여 통신할 수 있다. 통신망은 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300) 간의 통신을 가능케 할 목적으로 연결해 놓은 통신 설비의 집합을 의미한다. 통신망은 노드(Node), 회선, 간선, 및 위성 등을 포함하고 이들은 서로 연결 및 접속될 수 있다.
이동 로봇(100)은 미리 정의된 방식에 따라 특정 위치에서 다른 위치로 이동 가능하도록 설계된 장치를 의미하며, 바퀴, 레일, 보행용 다리 등과 같은 이동 수단을 이용하여, 특정 위치에서 다른 위치로 이동할 수 있다. 이동 로봇(100)은 센서 등을 이용하여 외부의 정보를 수집한 후 수집된 정보에 따라서 이동할 수도 있고, 사용자에 의해 별도의 조작 수단을 이용하여 이동할 수 있다.
이동 로봇(100)의 일례로는 로봇 청소기, 장난감 자동차, 산업용 또는 군사용 목적 등으로 이용 가능한 이동 로봇 등이 있을 수 있다.
로봇 청소기는 청소 공간을 주행하면서 바닥에 쌓인 먼지 등의 이물질을 흡입함으로써 청소 공간을 자동으로 청소하는 장치이다. 일반적인 청소기가 사용자에 의한 외력으로 이동하는 것과 달리, 로봇 청소기는 외부의 정보 또는 미리 정의된 이동 패턴을 이용하여 이동하면서 청소 공간을 청소한다.
로봇 청소기는 미리 정의된 패턴을 이용하여 자동적으로 이동하거나, 또는 감지 센서에 의해 외부의 장애물을 감지한 후, 감지된 바에 따라 이동할 수도 있고, 사용자에 의해 조작되는 원격 제어 장치로부터 전달되는 신호에 따라 이동 가능하다.
사용자 단말 장치(200)는 로봇을 이동시키면서 지도가 생성되는 과정을 보고 실시간으로 지도를 편집하고 시맨틱(Semantic) 정보를 삽입할 수 있다. 시맨틱 정보는 속성에 관하여 사용자가 인지할 수 있는 관계적 용어를 나타낸다.
사용자 단말 장치(200)는 시맨틱 지도 생성 애플리케이션을 포함한다. 시맨틱 지도 생성 애플리케이션은 원격으로 제어 신호를 송수신하여 로봇을 조정한다. 사용자는 시맨틱 지도 생성 애플리케이션을 통하여 실시간으로 시맨틱 정보를 삽입할 수 있다.
사용자 단말 장치(200)는 통신망에 연결될 수 있다. 사용자 단말 장치(200)는 스마트폰(Smart Phone), 개인용 컴퓨터(Personal Computer, PC), 태블릿 PC(Tablet PC), 휴대용 개인정보 단말기(Personal Digital Assistant, PDA), 랩톱(Laptop) 등이 있을 수 있으나 이에 한정되는 것은 아니다.
지도 관리 서버(300)는 이동 로봇(100) 또는 사용자 단말 장치(200)로부터 수신한 데이터를 분석하고 처리하는 전자 장치이다. 지도 관리 서버(300)는 생성된 지도와 편집된 지도를 관리한다. 지도는 이동 로봇이 수집한 주변 환경 정보를 기반으로 작성된 기본 지도(31), 주행에 관한 속성 블록을 설정한 주행 지도(32), 및 청소에 관한 속성 블록을 설정한 청소 지도(33)를 포함한다. 편집용 지도(34)는 기본 지도(31), 주행 지도(32), 및 청소 지도(33)를 통합한 지도이다. 편집용 지도(34)는 기본 지도(31), 주행 지도(32), 및 청소 지도(33)를 다층 레이어 구조로 통합하여 생성될 수 있다. 기본 지도(31), 주행 지도(32), 청소 지도(33), 및 편집용 지도(34)는 이동 로봇(100), 사용자 단말 장치(200), 지도 관리 서버(300)에 각각 저장되어 동기화될 수 있다.
지도 관리 서버(300)는 통신망에 연결될 수 있다. 지도 관리 서버(300)는 데이터베이스를 포함할 수 있다. 데이터베이스는 데이터의 검색, 추출, 삭제, 편집, 추가 등을 자유롭게 행할 수 있는 데이터의 저장형태를 의미한다. 데이터베이스는 오라클(Oracle), 인포믹스(Infomix), 사이베이스(Sybase), 관계형 데이터베이스 관리시스템(Relational Data Base Management System, RDBMS), 겜스톤(Gemston), 오리온(Orion), 객체 지향형 데이타베이스 관리시스템(Object Oriented Database Management System, OODBMS), 또는 분산 클라우드(Distributed Cloud) 등을 이용하여 본 실시예의 목적에 맞게 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 이동 로봇을 예시한 블록도이다. 이동 로봇(100)은 제1 제어부(110), 제1 센서(120), 제2 센서(130), 제1 통신부(140), 제1 저장부(150), 및 이동 장치(160)를 포함한다. 도 2에서는 이동 로봇(100)이 다양한 구성요소들을 포함하도록 도시되어 있으나 일부 구성요소가 생략되거나 다른 구성요소를 추가로 포함할 수 있다.
제1 제어부(110)는 제1 센서(120)에 의해 획득한 오도메트리 정보 및 제2 센서(130)에 의해 획득한 주변 환경 정보를 기반으로 이동 로봇(100)의 위치를 추정하고 기본 이동 경로 계획을 설정한다. 제1 제어부(110)는 복수의 속성 블록을 참조하여 이동 로봇(100)의 상황에 따라 기본 이동 경로 계획에 확장된 이동 경로 계획을 적용하여 기본 이동 경로 계획을 동적으로 변경한다.
제1 제어부(110)는 다양한 소프트웨어 또는 명령어 세트를 실행하여 이동 로봇(100)을 위한 다양한 기능을 수행하고 데이터를 처리하는 유닛이다. 제1 제어부(110)는 마이크로 프로세서 등에 의해 구현될 수 있다.
제1 센서(120)는 이동 로봇(100)의 오도메트리 정보를 감지한다. 오도메트리 정보는 이동 로봇의 주행에 따른 자신의 주행 거리 측정값이다. 이동 장치(160)에 연결된 엔코더(Encoder) 또는 IMU(Inertial Measurement Unit)로부터 회전수, 기울기, 회전량, 선속도, 각속도 등의 오도메트리 정보를 획득할 수 있다. IMU는 가속도 센서 및 자이로 센서로 구현될 수 있다.
제2 센서(130)는 이동 로봇(100)의 주변 환경 정보를 감지한다. 주변 환경 정보는 장애물에 관한 영상 정보, 장애물에 관한 거리 정보, 또는 영상 정보 및 거리 정보를 통합한 정보일 수 있다.
제2 센서(130)는 장애물에 관한 영상 정보를 획득하는 이미지 센서일 수 있다. 장애물에 관한 영상 정보는 2차원으로 표현된 제1 좌표 정보 및 제1 좌표 정보에 관련된 인텐시티 정보를 포함한다. 인텐시티 정보는 픽셀에 관하여 설정된 비트 값에 따라 일정한 범위를 갖는다. 카메라는 렌즈를 통해 들어오는 빛을 전기적인 영상 신호로 바꿔 주는 이미지 센서를 포함한다. 이미지 센서는 CCD(Charged Coupled Device)와 CMOS(Complementary Metal-Oxide-Semiconductor) 등으로 구현될 수 있다.
제2 센서(130)는 장애물에 관한 거리 정보를 획득하는 라이다 센서일 수 있다. 장애물에 관한 거리 정보는 2차원으로 표현된 제2 좌표 정보와 제2 좌표 정보에 관련된 깊이 정보를 포함한다. 라이다 센서는 레이저 신호를 쏘고 반사되어 돌아오는 시간을 측정하고, 빛의 속도를 이용하여 반사체의 거리를 측정하는 장치이다. 레이저 신호는 포토 다이오드를 통하여 전기적인 신호로 변경된다. 레이저 신호는 기 설정된 파장 대역을 가질 수 있다. 예컨대, 라이다는 적외선 영역의 파장을 이용할 수 있다. 라이다 센서는 타임 오브 플라이트(Time of Flight, TOF) 방식으로 동작할 수 있다. 타임 오브 플라이트 방식은 레이저가 펄스 또는 구형파 신호를 방출하여 측정 범위 내에 있는 물체들로부터의 반사 펄스 또는 구형파 신호들이 수신기에 도착하는 시간을 측정함으로써, 측정 대상과 센서 사이의 거리를 측정한다.
제2 센서(130)는 이미지 센서로부터 영상 데이터를 수신하고, 라이다 센서로부터 거리 데이터를 수신한 후 영상 데이터와 거리 데이터를 매핑한 복합 데이터를 생성할 수 있다. 복합 데이터는 3차원으로 표현된 공간 좌표 정보와 인텐시티 정보를 포함한다. 제2 센서(130)는 매핑된 인텐시티 정보를 참조하여 공간 좌표 정보를 보간할 수 있다.
제1 통신부(140)는 사용자 단말 장치(200)로부터 복수의 속성 블록을 수신한다. 복수의 속성 블록은 구역(Zone)의 유형 별로 구역에 대한 속성이 추상 인터페이스로 정의된다.
제1 통신부(140)는 전기신호를 전자파로 변환하거나 전자파를 전기신호로 변환하고, 전자파를 이용하여 통신망 또는 다른 장치와 통신 기능을 수행하는 유닛이다. 제1 통신부(140)는 제1 제어부(110)에 연결된다. 제1 통신부(140)는 이동통신 또는 무선통신 등을 위한 다양한 통신 프로토콜을 이용할 수 있다. 예를 들면, 세계무선통신시스템(Global System for Mobile Communications, GSM), 에지(Enhanced Data GSM Environment. EDGE), 고속하향패킷접속(High Speed Downlink Packet Access, HSDPA), 고속상향패킷접속(High Speed Uplink Packet Access, HSUPA), 광대역코드분할다중접속(Wideband Code Division Multiple Access, WCDMA), 코드분할다중접속(Code Division Multiple Access, CDMA), 시분할다중접속(Time Division Multiple Access, TDMA), 블루투스(Bluetooth), 와이파이(Wireless Fidelity, WiFi), RFID(Radio Frequency Identification), 지그비(Zigbee) 등이 있으나 이에 한정되는 것은 아니다.
제1 저장부(150)는 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도를 저장하고 복수의 속성 블록을 저장한다. 제1 저장부(150)는 이동 로봇(100)을 동작시키기 위한 소프트웨어, 명령어 세트, 또는 데이터 등을 저장하기 위한 유닛이다. 제1 저장부(150)는 제1 제어부(110)에 연결된다. 제1 저장부(150)는 랜덤액세스메모리(Random Access Memory, RAM), 자기 디스크(Magnetic Disc), 플래시 메모리(Flash Memory), 정적램(Static Random Access Memory, SRAM), 롬(Read Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read Only Memory), PROM(Programmable Read Only Memory) 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
이동 장치(160)는 대상체까지의 거리를 기반으로 주행 경로를 산출하거나 장애물을 검출하여 이동체를 이동시킨다. 이동 장치(160)는 바퀴를 이용하여 주행하거나, 하나 이상의 다리를 이용하여 보행하거나, 날개 또는 추진 장치에 의한 비행 수단을 이용하거나, 이들의 조합 등으로 구현될 수 있다.
이동 로봇(100)은 전원부(미도시)를 포함할 수 있다. 전원부는 이동 로봇(100)의 각각의 구성요소에 전력을 공급하기 위한 유닛이다.
이동 로봇(100)의 각각의 구성요소들은 필요에 따라서 다른 구성요소의 기능을 함께 수행할 수 있다. 구성요소들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로로 구현될 수 있다. 이러한 구성요소들은 하나 이상의 통신버스 또는 신호선을 통하여 통신을 수행한다.
도 3은 본 발명의 일 실시예에 따른 이동 로봇의 제어부를 예시한 도면이고, 도 4는 본 발명의 일 실시예에 따른 이동 로봇이 생성한 지도를 예시한 도면이다.
이동 로봇(100)이 미지의 환경에서 이동하기 위해서는 주변 환경에 관한 정보가 없으므로, 센서 정보를 이용하여 환경에 관한 지도를 작성하고, 작성된 지도로부터 이동 로봇(100)의 현재 위치를 추정한다.
제1 제어부(110)는 기 생성된 지도를 기반으로 사용자에 의해 지정되는 속성과 해당 속성이 위치할 영역 정보를 입력받는다. 제1 제어부(110)는 로봇이 해당 속성 블록 구간에 진입하였을 때 로봇의 주행 상태를 어떻게 변경할 것인가를 구체적으로 기술한 데이터 부분을 입력받는다. 제1 제어부(110)는 속성 기술 데이터를 해석한다.
제1 제어부(110)는 속성에 맞게 전역 경로(Global Path)를 계획하고, 국부 경로(Local Path)를 계획하고, 주행 실패시 재시도/재탐색 거동에 변경된 파라미터를 전달하여 주행 거동을 변경한다.
제1 제어부(110)는 이동 경로 계획(Moving Path Plan)을 생성한다. 이동 경로 계획은 현재 위치로부터 지도 상의 목표 지점까지 이동 궤적(trajectory)을 생성한다. 이동 경로 계획은 지도 전체에 관한 전역 이동 경로 계획(Global Path Plan)과 로봇을 중심으로 일부 지역을 대상으로 한 국부 이동 경로 계획(Local Path Plan)으로 나누어 로봇의 이동 경로를 생성한다.
제1 제어부(110)는 오도메트리 정보를 국부 이동 경로 계획(Local Path Planning)에 사용할 수 있다. 로봇의 현재 속도 등의 정보를 받아서 국부 이동 경로를 생성하거나 장애물 회피 등에 사용된다.
제1 제어부(110)는 속성 블록 관리자 및 이동 경로 관리자를 포함할 수 있다.
제1 제어부(110) 또는 속성 블록 관리자는 속성 블록을 유형 별로 파싱하고 해석하여 경로 계획자에 의해 해독 가능한 속성에 관한 메시지 정보를 생성한다. 제1 제어부(110) 또는 속성 블록 관리자는 해독 가능한 속성에 관한 메시지 정보를 저장부에 저장한다. 프로그래밍 언어에 따라 블록 클래스를 구현할 수 있고, 블록 클래스를 활용하여 생성된 인스턴스인 블록 클래스 데이터를 생성할 수 있다. 모든 속성들이 부여된 상태는 블록 스택에 보관된다. 블록 스택은 경로 계획 등에서 속성 정보를 참고 또는 조회할 때 해당 속성에 관한 각종 정보를 제공한다. 공개 권한으로 설정된 블록 정보는 공유 접근 메모리 영역을 설정하여 각 S/W 컴포넌트들이 필요할 때마다 접근하게 할 수도 있고, 메시지 큐 방식으로 각 컴포넌트들마다 메세지를 주고 받도록 구현할 수도 있다.
제1 제어부(110) 또는 이동 경로 관리자는 속성에 관한 메시지 정보를 저장부로부터 수신하여 경로 계획자, 비용 맵(Cost Map), 주행 파라미터(속도 등), 또는 지도의 데이터에 적용할 수 있다. 경로 계획자(Global Planner, Local Planner)나 비용 맵과 같은 다른 컴포넌트는 블록 속성 정보를 조회 요청하고 결과를 받을 수 있다.
제1 제어부(110)는 엔코더, 관성 센서(IMU), 또는 이들의 조합 등을 통하여 수집된 오도메트리 정보를 갱신하면서, 이미지 센서, 라이다 센서, ToF 센서, 초음파 센서, 또는 이들의 조합 등을 통하여 환경 정보(2D 및/또는 3D 공간 정보)를 계측한다.
제1 제어부(110)는 센서의 위치를 상대 위치 변환을 수행한다. 제2 센서(130)의 위치는 로봇의 하드웨어적 구성에 따라 위치가 상대적으로 바뀌므로, 'tf'라는 상대 위치 변환을 이용한다. 상대 위치 변환은 오도메트리 정보로 로봇의 위치를 추정할 때, 로봇의 위치로부터 x,y,z 좌표 상에서 센서가 얼마만큼의 거리에 떨어져 있음을 기술한다.
제1 제어부(110)는 위치 추정 알고리즘을 이용하여 작성된 지도상에 로봇의 현재 위치(Localization/Pose)를 추정(Estimation)한다. 위치 추정 알고리즘은 주어진 환경 속에서 엔코더로부터의 바퀴 회전량, 관성 센서로부터의 관성 정보, 거리 센서로부터 장애물과의 거리 정보 등을 기반으로 로봇이 위치하고 있을 가능성을 확률로 계산하고, 기존에 작성해둔 지도상에서 x, y, θ의 좌표를 표시한다. 이동 로봇(100)은 동시간 위치 인식 및 지도 작성(Simultaneous Localization And Mapping, SLAM) 방법을 적용할 수 있다. SLAM이 처리하는 정보는 로봇의 위치(x), 오도메트리 정보(u), 관측값(z), 및 추정 맵(m)을 포함한다. SLAM에 관한 방법으로는 파티클 필터 기반의 SLAM, 그래프 기반의 SLAM 등 다양한 방법이 있다.
예컨대, 이동 로봇(100)은 위치 추정 알고리즘으로 파티클 필터 기반의 SLAM인 AMCL(Adaptive Monte Carlo Localization)을 적용할 수 있다. 이동 로봇(100)은 센서 모델과 이동 모델을 수립하고, 필터의 예측 과정과 보정 과정을 수행한다. 예측 과정에서 로봇의 이동 모델과 이전 위치에서의 확률, 엔코더로부터 받은 이동 정보를 이용하여 다음 시간에서의 로봇의 위치를 계산한다. 보정 과정에서 센서 모델, 이전 위치에서의 확률, 정규화 상수를 이용하여 센서 정보를 기반으로 정확도를 올린 현재 위치에서의 확률을 계산한다. 다음 과정으로 계산된 현재 위치의 확률을 이용하여 파티클 필터로 복수(N) 개의 파티클(샘플)을 생성하여 위치를 추정한다. 이전 위치에서의 확률에서 로봇의 이동 모델을 이용하여 새로운 샘플 집합을 추출하고, 샘플 집합 중에서 선택된 샘플과 거리 센서로부터 획득한 거리 정보, 정규화상수로 가중치를 계산한다. 리샘플링 과정에서 샘플과 가중치를 이용하여 N 개의 새로운 파티클(샘플) 집합을 생성한다. 리샘플링 과정을 반복하여 파티클을 이동시키고, 로봇의 위치 추정치의 정확도를 높일 수 있다.
예컨대, 이동 로봇(100)은 그래프 기반의 SLAM을 적용할 수 있다. 제1 제어부(110)는 스캐닝을 수행한 위치(Pose)를 노드로 표현하고 노드 간의 상대 위치(Relative Pose)를 산출한다. 제1 제어부(110)는 노드 간의 상대 위치에 따라 각각의 노드의 위치를 최적화하여 지도를 갱신한다. 제1 제어부(110)는 구속 조건들을 최대한 만족하는 노드값 또는 구속 조건들을 최소한 벗어나는 노드값을 찾고, 노드들의 위치에서의 오차들을 보정하는 과정을 수행하여 노드의 위치를 최적화한다. 즉, 노드들은 구속 조건을 기반으로 최적의 노드값으로 수렴한다. 제2 센서(130)는 이동 로봇(100)이 위치하는 공간의 스캔 정보를 획득한다. 제2 센서(130)는 다양한 센서 중에서 선택된 하나 이상의 센서를 이용하여 전방향(Omnidirectional) 또는 일부 영역의 거리 정보를 획득할 수 있다. 제1 제어부(110)는 거리 정보와 함께 이동 로봇(100)의 오도메트리 정보를 추가로 획득한다. 제1 제어부(110)는 스캔 정보를 이용하여 노드에 관한 키 프레임을 생성하고, 연속하는 노드 간의 오도메트리 엣지를 산출한다. 노드 간의 관측값은 불확실성(Uncertainty)을 갖는다. 오도메트리 엣지의 불확실성은 공분산 행렬로 표현될 수 있다. 제1 제어부(110)는 스캐닝 주기마다 획득한 복수의 스캔 정보 중에서 키 프레임을 저장한다. 스캔 정보는 점군(Point Cloud) 또는 영상 정보와 거리 정보가 매핑된 복합 데이터로 표현될 수 있다. 키 프레임은 거리 정보 및 시간 정보를 포함한다. 제1 제어부(110)는 등록된 키 프레임이 없으면 현재 입력된 거리 정보를 이용하여 키 프레임을 생성하고, 이후 키 프레임을 갱신하여 지역 지도를 추정한다. 제1 제어부(110)는 복수의 스캔 정보를 합친 지역 지도를 기반으로 스캔 매칭을 수행하여 정확도를 향상시킬 수 있다.
제1 제어부(110)는 로봇의 위치, 센서의 위치, 장애물의 위치 정보, 및 센서로 생성한 지도를 불러와서, 지도 영역을 점유 영역(Occupied Area), 자유 영역(Free Area), 미지 영역(Unknown Area)에 대한 정보로 구분한다.
제1 제어부(110)는 로봇이 이동 가능한 영역, 장애물 영역, 장애물과 충돌이 예상되는 영역을 계산한 비용 맵을 생성한다. 비용 맵은 전역 비용 맵과 지역 비용 맵으로 구분된다. 전역 비용 맵은 전역 이동 경로 계획에서 고정 지도의 전체 영역을 대상으로 이동 계획을 수립할 때의 출력이고, 지역 비용 맵은 지역 이동 경로 계획에서 지도의 부분 영역을 대상으로 이동 계획을 수립할 때의 출력이다. 비용 맵은 일정 범위에서 값을 갖는다. 비용 맵은 0에서 255까지의 값으로 표현될 수 있다. 로봇이 자유롭게 이동 가능한 자유 영역(Free Area)을 000으로 표현하고, 충돌하지 않는 영역을 001 내지 127으로 표현하고, 충돌 가능성이 있는 영역을 128 내지 252으로 표현하고, 충돌 영역을 253 내지 254으로 표현하고, 로봇이 이동 불가능한 점유 영역(Occupied Area)을 255로 표현할 수 있다.
제1 제어부(110)는 장애물 회피 알고리즘을 이용하여 장애물을 회피할 수 있다. 예컨대, 제1 제어부(110)는 장애물 회피 알고리즘으로 DWA(Dynamic Window Approach)를 적용할 수 있다. 지역 이동 경로 계획에서 사용되는 장애물 회피 알고리즘은 로봇의 속도 탐색 영역(Velocity Search Space)에서 로봇과 충돌 가능한 장애물을 회피하면서 목표점까지 빠르게 도달할 수 있는 속도를 선택한다. 장애물 회피 알고리즘은 로봇의 방향, 속도(가능 속도 및 허용 속도), 충돌을 고려하여 설계된 목적 함수가 최대가 되는 속도(각속도 및 선속도)를 산출한다.
제1 제어부(110)가 이동 경로 계획에서 작성된 이동 궤적을 따라 로봇에 속도 명령을 이동 장치(160)에 전달하면, 이동 장치(160)는 이동 궤적에 따라 목적 지점까지 이동한다. 이동 로봇(100)이 이동 중에 센싱하고, 위치를 추정하고, 이동 경로 계획을 계속 수행하면서, 장애물이나 다른 이동 물체를 회피한다.
본 발명은 이동 로봇의 주행 모드를 동적으로 변경하기 위하여, 속성 블록을 설정하고 각 블록에 맞는 확장 기능을 쉽게 추가할 수 있는 추상 인터페이스를 제공한다. 이하에서는 도 5 내지 도 7을 참조하여, 속성 블록을 설명하기로 한다.
구역(Zone)에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록은 (i) 구역의 식별정보, (ii) 구역의 명칭 및 구역에 대한 서술자, (iii) 구역의 유형, (iv) 구역의 유형 별로 정의된 제어 파라미터, (v) 구역의 기본 도형의 중심 위치 및 각도, (vi) 구역의 기본 도형의 크기, 또는 이들의 조합을 포함한다.
구역의 유형은 (i) 속도 변경 구역, (ii) 진입 금지 구역, (iii) 집중 반복 구역, (iv) 배타 구역, (v) 대기 구역, (vi) 이동 경로 설정 구역, 또는 이들의 조합을 포함할 수 있다. 배타 구역은 특정 이동 로봇이 다른 이동 로봇과 상호 중복하지 않고 독자적으로 사용하는 공간이다. 예컨대, 엘리베이터 또는 충전소(도킹 스테이션) 등이 있다. 대기 구역은 긴급 사태 발생시 사람들의 동선을 피해 로봇이 위치해야 하는 공간이다. 이동 경로 설정 구역은 임시 우회로, 주 운행 경로, 부 운행 경로, 권장 운행 경로로 설정될 수 있다. 이는 속성 블록의 속성에 관한 예시일 뿐이며 이에 한정되는 것은 아니고 구현되는 설계 요구 사항에 따라 적합한 속성이 정의될 수 있다.
구역의 유형 별로 정의된 제어 파라미터는 (i) 속도, (ii) 방향, (iii) 위치, (iv) 거리, (v) 허용 또는 제한 여부, (vi) 횟수, (vii) 최대치, (viii) 최소치, 또는 이들의 조합을 포함한다. 구역의 유형 별로 정의된 제어 파라미터를 동적으로 변경하는 예로는 상향/하향 경사로에서 속도를 조절하거나, 문턱이 있는 장소(예컨대, 엘리베이터 등)를 통과할 때 주행 가속도를 조절하는 것이 있다.
이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 복수의 속성 블록을 특정 영역에 설정할 수 있다. 지도 상의 동일 영역에 중첩하게 설정하여 동일 영역에 복수의 유형을 설정할 수 있다. 동일 영역에 복수 속성을 설정시 감속과 가속, 감속과 금지와 같이 무의미하거나 상호 반대되는 것을 제외하여 설정한다. 동일 영역에 설정된 복수의 속성이 무의미하거나 상호 반대되면, 사용자의 입력에 따라 하나의 속성이 선택되거나 복수 속성에 설정된 우선 순위에 따라 속성이 발현된다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 설정한 구역을 예시한 도면이다.
도 5에서는 로봇이 자유롭게 돌아다닐 수 있는 구간(51), 벽(52), 시설물 또는 사람 등의 장애물(53)이 도시되어 있다. 환경 변화가 자주 발생하거나 위험물 등이 있어서 로봇이 절대 진입하면 안 되는 구간에는 금지 속성(54)을 부여한다. 주변에 장애물이 있거나 복도가 넓지 않아 로봇이 벽 쪽으로 붙어서 이동하게 경로 지정을 교시한 구역(55)이 있다. 화재 등 긴급 사태 시에 사람들의 동선을 피해 로봇이 위치해야 하는 대기 장소를 지정한 구역(56)이 있다. 사람들이 자주 다니거나 안전상 천천히 주행해야 하는 구간에는 감속 속성(57)을 부여한다. 도킹 스테이션이 위치한 곳으로 한 대의 로봇이 차지하고 있으면 배타적 사용을 보장받는 구역(58)이 있다.
지도 상에서 속성 블록을 중첩하여 적용할 수 있다. 예를 들어, 도킹 스테이션은 한 로봇이 배타적으로 사용해야 하는 구간이면서 동시에 도킹 스테이션 주변에 다른 로봇이 배회하거나 대기 중일 수 있기 때문에 서행할 필요가 있다. 따라서 배타 구역과 감속 속성 블록이 중첩하여 설정된 영역(59)이 발생한다.
감속이나 가속, 금지와 같은 일부 속성은 자율 주행 로봇의 기본적인 주행 파라미터를 수정하거나 비용 맵 또는 지도 데이터의 일부 영역(장애물로 설정)을 수정하여 주행을 변경할 수 있다.
예컨대, 감속 속성 블록의 속성 기술 데이터는 표 1과 같이 표현될 수 있고, 긴급 상황에서 로봇이 대기해야 하는 장소를 지정한 속성 블록은 표 2와 같이 표현될 수 있고, 진입 금지 구역은 표 3과 같이 표현될 수 있다.
이동 로봇은 속성 블록의 속성 기술 데이터를 파싱하여 데이터를 추출한다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇이 지도에서 설정하는 구역의 형상을 예시한 도면이다.
기본 도형은 사각형으로 설정될 수 있으나, 다각형 또는 원형으로 변경이 가능하다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 기본 도형을 회전시켜 구형의 형상을 조절할 수 있다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 구역의 기본 도형을 복수로 설정하여 영역을 확장하여 구역의 형상을 조절할 수 있다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 복수의 기본 도형의 전체 영역에서 상기 복수의 기본 도형 간의 오버랩 영역을 제외하여 구역의 형상을 조절할 수 있다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 기본 도형의 내부 영역 또는 외부 영역을 설정하여 구역의 형상을 조절할 수 있다.
도 7은 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 이동 경로 계획을 동적으로 변경하는 것을 예시한 도면이다.
본 발명은 전역 경로 계획자, 지역 경로 계획자, 주행 실패 시 재시도/재탐색 거동, 주행 제어 파라미터 변경 등의 핵심적인 구성 요소들의 기능을 쉽게 확장하기 위한 구조를 갖춘다. 추상화 인터페이스로 정의된 속성 블록에 따라 사용자의 다양한 의도에 맞도록 특화된 경로 계획이나 별도의 주행 동작 모드가 필요할 경우 속성을 임의로 확장하고 해당하는 기능을 구현하여 자율 주행 로봇의 기능을 확장할 수 있다.
일부 속성은 별도의 주행 알고리즘과 경로 계획 알고리즘을 변경해야 한다. 예를 들어, 사용자가 청소용 자율 주행 로봇을 운행 중이며, 어떤 구간을 집중적으로 청소하기를 희망할 경우, 해당 영역에 대한 커버리지를 최대로 지정할 수 있다.
다양한 주행 알고리즘을 확장 변경하기 위해서, 주행 스택 컴포넌트는 기본 경로 계획자와 확장된 경로 계획자를 포함한다. 기본 경로 계획자는 기본 전역 경로 계획자, 기본 지역 경로 계획자, 및 기본 재시도/재탐색 거동을 포함한다. 확장된 경로 계획자는 확장된 전역 경로 계획자, 확장된 기본 지역 경로 계획자, 및 확장된 기본 재시도/재탐색 거동을 포함한다. 기본 경로 계획자와 확장된 경로 계획자는 동일한 템플릿으로 정의된다. 템플릿은 유형 별로 정의된 제어 파라미터의 집합을 기반으로 정의된다.
이동 로봇이 주행 중에 속성 블록에 의해 설정된 특정 구역에 도달하면, 경로 계획이 동적으로 변경된다. 이동 로봇이 특정 구역에 접근하거나 특정 구역에 존재하면, 이동 로봇의 상황(위치, 시간, 센싱 정보 등)이 확장된 이동 경로 계획의 개시 조건으로 작용하고, 제어부는 기본 이동 경로 계획을 확장된 이동 경로 계획으로 변경한다. 이동 로봇이 특정 구역을 이탈 중이거나 특정 구역을 이탈하면, 이동 로봇의 상황이 확장된 이동 경로 계획의 해제 조건으로 작용하고, 제어부가 확장된 이동 경로 계획을 기본 이동 경로 계획으로 변경한다. 기본 이동 경로 계획과 확장된 이동 경로 계획은 제어 파라미터의 집합으로 정의된 동일한 템플릿으로 정의된다.
기본 구성요소로 해결할 수 없는 요구 조건이 발생했을 경우, 해당 속성(요구 조건)을 충족하도록 맞춤형 속성(custom zone)을 정의하고 템플릿을 확장하여 독자적인 처리 루틴을 구성할 수 있다. 확장된 구성요소와 기본 구성요소는 동일한 추상 인터페이스로 정의되어 상호 간에 호환이 가능하다. 이러한 특성의 장점은 언급한 것처럼 로봇의 운행을 멈추지 않고도 런타임 중에 주행 모드를 변경하는 것이 가능하다는 점이다. 더불어, 속성과 템플릿이라는 기본적인 틀을 제공함으로써 새로운 요구 조건이 발생했을 때 이를 해결하기 위한 비즈니스 로직 개발(예컨대, 알고리즘 구현)에만 집중할 수 있게 된다. 이로써 상대적으로 개발 주기를 단축시키며 서두에 언급한 다양한 비즈니스 요구 변화에 신속하게 대응할 수 있다는 장점을 추가로 얻을 수 있다.
도 8은 본 발명의 다른 실시예에 따른 사용자 단말 장치를 예시한 블록도이다. 사용자 단말 장치(200)는 제2 제어부(210), 사용자 입력부(220), 표시부(230), 제2 통신부(240), 및 제2 저장부(250)를 포함한다. 도 8에서는 사용자 단말 장치(200)가 다양한 구성요소들을 포함하도록 도시되어 있으나 일부 구성요소가 생략되거나 다른 구성요소를 추가로 포함할 수 있다.
제2 제어부(210)는 사용자 입력부(220), 표시부(230), 제2 저장부(250), 및 제2 통신부(240)에 연결되어 상호 간에 동작 신호를 제어한다. 제2 제어부(210)는 다양한 소프트웨어 또는 명령어 세트를 실행하여 사용자 단말 장치(200)을 위한 다양한 기능을 수행하고 데이터를 처리하는 유닛이다. 제2 제어부(210)는 마이크로 프로세서 등에 의해 구현될 수 있다.
사용자 입력부(220)는 제2 제어부(210)에 연결된다. 사용자 입력부(220)는 시각, 청각, 촉각 등을 이용하여 사용자 단말 장치(200)의 사용자로부터 정보를 제공받기 위한 유닛이다. 사용자 입력부(220)는 터치센서를 이용하여 정보를 입력받는 터치센서부, 한 개의 키를 눌러 입력받는 버튼, 복수개의 키를 눌러 입력받는 키보드, 음향을 입력받는 마이크, 사진이나 영상을 촬영하여 정보를 입력받는 카메라 등을 포함할 수 있으나 이에 한정되는 것은 아니다. 터치센서부는 표시부(230)의 하나인 디스플레이부와 연결되어 터치스크린을 형성할 수 있다. 터치스크린은 용량성, 저항성, 광학적, 음향적, 유도적, 기계적, 화학적으로 측정될 수 있는 임의의 현상에 기초하여 터치스크린에서 하나 이상의 터치지점을 검출할 수 있다.
표시부(230)는 시각, 청각, 촉각 등을 이용하여 사용자 단말 장치(200)의 사용자에게 정보를 제공하기 위한 유닛이다. 표시부(230)는 시각적인 정보를 제공하는 디스플레이부(Display Unit) 또는 라이트부(Light Unit), 촉각적인 정보를 제공하는 진동부, 청각적인 정보를 제공하는 스피커 등을 포함할 수 있으나 이에 한정되는 것은 아니다. 디스플레이부는 화면에 정보를 표시한다. 디스플레이부는 다양한 디스플레이 패널, 예를 들면, 액정 디스플레이(Liquid Crystal Display, LCD), 유기발광 다이오드(Organic Light Emitting Diode, OLED), 박막트랜지스터 액정디스플레이(Thin Film Transistor Liquid Crystal Display, TFT-LCD)로 구현될 수 있으나 이에 한정되는 것은 아니다. 라이트부는 발광체를 포함한다. 라이트부는 색을 변화시키거나 깜박거림으로 정보를 제공할 수 있다. 진동부는 사용자 단말 장치(200)의 내부에 위치한 반추를 규칙적 또는 불규칙적으로 회전시켜 사용자 단말 장치(200)를 진동시킨다. 스피커는 전기신호를 음파로 변환한다.
제2 통신부(240)는 전기신호를 전자파로 변환하거나 전자파를 전기신호로 변환하고, 전자파를 이용하여 통신망 또는 다른 장치와 통신 기능을 수행하는 유닛이다. 제2 통신부(240)는 제2 제어부(210)에 연결된다. 제2 통신부(240)는 이동통신 또는 무선통신 등을 위한 다양한 통신 프로토콜을 이용할 수 있다. 예를 들면, 세계무선통신시스템(Global System for Mobile Communications, GSM), 에지(Enhanced Data GSM Environment. EDGE), 고속하향패킷접속(High Speed Downlink Packet Access, HSDPA), 고속상향패킷접속(High Speed Uplink Packet Access, HSUPA), 광대역코드분할다중접속(Wideband Code Division Multiple Access, WCDMA), 코드분할다중접속(Code Division Multiple Access, CDMA), 시분할다중접속(Time Division Multiple Access, TDMA), 블루투스(Bluetooth), 와이파이(Wireless Fidelity, WiFi), RFID(Radio Frequency Identification), 지그비(Zigbee) 등이 있으나 이에 한정되는 것은 아니다.
제2 저장부(250)는 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도를 저장하고 복수의 속성 블록을 저장한다. 제2 저장부(250)는 사용자 단말 장치(200)을 동작시키기 위한 소프트웨어, 명령어 세트, 또는 데이터 등을 저장하기 위한 유닛이다. 제2 저장부(250)는 제2 제어부(210)에 연결된다. 제2 저장부(250)는 랜덤액세스메모리(Random Access Memory, RAM), 자기 디스크(Magnetic Disc), 플래시 메모리(Flash Memory), 정적램(Static Random Access Memory, SRAM), 롬(Read Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read Only Memory), PROM(Programmable Read Only Memory) 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
사용자 단말 장치(200)는 전원부(미도시)를 포함할 수 있다. 전원부는 사용자 단말 장치(200)의 각각의 구성요소에 전력을 공급하기 위한 유닛이다.
사용자 단말 장치(200)의 각각의 구성요소들은 필요에 따라서 다른 구성요소의 기능을 함께 수행할 수 있다. 구성요소들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로로 구현될 수 있다. 이러한 구성요소들은 하나 이상의 통신버스 또는 신호선을 통하여 통신을 수행한다.
사용자 단말 장치(200)는 지도를 편집하는 에디터 애플리케이션을 포함한다. 도 9는 사용자 단말 장치(200)에 에디터 애플리케이션을 설치하여 실행시킨 화면이다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 기 생성된 지도를 기반으로 사용자에 의해 지정되는 속성과 해당 속성이 위치할 영역 정보를 입력받는다. 사용자 단말 장치(200)는 로봇이 해당 속성 블록 구간에 진입하였을 때 로봇의 주행 상태를 어떻게 변경할 것인가를 구체적으로 기술한 데이터 부분을 입력받는다. 사용자 단말 장치(200)는 속성 기술 데이터를 해석하는 부분을 입력받는다. 사용자 단말 장치(200)는 속성에 맞게 전역 경로 계획자를 삽입하여 지도에 저장하여 사용자가 위치를 숫자가 아닌 장소를 나타내는 쉬운 단어로 표시할 수 있도록 지원한다. 사용자 단말 장치(200)는 라이다 기반의 SLAM을 고려하여 실시간으로 지도를 작성할 수 있다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 실시간 지도 편집 및 정보 생성을 수행한다. 실시간으로 지도를 바로 편집하여, 접근 금지 구역, 고속 이동 구역, 저속 이동 구역, 주요 청소 구역, 저 소음 구역 등에 관한 영역을 설정할 수 있다.
이동 로봇은 기본 지도 및 주행 지도를 포함한 총 2개의 지도를 관리하여 사용할 수 있다. 이동 로봇 중에서 청소 로봇은 기본 지도, 주행 지도, 청소 지도를 포함한 총 3개의 지도를 관리하여 사용할 수 있다.
기본 지도는 이동 로봇에 의해 생성 중이거나 생성된 지도이다. 주행 지도는 기본 지도에 로봇이 갈 수 있는 구역과 가지 못하는 구역을 표시한 지도이다. 로봇이 가지 못하는 곳을 기본 지도에 추가로 삽입한다. 청소 지도는 사용자가 주요 청소 구역으로 표시한 부분이 기본 지도에 추가로 삽입한다. 사용자가 주요 청소 구역으로 표시한 부분 이외에는 모두 장애물 구역으로 표시한다.
이동 로봇이 특정 위치로 주행하고 있는 중에는 주행 지도를 사용하며, 사용자가 표시한 금지 영역에 진입하지 않도록 한다. 이동 로봇이 주요 청소 영역에서 청소를 시작하였을 때에는 청소 지도를 사용하여, 청소 영역 밖으로 나가서 청소하지 않도록 한다.
시나리오를 예로 들면, 주요 청소 영역 밖에 위치하는 청소 로봇에게 주요 청소 영역을 청소하도록 명령하였을 때, 청소 로봇은 주행 지도를 로드하여 주요 청소 영역으로 이동한다. 청소 로봇이 속성 블록에 따라 주요 청소 영역으로 이동하면, 지도를 청소 지도로 변경한다. 청소 로봇이 속성 블록에 따라 청소를 시작한다. 청소 로봇이 청소를 마치면 다시 주행 지도를 로드하여 청소를 하기 전에 위치하던 지점으로 복귀하거나 다른 지점으로 이동한다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 이동 로봇이 실시간으로 생성 중인 지도나 작성된 지도에 대하여 편집 및 정보를 추가, 삽입, 또는 제거할 수 있다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 구역을 설정하거나 구역에 이름을 설정할 수 있다. 설정된 구역은 접근 금지 구역, 고속 이동 구역, 저속 이동 구역, 주요 청소 구역, 저 소음 구역 등으로 구분될 수 있다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 설정된 영역이나 장소에 대한 이름(시맨틱 정보)을 할당할 수 있다. 시맨틱 정보를 이용하여 로봇을 좌표가 아닌 영역의 이름(예컨대, '대회의실' 청소해)으로 로봇을 보내거나 청소를 시킬 수 있다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 지도 편집을 위해서 편집용 지도를 생성하고 기본 지도, 주행 지도, 청소 지도를 모두 합하여 편집용 지도에 표시한다. 사용자는 편집용 지도에서 접근 금지 영역 또는 관심 청소 영역을 추가하거나 삭제할 수 있다. 편집용 지도에서 표시된 내용은 속성에 따라 해당 지도에서 자동으로 편집된다. 예컨대, 사용자가 접근 금지 지역을 표시하거나 삭제하면 주행 지도에 접근 금지 구역이 추가 또는 삭제된다. 사용자가 주요 청소 지역을 표시하거나 삭제하면 청소 지도에 주요 청소 지역이 추가 또는 삭제된다.
속성에 따라 특정 지도가 다른 지도보다 우선한다. 주행 지도에 설정된 속성 블록은 청소 지도에 설정된 속성 블록보다 우선 순위가 높다. 진입 금지 구역은 로봇이 주행 중이거나 청소 중일 때 진입하면 안 되는 구역이므로, 경로 계획에서 고려하지 않는 장소이다. 특정 영역이 진입 금지 구역과 주요 청소 구역이 오버랩되어도, 청소 로봇은 장애물로 지도에 표시하여 전역 경로 생성 또는 지역 경로 생성시 주행 가능 경로에서 제외하여야 한다. 청소 지도에서 청소하도록 설정된 구역과 주행 지도에서 진입 금지로 설정된 영역이 동일 영역이면, 이동 로봇은 동일 영역에 진입하지 않고 동일 영역에서 청소를 하지 않는다.
전역 경로 생성시 주행 가능 경로에서 제외되더라도 실제 주행 중인 로봇의 센서는 환경 정보를 수집하므로 지역 경로 생성시 자동으로 제외한다. 즉, 전역 지도에 적용된 속성은 지역 지도에 동적으로 적용되어 표시된다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 사용자가 마우스 클릭, 키패드 입력, 터치 스크린의 터치 또는 드래그 등의 방식으로 특정 영역이나 기본 도형을 선택했을 때 형상을 자동으로 추출할 수 있다. 예컨대, 방의 내부와 외부를 구분하여 청소 구역을 설정할 수 있다. 도 10은 본 발명의 다른 실시예에 따른 사용자 단말 장치가 특정 영역의 외곽선을 추출하는 것을 예시한 도면이다.
도 10의 (b)를 참조하면, 도 10의 (a)의 기본 지도에서 사용자가 원하는 관심 구역보다 약간 큰 영역(1010)을 선택한다. 사용자가 선택한 영역 중에는 구분되는 공간을 벗어나는 부분이 있기 때문에, 도 10의 (c)와 같이 제2 제어부가 자동으로 로봇이 관심 구역(1020)을 추출하여 제공한다. 도 10의 (d)와 같이 선택된 관심 구역의 대표 위치(1030)를 추출한다.
제2 제어부는 구역의 중심점부터 내부 공간을 채우는 방식 또는 인접한 단선들을 연결하는 방식으로 외곽선을 추출할 수 있다. 자동 영역 추출을 위하여 이미지 처리 알고리즘을 적용할 수 있다. 로봇의 이동과 크기를 고려하여 표 4와 같은 알고리즘을 적용할 수 있다.
로봇이 관심 구역(1020)으로 쉽게 이동할 수 있도록 관심 구역(1030)의 대표 지점을 생성한다. 예컨대, 청소 로봇이 대표 지점부터 청소를 시작할 수 있다.
도 11은 본 발명의 다른 실시예에 따른 지도 관리 서버를 예시한 블록도이다.
지도 관리 서버(300)는 제3 제어부(310), 제3 통신부(320), 및 제3 저장부(330)를 포함한다. 도 11에서는 지도 관리 서버(300)가 다양한 구성요소들을 포함하도록 도시되어 있으나 일부 구성요소가 생략되거나 다른 구성요소를 추가로 포함할 수 있다.
제3 제어부(310)는 제3 저장부(320) 및 제3 통신부(330)에 연결되어 상호 간에 동작 신호를 제어한다. 제3 제어부(310)는 다양한 소프트웨어 또는 명령어 세트를 실행하여 지도 관리 서버(300)를 위한 다양한 기능을 수행하고 데이터를 처리하는 유닛이다. 제3 제어부(310)는 마이크로 프로세서 등에 의해 구현될 수 있다.
제3 통신부(320)는 전기신호를 전자파로 변환하거나 전자파를 전기신호로 변환하고, 전자파를 이용하여 통신망 또는 다른 장치와 통신 기능을 수행하는 유닛이다. 제3 통신부(320)는 제3 제어부(310)에 연결된다. 제3 통신부(320)는 이동통신 또는 무선통신 등을 위한 다양한 통신 프로토콜을 이용할 수 있다. 예를 들면, 세계무선통신시스템(Global System for Mobile Communications, GSM), 에지(Enhanced Data GSM Environment. EDGE), 고속하향패킷접속(High Speed Downlink Packet Access, HSDPA), 고속상향패킷접속(High Speed Uplink Packet Access, HSUPA), 광대역코드분할다중접속(Wideband Code Division Multiple Access, WCDMA), 코드분할다중접속(Code Division Multiple Access, CDMA), 시분할다중접속(Time Division Multiple Access, TDMA), 블루투스(Bluetooth), 와이파이(Wireless Fidelity, WiFi), RFID(Radio Frequency Identification), 지그비(Zigbee) 등이 있으나 이에 한정되는 것은 아니다.
제3 저장부(330)는 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도를 저장하고 복수의 속성 블록을 저장한다. 제3 저장부(330)는 지도 관리 서버(300)을 동작시키기 위한 소프트웨어, 명령어 세트, 또는 데이터 등을 저장하기 위한 유닛이다. 제3 저장부(330)는 제3 제어부(310)에 연결된다. 제3 저장부(330)는 랜덤액세스메모리(Random Access Memory, RAM), 자기 디스크(Magnetic Disc), 플래시 메모리(Flash Memory), 정적램(Static Random Access Memory, SRAM), 롬(Read Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read Only Memory), PROM(Programmable Read Only Memory) 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
지도 관리 서버(300)는 전원부(미도시)를 포함할 수 있다. 전원부는 지도 관리 서버(300)의 각각의 구성요소에 전력을 공급하기 위한 유닛이다.
지도 관리 서버(300)의 각각의 구성요소들은 필요에 따라서 다른 구성요소의 기능을 함께 수행할 수 있다. 구성요소들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로로 구현될 수 있다. 이러한 구성요소들은 하나 이상의 통신버스 또는 신호선을 통하여 통신을 수행한다.
도 12는 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버의 동작을 예시한 흐름도이다.
단계 S410에서 이동 로봇(100)은 지도를 생성한다. 지도는 전역 지도 및 지역 지도를 포함할 수 있다. 지도는 기본 지도, 주행 지도, 청소 지도, 편집용 지도, 또는 이들의 조합을 포함할 수 있다.
단계 S421에서 이동 로봇(100)과 사용자 단말 장치(200)는 지도 또는 지도에 관한 데이터를 송수신하여 지도에서 갱신되는 정보를 동기화한다. 단계 S422에서 이동 로봇(100)과 지도 관리 서버(300)는 지도 또는 지도에 관한 데이터를 송수신하여 지도에서 갱신되는 정보를 동기화한다. 단계 S423에서 사용자 단말 장치(200)와 지도 관리 서버(300)는 지도 또는 지도에 관한 데이터를 송수신하여 지도에서 갱신되는 정보를 동기화한다.
단계 S430에서 사용자 단말 장치(200)는 구역을 설정하고 속성 정보를 설정한다. 속성 블록은 구역(Zone)에 대한 속성이 추상 인터페이스로 정의되며, 구역과 속성 정보를 포함한다. 속성 블록은 구역의 유형 별로 정의된 제어 파라미터를 포함한다.
단계 S441에서 이동 로봇(100)과 사용자 단말 장치(200)는 속성 블록에 관한 데이터를 송수신하여 속성 블록 및 이동 로봇에서 갱신되는 정보를 동기화한다. 단계 S422에서 이동 로봇(100)과 지도 관리 서버(300)는 속성 블록에 관한 데이터를 송수신하여 속성 블록 및 이동 로봇에서 갱신되는 정보를 동기화한다. 단계 S423에서 사용자 단말 장치(200)와 지도 관리 서버(300)는 속성 블록에 관한 데이터를 송수신하여 속성 블록 및 이동 로봇에서 갱신되는 정보를 동기화한다.
단계 S450에서 이동 로봇(100)은 사용자 단말 장치(200)는 구역을 설정하고 속성 정보를 설정한다. 속성 블록을 참조하여 이동 로봇의 상황에 따라 주행 계획을 동적 변경한다. 속성 블록은 경로 계획을 동적 변경하는 조건으로 작용한다. 기본 주행 계획과 확장된 주행 계획은 동일한 추상 인터페이스로 정의되어 상호 간에 호환이 가능하다. 이러한 특성의 장점은 언급한 것처럼 로봇의 운행을 멈추지 않고도 런타임 중에 주행 모드를 변경하는 것이 가능하다는 점이다. 더불어, 속성과 템플릿이라는 기본적인 틀을 제공함으로써 새로운 요구 조건이 발생했을 때 이를 해결하기 위한 비즈니스 로직 개발(예컨대, 알고리즘 구현)에만 집중할 수 있게 된다. 이로써 상대적으로 개발 주기를 단축시키며 서두에 언급한 다양한 비즈니스 요구 변화에 신속하게 대응할 수 있다는 장점을 추가로 얻을 수 있다.
이동 로봇(100)은 이동 로봇(100)의 상황을 사용자 단말 장치(200) 및 지도 관리 서버(300)에 전송하여 동기화할 수 있다.
이동 로봇, 사용자 단말 장치, 및 지도 관리 서버는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.
이동 로봇, 사용자 단말 장치, 및 지도 관리 서버는 하드웨어적 요소가 마련된 컴퓨팅 디바이스에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 디바이스는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
본 실시예들은 본 실시예의 기술 사상을 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (15)
- 이동 로봇에 있어서,
상기 이동 로봇의 오도메트리 정보를 감지하는 제1 센서;
상기 이동 로봇의 주변 환경 정보를 감지하는 제2 센서;
구역(Zone)의 유형 별로 상기 구역에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록을 수신하는 통신부;
상기 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도 및 상기 복수의 속성 블록을 저장하는 저장부;
상기 오도메트리 정보 및 상기 주변 환경 정보를 기반으로 상기 이동 로봇의 위치를 추정하고 기본 이동 경로 계획을 설정하며, 상기 복수의 속성 블록을 참조하여 상기 이동 로봇의 상황에 따라 상기 기본 이동 경로 계획에 확장된 이동 경로 계획을 적용하여 상기 기본 이동 경로 계획을 동적으로 변경하는 제어부; 및
상기 기본 주행 계획 또는 상기 확장된 기본 이동 경로 계획을 기반으로 상기 이동 로봇을 이동시키는 이동 장치
를 포함하는 이동 로봇. - 제1항에 있어서,
상기 구역에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록은,
(i) 상기 구역의 식별정보, (ii) 상기 구역의 명칭 및 상기 구역에 대한 서술자, (iii) 상기 구역의 유형, (iv) 상기 구역의 유형 별로 정의된 제어 파라미터, (v) 상기 구역의 기본 도형의 중심 위치 및 각도, (vi) 상기 구역의 기본 도형의 크기, 또는 이들의 조합을 포함하는 것을 특징으로 하는 이동 로봇. - 제2항에 있어서,
상기 구역의 유형은 (i) 속도 변경 구역, (ii) 진입 금지 구역, (iii) 집중 반복 구역, (iv) 배타 구역, (v) 대기 구역, (vi) 이동 경로 설정 구역, 또는 이들의 조합을 포함하는 것을 특징으로 하는 이동 로봇. - 제2항에 있어서,
상기 구역의 유형 별로 정의된 제어 파라미터는 (i) 속도, (ii) 방향, (iii) 위치, (iv) 거리, (v) 허용 또는 제한 여부, (vi) 횟수, (vii) 최대치, (viii) 최소치, 또는 이들의 조합을 포함하는 것을 특징으로 하는 이동 로봇. - 제2항에 있어서,
(i) 상기 구역의 기본 도형을 복수로 설정하여 영역을 확장하거나 (ii) 상기 복수의 기본 도형의 전체 영역에서 상기 복수의 기본 도형 간의 오버랩 영역을 제외하거나 (iii) 상기 기본 도형의 내부 영역 또는 외부 영역을 설정하여 상기 구역의 형상을 조절하는 것을 특징으로 하는 이동 로봇. - 제2항에 있어서,
상기 제어부는 상기 복수의 속성 블록을 상기 지도 상의 동일 영역에 중첩하게 설정하여 상기 동일 영역에 복수의 유형을 설정하는 것을 특징으로 하는 이동 로봇. - 제1항에 있어서,
상기 이동 로봇이 상기 구역에 접근하거나 상기 구역에 존재하면, 상기 이동 로봇의 상황이 상기 확장된 이동 경로 계획의 개시 조건으로 작용하고, 상기 제어부가 상기 기본 이동 경로 계획을 상기 확장된 이동 경로 계획으로 변경하는 것을 특징으로 하는 이동 로봇. - 제1항에 있어서,
상기 이동 로봇이 상기 구역을 이탈 중이거나 상기 구역을 이탈하면, 상기 이동 로봇의 상황이 상기 확장된 이동 경로 계획의 해제 조건으로 작용하고, 상기 제어부가 상기 확장된 이동 경로 계획을 상기 기본 이동 경로 계획으로 변경하는 것을 특징으로 하는 이동 로봇. - 제1항에 있어서,
상기 제어부는 속성 블록 관리자 및 이동 경로 관리자를 포함하며,
상기 속성 블록 관리자는 상기 속성 블록을 유형 별로 해석하여 상기 경로 계획자에 의해 해독 가능한 속성에 관한 메시지 정보를 생성하고 상기 해독 가능한 속성에 관한 메시지 정보를 상기 저장부에 저장하며,
상기 이동 경로 관리자는 상기 속성에 관한 메시지 정보를 상기 저장부로부터 수신하여 경로 계획자, 비용 맵, 주행 파라미터, 또는 지도의 데이터에 적용하는 것을 특징으로 하는 이동 로봇. - 제9항에 있어서,
상기 지도는 전역 지도와 지역 지도로 구분되고,
상기 비용 맵은 전역 비용 맵과 지역 비용 맵으로 구분되며,
상기 경로 계획자는 상기 전역 지도를 기반으로 상기 전역 비용 맵을 이용하여 전체 이동 경로를 추출하는 전역 경로 계획자 및 상기 지역 지도를 통하여 부분 이동 경로를 추출하는 지역 경로 계획자를 포함하는 것을 특징으로 하는 이동 로봇. - 제10항에 있어서,
상기 전역 지도에 적용된 속성에 관한 메시지 정보는 상기 지역 지도에 동적으로 적용되어 표시되는 것을 특징으로 하는 이동 로봇. - 제1항에 있어서,
상기 지도는 기본 지도, 주행에 관한 속성 블록을 설정한 주행 지도, 및 청소에 관한 속성 블록을 설정한 청소 지도를 포함하며,
상기 주행 지도가 상기 청소 지도보다 우선 순위가 높아서 상기 청소 지도에서 청소하도록 설정된 구역과 상기 주행 지도에서 진입 금지로 설정된 영역이 동일 영역이면, 상기 이동 로봇은 상기 동일 영역에 진입하지 않고 상기 동일 영역에서 청소를 하지 않는 것을 특징으로 하는 이동 로봇. - 사용자 단말 장치에 있어서,
구역(Zone)의 유형 별로 상기 구역에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록을 입력받는 사용자 입력부;
지도 및 상기 속성 블록을 표시하는 표시부;
상기 지도 및 상기 속성 블록을 저장하는 저장부;
상기 지도 및 상기 속성 블록을 송수신하는 통신부; 및
상기 사용자 입력부, 상기 표시부, 상기 저장부, 및 상기 통신부에 연결되어 상호 간에 동작 신호를 제어하는 제어부
를 포함하는 사용자 단말 장치. - 제13항에 있어서,
상기 제어부는 상기 구역의 중심점부터 내부 공간을 채우는 방식 또는 인접한 단선들을 연결하는 방식으로 외곽선을 추출하는 것을 특징으로 하는 사용자 단말 장치. - 지도 관리 서버에 있어서,
지도 및 구역(Zone)의 유형 별로 상기 구역에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록을 송수신하는 통신부;
상기 지도 및 상기 속성 블록을 저장하는 저장부; 및
상기 통신부 및 상기 저장부에 연결되어 상호 간에 동작 신호를 제어하는 제어부
를 포함하는 지도 관리 서버.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/009386 WO2020027515A1 (ko) | 2018-08-02 | 2019-07-29 | 속성 블록을 설정하는 이동 로봇 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180090142 | 2018-08-02 | ||
KR20180090142 | 2018-08-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200015340A true KR20200015340A (ko) | 2020-02-12 |
Family
ID=69569439
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180131436A KR20200015340A (ko) | 2018-08-02 | 2018-10-31 | 속성 블록에 따라 동적 주행하는 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버 |
KR1020180158792A KR20200015348A (ko) | 2018-08-02 | 2018-12-11 | 속성 블록의 경계를 설정하는 이동 로봇 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180158792A KR20200015348A (ko) | 2018-08-02 | 2018-12-11 | 속성 블록의 경계를 설정하는 이동 로봇 |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR20200015340A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023195621A1 (ko) * | 2022-04-06 | 2023-10-12 | 엘지전자 주식회사 | 이동 로봇 및 그의 제어 방법 |
WO2024042647A1 (ja) * | 2022-08-24 | 2024-02-29 | ヤマハ発動機株式会社 | 工場用製造システム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592976B (zh) * | 2021-07-27 | 2024-06-25 | 美智纵横科技有限责任公司 | 地图数据的处理方法、装置、家用电器和可读存储介质 |
CN113741457B (zh) * | 2021-09-03 | 2024-08-20 | 上海擎朗智能科技有限公司 | 地图构建和使用方法、机器人及存储介质 |
CN113778086B (zh) * | 2021-09-03 | 2024-06-18 | 上海擎朗智能科技有限公司 | 地图构建和使用方法、机器人及存储介质 |
CN116518987A (zh) * | 2022-01-24 | 2023-08-01 | 追觅创新科技(苏州)有限公司 | 地图处理方法、系统和自移动设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140087486A (ko) | 2012-12-31 | 2014-07-09 | 노틸러스효성 주식회사 | 가상벽 레이어를 이용한 이동 로봇의 이동 경로 생성 방법 |
KR20150009413A (ko) | 2013-07-16 | 2015-01-26 | 주식회사 유진로봇 | 청소 로봇을 이용하여 사용자 지정 영역을 청소하기 위한 시스템 및 그 방법 |
KR20170087403A (ko) | 2016-01-20 | 2017-07-28 | 주식회사 유진로봇 | 복합 지도 정보 기반의 이동 로봇을 운영하기 위한 시스템 및 그 방법 |
-
2018
- 2018-10-31 KR KR1020180131436A patent/KR20200015340A/ko not_active IP Right Cessation
- 2018-12-11 KR KR1020180158792A patent/KR20200015348A/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140087486A (ko) | 2012-12-31 | 2014-07-09 | 노틸러스효성 주식회사 | 가상벽 레이어를 이용한 이동 로봇의 이동 경로 생성 방법 |
KR20150009413A (ko) | 2013-07-16 | 2015-01-26 | 주식회사 유진로봇 | 청소 로봇을 이용하여 사용자 지정 영역을 청소하기 위한 시스템 및 그 방법 |
KR20170087403A (ko) | 2016-01-20 | 2017-07-28 | 주식회사 유진로봇 | 복합 지도 정보 기반의 이동 로봇을 운영하기 위한 시스템 및 그 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023195621A1 (ko) * | 2022-04-06 | 2023-10-12 | 엘지전자 주식회사 | 이동 로봇 및 그의 제어 방법 |
WO2024042647A1 (ja) * | 2022-08-24 | 2024-02-29 | ヤマハ発動機株式会社 | 工場用製造システム |
Also Published As
Publication number | Publication date |
---|---|
KR20200015348A (ko) | 2020-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20200015340A (ko) | 속성 블록에 따라 동적 주행하는 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버 | |
US11407116B2 (en) | Robot and operation method therefor | |
US11110600B2 (en) | Airport robot and operation method thereof | |
JP2022173244A (ja) | 状況認識のためのモバイル清掃ロボット人工知能 | |
WO2020027515A1 (ko) | 속성 블록을 설정하는 이동 로봇 | |
US8090193B2 (en) | Mobile robot | |
Chen et al. | DroneTalk: An Internet-of-Things-based drone system for last-mile drone delivery | |
US10394239B2 (en) | Acoustic monitoring system | |
JPWO2019131198A1 (ja) | 制御装置、および制御方法、プログラム、並びに移動体 | |
KR102629036B1 (ko) | 로봇 및 그의 제어 방법 | |
KR20190143524A (ko) | 장애물 회피에 기반하여 경유 지점을 주행하는 로봇 및 주행하는 방법 | |
JP2009205652A (ja) | 移動体制御システム及び移動体制御方法 | |
CN110737212A (zh) | 无人机控制系统和方法 | |
JP2024083371A (ja) | データ処理方法、記録媒体、プログラム、及びシステム | |
WO2020144970A1 (ja) | 行動計画装置、行動計画方法、及びプログラム | |
KR102599784B1 (ko) | 공항 로봇 | |
US11422565B1 (en) | System for robot movement that is informed by cultural conventions | |
US20240310860A1 (en) | Methods and apparatus for controlling automated vehicles in an environment using virtual approved pathways | |
EP3992747A1 (en) | Mobile body, control method, and program | |
CN114397880A (zh) | 用于规划多功能机器人的行进路线的系统和方法 | |
US20210357620A1 (en) | System, moving object, and information processing apparatus | |
CN116745580A (zh) | 用于确定物理空间中的非静止对象的系统 | |
US11720117B1 (en) | System to facilitate autonomous mobile device movement | |
KR20180038884A (ko) | 공항 로봇 및 그를 포함하는 공항 로봇 시스템 | |
Chen et al. | ARMSAINTS: An AR-based Real-time Mobile System for Assistive Indoor Navigation with Target Segmentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X601 | Decision of rejection after re-examination |