KR102471487B1 - Cleaning robot and controlling method thereof - Google Patents
Cleaning robot and controlling method thereof Download PDFInfo
- Publication number
- KR102471487B1 KR102471487B1 KR1020150148434A KR20150148434A KR102471487B1 KR 102471487 B1 KR102471487 B1 KR 102471487B1 KR 1020150148434 A KR1020150148434 A KR 1020150148434A KR 20150148434 A KR20150148434 A KR 20150148434A KR 102471487 B1 KR102471487 B1 KR 102471487B1
- Authority
- KR
- South Korea
- Prior art keywords
- cleaning robot
- local map
- sensor data
- angle
- line segment
- Prior art date
Links
- 238000004140 cleaning Methods 0.000 title claims abstract description 220
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000005259 measurement Methods 0.000 claims abstract description 13
- 238000004364 calculation method Methods 0.000 claims description 33
- 238000000605 extraction Methods 0.000 claims description 18
- 238000013075 data extraction Methods 0.000 claims description 12
- 238000005266 casting Methods 0.000 claims description 7
- 238000009826 distribution Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 31
- 230000009466 transformation Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000004397 blinking Effects 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012535 impurity Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
Classifications
-
- 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
-
- 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/009—Carrying-vehicles; Arrangements of trollies or wheels; Means for avoiding mechanical obstacles
-
- 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
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- 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
-
- 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
-
- 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)
- Robotics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
개시된 발명은 청소 로봇 및 그 제어방법에 관한 것으로서, 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 데이터 획득부; 기 저장된 환경 지도를 기초로 현재 위치 주변을 스캔하여 로컬 맵을 획득하는 로컬 맵 획득부; 및 로컬 맵과 실 센서 데이터 간의 정합을 수행하여 로컬 맵에 대한 현재 위치의 좌표를 파악하고, 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 현재 위치를 기준으로 주행 방향을 결정하는 프로세서;를 포함할 수 있다.The disclosed invention relates to a cleaning robot and a control method thereof, comprising: a data acquisition unit that obtains actual sensor data by measuring a distance from a current location to a measurement target; a local map acquisition unit acquiring a local map by scanning the vicinity of a current location based on a pre-stored environment map; and a processor performing matching between the local map and real sensor data to determine the coordinates of the current location on the local map, and determining the driving direction based on the current location by calculating angles of main segments of lines existing on the local map. can include
Description
청소 로봇 및 그 제어방법에 관한 것이다.It relates to a cleaning robot and its control method.
청소 로봇은 사용자의 조작 없이도 청소해야 하는 영역을 스스로 주행하면서 바닥으로부터 먼지와 같은 불순물을 청소하는 장치로, 미리 설정된 주행 패턴에 따라 주행하면서 청소 작업을 수행한다. 또한, 청소 로봇은 센서를 통해 청소 구역 내에 설치된 가구, 벽, 가전제품 등의 장애물까지의 거리를 판별하고, 좌측 모터와 우측 모터를 선택적으로 구동시켜 스스로 방향을 전환한다.A cleaning robot is a device that cleans impurities such as dust from the floor while traveling on its own in an area to be cleaned without a user's manipulation, and performs cleaning tasks while traveling according to a preset driving pattern. In addition, the cleaning robot determines the distance to obstacles such as furniture, walls, and appliances installed in the cleaning area through sensors, and changes direction by itself by selectively driving the left and right motors.
상술한 청소 로봇이 다양한 청소 환경에서 원활한 청소 동작을 수행하기 위해서는 자신의 위치를 정확하게 파악하는 것이 중요하다.In order for the above-described cleaning robot to perform a smooth cleaning operation in various cleaning environments, it is important to accurately determine its location.
또한, 청소 로봇이 청소를 시작하는 상황에서 벽면과 비스듬하게 놓인 경우 초기에 위치하는 방향을 유지한 상태로 청소를 시작하면, 비효율적인 주행 경로가 생성되어, 청소가 누락되는 영역이 다수 발생할 수 있다.In addition, when the cleaning robot is placed at an angle to the wall in a situation where it starts cleaning, if cleaning is started while maintaining the initial position, an inefficient driving path is created, and a number of areas where cleaning is omitted may occur. .
이에, 청소 로봇이 청소 공간의 모든 영역을 주행할 수 있도록 청소 로봇의 주행 방향을 정확하게 결정해야 할 필요성이 요구되고 있는 실정이다.Accordingly, there is a need to accurately determine the traveling direction of the cleaning robot so that the cleaning robot can travel in all areas of the cleaning space.
개시된 발명은 청소 로봇이 청소를 수행하는 환경의 지도와 환경 지도 상에서의 청소 로봇의 위치를 이용하여 청소 로봇의 주행 방향을 결정하기 위한 청소 로봇 및 그 제어방법을 제공하기 위한 것이다.Disclosed is to provide a cleaning robot and a control method for determining a running direction of a cleaning robot using a map of an environment in which the cleaning robot performs cleaning and a position of the cleaning robot on the environment map.
일 측면에 의한 청소 로봇은, 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 데이터 획득부; 기 저장된 환경 지도를 기초로 상기 현재 위치 주변을 스캔하여 로컬 맵을 획득하는 로컬 맵 획득부; 및 상기 로컬 맵과 상기 실 센서 데이터 간의 정합을 수행하여 상기 로컬 맵에 대한 상기 현재 위치의 좌표를 파악하고, 상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 상기 현재 위치를 기준으로 주행 방향을 결정하는 프로세서;를 포함할 수 있다.According to one aspect, a cleaning robot may include: a data acquisition unit configured to obtain real sensor data by measuring a distance from a current location to a measurement target; a local map acquisition unit acquiring a local map by scanning the vicinity of the current location based on a pre-stored environment map; and performing matching between the local map and the real sensor data to determine the coordinates of the current position with respect to the local map, and calculating the angle of a main segment of a line segment existing in the local map to determine the driving direction based on the current position. A processor that determines; may include.
또한, 상기 프로세서는, 상기 로컬 맵에 존재하는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정할 수 있다.In addition, the processor may classify a plurality of straight lines existing in the local map according to angles to determine main line segment angles.
또한, 상기 프로세서는, 상기 현재 위치 좌표를 기준으로 결정된 상기 주행 방향을 기초로 상기 청소 로봇의 주행 방향을 제자리 회전 시킬 수 있다.Also, the processor may rotate the driving direction of the cleaning robot in place based on the driving direction determined based on the current location coordinates.
또한, 상기 데이터 획득부는, 상기 청소 로봇이 정지된 상태에서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 일정 각도로 회전하면서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 360° 회전하면서 전 방향에 대한 실 센서 데이터를 획득할 수 있다.In addition, the data acquisition unit acquires the real sensor data while the cleaning robot is stopped, or acquires the real sensor data while the cleaning robot rotates in place at a certain angle, or the cleaning robot is in place. Real sensor data for all directions can be acquired while rotating 360°.
또한, 상기 로컬 맵 획득부는, 상기 청소 로봇의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득할 수 있다.In addition, the local map acquisition unit extracts virtual sensor data by performing a ray casting technique in all directions while rotating 360° from a virtual sensor data extraction location selected with the current location of the cleaning robot as the center. You can get a local map.
또한, 상기 로컬 맵 획득부는, 상기 청소 로봇의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출할 수 있다.Also, the local map acquisition unit may extract a local map having a predetermined size around each of a plurality of local map extraction locations selected around the current location of the cleaning robot from the environment map.
또한, 상기 프로세서는, 상기 로컬 맵에 대한 청소 로봇의 현재 위치 좌표를 파악하기 위한 위치 추정부; 상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하기 위한 선분 각도 산출부; 및 상기 청소 로봇이 현재 위치에서 상기 주 선분 각도에 따라 주행 방향을 회전하도록 하는 방향 조정부;를 포함할 수 있다.In addition, the processor may include a position estimating unit for determining current position coordinates of the cleaning robot with respect to the local map; a line segment angle calculation unit configured to calculate a main line segment angle of a line segment existing in the local map; and a direction adjuster configured to allow the cleaning robot to rotate in a driving direction according to an angle of the main line segment at a current location.
또한, 상기 위치 추정부는, 상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 대응점 획득부; 획득된 상기 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 상대 위치 계산부; 복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 유사도 계산부; 및 상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 상대 위치를 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하여 현재 위치 좌표를 파악하는 위치 결정부;를 포함할 수 있다.In addition, the position estimating unit may include a corresponding point obtaining unit acquiring a plurality of corresponding points through data matching between the real sensor data and the local map; a relative position calculating unit calculating a relative position of the real sensor data with respect to the local map using the obtained plurality of corresponding points; a similarity calculation unit calculating a similarity between a plurality of local maps and the real sensor data; and a location determiner configured to determine the relative location of the cleaning robot with respect to the local map having the greatest similarity as the current location of the cleaning robot with respect to the environment map, and determine current location coordinates.
또한, 상기 유사도 계산부는, 상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높다고 계산할 수 있다.Also, the similarity calculation unit may calculate that the similarity is high as the number of data points commonly included in the local map and the real sensor data increases.
또한, 상기 선분 각도 산출부는, 상기 로컬 맵에서 복수 개의 직선을 획득하는 직선 획득부; 및 상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정하는 주 선분 각도 산출부;를 포함할 수 있다.The line segment angle calculation unit may include a straight line acquisition unit acquiring a plurality of straight lines from the local map; and a main line segment angle calculation unit configured to determine a main line segment angle by classifying the plurality of straight lines according to angles.
또한, 상기 직선 획득부는, 허프 변환(Hough Transform)을 이용하여 상기 로컬 맵에서 상기 복수 개의 직선을 획득할 수 있다.Also, the straight line acquisition unit may obtain the plurality of straight lines from the local map using a Hough Transform.
또한, 상기 주 선분 각도 산출부는, 상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하고, 상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정할 수 있다.The main line segment angle calculation unit may classify the plurality of straight lines according to angles to generate an angle histogram, and determine the main line segment angles by considering the distribution of the angle histogram.
또한, 상기 주 선분 각도 산출부는, 직교하거나 평행하는 직선을 서로 병합하여 상기 각도 히스토그램을 생성할 수 있다.In addition, the main line segment angle calculation unit may generate the angle histogram by merging orthogonal or parallel straight lines with each other.
또한, 상기 주 선분 각도 산출부는, 저역 통과 필터를 이용하여 상기 각도 히스토그램의 잡음을 제거하여 상기 로컬 맵의 주 선분 각도를 결정할 수 있다.The main line segment angle calculation unit may determine the main line segment angle of the local map by removing noise from the angle histogram using a low-pass filter.
또한, 상기 청소 로봇은, 상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 메시지 형태로 출력하기 위한 디스플레이;를 더 포함할 수 있다.The cleaning robot may further include a display for outputting in the form of a message that the driving direction of the cleaning robot has been adjusted according to the main line segment angle.
또한, 상기 청소 로봇은, 상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 음성 형태로 출력하기 위한 음향 출력부;를 더 포함할 수 있다.The cleaning robot may further include an audio output unit for outputting in the form of a voice that the driving direction of the cleaning robot has been adjusted according to the angle of the main line.
또한, 청소 로봇은, 거리를 측정하기 위한 센서; 를 더 포함하고, 상기 데이터 획득부는 상기 센서를 이용하여 상기 센서로부터 상기 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득할 수 있다.In addition, the cleaning robot may include a sensor for measuring a distance; The data acquisition unit may obtain actual sensor data by measuring a distance from the sensor to the measurement target using the sensor.
일 측면의 청소 로봇의 제어방법은, 현재 위치 주변을 스캔하여 로컬 맵을 획득하는 단계; 상기 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 단계; 상기 로컬 맵과 상기 실 센서 데이터 간의 정합을 수행하여 상기 로컬 맵에 대한 현재 위치 좌표를 파악하는 단계; 상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 주행 방향을 결정하는 단계; 및 산출된 상기 주 선분 각도에 따라 주행 방향을 조정하는 단계;를 포함할 수 있다.In one aspect, a control method of a cleaning robot may include acquiring a local map by scanning an area around a current location; acquiring real sensor data by measuring a distance from the current location to a measurement object; performing matching between the local map and the real sensor data to determine current location coordinates with respect to the local map; determining a driving direction by calculating an angle of a main line segment of a line segment existing in the local map; and adjusting the driving direction according to the calculated angle of the main line segment.
또한, 상기 로컬 맵을 획득하는 단계는, 상기 청소 로봇이 주행하는 기 저장된 환경 지도를 기초로 상기 현재 위치 주변을 스캔하여 상기 로컬 맵을 획득할 수 있다.In the obtaining of the local map, the local map may be obtained by scanning a vicinity of the current location based on a pre-stored environment map in which the cleaning robot travels.
또한, 상기 환경 지도는 2차원 격자 지도 또는 3차원 격자 지도일 수 있다.Also, the environment map may be a 2D grid map or a 3D grid map.
또한, 상기 로컬 맵을 획득하는 단계는, 상기 청소 로봇의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하거나, 또는 상기 청소 로봇의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출할 수 있다.In addition, the acquiring of the local map may include performing a ray casting technique in all directions while rotating 360 ° at a virtual sensor data extraction location selected with the current location of the cleaning robot as the center to obtain virtual sensor data. The local map may be obtained by extraction, or a local map having a preset size may be extracted from the environment map around each of a plurality of local map extraction locations selected around the current location of the cleaning robot.
또한, 상기 현재 위치 좌표를 파악하는 단계는, 상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 단계; 상기 획득된 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 단계; 복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 단계; 및 상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 현재 위치를 상기 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하는 단계;를 포함할 수 있다.The step of determining the current location coordinates may include acquiring a plurality of corresponding points through data matching between the real sensor data and the local map; calculating a relative position of the real sensor data with respect to the local map using the obtained plurality of corresponding points; calculating a similarity between a plurality of local maps and the real sensor data; and determining the current location of the cleaning robot on the local map having the greatest similarity as the current location of the cleaning robot on the environment map.
또한, 상기 유사도를 계산하는 단계에서, 상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높은 것으로 판단할 수 있다.In addition, in the step of calculating the degree of similarity, it may be determined that the degree of similarity increases as the number of data points commonly included in the local map and the real sensor data increases.
또한, 상기 주행 방향을 결정하는 단계는, 상기 로컬 맵에서 복수 개의 직선을 획득하는 단계; 및 상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출하는 단계;를 포함할 수 있다.The determining of the driving direction may include obtaining a plurality of straight lines from the local map; and calculating main line segment angles by classifying the plurality of straight lines according to angles.
또한, 상기 주 선분 각도를 산출하는 단계는, 상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하는 단계; 및 상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정하는 단계;를 포함할 수 있다.The calculating of the main line segment angles may include generating an angle histogram by classifying the plurality of straight lines according to angles; and determining the angle of the main line segment in consideration of the distribution of the angle histogram.
또한, 상기 주 선분 각도를 산출하는 단계는, 상기 각도 히스토그램에서 직교하거나 평행하는 직선은 서로 병합하는 단계;를 더 포함할 수 있다.The calculating of the main line segment angles may further include merging orthogonal or parallel straight lines in the angle histogram.
개시된 발명은 청소 로봇이 작업을 수행하는 환경 지도와 환경 지도 상에서의 청소 로봇의 위치를 이용하여 청소 로봇의 주행 방향을 결정하기 때문에, 보다 정확한 주행 방향을 결정하여 수 있고, 이로 인해, 청소 누락 영역이 발생하지 않아 청소 동작에 대한 신뢰도를 향상시킬 수 있다는 효과를 기대할 수 있다.Since the disclosed invention determines the driving direction of the cleaning robot using the environment map where the cleaning robot performs tasks and the position of the cleaning robot on the environment map, it is possible to determine the driving direction more accurately, and thus, the area where cleaning is omitted. Since this does not occur, an effect of improving the reliability of the cleaning operation can be expected.
도 1은 일 실시예에 의한 청소 로봇 시스템의 전체 구성을 도시한 도면이다.
도 2는 일 실시예에 의한 청소 로봇의 외관을 개략적으로 도시한 도면이다.
도 3은 일 실시예에 의한 청소 로봇의 구성을 나타내는 제어 블럭도이다.
도 4는 일 실시예에 의한 청소 로봇이 주행하는 환경 지도를 나타낸 도면이다.
도 5는 일 실시예에 의한 청소 로봇의 현재 위치에서 가상 센서 데이터를 추출하는 위치를 나타낸 도면이다.
도 6은 도 5의 가상 센서 데이터 추출 위치를 계산하는 방법을 나타낸 도면이다.
도 7은 일 실시예에 의한 광선 던지기 기법의 예를 나타낸 도면이다.
도 8은 도 7의 광선 던지기 기법을 이용하여 추출된 가상 센서 데이터의 예를 나타낸 도면이다.
도 9는 일 실시예에 의한 청소 로봇의 현재 위치에서 소 로컬 맵을 추출하는 위치를 나타낸 도면이다.
도 10은 소 로컬 맵 추출 위치를 이용하여 추출된 소 로컬 맵의 예를 나타낸 도면이다.
도 11은 도 3의 프로세서를 상세하게 나타내는 제어 블럭도이다.
도 12는 도 11의 위치 추정부를 상세하게 나타내는 제어 블록도이다.
도 13은 일 실시예에 의한 청소 로봇에서 획득한 실 센서 데이터의 예를 나타낸 도면이다.
도 14는 일 실시예에 의한 청소 로봇에서 획득한 가상 센서 데이터의 예를 나타낸 도면이다.
도 15는 일 실시예에 의한 로컬 맵에 대한 실 센서 데이터의 상대 위치를 계산하는 방법을 나타낸 도면이다.
도 16은 일 실시예에 의한 로컬 맵을 팽창시킨 상태를 나타낸 도면이다.
도 17 및 18은 일 실시예에 의한 로컬 맵과 실 센서 데이터가 맞춤 상태를 설명하기 위한 도면이다.
도 19는 도 5의 선분 각도 산출부의 구성을 상세하게 나타내는 도면이다.
도 20 및 21은 에지 로컬 맵에서 획득한 직선을 각도에 따라 분류하여 생성한 각도 히스토그램들이다.
도 22 및 도 23은 청소 로봇의 주행 방향을 결정하기 위한 방법을 설명하기 위한 도면이다.
도 24는 일 실시에에 의한 청소 로봇의 제어방법을 설명하기 위한 흐름도이다.
도 25는 도 24의 청소 로봇의 현재 위치 추정 방법을 상세하게 설명하기 위한 흐름도이다.
도 26은 도 24의 선분 각도 추출 방법을 상세하게 설명하기 위한 흐름도이다. 1 is a diagram showing the overall configuration of a cleaning robot system according to an embodiment.
2 is a diagram schematically illustrating an appearance of a cleaning robot according to an exemplary embodiment.
3 is a control block diagram illustrating a configuration of a cleaning robot according to an exemplary embodiment.
4 is a diagram illustrating an environment map in which a cleaning robot travels according to an exemplary embodiment.
5 is a diagram illustrating a location from which virtual sensor data is extracted from a current location of a cleaning robot according to an embodiment.
FIG. 6 is a diagram illustrating a method of calculating a virtual sensor data extraction position of FIG. 5 .
7 is a diagram illustrating an example of a ray throwing technique according to an embodiment.
8 is a diagram illustrating an example of virtual sensor data extracted using the ray throwing technique of FIG. 7 .
9 is a diagram illustrating a location from which a small local map is extracted from a current location of a cleaning robot according to an embodiment.
10 is a diagram showing an example of a small local map extracted using a small local map extraction position.
FIG. 11 is a control block diagram showing details of the processor of FIG. 3 .
FIG. 12 is a control block diagram showing the position estimation unit of FIG. 11 in detail.
13 is a diagram illustrating an example of real sensor data obtained from a cleaning robot according to an exemplary embodiment.
14 is a diagram illustrating an example of virtual sensor data obtained from a cleaning robot according to an exemplary embodiment.
15 is a diagram illustrating a method of calculating a relative position of real sensor data with respect to a local map according to an embodiment.
16 is a diagram showing a state in which a local map is expanded according to an embodiment.
17 and 18 are diagrams for explaining a state in which a local map and real sensor data are matched according to an embodiment.
FIG. 19 is a diagram showing in detail the configuration of the line segment angle calculator in FIG. 5 .
20 and 21 are angle histograms generated by classifying straight lines obtained from an edge local map according to angles.
22 and 23 are diagrams for explaining a method for determining a driving direction of a cleaning robot.
24 is a flowchart illustrating a method of controlling a cleaning robot according to an exemplary embodiment.
FIG. 25 is a flowchart for explaining in detail a method for estimating the current location of the cleaning robot of FIG. 24 .
26 is a flowchart for explaining in detail the line segment angle extraction method of FIG. 24 .
본 발명의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되는 이하의 상세한 설명과 바람직한 실시 예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공기 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서에서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 제한되는 것은 아니다.Objects, specific advantages and novel features of the present invention will become more apparent from the following detailed description and preferred embodiments taken in conjunction with the accompanying drawings. In adding reference numerals to components of each drawing in this specification, it should be noted that the same components have the same numbers as much as possible, even if they are displayed on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related air technology may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. In this specification, terms such as first and second are used to distinguish one component from another component, and the component is not limited to the above terms.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시형태를 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 일 실시예에 의한 청소 로봇 시스템의 전체 구성을 나타내는 도면이다.1 is a diagram showing the overall configuration of a cleaning robot system according to an embodiment.
도 1을 참조하면, 청소 로봇 시스템(1)은 일정 영역을 자율적으로 이동하면서 작업을 수행하는 청소 로봇(100)과, 청소 로봇(100)과 분리되어 청소 로봇(100)을 원격으로 제어하는 디바이스(200)와, 청소 로봇(100)과 분리되어 청소 로봇(100)의 배터리 전원을 충전하는 충전 스테이션(300)을 포함한다.Referring to FIG. 1 , a cleaning
청소 로봇(100)은 디바이스(200)의 제어 명령을 전달받아 제어 명령에 대응하는 동작을 수행하는 장치로, 충전 가능한 배터리를 구비하고, 주행 중 장애물을 피할 수 있는 장애물 센서를 구비하여 작업 영역을 자율적으로 주행하며 작업할 수 있다.The cleaning
또한, 청소 로봇(100)은 카메라나 각종 센서들을 통해 주변 환경에 대한 사전 정보 없이 자신의 위치를 인식하고, 환경에 대한 정보로부터 지도를 작성하는 위치 인식(Localization)과 지도 작성(Map-building)의 과정을 수행할 수 있다. In addition, the cleaning
디바이스(200)는 청소 로봇(100)의 이동을 제어하거나 청소 로봇(100)의 작업을 수행하기 위한 제어 명령을 무선으로 송신하는 원격 제어 장치로, 휴대폰, 스마트 폰(smart phone), 휴대 단말기(Personal Digital Assistants: PDA), 휴대용 멀티미디어 플레이어(Portable Multimedia Player: PMP), 노트북 컴퓨터(laptop computer), 디지털 방송용 단말기, 넷북, 태블릿, 내비게이션(Navigation) 등을 포함할 수 있다. The
이외에도, 디바이스(200)는 유무선 통신 기능이 내장된 디지털 카메라, 캠코더 등과 같이 여러 응용 프로그램을 이용한 다양한 기능의 구현이 가능한 모든 장치를 포함한다.In addition, the
또한, 디바이스(200)는 간단한 형태의 일반적인 리모컨일 수 있다. 리모컨은 일반적으로 적외선 통신(IrDA, infrared Data Association)을 이용하여 청소 로봇(100)과 신호를 송수신할 수 있다. Also, the
또한, 디바이스(200)는 RF(Radio Frequency), 와이파이(Wireless Fidelity, Wi-Fi), 블루투스(Bluetooth), 지그비(Zigbee), 엔에프씨(near field communication: NFC), 초광대역(Ultra Wide Band: UWB) 통신 등 다양한 방식을 이용하여 청소 로봇(100)과 무선 통신 신호를 송수신할 수 있으며, 디바이스(200)와 청소 로봇(100)이 무선 통신 신호를 주고 받을 수 있는 것이면, 어느 방식을 사용하여도 무방하다.In addition, the
또한, 디바이스(200)는 청소 로봇(100)의 전원을 온 및 오프 제어하기 위한 전원 버튼과, 청소 로봇(100)의 배터리 충전을 위해 충전 스테이션(300)으로 복귀하도록 지시하기 위한 충전 복귀 버튼과, 청소 로봇(100)의 제어 모드를 변경하기 위한 모드 버튼과, 청소 로봇(100)의 동작을 시작 및 정지하거나 제어 명령의 개시, 취소 및 확인을 위한 시작 및 정지 버튼과, 다이얼 등을 포함할 수 있다.In addition, the
충전 스테이션(300)은 청소 로봇(100)의 배터리 충전을 위한 구성으로, 청소 로봇(100)이 도킹되는 것을 안내하는 가이드 부재(미도시)가 마련되어 있고, 가이드 부재(미도시)에는 청소 로봇(100)에 구비된 전원부(130, 도 2 참조)를 충전시키기 위해 접속 단자(미도시)가 마련되어 있다.The charging
도 2는 일 실시예에 의한 청소 로봇의 외관을 개략적으로 도시한 도면이다.2 is a diagram schematically illustrating an appearance of a cleaning robot according to an exemplary embodiment.
도 2에서 도시하는 바와 같이, 청소 로봇(100)은 외관을 형성하는 본체(110)와, 본체(110)의 상부를 덮는 커버(120)와, 본체(110)를 구동시키기 위한 구동 전원을 공급하는 전원부(130)와, 본체(110)를 이동시키는 구동부(140)를 포함한다.As shown in FIG. 2 , the cleaning
본체(110)는 청소 로봇(100)의 외관을 형성하는 한편, 그 내부에 설치되는 각종 부품들을 지지한다.The
전원부(130)는 구동부(140) 및 그 외 본체(110)를 구동시키기 위한 각 부하와 전기적으로 연결되어 구동 전원을 공급하는 배터리를 포함한다. 배터리는 재충전이 가능한 2차 배터리로 마련되며, 본체(110)가 작업을 완료하고 충전 스테이션(300)에 결합된 경우 충전 스테이션(300)으로부터 전력을 공급받아 충전된다.The
또한, 전원부(130)는 충전 잔량이 부족하면 충전 스테이션(300)으로부터 충전 전류를 공급받아 충전된다.In addition, the
또한, 본체(110)의 전방에는 청소 로봇(100)이 이동하는 바닥 면의 상태에 따라 회전하는 각도가 변화하는 캐스터 휠(미도시)이 설치될 수 있다. 캐스터 휠은 청소 로봇(100)의 자세 안정 및 추락 방지 등에 활용되어 청소 로봇(100)을 지지하며, 롤러나 캐스터 형상의 휠로 구성된다.In addition, a caster wheel (not shown) may be installed in front of the
구동부(140)는 본체(110)의 중앙부 양측에 각각 마련되어 본체(110)가 주행하는 과정에서 전진, 후진 및 회전주행 등의 이동 동작이 가능하도록 한다. The driving
구동부(140)는 후술하는 프로세서(180, 도 3 참조)의 명령에 따라 전진 또는 후진 방향으로 각각 회전하여 청소 로봇(100)이 전진 또는 후진하거나 회전할 수 있도록 한다. 예를 들면, 구동부(140)를 전진 또는 후진 방향으로 회전시켜 청소 로봇(100)이 전진 또는 후진 주행하도록 한다. 또한 좌측 구동부(140)를 후진 방향으로 회전시키는 동안 우측 구동부(140)를 전진 방향으로 회전시켜 청소 로봇(100)이 전방을 기준으로 좌측 방향으로 회전하도록 하고, 우측 구동부(140)를 후진 방향으로 회전시키는 동안 좌측 구동부(140)를 전진 방향으로 회전시켜 청소 로봇(100)이 전방을 기준으로 우측 방향으로 회전하도록 한다.The driving
도 3은 일 실시예에 의한 청소 로봇의 구성을 나타내는 제어 블럭도이다.3 is a control block diagram illustrating a configuration of a cleaning robot according to an exemplary embodiment.
도 3에서 도시하는 바와 같이, 청소 로봇(100)은 도 2에 도시한 구성 요소 이외에 데이터 획득부(151), 로컬 맵 획득부(153), 메모리(160), 입력부(171), 디스플레이(173), 음향 출력부(175) 및 프로세서(180)를 포함할 수 있다.As shown in FIG. 3 , the cleaning
데이터 획득부(151)는 청소 로봇(100)이 현재 위치하고 있는 공간의 실 센서 데이터를 획득하는 구성으로, 청소 로봇(100)의 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득할 수 있다.The
보다 상세히 설명하면, 청소 로봇(100)은 거리를 측정하기 위한 센서(미도시)를 구비하여, 청소 로봇(100)에 설치된 2D 센서 또는 3D 센서의 스캔에 따라 센서로부터 측정 대상까지의 거리를 측정하여 청소 로봇(100)이 위치한 실제 환경의 실 센서 데이터를 획득하는 것이다. 상기 센서는 2D 센서 또는 3D 센서일 수 있다.More specifically, the cleaning
이때, 2D 센서는 측정 대상까지의 거리를 센서의 기준 좌표계에 대해 (x, y) 좌표로 표시할 수 있고, 3D 센서는 측정 대상까지의 거리를 센서의 기준 좌표계에 대해 (x, y, z) 좌표로 표시할 수 있다. 이러한 2D 센서 또는 3D 센서에서 출력되는 거리 데이터의 개수는 센서의 시야(Field of View, FoV)와 해상도(Resolution)에 따라 달라질 수 있다.At this time, the 2D sensor may display the distance to the measurement object as (x, y) coordinates with respect to the sensor's reference coordinate system, and the 3D sensor may display the distance to the measurement object as (x, y, z) with respect to the sensor's reference coordinate system ) can be expressed as coordinates. The number of distance data output from the 2D sensor or the 3D sensor may vary depending on the field of view (FoV) and resolution of the sensor.
즉, 데이터 획득부(151)는 2D 센서 또는 3D 센서의 시야(FoV)에 따라 청소 로봇(100)의 실 센서 데이터 획득 방식을 달리할 수 있다. 센서의 시야가 충분히 확보되었을 경우, 청소 로봇(100)은 정지 상태에서 실 센서 데이터를 획득한다. 또는 제자리에서 일정 각도로 회전하면서 실 센서 데이터를 획득하거나, 또는 제자리에서 360° 회전하면서 전(全)방향에 대한 실 센서 데이터를 획득한다.That is, the
이때, 청소 로봇(100)이 제자리에서 일정 각도로 회전하면서 실 센서 데이터를 획득할 때, 센서의 시야 밖의 실 센서 데이터를 획득할 수 있다.In this case, when the cleaning
로컬 맵 획득부(153)는 기 저장된 환경 지도를 기초로 현재 위치 주변을 스캔하여 로컬 맵을 획득할 수 있다.The local
보다 상세히 설명하면, 로컬 맵 획득부(153)는 메모리(160)에 저장된 환경 지도를 기반으로 하여 추출되는 가상 센서 데이터를 이용하여 청소 로봇(100)의 현재 위치 주변의 로컬 맵(Local Map; 국지적 지도)을 획득한다.More specifically, the local
이때, 청소 로봇이 동작하는 환경 지도는 도 4와 같을 수 있다. 상기 청소 로봇(100)이 동작하는 환경 지도(500, Map)는 미리 주어진 것으로 가정하기로 한다. 도 4에 도시한 바와 같이, 환경 지도(500)의 형태는 2차원의 격자 지도(Grid Map) 또는 3차원의 격자 지도(Grid Map) 형태일 수 있다. 격자 지도(Grid Map)는 청소 로봇(100)의 주위 환경을 작은 격자(Grid)로 나누어 각 격자에 물체가 있을 가능성을 확률적으로 표현한 지도로서, 확률 격자 지도라고도 한다.In this case, an environment map in which the cleaning robot operates may be the same as that of FIG. 4 . It is assumed that the
이하에서는 청소 로봇(100)이 환경 지도(500) 내 I 지역에 위치하는 경우를 예로 들어 설명하기로 한다.Hereinafter, a case where the cleaning
개시된 발명에서는 로컬 맵 획득의 실시 예로서 2차원 격자 지도를 활용한 3가지 방법을 제안한다. 이 방법은 3차원 격자 지도로 확장하여 적용될 수 있음은 당연하다 할 것이다.In the disclosed invention, as an embodiment of obtaining a local map, three methods using a 2D grid map are proposed. It goes without saying that this method can be extended and applied to a 3D grid map.
도 5는 일 실시예에 의한 청소 로봇의 현재 위치에서 가상 센서 데이터를 추출하는 위치를 나타낸 도면이고, 도 6은 도 5의 가상 센서 데이터 추출 위치를 계산하는 방법을 나타낸 도면이며, 도 7은 일 실시예에 의한 광선 던지기 기법의 예를 나타낸 도면이고, 도 8은 도 7의 광선 던지기 기법을 이용하여 추출된 가상 센서 데이터의 예를 나타낸 도면이다.5 is a diagram showing a location from which virtual sensor data is extracted from the current location of a cleaning robot according to an embodiment, FIG. 6 is a diagram showing a method for calculating a virtual sensor data extraction location of FIG. 5, and FIG. It is a diagram showing an example of a ray throwing technique according to an embodiment, and FIG. 8 is a diagram showing an example of virtual sensor data extracted using the ray throwing technique of FIG. 7 .
먼저, 로컬 맵 획득부(153)는 가상 센서 데이터(Virtual Sensor Data) 추출 방식을 통해 로컬 맵을 획득할 수 있다.First, the local
로컬 맵 획득부(153)는 청소 로봇(100)이 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 로컬 맵을 획득할 수 있다.The local
도 5에 도시한 바와 같이, 청소 로봇(100)은 현재 위치(S)를 중심으로 일정 거리 이내에서 복수의 가상 센서 데이터 추출 위치(X)들을 지도 상에서 선정한다.As shown in FIG. 5 , the cleaning
가상 센서 데이터 추출 위치(X)는 청소 로봇(100)의 현재 위치(S)를 중심으로 서로 직각이 되며, 반경 R되는 지점의 끝을 추출 위치(X)로 결정한다(도 6 참조).The virtual sensor data extraction positions (X) are orthogonal to each other with the current position (S) of the
도 6에서는 한 변의 길이가 2R인 X자의 4군데 끝 지점이 가상 센서 데이터의 추출 위치(X)가 되는 것이다.In FIG. 6 , four end points of an X character having a side length of 2R become the extraction positions (X) of virtual sensor data.
이후, 도 7에 도시한 바와 같이, 각각의 가상 센서 데이터 추출 위치(X)에서 360° 전(全) 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 도 8에 도시한 바와 같이, 가상 센서 데이터를 추출한다. 도 8은 가상 센서 데이터 추출 위치(X)에서 추출된 가상 센서 데이터의 예를 나타내는 것이다.Thereafter, as shown in FIG. 7, a ray casting technique is performed in all directions of 360 ° from each virtual sensor data extraction position (X), and as shown in FIG. 8, the virtual sensor extract data 8 illustrates an example of virtual sensor data extracted from a virtual sensor data extraction position (X).
도 9는 일 실시예에 의한 청소 로봇의 현재 위치에서 소 로컬 맵을 추출하는 위치를 나타낸 도면이고, 도 10은 소 로컬 맵 추출 위치를 이용하여 추출된 소 로컬 맵의 예를 나타낸 도면이다.FIG. 9 is a diagram showing a location from which a small local map is extracted from a current location of a cleaning robot according to an embodiment, and FIG. 10 is a diagram showing an example of a small local map extracted using the small local map extraction location.
두 번째로, 로컬 맵 획득부(153)는 청소 로봇(100)의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 환경 지도(500)로부터 추출할 수 있다.Second, the local
이때, 로컬 맵은 기 설정된 크기에 따라, 소 로컬 맵(Small Local Map)과 소 로컬 맵 보다 넓은 영역인 대 로컬 맵(Large Local Map)으로 구분할 수 있다.In this case, the local map may be divided into a small local map and a large local map, which are wider than the small local map, according to a preset size.
도 9를 참조하면, 로컬 맵 획득부(153)는 청소 로봇(100)의 현재 위치(S)를 중심으로 일정 거리 이내에서 복수의 소 로컬 맵(Small Local Map) 추출 위치(X)들을 지도 상에서 선정한다. Referring to FIG. 9 , the local
도 10을 참조하면, 로컬 맵 획득부(153)는 소 로컬 맵의 가로(W)와 세로(H) 길이를 청소 로봇(100)에 장착된 센서의 최대 감지 거리를 기반으로 결정한다. 각각의 소 로컬 맵 추출 위치(X)를 중심으로 정해진 크기(W x H) 만큼의 로컬 맵을 환경 지도로부터 추출한다. 도 10은 표시된 소 로컬 맵 추출 위치(X)에서 추출된 소 로컬 맵의 예를 나타내는 것이다.Referring to FIG. 10 , the local
대 로컬 맵(Large Local Map)의 추출 방식을 적용할 경우, 로컬 맵 획득부(153)는 청소 로봇(100)의 현재 위치(S)를 대 로컬 맵 추출의 중심으로 하고, 소 로컬 맵 보다 넓은 영역을 환경 지도로부터 추출한다.When the large local map extraction method is applied, the local
프로세서(180)는 로컬 맵과 실 센서 데이터 간의 정합을 수행하여 로컬 맵에 대한 현재 위치의 좌표를 파악하고, 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 현재 위치를 기준으로 주행 방향을 결정할 수 있다. 이때, 현재 위치 좌표는 도 4에서 도시하는 환경 지도에 표시된 기준 좌표계 {W}에 대해 (x, y, θ)로 정의될 수 있다. 상기 x와 y는 기준 좌표계에 대한 위치 좌표이고 θ는 회전 각도이다.The
즉, 프로세서(180)는 청소 로봇(100)의 전반적인 동작을 제어하는 구성으로서, 로컬 맵과 센서 데이터 간의 정합(Matching)을 수행하여 로컬 맵에 대한 청소 로봇(100)의 상대 위치를 인식하고, 청소 로봇(100)의 상대 위치 상에서의 주행 방향을 결정할 수 있다.That is, the
또한, 프로세서(180)는 로컬 맵에 존재하는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정할 수 있다.Also, the
또한, 프로세서(180)는 현재 위치 좌표를 기준으로 결정된 주행 방향을 기초로 청소 로봇(100)의 주행 방향을 제자리 회전 시킬 수 있다.Also, the
도 11을 참조하면, 프로세서(180)는 로컬 맵에 대한 청소 로봇(100)의 현재 위치 좌표를 파악하기 위한 위치 추정부(181), 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하기 위한 선분 각도 산출부(183) 및 청소 로봇(100)이 현재 위치에서 주 선분 각도에 따라 주행 방향을 회전하도록 하는 방향 조정부(185)를 포함할 수 있다.Referring to FIG. 11 , the
도 12는 도 11의 위치 추정부를 상세하게 나타내는 제어 블록도이다.FIG. 12 is a control block diagram showing the position estimation unit of FIG. 11 in detail.
도 12에서 도시하는 바와 같이, 위치 추정부(410)는 대응점 획득부(411), 상대 위치 계산부(413), 유사도 계산부(415) 및 위치 결정부(417)를 포함할 수 있다.As shown in FIG. 12 , the
대응점 획득부(411)는 데이터 획득부(151)에 의해 획득된 실 센서 데이터와 로컬 맵 획득부(153)에 의해 획득된 로컬 맵 간의 데이터 정합을 통해 복수의 대응점(Corresponding Point)을 획득한다. The corresponding
도 13은 일 실시예에 의한 청소 로봇에서 획득한 실 센서 데이터의 예를 나타낸 도면이고, 도 14는 일 실시예에 의한 청소 로봇에서 획득한 가상 센서 데이터의 예를 나타낸 도면이다.FIG. 13 is a diagram illustrating an example of real sensor data obtained from a cleaning robot according to an exemplary embodiment, and FIG. 14 is a diagram illustrating an example of virtual sensor data obtained from a cleaning robot according to an exemplary embodiment.
도 13 및 도 14를 참조하면, 각 센서 데이터는 복수의 데이터 점(Data Point)들로 구성되어 있다. 예를 들어 어떤 점 P가 실 센서 데이터에는 P1, 가상 센서 데이터에는 P2로 포함되어 있으면 P1과 P2는 대응점 관계이다. 2D 센서의 경우 실 센서 데이터를 구성하는 데이터 점들은 청소 로봇(100)의 기준 좌표계에 대해 각각 (x, y)로 정의된다. 가상 센서 데이터를 구성하는 데이터 점들은 환경 지도의 기준 좌표계 {W}(도 4 참조)에 대해 각각 (x, y)로 정의된다.Referring to FIGS. 13 and 14 , each sensor data is composed of a plurality of data points. For example, if a certain point P is included as P1 in real sensor data and P2 in virtual sensor data, P1 and P2 are corresponding points. In the case of a 2D sensor, data points constituting real sensor data are each defined as (x, y) with respect to the reference coordinate system of the
이와 같이, 대응점 획득부(411)는 청소 로봇(100)의 기준 좌표계에 대해 각각 (x, y)로 정의된 실 센서 데이터의 데이터 점들과, 환경 지도의 기준 좌표계에 대해 각각 (x, y)로 정의된 가상 센서 데이터의 복수의 데이터 점을 획득한다.In this way, the corresponding
또한, 대응점 획득부(411)는 획득한 복수의 대응점 중에서 이상점(Outlier)을 제거할 수 있다. 이때, 이상점(Outlier)은 실 센서 데이터와 가상 센서 데이터에 공통으로 포함되어 있지 않은 데이터 점을 의미하는 것으로 정의하기로 한다.In addition, the corresponding
상대 위치 계산부(413)는 대응점 획득부(411)에 의해 획득된 복수의 대응점을 이용하여 로컬 맵에 대한 실 센서 데이터의 상대 위치 즉, 좌표 변환 계수(Coordinates Transformation Parameter, Rotation 및 Translation)를 계산한다.The relative
상대 위치 계산부(413)는 이상점(Outlier)을 제거한 나머지 복수의 대응점(Inlier)을 로컬 맵(Local Map)에 대한 실 센서 데이터의 상대 위치로 계산한다.The relative
이때, 상대 위치는 실 센서 데이터에 속한 복수의 대응점(Inlier)을 로컬 맵(Local Map)에 속한 각각에 대응되는 복수의 대응점(Inlier)으로 맞춤(Fitting)하는 좌표 변환 계수(Coordinates Transformation Parameter, Rotation 및 Translation)를 구하여 얻을 수 있다. 로컬 맵(Local Map)의 각 데이터 점들은 환경 지도의 기준 좌표계에 대해 정의되어 있으므로 실 센서 데이터를 맞춤(Fitting)하는 좌표 변환 계수는 환경 지도에 대한 청소 로봇(100)의 상대 위치를 나타낸다. At this time, the relative position is coordinates transformation coefficient (Coordinates Transformation Parameter, Rotation and Translation) can be obtained by obtaining. Since each data point of the local map is defined with respect to the reference coordinate system of the environment map, the coordinate conversion coefficient for fitting the actual sensor data represents the relative position of the
도 15를 참조하면, {A} 좌표계를 로컬 맵(Local Map)의 기준 좌표계, {B} 좌표계를 센서의 기준 좌표계라고 할 수 있다.Referring to FIG. 15 , the {A} coordinate system may be referred to as the reference coordinate system of the local map, and the {B} coordinate system may be referred to as the reference coordinate system of the sensor.
도 15에서 도시한 바와 같이, 로컬 맵(Local Map)을 이루는 데이터 점들(PA)과 실 센서 데이터의 데이터 점들(PB)이 대응되면, [수학식 1] 로 서로의 관계가 표현될 수 있다.As shown in FIG. 15 , when data points PA constituting a local map and data points PB of real sensor data correspond, a relationship between them can be expressed by [Equation 1].
[수학식 1][Equation 1]
PA = R·PB + t PA = R·PB + t
이때, R과 t는 좌표 변환 계수로, R은 회전 행렬(Rotation Matrix)을 의미하고, t는 전위 벡터(Translation Vector)를 의미한다. In this case, R and t are coordinate conversion coefficients, R means a rotation matrix, and t means a translation vector.
즉, {A} 좌표게를 R에 따라 회전하고 t만큼 이동시키면 {B} 좌표계와 동일하게 된다. 개시된 일 실시예에서는 최소 제곱법(Least squares method)을 이용하여 R과 t를 산출한다.That is, if the {A} coordinate system is rotated according to R and moved by t, it becomes the same as the {B} coordinate system. In the disclosed embodiment, R and t are calculated using the least squares method.
유사도 계산부(415)는 상대 위치 계산부(413)에서 계산된 로컬 맵에 대한 실 센서 데이터의 상대 위치를 이용하여 복수의 로컬 맵과 실 센서 데이터의 유사도를 계산한다. The
도 14에서 도시한 로컬 맵은 이진(Binary) 영상으로 간주할 수 있다. 따라서 디지털 영상 처리 기법 중 팽창 연산(Dilation) 방법을 사용하여 도 16에서 도시한 바와 같이 로컬 맵을 팽창시키고, 팽창된 로컬 맵에 실 센서 데이터를 맞춤(fitting)하여 유사도를 계산한다.The local map shown in FIG. 14 can be regarded as a binary image. Therefore, the local map is dilated as shown in FIG. 16 using the dilation method among digital image processing techniques, and the similarity is calculated by fitting real sensor data to the dilated local map.
도 17에서 도시하는 바와 같이, 로컬 맵과 실 센서 데이터가 서로 맞춤(fitting)이 잘 이루어지면 실 센서 데이터와 팽창된 로컬 맵의 겹치는 부분(Overlap)의 개수가 많아져 유사도는 높게 된다. As shown in FIG. 17 , when the local map and the real sensor data are well-fitted, the number of overlapping parts between the real sensor data and the expanded local map increases, resulting in a high degree of similarity.
이때, 유사도 계산부(415)는 로컬 맵과 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 유사도가 높다고 계산한다.At this time, the
반면, 도 18에서 도시하는 바와 같이, 로컬 맵과 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 도 17에 비해 현저히 적거나 없을 경우 또는 좌표 변환 계수가 잘못 계산되었을 경우에는 로컬 맵과 실 센서 데이터의 유사도는 낮게 된다.On the other hand, as shown in FIG. 18, if the number of data points commonly included in the local map and real sensor data is significantly less or absent than in FIG. 17, or if the coordinate conversion coefficient is incorrectly calculated, the local map and real sensor data The similarity of the data is low.
위치 결정부(417)는 유사도 계산부(415)에서 계산된 유사도를 이용하여 유사도가 가장 큰 로컬 맵에 대한 청소 로봇(100)의 상대 위치를 환경 지도에 대한 청소 로봇(100)의 현재 위치로 결정하여 현재 위치 좌표를 파악한다.The
도 19를 참조하면, 선분 각도 산출부(430)는 직선 획득부(431) 및 주 선분 각도 산출부(433)를 포함할 수 있다.Referring to FIG. 19 , the line segment
직선 획득부(431)는 로컬 맵 획득부(153)에서 획득된 로컬 맵에서 복수 개의 직선을 획득할 수 있다. 이때, 직선 획득부(431)는 허프 변환(Hough Transform)을 이용하여 로컬 맵에서 복수 개의 직선을 획득할 수 있다.The straight
상기 복수 개의 직선은 로컬 맵에서 직선을 이루는 복수 개의 포인트 집합이거나, 또는 로컬 맵 자체를 이루는 복수 개의 포인트 집합일 수 있다.The plurality of straight lines may be a plurality of point sets forming straight lines on the local map or a plurality of point sets forming the local map itself.
보다 상세히 설명하면, 직선 획득부(431)는 로컬 맵에서 추출된 복수의 직선을 이루는 복수의 포인트로 허프 변환을 수행하여 투표 행렬을 계산함에 따라 로컬 맵에 대한 복수 개의 직선을 획득한다. 이때, 투표 행렬의 행과 열은 각각 선분의 각도 및 기준 좌표계 원점으로부터의 거리와 대응된다. 상기 허프 변환에 따라 획득한 복수 개의 직선은 각도를 가진다.More specifically, the straight
주 선분 각도 산출부(433)는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출할 수 있다. The main line segment
보다 상세히 설명하면, 주 선분 각도 산출부(433)는 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하고, 각도 히스토그램의 분포를 고려하여 주 선분 각도를 결정할 수 있다.More specifically, the main line segment
예를 들어, 청소 로봇(100)의 주행 방향을 결정하기 위해서는 선분의 거리는 요구되지 않으므로, 주 선분 각도 산출부(433)는 도 20과 같이 직선 획득부(431)에서 획득한 직선을 각도에 따라 분류하여 각도 히스토그램으로 변환할 수 있다.For example, in order to determine the running direction of the
또한, 주 선분 각도 산출부(433)는 저역 통과 필터를 이용하여 각도 히스토그램의 잡음을 제거하여 로컬 맵의 주 선분 각도를 결정할 수 있다.Also, the main line segment
도 21을 참조하면, 주 선분 각도 산출부(433)는 각도 히스토그램을 저역 통과 필터링(Low Pass Filtering)하고 투표(Vote) 값이 최대인 각도를 로컬 맵의 주 선분 각도로 결정하는 것이다.Referring to FIG. 21 , the main line segment
또한, 주 선분 각도 산출부(433)는 직교하거나 평행하는 직선을 서로 병합하여 각도 히스토그램을 생성할 수 있다.Also, the main line segment
구체적으로, 주 선분 각도 산출부(433)는 미리 설정된 조건에 따라 서로 다른 각도의 직선을 병합할 수 있다. 주 선분 각도 산출부(433)는 서로 직교하는 직선 또는 서로 수평하는 직선을 병합하여 주 선분 각도의 분포의 신뢰도를 향상시킬 수 있다. Specifically, the main line segment
예를 들어, 주 선분 각도 산출부(433)는 서로 평행(180°)하는 직선을 동일한 각도로 분류하거나, 서로 직교(90°)하는 직선을 동일한 각도로 분류할 수 있다. 이와 같이 직교하거나 평행하는 직선을 하나의 각도로 분류하여 주 선분 각도 산출부(433)는 모든 직선을 특정 범위로 분류할 수 있다. For example, the main line segment
주 선분 각도 산출부(433)는 서로 평행하거나 서로 직교하는 직선을 병합하여 주 선분 각도가 -45°에서 +45° 사이에 존재하도록 각도 히스토그램을 생성할 수 있다. 구체적으로, 도 21에 도시된 θL과 θL+90°는 서로 직교한다. 따라서, 주 선분 각도 산출부(433)는 +45°보다 큰 θL+90°를 90°도 이동하여 θL과 함께 분류할 수 있다.The main line segment
한편, 주 선분 각도 산출부(433)는 가장 많은 수의 직선 성분이 분포된 각도를 주 선분 각도로 산출할 수 있다. Meanwhile, the main line segment
도 21을 참조하면, 주 선분 각도 산출부(433)는 가장 많은 수의 직선 성분이 존재하는 θL을 주 선분 각도로 산출하는 것이다. 즉, 주 선분 각도 산출부(433)는 각도 히스토그램을 저역 통과 필터링한 후 투표(Vote)값이 최대인 각도를 주 선분 각도로 결정하는 것이다.Referring to FIG. 21 , the main line
방향 조정부(185)는 청소 로봇(100)의 현재 위치에서 주 선분 각도를 주행 방향으로 결정하고, 결정된 주행 방향으로 청소 로봇(100)을 제자리 회전시킬 수 있다.The
예를 들어, 도 22와 같이, 청소 로봇(100)이 기준 좌표계 {W}에 대한 회전 각도 θR의 방향으로 위치하는 경우, 청소 로봇(100)을 주 선분 각도인 θL과 동일한 방향으로 위치하도록 제자리 회전시키는 것이다.For example, as shown in FIG. 22 , when the cleaning
메모리(160)는 청소 로봇(100)이 주행하는 환경 지도와, 청소 로봇(100)의 동작을 위한 운영 프로그램과 주행 패턴, 주행 과정에서 획득한 청소 로봇(100)의 위치 정보와 장애물 정보 등을 저장할 수 있다.The
또한, 메모리(160)는 청소 로봇(100)의 동작을 제어하기 위한 제어 데이터, 청소 로봇(100)의 동작 제어 중 사용되는 기준 데이터, 청소 로봇(100)이 소정의 동작을 수행하는 중에 발생되는 동작 데이터, 청소 로봇(100)이 소정 동작을 수행하도록 디바이스(200)에 의해 입력된 설정 데이터 등과 같은 사용자 입력 정보가 저장될 수 있다.In addition, the
또한, 메모리(160)는 롬(Read Only Memory; ROM), 피롬(Programmable Read Only Memory; PROM), 이피롬(Erasable Programmed Read Only Memory; EPRM), 플레시 메모리(flash memory)와 같은 비활성 메모리 소자, 램(Random Access Memory; RAM)과 같은 휘발성 메모리 소자 또는 하드디스크(hard disc), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 광 디스크와 같은 저장 매체로 구현될 수 있다. 그러나 메모리(160)는 이에 한정되지 않으며 설계자가 고려할 수 있는 다양한 저장 매체가 사용될 수 있다.In addition, the
입력부(171)는 청소 로봇(100)을 동작시키기 위한 각종 제어 정보를 사용자의 조작을 통해 입력 받을 수 있다.The
디스플레이(173)는 청소 로봇(100)의 주행 방향이 주 선분 각도에 따라 조정 완료됨을 메시지 형태로 출력하기 위한 구성이다. 이때, 디스플레이(173)는 아이콘이나 LED를 이용하여 표시할 수 있다. 디스플레이(173)는 청소 로봇(100)의 주행 방향 조정 완료를 알림에 한정되지 않고, 현재 위치를 파악한 시점에도 현재 위치 파악 알림을 출력하는 것도 가능하다 할 것이다.The
이와 같이, 디스플레이(173)는 아이콘이나 텍스트 표기가 가능한 LCD UI의 경우, 아이콘이나 텍스트로 청소 로봇(100)의 위치 인식 및 주행 방향 조정 상태를 표시하여 사용자가 쉽게 확인할 수 있도록 한다.In this way, in the case of an LCD UI capable of displaying icons or text, the
또한, 디스플레이(173)는 LED UI의 경우, 점등 또는 점멸, 지속 시간 차이를 이용하여 청소 로봇(100)의 주행 방향 조정 상태를 표시하여 사용자가 쉽게 확인할 수 있도록 한다.In addition, in the case of the LED UI, the
이외에도, 디스플레이(173)는 프로세서(180)의 표시 제어 신호에 따라 사용자의 입력 정보와 청소 로봇(100)의 동작 상태를 표시하는 것으로, 청소 로봇(100)으로부터 수신한 각종 정보와 디바이스를 통해 사용자로부터 입력 받은 각종 제어 명령 등을 표시할 수 있다.In addition, the
예컨대, 디스플레이(173)는 시각 설정이나 예약 설정, 직접 제어 명령 입력 시 시각이나 청소 로봇(100)의 속력을 디스플레이하고, 그 외의 경우에는 현재 시각이나 예약 정보, 배터리 잔량, 이동 거리, 이동 경로 등을 디스플레이 할 수 있다.For example, the
또한, 디스플레이(173)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 중에서 적어도 하나를 포함할 수 있다.In addition, the
음향 출력부(175)는 청소 로봇(100)의 주행 방향이 주 선분 각도에 따라 조정 완료됨을 음성 형태로 출력하기 위한 구성이다. 음향 출력부(175)는 청소 로봇(100)의 주행 방향 조정 완료를 알림에 한정되지 않고, 현재 위치를 파악한 시점에도 현재 위치 파악 알림을 출력하는 것도 가능하다 할 것이다.The
또한, 음향 출력부(175)는 프로세서(180)의 음향 제어 신호에 따라 청소 로봇(100)의 동작 상태와 청소 로봇(100)의 주행 방향 조정 상태를 음향(예를 들어, Beep음)으로 출력하는 스피커를 포함할 수 있다. In addition, the
이외에도, 음향 출력부(175)는 디지털화된 전기적 신호를 아날로그화하는 디지털-아날로그 변환기(Digital-to-Analog Convertor: DAC), 디지털-아날로그 변환기에 의하여 아날로그화된 전기적 신호를 증폭하는 증폭기 등을 더 포함할 수 있다.In addition, the
도 24는 일 실시에에 의한 청소 로봇의 제어방법을 설명하기 위한 흐름도이고, 도 25는 도 24의 청소 로봇의 현재 위치 추정 방법을 상세하게 설명하기 위한 흐름도이며, 도 26은 도 24의 선분 각도 추출 방법을 상세하게 설명하기 위한 흐름도이다. 24 is a flowchart for explaining a control method of a cleaning robot according to an embodiment, FIG. 25 is a flowchart for explaining in detail a method for estimating a current position of the cleaning robot of FIG. 24 , and FIG. 26 is a line segment angle of FIG. 24 . It is a flowchart for explaining the extraction method in detail.
도 24를 참조하면, 청소 로봇(100)은 현재 위치 주변을 스캔하여 로컬 맵을 획득할 수 있다(S110).Referring to FIG. 24 , the cleaning
이때, 청소 로봇(100)은 자신이 주행하는 기 저장된 환경 지도를 기초로 현재 위치 주변을 스캔하여 로컬 맵을 획득할 수 있다. 상기 환경 지도는 2차원 격자 지도 또는 3차원 격자 지도일 수 있다.In this case, the cleaning
청소 로봇(100)은 자신의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하거나, 또는 청소 로봇(100)의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출할 수 있다.The cleaning
다음, 청소 로봇(100)은 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하고, 로컬 맵과 실 센서 데이터 간의 정합을 수행하여 로컬 맵에 대한 현재 위치 좌표를 파악할 수 있다(S130).Next, the cleaning
도 24를 참조하면, 청소 로봇(100)은 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득할 수 있다(S131).Referring to FIG. 24 , the cleaning
보다 상세히 설명하면, 청소 로봇(100)은 거리를 측정하기 위한 센서(미도시)를 구비하여, 청소 로봇(100)에 설치된 2D 센서 또는 3D 센서의 스캔에 따라 센서로부터 측정 대상까지의 거리를 측정하여 청소 로봇(100)이 위치한 실제 환경의 실 센서 데이터를 획득하는 것이다. 상기 센서는 2D 센서 또는 3D 센서일 수 있다.More specifically, the cleaning
다음, 청소 로봇(100)은 실 센서 데이터와 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득할 수 있다(S133).Next, the cleaning
예를 들어, 청소 로봇(100)은 기준 좌표계에 대해 각각 (x, y)로 정의된 실 센서 데이터의 데이터 점들과, 환경 지도의 기준 좌표계에 대해 각각 (x, y)로 정의된 가상 센서 데이터의 복수의 데이터 점 간에 대응되는 대응점을 획득하는 것이다.For example, the cleaning
다음, 청소 로봇(100)은 복수의 대응점 중에서 이상점(Outlier)을 제거할 수 있다(S135).Next, the cleaning
다음, 청소 로봇(100)은 획득된 복수의 대응점을 이용하여 로컬 맵에 대한 실 센서 데이터의 상대 위치를 계산할 수 있다(S137).Next, the cleaning
청소 로봇(100)은 복수의 대응점을 이용하여 로컬 맵에 대한 실 센서 데이터의 상대 위치 즉, 좌표 변환 계수(Coordinates Transformation Parameter, Rotation 및 Translation)를 계산하는 것이다.The cleaning
다음, 청소 로봇(100)은 복수의 로컬 맵과 실 센서 데이터의 유사도를 계산할 수 있다(S139).Next, the cleaning
이때, 로컬 맵과 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 유사도가 높은 것을 판단할 수 있다.In this case, it may be determined that the similarity is high as the number of data points commonly included in the local map and the real sensor data increases.
다음, 청소 로봇(100)은 상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 현재 위치를 상기 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정할 수 있다(S141). 이때, 청소 로봇의 현재 위치는 현재 위치 좌표 형태일 수 있다.Next, the cleaning
다음, 청소 로봇(100)은 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 주행 방향을 결정할 수 있다(S150).Next, the cleaning
도 26을 참조하면, 청소 로봇(100)은 로컬 맵에서 복수 개의 직선을 획득할 수 있다(S151, S153).Referring to FIG. 26 , the cleaning
다음, 청소 로봇(100)은 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출할 수 있다(S155).Next, the cleaning
단계 S155는 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하는 단계 및 각도 히스토그램의 분포를 고려하여 주 선분 각도를 결정하는 단계를 포함할 수 있다.Step S155 may include generating an angle histogram by classifying a plurality of straight lines according to angles, and determining main segment angles in consideration of a distribution of the angle histogram.
또한, 단계 S155는 각도 히스토그램에서 직교하거나 평행하는 직선을 서로 병합하는 단계를 더 포함할 수 있다.Also, step S155 may further include merging orthogonal or parallel straight lines in the angle histogram.
다음, 청소 로봇(100)은 산출된 주 선분 각도에 따라 주행 방향을 조정할 수 있다(S170).Next, the cleaning
다음, 청소 로봇(100)은 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정됨을 메시지 형태 또는 음성 형태로 출력할 수 있다(S190).Next, the cleaning
이상 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함이 명백하다.Although the present invention has been described in detail through specific examples, this is for explaining the present invention in detail, the present invention is not limited thereto, and within the technical spirit of the present invention, by those skilled in the art It is clear that modifications and improvements are possible.
본 발명의 단순한 변형 내지 변경은 모두 본 발명의 영역에 속하는 것으로 본 발명의 구체적인 보호 범위는 첨부된 특허청구범위에 의하여 명확해질 것이다.All simple modifications or changes of the present invention fall within the scope of the present invention, and the specific protection scope of the present invention will be clarified by the appended claims.
100 : 청소 로봇 151 : 데이터 획득부
153 : 로컬 맵 획득부 160 : 메모리
171 : 입력부 173 : 디스플레이
175 : 음향 출력부 180 : 프로세서
181, 410 : 위치 추정부 183 : 선분 각도 산출부
185 : 방향 조정부 411 : 대응점 획득부
413 : 상대 위치 계산부 415 : 유사도 계산부
417 : 위치 결정부 430 : 선분 각도 산출부
431 : 직선 획득부 433 : 주 선분 각도 산출부100: cleaning robot 151: data acquisition unit
153: local map acquisition unit 160: memory
171: input unit 173: display
175: sound output unit 180: processor
181, 410: position estimation unit 183: line segment angle calculation unit
185: direction adjustment unit 411: correspondence point acquisition unit
413: relative position calculation unit 415: similarity calculation unit
417: positioning unit 430: line segment angle calculation unit
431: straight line acquisition unit 433: main line segment angle calculation unit
Claims (26)
기 저장된 환경 지도를 기초로 상기 현재 위치 주변을 스캔하여 로컬 맵을 획득하는 로컬 맵 획득부; 및
상기 로컬 맵과 상기 실 센서 데이터 간의 정합을 수행하여 상기 로컬 맵에 대한 상기 현재 위치의 좌표를 파악하고, 상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 상기 현재 위치를 기준으로 주행 방향을 결정하는 프로세서;
를 포함하고,
상기 로컬 맵 획득부는,
청소 로봇의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출하고,
상기 데이터 획득부는,
상기 청소 로봇이 정지된 상태에서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 일정 각도로 회전하면서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 360° 회전하면서 전 방향에 대한 실 센서 데이터를 획득하고,
상기 로컬 맵 획득부는,
상기 청소 로봇의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하는 청소 로봇.
a data acquisition unit that obtains real sensor data by measuring a distance from a current location to a measurement target;
a local map acquisition unit acquiring a local map by scanning the vicinity of the current location based on a pre-stored environment map; and
Matching between the local map and the actual sensor data is performed to determine the coordinates of the current location on the local map, and the angle of a main line segment existing on the local map is calculated to determine the driving direction based on the current location. processor to determine;
including,
The local map acquisition unit,
Extracting a local map having a predetermined size around each of a plurality of local map extraction locations selected around the current location of the cleaning robot from the environment map;
The data acquisition unit,
The real sensor data is acquired while the cleaning robot is stationary, or the real sensor data is obtained while the cleaning robot is rotating at a certain angle in place, or the cleaning robot is rotating 360° in place and moving in all directions. Obtain real sensor data for
The local map acquisition unit,
The cleaning robot obtains the local map by extracting virtual sensor data by performing a ray casting technique in all directions while rotating 360° from a virtual sensor data extraction position selected around the current position of the cleaning robot.
상기 프로세서는,
상기 로컬 맵에 존재하는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정하는 청소 로봇.
According to claim 1,
the processor,
A cleaning robot configured to determine an angle of a main line segment by classifying a plurality of straight lines existing in the local map according to angles.
상기 프로세서는,
상기 현재 위치 좌표를 기준으로 결정된 상기 주행 방향을 기초로 상기 청소 로봇의 주행 방향을 제자리 회전 시키는 청소 로봇.
According to claim 1,
the processor,
The cleaning robot rotates the driving direction of the cleaning robot in place based on the driving direction determined based on the current location coordinates.
상기 프로세서는,
상기 로컬 맵에 대한 청소 로봇의 현재 위치 좌표를 파악하기 위한 위치 추정부;
상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하기 위한 선분 각도 산출부; 및
상기 청소 로봇이 현재 위치에서 상기 주 선분 각도에 따라 주행 방향을 회전하도록 하는 방향 조정부;
를 포함하는 청소 로봇.
According to claim 1,
the processor,
a position estimator for determining the coordinates of the current position of the cleaning robot with respect to the local map;
a line segment angle calculation unit configured to calculate a main line segment angle of a line segment existing in the local map; and
a direction adjuster for allowing the cleaning robot to rotate in a running direction according to an angle of the main line segment at a current location;
A cleaning robot comprising a.
상기 위치 추정부는,
상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 대응점 획득부;
획득된 상기 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 상대 위치 계산부;
복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 유사도 계산부; 및
상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 상대 위치를 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하여 현재 위치 좌표를 파악하는 위치 결정부;
를 포함하는 청소 로봇.
According to claim 7,
The location estimation unit,
a correspondence point acquisition unit acquiring a plurality of correspondence points through data matching between the real sensor data and the local map;
a relative position calculating unit calculating a relative position of the real sensor data with respect to the local map using the obtained plurality of corresponding points;
a similarity calculation unit calculating a similarity between a plurality of local maps and the real sensor data; and
a position determining unit determining a relative position of the cleaning robot with respect to a local map having the greatest similarity as a current position of the cleaning robot with respect to an environment map and identifying current location coordinates;
A cleaning robot comprising a.
상기 유사도 계산부는,
상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높다고 계산하는 청소 로봇.
According to claim 8,
The similarity calculator,
The cleaning robot calculating that the degree of similarity increases as the number of data points commonly included in the local map and the real sensor data increases.
상기 선분 각도 산출부는,
상기 로컬 맵에서 복수 개의 직선을 획득하는 직선 획득부; 및
상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정하는 주 선분 각도 산출부;
를 포함하는 청소 로봇.
According to claim 7,
The line segment angle calculator,
a straight line acquisition unit acquiring a plurality of straight lines from the local map; and
a main line segment angle calculator configured to determine a main line segment angle by classifying the plurality of straight lines according to angles;
A cleaning robot comprising a.
상기 직선 획득부는,
허프 변환(Hough Transform)을 이용하여 상기 로컬 맵에서 상기 복수 개의 직선을 획득하는 청소 로봇.
According to claim 10,
The straight line acquisition unit,
A cleaning robot that acquires the plurality of straight lines in the local map using a Hough Transform.
상기 주 선분 각도 산출부는,
상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하고, 상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정하는 청소 로봇.
According to claim 10,
The main line segment angle calculator,
The cleaning robot classifies the plurality of straight lines according to angles to generate an angle histogram, and determines an angle of the main line segment in consideration of a distribution of the angle histogram.
상기 주 선분 각도 산출부는,
직교하거나 평행하는 직선을 서로 병합하여 상기 각도 히스토그램을 생성하는 청소 로봇.
According to claim 12,
The main line segment angle calculator,
A cleaning robot that generates the angle histogram by merging orthogonal or parallel straight lines with each other.
상기 주 선분 각도 산출부는,
저역 통과 필터를 이용하여 상기 각도 히스토그램의 잡음을 제거하여 상기 로컬 맵의 주 선분 각도를 결정하는 청소 로봇.
According to claim 12,
The main line segment angle calculator,
The cleaning robot determines an angle of a main line segment of the local map by removing noise from the angle histogram using a low-pass filter.
상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 메시지 형태로 출력하기 위한 디스플레이;
를 더 포함하는 청소 로봇.
According to claim 1,
a display for outputting in the form of a message that the driving direction of the cleaning robot has been adjusted according to the angle of the main line;
A cleaning robot further comprising a.
상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 음성 형태로 출력하기 위한 음향 출력부;
를 더 포함하는 청소 로봇.
According to claim 1,
an audio output unit for outputting in the form of a voice that the driving direction of the cleaning robot has been adjusted according to the angle of the main line;
A cleaning robot further comprising a.
거리를 측정하기 위한 센서; 를 더 포함하고,
상기 데이터 획득부는 상기 센서를 이용하여 상기 센서로부터 상기 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 청소 로봇.
According to claim 1,
a sensor for measuring distance; Including more,
The data obtaining unit obtains real sensor data by measuring a distance from the sensor to the measurement target using the sensor.
상기 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 단계;
상기 로컬 맵과 상기 실 센서 데이터 간의 정합을 수행하여 상기 로컬 맵에 대한 현재 위치 좌표를 파악하는 단계;
상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 주행 방향을 결정하는 단계; 및
산출된 상기 주 선분 각도에 따라 주행 방향을 조정하는 단계;
를 포함하고,
상기 실 센서 데이터를 획득하는 단계는,
청소 로봇이 정지된 상태에서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 일정 각도로 회전하면서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 360° 회전하면서 전 방향에 대한 실 센서 데이터를 획득하고,
상기 로컬 맵을 획득하는 단계는,
상기 청소 로봇이 주행하는 기 저장된 환경 지도를 기초로 상기 현재 위치 주변을 스캔하여 상기 로컬 맵을 획득하고,
상기 청소 로봇의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출하고,
상기 청소 로봇의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하는 청소 로봇의 제어방법.
acquiring a local map by scanning around the current location;
acquiring real sensor data by measuring a distance from the current location to a measurement object;
performing matching between the local map and the real sensor data to determine current location coordinates with respect to the local map;
determining a driving direction by calculating an angle of a main line segment of a line segment existing in the local map; and
adjusting a driving direction according to the calculated main line segment angle;
including,
Acquiring the real sensor data,
The real sensor data is acquired while the cleaning robot is stationary, or the real sensor data is obtained while the cleaning robot rotates at a certain angle in place, or the cleaning robot rotates 360° in place and measures data in all directions. Acquiring real sensor data;
The step of obtaining the local map,
Acquiring the local map by scanning the vicinity of the current location based on a pre-stored environment map in which the cleaning robot travels;
Extracting a local map having a predetermined size from the environment map centered on each of a plurality of local map extraction locations selected around the current location of the cleaning robot;
A cleaning robot that obtains the local map by extracting virtual sensor data by performing a ray casting technique in all directions while rotating 360 ° from a virtual sensor data extraction position selected around the current position of the cleaning robot. control method.
상기 환경 지도는 2차원 격자 지도 또는 3차원 격자 지도인 청소 로봇의 제어방법.
According to claim 18,
The method of controlling a cleaning robot in which the environment map is a 2-dimensional grid map or a 3-dimensional grid map.
상기 현재 위치 좌표를 파악하는 단계는,
상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 단계;
상기 획득된 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 단계;
복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 단계; 및
상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 현재 위치를 상기 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하는 단계;
를 포함하는 청소 로봇의 제어방법.
According to claim 18,
The step of determining the current location coordinates,
obtaining a plurality of correspondence points through data matching between the real sensor data and the local map;
calculating a relative position of the real sensor data with respect to the local map using the obtained plurality of corresponding points;
calculating a similarity between a plurality of local maps and the real sensor data; and
determining the current location of the cleaning robot on the local map having the greatest similarity as the current location of the cleaning robot on the environment map;
A control method of a cleaning robot comprising a.
상기 유사도를 계산하는 단계에서,
상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높은 것으로 판단하는 청소 로봇의 제어방법.
The method of claim 22,
In the step of calculating the similarity,
determining that the similarity is higher as the number of data points commonly included in the local map and the real sensor data increases.
상기 주행 방향을 결정하는 단계는,
상기 로컬 맵에서 복수 개의 직선을 획득하는 단계; 및
상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출하는 단계;
를 포함하는 청소 로봇의 제어방법.
According to claim 18,
The step of determining the driving direction is,
obtaining a plurality of straight lines from the local map; and
calculating main segment angles by classifying the plurality of straight lines according to angles;
A control method of a cleaning robot comprising a.
상기 주 선분 각도를 산출하는 단계는,
상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하는 단계; 및
상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정하는 단계;
를 포함하는 청소 로봇의 제어방법.
According to claim 24,
The step of calculating the main line segment angle,
generating an angle histogram by classifying the plurality of straight lines according to angles; and
determining the angle of the main line segment in consideration of the distribution of the angle histogram;
A control method of a cleaning robot comprising a.
상기 주 선분 각도를 산출하는 단계는,
상기 각도 히스토그램에서 직교하거나 평행하는 직선은 서로 병합하는 단계;
를 더 포함하는 청소 로봇의 제어방법.According to claim 25,
The step of calculating the main line segment angle,
merging orthogonal or parallel straight lines in the angle histogram;
A control method of a cleaning robot further comprising a.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150148434A KR102471487B1 (en) | 2015-10-26 | 2015-10-26 | Cleaning robot and controlling method thereof |
EP16176784.3A EP3144765B1 (en) | 2015-09-18 | 2016-06-29 | Apparatus for localizing cleaning robot, cleaning robot, and controlling method of cleaning robot |
US15/203,079 US10663972B2 (en) | 2015-09-18 | 2016-07-06 | Apparatus for localizing cleaning robot, cleaning robot, and controlling method of cleaning robot |
CN201610773063.XA CN106541407B (en) | 2015-09-18 | 2016-08-30 | Cleaning robot and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150148434A KR102471487B1 (en) | 2015-10-26 | 2015-10-26 | Cleaning robot and controlling method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170047850A KR20170047850A (en) | 2017-05-08 |
KR102471487B1 true KR102471487B1 (en) | 2022-11-28 |
Family
ID=60164405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150148434A KR102471487B1 (en) | 2015-09-18 | 2015-10-26 | Cleaning robot and controlling method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102471487B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102385611B1 (en) * | 2019-12-06 | 2022-04-12 | 엘지전자 주식회사 | Moving robot system and method for generating boundary information of the same |
KR102592732B1 (en) * | 2021-12-30 | 2023-10-25 | 인천대학교 산학협력단 | Electric Wheelchair Based on Joystick Input with Obstacle Collision Avoidance Function |
KR102486826B1 (en) * | 2022-03-10 | 2023-01-10 | 이상훈 | Immersive video display device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960000284B1 (en) * | 1993-08-25 | 1996-01-04 | 장석천 | Roll forming apparatus |
KR100843085B1 (en) * | 2006-06-20 | 2008-07-02 | 삼성전자주식회사 | Method of building gridmap in mobile robot and method of cell decomposition using it |
KR101054520B1 (en) * | 2009-09-02 | 2011-08-05 | 한국과학기술원 | How to recognize the location and direction of the indoor mobile robot |
KR102096398B1 (en) * | 2013-07-03 | 2020-04-03 | 삼성전자주식회사 | Method for recognizing position of autonomous mobile robot |
-
2015
- 2015-10-26 KR KR1020150148434A patent/KR102471487B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20170047850A (en) | 2017-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10663972B2 (en) | Apparatus for localizing cleaning robot, cleaning robot, and controlling method of cleaning robot | |
CN108290294B (en) | Mobile robot and control method thereof | |
CN110522359B (en) | Cleaning robot and control method of cleaning robot | |
US20240118700A1 (en) | Mobile robot and control method of mobile robot | |
EP3863813B1 (en) | Cleaning robot and method of performing task thereof | |
KR102032070B1 (en) | System and Method for Depth Map Sampling | |
US10921820B2 (en) | Movable object and control method thereof | |
US8265425B2 (en) | Rectangular table detection using hybrid RGB and depth camera sensors | |
KR102457222B1 (en) | Mobile robot and method thereof | |
CN110072673B (en) | Robot for tracking human and method thereof | |
US10860033B2 (en) | Movable object and method for controlling the same | |
US20150185322A1 (en) | Robot positioning system | |
CN113168180B (en) | Mobile device and object detection method thereof | |
KR102386361B1 (en) | Apparatus for localization of mobile robot and method thereof | |
KR20130029852A (en) | Cleaning robot for enabling set up data of cleaning area and verification of after cleaning real cleaning area and system for controlling the same | |
KR102471487B1 (en) | Cleaning robot and controlling method thereof | |
WO2016067640A1 (en) | Autonomous moving device | |
US20240335080A1 (en) | Mobile robot | |
WO2016056628A1 (en) | Image recognition processing device and program | |
CN112405549B (en) | Robot positioning method and device | |
KR20230029427A (en) | Cleaning robot and method for identifying a position of the cleaning robot | |
CN116051347A (en) | Drop zone detection method, self-mobile device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |