KR20170047850A - Cleaning robot and controlling method thereof - Google Patents

Cleaning robot and controlling method thereof Download PDF

Info

Publication number
KR20170047850A
KR20170047850A KR1020150148434A KR20150148434A KR20170047850A KR 20170047850 A KR20170047850 A KR 20170047850A KR 1020150148434 A KR1020150148434 A KR 1020150148434A KR 20150148434 A KR20150148434 A KR 20150148434A KR 20170047850 A KR20170047850 A KR 20170047850A
Authority
KR
South Korea
Prior art keywords
cleaning robot
local map
line segment
sensor data
current position
Prior art date
Application number
KR1020150148434A
Other languages
Korean (ko)
Other versions
KR102471487B1 (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

Disclosed are a cleaning robot, and a method for controlling the same. The present invention comprises: a data obtaining unit measuring a distance from a current position to a measurement target to obtain actual sensor data; a local map obtaining unit canning a periphery of the current position to obtain a local map based on a prestored environment map; and a processor enabling the local map and the actual sensor data to be matched to locate a coordination of the current position on the local map and calculating a main line angle of a line existing on the local map to determine the driving direction based on the current position.

Description

청소 로봇 및 그 제어방법{CLEANING ROBOT AND CONTROLLING METHOD THEREOF}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a cleaning robot,

청소 로봇 및 그 제어방법에 관한 것이다.The present invention relates to a cleaning robot and a control method thereof.

청소 로봇은 사용자의 조작 없이도 청소해야 하는 영역을 스스로 주행하면서 바닥으로부터 먼지와 같은 불순물을 청소하는 장치로, 미리 설정된 주행 패턴에 따라 주행하면서 청소 작업을 수행한다. 또한, 청소 로봇은 센서를 통해 청소 구역 내에 설치된 가구, 벽, 가전제품 등의 장애물까지의 거리를 판별하고, 좌측 모터와 우측 모터를 선택적으로 구동시켜 스스로 방향을 전환한다.The cleaning robot is a device that cleans impurities such as dust from the floor while traveling on an area to be cleaned without user's operation, and carries out a cleaning operation while traveling according to a predetermined driving pattern. In addition, the cleaning robot determines the distances to the obstacles such as furniture, walls, household appliances, etc. installed in the cleaning area through the sensor, and selectively drives the left motor and the right motor to change directions.

상술한 청소 로봇이 다양한 청소 환경에서 원활한 청소 동작을 수행하기 위해서는 자신의 위치를 정확하게 파악하는 것이 중요하다.In order to perform the cleaning operation smoothly in various cleaning environments, it is important that the cleaning robot accurately grasp its own position.

또한, 청소 로봇이 청소를 시작하는 상황에서 벽면과 비스듬하게 놓인 경우 초기에 위치하는 방향을 유지한 상태로 청소를 시작하면, 비효율적인 주행 경로가 생성되어, 청소가 누락되는 영역이 다수 발생할 수 있다.In addition, when the cleaning robot starts to be cleaned and starts to be cleaned while maintaining the initial position when the cleaning robot is placed at an oblique angle with respect to the wall surface, an inefficient travel path is generated, .

이에, 청소 로봇이 청소 공간의 모든 영역을 주행할 수 있도록 청소 로봇의 주행 방향을 정확하게 결정해야 할 필요성이 요구되고 있는 실정이다.Therefore, 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.

개시된 발명은 청소 로봇이 청소를 수행하는 환경의 지도와 환경 지도 상에서의 청소 로봇의 위치를 이용하여 청소 로봇의 주행 방향을 결정하기 위한 청소 로봇 및 그 제어방법을 제공하기 위한 것이다.The present invention provides a cleaning robot for determining a traveling 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, and a control method thereof.

일 측면에 의한 청소 로봇은, 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 데이터 획득부; 기 저장된 환경 지도를 기초로 상기 현재 위치 주변을 스캔하여 로컬 맵을 획득하는 로컬 맵 획득부; 및 상기 로컬 맵과 상기 실 센서 데이터 간의 정합을 수행하여 상기 로컬 맵에 대한 상기 현재 위치의 좌표를 파악하고, 상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 상기 현재 위치를 기준으로 주행 방향을 결정하는 프로세서;를 포함할 수 있다.The cleaning robot according to one aspect includes a data acquiring unit for acquiring real sensor data by measuring a distance from a current position to a measurement object; A local map acquiring unit for acquiring a local map by scanning around the current position based on a pre-stored environment map; Calculating a main line segment angle of a line segment existing in the local map by performing matching between the local map and the real sensor data to grasp coordinates of the current position with respect to the local map, And a processor that determines the processor.

또한, 상기 프로세서는, 상기 로컬 맵에 존재하는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정할 수 있다.In addition, the processor may determine a main line segment angle by classifying a plurality of straight lines existing in the local map by an angle.

또한, 상기 프로세서는, 상기 현재 위치 좌표를 기준으로 결정된 상기 주행 방향을 기초로 상기 청소 로봇의 주행 방향을 제자리 회전 시킬 수 있다.In addition, the processor may rotate the traveling direction of the cleaning robot based on the traveling direction determined based on the current position coordinates.

또한, 상기 데이터 획득부는, 상기 청소 로봇이 정지된 상태에서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 일정 각도로 회전하면서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 360° 회전하면서 전 방향에 대한 실 센서 데이터를 획득할 수 있다.The data acquiring unit may acquire the room sensor data in a state where the cleaning robot is stopped or acquire the room sensor data while the cleaning robot rotates at a predetermined angle in place, It is possible to obtain real sensor data for all directions while rotating 360 degrees.

또한, 상기 로컬 맵 획득부는, 상기 청소 로봇의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득할 수 있다.Also, the local map obtaining unit extracts virtual sensor data by performing a ray casting method on all directions while rotating 360 ° from the virtual sensor data extraction position centered on the current position of the cleaning robot, Local maps can be obtained.

또한, 상기 로컬 맵 획득부는, 상기 청소 로봇의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출할 수 있다.The local map obtaining unit may extract a local map having a predetermined size centered on each of the plurality of local map extraction positions centered on the current position of the cleaning robot from the environment map.

또한, 상기 프로세서는, 상기 로컬 맵에 대한 청소 로봇의 현재 위치 좌표를 파악하기 위한 위치 추정부; 상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하기 위한 선분 각도 산출부; 및 상기 청소 로봇이 현재 위치에서 상기 주 선분 각도에 따라 주행 방향을 회전하도록 하는 방향 조정부;를 포함할 수 있다.The processor may further include: a position estimator for determining a current position coordinate of the cleaning robot with respect to the local map; A line segment angle calculating unit for calculating a line segment angle of a line segment existing in the local map; And a direction adjusting unit for causing the cleaning robot to rotate the traveling direction according to the main line segment angle at the current position.

또한, 상기 위치 추정부는, 상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 대응점 획득부; 획득된 상기 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 상대 위치 계산부; 복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 유사도 계산부; 및 상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 상대 위치를 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하여 현재 위치 좌표를 파악하는 위치 결정부;를 포함할 수 있다.Also, the position estimating unit may include a corresponding point obtaining unit that obtains a plurality of corresponding points through data matching between the real sensor data and the local map; A relative position calculation unit for calculating a relative position of the real sensor data with respect to the local map by using the plurality of corresponding points acquired; A similarity calculation unit for calculating a similarity between the plurality of local maps and the real sensor data; And a positioning unit for determining a relative position of the cleaning robot with respect to the local map having the largest degree of similarity as a current position of the cleaning robot with respect to the environment map to grasp the current position coordinates.

또한, 상기 유사도 계산부는, 상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높다고 계산할 수 있다.The similarity calculation unit may calculate that the degree of similarity increases as the number of data points commonly included in the local map and the actual sensor data increases.

또한, 상기 선분 각도 산출부는, 상기 로컬 맵에서 복수 개의 직선을 획득하는 직선 획득부; 및 상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정하는 주 선분 각도 산출부;를 포함할 수 있다.The line segment angle calculating unit may further include: a straight line obtaining unit obtaining a plurality of straight lines from the local map; And a main line segment angle calculating unit for classifying the plurality of straight lines according to angles to determine main line segment angles.

또한, 상기 직선 획득부는, 허프 변환(Hough Transform)을 이용하여 상기 로컬 맵에서 상기 복수 개의 직선을 획득할 수 있다.The straight line obtaining unit may obtain the plurality of straight lines in the local map using a Hough Transform.

또한, 상기 주 선분 각도 산출부는, 상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하고, 상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정할 수 있다.In addition, the main line segment angle calculating unit may generate the angle histogram by classifying the plurality of straight lines according to the angle, and may determine the main line segment angle in consideration of the distribution of the angle histogram.

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

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

또한, 상기 청소 로봇은, 상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 메시지 형태로 출력하기 위한 디스플레이;를 더 포함할 수 있다.The cleaning robot may further include a display for outputting a message indicating that the running direction of the cleaning robot has been adjusted according to the main line segment angle.

또한, 상기 청소 로봇은, 상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 음성 형태로 출력하기 위한 음향 출력부;를 더 포함할 수 있다.The cleaning robot may further include an acoustic output unit for outputting, in a voice form, that the traveling direction of the cleaning robot is adjusted according to the main line segment angle.

또한, 청소 로봇은, 거리를 측정하기 위한 센서; 를 더 포함하고, 상기 데이터 획득부는 상기 센서를 이용하여 상기 센서로부터 상기 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득할 수 있다.The cleaning robot further includes: a sensor for measuring a distance; The data acquiring unit may acquire real sensor data by measuring a distance from the sensor to the measurement object using the sensor.

일 측면의 청소 로봇의 제어방법은, 현재 위치 주변을 스캔하여 로컬 맵을 획득하는 단계; 상기 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 단계; 상기 로컬 맵과 상기 실 센서 데이터 간의 정합을 수행하여 상기 로컬 맵에 대한 현재 위치 좌표를 파악하는 단계; 상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 주행 방향을 결정하는 단계; 및 산출된 상기 주 선분 각도에 따라 주행 방향을 조정하는 단계;를 포함할 수 있다.A control method for a cleaning robot on one side includes the steps of: acquiring a local map by scanning the vicinity of a current position; Obtaining a real sensor data by measuring a distance from the current position to a measurement object; Determining a current position coordinate of the local map by performing matching between the local map and the real sensor data; Calculating a main line segment angle of a line segment existing in the local map and determining a traveling direction; And adjusting the traveling direction according to the calculated main line angle.

또한, 상기 로컬 맵을 획득하는 단계는, 상기 청소 로봇이 주행하는 기 저장된 환경 지도를 기초로 상기 현재 위치 주변을 스캔하여 상기 로컬 맵을 획득할 수 있다.Also, the acquiring of the local map may acquire the local map by scanning the vicinity of the current position based on the pre-stored environment map run by the cleaning robot.

또한, 상기 환경 지도는 2차원 격자 지도 또는 3차원 격자 지도일 수 있다.In addition, the environmental map may be a two-dimensional grid map or a three-dimensional grid map.

또한, 상기 로컬 맵을 획득하는 단계는, 상기 청소 로봇의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하거나, 또는 상기 청소 로봇의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출할 수 있다.The acquiring of the local map may further include performing a ray casting technique on all directions while rotating the virtual sensor data extraction position about 360 degrees from the virtual sensor data extraction position centered on the current position of the cleaning robot, Extracts the local map from the environment map, or extracts a local map of a predetermined size centering on each of the plurality of local map extraction locations centered on the current location of the cleaning robot.

또한, 상기 현재 위치 좌표를 파악하는 단계는, 상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 단계; 상기 획득된 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 단계; 복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 단계; 및 상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 현재 위치를 상기 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하는 단계;를 포함할 수 있다.The acquiring of the current position 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 degree of similarity between the plurality of local maps and the real sensor data; And determining the current position of the cleaning robot for the local map having the largest degree of similarity as the current position of the cleaning robot for the environment map.

또한, 상기 유사도를 계산하는 단계에서, 상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높은 것으로 판단할 수 있다.In the calculating of 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 actual sensor data increases.

또한, 상기 주행 방향을 결정하는 단계는, 상기 로컬 맵에서 복수 개의 직선을 획득하는 단계; 및 상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출하는 단계;를 포함할 수 있다.In addition, the step of determining the running direction may include: obtaining a plurality of straight lines in the local map; And calculating a main line segment angle by classifying the plurality of straight lines according to an angle.

또한, 상기 주 선분 각도를 산출하는 단계는, 상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하는 단계; 및 상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정하는 단계;를 포함할 수 있다.The step of calculating the main line segment angle may include: generating an angle histogram by classifying the plurality of straight lines according to angles; And determining the main line segment angle in consideration of the distribution of the angle histogram.

또한, 상기 주 선분 각도를 산출하는 단계는, 상기 각도 히스토그램에서 직교하거나 평행하는 직선은 서로 병합하는 단계;를 더 포함할 수 있다.The step of calculating the main line segment angle may further include merging straight lines parallel or parallel to each other in the angle histogram.

개시된 발명은 청소 로봇이 작업을 수행하는 환경 지도와 환경 지도 상에서의 청소 로봇의 위치를 이용하여 청소 로봇의 주행 방향을 결정하기 때문에, 보다 정확한 주행 방향을 결정하여 수 있고, 이로 인해, 청소 누락 영역이 발생하지 않아 청소 동작에 대한 신뢰도를 향상시킬 수 있다는 효과를 기대할 수 있다.The disclosed invention determines a traveling direction of the cleaning robot by using the environment map on which the cleaning robot performs work and the position of the cleaning robot on the environment map so that a more accurate running direction can be determined, So that the reliability of the cleaning operation can be improved.

도 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의 선분 각도 추출 방법을 상세하게 설명하기 위한 흐름도이다.
FIG. 1 is a view showing the overall configuration of a cleaning robot system according to an embodiment.
FIG. 2 is a view schematically showing the appearance of a cleaning robot according to an embodiment.
3 is a control block diagram illustrating a configuration of a cleaning robot according to an embodiment.
FIG. 4 is a diagram showing an environment map on which a cleaning robot according to an embodiment runs.
FIG. 5 is a view showing a location where virtual sensor data is extracted at a current position of the cleaning robot according to an embodiment.
6 is a diagram showing a method of calculating the virtual sensor data extraction position in FIG.
FIG. 7 is a diagram illustrating an example of a ray casting technique according to an embodiment.
FIG. 8 is a diagram illustrating an example of virtual sensor data extracted using the ray casting technique of FIG.
9 is a view showing a position where a small local map is extracted at a current position of the 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 location.
FIG. 11 is a control block diagram showing the processor of FIG. 3 in detail.
12 is a control block diagram showing the position estimating unit of FIG. 11 in detail.
13 is a view showing an example of room sensor data acquired by a cleaning robot according to an embodiment.
FIG. 14 is a view showing an example of virtual sensor data acquired by a cleaning robot according to an 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 view showing a state in which a local map according to an embodiment is inflated.
17 and 18 are views for explaining the fitting state of the local map and the actual sensor data according to the embodiment.
Fig. 19 is a diagram showing in detail the configuration of the line segment angle calculating unit of Fig. 5; Fig.
20 and 21 are angle histograms generated by classifying a straight line obtained in the edge local map according to the angle.
22 and 23 are diagrams for explaining a method for determining the traveling direction of the cleaning robot.
24 is a flowchart for explaining a control method of the cleaning robot according to one embodiment.
FIG. 25 is a flowchart for explaining the current position estimation method of the cleaning robot of FIG. 24 in detail.
Fig. 26 is a flowchart for explaining the segment angle extracting method of Fig. 24 in detail.

본 발명의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되는 이하의 상세한 설명과 바람직한 실시 예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공기 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서에서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 제한되는 것은 아니다.BRIEF DESCRIPTION OF THE DRAWINGS The objectives, specific advantages and novel features of the present invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG. It should be noted that, in the present specification, the reference numerals are added to the constituent elements of the drawings, and the same constituent elements are assigned the same number as much as possible even if they are displayed on different drawings. Further, in the description of the present invention, detailed description of related air technology will be omitted if it is determined that the gist of the present invention may be unnecessarily blurred. In this specification, the terms first, second, etc. are used to distinguish one element from another, and the element is not limited to these terms.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시형태를 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 의한 청소 로봇 시스템의 전체 구성을 나타내는 도면이다.FIG. 1 is a view 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, the cleaning robot system 1 includes a cleaning robot 100 for performing an operation while autonomously moving a predetermined area, a device for remotely controlling the cleaning robot 100 separated from the cleaning robot 100, And a charging station 300 which is separated from the cleaning robot 100 and charges the battery power of the cleaning robot 100.

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

또한, 청소 로봇(100)은 카메라나 각종 센서들을 통해 주변 환경에 대한 사전 정보 없이 자신의 위치를 인식하고, 환경에 대한 정보로부터 지도를 작성하는 위치 인식(Localization)과 지도 작성(Map-building)의 과정을 수행할 수 있다. In addition, the cleaning robot 100 recognizes its own position without prior knowledge about the surrounding environment through a camera or various sensors, and performs localization and map-building for creating a map from information on the environment, 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 for wirelessly transmitting a control command for controlling the movement of the cleaning robot 100 or performing the operation of the cleaning robot 100. The device 200 may be a mobile phone, A personal digital assistant (PDA), a portable multimedia player (PMP), a laptop computer, a digital broadcasting terminal, a netbook, a tablet, and a navigation.

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

또한, 디바이스(200)는 간단한 형태의 일반적인 리모컨일 수 있다. 리모컨은 일반적으로 적외선 통신(IrDA, infrared Data Association)을 이용하여 청소 로봇(100)과 신호를 송수신할 수 있다. In addition, the device 200 may be a simple remote control. The remote controller can transmit and receive signals to and from the cleaning robot 100 by using an 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 may be implemented as a radio frequency (RF), a wireless fidelity, a Wi-Fi, a Bluetooth, a Zigbee, a near field communication (NFC) UWB) communication with the cleaning robot 100. If the device 200 and the cleaning robot 100 can exchange wireless communication signals, it is possible to use any method Also,

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

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

도 2는 일 실시예에 의한 청소 로봇의 외관을 개략적으로 도시한 도면이다.FIG. 2 is a view schematically showing the appearance of a cleaning robot according to an embodiment.

도 2에서 도시하는 바와 같이, 청소 로봇(100)은 외관을 형성하는 본체(110)와, 본체(110)의 상부를 덮는 커버(120)와, 본체(110)를 구동시키기 위한 구동 전원을 공급하는 전원부(130)와, 본체(110)를 이동시키는 구동부(140)를 포함한다.2, the cleaning robot 100 includes a main body 110 that forms an outer appearance, a cover 120 that covers an upper portion of the main body 110, and a driving power source And a driving unit 140 for moving the main body 110. The power supply unit 130 includes:

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

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

또한, 전원부(130)는 충전 잔량이 부족하면 충전 스테이션(300)으로부터 충전 전류를 공급받아 충전된다.Further, the power source unit 130 receives the 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 vary the angle of rotation according to the state of the floor on which the cleaning robot 100 moves. The caster wheel supports the cleaning robot 100 by stabilizing the posture of the cleaning robot 100 and preventing fall of the cleaning robot 100, and is composed of a roller or a caster-shaped wheel.

구동부(140)는 본체(110)의 중앙부 양측에 각각 마련되어 본체(110)가 주행하는 과정에서 전진, 후진 및 회전주행 등의 이동 동작이 가능하도록 한다. The driving unit 140 is provided on both sides of the center of the main body 110 so that the main body 110 can move forward, backward, and run in the course of traveling.

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

도 3은 일 실시예에 의한 청소 로봇의 구성을 나타내는 제어 블럭도이다.3 is a control block diagram illustrating a configuration of a cleaning robot according to an embodiment.

도 3에서 도시하는 바와 같이, 청소 로봇(100)은 도 2에 도시한 구성 요소 이외에 데이터 획득부(151), 로컬 맵 획득부(153), 메모리(160), 입력부(171), 디스플레이(173), 음향 출력부(175) 및 프로세서(180)를 포함할 수 있다.3, the cleaning robot 100 includes a data acquisition unit 151, a local map acquisition unit 153, a memory 160, an input unit 171, a display 173 ), An acoustic output unit 175, and a processor 180.

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

보다 상세히 설명하면, 청소 로봇(100)은 거리를 측정하기 위한 센서(미도시)를 구비하여, 청소 로봇(100)에 설치된 2D 센서 또는 3D 센서의 스캔에 따라 센서로부터 측정 대상까지의 거리를 측정하여 청소 로봇(100)이 위치한 실제 환경의 실 센서 데이터를 획득하는 것이다. 상기 센서는 2D 센서 또는 3D 센서일 수 있다.More specifically, the cleaning robot 100 includes a sensor (not shown) for measuring the distance, and measures the distance from the sensor to the measurement target in accordance with the scan of the 2D sensor or the 3D sensor installed in the cleaning robot 100 So that the actual sensor data of the actual environment where the cleaning robot 100 is located is obtained. 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)에 따라 달라질 수 있다.In this case, the 2D sensor can display the distance to the measurement object in (x, y) coordinates with respect to the reference coordinate system of the sensor, and the 3D sensor can display the distance to the measurement object with (x, y, z ) 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 mode 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 the room sensor data in the stopped state. Or acquires room sensor data while rotating at a predetermined angle in place, or acquires room sensor data for all directions while rotating 360 ° in place.

이때, 청소 로봇(100)이 제자리에서 일정 각도로 회전하면서 실 센서 데이터를 획득할 때, 센서의 시야 밖의 실 센서 데이터를 획득할 수 있다.At this time, when the cleaning robot 100 rotates at a predetermined angle and acquires the room sensor data, it is possible to acquire the room sensor data outside the view of the sensor.

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

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

이때, 청소 로봇이 동작하는 환경 지도는 도 4와 같을 수 있다. 상기 청소 로봇(100)이 동작하는 환경 지도(500, Map)는 미리 주어진 것으로 가정하기로 한다. 도 4에 도시한 바와 같이, 환경 지도(500)의 형태는 2차원의 격자 지도(Grid Map) 또는 3차원의 격자 지도(Grid Map) 형태일 수 있다. 격자 지도(Grid Map)는 청소 로봇(100)의 주위 환경을 작은 격자(Grid)로 나누어 각 격자에 물체가 있을 가능성을 확률적으로 표현한 지도로서, 확률 격자 지도라고도 한다.At this time, the environment map in which the cleaning robot operates may be as shown in Fig. It is assumed that an environment map 500 (Map) 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 in the form of a two-dimensional grid map or a three-dimensional grid map. The grid map is a map that stochastically expresses the possibility that an object exists in each grid by dividing the surrounding environment of the cleaning robot 100 into a small grid, which is also called a probability grid map.

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

개시된 발명에서는 로컬 맵 획득의 실시 예로서 2차원 격자 지도를 활용한 3가지 방법을 제안한다. 이 방법은 3차원 격자 지도로 확장하여 적용될 수 있음은 당연하다 할 것이다.The disclosed invention proposes three methods utilizing a two-dimensional grid map as an embodiment of local map acquisition. It should be appreciated that this method can be extended to a 3D grid map.

도 5는 일 실시예에 의한 청소 로봇의 현재 위치에서 가상 센서 데이터를 추출하는 위치를 나타낸 도면이고, 도 6은 도 5의 가상 센서 데이터 추출 위치를 계산하는 방법을 나타낸 도면이며, 도 7은 일 실시예에 의한 광선 던지기 기법의 예를 나타낸 도면이고, 도 8은 도 7의 광선 던지기 기법을 이용하여 추출된 가상 센서 데이터의 예를 나타낸 도면이다.FIG. 5 is a view showing a position where virtual sensor data is extracted at a current position of the cleaning robot according to an embodiment. FIG. 6 is a diagram illustrating a method of calculating a virtual sensor data extraction position in FIG. FIG. 8 is a diagram illustrating an example of virtual sensor data extracted using the ray casting technique of FIG. 7. Referring to FIG.

먼저, 로컬 맵 획득부(153)는 가상 센서 데이터(Virtual Sensor Data) 추출 방식을 통해 로컬 맵을 획득할 수 있다.First, the local map acquisition unit 153 can acquire the local map through the virtual sensor data extraction method.

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

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

가상 센서 데이터 추출 위치(X)는 청소 로봇(100)의 현재 위치(S)를 중심으로 서로 직각이 되며, 반경 R되는 지점의 끝을 추출 위치(X)로 결정한다(도 6 참조).The virtual sensor data extraction position X is orthogonal to the current position S of the cleaning robot 100 and determines the end of the radius R as the extraction position X (see FIG. 6).

도 6에서는 한 변의 길이가 2R인 X자의 4군데 끝 지점이 가상 센서 데이터의 추출 위치(X)가 되는 것이다.In Fig. 6, the four end points of the X character having the length of one side of 2R become the extraction position (X) of the virtual sensor data.

이후, 도 7에 도시한 바와 같이, 각각의 가상 센서 데이터 추출 위치(X)에서 360° 전(全) 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 도 8에 도시한 바와 같이, 가상 센서 데이터를 추출한다. 도 8은 가상 센서 데이터 추출 위치(X)에서 추출된 가상 센서 데이터의 예를 나타내는 것이다.Thereafter, as shown in FIG. 7, a ray casting technique is performed for all 360 ° directions in each virtual sensor data extraction position X, and as shown in FIG. 8, Data is extracted. FIG. 8 shows an example of virtual sensor data extracted at the virtual sensor data extraction position X. FIG.

도 9는 일 실시예에 의한 청소 로봇의 현재 위치에서 소 로컬 맵을 추출하는 위치를 나타낸 도면이고, 도 10은 소 로컬 맵 추출 위치를 이용하여 추출된 소 로컬 맵의 예를 나타낸 도면이다.FIG. 9 is a view showing a position where a small local map is extracted from a current position of the cleaning robot according to an embodiment, and FIG. 10 is a view showing an example of a small local map extracted using a small local map extraction position.

두 번째로, 로컬 맵 획득부(153)는 청소 로봇(100)의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 환경 지도(500)로부터 추출할 수 있다.Secondly, the local map acquiring unit 153 extracts a local map of a predetermined size from the environment map 500, centering on each of the plurality of local map extracting positions centered on the current position of the cleaning robot 100 .

이때, 로컬 맵은 기 설정된 크기에 따라, 소 로컬 맵(Small Local Map)과 소 로컬 맵 보다 넓은 영역인 대 로컬 맵(Large Local Map)으로 구분할 수 있다.At this time, the local map may be divided into a small local map and a large local map, which is wider than the small local map, according to a preset size.

도 9를 참조하면, 로컬 맵 획득부(153)는 청소 로봇(100)의 현재 위치(S)를 중심으로 일정 거리 이내에서 복수의 소 로컬 맵(Small Local Map) 추출 위치(X)들을 지도 상에서 선정한다. 9, the local map acquiring unit 153 acquires a plurality of small local map extraction positions X within a predetermined distance around the current position S of the cleaning robot 100 on a map .

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

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

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

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

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

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

도 11을 참조하면, 프로세서(180)는 로컬 맵에 대한 청소 로봇(100)의 현재 위치 좌표를 파악하기 위한 위치 추정부(181), 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하기 위한 선분 각도 산출부(183) 및 청소 로봇(100)이 현재 위치에서 주 선분 각도에 따라 주행 방향을 회전하도록 하는 방향 조정부(185)를 포함할 수 있다.11, the processor 180 includes a position estimating unit 181 for grasping the current position coordinates of the cleaning robot 100 with respect to the local map, a line segment calculating unit 182 for calculating the main line segment angle of the line segment existing in the local map, The angle calculating unit 183 and the direction adjusting unit 185 may cause the cleaning robot 100 to rotate the traveling direction according to the main line segment angle at the current position.

도 12는 도 11의 위치 추정부를 상세하게 나타내는 제어 블록도이다.12 is a control block diagram showing the position estimating unit of FIG. 11 in detail.

도 12에서 도시하는 바와 같이, 위치 추정부(410)는 대응점 획득부(411), 상대 위치 계산부(413), 유사도 계산부(415) 및 위치 결정부(417)를 포함할 수 있다.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 obtaining unit 411 obtains a plurality of corresponding points through data matching between the real sensor data obtained by the data obtaining unit 151 and the local map obtained by the local map obtaining unit 153. [

도 13은 일 실시예에 의한 청소 로봇에서 획득한 실 센서 데이터의 예를 나타낸 도면이고, 도 14는 일 실시예에 의한 청소 로봇에서 획득한 가상 센서 데이터의 예를 나타낸 도면이다.FIG. 13 is a view showing an example of room sensor data acquired by a cleaning robot according to an embodiment, and FIG. 14 is a view showing an example of virtual sensor data acquired by a cleaning robot according to an embodiment.

도 13 및 도 14를 참조하면, 각 센서 데이터는 복수의 데이터 점(Data Point)들로 구성되어 있다. 예를 들어 어떤 점 P가 실 센서 데이터에는 P1, 가상 센서 데이터에는 P2로 포함되어 있으면 P1과 P2는 대응점 관계이다. 2D 센서의 경우 실 센서 데이터를 구성하는 데이터 점들은 청소 로봇(100)의 기준 좌표계에 대해 각각 (x, y)로 정의된다. 가상 센서 데이터를 구성하는 데이터 점들은 환경 지도의 기준 좌표계 {W}(도 4 참조)에 대해 각각 (x, y)로 정의된다.13 and 14, each sensor data is composed of a plurality of data points. For example, if a point P is included in the real sensor data and P1 is in the virtual sensor data, P1 and P2 correspond to each other. In the case of the 2D sensor, the data points constituting the real sensor data are defined as (x, y) for the reference coordinate system of the cleaning robot 100, respectively. The data points constituting the virtual sensor data are defined as (x, y) for the reference coordinate system {W} of the environmental map (see FIG. 4), respectively.

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

또한, 대응점 획득부(411)는 획득한 복수의 대응점 중에서 이상점(Outlier)을 제거할 수 있다. 이때, 이상점(Outlier)은 실 센서 데이터와 가상 센서 데이터에 공통으로 포함되어 있지 않은 데이터 점을 의미하는 것으로 정의하기로 한다.In addition, the corresponding point obtaining unit 411 can remove an outlier among the plurality of corresponding points obtained. In this case, an outlier is defined as a data point that is not commonly included in the real sensor data and the 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 on the local map, that is, the coordinate transformation parameters (Rotation and Translation) using the plurality of corresponding points acquired by the corresponding point acquisition unit 411 do.

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

이때, 상대 위치는 실 센서 데이터에 속한 복수의 대응점(Inlier)을 로컬 맵(Local Map)에 속한 각각에 대응되는 복수의 대응점(Inlier)으로 맞춤(Fitting)하는 좌표 변환 계수(Coordinates Transformation Parameter, Rotation 및 Translation)를 구하여 얻을 수 있다. 로컬 맵(Local Map)의 각 데이터 점들은 환경 지도의 기준 좌표계에 대해 정의되어 있으므로 실 센서 데이터를 맞춤(Fitting)하는 좌표 변환 계수는 환경 지도에 대한 청소 로봇(100)의 상대 위치를 나타낸다. At this time, the relative position is a Coordinates Transformation Parameter (Rotation) which fits a plurality of corresponding points belonging to the real sensor data to a plurality of corresponding points corresponding to each of the local maps, And Translation). Since each data point of the local map is defined with respect to the reference coordinate system of the environment map, the coordinate transformation coefficient for fitting the real sensor data represents the relative position of the cleaning robot 100 to the environment map.

도 15를 참조하면, {A} 좌표계를 로컬 맵(Local Map)의 기준 좌표계, {B} 좌표계를 센서의 기준 좌표계라고 할 수 있다.Referring to FIG. 15, the {A} coordinate system can be referred to as a reference coordinate system of a local map and the {B} coordinate system can be referred to as a sensor reference coordinate system.

도 15에서 도시한 바와 같이, 로컬 맵(Local Map)을 이루는 데이터 점들(PA)과 실 센서 데이터의 데이터 점들(PB)이 대응되면, [수학식 1] 로 서로의 관계가 표현될 수 있다.As shown in FIG. 15, when the data points PA forming the local map correspond to the data points PB of the real sensor data, the 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 transformation coefficients, R is a rotation matrix, and t is a translation vector.

즉, {A} 좌표게를 R에 따라 회전하고 t만큼 이동시키면 {B} 좌표계와 동일하게 된다. 개시된 일 실시예에서는 최소 제곱법(Least squares method)을 이용하여 R과 t를 산출한다.That is, if the {A} coordinate is rotated according to R and moved by t, it becomes the same as {B} coordinate system. In one disclosed embodiment, R and t are calculated using Least squares method.

유사도 계산부(415)는 상대 위치 계산부(413)에서 계산된 로컬 맵에 대한 실 센서 데이터의 상대 위치를 이용하여 복수의 로컬 맵과 실 센서 데이터의 유사도를 계산한다. The similarity calculation unit 415 calculates the similarity between the plurality of local maps and the real sensor data by using the relative position of the real sensor data with respect to the local map calculated by the relative position calculation unit 413.

도 14에서 도시한 로컬 맵은 이진(Binary) 영상으로 간주할 수 있다. 따라서 디지털 영상 처리 기법 중 팽창 연산(Dilation) 방법을 사용하여 도 16에서 도시한 바와 같이 로컬 맵을 팽창시키고, 팽창된 로컬 맵에 실 센서 데이터를 맞춤(fitting)하여 유사도를 계산한다.The local map shown in FIG. 14 can be regarded as a binary image. Accordingly, the local map is expanded as shown in FIG. 16 using the dilation method of the digital image processing technique, and the similarity is calculated by fitting the seal sensor data to the expanded local map.

도 17에서 도시하는 바와 같이, 로컬 맵과 실 센서 데이터가 서로 맞춤(fitting)이 잘 이루어지면 실 센서 데이터와 팽창된 로컬 맵의 겹치는 부분(Overlap)의 개수가 많아져 유사도는 높게 된다. As shown in FIG. 17, if the local map and the real sensor data are well fitted, the number of overlaps between the real sensor data and the expanded local map increases, and the degree of similarity becomes high.

이때, 유사도 계산부(415)는 로컬 맵과 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 유사도가 높다고 계산한다.At this time, the similarity calculation unit 415 calculates that the degree of similarity increases 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, when the number of data points commonly included in the local map and the actual sensor data is significantly less than that in Fig. 17, or when the coordinate conversion coefficient is calculated in error, The degree of similarity of data becomes low.

위치 결정부(417)는 유사도 계산부(415)에서 계산된 유사도를 이용하여 유사도가 가장 큰 로컬 맵에 대한 청소 로봇(100)의 상대 위치를 환경 지도에 대한 청소 로봇(100)의 현재 위치로 결정하여 현재 위치 좌표를 파악한다.The position determination unit 417 uses the similarity calculated by the similarity calculation unit 415 to calculate the relative position of the cleaning robot 100 with respect to the local map having the greatest similarity to the current position of the cleaning robot 100 for the environment map And determines the current position coordinates.

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

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

상기 복수 개의 직선은 로컬 맵에서 직선을 이루는 복수 개의 포인트 집합이거나, 또는 로컬 맵 자체를 이루는 복수 개의 포인트 집합일 수 있다.The plurality of straight lines may be a plurality of sets of points forming a straight line in the local map, or a plurality of sets of points forming the local map itself.

보다 상세히 설명하면, 직선 획득부(431)는 로컬 맵에서 추출된 복수의 직선을 이루는 복수의 포인트로 허프 변환을 수행하여 투표 행렬을 계산함에 따라 로컬 맵에 대한 복수 개의 직선을 획득한다. 이때, 투표 행렬의 행과 열은 각각 선분의 각도 및 기준 좌표계 원점으로부터의 거리와 대응된다. 상기 허프 변환에 따라 획득한 복수 개의 직선은 각도를 가진다.More specifically, the straight line obtaining unit 431 obtains a plurality of straight lines for the local map by performing a Hough transform to a plurality of points constituting a plurality of straight lines extracted from the local map to calculate a voting matrix. At this time, the rows and columns of the voting matrix correspond to the angles of the line segments and the distances from the origin of the reference coordinate system, respectively. The plurality of straight lines obtained in accordance with the Hough transform has an angle.

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

보다 상세히 설명하면, 주 선분 각도 산출부(433)는 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하고, 각도 히스토그램의 분포를 고려하여 주 선분 각도를 결정할 수 있다.More specifically, the main line segment angle calculating unit 433 can classify a plurality of straight lines according to angles to generate an angle histogram, and determine the main line segment angle in consideration of the distribution of the angle histogram.

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

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

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

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

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

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

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

한편, 주 선분 각도 산출부(433)는 가장 많은 수의 직선 성분이 분포된 각도를 주 선분 각도로 산출할 수 있다. On the other hand, the main line segment angle calculating section 433 can calculate the angle at which the largest number of straight line components are distributed, as the main line segment angle.

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

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

예를 들어, 도 22와 같이, 청소 로봇(100)이 기준 좌표계 {W}에 대한 회전 각도 θR의 방향으로 위치하는 경우, 청소 로봇(100)을 주 선분 각도인 θL과 동일한 방향으로 위치하도록 제자리 회전시키는 것이다.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 moved in the same direction as the main line segment angle? L, .

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

또한, 메모리(160)는 청소 로봇(100)의 동작을 제어하기 위한 제어 데이터, 청소 로봇(100)의 동작 제어 중 사용되는 기준 데이터, 청소 로봇(100)이 소정의 동작을 수행하는 중에 발생되는 동작 데이터, 청소 로봇(100)이 소정 동작을 수행하도록 디바이스(200)에 의해 입력된 설정 데이터 등과 같은 사용자 입력 정보가 저장될 수 있다.The memory 160 stores control data for controlling the operation of the cleaning robot 100, reference data to be used during the operation control of the cleaning robot 100, reference data to be used when the cleaning robot 100 performs a predetermined operation User input information such as operation data, setting data input by the device 200 so that the cleaning robot 100 performs a predetermined operation, and the like can 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 an inactive memory device such as a ROM, a PROM, an EPRM, a flash memory, Volatile memory such as a random access memory (RAM) or a storage medium such as a hard disk, a card type memory (e.g., SD or XD memory), or an optical disk. However, the memory 160 is not limited thereto, and various storage media that can be considered by the designer can be used.

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

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

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

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

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

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

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

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

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

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

도 24는 일 실시에에 의한 청소 로봇의 제어방법을 설명하기 위한 흐름도이고, 도 25는 도 24의 청소 로봇의 현재 위치 추정 방법을 상세하게 설명하기 위한 흐름도이며, 도 26은 도 24의 선분 각도 추출 방법을 상세하게 설명하기 위한 흐름도이다. FIG. 24 is a flowchart for explaining a control method of the cleaning robot according to one embodiment, FIG. 25 is a flowchart for explaining the current position estimation method of the cleaning robot of FIG. 24 in detail, Fig. 3 is a flowchart for explaining the extraction method in detail. Fig.

도 24를 참조하면, 청소 로봇(100)은 현재 위치 주변을 스캔하여 로컬 맵을 획득할 수 있다(S110).Referring to FIG. 24, the cleaning robot 100 scans around the current position to obtain a local map (S110).

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

청소 로봇(100)은 자신의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하거나, 또는 청소 로봇(100)의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출할 수 있다.The cleaning robot 100 performs a ray casting technique on all directions while rotating 360 degrees at a virtual sensor data extraction position centered on the current position of the cleaning robot 100 to extract virtual sensor data to acquire the local map Or a local map of a predetermined size centered on each of a plurality of local map extraction positions centered on the current position of the cleaning robot 100, from the environment map.

다음, 청소 로봇(100)은 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하고, 로컬 맵과 실 센서 데이터 간의 정합을 수행하여 로컬 맵에 대한 현재 위치 좌표를 파악할 수 있다(S130).Next, the cleaning robot 100 measures the distance from the current position to the measurement object to acquire the actual sensor data, and performs matching between the local map and the actual sensor data to grasp the current position coordinates of the local map (S 130 ).

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

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

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

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

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

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

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

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

이때, 로컬 맵과 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 유사도가 높은 것을 판단할 수 있다.At this time, it can be determined that the more the number of data points commonly included in the local map and the actual sensor data, the higher the degree of similarity.

다음, 청소 로봇(100)은 상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 현재 위치를 상기 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정할 수 있다(S141). 이때, 청소 로봇의 현재 위치는 현재 위치 좌표 형태일 수 있다.Next, the cleaning robot 100 may determine the current position of the cleaning robot with respect to the local map having the largest similarity as the current position of the cleaning robot with respect to the environment map (S141). At this time, the current position of the cleaning robot may be in the form of the current position coordinates.

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

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

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

단계 S155는 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하는 단계 및 각도 히스토그램의 분포를 고려하여 주 선분 각도를 결정하는 단계를 포함할 수 있다.Step S155 may include a step of classifying a plurality of straight lines by angles to generate an angular histogram, and a step of determining a main line segment angle in consideration of the distribution of the angular histogram.

또한, 단계 S155는 각도 히스토그램에서 직교하거나 평행하는 직선을 서로 병합하는 단계를 더 포함할 수 있다.Step S155 may further include the step of merging orthogonal or parallel straight lines in the angle histogram with each other.

다음, 청소 로봇(100)은 산출된 주 선분 각도에 따라 주행 방향을 조정할 수 있다(S170).Next, the cleaning robot 100 can adjust the traveling direction according to the calculated main line angle (S170).

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

이상 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함이 명백하다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the same is by way of illustration and example only and is not to be construed as limiting the present invention. It is obvious that the modification or improvement is possible.

본 발명의 단순한 변형 내지 변경은 모두 본 발명의 영역에 속하는 것으로 본 발명의 구체적인 보호 범위는 첨부된 특허청구범위에 의하여 명확해질 것이다.It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined 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: Acoustic output unit 180: Processor
181, 410: Position estimating unit 183: Line segment angle calculating unit
185: direction adjusting unit 411: corresponding point obtaining unit
413: Relative position calculating section 415: Relative position calculating section
417: Positioning section 430: Line segment angle calculating section
431: straight line obtaining unit 433: main line segment angle calculating unit

Claims (26)

현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 데이터 획득부;
기 저장된 환경 지도를 기초로 상기 현재 위치 주변을 스캔하여 로컬 맵을 획득하는 로컬 맵 획득부; 및
상기 로컬 맵과 상기 실 센서 데이터 간의 정합을 수행하여 상기 로컬 맵에 대한 상기 현재 위치의 좌표를 파악하고, 상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 상기 현재 위치를 기준으로 주행 방향을 결정하는 프로세서;
를 포함하는 청소 로봇.
A data acquiring unit for acquiring real sensor data by measuring a distance from a current position to a measurement object;
A local map acquiring unit for acquiring a local map by scanning around the current position based on a pre-stored environment map; And
Calculating a main line segment angle of a line segment existing in the local map by performing a matching between the local map and the actual sensor data to grasp the coordinates of the current position with respect to the local map, A processor for determining;
Cleaning robot.
제1항에 있어서,
상기 프로세서는,
상기 로컬 맵에 존재하는 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정하는 청소 로봇.
The method according to claim 1,
The processor comprising:
And the main line segment angle is determined by classifying a plurality of straight lines existing in the local map by an angle.
제1항에 있어서,
상기 프로세서는,
상기 현재 위치 좌표를 기준으로 결정된 상기 주행 방향을 기초로 상기 청소 로봇의 주행 방향을 제자리 회전 시키는 청소 로봇.
The method according to claim 1,
The processor comprising:
And rotates the traveling direction of the cleaning robot in place based on the traveling direction determined based on the current position coordinates.
제1항에 있어서,
상기 데이터 획득부는,
상기 청소 로봇이 정지된 상태에서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 일정 각도로 회전하면서 상기 실 센서 데이터를 획득하거나, 또는 상기 청소 로봇이 제자리에서 360° 회전하면서 전 방향에 대한 실 센서 데이터를 획득하는 청소 로봇.
The method according to claim 1,
Wherein the data obtaining unit comprises:
Or the cleaning robot obtains the room sensor data while rotating the cleaning robot at a predetermined angle in place or the cleaning robot rotates 360 ° in place to obtain the room sensor data in all directions A cleaning robot that acquires sensor data of a room sensor.
제1항에 있어서,
상기 로컬 맵 획득부는,
상기 청소 로봇의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하는 청소 로봇.
The method according to claim 1,
The local map obtaining unit obtains,
Wherein the robot is rotated 360 degrees at a virtual sensor data extraction position centered on a current position of the cleaning robot to perform a ray casting technique for all directions to extract virtual sensor data to acquire the local map.
제1항에 있어서,
상기 로컬 맵 획득부는,
상기 청소 로봇의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출하는 청소 로봇.
The method according to claim 1,
The local map obtaining unit obtains,
And extracts, from the environment map, a local map of a predetermined size centered on each of the plurality of local map extraction positions centered on the current position of the cleaning robot.
제1항에 있어서,
상기 프로세서는,
상기 로컬 맵에 대한 청소 로봇의 현재 위치 좌표를 파악하기 위한 위치 추정부;
상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하기 위한 선분 각도 산출부; 및
상기 청소 로봇이 현재 위치에서 상기 주 선분 각도에 따라 주행 방향을 회전하도록 하는 방향 조정부;
를 포함하는 청소 로봇.
The method according to claim 1,
The processor comprising:
A position estimating unit for determining a current position coordinate of the cleaning robot with respect to the local map;
A line segment angle calculating unit for calculating a line segment angle of a line segment existing in the local map; And
A direction adjusting unit for causing the cleaning robot to rotate in a traveling direction according to the main line segment angle at a current position;
Cleaning robot.
제7항에 있어서,
상기 위치 추정부는,
상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 대응점 획득부;
획득된 상기 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 상대 위치 계산부;
복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 유사도 계산부; 및
상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 상대 위치를 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하여 현재 위치 좌표를 파악하는 위치 결정부;
를 포함하는 청소 로봇.
8. The method of claim 7,
The position estimating unit may calculate,
A corresponding point obtaining unit for obtaining a plurality of corresponding points through data matching between the real sensor data and the local map;
A relative position calculation unit for calculating a relative position of the real sensor data with respect to the local map by using the plurality of corresponding points acquired;
A similarity calculation unit for calculating a similarity between the plurality of local maps and the real sensor data; And
A positioning unit for determining a relative position of the cleaning robot with respect to the local map having the largest degree of similarity as a current position of the cleaning robot with respect to the environment map to grasp the current position coordinates;
Cleaning robot.
제8항에 있어서,
상기 유사도 계산부는,
상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높다고 계산하는 청소 로봇.
9. The method of claim 8,
Wherein the similarity-
And calculates the degree of similarity as the number of data points commonly included in the local map and the room sensor data increases.
제7항에 있어서,
상기 선분 각도 산출부는,
상기 로컬 맵에서 복수 개의 직선을 획득하는 직선 획득부; 및
상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 결정하는 주 선분 각도 산출부;
를 포함하는 청소 로봇.
8. The method of claim 7,
The line segment angle calculating unit calculates,
A straight line obtaining unit obtaining a plurality of straight lines from the local map; And
A main line segment angle calculating unit for classifying the plurality of straight lines by an angle to determine a main line segment angle;
Cleaning robot.
제10항에 있어서,
상기 직선 획득부는,
허프 변환(Hough Transform)을 이용하여 상기 로컬 맵에서 상기 복수 개의 직선을 획득하는 청소 로봇.
11. The method of claim 10,
The straight-
And acquires the plurality of straight lines in the local map using a Hough Transform.
제10항에 있어서,
상기 주 선분 각도 산출부는,
상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하고, 상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정하는 청소 로봇.
11. The method of claim 10,
The main line segment angle calculating unit calculates,
Wherein the main line segment angle is determined in consideration of the distribution of the angle histogram by generating an angle histogram by classifying the plurality of straight lines by an angle.
제12항에 있어서,
상기 주 선분 각도 산출부는,
직교하거나 평행하는 직선을 서로 병합하여 상기 각도 히스토그램을 생성하는 청소 로봇.
13. The method of claim 12,
The main line segment angle calculating unit calculates,
Wherein the angle histogram is generated by merging orthogonal or parallel straight lines.
제10항에 있어서,
상기 주 선분 각도 산출부는,
저역 통과 필터를 이용하여 상기 각도 히스토그램의 잡음을 제거하여 상기 로컬 맵의 주 선분 각도를 결정하는 청소 로봇.
11. The method of claim 10,
The main line segment angle calculating unit calculates,
And removing the noise of the angle histogram by using a low pass filter to determine the main line segment angle of the local map.
제1항에 있어서,
상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 메시지 형태로 출력하기 위한 디스플레이;
를 더 포함하는 청소 로봇.
The method according to claim 1,
A display for outputting a message indicating that the running direction of the cleaning robot has been adjusted according to the main line segment angle;
And a cleaning robot.
제1항에 있어서,
상기 청소 로봇의 주행 방향이 상기 주 선분 각도에 따라 조정 완료됨을 음성 형태로 출력하기 위한 음향 출력부;
를 더 포함하는 청소 로봇.
The method according to claim 1,
An acoustic output unit for outputting, in a voice form, that the running direction of the cleaning robot is adjusted according to the main line segment angle;
And a cleaning robot.
제1항에 있어서,
거리를 측정하기 위한 센서; 를 더 포함하고,
상기 데이터 획득부는 상기 센서를 이용하여 상기 센서로부터 상기 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 청소 로봇.
The method according to claim 1,
A sensor for measuring the distance; Further comprising:
Wherein the data acquiring unit acquires the actual sensor data by measuring a distance from the sensor to the measurement target using the sensor.
현재 위치 주변을 스캔하여 로컬 맵을 획득하는 단계;
상기 현재 위치로부터 측정 대상까지의 거리를 측정하여 실 센서 데이터를 획득하는 단계;
상기 로컬 맵과 상기 실 센서 데이터 간의 정합을 수행하여 상기 로컬 맵에 대한 현재 위치 좌표를 파악하는 단계;
상기 로컬 맵에 존재하는 선분의 주 선분 각도를 산출하여 주행 방향을 결정하는 단계; 및
산출된 상기 주 선분 각도에 따라 주행 방향을 조정하는 단계;
를 포함하는 청소 로봇의 제어방법.
Scanning the vicinity of the current position to obtain a local map;
Obtaining a real sensor data by measuring a distance from the current position to a measurement object;
Determining a current position coordinate of the local map by performing matching between the local map and the real sensor data;
Calculating a main line segment angle of a line segment existing in the local map and determining a traveling direction; And
Adjusting the running direction according to the calculated main line angle;
And a controller for controlling the cleaning robot.
제18항에 있어서,
상기 로컬 맵을 획득하는 단계는,
상기 청소 로봇이 주행하는 기 저장된 환경 지도를 기초로 상기 현재 위치 주변을 스캔하여 상기 로컬 맵을 획득하는 청소 로봇의 제어방법.
19. The method of claim 18,
The step of acquiring the local map comprises:
Wherein the cleaning robot scans around the current position based on a pre-stored environment map that the cleaning robot travels to acquire the local map.
제19항에 있어서,
상기 환경 지도는 2차원 격자 지도 또는 3차원 격자 지도인 청소 로봇의 제어방법.
20. The method of claim 19,
Wherein the environmental map is a two-dimensional grid map or a three-dimensional grid map.
제18항에 있어서,
상기 로컬 맵을 획득하는 단계는,
상기 청소 로봇의 현재 위치를 중심으로 선정된 가상 센서 데이터 추출 위치에서 360°회전하면서 전 방향에 대해 광선 던지기(Ray Casting) 기법을 수행하여 가상 센서 데이터를 추출하여 상기 로컬 맵을 획득하거나, 또는
상기 청소 로봇의 현재 위치를 중심으로 선정된 복수의 로컬 맵 추출 위치 각각을 중심으로 기 설정된 크기의 로컬 맵을 상기 환경 지도로부터 추출하는 청소 로봇의 제어방법.
19. The method of claim 18,
The step of acquiring the local map comprises:
The virtual robot may extract the virtual sensor data by performing a ray casting technique on all directions while rotating 360 degrees from the virtual sensor data extraction position centered on the current position of the cleaning robot to acquire the local map,
And extracting from the environment map a local map having a predetermined size centered on each of the plurality of local map extraction positions centered on the current position of the cleaning robot.
제18항에 있어서,
상기 현재 위치 좌표를 파악하는 단계는,
상기 실 센서 데이터와 상기 로컬 맵 간의 데이터 정합을 통해 복수의 대응점을 획득하는 단계;
상기 획득된 복수의 대응점을 이용하여 상기 로컬 맵에 대한 상기 실 센서 데이터의 상대 위치를 계산하는 단계;
복수의 로컬 맵과 상기 실 센서 데이터의 유사도를 계산하는 단계; 및
상기 유사도가 가장 큰 로컬 맵에 대한 상기 청소 로봇의 현재 위치를 상기 환경 지도에 대한 상기 청소 로봇의 현재 위치로 결정하는 단계;
를 포함하는 청소 로봇의 제어방법.
19. The method of claim 18,
Wherein the step of determining the current position coordinates comprises:
Obtaining 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 degree of similarity between the plurality of local maps and the real sensor data; And
Determining a current position of the cleaning robot with respect to the local map having the largest degree of similarity as a current position of the cleaning robot with respect to the environment map;
And a controller for controlling the cleaning robot.
제22항에 있어서,
상기 유사도를 계산하는 단계에서,
상기 로컬 맵과 상기 실 센서 데이터에 공통으로 포함되는 데이터 점의 개수가 많을수록 상기 유사도가 높은 것으로 판단하는 청소 로봇의 제어방법.
23. The method of claim 22,
In calculating the similarity,
And determines that the degree of similarity is higher as the number of data points commonly included in the local map and the actual sensor data increases.
제18항에 있어서,
상기 주행 방향을 결정하는 단계는,
상기 로컬 맵에서 복수 개의 직선을 획득하는 단계; 및
상기 복수 개의 직선을 각도에 따라 분류하여 주 선분 각도를 산출하는 단계;
를 포함하는 청소 로봇의 제어방법.
19. The method of claim 18,
Wherein the step of determining the running direction comprises:
Obtaining a plurality of straight lines in the local map; And
Calculating a main line segment angle by classifying the plurality of straight lines according to an angle;
And a controller for controlling the cleaning robot.
제24항에 있어서,
상기 주 선분 각도를 산출하는 단계는,
상기 복수 개의 직선을 각도에 따라 분류하여 각도 히스토그램을 생성하는 단계; 및
상기 각도 히스토그램의 분포를 고려하여 상기 주 선분 각도를 결정하는 단계;
를 포함하는 청소 로봇의 제어방법.
25. The method of claim 24,
Wherein the step of calculating the main line segment angle comprises:
Generating an angle histogram by classifying the plurality of straight lines according to angles; And
Determining the main line segment angle in consideration of the distribution of the angle histogram;
And a controller for controlling the cleaning robot.
제25항에 있어서,
상기 주 선분 각도를 산출하는 단계는,
상기 각도 히스토그램에서 직교하거나 평행하는 직선은 서로 병합하는 단계;
를 더 포함하는 청소 로봇의 제어방법.
26. The method of claim 25,
Wherein the step of calculating the main line segment angle comprises:
Merging orthogonal or parallel straight lines in the angular histogram;
And a control unit for controlling the cleaning robot.
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 true KR20170047850A (en) 2017-05-08
KR102471487B1 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021112402A1 (en) * 2019-12-06 2021-06-10 엘지전자 주식회사 Mobile robot system, and method for generating boundary information of mobile robot system
KR102486826B1 (en) * 2022-03-10 2023-01-10 이상훈 Immersive video display device
KR20230104331A (en) * 2021-12-30 2023-07-10 인천대학교 산학협력단 Electric Wheelchair Based on Joystick Input with Obstacle Collision Avoidance Function

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950005402A (en) * 1993-08-25 1995-03-20 장석천 Roll forming equipment capable of continuous precision work
KR20070120780A (en) * 2006-06-20 2007-12-26 삼성전자주식회사 Method of building gridmap in mobile robot and method of cell decomposition using it
KR20110024359A (en) * 2009-09-02 2011-03-09 한국과학기술원 Localization method for indoor mobile robots
KR20150004568A (en) * 2013-07-03 2015-01-13 삼성전자주식회사 Method for recognizing position of autonomous mobile robot

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950005402A (en) * 1993-08-25 1995-03-20 장석천 Roll forming equipment capable of continuous precision work
KR20070120780A (en) * 2006-06-20 2007-12-26 삼성전자주식회사 Method of building gridmap in mobile robot and method of cell decomposition using it
KR20110024359A (en) * 2009-09-02 2011-03-09 한국과학기술원 Localization method for indoor mobile robots
KR20150004568A (en) * 2013-07-03 2015-01-13 삼성전자주식회사 Method for recognizing position of autonomous mobile robot

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021112402A1 (en) * 2019-12-06 2021-06-10 엘지전자 주식회사 Mobile robot system, and method for generating boundary information of mobile robot system
KR20210071568A (en) * 2019-12-06 2021-06-16 엘지전자 주식회사 Moving robot system and method for generating boundary information of the same
KR20230104331A (en) * 2021-12-30 2023-07-10 인천대학교 산학협력단 Electric Wheelchair Based on Joystick Input with Obstacle Collision Avoidance Function
KR102486826B1 (en) * 2022-03-10 2023-01-10 이상훈 Immersive video display device

Also Published As

Publication number Publication date
KR102471487B1 (en) 2022-11-28

Similar Documents

Publication Publication Date Title
CN106541407B (en) Cleaning robot and control method thereof
CN108290294B (en) Mobile robot and control method thereof
KR101857952B1 (en) Apparatus and System for Remotely Controlling a Robot Cleaner and Method thereof
US11561549B2 (en) Method of controlling mobile robot
EP3863813B1 (en) Cleaning robot and method of performing task thereof
US10423163B2 (en) Mobile robot and method of controlling same
KR101366860B1 (en) Mobile robot and controlling method of the same
KR102457222B1 (en) Mobile robot and method thereof
US11428801B2 (en) Moving device and object detection method thereof
US20170000307A1 (en) User equipment, cleaning robot including the same, and method for controlling cleaning robot
KR102386361B1 (en) Apparatus for localization of mobile robot and method thereof
KR20100069965A (en) Apparatus and method for recognizing a situation of mobile robot
KR20130092729A (en) A robot cleaner a control method thereof
KR102471487B1 (en) Cleaning robot and controlling method thereof
US20240085916A1 (en) Systems and methods for robotic detection of escalators and moving walkways
KR102669126B1 (en) Moving Robot and controlling method for thereof
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
JP2022021145A (en) Autonomous travel type cleaner, method for controlling autonomous travel type cleaner, and program

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