KR102471487B1 - Cleaning robot and controlling method thereof - Google Patents

Cleaning robot and controlling method thereof Download PDF

Info

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
Application number
KR1020150148434A
Other languages
Korean (ko)
Other versions
KR20170047850A (en
Inventor
박순용
곽노산
노경식
윤석준
이소희
최민용
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150148434A priority Critical patent/KR102471487B1/en
Priority to EP16176784.3A priority patent/EP3144765B1/en
Priority to US15/203,079 priority patent/US10663972B2/en
Priority to CN201610773063.XA priority patent/CN106541407B/en
Publication of KR20170047850A publication Critical patent/KR20170047850A/en
Application granted granted Critical
Publication of KR102471487B1 publication Critical patent/KR102471487B1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details 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/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation 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/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details 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/009Carrying-vehicles; Arrangements of trollies or wheels; Means for avoiding mechanical obstacles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • B25J11/0085Cleaning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic 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

청소 로봇 및 그 제어방법{CLEANING ROBOT AND CONTROLLING METHOD THEREOF}Cleaning robot and its control method {CLEANING ROBOT AND CONTROLLING METHOD THEREOF}

청소 로봇 및 그 제어방법에 관한 것이다.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 robot system 1 includes a cleaning robot 100 that autonomously moves in a certain area while performing tasks, and a device that is separated from the cleaning robot 100 and controls the cleaning robot 100 remotely. 200 and a charging station 300 that is separated from the cleaning robot 100 and charges battery power of the cleaning robot 100 .

청소 로봇(100)은 디바이스(200)의 제어 명령을 전달받아 제어 명령에 대응하는 동작을 수행하는 장치로, 충전 가능한 배터리를 구비하고, 주행 중 장애물을 피할 수 있는 장애물 센서를 구비하여 작업 영역을 자율적으로 주행하며 작업할 수 있다.The cleaning robot 100 is a device that receives a control command from the device 200 and performs an operation corresponding to the control command, has a rechargeable battery, and has an obstacle sensor capable of avoiding obstacles while driving to clean a work area. It can drive and work autonomously.

또한, 청소 로봇(100)은 카메라나 각종 센서들을 통해 주변 환경에 대한 사전 정보 없이 자신의 위치를 인식하고, 환경에 대한 정보로부터 지도를 작성하는 위치 인식(Localization)과 지도 작성(Map-building)의 과정을 수행할 수 있다. In addition, the cleaning robot 100 recognizes its location without prior information on the surrounding environment through a camera or various sensors, and performs localization and map-building to create a map from information on the environment. process can be performed.

디바이스(200)는 청소 로봇(100)의 이동을 제어하거나 청소 로봇(100)의 작업을 수행하기 위한 제어 명령을 무선으로 송신하는 원격 제어 장치로, 휴대폰, 스마트 폰(smart phone), 휴대 단말기(Personal Digital Assistants: PDA), 휴대용 멀티미디어 플레이어(Portable Multimedia Player: PMP), 노트북 컴퓨터(laptop computer), 디지털 방송용 단말기, 넷북, 태블릿, 내비게이션(Navigation) 등을 포함할 수 있다. The device 200 is a remote control device that wirelessly transmits control commands for controlling the movement of the cleaning robot 100 or performing tasks of the cleaning robot 100, such as a mobile phone, a smart phone, or a portable terminal ( It may include personal digital assistants (PDAs), portable multimedia players (PMPs), laptop computers, digital broadcasting terminals, netbooks, tablets, navigation devices, and the like.

이외에도, 디바이스(200)는 유무선 통신 기능이 내장된 디지털 카메라, 캠코더 등과 같이 여러 응용 프로그램을 이용한 다양한 기능의 구현이 가능한 모든 장치를 포함한다.In addition, the device 200 includes all devices capable of implementing various functions using various application programs, such as a digital camera and a camcorder having a built-in wired/wireless communication function.

또한, 디바이스(200)는 간단한 형태의 일반적인 리모컨일 수 있다. 리모컨은 일반적으로 적외선 통신(IrDA, infrared Data Association)을 이용하여 청소 로봇(100)과 신호를 송수신할 수 있다. Also, the device 200 may be a general remote control in a simple form. The remote controller may transmit/receive signals with the cleaning robot 100 using infrared data association (IrDA).

또한, 디바이스(200)는 RF(Radio Frequency), 와이파이(Wireless Fidelity, Wi-Fi), 블루투스(Bluetooth), 지그비(Zigbee), 엔에프씨(near field communication: NFC), 초광대역(Ultra Wide Band: UWB) 통신 등 다양한 방식을 이용하여 청소 로봇(100)과 무선 통신 신호를 송수신할 수 있으며, 디바이스(200)와 청소 로봇(100)이 무선 통신 신호를 주고 받을 수 있는 것이면, 어느 방식을 사용하여도 무방하다.In addition, the device 200 includes Radio Frequency (RF), Wireless Fidelity (Wi-Fi), Bluetooth, Zigbee, near field communication (NFC), Ultra Wide Band: Wireless communication signals can be transmitted and received with the cleaning robot 100 using various methods such as UWB) communication, and if the device 200 and the cleaning robot 100 can transmit and receive wireless communication signals, which method is used? also free

또한, 디바이스(200)는 청소 로봇(100)의 전원을 온 및 오프 제어하기 위한 전원 버튼과, 청소 로봇(100)의 배터리 충전을 위해 충전 스테이션(300)으로 복귀하도록 지시하기 위한 충전 복귀 버튼과, 청소 로봇(100)의 제어 모드를 변경하기 위한 모드 버튼과, 청소 로봇(100)의 동작을 시작 및 정지하거나 제어 명령의 개시, 취소 및 확인을 위한 시작 및 정지 버튼과, 다이얼 등을 포함할 수 있다.In addition, the device 200 includes a power button for controlling the power of the cleaning robot 100 on and off, a charging return button for instructing the cleaning robot 100 to return to the charging station 300 to charge the battery, and , a mode button for changing the control mode of the cleaning robot 100, a start and stop button for starting and stopping the operation of the cleaning robot 100 or starting, canceling, and confirming control commands, and a dial. can

충전 스테이션(300)은 청소 로봇(100)의 배터리 충전을 위한 구성으로, 청소 로봇(100)이 도킹되는 것을 안내하는 가이드 부재(미도시)가 마련되어 있고, 가이드 부재(미도시)에는 청소 로봇(100)에 구비된 전원부(130, 도 2 참조)를 충전시키기 위해 접속 단자(미도시)가 마련되어 있다.The charging station 300 is configured to charge the battery of the cleaning robot 100, and a guide member (not shown) guiding the docking of the cleaning robot 100 is provided, and the guide member (not shown) includes a cleaning robot (not shown). A connection terminal (not shown) is provided to charge the power supply unit 130 (see FIG. 2) provided in 100).

도 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 robot 100 supplies a main body 110 forming an exterior, a cover 120 covering the top of the main body 110, and driving power for driving the main body 110. It includes a power supply unit 130 and a driving unit 140 for moving the main body 110.

본체(110)는 청소 로봇(100)의 외관을 형성하는 한편, 그 내부에 설치되는 각종 부품들을 지지한다.The main body 110 forms the exterior of the cleaning robot 100 and supports various parts installed therein.

전원부(130)는 구동부(140) 및 그 외 본체(110)를 구동시키기 위한 각 부하와 전기적으로 연결되어 구동 전원을 공급하는 배터리를 포함한다. 배터리는 재충전이 가능한 2차 배터리로 마련되며, 본체(110)가 작업을 완료하고 충전 스테이션(300)에 결합된 경우 충전 스테이션(300)으로부터 전력을 공급받아 충전된다.The power supply unit 130 includes a battery that is electrically connected to the driving unit 140 and other loads for driving the main body 110 to supply driving power. The battery is provided as a rechargeable secondary battery, and is charged by receiving power from the charging station 300 when the main body 110 completes work and is coupled to the charging station 300 .

또한, 전원부(130)는 충전 잔량이 부족하면 충전 스테이션(300)으로부터 충전 전류를 공급받아 충전된다.In addition, the power supply unit 130 is charged by receiving charging current from the charging station 300 when the remaining charge amount is insufficient.

또한, 본체(110)의 전방에는 청소 로봇(100)이 이동하는 바닥 면의 상태에 따라 회전하는 각도가 변화하는 캐스터 휠(미도시)이 설치될 수 있다. 캐스터 휠은 청소 로봇(100)의 자세 안정 및 추락 방지 등에 활용되어 청소 로봇(100)을 지지하며, 롤러나 캐스터 형상의 휠로 구성된다.In addition, a caster wheel (not shown) may be installed in front of the main body 110 to change a rotating angle according to the state of the floor on which the cleaning robot 100 moves. The caster wheel supports the cleaning robot 100 by being used to stabilize the posture of the cleaning robot 100 and prevent falling, and is composed of rollers or caster-shaped wheels.

구동부(140)는 본체(110)의 중앙부 양측에 각각 마련되어 본체(110)가 주행하는 과정에서 전진, 후진 및 회전주행 등의 이동 동작이 가능하도록 한다. The driving unit 140 is provided on both sides of the central portion of the main body 110 to enable movement operations such as forward, backward and rotational driving while the main body 110 travels.

구동부(140)는 후술하는 프로세서(180, 도 3 참조)의 명령에 따라 전진 또는 후진 방향으로 각각 회전하여 청소 로봇(100)이 전진 또는 후진하거나 회전할 수 있도록 한다. 예를 들면, 구동부(140)를 전진 또는 후진 방향으로 회전시켜 청소 로봇(100)이 전진 또는 후진 주행하도록 한다. 또한 좌측 구동부(140)를 후진 방향으로 회전시키는 동안 우측 구동부(140)를 전진 방향으로 회전시켜 청소 로봇(100)이 전방을 기준으로 좌측 방향으로 회전하도록 하고, 우측 구동부(140)를 후진 방향으로 회전시키는 동안 좌측 구동부(140)를 전진 방향으로 회전시켜 청소 로봇(100)이 전방을 기준으로 우측 방향으로 회전하도록 한다.The driving unit 140 rotates in a forward or backward direction, respectively, according to a command of a processor 180 (see FIG. 3 ) to be described later, so that the cleaning robot 100 can move forward, backward, or rotate. For example, by rotating the driving unit 140 in a forward or backward direction, the cleaning robot 100 travels forward or backward. In addition, while rotating the left driving unit 140 in the backward direction, the right driving unit 140 is rotated in the forward direction so that the cleaning robot 100 rotates in the left direction based on the front, and the right driving unit 140 is rotated in the backward direction. While rotating, the left drive unit 140 is rotated in a forward direction so that the cleaning robot 100 rotates in a right direction with respect to the front.

도 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 robot 100 includes a data acquisition unit 151, a local map acquisition unit 153, a memory 160, an input unit 171, and a display 173 in addition to the components shown in FIG. 2 . ), an audio output unit 175 and a processor 180.

데이터 획득부(151)는 청소 로봇(100)이 현재 위치하고 있는 공간의 실 센서 데이터를 획득하는 구성으로, 청소 로봇(100)의 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득할 수 있다.The data acquisition unit 151 is a component that acquires real sensor data of the space where the cleaning robot 100 is currently located, and acquires real sensor data by measuring the distance from the current location of the cleaning robot 100 to the measurement target. can

보다 상세히 설명하면, 청소 로봇(100)은 거리를 측정하기 위한 센서(미도시)를 구비하여, 청소 로봇(100)에 설치된 2D 센서 또는 3D 센서의 스캔에 따라 센서로부터 측정 대상까지의 거리를 측정하여 청소 로봇(100)이 위치한 실제 환경의 실 센서 데이터를 획득하는 것이다. 상기 센서는 2D 센서 또는 3D 센서일 수 있다.More specifically, the cleaning robot 100 includes a sensor (not shown) for measuring a distance, and measures the distance from the sensor to the measurement object according to the scan of the 2D sensor or 3D sensor installed in the cleaning robot 100. This is to acquire real sensor data of a real environment where the cleaning robot 100 is located. The sensor may be a 2D sensor or a 3D sensor.

이때, 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 data acquisition unit 151 may change the actual sensor data acquisition method of the cleaning robot 100 according to the field of view (FoV) of the 2D sensor or the 3D sensor. When the field of view of the sensor is sufficiently secured, the cleaning robot 100 acquires real sensor data in a stationary state. Alternatively, real sensor data is acquired while rotating at a certain angle in place, or real sensor data for all directions is obtained while rotating 360° in place.

이때, 청소 로봇(100)이 제자리에서 일정 각도로 회전하면서 실 센서 데이터를 획득할 때, 센서의 시야 밖의 실 센서 데이터를 획득할 수 있다.In this case, when the cleaning robot 100 acquires real sensor data while rotating at a certain angle in place, real sensor data outside the field of view of the sensor may be acquired.

로컬 맵 획득부(153)는 기 저장된 환경 지도를 기초로 현재 위치 주변을 스캔하여 로컬 맵을 획득할 수 있다.The local map acquisition unit 153 may obtain a local map by scanning the vicinity of the current location based on a pre-stored environment map.

보다 상세히 설명하면, 로컬 맵 획득부(153)는 메모리(160)에 저장된 환경 지도를 기반으로 하여 추출되는 가상 센서 데이터를 이용하여 청소 로봇(100)의 현재 위치 주변의 로컬 맵(Local Map; 국지적 지도)을 획득한다.More specifically, the local map acquisition unit 153 uses virtual sensor data extracted based on the environment map stored in the memory 160 to obtain a local map around the current location of the cleaning robot 100. get a map).

이때, 청소 로봇이 동작하는 환경 지도는 도 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 environmental map 500 in which the cleaning robot 100 operates is given in advance. As shown in FIG. 4 , the shape of the environment map 500 may be a 2-dimensional grid map or a 3-dimensional grid map. A grid map is a map in which the surrounding environment of the cleaning robot 100 is divided into small grids and probabilistically expresses the probability that an object is present in each grid, and is also referred to as a probability grid map.

이하에서는 청소 로봇(100)이 환경 지도(500) 내 I 지역에 위치하는 경우를 예로 들어 설명하기로 한다.Hereinafter, a case where the cleaning robot 100 is located in region I in the environment map 500 will be described as an example.

개시된 발명에서는 로컬 맵 획득의 실시 예로서 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 map acquisition unit 153 may obtain a local map through a method of extracting virtual sensor data.

로컬 맵 획득부(153)는 청소 로봇(100)이 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 로컬 맵을 획득할 수 있다.The local map acquisition unit 153 extracts virtual sensor data by performing a ray casting technique in all directions while the cleaning robot 100 rotates 360 ° at the virtual sensor data extraction location selected with the current location as the center. to obtain a local map.

도 5에 도시한 바와 같이, 청소 로봇(100)은 현재 위치(S)를 중심으로 일정 거리 이내에서 복수의 가상 센서 데이터 추출 위치(X)들을 지도 상에서 선정한다.As shown in FIG. 5 , the cleaning robot 100 selects a plurality of virtual sensor data extraction locations (X) on a map within a predetermined distance from the current location (S).

가상 센서 데이터 추출 위치(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 cleaning robot 100 as the center, and the end of a point having a radius R is determined as the extraction position (X) (see FIG. 6 ).

도 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 map acquisition unit 153 extracts a local map having a preset size around each of a plurality of local map extraction locations selected around the current location of the cleaning robot 100 from the environment map 500. can

이때, 로컬 맵은 기 설정된 크기에 따라, 소 로컬 맵(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 map acquisition unit 153 locates a plurality of small local map extraction locations (X) on the map within a predetermined distance centered on the current location (S) of the cleaning robot 100. select

도 10을 참조하면, 로컬 맵 획득부(153)는 소 로컬 맵의 가로(W)와 세로(H) 길이를 청소 로봇(100)에 장착된 센서의 최대 감지 거리를 기반으로 결정한다. 각각의 소 로컬 맵 추출 위치(X)를 중심으로 정해진 크기(W x H) 만큼의 로컬 맵을 환경 지도로부터 추출한다. 도 10은 표시된 소 로컬 맵 추출 위치(X)에서 추출된 소 로컬 맵의 예를 나타내는 것이다.Referring to FIG. 10 , the local map acquisition unit 153 determines the horizontal (W) and vertical (H) lengths of the small local map based on the maximum detection distance of the sensor mounted on the cleaning robot 100. A local map of a predetermined size (W x H) centered on each small local map extraction position (X) is extracted from the environment map. 10 shows an example of a small local map extracted from the displayed small local map extraction position (X).

대 로컬 맵(Large Local Map)의 추출 방식을 적용할 경우, 로컬 맵 획득부(153)는 청소 로봇(100)의 현재 위치(S)를 대 로컬 맵 추출의 중심으로 하고, 소 로컬 맵 보다 넓은 영역을 환경 지도로부터 추출한다.When the large local map extraction method is applied, the local map acquisition unit 153 sets the current location S of the cleaning robot 100 as the center of the large local map extraction and is wider than the small local map. Areas are extracted from the environment map.

프로세서(180)는 로컬 맵과 실 센서 데이터 간의 정합을 수행하여 로컬 맵에 대한 현재 위치의 좌표를 파악하고, 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 현재 위치를 기준으로 주행 방향을 결정할 수 있다. 이때, 현재 위치 좌표는 도 4에서 도시하는 환경 지도에 표시된 기준 좌표계 {W}에 대해 (x, y, θ)로 정의될 수 있다. 상기 x와 y는 기준 좌표계에 대한 위치 좌표이고 θ는 회전 각도이다.The processor 180 performs matching between the local map and actual sensor data to determine the coordinates of the current position on the local map, calculates the angle of the main line segment of the line segment existing on the local map, and determines the driving direction based on the current position. can At this time, the current location coordinates may be defined as (x, y, θ) with respect to the reference coordinate system {W} displayed on the environment map shown in FIG. 4 . The x and y are position coordinates with respect to the reference coordinate system and θ is a rotation angle.

즉, 프로세서(180)는 청소 로봇(100)의 전반적인 동작을 제어하는 구성으로서, 로컬 맵과 센서 데이터 간의 정합(Matching)을 수행하여 로컬 맵에 대한 청소 로봇(100)의 상대 위치를 인식하고, 청소 로봇(100)의 상대 위치 상에서의 주행 방향을 결정할 수 있다.That is, the processor 180 is a component that controls the overall operation of the cleaning robot 100, recognizes the relative position of the cleaning robot 100 with respect to the local map by performing matching between the local map and sensor data, A travel direction of the cleaning robot 100 in a relative position may be determined.

또한, 프로세서(180)는 로컬 맵에 존재하는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정할 수 있다.Also, the processor 180 may classify a plurality of straight lines existing in the local map according to angles to determine main line segment angles.

또한, 프로세서(180)는 현재 위치 좌표를 기준으로 결정된 주행 방향을 기초로 청소 로봇(100)의 주행 방향을 제자리 회전 시킬 수 있다.Also, the processor 180 may rotate the driving direction of the cleaning robot 100 in place based on the driving direction determined based on the current location coordinates.

도 11을 참조하면, 프로세서(180)는 로컬 맵에 대한 청소 로봇(100)의 현재 위치 좌표를 파악하기 위한 위치 추정부(181), 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하기 위한 선분 각도 산출부(183) 및 청소 로봇(100)이 현재 위치에서 주 선분 각도에 따라 주행 방향을 회전하도록 하는 방향 조정부(185)를 포함할 수 있다.Referring to FIG. 11 , the processor 180 includes a position estimator 181 for determining the coordinates of the current position of the cleaning robot 100 on a local map, and a line segment for calculating angles of main segments existing on the local map. It may include an angle calculation unit 183 and a direction adjustment unit 185 that allows the cleaning robot 100 to rotate its running direction according to the angle of the main line at its current position.

도 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 position estimating unit 410 may include a corresponding point obtaining unit 411 , a relative position calculating unit 413 , a similarity calculating unit 415 and a position determining unit 417 .

대응점 획득부(411)는 데이터 획득부(151)에 의해 획득된 실 센서 데이터와 로컬 맵 획득부(153)에 의해 획득된 로컬 맵 간의 데이터 정합을 통해 복수의 대응점(Corresponding Point)을 획득한다. The corresponding point acquisition unit 411 acquires a plurality of corresponding points through data matching between the real sensor data acquired by the data acquisition unit 151 and the local map acquired by the local map acquisition unit 153.

도 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 cleaning robot 100 . Data points constituting the virtual sensor data are each defined as (x, y) with respect to the reference coordinate system {W} (see FIG. 4) of the environment map.

이와 같이, 대응점 획득부(411)는 청소 로봇(100)의 기준 좌표계에 대해 각각 (x, y)로 정의된 실 센서 데이터의 데이터 점들과, 환경 지도의 기준 좌표계에 대해 각각 (x, y)로 정의된 가상 센서 데이터의 복수의 데이터 점을 획득한다.In this way, the corresponding point acquisition unit 411 obtains data points of real sensor data defined as (x, y) with respect to the reference coordinate system of the cleaning robot 100 and (x, y) with respect to the reference coordinate system of the environment map, respectively. Acquire a plurality of data points of virtual sensor data defined by

또한, 대응점 획득부(411)는 획득한 복수의 대응점 중에서 이상점(Outlier)을 제거할 수 있다. 이때, 이상점(Outlier)은 실 센서 데이터와 가상 센서 데이터에 공통으로 포함되어 있지 않은 데이터 점을 의미하는 것으로 정의하기로 한다.In addition, the corresponding point acquisition unit 411 may remove outliers from among the obtained plurality of corresponding points. In this case, the outlier is defined as a data point that is not commonly included in real sensor data and virtual sensor data.

상대 위치 계산부(413)는 대응점 획득부(411)에 의해 획득된 복수의 대응점을 이용하여 로컬 맵에 대한 실 센서 데이터의 상대 위치 즉, 좌표 변환 계수(Coordinates Transformation Parameter, Rotation 및 Translation)를 계산한다.The relative position calculation unit 413 calculates the relative position of the real sensor data with respect to the local map, that is, coordinates transformation parameters (Coordinates Transformation Parameter, Rotation and Translation), using the plurality of corresponding points obtained by the corresponding point acquisition unit 411 do.

상대 위치 계산부(413)는 이상점(Outlier)을 제거한 나머지 복수의 대응점(Inlier)을 로컬 맵(Local Map)에 대한 실 센서 데이터의 상대 위치로 계산한다.The relative position calculating unit 413 calculates the remaining corresponding points (Inliers) after removing the outliers as relative positions of real sensor data with respect to the local map.

이때, 상대 위치는 실 센서 데이터에 속한 복수의 대응점(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 cleaning robot 100 with respect to the environment map.

도 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 similarity calculating unit 415 calculates the similarity between the plurality of local maps and the real sensor data by using the relative positions of the real sensor data with respect to the local map calculated by the relative position calculating unit 413 .

도 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 similarity calculation unit 415 calculates that the similarity is high as the number of data points commonly included in the local map and the real sensor data increases.

반면, 도 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 location determination unit 417 converts the relative position of the cleaning robot 100 to the local map having the greatest similarity to the current location of the cleaning robot 100 to the environment map using the similarity calculated by the similarity calculation unit 415. Determine the coordinates of the current location.

도 19를 참조하면, 선분 각도 산출부(430)는 직선 획득부(431) 및 주 선분 각도 산출부(433)를 포함할 수 있다.Referring to FIG. 19 , the line segment angle calculation unit 430 may include a straight line acquisition unit 431 and a main line segment angle calculation unit 433 .

직선 획득부(431)는 로컬 맵 획득부(153)에서 획득된 로컬 맵에서 복수 개의 직선을 획득할 수 있다. 이때, 직선 획득부(431)는 허프 변환(Hough Transform)을 이용하여 로컬 맵에서 복수 개의 직선을 획득할 수 있다.The straight line acquisition unit 431 may obtain a plurality of straight lines from the local map acquired by the local map acquisition unit 153 . In this case, the straight line acquisition unit 431 may acquire a plurality of straight lines from the local map using Hough Transform.

상기 복수 개의 직선은 로컬 맵에서 직선을 이루는 복수 개의 포인트 집합이거나, 또는 로컬 맵 자체를 이루는 복수 개의 포인트 집합일 수 있다.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 line acquisition unit 431 obtains a plurality of straight lines for the local map by calculating a voting matrix by performing a Hough transform on a plurality of points constituting the plurality of straight lines extracted from the local map. At this time, each row and column of the voting matrix corresponds to the angle of the line segment and the distance from the origin of the reference coordinate system. A plurality of straight lines obtained according to the Hough transform have angles.

주 선분 각도 산출부(433)는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출할 수 있다. The main line segment angle calculation unit 433 may calculate the main line segment angle by classifying a plurality of straight lines according to angles.

보다 상세히 설명하면, 주 선분 각도 산출부(433)는 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하고, 각도 히스토그램의 분포를 고려하여 주 선분 각도를 결정할 수 있다.More specifically, the main line segment angle calculating unit 433 may classify a 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.

예를 들어, 청소 로봇(100)의 주행 방향을 결정하기 위해서는 선분의 거리는 요구되지 않으므로, 주 선분 각도 산출부(433)는 도 20과 같이 직선 획득부(431)에서 획득한 직선을 각도에 따라 분류하여 각도 히스토그램으로 변환할 수 있다.For example, in order to determine the running direction of the cleaning robot 100, since the distance of the line segment is not required, the main line segment angle calculation unit 433 converts the straight line obtained by the straight line acquisition unit 431 according to the angle as shown in FIG. 20. It can be classified and converted into an angular histogram.

또한, 주 선분 각도 산출부(433)는 저역 통과 필터를 이용하여 각도 히스토그램의 잡음을 제거하여 로컬 맵의 주 선분 각도를 결정할 수 있다.Also, the main line segment angle calculation unit 433 may determine the main line segment angle of the local map by removing noise from the angle histogram using a low-pass filter.

도 21을 참조하면, 주 선분 각도 산출부(433)는 각도 히스토그램을 저역 통과 필터링(Low Pass Filtering)하고 투표(Vote) 값이 최대인 각도를 로컬 맵의 주 선분 각도로 결정하는 것이다.Referring to FIG. 21 , the main line segment angle calculation unit 433 performs low pass filtering on the angle histogram and determines an angle having a maximum vote value as the main line segment angle of the local map.

또한, 주 선분 각도 산출부(433)는 직교하거나 평행하는 직선을 서로 병합하여 각도 히스토그램을 생성할 수 있다.Also, the main line segment angle calculation unit 433 may generate an angle histogram by merging orthogonal or parallel straight lines with each other.

구체적으로, 주 선분 각도 산출부(433)는 미리 설정된 조건에 따라 서로 다른 각도의 직선을 병합할 수 있다. 주 선분 각도 산출부(433)는 서로 직교하는 직선 또는 서로 수평하는 직선을 병합하여 주 선분 각도의 분포의 신뢰도를 향상시킬 수 있다. Specifically, the main line segment angle calculation unit 433 may merge straight lines having different angles according to a preset condition. The main line segment angle calculation unit 433 may improve the reliability of the distribution of the main line segment angles by merging straight lines orthogonal to each other or straight lines that are horizontal to each other.

예를 들어, 주 선분 각도 산출부(433)는 서로 평행(180°)하는 직선을 동일한 각도로 분류하거나, 서로 직교(90°)하는 직선을 동일한 각도로 분류할 수 있다. 이와 같이 직교하거나 평행하는 직선을 하나의 각도로 분류하여 주 선분 각도 산출부(433)는 모든 직선을 특정 범위로 분류할 수 있다. For example, the main line segment angle calculation unit 433 may classify straight lines parallel to each other (180°) as the same angle, or classify straight lines perpendicular to each other (90°) as the same angle. By classifying orthogonal or parallel straight lines as one angle, the main line segment angle calculation unit 433 can classify all straight lines into a specific range.

주 선분 각도 산출부(433)는 서로 평행하거나 서로 직교하는 직선을 병합하여 주 선분 각도가 -45°에서 +45° 사이에 존재하도록 각도 히스토그램을 생성할 수 있다. 구체적으로, 도 21에 도시된 θL과 θL+90°는 서로 직교한다. 따라서, 주 선분 각도 산출부(433)는 +45°보다 큰 θL+90°를 90°도 이동하여 θL과 함께 분류할 수 있다.The main line segment angle calculation unit 433 may generate an angle histogram by merging straight lines parallel to each other or orthogonal to each other so that the main line segment angles exist between -45° and +45°. Specifically, θL and θL+90° shown in FIG. 21 are orthogonal to each other. Therefore, the main line segment angle calculating unit 433 may move θL+90° greater than +45° by 90° and classify it together with θL.

한편, 주 선분 각도 산출부(433)는 가장 많은 수의 직선 성분이 분포된 각도를 주 선분 각도로 산출할 수 있다. Meanwhile, the main line segment angle calculation unit 433 may calculate an angle at which the largest number of linear components are distributed as the main line segment angle.

도 21을 참조하면, 주 선분 각도 산출부(433)는 가장 많은 수의 직선 성분이 존재하는 θL을 주 선분 각도로 산출하는 것이다. 즉, 주 선분 각도 산출부(433)는 각도 히스토그램을 저역 통과 필터링한 후 투표(Vote)값이 최대인 각도를 주 선분 각도로 결정하는 것이다.Referring to FIG. 21 , the main line segment angle calculator 433 calculates θL where the largest number of linear components exist as the main line segment angle. That is, the main line segment angle calculation unit 433 low-pass filters the angle histogram and determines an angle having the largest vote value as the main line segment angle.

방향 조정부(185)는 청소 로봇(100)의 현재 위치에서 주 선분 각도를 주행 방향으로 결정하고, 결정된 주행 방향으로 청소 로봇(100)을 제자리 회전시킬 수 있다.The direction adjuster 185 may determine an angle of a main line in the current position of the cleaning robot 100 as a driving direction, and may rotate the cleaning robot 100 in place in the determined driving direction.

예를 들어, 도 22와 같이, 청소 로봇(100)이 기준 좌표계 {W}에 대한 회전 각도 θR의 방향으로 위치하는 경우, 청소 로봇(100)을 주 선분 각도인 θL과 동일한 방향으로 위치하도록 제자리 회전시키는 것이다.For example, as shown in FIG. 22 , when the cleaning robot 100 is positioned in the direction of the rotation angle θR with respect to the reference coordinate system {W}, the cleaning robot 100 is positioned in the same direction as the main line segment angle θL. is to rotate

메모리(160)는 청소 로봇(100)이 주행하는 환경 지도와, 청소 로봇(100)의 동작을 위한 운영 프로그램과 주행 패턴, 주행 과정에서 획득한 청소 로봇(100)의 위치 정보와 장애물 정보 등을 저장할 수 있다.The memory 160 stores an environment map in which the cleaning robot 100 travels, an operating program for operation of the cleaning robot 100, a driving pattern, location information and obstacle information of the cleaning robot 100 obtained during the driving process. can be saved

또한, 메모리(160)는 청소 로봇(100)의 동작을 제어하기 위한 제어 데이터, 청소 로봇(100)의 동작 제어 중 사용되는 기준 데이터, 청소 로봇(100)이 소정의 동작을 수행하는 중에 발생되는 동작 데이터, 청소 로봇(100)이 소정 동작을 수행하도록 디바이스(200)에 의해 입력된 설정 데이터 등과 같은 사용자 입력 정보가 저장될 수 있다.In addition, the memory 160 stores control data for controlling the operation of the cleaning robot 100, reference data used during operation control of the cleaning robot 100, and data generated while the cleaning robot 100 performs a predetermined operation. User input information such as motion data and setting data input by the device 200 to cause the cleaning robot 100 to perform a predetermined motion may be stored.

또한, 메모리(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 memory 160 may include a non-volatile memory device such as a Read Only Memory (ROM), a Programmable Read Only Memory (PROM), an Erasable Programmed Read Only Memory (EPRM), a flash memory, It may be implemented as a storage medium such as a volatile memory device such as random access memory (RAM), a hard disk, a card-type memory (eg SD or XD memory, etc.), and an optical disk. However, the memory 160 is not limited thereto, and various storage media that designers can consider may be used.

입력부(171)는 청소 로봇(100)을 동작시키기 위한 각종 제어 정보를 사용자의 조작을 통해 입력 받을 수 있다.The input unit 171 may receive various types of control information for operating the cleaning robot 100 through user manipulation.

디스플레이(173)는 청소 로봇(100)의 주행 방향이 주 선분 각도에 따라 조정 완료됨을 메시지 형태로 출력하기 위한 구성이다. 이때, 디스플레이(173)는 아이콘이나 LED를 이용하여 표시할 수 있다. 디스플레이(173)는 청소 로봇(100)의 주행 방향 조정 완료를 알림에 한정되지 않고, 현재 위치를 파악한 시점에도 현재 위치 파악 알림을 출력하는 것도 가능하다 할 것이다.The display 173 is a component for outputting in the form of a message that the driving direction of the cleaning robot 100 has been adjusted according to the angle of the main line. At this time, the display 173 may display using icons or LEDs. The display 173 is not limited to notifying completion of the driving direction adjustment of the cleaning robot 100, and may also output a current location detection notification even when the current location is ascertained.

이와 같이, 디스플레이(173)는 아이콘이나 텍스트 표기가 가능한 LCD UI의 경우, 아이콘이나 텍스트로 청소 로봇(100)의 위치 인식 및 주행 방향 조정 상태를 표시하여 사용자가 쉽게 확인할 수 있도록 한다.In this way, in the case of an LCD UI capable of displaying icons or text, the display 173 displays the position recognition and driving direction adjustment state of the cleaning robot 100 using icons or text so that the user can easily check the display 173 .

또한, 디스플레이(173)는 LED UI의 경우, 점등 또는 점멸, 지속 시간 차이를 이용하여 청소 로봇(100)의 주행 방향 조정 상태를 표시하여 사용자가 쉽게 확인할 수 있도록 한다.In addition, in the case of the LED UI, the display 173 displays the driving direction adjustment state of the cleaning robot 100 using lighting or blinking and a difference in duration so that the user can easily check it.

이외에도, 디스플레이(173)는 프로세서(180)의 표시 제어 신호에 따라 사용자의 입력 정보와 청소 로봇(100)의 동작 상태를 표시하는 것으로, 청소 로봇(100)으로부터 수신한 각종 정보와 디바이스를 통해 사용자로부터 입력 받은 각종 제어 명령 등을 표시할 수 있다.In addition, the display 173 displays the user's input information and the operating state of the cleaning robot 100 according to the display control signal of the processor 180, and displays various information received from the cleaning robot 100 and the user through the device. It is possible to display various control commands received from

예컨대, 디스플레이(173)는 시각 설정이나 예약 설정, 직접 제어 명령 입력 시 시각이나 청소 로봇(100)의 속력을 디스플레이하고, 그 외의 경우에는 현재 시각이나 예약 정보, 배터리 잔량, 이동 거리, 이동 경로 등을 디스플레이 할 수 있다.For example, the display 173 displays the time or the speed of the cleaning robot 100 when a time setting, reservation setting or direct control command is input, and in other cases, the current time, reservation information, battery level, moving distance, moving route, etc. can display.

또한, 디스플레이(173)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 중에서 적어도 하나를 포함할 수 있다.In addition, the display 173 includes a liquid crystal display, a thin film transistor-liquid crystal display, an organic light-emitting diode, a flexible display, and a 3D display. (3D display) may include at least one.

음향 출력부(175)는 청소 로봇(100)의 주행 방향이 주 선분 각도에 따라 조정 완료됨을 음성 형태로 출력하기 위한 구성이다. 음향 출력부(175)는 청소 로봇(100)의 주행 방향 조정 완료를 알림에 한정되지 않고, 현재 위치를 파악한 시점에도 현재 위치 파악 알림을 출력하는 것도 가능하다 할 것이다.The sound output unit 175 is a component for outputting in the form of voice that the driving direction of the cleaning robot 100 has been adjusted according to the angle of the main line. The sound output unit 175 is not limited to notifying completion of the driving direction adjustment of the cleaning robot 100, and may also output a current location detection notification even when the current location is ascertained.

또한, 음향 출력부(175)는 프로세서(180)의 음향 제어 신호에 따라 청소 로봇(100)의 동작 상태와 청소 로봇(100)의 주행 방향 조정 상태를 음향(예를 들어, Beep음)으로 출력하는 스피커를 포함할 수 있다. In addition, the sound output unit 175 outputs the operating state of the cleaning robot 100 and the driving direction adjustment state of the cleaning robot 100 as sound (eg, a beep sound) according to the sound control signal of the processor 180. It may include a speaker that

이외에도, 음향 출력부(175)는 디지털화된 전기적 신호를 아날로그화하는 디지털-아날로그 변환기(Digital-to-Analog Convertor: DAC), 디지털-아날로그 변환기에 의하여 아날로그화된 전기적 신호를 증폭하는 증폭기 등을 더 포함할 수 있다.In addition, the sound output unit 175 further includes a digital-to-analog converter (DAC) that converts the digitized electrical signal into an analog, an amplifier that amplifies the electrical signal converted into an analog by the digital-to-analog converter, and the like. can include

도 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 robot 100 may obtain a local map by scanning the vicinity of the current location (S110).

이때, 청소 로봇(100)은 자신이 주행하는 기 저장된 환경 지도를 기초로 현재 위치 주변을 스캔하여 로컬 맵을 획득할 수 있다. 상기 환경 지도는 2차원 격자 지도 또는 3차원 격자 지도일 수 있다.In this case, the cleaning robot 100 may acquire a local map by scanning the vicinity of a current location based on a pre-stored environment map in which the cleaning robot 100 travels. The environment map may be a 2D grid map or a 3D grid map.

청소 로봇(100)은 자신의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하거나, 또는 청소 로봇(100)의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출할 수 있다.The cleaning robot 100 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 its current position. Alternatively, 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 100 .

다음, 청소 로봇(100)은 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하고, 로컬 맵과 실 센서 데이터 간의 정합을 수행하여 로컬 맵에 대한 현재 위치 좌표를 파악할 수 있다(S130).Next, the cleaning robot 100 may acquire real sensor data by measuring the distance from the current location to the object to be measured, and perform matching between the local map and the real sensor data to determine the coordinates of the current location with respect to the local map (S130). ).

도 24를 참조하면, 청소 로봇(100)은 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득할 수 있다(S131).Referring to FIG. 24 , the cleaning robot 100 may acquire real sensor data by measuring a distance from a current location to a measurement target (S131).

보다 상세히 설명하면, 청소 로봇(100)은 거리를 측정하기 위한 센서(미도시)를 구비하여, 청소 로봇(100)에 설치된 2D 센서 또는 3D 센서의 스캔에 따라 센서로부터 측정 대상까지의 거리를 측정하여 청소 로봇(100)이 위치한 실제 환경의 실 센서 데이터를 획득하는 것이다. 상기 센서는 2D 센서 또는 3D 센서일 수 있다.More specifically, the cleaning robot 100 includes a sensor (not shown) for measuring a distance, and measures the distance from the sensor to the measurement object according to the scan of the 2D sensor or 3D sensor installed in the cleaning robot 100. This is to acquire real sensor data of a real environment where the cleaning robot 100 is located. The sensor may be a 2D sensor or a 3D sensor.

다음, 청소 로봇(100)은 실 센서 데이터와 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득할 수 있다(S133).Next, the cleaning robot 100 may acquire a plurality of correspondence points through data matching between real sensor data and the local map (S133).

예를 들어, 청소 로봇(100)은 기준 좌표계에 대해 각각 (x, y)로 정의된 실 센서 데이터의 데이터 점들과, 환경 지도의 기준 좌표계에 대해 각각 (x, y)로 정의된 가상 센서 데이터의 복수의 데이터 점 간에 대응되는 대응점을 획득하는 것이다.For example, the cleaning robot 100 uses data points of real sensor data defined as (x, y) for the reference coordinate system and virtual sensor data defined as (x, y) for the reference coordinate system of the environment map. To obtain corresponding points corresponding between a plurality of data points of .

다음, 청소 로봇(100)은 복수의 대응점 중에서 이상점(Outlier)을 제거할 수 있다(S135).Next, the cleaning robot 100 may remove outliers from among the plurality of corresponding points (S135).

다음, 청소 로봇(100)은 획득된 복수의 대응점을 이용하여 로컬 맵에 대한 실 센서 데이터의 상대 위치를 계산할 수 있다(S137).Next, the cleaning robot 100 may calculate a relative position of real sensor data with respect to the local map using the obtained plurality of corresponding points (S137).

청소 로봇(100)은 복수의 대응점을 이용하여 로컬 맵에 대한 실 센서 데이터의 상대 위치 즉, 좌표 변환 계수(Coordinates Transformation Parameter, Rotation 및 Translation)를 계산하는 것이다.The cleaning robot 100 calculates a relative position of real sensor data with respect to a local map, that is, coordinates transformation parameters (Coordinates Transformation Parameter, Rotation, and Translation) by using a plurality of corresponding points.

다음, 청소 로봇(100)은 복수의 로컬 맵과 실 센서 데이터의 유사도를 계산할 수 있다(S139).Next, the cleaning robot 100 may calculate a similarity between the plurality of local maps and actual sensor data (S139).

이때, 로컬 맵과 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 유사도가 높은 것을 판단할 수 있다.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 robot 100 may determine 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 (S141). In this case, the current location of the cleaning robot may be in the form of current location coordinates.

다음, 청소 로봇(100)은 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 주행 방향을 결정할 수 있다(S150).Next, the cleaning robot 100 may calculate an angle of a main line segment of a line segment existing in the local map to determine a driving direction (S150).

도 26을 참조하면, 청소 로봇(100)은 로컬 맵에서 복수 개의 직선을 획득할 수 있다(S151, S153).Referring to FIG. 26 , the cleaning robot 100 may obtain a plurality of straight lines from the local map (S151 and S153).

다음, 청소 로봇(100)은 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출할 수 있다(S155).Next, the cleaning robot 100 may classify the plurality of straight lines according to angles to calculate the main line segment angle (S155).

단계 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 robot 100 may adjust the driving direction according to the calculated main line segment angle (S170).

다음, 청소 로봇(100)은 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정됨을 메시지 형태 또는 음성 형태로 출력할 수 있다(S190).Next, the cleaning robot 100 may output in the form of a message or voice that the running direction of the cleaning robot is adjusted according to the angle of the main line (S190).

이상 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함이 명백하다.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.
제1항에 있어서,
상기 프로세서는,
상기 로컬 맵에 존재하는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정하는 청소 로봇.
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.
제1항에 있어서,
상기 프로세서는,
상기 현재 위치 좌표를 기준으로 결정된 상기 주행 방향을 기초로 상기 청소 로봇의 주행 방향을 제자리 회전 시키는 청소 로봇.
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.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 프로세서는,
상기 로컬 맵에 대한 청소 로봇의 현재 위치 좌표를 파악하기 위한 위치 추정부;
상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하기 위한 선분 각도 산출부; 및
상기 청소 로봇이 현재 위치에서 상기 주 선분 각도에 따라 주행 방향을 회전하도록 하는 방향 조정부;
를 포함하는 청소 로봇.
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.
제7항에 있어서,
상기 위치 추정부는,
상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 대응점 획득부;
획득된 상기 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 상대 위치 계산부;
복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 유사도 계산부; 및
상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 상대 위치를 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하여 현재 위치 좌표를 파악하는 위치 결정부;
를 포함하는 청소 로봇.
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.
제8항에 있어서,
상기 유사도 계산부는,
상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높다고 계산하는 청소 로봇.
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.
제7항에 있어서,
상기 선분 각도 산출부는,
상기 로컬 맵에서 복수 개의 직선을 획득하는 직선 획득부; 및
상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정하는 주 선분 각도 산출부;
를 포함하는 청소 로봇.
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.
제10항에 있어서,
상기 직선 획득부는,
허프 변환(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.
제10항에 있어서,
상기 주 선분 각도 산출부는,
상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하고, 상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정하는 청소 로봇.
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.
제12항에 있어서,
상기 주 선분 각도 산출부는,
직교하거나 평행하는 직선을 서로 병합하여 상기 각도 히스토그램을 생성하는 청소 로봇.
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.
제12항에 있어서,
상기 주 선분 각도 산출부는,
저역 통과 필터를 이용하여 상기 각도 히스토그램의 잡음을 제거하여 상기 로컬 맵의 주 선분 각도를 결정하는 청소 로봇.
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.
제1항에 있어서,
상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 메시지 형태로 출력하기 위한 디스플레이;
를 더 포함하는 청소 로봇.
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.
제1항에 있어서,
상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 음성 형태로 출력하기 위한 음향 출력부;
를 더 포함하는 청소 로봇.
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.
제1항에 있어서,
거리를 측정하기 위한 센서; 를 더 포함하고,
상기 데이터 획득부는 상기 센서를 이용하여 상기 센서로부터 상기 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 청소 로봇.
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.
삭제delete 제18항에 있어서,
상기 환경 지도는 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.
삭제delete 제18항에 있어서,
상기 현재 위치 좌표를 파악하는 단계는,
상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 단계;
상기 획득된 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 단계;
복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 단계; 및
상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 현재 위치를 상기 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하는 단계;
를 포함하는 청소 로봇의 제어방법.
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.
제22항에 있어서,
상기 유사도를 계산하는 단계에서,
상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높은 것으로 판단하는 청소 로봇의 제어방법.
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.
제18항에 있어서,
상기 주행 방향을 결정하는 단계는,
상기 로컬 맵에서 복수 개의 직선을 획득하는 단계; 및
상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출하는 단계;
를 포함하는 청소 로봇의 제어방법.
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.
제24항에 있어서,
상기 주 선분 각도를 산출하는 단계는,
상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하는 단계; 및
상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정하는 단계;
를 포함하는 청소 로봇의 제어방법.
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.
◈청구항 26은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 26 was abandoned upon payment of the setup registration fee.◈ 제25항에 있어서,
상기 주 선분 각도를 산출하는 단계는,
상기 각도 히스토그램에서 직교하거나 평행하는 직선은 서로 병합하는 단계;
를 더 포함하는 청소 로봇의 제어방법.
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.
KR1020150148434A 2015-09-18 2015-10-26 Cleaning robot and controlling method thereof KR102471487B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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