KR20140132228A - 이동로봇의 지도 작성 장치 및 방법 - Google Patents

이동로봇의 지도 작성 장치 및 방법 Download PDF

Info

Publication number
KR20140132228A
KR20140132228A KR20130051497A KR20130051497A KR20140132228A KR 20140132228 A KR20140132228 A KR 20140132228A KR 20130051497 A KR20130051497 A KR 20130051497A KR 20130051497 A KR20130051497 A KR 20130051497A KR 20140132228 A KR20140132228 A KR 20140132228A
Authority
KR
South Korea
Prior art keywords
node
feature data
node information
information
lowest
Prior art date
Application number
KR20130051497A
Other languages
English (en)
Other versions
KR101883473B1 (ko
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 KR1020130051497A priority Critical patent/KR101883473B1/ko
Priority to US14/037,510 priority patent/US9207678B2/en
Priority to CN201310700706.4A priority patent/CN104142971B/zh
Publication of KR20140132228A publication Critical patent/KR20140132228A/ko
Application granted granted Critical
Publication of KR101883473B1 publication Critical patent/KR101883473B1/ko

Links

Images

Classifications

    • 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
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • 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
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0242Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
    • 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
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • 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
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0255Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
    • 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
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/2163Partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • G06V10/765Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects using rules for classification or partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Electromagnetism (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Optics & Photonics (AREA)
  • Acoustics & Sound (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 발명은 데이터 용량을 줄이고 접근 속도를 빠르게 할 수 있는 이동로봇의 지도 작성 장치 및 방법에 관한 것이다. 이동로봇의 지도 작성 방법은 이동로봇 주변의 환경 인식을 통해 임의의 공간을 점유하는 복수의 특징데이터들을 탐색하는 단계, 탐색된 제1 특징데이터에 대하여 쿼드트리 분할을 수행하고 쿼드트리 분할 결과로써의 제1 노드정보들을 생성하는 단계, 제1 특징데이터를 기준으로 한 제2 특징데이터의 위치를 탐색하는 단계, 및 제1 노드정보들을 이용하여 탐색된 위치별로 제2 특징데이터에 대한 제2 노드정보들을 생성하는 인접-이동 알고리즘을 수행하는 단계를 포함한다.

Description

이동로봇의 지도 작성 장치 및 방법{Apparatus and method for constructing map of mobile robot}
본 발명은 데이터 용량을 줄이고 접근 속도를 빠르게 할 수 있는 이동로봇의 지도 작성 장치 및 방법에 관한 것이다.
이동로봇은 주어진 환경 내에서 자신의 위치를 파악할 수 있어야 할 뿐만 아니라, 이전에 경험하지 못한 새로운 환경에 놓이는 경우 스스로 그 주변 화면에 대한 지도를 작성할 수 있어야 한다. 이동로봇의 지도 작성이란, 주변의 장애물이나 물체가 놓인 위치, 그리고 자유롭게 이동 가능한 열린 공간 등을 알아내어 적절한 방법으로 기억하는 작업을 의미한다.
이러한 이동로봇의 지도 작성 방법은 크게 2D를 기반으로 격자기반 환경지도 작성 방법과 쿼드트리 기반 환경 지도 작성 방법으로 나눌 수 있다. 격자기반 환경지도 작성 방법은 로봇이 주변 환경을 2차원 격자로 나누고 로봇의 현재 위치에서 임의의 격자에 장애물이 존재하는지 여부를 기록하는 것으로, 이동로봇의 주행거리가 늘어나거나 이동 공간의 크기가 커질수록 데이터 량이 많아지므로 큰 메모리 용량을 필요로 한다는 문제점이 있다. 이에 반해 쿼드트리 기반 환경지도 작성 방법은 장애물이 있는 지역은 세밀한 지역으로 나누어 노드에 정보를 부여하지만, 장애물이 없는 지역은 하나의 큰 공간을 대표하는 노드 정보만 표시하면 되기 때문에 메모리를 보다 효율적으로 사용할 수 있다. 그러나 쿼드트리 기반 환경 지도 작성 방법은 공간 인덱스 정보가 없기 때문에 임의의 노드로 접근하기 위해 접근 시간이 소요되며, 저장 데이터 위치 검색이 복잡한 단점이 있어 경로 계획에 부적합하다.
국내공개특허 제2010-0070922호
본 발명이 해결하고자 하는 기술적인 과제는 광역지역에서 운용 가능하도록 데이터 용량을 줄이고 접근 속도를 빠르게 할 수 있는 이동로봇의 지도 작성 장치 및 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 과제를 해결하기 위한 일 실시 예에 따른 이동로봇의 지도 작성 방법은 이동로봇 주변의 환경 인식을 통해 임의의 공간을 점유하는 복수의 특징데이터들을 탐색하는 단계; 상기 탐색된 제1 특징데이터에 대하여 쿼드트리 분할을 수행하고, 상기 쿼드트리 분할 결과로써의 제1 노드정보들을 생성하는 단계; 상기 제1 특징데이터를 기준으로 한 제2 특징데이터의 위치를 탐색하는 단계; 및 상기 제1 노드정보들을 이용하여 상기 탐색된 위치별로 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 인접-이동 알고리즘을 수행하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 위치를 탐색하는 단계는, 상기 제2 특징데이터가 상기 제1 특징데이터의 우측에 위치한 제1 위치, 상기 제2 특징데이터가 상기 제1 특징데이터의 좌측에 위치한 제2 위치, 상기 제2 특징데이터가 상기 제1 특징데이터의 하부에 위치한 제3 위치 및 상기 제2 특징데이터가 상기 제1 특징데이터의 상부에 위치한 제4 위치 중 어느 한 위치를 탐색하는 것을 특징으로 한다.
본 발명에 있어서, 상기 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 노드정보들을 이용하여 상기 제1 위치에서 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제1 인접-이동 알고리즘을 수행하는 단계;인 것을 특징으로 한다.
본 발명에 있어서, 상기 제1 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제2방향을 제1방향으로 변환하는 단계; 및 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제1 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제1방향을 제2방향으로 변환하고 상위노드로 이동하는 단계; 상기 상위노드에서 제2방향을 제1방향으로 변환하는 단계; 및 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 노드정보들을 이용하여 상기 제2 위치에서 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제2 인접-이동 알고리즘을 수행하는 단계;인 것을 특징으로 한다.
본 발명에 있어서, 상기 제2 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제1방향을 제2방향으로 변환하는 단계; 및 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제2 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제2방향을 제1방향으로 변환하고 상위노드로 이동하는 단계; 상기 상위노드에서 제1방향을 제2방향으로 변환하는 단계; 및 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 노드정보들을 이용하여 상기 제3 위치에서 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제3 인접-이동 알고리즘을 수행하는 단계;인 것을 특징으로 한다.
본 발명에 있어서, 상기 제3 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제4방향을 제3방향으로 변환하는 단계; 및 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제3 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제3방향을 제4방향으로 변환하고 상위노드로 이동하는 단계; 상기 상위노드에서 제4방향을 제3방향으로 변환하는 단계; 및 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 노드정보들을 이용하여 상기 제4 위치에서 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제4 인접-이동 알고리즘을 수행하는 단계;인 것을 특징으로 한다.
본 발명에 있어서, 상기 제4 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제3방향을 제4방향으로 변환하는 단계; 및 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제4 인접-이동 알고리즘을 수행하는 단계는, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제4방향을 제3방향으로 변환하고 상위노드로 이동하는 단계; 상기 상위노드에서 제3방향을 제4방향으로 변환하는 단계; 및 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명이 해결하고자 하는 과제를 해결하기 위한 일 실시 예에 따른 이동로봇의 지도 작성 장치는 이동로봇 주변의 환경 인식을 통해 임의의 공간을 점유하는 복수의 특징데이터들을 탐색하는 환경 인식부; 상기 탐색된 제1 특징데이터에 대하여 쿼드트리 분할을 수행하고, 상기 쿼드트리 분할 결과로써의 제1 노드정보들을 생성하는 쿼드트리 정보 생성부; 상기 제1 특징데이터를 기준으로 한 제2 특징데이터의 위치를 탐색하는 탐색부; 및 상기 제1 노드정보들을 이용하여 상기 탐색된 위치별로 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 인접-이동 알고리즘을 수행하는 인접-이동 정보 생성부;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 탐색부는, 상기 제2 특징데이터가 상기 제1 특징데이터의 우측에 위치한 제1 위치, 상기 제2 특징데이터가 상기 제1 특징데이터의 좌측에 위치한 제2 위치, 상기 제2 특징데이터가 상기 제1 특징데이터의 하부에 위치한 제3 위치 및 상기 제2 특징데이터가 상기 제1 특징데이터의 상부에 위치한 제4 위치 중 어느 한 위치를 탐색하는 것을 특징으로 한다.
본 발명에 있어서, 상기 인접-이동 정보 생성부는, 상기 제2 특징데이터가 상기 제1 특징데이터의 우측에 위치한 경우, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제2방향을 제1방향으로 변환하고, 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하거나, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제1방향을 제2방향으로 변환하고 상위노드로 이동한 후, 상기 상위노드에서 제2방향을 제1방향으로 변환하고, 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제1 인접-이동 정보 생성부를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 인접-이동 정보 생성부는, 상기 제2 특징데이터가 상기 제1 특징데이터의 좌측에 위치한 경우, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제1방향을 제2방향으로 변환하고, 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하거나, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제2방향을 제1방향으로 변환하고 상위노드로 이동한 후, 상기 상위노드에서 제1방향을 제2방향으로 변환하고, 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제2 인접-이동 정보 생성부;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 인접-이동 정보 생성부는, 상기 제2 특징데이터가 상기 제1 특징데이터의 하부에 위치한 경우, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제4방향을 제3방향으로 변환하고, 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하거나, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제3방향을 제4방향으로 변환하고 상위노드로 이동한 후, 상기 상위노드에서 제4방향을 제3방향으로 변환하고, 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제3 인접-이동 정보 생성부;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 인접-이동 정보 생성부는, 상기 제2 특징데이터가 상기 제1 특징데이터의 상부에 위치한 경우, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제3방향을 제4방향으로 변환하고, 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하거나, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제4방향을 제3방향으로 변환하고 상위노드로 이동한 후, 상기 상위노드에서 제3방향을 제4방향으로 변환하고, 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제4 인접-이동 정보 생성부;를 포함하는 것을 특징으로 한다.
상술한 바와 같이 본 발명에 따르면, 광역지역에서 운용 가능하도록 데이터 용량을 줄이고 접근 속도를 빠르게 할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 이동로봇의 지도 작성 장치의 구성을 보이는 블록도 이다.
도 2는 도 1 중 이동로봇의 환경인식 결과로 획득한 특징데이터들을 보이는 도면이다.
도 3은 설정된 지도영역을 나타내는 도면이다.
도 4는 도 1 중 제1 특징데이터에 대한 쿼드트리 분할 및 제1 노드정보 생성을 이는 도면이다.
도 5 내지 도 8은 도 1 중 제1 내지 제4 인접 이동(neighborhood moving) 정보 생성을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 이동로봇의 지도 작성 방법의 동작을 보이는 흐름도 이다.
도 10은 도 9 중 인접-이동 알고리즘의 동작을 설명하기 위한 도면이다.
도 11 내지 도 14는 제1 내지 제4 인접-이동 알고리즘의 동작을 설명하기 위한 흐름도 이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 잇는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 매커니즘, 요소, 수단, 구성과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
명세서 전반에서 언급되는 특징데이터라는 용어는, 이동로봇이 임의의 공간에 대해, 환경인식(센서 스캔 또는 촬영 영상)을 통하여, 임의의 공간을 점유하고 있는 장애물을 나타내며, 이러한 특징데이터는 위치정보 또는 그 위치를 나타내는 어드레스 정보를 포함할 수 있다. 또한 명세서 전반에서 언급되는 제1 특징데이터라 함은, 이동로봇이 탐색한 임의의 특징데이터로써 예를 들어, 이동로봇이 탐색한 첫 번째 특징데이터를 포함 할 수 있다. 그리고 제2 특징데이터라 함은, 이동로봇이 제1 특징데이터 다음으로 탐색한 특징데이터를 포함 할 수 있다.
명세서 전반에서 언급되는 제1 방향이라 함은 동쪽(east)을 나타내고, 제2 방향이라 함은 서쪽(west)을 나타내고, 제3 방향이라 함은 남쪽(south)을 나타내고, 제4 방향이라 함은 북쪽(north)를 나타낼 수 있다.
이하, 본 발명의 실시 예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 이동로봇의 지도 작성 장치의 구성을 보이는 블록도 이다.
도 1을 참조하면, 이동로봇의 지도작성 장치는, 이동로봇(100) 내부에 구비되며, 제어부(110), 구동부(120), 사용자 인터페이스(130), 저장부(140) 및 지도 작성부(150)를 포함할 수 있다.
제어부(110)는 마이크로 프로세서(미도시) 등을 포함하여 지도 작성 장치의 전반적인 동작 제어를 수행한다. 제어부(110)는 지도 작성 장치를 탑재한 이동로봇(100)의 위치 인식을 통하여, 임의의 공간 내에서 임의의 방향으로 이동로봇(100)의 이동을 제어하고, 이동로봇(100)의 이동으로 생성된 데이터들을 취합하여 지도 작성을 제어하고, 생성된 모든 데이터에 대하여 저장부(140)로의 기록(저장) 또는 저장부(140)로부터의 독출을 제어한다.
구동부(120)는 예를 들면, 구동 모터(미도시) 등을 포함하여 지도 작성 장치를 탑재한 이동로봇(100)을 이동시키는 것으로, 제어부(800)로부터의 구동 제어 신호에 의해 임의의 공간 내에서 이동로봇(100)을 이동시킨다.
사용자 인터페이스부(130)는 이동로봇(100)이 주행할 수 있도록 시작지점 및 목표지점의 좌표를 수신하거나, 이동로봇(100)에 작업 명령을 입력하기 위해 사용자에 의한 스위치 조작 신호 또는 음성 신호를 수신한다. 더 나아가 사용자 인터페이스(130)는 이동로봇(100)이 작성할 지도의 크기를 설정할 수 있다. 여기서, 지도라 함은 이동로봇(100)이 실제로 주행한 영역을 일정한 비율로 줄인 축적지도일 수 있으며, 지도의 크기는 사용자 인터페이스(130)를 통하여 설정할 수 있다. 도 2에는 이동로봇(100)이 임의의 공간(예를 들어, 가로 세로 각각 32Km)을 주행하면서 획득한 환경인식 결과로써의 특징데이터들을 보이고 있다. 도 3은 설정된 지도영역을 나타내는 도면으로, 셀(30)의 크기를 가로, 세로 각각 1Km로 설정하여, 이동로봇(100)이 실제 주행한 공간을 표시하고 있다.
지도 작성부(150)는 로봇 주변의 환경인식을 통해 특징데이터들을 탐색하고, 탐색된 특징데이터들에 대해 쿼드트리 분할 및 인접-이동 알고리즘을 수행하여 생성된 위치정보를 이용하여 지도를 작성한다.
본 실시 예에서 지도 작성부(150)는 환경 인식부(151), 쿼드트리 정보 생성부(152), 탐색부(153), 인접-이동 정보 생성부(154)를 포함할 수 있다.
환경 인식부(151)는 제어부(110)의 제어 하에 예를 들면, 초음파 센서, 적외선 센서, 레이저 센서 등을 포함하는 거리 측정 센서(미도시)를 이용하여 이동로봇(100)이 임의의 공간을 스캔(환경 인식)하여 탐색한 특징데이터들을 취합한다. 더 나아가 환경 인식부(151)는 예를 들어 카메라 또는 스테레오 카메라 등을 포함하는 영상 촬영부(미도시)를 이용하여 촬영된 영상내에서 탐색한 특징데이터들을 취합한다. 도 2에는 이동로봇(100)이 임의의 공간을 주행하면서 탐색한 환경인식 결과로써의 특징데이터들을 보이고 있으며, 이동로봇(100)은 환경인식을 통하여 탐색한 특징데이터들의 대략적인 위치를 알 수 있다.
쿼드트리 정보 생성부(152)는 이동로봇(100)이 탐색한 복수의 특징데이터들 중 제1 특징데이터에 대하여 쿼드트리 분할을 수행하고 제1 노드정보들을 생성한다. 예를 들어, 도 2로부터 제1 특징데이터가 “1”이라고 하면, 제1 특징데이터는 쿼드트리 분할이 수행되어 도 3과 같이 표시될 수 있다.
쿼드트리 분할 수행 결과, 최 상위 노드를 제외하고, 제1 특징데이터를 포함하는 모든 하위노드에 노드정보가 생성되는데, 각 노드정보는 제1방향(east:E) 또는 제2방향(west:W) 중 어느 한 방향과, 제3방향(south: S) 또는 제4방향(north: N) 중 어느 한 방향으로 구성된다. 이하 설명의 편의상 제1방향을 E로, 제2방향을 W로, 제3방향을 S로, 제4방향을 N으로 표기하도록 한다.
도 3에 도시된 제1 특징데이터 “1”에 대한 쿼드트리 분할을 설명하면 다음과 같다. 쿼드트리 정보 생성부(152)는 도 3과 같이 설정된 지도영역 전체를 최 상위노드(Root)로 시작하고, 지도영역 전체를 제1 상위노드로써 4개의 공간(NW,NE,SW,NE)으로 분할하면, 제1 특징데이터는 제1 상위노드의 NW 공간에 위치하게 된다. 다음에, 쿼드트리 정보 생성부(152)는 제1 상위노드의 NW 공간을 제2 상위노드로써 4개의 공간(NW,NE,SW,NE)으로 분할하면, 제1 특징데이터는 제2 상위노드의 SW 공간에 위치하게 된다. 다음에, 쿼드트리 정보 생성부(152)는 제2 상위노드의 SW 공간을 제3 상위노드로써 4개의 공간(NW,NE,SW,NE)으로 분할하면, 제1 특징데이터는 제3 상위노드의 SE 공간에 위치하게 된다. 다음에, 쿼드트리 정보 생성부(152)는 제3 상위노드의 SE 공간을 제4 상위노드로써 4개(NW,NE,SW,NE)의 공간으로 분할하면, 제1 특징데이터는 제4 상위노드의 NW 공간에 위치하게 된다. 다음에, 쿼드트리 정보 생성부(152)는 제4 상위노드의 NW 공간을 4개의 공간(NW,NE,SW,NE)으로 분할하면, 제1 특징데이터는 NW 공간에 위치하게 되며, 이 NW는 최 하위노드가 된다. 이와 같이 제1 특징데이터에 대해 쿼드트리 분할 결과로 생성되는 제1 노드정보는 Root-NW-SW-SE-NW-NW가 된다. 도 4a에는 제1 특징데이터에 대하여 상기에서 설명한 쿼드트리 분할을 도시하고, 있고, 도 4b에는 저장부(140)에 저장되는 제1 특징데이터의 제1 노드정보들이 도시되어 있다.
탐색부(153)는 제1 특징데이터의 위치를 기준으로 제2 특징데이터의 위치를 탐색한다. 탐색부(153)는 도 2에서 이동로봇(100)이 탐색한 복수의 특징데이터들에 대해 제1 특징데이터와 가장 가깝거나, 시간상으로 제1 특징데이터 다음으로 탐색된 제2 특징데이터의 위치를 탐색할 수 있다. 탐색부(153)는 제2 특징데이터의 위치를, 제1 특징데이터의 위치를 기준으로 하여, 제1위치 내지 제4위치로 탐색할 수 있다. 여기서 위치탐색이 중요한 이유는 탐색부(153)가 탐색한 제2 특징데이터의 위치에 따라 후술하는 인접-이동 알고리즘의 동작이 달라지기 때문이다.
본 실시 예에서는 설명의 편의 상, 각 특징데이터들을 도 2에 도시된 순서로 나열하여 설명하기로 한다. 도 2를 참조하면, 제2 특징데이터는 “2”가 되고, 제3 특징데이터는 “3”이 되는 방식으로 제12 특징데이터는 “12”가 된다. 여기서 제1 특징데이터를 기준으로 제2 내지 제4 특징데이터들은 제1 위치에 있고, 제4 특징 데이터를 기준으로 제5 내지 제7 특징데이터들은 제3 위치에 있고, 제7 특징데이터를 기준으로 제8 내지 제10 특징데이터들은 제2 위치에 있으며, 제10 특징데이터를 기준으로 제11 및 제12 특징데이터들은 제4 위치에 있다. 더 나아가, 상술한 제1 특징데이터, 제4 특징데이터, 제7 특징데이터 및 제10 특징데이터 각각은 후술하는 청구범위에서의 제1 특징데이터로 표현될 수 있으며, 나머지 특징데이터들은 후술하는 청구범위에서의 제2 특징데이터로 표현될 수 있다.
인접-이동 정보 생성부(154)는 제1 특징데이터의 제1 노드정보들을 이용하여 탐색부(153)가 탐색한 제2 특징데이터의 위치별로 다른 인접-이동 알고리즘을 수행하여 제2 특징데이터에 대한 제2 노드정보들을 생성한다.
여기서, 인접-이동 알고리즘이라 함은, 제1 특징데이터의 제1노드정보들을 이용하여 제2 특징데이터의 제2 노드정보들을 생성하는 알고리즘이다. 종래의 경우 제2 특징데이터의 제2 노드정보들을 생성하기 위해, 제1 특징데이터와 같이 쿼드트리 분할을 수행해야 하기 때문에, 접근 시간이 소요되고, 위치 검색이 복잡한 단점이 있었다. 그러나, 본 실시예의 인접-이동 알고리즘을 수행하게 되면, 상술한 단점을 해결할 수 있게 된다.
또한 본 실시 예에서 인접-이동 알고리즘은 제1 내지 제4 인접-이동 알고리즘으로 분류될 수 있다. 제1 인접-이동 알고리즘은 탐색부(153)의 탐색 결과를 기반으로, 제2 특징데이터가 제1위치에 있는 경우 수행되고, 제2 인접-이동 알고리즘은 제2 특징데이터가 제2위치에 있는 경우 수행되고, 제3 인접-이동 알고리즘은 제2 특징데이터가 제3위치에 있는 경우 수행되며, 제4 인접-이동 알고리즘은 제2 특징데이터가 제4위치에 있는) 경우 수행된다.
이하, 인접-이동 정보 생성부(154)가 제1 내지 제2 인접-이동 알고리즘의 수행하여 제2 특징데이터의 제2 노드정보들을 생성하는 내용을 설명하기로 한다.
먼저, 도 5를 참조하여, 인접-이동 정보 생성부(154)의 제1 인접-이동 알고리즘 수행을 설명하기로 한다.
인접-이동 정보 생성부(154)는 제1 특징데이터 “1”의 제1 노드정보들 중 최하위노드가 W를 포함하고 있는지 판단한다. 도 5a를 참조하면, 제1 특징데이터 “1”의 최하위 노드는 NW이므로, W를 포함하고 있음을 알 수 있다. 제1 특징데이터 “1”의 최하위노드가 W를 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 W를 E로 변환(①)하고, W를 포함하는 노드가 검색될때까지 상위노드로 이동(②)한다. 도 5a의 경우 제1 상위노드가 NW로써, W를 포함하고 있으므로, 최하위노드에서 제1 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제1 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제1 상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “2”에 대한 제2 노드정보들을 생성(③)한다. 따라서, 생성되는 제2 특징데이터 “2”의 제2 노드정보들은 Root-NW-SW-SE-NW-NE가 된다. 여기서, 상위노드로 이동하더라도 W를 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제1 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 W가 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 최하위노드까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드를 제외한 나머지 노드들(제1 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이와 같은 제2 특징데이터 “2”에 대한 제2 노드정보들의 생성이 완료되면, 제2 특징데이터 “2”는 이제 제1 특징데이터가 되고, 제1 특징데이터 “2”를 기준으로 제1 위치에 있는 제2 특징데이터 “3”에 대한 제2 노드정보들을 생성한다. 인접-이동 정보 생성부(154)는 제1 특징데이터 “2”의 노드정보들 중 최하위노드가 W를 포함하고 있는지 판단하여, 제1 특징데이터 “2”의 최하위노드가 W를 포함하고 있지 않은 경우, 제1 특징데이터 “2”의 최하위노드가 E를 포함하고 있는지 판단한다. 도 5b를 참조하면, 제1 특징데이터 “2”의 최하위 노드정보는 NE이므로, E를 포함하고 있음을 알 수 있다. 제1 특징데이터 “2”의 최하위노드가 E를 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 E를 W로 변환하고 상위노드로 이동(①)한다. 다음에 인접-이동 정보 생성부(154)는 이동한 상위노드가 W를 포함하고 있는지 판단한다. 이동한 상위노드가 W를 포함하고 있는 경우 W를 E로 변환(②)한다. 그리고 나서 인접-이동 정보 생성부(154)는 W를 포함하는 노드가 검색될때까지 상위노드로 이동(③)한다. 도 5b의 경우 제3 상위노드가 SW로써, W를 포함하고 있으므로, 최하위노드에서 제3 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제1 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제2 상위노드까지의 노드정보들, 변환된 제1 상위노드 정보 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “3”에 대한 제2 노드정보들을 생성(④)한다. 따라서, 생성되는 제2 특징데이터 “3”의 제2 노드정보들은 Root-NW-SW-SE-NE-NW가 된다. 여기서, 상위노드로 이동하더라도 W를 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제2 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 W가 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 노드들(최하위노드 및 제1 상위노드)까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드 및 변환된 제1 상위노드를 제외한 나머지 노드들(제2 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이와 같은 제2 특징데이터 “3”에 대한 제2 노드정보들의 생성이 완료되면, 제2 특징데이터 “3”은 이제 제1 특징데이터가 되고, 제1 특징데이터 “3”를 기준으로 제1 위치에 있는 제2 특징데이터 “4”에 대한 제2 노드정보들을 생성한다. 인접-이동 정보 생성부(154)는 제1 특징데이터 “3”의 노드정보들 중 최하위노드가 W를 포함하고 있는지 판단한다. 도 5c를 참조하면, 제1 특징데이터 “3”의 최하위 노드정보는 NW이므로, W를 포함하고 있음을 알 수 있다. 제1 특징데이터 “3”의 최하위노드가 W를 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 W를 E로 변환(①)하고, W를 포함하는 노드가 검색될때까지 상위노드로 이동(②)한다. 도 5c의 경우 제2 상위노드가 SW로써, W를 포함하고 있으므로, 최하위노드에서 제3 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제1 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제1 상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “4”에 대한 제2 노드정보들을 생성(③)한다. 따라서, 생성되는 제2 특징데이터 “4”의 제2 노드정보들은 Root-NW-SW-SE-NE-NE가 된다. 여기서, 상위노드로 이동하더라도 W를 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제1 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 W가 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 최하위노드까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드를 제외한 나머지 노드들(제1 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이로부터 제1 인접-이동 알고리즘은 제1 특징데이터의 제1 노드정보들 중 최하위노드가 W를 포함하는 경우와, E를 포함하는 경우로 분리되어 다르게 수행될 수 있다. 최하위노드가 W를 포함하는 경우에는 최하위 노드만 W를 E로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다. 반면에 최하위노드가 E를 포함하는 경우에는 최하위노드의 E를 W로 변환하고, 다음 상위노드로 이동하여 W를 E로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다.
다음에, 도 6을 참조하여, 인접-이동 정보 생성부(154)의 제2 인접-이동 알고리즘 수행을 설명하기로 한다.
인접-이동 정보 생성부(154)는 제1 특징데이터 “7”의 제1 노드정보들 중 최하위노드가 E를 포함하고 있는지 판단한다. 도 6a를 참조하면, 제1 특징데이터 “7”의 최하위 노드정보는 SE이므로, E를 포함하고 있음을 알 수 있다. 제1 특징데이터 “7”의 최하위노드가 E를 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 E를 W로 변환(①)하고, E를 포함하는 노드가 검색될때까지 상위노드로 이동(②)한다. 도 6a의 경우 제1 상위노드가 SE로써, E를 포함하고 있으므로, 최하위노드에서 제1 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제2 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제1상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “8”에 대한 제2 노드정보들을 생성(③)한다. 따라서, 생성되는 제2 특징데이터 “8”의 제2 노드정보들은 Root-NW-SW-SE-SE-SW가 된다. 여기서, 상위노드로 이동하더라도 E를 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제1 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 E가 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 최하위노드까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드를 제외한 나머지 노드들(제1 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이와 같은 제2 특징데이터 “8”에 대한 제2 노드정보들의 생성이 완료되면, 제2 특징데이터 “8”는 이제 제1 특징데이터가 되고, 제1 특징데이터 “8”를 기준으로 제2 위치에 있는 제2 특징데이터 “9”에 대한 제2 노드정보들을 생성한다. 인접-이동 정보 생성부(154)는 제1 특징데이터 “8”의 노드정보들 중 최하위노드가 E를 포함하고 있는지 판단하여, 제1 특징데이터 “8”의 최하위노드가 E를 포함하고 있지 않은 경우, 제1 특징데이터 “8”의 최하위노드가 W를 포함하고 있는지 판단한다. 도 6b를 참조하면, 제1 특징데이터 “8”의 최하위 노드정보는 SW이므로, W를 포함하고 있음을 알 수 있다. 제1 특징데이터 “8”의 최하위노드가 W를 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 W를 E로 변환하고 상위노드로 이동(①)한다. 다음에 인접-이동 정보 생성부(154)는 이동한 상위노드가 E를 포함하고 있는지 판단한다. 이동한 상위노드가 E를 포함하고 있는 경우 E를 W로 변환(②)한다. 그리고 나서 인접-이동 정보 생성부(154)는 E를 포함하는 노드가 검색될때까지 상위노드로 이동(③)한다. 도 5b의 경우 제3 상위노드가 SE로써, E를 포함하고 있으므로, 최하위노드에서 제3 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제2 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제2 상위노드까지의 노드정보들, 변환된 제1 상위노드 정보 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “9”에 대한 제2 노드정보들을 생성(④)한다. 따라서, 생성되는 제2 특징데이터 “9”의 제2 노드정보들은 Root-NW-SW-SE-SW-SE 된다. 여기서, 상위노드로 이동하더라도 E를 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제2 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 E가 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 노드들(최하위노드 및 제1 상위노드)까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드 및 변환된 제1 상위노드를 제외한 나머지 노드들(제2 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이와 같은 제2 특징데이터 “9”에 대한 제2 노드정보들의 생성이 완료되면, 제2 특징데이터 “9”는 이제 제1 특징데이터가 되고, 제1 특징데이터 “9”를 기준으로 제2 위치에 있는 제2 특징데이터 “10”에 대한 제2 노드정보들을 생성한다. 인접-이동 정보 생성부(154)는 제1 특징데이터 “9”의 노드정보들 중 최하위노드가 E를 포함하고 있는지 판단한다. 도 6c를 참조하면, 제1 특징데이터 “9”의 최하위 노드정보는 SE이므로, E를 포함하고 있음을 알 수 있다. 제1 특징데이터 “9”의 최하위노드가 E를 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 E를 W로 변환(①)하고, E를 포함하는 노드가 검색될때까지 상위노드로 이동(②)한다. 도 6c의 경우 제2 상위노드가 SE로써, E를 포함하고 있으므로, 최하위노드에서 제3 상위노드까지 이동하면된다. 그리고 나서 인접-이동 정보 생성부(154)는 제2 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제1 상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “10”에 대한 제2 노드정보들을 생성(③)한다. 따라서, 생성되는 제2 특징데이터 “10”의 제2 노드정보들은 Root-NW-SW-SE-SW-SW가 된다. 여기서, 상위노드로 이동하더라도 E를 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제1 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 E가 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 최하위노드까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드를 제외한 나머지 노드들(제1 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이로부터 제2 인접-이동 알고리즘은 제1 특징데이터의 제1 노드정보들 중 최하위노드가 E를 포함하는 경우와, W를 포함하는 경우로 분리되어 다르게 수행될 수 있다. 최하위노드가 E를 포함하는 경우에는 최하위 노드만 E를 W로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다. 반면에 최하위노드가 W를 포함하는 경우에는 최하위노드의 W를 E로 변환하고, 다음 상위노드로 이동하여 E를 W로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다.
다음에, 도 7을 참조하여, 인접-이동 정보 생성부(154)의 제3 인접-이동 알고리즘 수행을 설명하기로 한다.
인접-이동 정보 생성부(154)는 제1 특징데이터 “4”의 제1 노드정보들 중 최하위노드가 N을 포함하고 있는지 판단한다. 도 7a를 참조하면, 제1 특징데이터 “4”의 최하위 노드정보는 NE이므로, N을 포함하고 있음을 알 수 있다. 제1 특징데이터 “4”의 최하위노드가 N을 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 N를 S로 변환(①)하고, N을 포함하는 노드가 검색될때까지 상위노드로 이동(②)한다. 도 7a의 경우 제1 상위노드가 NE로써, N을 포함하고 있으므로, 최하위노드에서 제1 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제3 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제1상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “5”에 대한 제2 노드정보들을 생성(③)한다. 따라서, 생성되는 제2 특징데이터 “5”의 제2 노드정보들은 Root-NW-SW-SE-NE-SE가 된다. 여기서, 상위노드로 이동하더라도 N을 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제1 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 N이 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 최하위노드까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드를 제외한 나머지 노드들(제1 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이와 같은 제2 특징데이터 “4”에 대한 제2 노드정보들의 생성이 완료되면, 제2 특징데이터 “4”는 이제 제1 특징데이터가 되고, 제1 특징데이터 “4”를 기준으로 제3 위치에 있는 제2 특징데이터 “5”에 대한 제2 노드정보들을 생성한다. 인접-이동 정보 생성부(154)는 제1 특징데이터 “5”의 노드정보들 중 최하위노드가 N를 포함하고 있는지 판단하여, 제1 특징데이터 “5”의 최하위노드가 N를 포함하고 있지 않은 경우, 제1 특징데이터 “5”의 최하위노드가 S를 포함하고 있는지 판단한다. 도 7b를 참조하면, 제1 특징데이터 “5”의 최하위 노드정보는 SE이므로, S를 포함하고 있음을 알 수 있다. 제1 특징데이터 “5”의 최하위노드가 S를 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 S를 N으로 변환하고 상위노드로 이동(①)한다. 다음에 인접-이동 정보 생성부(154)는 이동한 상위노드가 N을 포함하고 있는지 판단한다. 이동한 상위노드가 N을 포함하고 있는 경우 N을 S로 변환(②)한다. 그리고 나서 인접-이동 정보 생성부(154)는 N을 포함하는 노드가 검색될때까지 상위노드로 이동(③)한다. 도 7b의 경우 제4 상위노드가 NW로써, N을 포함하고 있으므로, 최하위노드에서 제4 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제3 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제2 상위노드까지의 노드정보들, 변환된 제1 상위노드 정보 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “6”에 대한 제2 노드정보들을 생성(④)한다. 따라서, 생성되는 제2 특징데이터 “6”의 제2 노드정보들은 Root-NW-SW-SE-SE-NE 된다. 여기서, 상위노드로 이동하더라도 N을 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제2 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 N이 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 노드들(최하위노드 및 제1 상위노드)까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드 및 변환된 제1 상위노드를 제외한 나머지 노드들(제2 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이와 같은 제2 특징데이터 “6”에 대한 제2 노드정보들의 생성이 완료되면, 제2 특징데이터 “6”은 이제 제1 특징데이터가 되고, 제1 특징데이터 “6”을 기준으로 제3 위치에 있는 제2 특징데이터 “7”에 대한 제2 노드정보들을 생성한다. 인접-이동 정보 생성부(154)는 제1 특징데이터 “6”의 노드정보들 중 최하위노드가 N을 포함하고 있는지 판단한다. 도 7c를 참조하면, 제1 특징데이터 “6”의 최하위 노드정보는 NE이므로, N을 포함하고 있음을 알 수 있다. 제1 특징데이터 “6”의 최하위노드가 N을 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 N을 S로 변환(①)하고, E를 포함하는 노드가 검색될때까지 상위노드로 이동(②)한다. 도 7c의 경우 제4 상위노드가 NW로써, N을 포함하고 있으므로, 최하위노드에서 제4 상위노드까지 이동하면된다. 그리고 나서 인접-이동 정보 생성부(154)는 제3 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제1 상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “7”에 대한 제2 노드정보들을 생성(③)한다. 따라서, 생성되는 제2 특징데이터 “10”의 제2 노드정보들은 Root-NW-SW-SE-SE-SE가 된다. 여기서, 상위노드로 이동하더라도 N을 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제1 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 N이 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 최하위노드까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드를 제외한 나머지 노드들(제1 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이로부터 제3 인접-이동 알고리즘은 제1 특징데이터의 제1 노드정보들 중 최하위노드가 N을 포함하는 경우와, S를 포함하는 경우로 분리되어 다르게 수행될 수 있다. 최하위노드가 N을 포함하는 경우에는 최하위 노드만 N을 S로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다. 반면에 최하위노드가 S를 포함하는 경우에는 최하위노드의 S를 N으로 변환하고, 다음 상위노드로 이동하여 N을 S로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다.
다음에, 도 8을 참조하여, 인접-이동 정보 생성부(154)의 제4 인접-이동 알고리즘 수행을 설명하기로 한다.
인접-이동 정보 생성부(154)는 제1 특징데이터 “10”의 제1 노드정보들 중 최하위노드가 S를 포함하고 있는지 판단한다. 도 8a를 참조하면, 제1 특징데이터 “10”의 최하위 노드정보는 SW이므로, S를 포함하고 있음을 알 수 있다. 제1 특징데이터 “10”의 최하위노드가 S를 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 S를 N으로 변환(①)하고, S를 포함하는 노드가 검색될때까지 상위노드로 이동(②)한다. 도 8a의 경우 제1 상위노드가 SW로써, S를 포함하고 있으므로, 최하위노드에서 제1 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제4 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제1상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터 “11”에 대한 제2 노드정보들을 생성(③)한다. 따라서, 생성되는 제2 특징데이터 “11”의 제2 노드정보들은 Root-NW-SW-SE-SW-NW가 된다. 여기서, 상위노드로 이동하더라도 S를 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제1 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 S가 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 최하위노드까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드를 제외한 나머지 노드들(제1 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이와 같은 제2 특징데이터 “11”에 대한 제2 노드정보들의 생성이 완료되면, 제2 특징데이터 “11”은 이제 제1 특징데이터가 되고, 제1 특징데이터 “11”을 기준으로 제4 위치에 있는 제2 특징데이터 “12”에 대한 제2 노드정보들을 생성한다. 인접-이동 정보 생성부(154)는 제1 특징데이터 “11”의 노드정보들 중 최하위노드가 S를 포함하고 있는지 판단하여, 제1 특징데이터 “11”의 최하위노드가 S를 포함하고 있지 않은 경우, 제1 특징데이터 “11”의 최하위노드가 N을 포함하고 있는지 판단한다. 도 8b를 참조하면, 제1 특징데이터 “11”의 최하위 노드정보는 NW이므로, N을 포함하고 있음을 알 수 있다. 제1 특징데이터 “11”의 최하위노드가 N을 포함하고 있는 경우, 인접-이동 정보 생성부(154)는 최하위노드의 N을 S로 변환하고 상위노드로 이동(①)한다. 다음에 인접-이동 정보 생성부(154)는 이동한 상위노드가 S를 포함하고 있는지 판단한다. 이동한 상위노드가 S를 포함하고 있는 경우 S를 N으로 변환(②)한다. 그리고 나서 인접-이동 정보 생성부(154)는 S를 포함하는 노드가 검색될때까지 상위노드로 이동(③)한다. 도 8b의 경우 제2 상위노드가 SE로써, S를 포함하고 있으므로, 최하위노드에서 제2 상위노드까지 이동하면 된다. 그리고 나서 인접-이동 정보 생성부(154)는 제4 인접-이동 알고리즘의 동작을 종료하고, 기존의 최상위노드부터 제2 상위노드까지의 노드정보들, 변환된 제1 상위노드 정보 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터“12”에 대한 제2 노드정보들을 생성(④)한다. 따라서, 생성되는 제2 특징데이터 “12”의 제2 노드정보들은 Root-NW-SW-SE-NW-SW 된다. 여기서, 상위노드로 이동하더라도 S를 포함하고 있는 노드정보가 검색되지 않는 경우, 즉 제2 상위노드부터 최상위노드까지의 노드 중 어느 노드에도 S가 포함되어 있지 않는 경우, 현재노드(최상위노드)부터 변환된 노드들(최하위노드 및 제1 상위노드)까지의 결과를 제2 노드정보들로 탐색 완료한다. 여기서 변환된 최하위노드 및 변환된 제1 상위노드를 제외한 나머지 노드들(제2 상위노드부터 최상위노드까지)은 이미 생성되어 있기 때문에 제2 노드정보들의 탐색이 빠르게 이루어져 종래의 쿼드트리 분할 보다 적은 시간이 소요됨을 알 수 있다.
이로부터 제4 인접-이동 알고리즘은 제1 특징데이터의 제1 노드정보들 중 최하위노드가 S를 포함하는 경우와, N을 포함하는 경우로 분리되어 다르게 수행될 수 있다. 최하위노드가 S를 포함하는 경우에는 최하위 노드만 S를 N으로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다. 반면에 최하위노드가 N을 포함하는 경우에는 최하위노드의 N을 S로 변환하고, 다음 상위노드로 이동하여 S를 N으로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다.
이와 같이 지도 작성부(150)는 제1 특징데이터를 기준으로 제2 특징데이터의 위치 탐색결과 및 제1 특징데이터의 제1 노드정보들을 이용하여 제2 특징데이터의 제2 노드정보들을 생성하고, 제1 및 제2 노드정보들을 이용하여 지도를 작성하게 된다.
이하, 도 9 내지 도 14를 참조하여 본 발명에 따른 이동로봇의 지도 작성 방법을 설명하기로 한다. 본 발명에 따른 이동로봇의 지도 작성 방법은 도 1에 도시된 바와 같이 주변 구성 요소들의 도움을 받아 지도 작성부(150)에서 수행될 수 있다. 이하의 설명에서, 도 1 내지 도 8에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 9는 본 발명의 일 실시 예에 따른 이동로봇의 지도 작성 방법의 동작을 보이는 흐름도 이다.
도 9를 참조하면, 지도 작성부(150)는 이동로봇(100) 주변의 환경인식을 통해 임의의 공간을 점유하는 복수의 특징데이터들을 탐색하는 단계(S100)를 수행한다. 지도 작성부(150)는 초음파 센서, 적외선 센서, 레이저 센서 등을 포함하는 거리 측정 센서를 이용하여 이동로봇(100)이 임의의 공간을 스캔(환경 인식)하여 탐색한 특징데이터들을 탐색할 수 있다. 또한 지도 작성부(150)는 예를 들어 카메라 또는 스테레오 카메라 등을 포함하는 영상 촬영부(미도시)를 이용하여 촬영된 영상내에서 탐색한 특징데이터들을 탐색할 수 있다. 지도 작성부(150)는 이동로봇(100)이 환경인식을 통하여 탐색한 특징데이터들의 대략적인 위치를 알 수 있다.
복수의 특징데이터들의 탐색이 완료되면 지도 작성부(150)는 제1 특징데이터에 대하여 쿼드트리 분할을 수행하고, 쿼드트리 분할 결과로써의 제1 노드정보들을 생성하는 단계(S200)를 수행한다. 쿼드트리 분할 수행 결과, 최 상위 노드를 제외하고, 제1 특징데이터를 포함하는 모든 하위노드에 노드정보들이 생성되는데, 각 노드정보는 S 또는 N 방향 중 어느 한 방향과, E 또는 W 중 어느 한 방향으로 구성된다. 도 2 및 도 3을 참조하면, 예를 들어, 제1 특징데이터 “1”에 대해 쿼드트리 분할 결과로 생성되는 제1 노드정보는 Root-NW-SW-SE-NW-NW가 된다.
제1 특징데이터에 대한 제1 노드정보 생성이 완료되면, 지도 작성부(150)는 제1 특징데이터의 위치를 기준으로 제2 특징데이터의 위치를 탐색하는 단계(300)를 수행한다. 지도 작성부(150)는 이동로봇(100)이 탐색한 복수의 특징데이터들에 대해 제1 특징데이터와 가장 가깝거나, 시간상으로 제1 특징데이터 다음으로 탐색된 제2 특징데이터의 위치를 탐색할 수 있다. 탐색부(153)는 제2 특징데이터의 위치를, 제1 특징데이터의 위치를 기준으로 하여, 제1위치 내지 제4위치로 탐색할 수 있다. 여기서 위치탐색이 중요한 이유는 탐색부(153)가 탐색한 제2 특징데이터의 위치에 따라 후술하는 인접-이동 알고리즘의 동작이 달라지기 때문이다.
제2 특징데이터의 위치 탐색이 완료되면, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들을 이용하여 탐색된 위치별로 제2 특징데이터에 대한 제2 노드정보들을 생성하는 인접-이동 알고리즘을 수행하는 단계(S400)를 수행한다. 종래의 경우 제2 특징데이터의 제2 노드정보들을 생성하기 위해, 제1 특징데이터와 같이 쿼드트리 분할을 수행해야 하기 때문에, 접근 시간이 소요되고, 위치 검색이 복잡한 단점이 있었다. 그러나, 본 실시예의 인접-이동 알고리즘을 수행하게 되면, 상술한 단점을 해결할 수 있게 된다.
도 10은 도 9 중 인접 이동 알고리즘의 동작을 설명하기 위한 도면이다.
도 10을 참조하면, 지도 작성부(150)는 제2 특징데이터가 제1 특징데이터의 제1위치(우측)에 있는 경우, 제1 특징데이터의 제1 노드정보들을 이용하여 제1위치에서 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제1 인접-이동 알고리즘을 수행하는 단계(S410)를 수행한다.
지도 작성부(150)는 제2 특징데이터가 제1 특징데이터의 제2위치(좌측)에 있는 경우, 제1 특징데이터의 제1 노드정보들을 이용하여 제2위치에서 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제2 인접-이동 알고리즘을 수행하는 단계(S420)를 수행한다.
지도 작성부(150)는 제2 특징데이터가 제1 특징데이터의 제3위치(하부)에 있는 경우, 제1 특징데이터의 제1 노드정보들을 이용하여 제3위치에서 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제3 인접-이동 알고리즘을 수행하는 단계(S430)를 수행한다.
지도 작성부(150)는 제2 특징데이터가 제1 특징데이터의 제4위치(상부)에 있는 경우, 제1 특징데이터의 제1 노드정보들을 이용하여 제4위치에서 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제4 인접-이동 알고리즘을 수행하는 단계(S440)를 수행한다.
여기서 제1 내지 제4 인접-이동 알고리즘은 반드시 상술한 순서대로 수행되는 것이 아니고, 제2 특징데이터의 위치에 따라 제1 내지 제4 인접-이동 알고리즘 중 어느 한 인접-이동 알고리즘이 수행될 수 있다.
도 11은 도 10 중 제1 인접-이동 알고리즘의 동작을 설명하기 위한 흐름도 이다.
도 11을 참조하면, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제2방향(W)을 포함하고 있는지 판단하는 단계(S411)를 수행한다.
판단 결과, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제2방향(W)을 포함하고 있는 경우, 지도 작성부(150)는 제2방향(W)을 제1방향(E)으로 변환하고 상위노드로 이동하는 단계(S412)를 수행한다.
변환이 완료되면, 지도 작성부(150)는 제2방향(W)을 포함하는 노드가 검색될때까지 상위노드로 이동하는 단계(S413)를 수행한다.
제2방향(W)을 포함하는 노드가 검색되면, 지도 작성부(150)는 제1 인접-이동 알고리즘의 동작을 종료하고 기존의 최상위노드부터 제1 상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계(S414)를 수행한다.
반면에, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제2방향(W)을 포함하고 있지 않은 경우, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제1방향(E)을 포함하고 있는지 포함하는 단계(S415)를 수행한다.
판단결과, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제1방향(E)을 포함하고 있는 경우, 지도 작성부(150)는 제1방향(E)을 제2방향(W)으로 변환하고 상위노드로 이동하는 단계(S416)를 수행한다.
상위노드로의 이동이 완료되면, 지도 작성부(150)는 제2방향(W)를 포함하고 있는 상위노드의 제2?항(W)을 제1방향(E)으로 변환하는 단계(417)를 수행한다.
변환이 완료되면, 지도 작성부(150)는 제2방향(W)을 포함하는 노드가 검색될때까지 상위노드로 이동하는 단계(S418)를 수행한다.
제2방향(W)을 포함하는 노드가 검색되면, 지도 작성부(150)는 제1 인접-이동 알고리즘의 동작을 종료하고 기존의 최상위노드부터 제2 상위노드까지의 노드정보들, 변환된 제1 상위노드 정보 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계(S419)를 수행한다.
여기서, S413 및 S418을 수행하더라도, 제2방향(W)을 포함하고 있는 노드정보가 검색되지 않는 경우, 현재까지의 노드변환 결과(최하위노드만 변환된 결과 또는 제1 상위노드 및 최하위노드만 변환된 결과)를 제2 노드정보들로 탐색 완료한다.
이로부터 제1 인접-이동 알고리즘은 제1 특징데이터의 제1 노드정보들 중 최하위노드가 W를 포함하는 경우와, E를 포함하는 경우로 분리되어 다르게 수행될 수 있다. 최하위노드가 W를 포함하는 경우에는 최하위 노드만 W를 E로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다. 반면에 최하위노드가 E를 포함하는 경우에는 최하위노드의 E를 W로 변환하고, 다음 상위노드로 이동하여 W를 E로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다.
도 12은 도 10 중 제2 인접-이동 알고리즘의 동작을 설명하기 위한 흐름도 이다.
도 12를 참조하면, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제1방향(E)을 포함하고 있는지 판단하는 단계(S421)를 수행한다.
판단 결과, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제1방향(E)을 포함하고 있는 경우, 지도 작성부(150)는 제1방향(E)을 제2방향(W)으로 변환하는 단계(S422)를 수행한다.
변환이 완료되면, 지도 작성부(150)는 제1방향(E)을 포함하는 노드가 검색될때까지 상위노드로 이동하는 단계(S423)를 수행한다.
제1방향(E)을 포함하는 노드가 검색되면, 지도 작성부(150)는 제2 인접-이동 알고리즘의 동작을 종료하고 기존의 최상위노드부터 제1 상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계(S424)를 수행한다.
반면에, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제1방향(E)을 포함하고 있지 않은 경우, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제2방향(W)을 포함하고 있는지 포함하는 단계(S425)를 수행한다.
판단결과, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제2방향(W)을 포함하고 있는 경우, 지도 작성부(150)는 제2방향(W)을 제1방향(E)으로 변환하고 상위노드로 이동하는 단계(S426)를 수행한다.
상위노드로의 이동이 완료되면, 지도 작성부(150)는 제1방향(E)를 포함하고 있는 상위노드의 제1?항(E)을 제2방향(W)으로 변환하는 단계(427)를 수행한다.
변환이 완료되면, 지도 작성부(150)는 제1방향(E)을 포함하는 노드가 검색될때까지 상위노드로 이동하는 단계(S428)를 수행한다.
제1방향(E)을 포함하는 노드가 검색되면, 지도 작성부(150)는 제2 인접-이동 알고리즘의 동작을 종료하고 기존의 최상위노드부터 제2 상위노드까지의 노드정보들, 변환된 제1 상위노드 정보 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계(S429)를 수행한다.
여기서, S423 및 S428을 수행하더라도, 제1방향(E)을 포함하고 있는 노드정보가 검색되지 않는 경우, 현재까지의 노드변환 결과(최하위노드만 변환된 결과 또는 제1 상위노드 및 최하위노드만 변환된 결과)를 제2 노드정보들로 탐색 완료한다.
이로부터 제2 인접-이동 알고리즘은 제1 특징데이터의 제1 노드정보들 중 최하위노드가 E를 포함하는 경우와, W를 포함하는 경우로 분리되어 다르게 수행될 수 있다. 최하위노드가 E를 포함하는 경우에는 최하위 노드만 E를 W로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다. 반면에 최하위노드가 W를 포함하는 경우에는 최하위노드의 W를 E로 변환하고, 다음 상위노드로 이동하여 E를 W로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다.
도 13은 도 10 중 제3 인접-이동 알고리즘의 동작을 설명하기 위한 흐름도 이다.
도 13을 참조하면, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제4방향(N)을 포함하고 있는지 판단하는 단계(S431)를 수행한다.
판단 결과, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제4방향(N)을 포함하고 있는 경우, 지도 작성부(150)는 제4방향(N)을 제3방향(S)으로 변환하는 단계(S432)를 수행한다.
변환이 완료되면, 지도 작성부(150)는 제4방향(N)을 포함하는 노드가 검색될때까지 상위노드로 이동하는 단계(S433)를 수행한다.
제4방향(N)을 포함하는 노드가 검색되면, 지도 작성부(150)는 제3 인접-이동 알고리즘의 동작을 종료하고 기존의 최상위노드부터 제1 상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계(S434)를 수행한다.
반면에, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제4방향(N)을 포함하고 있지 않은 경우, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제3방향(S)을 포함하고 있는지 포함하는 단계(S435)를 수행한다.
판단결과, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제3방향(S)을 포함하고 있는 경우, 지도 작성부(150)는 제3방향(S)을 제4방향(N)으로 변환하고 상위노드로 이동하는 단계(S436)를 수행한다.
상위노드로의 이동이 완료되면, 지도 작성부(150)는 제4방향(N)를 포함하고 있는 상위노드의 제4?항(N)을 제3방향(S)으로 변환하는 단계(437)를 수행한다.
변환이 완료되면, 지도 작성부(150)는 제4방향(N)을 포함하는 노드가 검색될때까지 상위노드로 이동하는 단계(S438)를 수행한다.
제4방향(N)을 포함하는 노드가 검색되면, 지도 작성부(150)는 제3 인접-이동 알고리즘의 동작을 종료하고 기존의 최상위노드부터 제2 상위노드까지의 노드정보들, 변환된 제1 상위노드 정보 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계(S439)를 수행한다.
여기서, S433 및 S438을 수행하더라도, 제4방향(N)을 포함하고 있는 노드정보가 검색되지 않는 경우, 현재까지의 노드변환 결과(최하위노드만 변환된 결과 또는 제1 상위노드 및 최하위노드만 변환된 결과)를 제2 노드정보들로 탐색 완료한다.
이로부터 제3 인접-이동 알고리즘은 제1 특징데이터의 제1 노드정보들 중 최하위노드가 N을 포함하는 경우와, S를 포함하는 경우로 분리되어 다르게 수행될 수 있다. 최하위노드가 N을 포함하는 경우에는 최하위 노드만 N을 S로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다. 반면에 최하위노드가 S를 포함하는 경우에는 최하위노드의 S를 N으로 변환하고, 다음 상위노드로 이동하여 N을 S로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다.
도 14는 도 10 중 제4 인접-이동 알고리즘의 동작을 설명하기 위한 흐름도 이다.
도 14를 참조하면, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제3방향(S)을 포함하고 있는지 판단하는 단계(S441)를 수행한다.
판단 결과, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제3방향(S)을 포함하고 있는 경우, 지도 작성부(150)는 제3방향(S)을 제4방향(N)으로 변환하는 단계(S442)를 수행한다.
변환이 완료되면, 지도 작성부(150)는 제3방향(S)을 포함하는 노드가 검색될때까지 상위노드로 이동하는 단계(S443)를 수행한다.
제3방향(S)을 포함하는 노드가 검색되면, 지도 작성부(150)는 제4 인접-이동 알고리즘의 동작을 종료하고 기존의 최상위노드부터 제1 상위노드까지의 노드정보들 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계(S444)를 수행한다.
반면에, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제3방향(S)을 포함하고 있지 않은 경우, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제4방향(N)을 포함하고 있는지 포함하는 단계(S445)를 수행한다.
판단결과, 제1 특징데이터의 제1 노드정보들 중 최하위노드가 제4방향(N)을 포함하고 있는 경우, 지도 작성부(150)는 제4방향(N)을 제3방향(S)으로 변환하고 상위노드로 이동하는 단계(S446)를 수행한다.
상위노드로의 이동이 완료되면, 지도 작성부(150)는 제3방향(S)를 포함하고 있는 상위노드의 제3?항(S)을 제4방향(N)으로 변환하는 단계(447)를 수행한다.
변환이 완료되면, 지도 작성부(150)는 제3방향(S)을 포함하는 노드가 검색될때까지 상위노드로 이동하는 단계(S448)를 수행한다.
제3방향(S)을 포함하는 노드가 검색되면, 지도 작성부(150)는 제1 인접-이동 알고리즘의 동작을 종료하고 기존의 최상위노드부터 제2 상위노드까지의 노드정보들, 변환된 제1 상위노드 정보 및 변환된 최하위노드 정보를 결합한 결과로써의 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계(S449)를 수행한다.
여기서, S443 및 S448을 수행하더라도, 제3방향(S)을 포함하고 있는 노드정보가 검색되지 않는 경우, 현재까지의 노드변환 결과(최하위노드만 변환된 결과 또는 제1 상위노드 및 최하위노드만 변환된 결과)를 제2 노드정보들로 탐색 완료한다.
이로부터 제4 인접-이동 알고리즘은 제1 특징데이터의 제1 노드정보들 중 최하위노드가 S를 포함하는 경우와, N을 포함하는 경우로 분리되어 다르게 수행될 수 있다. 최하위노드가 S를 포함하는 경우에는 최하위 노드만 S를 N으로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다. 반면에 최하위노드가 N을 포함하는 경우에는 최하위노드의 N을 S로 변환하고, 다음 상위노드로 이동하여 S를 N으로 변환하면 제2 특징데이터의 제2 노드정보들이 생성된다.
다시 도 9로 돌아와서, 지도 작성부(150)는 제1 특징데이터의 제1 노드정보들 및 제2 특징데이터의 제2 노드정보들을 이용하여 지도를 작성하는 단계(S500)를 수행한다. 본 실시 예에서 탐색된 복수의 특징데이터들에 대해 제1 특징데이터와 제2 특징데이터를 정의하고, 제1 특징데이터들로부터 생성된 제1 노드정보들 및 제2 특징데이터들로부터 생성된 제2 노드정보들을 이용하여 지도를 작성하게 된다.
한편, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 바람직한 실시 예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명을 구현할 수 있음을 이해할 것이다. 그러므로 상기 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 한다.
100: 이동로봇 110: 제어부
120: 구동부 130: 사용자 인터페이스
140: 저장부 150: 지도 작성부
151: 환경 인식부 152: 쿼드트리 정보 생성부
153: 탐색부 154: 인접-이동 정보 생성부

Claims (20)

  1. 이동로봇 주변의 환경 인식을 통해 임의의 공간을 점유하는 복수의 특징데이터들을 탐색하는 단계;
    상기 탐색된 제1 특징데이터에 대하여 쿼드트리 분할을 수행하고, 상기 쿼드트리 분할 결과로써의 제1 노드정보들을 생성하는 단계;
    상기 제1 특징데이터를 기준으로 한 제2 특징데이터의 위치를 탐색하는 단계; 및
    상기 제1 노드정보들을 이용하여 상기 탐색된 위치별로 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 인접-이동 알고리즘을 수행하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  2. 제 1항에 있어서, 상기 위치를 탐색하는 단계는,
    상기 제2 특징데이터가 상기 제1 특징데이터의 우측에 위치한 제1 위치, 상기 제2 특징데이터가 상기 제1 특징데이터의 좌측에 위치한 제2 위치, 상기 제2 특징데이터가 상기 제1 특징데이터의 하부에 위치한 제3 위치 및 상기 제2 특징데이터가 상기 제1 특징데이터의 상부에 위치한 제4 위치 중 어느 한 위치를 탐색하는 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  3. 제 2항에 있어서, 상기 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 노드정보들을 이용하여 상기 제1 위치에서 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제1 인접-이동 알고리즘을 수행하는 단계;인 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  4. 제 3항에 있어서, 상기 제1 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제2방향을 제1방향으로 변환하는 단계; 및
    상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성방법.
  5. 제 3항에 있어서, 상기 제1 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제1방향을 제2방향으로 변환하고 상위노드로 이동하는 단계;
    상기 상위노드에서 제2방향을 제1방향으로 변환하는 단계; 및
    상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  6. 제 2항에 있어서, 상기 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 노드정보들을 이용하여 상기 제2 위치에서 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제2 인접-이동 알고리즘을 수행하는 단계;인 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  7. 제 6항에 있어서, 상기 제2 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제1방향을 제2방향으로 변환하는 단계; 및
    상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성방법.
  8. 제 6항에 있어서, 상기 제2 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제2방향을 제1방향으로 변환하고 상위노드로 이동하는 단계;
    상기 상위노드에서 제1방향을 제2방향으로 변환하는 단계; 및
    상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  9. 제 2항에 있어서, 상기 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 노드정보들을 이용하여 상기 제3 위치에서 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제3 인접-이동 알고리즘을 수행하는 단계;인 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  10. 제 9항에 있어서, 상기 제3 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제4방향을 제3방향으로 변환하는 단계; 및
    상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성방법.
  11. 제 9항에 있어서, 상기 제3 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제3방향을 제4방향으로 변환하고 상위노드로 이동하는 단계;
    상기 상위노드에서 제4방향을 제3방향으로 변환하는 단계; 및
    상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  12. 제 2항에 있어서, 상기 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 노드정보들을 이용하여 상기 제4 위치에서 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제4 인접-이동 알고리즘을 수행하는 단계;인 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  13. 제 12항에 있어서, 상기 제4 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제3방향을 제4방향으로 변환하는 단계; 및
    상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성방법.
  14. 제 12항에 있어서, 상기 제4 인접-이동 알고리즘을 수행하는 단계는,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제4방향을 제3방향으로 변환하고 상위노드로 이동하는 단계;
    상기 상위노드에서 제3방향을 제4방향으로 변환하는 단계; 및
    상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 단계;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  15. 이동로봇 주변의 환경 인식을 통해 임의의 공간을 점유하는 복수의 특징데이터들을 탐색하는 환경 인식부;
    상기 탐색된 제1 특징데이터에 대하여 쿼드트리 분할을 수행하고, 상기 쿼드트리 분할 결과로써의 제1 노드정보들을 생성하는 쿼드트리 정보 생성부;
    상기 제1 특징데이터를 기준으로 한 제2 특징데이터의 위치를 탐색하는 탐색부; 및
    상기 제1 노드정보들을 이용하여 상기 탐색된 위치별로 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 인접-이동 알고리즘을 수행하는 인접-이동 정보 생성부;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 장치.
  16. 제 15항에 있어서, 상기 탐색부는,
    상기 제2 특징데이터가 상기 제1 특징데이터의 우측에 위치한 제1 위치, 상기 제2 특징데이터가 상기 제1 특징데이터의 좌측에 위치한 제2 위치, 상기 제2 특징데이터가 상기 제1 특징데이터의 하부에 위치한 제3 위치 및 상기 제2 특징데이터가 상기 제1 특징데이터의 상부에 위치한 제4 위치 중 어느 한 위치를 탐색하는 것을 특징으로 하는 이동로봇의 지도 작성 방법.
  17. 제 16항에 있어서, 상기 인접-이동 정보 생성부는,
    상기 제2 특징데이터가 상기 제1 특징데이터의 우측에 위치한 경우, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제2방향을 제1방향으로 변환하고, 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하거나,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제1방향을 제2방향으로 변환하고 상위노드로 이동한 후, 상기 상위노드에서 제2방향을 제1방향으로 변환하고, 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제1 인접-이동 정보 생성부를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 장치.
  18. 제 16항에 있어서, 상기 인접-이동 정보 생성부는,
    상기 제2 특징데이터가 상기 제1 특징데이터의 좌측에 위치한 경우, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제1방향을 제2방향으로 변환하고, 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하거나,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제2방향을 제1방향으로 변환하고 상위노드로 이동한 후, 상기 상위노드에서 제1방향을 제2방향으로 변환하고, 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제2 인접-이동 정보 생성부;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 장치.
  19. 제 16항에 있어서, 상기 인접-이동 정보 생성부는,
    상기 제2 특징데이터가 상기 제1 특징데이터의 하부에 위치한 경우, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제4방향을 제3방향으로 변환하고, 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하거나,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제3방향을 제4방향으로 변환하고 상위노드로 이동한 후, 상기 상위노드에서 제4방향을 제3방향으로 변환하고, 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제3 인접-이동 정보 생성부;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 장치.
  20. 제 16항에 있어서, 상기 인접-이동 정보 생성부는,
    상기 제2 특징데이터가 상기 제1 특징데이터의 상부에 위치한 경우, 상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제3방향을 제4방향으로 변환하고, 상기 변환된 최하위노드 및 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하거나,
    상기 제1 특징데이터의 제1 노드정보들 중 최하위노드의 제4방향을 제3방향으로 변환하고 상위노드로 이동한 후, 상기 상위노드에서 제3방향을 제4방향으로 변환하고, 상기 변환된 최하위노드 및 상위노드 정보와, 나머지 상기 제1 노드정보들을 결합한 결과로써의 상기 제2 특징데이터에 대한 제2 노드정보들을 생성하는 제4 인접-이동 정보 생성부;를 포함하는 것을 특징으로 하는 이동로봇의 지도 작성 장치.
KR1020130051497A 2013-05-07 2013-05-07 이동로봇의 지도 작성 장치 및 방법 KR101883473B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130051497A KR101883473B1 (ko) 2013-05-07 2013-05-07 이동로봇의 지도 작성 장치 및 방법
US14/037,510 US9207678B2 (en) 2013-05-07 2013-09-26 Method and apparatus for constructing map for mobile robot
CN201310700706.4A CN104142971B (zh) 2013-05-07 2013-12-18 用于构建用于移动机器人的地图的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130051497A KR101883473B1 (ko) 2013-05-07 2013-05-07 이동로봇의 지도 작성 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140132228A true KR20140132228A (ko) 2014-11-17
KR101883473B1 KR101883473B1 (ko) 2018-07-30

Family

ID=51852145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130051497A KR101883473B1 (ko) 2013-05-07 2013-05-07 이동로봇의 지도 작성 장치 및 방법

Country Status (3)

Country Link
US (1) US9207678B2 (ko)
KR (1) KR101883473B1 (ko)
CN (1) CN104142971B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9387588B1 (en) 2014-08-25 2016-07-12 Google Inc. Handling gait disturbances with asynchronous timing
US10081098B1 (en) 2014-08-25 2018-09-25 Boston Dynamics, Inc. Generalized coordinate surrogates for integrated estimation and control
US9618937B1 (en) 2014-08-25 2017-04-11 Google Inc. Slip detection using robotic limbs
US9446518B1 (en) * 2014-11-11 2016-09-20 Google Inc. Leg collision avoidance in a robotic device
US9499218B1 (en) 2014-12-30 2016-11-22 Google Inc. Mechanically-timed footsteps for a robotic device
CN105824310B (zh) * 2015-01-08 2018-10-19 江苏美的清洁电器股份有限公司 机器人的行走控制方法和机器人
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US9586316B1 (en) 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
CN105427738A (zh) * 2015-11-10 2016-03-23 汕头大学 一种基于大气压的多层建筑物的地图构建方法
US9789919B1 (en) 2016-03-22 2017-10-17 Google Inc. Mitigating sensor noise in legged robots
WO2019004633A1 (ko) * 2017-06-30 2019-01-03 엘지전자 주식회사 이동 로봇의 동작 방법 및 이동 로봇
US11274929B1 (en) * 2017-10-17 2022-03-15 AI Incorporated Method for constructing a map while performing work
TWI660275B (zh) * 2018-06-27 2019-05-21 廣達電腦股份有限公司 用於清潔裝置之任務區域分配方法、清潔裝置任務分配系統以及清潔裝置
TWI687191B (zh) * 2018-10-23 2020-03-11 廣達電腦股份有限公司 用於多個清潔裝置之任務區域分配方法以及其系統
CN109917791B (zh) * 2019-03-26 2022-12-06 深圳市锐曼智能装备有限公司 移动装置自动探索构建地图的方法
CN113252034A (zh) * 2020-02-12 2021-08-13 华为技术有限公司 一种路径规划方法及相关设备
CN112370788A (zh) * 2020-11-11 2021-02-19 网易(杭州)网络有限公司 游戏中虚拟对象的导航方法及电子设备
CN113420072B (zh) * 2021-06-24 2024-04-05 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080071228A (ko) * 2007-01-24 2008-08-04 팅크웨어(주) 지도 제공방법 및 지도 서비스 제공 시스템
KR20090030683A (ko) * 2007-09-20 2009-03-25 한국과학기술연구원 로봇의 경로 설계 방법 및 그 로봇
KR20100070922A (ko) 2008-12-18 2010-06-28 한국전자통신연구원 위치 인식을 위한 격자 지도 작성 장치 및 그 방법
KR20100070582A (ko) * 2008-12-18 2010-06-28 한국과학기술연구원 거리센서로부터 얻은 주변환경의 거리정보를 바탕으로 한 이동로봇탐사시스템 및 이를 이용한 탐사방법
KR100966477B1 (ko) * 2008-07-04 2010-06-29 팅크웨어(주) 3차원 지도 서비스를 위한 영역 사분 트리를 이용한 데이터캐시 방법 및 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835684A (en) * 1994-11-09 1998-11-10 Amada Company, Ltd. Method for planning/controlling robot motion
US6728775B1 (en) * 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
US7194134B2 (en) * 2001-01-02 2007-03-20 Microsoft Corporation Hierarchical, probabilistic, localized, semantic image classifier
JP2003266349A (ja) 2002-03-18 2003-09-24 Sony Corp 位置認識方法、その装置、そのプログラム、その記録媒体及び位置認識装置搭載型ロボット装置
KR100791386B1 (ko) 2006-08-18 2008-01-07 삼성전자주식회사 이동 로봇의 영역 분리 방법 및 장치
KR101126079B1 (ko) 2008-12-01 2012-03-29 에스케이플래닛 주식회사 광역 공간의 지역 지도 사이의 경로 생성 장치 및 방법
EP2671373B1 (en) * 2011-02-05 2017-12-06 Apple Inc. Method and apparatus for mobile location determination
WO2012172721A1 (ja) * 2011-06-14 2012-12-20 パナソニック株式会社 ロボット装置、ロボット制御方法、及びロボット制御プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080071228A (ko) * 2007-01-24 2008-08-04 팅크웨어(주) 지도 제공방법 및 지도 서비스 제공 시스템
KR20090030683A (ko) * 2007-09-20 2009-03-25 한국과학기술연구원 로봇의 경로 설계 방법 및 그 로봇
KR100966477B1 (ko) * 2008-07-04 2010-06-29 팅크웨어(주) 3차원 지도 서비스를 위한 영역 사분 트리를 이용한 데이터캐시 방법 및 시스템
KR20100070922A (ko) 2008-12-18 2010-06-28 한국전자통신연구원 위치 인식을 위한 격자 지도 작성 장치 및 그 방법
KR20100070582A (ko) * 2008-12-18 2010-06-28 한국과학기술연구원 거리센서로부터 얻은 주변환경의 거리정보를 바탕으로 한 이동로봇탐사시스템 및 이를 이용한 탐사방법

Also Published As

Publication number Publication date
US20140334713A1 (en) 2014-11-13
CN104142971A (zh) 2014-11-12
US9207678B2 (en) 2015-12-08
CN104142971B (zh) 2018-12-21
KR101883473B1 (ko) 2018-07-30

Similar Documents

Publication Publication Date Title
KR101883473B1 (ko) 이동로봇의 지도 작성 장치 및 방법
CN107677279B (zh) 一种定位建图的方法及系统
CN110825093B (zh) 自动驾驶策略生成方法、装置、设备及存储介质
US10593110B2 (en) Method and device for computing a path in a game scene
US11537138B2 (en) Adaptive region division method and system
CN107436148B (zh) 一种基于多地图的机器人导航方法及装置
JP2011227807A (ja) 経路探索システム、経路探索方法、及び移動体
JP2020532786A (ja) 自律移動ロボットの経路計画方法、自律移動ロボット及び記憶媒体
JP2009116769A (ja) 入力装置、入力装置の制御方法、及びプログラム
JP2009053849A (ja) 経路探索システム、経路探索方法、及び自律移動体
CN104964693B (zh) 具有改进的导航工具的地图应用
CN110146086B (zh) 一种生成室内地图的方法及装置
KR20220058079A (ko) 자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법
CN110908371B (zh) 一种自动巡航电动病床的自主避障与路径规划方法和系统
CN113985894A (zh) 一种自主避障路径规划方法、装置、设备及存储介质
JP2020052977A (ja) 情報処理装置、情報処理方法、およびプログラム
CN114343490B (zh) 机器人清扫方法、机器人及存储介质
JP5413593B2 (ja) ユーザインターフェイス装置及びコンピュータプログラム
JP4241802B2 (ja) 部品配置支援装置、方法およびプログラム
CN114543808A (zh) 室内重定位方法、装置、设备及存储介质
JP2005196298A (ja) 情報処理装置および画像データ表示制御方法およびプログラムおよび記録媒体
US11967157B2 (en) Robot and method for controlling thereof
CN115591242B (zh) 一种游戏地图的加载方法、装置和计算机设备
CN110220531A (zh) 一种基于视觉网络的智能导航系统
CN112000754B (zh) 地图构建方法、装置、存储介质及计算机设备

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant