KR20240050015A - 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치 - Google Patents

자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치 Download PDF

Info

Publication number
KR20240050015A
KR20240050015A KR1020220129661A KR20220129661A KR20240050015A KR 20240050015 A KR20240050015 A KR 20240050015A KR 1020220129661 A KR1020220129661 A KR 1020220129661A KR 20220129661 A KR20220129661 A KR 20220129661A KR 20240050015 A KR20240050015 A KR 20240050015A
Authority
KR
South Korea
Prior art keywords
boundary
grid map
areas
occupancy grid
mobile robot
Prior art date
Application number
KR1020220129661A
Other languages
English (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 KR1020220129661A priority Critical patent/KR20240050015A/ko
Priority to PCT/KR2023/012892 priority patent/WO2024080550A1/ko
Publication of KR20240050015A publication Critical patent/KR20240050015A/ko

Links

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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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
    • 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/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • 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
    • 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
    • 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/20Control system inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Electromagnetism (AREA)

Abstract

본 발명은 미지 환경을 갖는 특정 공간을 이동 로봇이 자율로 탐색하기 위한 자율 탐색 방법에 관한 것이다.
구체적으로, 자율 탐색 방법은 경계 검출 알고리즘(FFP: Fast Front Propagation), 장애물 필터 기능(Cost-Map Filter) 및 경계 필터 기능(Grid-Map Filter)을 활용함으로써, 미지 환경을 갖는 특정 공간에 대한 탐색 범위를 최대화하며 특정 공간 내 미지 영역을 탐색하기 위한 최적의 이동 경로를 결정한다.

Description

자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치{AUTONOMOUS EXPLORATION METHOD AND COMPUTING APPARATUS FOR PERFORMING THE METHOD}
본 발명은 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치에 관한 것으로, 보다 구체적으로는 미지 환경을 갖는 특정 공간을 탐색하기 위한 자율 탐색 방법 및 이동 로봇에 관한 것이다.
일반적으로, 로봇은 자동 조절에 의해 조작이나 이동 등의 작업을 수행하고, 특히 인간을 대신하여 여러 작업을 수행하는 데 사용된다. 최근에는 실생활에서 사용되는 로봇의 이용이 높아지는 추세이다. 이러한, 로봇은 작업을 수행하기 위해 지도 작성(Mapping), 위치 추정(Localization), 경로 계획(Path Planning), 장애물 회피 및 추적(Obstacle avoidance and tracking) 등의 기술을 포함한다. 이러한, 기술 중에서 경로 계획은 로봇의 성능을 평가하는 지표로 사용되며, 경로 계획은 크게 두 가지로 구분된다.
첫번째 경로 계획은 로봇에 제공되는 지도에서 출발지와 목적지 간의 효율적인 경로를 도출한다. 경로는 경로 계획 연구의 대부분을 차지하는 것으로 두 지점 간의 짧은 경로나 빠른 이동 경로를 생성한다.
두번째 경로 계획은 두 지점 간의 경로를 찾는 것이 아니라 새로운 영역을 찾아내는 탐색(Exploration)이다. 두 가지의 경로 계획은 로봇이 동작하는 환경에 대한 정보, 즉 지도를 가지고 시작하거나 지도가 없는 상태로 시작하는 지의 차이가 있다. 이때, 로봇에게 지도가 있는 상태를 알려진 환경(Known Environment)이라 하고, 지도가 없는 상태를 미지의 환경(Unknown Environment)이라 한다.
알려진 환경에서 탐색은 미리 제공된 지도를 기반으로 경로 생성이 완료된 이후 시작하고, 미지의 환경에서 탐색은 지도가 없이 탐색을 시작한다.
미지의 환경에서 탐색은 로봇이 가지고 있는 센서를 사용하여 환경 정보를 획득한 후, 획득한 환경 정보를 기반으로 지도를 생성 및 탐색한다. 이를 수행하기 위해서는 SLAM(Simultaneous Localization and Mapping) 알고리즘이 사용된다.
SLAM 알고리즘은 로봇이 가지고 있는 센서를 사용하여 주변 환경 정보를 파악하고 주변 환경 정보를 바탕으로 지도를 생성함과 동시에 지도 상에 로봇의 위치를 추정한다. 그러나, 종래의 SLAM 알고리즘에 의해 생성되는 지도는 대부분 고해상도의 그리드 지도(Grid Map)를 사용하기 때문에 지도의 크기에 따라 지도의 업데이트 시간과 이동 경로 생성에 계산 시간이 많이 소비되는 문제점을 가진다.
또한, 이러한 문제점을 보완하기 위해 토폴로지 지도(Topological Map)를 제안하였다. 토폴로지 지도는 그리드 지도 보다 작은 양의 메모리를 사용하여 더 큰 환경 정보의 표현이 가능하나 정확히 어떤 환경을 표현하지 못함에 따라 노드 내에서 로봇의 위치 파악이 어려우며 노드 내의 이동이 불가능하여 로봇의 정확한 임무 수행에 적합하지 않다는 문제점이 있다.
본 발명은 미지 환경에서 특정 공간의 경계 영역을 감지하기 위한 정확도를 유지하면서, 이동 로봇의 탐색에 따른 새로운 미지 영역을 발견하는 자율 탐색 방법을 제공한다.
본 발명은 경계 검출 알고리즘(FFP) , 경계 필터 기능 및 장애물 필터 기능을 적용하여 복수의 경계 영역 중에서 유의미가 있는 경계 영역을 보다 정확하게 추출함으로써, 새로운 미지 영역의 발견을 통한 점유 격자 지도의 세부적인 사항까지 상세하게 표시되는 자율 탐색 방법을 제공한다.
본 발명은 병렬 경로 알고리즘을 이용하여 경계 영역에 관한 복수의 경계 포인트를 병렬적으로 동시에 탐색함으로써, 탐색 시간을 최소화하면서 최적의 이동 경로를 결정하는 자율 탐색 방법을 제공한다.
본 발명은 점유 격자 지도를 다운 샘플링 함으로써, 경계 검출 알고리즘의 적용 속도를 향상시키면서 이동 로봇을 통한 모든 경계 영역을 탐색하는 자율 탐색 방법을 제공한다.
본 발명의 일실시예에 따른 이동 로봇이 수행하는 자율 탐색 방법은 경계 검출 알고리즘(FFP)을 적용하여 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계; 상기 경계 영역들에 병렬 경로 알고리즘을 적용하여 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정하는 단계; 및 상기 결정된 최적 경계 포인트를 이용하여 상기 특정 공간의 미지 영역을 탐사하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 상기 경계 영역들을 결정하는 단계는, 이동 로봇의 시작 위치를 기준으로 특정 공간이 스캔된 점유 격자 지도를 다운 샘플링하는 단계; 상기 다운 샘플링 된 점유 격자 지도 상에 경계 셀을 설정하는 단계; 및 상기 경계 셀이 설정된 점유 격자 지도에 경계 검출 알고리즘을 적용하여 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 경계 영역들을 설정하는 단계는, 상기 경계 검출 알고리즘이 적용된 점유 격자 지도에 경계 필터 기능을 적용하여 경계 셀 및 상기 경계 셀과 인접한 이웃 셀들에 따른 이동 로봇의 전면 전진 여부를 확인하는 단계; 및 상기 이웃 로봇의 전면 전진 여부를 고려하여 상기 점유 격자 지도 내 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 이동 로봇의 전면 전진 여부를 확인하는 단계는, 상기 특정 공간의 시드 포인트를 기반으로 상기 경계 셀의 값 및 이웃 셀들 각각의 값이 언노운 값을 나타내는지 여부를 확인하는 단계; 및 상기 확인 결과에 따라 점유 격자 지도 상에 상기 이동 로봇의 전면 전진 여부를 확인하는 단계 를 포함하고, 상기 시드 포인트는, 상기 특정 공간에 위치 가능한 이동 로봇의 현재 위치에서 상기 특정 공간 내 임의로 이격된 미지 영역의 포인트일 수 있다.
본 발명의 실시예에 따른 경계 영역들을 결정하는 단계는, 상기 경계 검출 알고리즘이 적용된 점유 격자 지도에 장애물 필터 기능을 적용하여 상기 전면 전진 여부가 확인된 상기 경계 셀 및 이웃 셀들의 장애물 존재 확률을 설정하는 단계; 및 상기 설정된 장애물 존재 확률을 고려하여 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 경계 포인트를 결정하는 단계는, 상기 병렬 경로 알고리즘을 적용하여 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하는 단계; 및 상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 경계 영역들 중 최적 경계 포인트를 결정하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 탐색하는 단계는, 상기 경계 영역들에 대한 분기 조건 및 경계 조건을 고려하여 상기 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하고, 상기 분기 조건은, 복수의 스레드를 실행시키기 위한 시작 요소이고, 상기 경계 조건은, 이동 경로를 탐색하기 위한 종료 요소일 수 있다.
본 발명의 실시예에 따른 경계 포인트를 결정하는 단계는, 상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 길이를 비교하여 이동 가능한 경계 영역들을 구성하는 경계 포인트 중 최적 경계 포인트를 결정할 수 있다.
본 발명의 다른 실시예에 따른 이동 로봇이 수행하는 자율 탐색 방법은 이동 로봇의 시작 위치를 기준으로 특정 공간을 스캔하여 점유 격자 지도를 생성하는 단계; 상기 생성된 점유 격자 지도를 다운 샘플링한 후, 상기 다운 샘플링 된 점유 격자 지도에 경계 검출 알고리즘을 적용하는 단계; 상기 경계 검출 알고리즘이 적용된 점유 격자 지도에 경계 필터 기능 및 장애물 필터 기능 중 적어도 하나를 적용하여 상기 점유 격자 지도에 표현 가능한 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계; 병렬 경로 알고리즘을 적용하여 상기 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하는 단계; 상기 병렬로 동시에 탐색된 이동 경로들을 이용하여 상기 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정하는 단계; 상기 최적 경계 포인트를 이용하여 상기 특정 공간의 미지 영역을 탐사하는 단계; 및 상기 이동 로봇에 의해 탐사된 상기 특정 공간의 미지 영역에 대한 탐사 궤적을 점유 격자 지도에 표시하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 경계 영역들을 결정하는 단계는, 상기 경계 검출 알고리즘이 적용된 점유 격자 지도로부터 특정 공간 상에 경계 셀을 설정하는 단계; 상기 설정된 경계 셀 및 상기 경계 셀과 인접한 이웃 셀들을 이용하여 이동 로봇에 대한 전면 전진 여부를 확인하는 단계; 및 상기 이웃 로봇에 대한 전면 전진 여부를 고려하여 상기 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 이동 로봇의 전면 전진 여부를 확인하는 단계는, 상기 특정 공간의 시드 포인트를 기반으로 경계 필터 기능을 적용하여 상기 경계 셀의 값 및 이웃 셀들 각각의 값이 언노운 값을 나타내는지 여부를 확인하는 단계; 및 상기 확인 결과에 따라 점유 격자 지도 상에 상기 이동 로봇의 전면 전진 여부를 확인하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 경계 영역들을 결정하는 단계는, 장애물 필터 기능을 적용하여 상기 전면 전진 여부가 확인된 상기 경계 셀 및 이웃 셀들의 장애물 존재 확률을 설정하는 단계; 및 상기 설정된 장애물 존재 확률을 고려하여 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 경계 포인트를 결정하는 단계는, 상기 병렬 경로 알고리즘을 적용하여 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하는 단계; 및 상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 경계 영역들 중 최적 경계 포인트를 결정하는 단계 를 포함할 수 있다.
본 발명의 실시예에 따른 병렬로 동시에 탐색하는 단계는, 상기 경계 영역들에 대한 분기 조건 및 경계 조건을 고려하여 상기 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다.
본 발명의 실시예에 따른 최적 경계 포인트를 결정하는 단계는, 상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 길이를 비교하여 이동 가능한 경계 영역들을 구성하는 경계 포인트 중 최적 경계 포인트를 결정할 수 있다.
본 발명의 실시예에 따른 최적 경계 포인트를 결정하는 단계는, 상기 경계 영역들을 구성하는 경계 포인트를 기준으로 나선형 방향으로 상기 결계 셀 및 이웃 셀을 스캔하면서 상기 경계 포인터에 포함된 위치 오차를 보정하는 단계; 및 상기 위치 오차가 보정된 경계 포인트 중 상기 최적 경계 포인트를 결정하는 단계 를 포함할 수 있다.
본 발명의 일실시예에 따른 이동 로봇에서 있어서, 상기 이동 로봇은 프로세서를 포함하고, 상기 프로세서는, 경계 검출 알고리즘을 적용하여 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정하고, 상기 경계 영역들에 병렬 경로 알고리즘을 적용하여 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정하고, 상기 결정된 최적 경계 포인트를 이용하여 상기 특정 공간의 미지 영역을 탐사할 수 있다.
본 발명의 실시예에 따른 컴퓨팅 장치에 있어서, 상기 컴퓨팅 장치는 프로세서를 포함하고, 상기 프로세서는, 이동 로봇의 시작 위치를 기준으로 특정 공간을 스캔하여 점유 격자 지도를 생성하고, 상기 생성된 점유 격자 지도를 다운 샘플링한 후, 상기 다운 샘플링 된 점유 격자 지도에 경계 검출 알고리즘을 적용하는 단계; 상기 경계 검출 알고리즘이 적용된 점유 격자 지도에 경계 필터 기능 및 장애물 필터 기능 중 적어도 하나를 적용하여 상기 점유 격자 지도에 표현 가능한 자유 영역과 미지 영역 사이의 경계 영역들을 결정하고, 병렬 경로 알고리즘을 적용하여 상기 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하고, 상기 병렬로 동시에 탐색된 이동 경로들을 이용하여 상기 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정하고, 상기 결정된 최적 경계 포인트를 이용하여 상기 특정 공간의 미지 영역을 탐사하고, 상기 이동 로봇에 의해 탐사된 상기 특정 공간의 미지 영역에 대한 탐사 궤적을 점유 격자 지도에 표시할 수 있다.
본 발명의 실시예에 따른 자율 탐색 방법은 미지 환경에서 특정 공간의 경계 영역을 감지하기 위한 정확도를 유지하면서, 이동 로봇의 탐색에 따른 새로운 미지 영역을 발견할 수 있다.
본 발명의 실시예에 따른 자율 탐색 방법은 경계 검출 알고리즘(FFP)의 경계 필터 기능 및 장애물 필터 기능을 적용하여 복수의 경계 영역 중에서 유의미가 있는 경계 영역을 보다 정확하게 추출함으로써, 새로운 미지 영역의 발견을 통한 점유 격자 지도의 세부적인 사항까지 상세하게 표시될 수 있다.
본 발명의 실시예에 따른 자율 탐색 방법은 병렬 경로 알고리즘을 이용하여 경계 영역에 관한 복수의 경계 포인트를 병렬적으로 동시에 탐색함으로써, 탐색 시간을 최소화하면서 최적의 이동 경로를 결정할 수 있다.
본 발명의 실시예에 따른 자율 탐색 방법은 점유 격자 지도를 다운 샘플링 함으로써, 경계 검출 알고리즘의 적용 속도를 향상시키면서 이동 로봇을 통한 모든 경계 영역을 탐색할 수 있다.
도 1은 본 발명의 일실시예에 따른 미지 환경을 갖는 특정 공간을 이동 로봇이 자율로 탐색하기 자율 탐색 시스템을 설명하기 위해 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 경계 검출 알고리즘을 적용하여 특정 공간의 경계 영역들을 결정하는 동작을 설명하기 위해 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 자율 탐색 방법을 설명하기 위해 도시한 흐름도이다.
도 4는 본 발명의 일실시예에 따른 경계 검출 알고리즘(FFP)의 전반적인 동작을 설명하기 위해 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 따른 경계 검출 알고리즘의 MARCHFRONT() 함수를 설명하기 위해 도시한 흐름도이다.
도 6은 본 발명의 일실시예에 따른 경계 검출 알고리즘의 EXTRACTFRONTIERS() 함수를 설명하기 위해 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 따른 컴퓨팅 장치를 탑재한 이동 로봇이 특정 공간을 구성하는 복수의 영역을 탐사하는 동작을 설명하기 위해 도시한 도면이다.
도 8은 본 발명의 일실시예에 따른 서로 다른 경계 검출 알고리즘에 따른 성능을 나타낸 그래프이다.
도 9는 본 발명의 일실시예에 따른 병렬 경로 알고리즘의 성능을 나타낸 그래프이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 미지 환경을 갖는 특정 공간을 이동 로봇이 자율로 탐색하기 자율 탐색 시스템을 설명하기 위해 도시한 도면이다.
도 1을 참고하면, 컴퓨팅 장치(101)는 특정 공간(102)에 존재하는 미지 영역을 보다 자율적으로 탐색할 수 있다. 컴퓨팅 장치(101)는 특정 공간(102)을 이동하는 이동 로봇에 탑재될 수 있다. 이동 로봇에 탑재된 컴퓨팅 장치(101)는 이동 로봇의 현재 위치를 활용하여 특정 공간(102)의 미지 영역을 탐사할 수 있다.
보다 자세하게, 컴퓨팅 장치(101)는 특정 공간(102)에 진입한 이동 로봇의 현재 위치를 기반으로 특정 공간을 스캔하여 이동 로봇의 전면 이미지를 수집할 수 있다. 컴퓨팅 장치(101)는 수집된 전면 이미지에 대응하여 점유 격자 지도를 생성할 수 있다. 여기서, 컴퓨팅 장치(101)는 좌표 값을 갖는 전역 좌표 프레임의 형태로 점유 격자 지도를 생성할 수 있다.
컴퓨팅 장치(101)는 경계 검출 알고리즘(FFP: Fast Front Propagation)을 적용하여 점유 격자 지도(103)에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정할 수 있다. 경계 검출 알고리즘은 특정 공간 내 다수의 경계 포인트를 검출할 수 있다. 경계 포인트는 자유 영역과 미지 영역 사이를 구분하기 위해 지도상에 표현되는 경계 영역들 내의 포인트일 수 있다. 여기서, 컴퓨팅 장치(101)를 통해 커버 가능한 특정 공간의 면적 크기는 이동 로봇의 탐사 시간에 비례하여 증가할 수 있다.
컴퓨팅 장치(101)는 경계 필터 기능 및 장애물 필터 기능을 이용하여 점유 격자 지도 상에 표현 가능한 자유 영역과 미지 영역 사이의 경계 영역들을 결정할 수 있다. 컴퓨팅 장치(101)는 경계 감지 알고리즘은 경계 필터 기능(Grid-Map Filter)과 장애물 필터 기능(Cost-Map Filter)을 이용하여 점유 격자 지도(103)에서 결정된 경계 영역들에 포함된 경계 포인트 중에서 잘못 설정된 경계 포인트(이하, 스퓨리어스 포인트)를 제거할 수 있다. 컴퓨팅 장치(101)는 경계 필터 기능과 장애물 필터 기능을 통해 잘못 설정된 경계 포인트가 제거됨으로써, 미지 영역을 탐사하기 위한 최적 경계 포인트를 결정할 수 있다. 다시 말해, 경계 필터 기능과 장애물 필터 기능은 경계 검출 알고리즘을 사용하여 검출된 경계 포인트 중 잘못된 경계 포인트를 필터링하는 동작을 수행할 수 있다.
포함할 수 있다. 경계 필터 기능은 경계 셀 및 경계 셀과 인접한 이웃 셀들을 분석하여 전면 전진 여부에 따른 자유 영역과 미지 영역 사이의 경계 영역들을 결정할 수 있다. 경계 셀은 경계 포인트에 대응하여 점유 격자 지도(103) 상에서 위치를 나타내는 단위일 수 있다. 경계 셀은 경계 검출 알고리즘을 통해 1차적으로 검출된 셀로, 자유(FREE), 장애물(OBSTACLE), 미지(UNKNOWN) 중 하나의 레이블로 값이 설정될 수 있다. 일례로, 컴퓨팅 장치(101)는 경계 셀의 값이 자유(FREE)를 나타내는 경우, 경계 필터 기능을 통해 해당 경계 셀을 자유 영역으로 결정할 수 있다. 다른 일례로, 컴퓨팅 장치(101)는 경계 셀의 값이 미지(UNKNOWN)를 나타내는 경우, 경계 필터 기능을 통해 해당 경계 셀을 미지 영역으로 결정할 수 있다.
컴퓨팅 장치(101)는 경계 필터 기능을 통해 경계 셀의 값 및 경계 셀과 인접한 이웃 셀들의 값을 분석하여 전면 전진 여부를 결정할 수 있다. 일례로, 컴퓨팅 장치(101)는 경계 셀의 값 및 이웃 셀들의 값이 자유(FREE)를 나타낼 경우, 자율 탐색을 위한 전면 전진이 가능함을 결정할 수 있다. 반대로, 컴퓨팅 장치(101)는 경계 셀의 값 및 이웃 셀들의 값이 미지(UNKNOWN)를 나타낼 경우, 자율 탐색을 위한 전면 전진이 불가능함을 결정할 수 있다. 이를 통해 컴퓨팅 장치(101)는 전면 전진 여부에 따라 자유 영역과 미지 영역 사이의 경계 영역들을 결정할 수 있다.
또한, 장애물 필터 기능은 경계 필터 기능을 통해 결정된 경계 영역들에 장애물이 존재하는지 여부를 확인할 수 있다. 일례로, 컴퓨팅 장치(101)는 경계 셀의 값이 장애물(OBSTACLE)를 나타내는 경우, 경계 필터 기능을 통해 해당 경계 셀을 장애물 영역으로 결정할 수 있다.
컴퓨팅 장치(101)는 경계 영역들을 전역 좌표 프레임으로 변환할 수 있다. 컴퓨팅 장치(101)는 전역 좌표 프레임으로 변환된 경계 영역들을 점유 격자 지도에 병합할 수 있다. 컴퓨팅 장치(101)는 점유 격자 지도에 병합된 경계 영역들을 이용하여 특정 공간(102) 내 미지 영역을 1차적으로 감지할 수 있다.
이후, 컴퓨팅 장치(101)는 경계 영역들 중에서 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다. 다시 말해, 컴퓨팅 장치(101)는 접근 가능한 경계 영역들 중에서 가장 가까운 최적 경계 포인트(f*)을 탐색할 수 있다. 컴퓨팅 장치(101)는 최적 경계 포인트를 탐색하기 위한 연산 시간을 줄이기 위해 복수의 스레드를 활용하여 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다. 컴퓨팅 장치(101)는 병렬로 동식에 탐색된 이동 경로들의 우선 순위를 설정할 수 있다.
컴퓨팅 장치(101)는 우선 순위에 따라 경계 영역으로 위치를 이동하여 이동된 경계 영역의 위치에서 직접적으로 특정 공간의 미지 영역을 탐사할 수 있다. 이를 통해, 컴퓨팅 장치(101)는 1차적으로 감지된 미지 영역을 구체화하거나 또는, 특정 공간(102) 내 새로운 미지 영역을 탐색할 수 있다.
컴퓨팅 장치(101)는 이동 로봇에 의해 탐사된 상기 특정 공간의 미지 영역에 대한 탐사 궤적(104)을 점유 격자 지도(103)에 표시할 수 있다. 컴퓨팅 장치(101)는 우선 순위에 따라 다운 샘플링 이후 검출한 경계 포인트의 위치를 업 샘플링하는 과정에서 생길 수 있는 경계 포인트의 위치 오차에 대해 경계 포인트의 주변의 경계 셀 및 위치 셀을 나선형 방향으로 스캔함으로써, 상기 경계 포인트의 위치 오차를 보정할 수 있다.
다시 말해, 다운 샘플링을 수행한 이후, 경계 검출 알고리즘(FFP), 필터 과정 등을 통해 검출한 점유 격자 지도 상에 경계 포인트는 원래 위치로 복원하는 과정에서 위치 오차가 발생할 수 있다. 이에, 컴퓨팅 장치는 현재 추측한 경계 포인트의 주변의 나선형 방향으로 셀을 검색해가면서 가장 알맞은 위치로 경계 포인트의 위치를 보정함으로써, 복원하는 과정에서 발생되는 위치 오차를 최소화할 수 있다.
컴퓨팅 장치(101)는 장애물 필터 기능 및 경계 필터 기능을 통해 미지 환경을 갖는 특정 공간(102)에 대한 탐색 범위를 최대화하며 특정 공간(102) 내 미지 영역을 탐색하기 위한 최적의 이동 경로를 결정할 수 있다.
도 2는 본 발명의 일실시예에 따른 경계 검출 알고리즘을 적용하여 특정 공간의 경계 영역들을 결정하는 동작을 설명하기 위해 도시한 도면이다.
도 2를 참고하면, 컴퓨팅 장치(101)는 경계 검출 알고리즘을 사용하여, 경계 영역으로 감지된 전면에 도달하기 위해 병렬로 이동 경로를 계획할 수 있다. 컴퓨팅 장치(101)는 전파를 이용해 특정 공간(102)을 스캔하며, 스캔 동작은 점유 격자 지도의 셀 수에 따라 달라질 수 있다. 이에 따라, 경계 검출 알고리즘은 점유 격자 지도의 셀 수와 관련하여 선형 시간으로 실행될 수 있다.
컴퓨팅 장치(101)는 경계 검출 알고리즘을 통해 특정 공간(102)의 탐색 범위를 최대화하기 위해 이동 로봇(201)이 미지 영역(204)을 방문할 수 있도록 특정 공간(102) 내 모든 경계 포인트를 도출할 수 있다. 이를 통해, 컴퓨팅 장치(101)는 점유 격자 지도(205) 내 표현 가능한 자유 영역(202)과 미지 영역(204) 사이의 경계 영역(203)들을 결정할 수 있다.
이후, 컴퓨팅 장치(101)는 경계 검출 알고리즘을 통해 결정된 경계 영역들(203)에 경계 필터 기능(207) 및 장애물 필터 기능(206)을 적용하여 오류가 최소화된 경계 영역(203)들을 결정할 수 있다. 이때, 경계 영역(203)들은 경계 검출 알고리즘에 따른 스퓨리어스 포인트가 제거된 상태일 수 있다. 다시 말해, 점유 격자 지도는 포인트가 중복되어 표현되거나, 종종 장애물로 둘러싸인 셀 클러스터 또는 잘못된 레이저 센서 스캔으로 인한 이동 로봇의 접근이 불가능한 포인트가 포함될 수 있다. 경계 영역(203)들에 스퓨리어스 포인트가 존재하는 경우, 점유 격자 지도는 탐색 정확도가 떨어질 수 있다.
이를 위해, 컴퓨팅 장치(101)는 스퓨리어스 포인트를 제거하기 위해 장애물 필터 기능(206)을 사용하여 장애물로 둘러싸인 점을 추출할 수 있다. 다시 말해, 컴퓨팅 장치는 경계 영역의 주변에 존재하는 장애물 존재 확률의 비용 맵 점수를 계산할 수 있다. 컴퓨팅 장치는 장애물 존재 확률의 비용 맵 점수가 계산된 이후, 비용 맵 점수가 미리 결정된 임계값보다 높은 포인트를 추출할 수 있다. 이러한 과정을 통해 컴퓨팅 장치(101)는 점유 격자 지도에 포함된 장애물의 위치를 파악하고, 장애물을 나타내는 경계 포인트를 필터링할 수 있다.
또한, 컴퓨팅 장치(101)는 경계 필터 기능을 진행하여 점유 격자 지도에서 후보 셀 주변의 작은 패치를 추출한 다음, 추출한 패치 P의 경계 측정 ρ를 계산할 수 있다. 이는 다음의 수학식 1과 같이 나타낼 수 있다.
수학식 1을 참고하면, |P| 와 |Pu | 패치의 총 셀 수와 패치 내 알려지지 않은 셀의 수를 각각 나타낼 수 있다. ρ
Figure pat00002
1인 후보 점 fc는 미지의 영역의 경계에 있을 가능성이 높으므로 방문 시 풍부한 지도 정보를 발견할 가능성이 높을 수 있다. 이는 아래의 표 1과 같이 나타낼 수 있다.
컴퓨팅 장치(101)는 점유 격자 지도에서 계산된 경계 포인트의 위치 오류를 수정하고, 최소 하나의 자유 영역(FREE)의 셀에 인접할 때까지 경계 포인트의 위치를 나선형 방향으로 바깥쪽으로 연속적으로 검색하면서 경계 포인트의 위치 오차를 보정할 수 있다. 이때, 자유 영역의 셀과 언노운 셀의 수가 동일하여 ρ = 1이 될 때에 가장 이상적인 경계 영역을 나타낼 수 있다.
이에, 컴퓨팅 장치(101)는 중복 접근 또는, 접근 불가한 영역으로 움직임을 최소화하기 위해 경계 필터 기능(207) 및 장애물 필터 기능(206)을 통해 경계 영역(203)들에 포함된 스퓨리어스 포인트를 제거할 수 있다. 컴퓨팅 장치(101)는 스퓨리어스 포인트가 제거된 경계 영역들을 결정할 수 있다.
컴퓨팅 장치(101)는 스퓨리어스 포인트가 제거된 경계 영역(203)들에 대한 분기 조건 및 경계 조건을 고려하여 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다. 컴퓨팅 장치(101)는 불필요한 검색 작업을 조기에 종료하기 위하여 분기 조건 및 경계 조건을 만족하도록 경계 영역(203)들을 처리할 수 있다. 일례로, 컴퓨팅 장치(101)는 복수의 프로세서를 포함할 수 있으며, 복수의 프로세서를 통해 이동 경로를 탐색하기 위한 동작을 분산하여 수행할 수 있다. 이는 CPU의 스레드 수 측면에서 확장 가능한 성능을 보여줄 수 있다.
컴퓨팅 장치(101)는 미지 영역(204)의 탐지 정확도를 저하시키지 않기 위해 점유 격자 지도(205)를 다운 샘플링할 수 있다. 컴퓨팅 장치(101)는 다운 샘플링된 전면 그리도 지도를 통해 미지 영역에 대한 탐색 정확도를 유지하며, 보다 신속하게 특정 공간(102)의 미지 영역(204)을 탐색할 수 있다.
도 3은 본 발명의 일실시예에 따른 자율 탐색 방법을 설명하기 위해 도시한 흐름도이다.
단계(301)에서 컴퓨팅 장치는 이동 로봇의 시작 위치를 기준으로 특정 공간을 스캔하여 스캔된 특정 공간에 대한 점유 격자 지도를 생성할 수 있다. 컴퓨팅 장치는 컴퓨팅 장치는 생성된 점유 격자 지도에 다운 샘플링을 수행할 수 있다. 컴퓨팅 장치는 다운 샘플링 된 점유 격자 지도에 경계 검출 알고리즘을 적용하여 다운 샘플링 된 점유 격자 지도 상에 경계 셀을 설정할 수 있다.
단계(302)에서 컴퓨팅 장치는 경계 필터 기능 및 장애물 필터 기능을 이용할 수 있다. 다시 말해, 컴퓨팅 장치는 경계 필터 기능을 적용하여 경계 셀 및 경계 셀과 인접한 이웃 셀들을 이용하여 이동 로봇에 대한 전면 전진 여부를 확인할 수 있다. 여기서, 컴퓨팅 장치는 특정 공간의 시드 포인트를 기반으로 상기 경계 셀의 값 및 이웃 셀들 각각의 값이 언노운 값을 나타내는지 여부를 확인할 수 있다. 시드 포인트는 특정 공간에 위치 가능한 이동 로봇의 현재 위치에서 상기 특정 공간 내 임의로 이격된 미지 영역의 포인트일 수 있다. 여기서, 포인트는 점유 격자 지도의 좌표를 의미할 수 있다.
컴퓨팅 장치는 확인 결과에 따라 점유 격자 지도 상에 상기 이동 로봇의 전면 전진 여부를 확인할 수 있다. 경계 셀의 값 및 이웃 셀들 각각의 값이 알려지지 않은 값을 나타내는 경우, 컴퓨팅 장치는 해당 셀을 미지 영역으로 설정할 수 있다. 반대로, 경계 셀의 값 및 이웃 셀들 각각의 값이 알려진 값을 나타내는 경우, 컴퓨팅 장치는 해당 셀을 자유 영역으로 설정할 수 있다. 컴퓨팅 장치는 자유 영역으로 셀을 대상으로 이웃 로봇에 대한 전면 전진이 가능한 것으로 판단할 수 있다.
컴퓨팅 장치는 장애물 필터 기능을 적용하여 전면 전진 여부가 확인된 경계 셀 및 이웃 셀들의 장애물 존재 확률을 설정할 수 있다.
컴퓨팅 장치는 상기 단계를 통해 이웃 로봇에 대한 전면 전진 여부 및 장애물 존재 확률을 고려하여 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정할 수 있다.
단계(303)에서 컴퓨팅 장치는 경계 영역들에 병렬 경로 알고리즘(A*)을 적용하여 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정할 수 있다. 다시 말해, 컴퓨팅 장치는 경계 영역들 중에서 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다. 컴퓨팅 장치는 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 경계 영역들 중 최적 경계 포인트를 결정할 수 있다.
병렬 경로 알고리즘은 시작 지점에서 목표 노드까지 최적의 이동 경로를 찾는 효율적인 그래프 탐색 방법일 수 있다. 병렬 경로 알고리즘은 시작 노드가 주어지면 경계 포인트의 노드를 선택하여 그래프를 탐색할 수 있다. 병렬 경로 알고리즘에 의한 최소 비용은 다음의 수학식 2와 같이 나타낼 수 있다.
수학식 2를 참고하면, G(n)은 시작 노드 ns에서 현재 노드 n까지의 비용을 계산하고, H(n)은 n에서 목표 노드 ng까지의 비용을 추정하는 휴리스틱 함수일 수 있다.
여기서, 컴퓨팅 장치는 경로 탐색의 정확도를 높이며, 불필요한 탐색을 최소화하기 위하여 분기 조건과 경계 조건을 활용할 수 있다. 분기 조건 및 경계 조건을 사용하는 병렬 경로 알고리즘은 목표를 향해 자손 노드를 열 때 이동 비용 F(n)이 증가하는 일관성 속성을 활용할 수 있다.
1) 분기 조건(Branch)은 복수의 스레드(Thread)를 실행(Launch)시키기 위한 시작 요소일 수 있다. 일례로, 분기 조건은 복수의 CPU 스레드 Ti 를 시작하여 Eq 2에서 Fi를 계산하여 A* 검색을 동시에 수행하는 요소일 수 있다.
2) 경계 조건(Bound)은 이동 경로를 탐색하기 위한 종료 요소일 수 있다. 일례로, A* 검색 중 쓰레드 Ti 가 < Fi 를 만날 때마다 Ti는 종료되며, 는 모든 Fi 값의 상한값으로 큰 값으로 초기화될 수 있다.
3) 병렬 경로 알고리즘은 Ti 가 검색을 성공적으로 완료한 후, Fi < 상태이면, 는 Fi ( := Fi )로 업데이트될 수 있다. 이는 아래의 표 2와 같이 나타낼 수 있다.
표 2는 병렬 경로 알고리즘(A*)의 의사 코드를 나타낸 것일 수 있다. 본 발명의 병렬 경로 알고리즘은 열린 노드와 닫힌 노드의 두 목록을 초기화하고 추적(표 2의 4-5행)할 수 있다. 이후, 각 스레드는 바운딩된 조건(Line 9)을 기반으로 병렬 경로 알고리즘(*)을 활용해 경로 검색을 수행하기 시작할 수 있다. 이후, 본 발명은 병렬 경로 알고리즘에 바운딩된 조건에 따라 스레드를 종료(표 2의 10행)할 수 있다.
본 발명의 병렬 경로 알고리즘은 스레드가 더 나은 경로를 찾은 경우, 경계 매개변수 를 업데이트(표 2의 15-17행)할 수 있다. 이후, 본 발명의 병렬 경로 알고리즘은 경로 길이가 가장 짧은 최적 경계 포인트(f*)를 결정할 수 있다. 최적 경계 포인트(f*)에 대한 탐사 궤적은 로봇을 안내하기 위한 전역 계획으로 사용될 수 있다.
단계(304)에서 컴퓨팅 장치는 최적 경계 포인트를 이용하여 특정 공간의 미지 영역을 자율적으로 탐색할 수 있다.
도 4는 본 발명의 일실시예에 따른 경계 검출 알고리즘을 설명하기 위해 도시한 흐름도이다.
컴퓨팅 장치는 점유 격자 지도에 대하여 단계(401) 내지 단계(403)의 동작을 수행할 수 있다.
단계(401)에서 컴퓨팅 장치는 스캔 리스트(P), 프론트 큐(Q), 경계 영역 리스트(F)를 초기화할 수 있다. 컴퓨팅 장치는 격자 벡터(L)를 M(점유 격자 지도)과 동일한 크기로 할당하고, 모두 FAR 값으로 초기화할 수 있다.
단계(402)에서 컴퓨팅 장치는 점유 격자 지도에 대한 경계 영역을 결정하기 위해 MARCHFRONT() 함수를 실행할 수 있다.
단계(403)에서 컴퓨팅 장치는 경계 영역에 존재하는 장애물 존재 확률을 설정하기 위해 EXTRACTFRONTIERS() 함수를 실행할 수 있다.
도 5는 본 발명의 일실시예에 따른 경계 검출 알고리즘의 MARCHFRONT() 함수를 을 설명하기 위해 도시한 흐름도이다.
도 5의 흐름도는 아래의 표 3을 참고하여 경계 검출 알고리즘의 동작을 설명하기 위해 도시한 도면이다. 일례로, 본 발명은 경계 검출 알고리즘에 관한 MARCHFRONT() 함수를 이용하여 자유 영역과 미지 영역 사이의 경계 영역들을 결정할 수 있다.
보다 자세하게, MARCHFRONT() 함수는 특정 공간에 관한 전면 이미지를 스캔하여 경계 셀을 탐색 및 저장할 수 있다. MARCHFRONT() 함수는 저장된 경계 셀을 이용하여 이동 로봇이 접근함으로써, 경계 영역들을 결정할 수 있다.
단계(501)에서 컴퓨팅 장치는 특정 공간의 시드 포인트가 프론트 큐(Q)에 추가(표 3의 9행)될 수 있다.
단계(502)에서 컴퓨팅 장치는 프론트 큐(Q)가 Empty 되어 있는지 여부를 확인할 수 있다. 프론트 큐(Q)가 Empty 된 경우(502: No), 컴퓨팅 장치는 컴퓨팅 장치의 동작을 종료할 수 있다.
프론트 큐(Q)가 Empty되지 않은 경우(502: No), 단계(503)에서 컴퓨팅 장치는 프론트 큐(Q)에 포함된 경계 셀(q)을 추출하여 언노운 셀을 확인할 수 있다. 다시 말해, 컴퓨팅 장치는 메인 루프에서 셀 q ∈ Q와 주변 셀이 경계 셀(즉, q ∈ B)인지 아닌지를 검사(표 3의 14-24행)할 수 있다. 일례로, q의 이웃 셀이 UNKNOWN 셀이 아닌 경우, 셀 q는 UNKNOWN를 나타내는 셀임에 따라 경계 영역으로 결정될 수 있다.
단계(503)에서 컴퓨팅 장치는 경계 셀이 잠재적으로 경계 영역에 속하기 때문에 메인 루프 프로세스 동안 선형 목록(P)(표 3의 23행)에 저장될 수 있다. 또한, L은 검사한 셀이 이전에 방문한 적이 있는지 여부에 대한 정보를 저장할 수 있다. 이는 셀을 중복하여 탐색 및 저장되는 것을 방지하기 위해 검사한 셀에 대한 이전 방문 여부를 체크할 수 있다.
단계(504)에서 컴퓨팅 장치는 특정 공간에 위치한 이동 로봇의 현재 위치에서 임의로 멀리 떨어져 있는 미탐사 점(또는, 포인트)로 시드 포인트를 초기화할 수 있다. 일례로, 컴퓨팅 장치는 확장된 맵의 (0,0) 좌표를 시드 포인트로 설정할 수 있다.
도 6은 본 발명의 일실시예에 따른 경계 검출 알고리즘의 EXTRACTFRONTIERS() 함수를 설명하기 위해 도시한 흐름도이다.
도 6의 흐름도는 도 5의 표 3을 참고하여 경계 검출 알고리즘의 EXTRACTFRONTIERS() 함수를 설명하기 위해 도시한 도면이다. 일례로, 본 발명은 EXTRACTFRONTIERS() 함수를 이용하여 경계 셀 및 이웃 셀에 장애물이 존재하는지 여부를 확인할 수 있다.
보다 구체적으로, 컴퓨팅 장치는 특정 공간의 시드 포인트를 기반으로 경계 셀의 값 및 이웃 셀들 각각의 값이 언노운 값을 나타내는지 여부를 확인할 수 있다. 컴퓨팅 장치는 확인 결과에 따라 경계 셀 및 이웃 셀들에 장애물이 존재하는지를 판단할 수 있다. 이하에서는, EXTRACTFRONTIERS() 함수의 순서에 따라 장애물을 판단하는 과정을 설명하도록 한다.
단계(601)에서 컴퓨팅 장치는 이동 로봇의 위치를 경계 포인트로 이동시킨 후, 경계 영역을 스캔할 수 있다. 자세하게, 컴퓨팅 장치는 스캔 리스트(P)에 저장된 모든 셀에 접근하여 모든 셀들이 OCCUPIED가 안된 상태인지(표 3의 30행)를 확인할 수 있다. 여기서, 컴퓨팅 장치는 스캔 리스트(P) 내 모든 셀의 포인트가 점유되지 않은 경우, 경계 셀을 수집(표 3의 31행)할 수 있다.
컴퓨팅 장치는 스캔 리스트(P)에 스캔된 경계 영역의 경계 셀을 저장 및 관리할 수 있다. 컴퓨팅 장치는 스캔 리스트(P)에 저장된 모든 경계 영역의 경계 셀들을 순차적으로 추출하여 아래의 단계(602) 내지 단계(605)의 동작을 수행할 수 있다.
단계(602)에서 컴퓨팅 장치는 스캔 리스트(P)에 저장된 모든 경계 영역의 경계 셀들 중에서 하나의 경계 영역의 경계 셀(p)를 추출할 수 있다. 일례로, 컴퓨팅 장치는 선입선출(FIFO: First-In First-Out) 구조로, 스캔 리스트(P)에서 경계 영역의 경계 셀(p)를 순차적으로 추출할 수 있다.
단계(603)에서 컴퓨팅 장치는 추출된 경계 영역의 경계 셀(p) 및 경계 셀(p)과 인접한 이웃 셀(P(nj))들에 대하여 아래의 단계(604) 내지 단계(605)의 동작을 수행할 수 있다.
단계(604)에서 컴퓨팅 장치는 이웃 셀(P(nj))들이 장애물인지 여부를 확인할 수 있다. 보다 자세하게, 컴퓨팅 장치는 점유 격자 지도에 포함된 레이블(label)을 분석할 수 있다. 점유 격자 지도에 포함된 레이블은 FREE, OBSTACLE, UNKNOWN의 3가지로 구분될 수 있다. 컴퓨팅 장치는 레이블을 통해 현재 접근한 이웃 셀의 값을 확인하여 확인된 이웃 셀의 값이 "OBSTACLE"을 나타내는 레이블로 판단되면, 해당 이웃 셀을 장애물로 확인할 수 있다.
이웃 셀(P(nj))들이 장애물이 아닌 경우(604: No), 단계(605)에서 컴퓨팅 장치는 경계 셀(p)을 경계 영역(F)으로 식별할 수 있다. 경계 영역(F)는 스캔 리스트(P)와 동일한 크기를 갖는 리스트일 수 있다. 컴퓨팅 장치는 경계 영역으로 식별된 경계 셀(p)의 값(f)을 계산한 후, 경계 셀(p)을 경계 영역(F)에 추가할 수 있다.
여기서, 컴퓨팅 장치는 각 경계 영역에 대해 연결된 구성 요소를 계산한 다음, 해당 중심과 해당 경계 포인트를 계산하여 경계 영역을 클러스터링을 수행할 수 있다. 다시 말해, 컴퓨팅 장치는 연결 요소 라벨링(Connected Component Labeling) 기법을 사용하여 FFP를 통해 검출한 경계선(frontier region)에 해당하는 셀들 중에서 서로 연결된 셀들끼리 같은 레이블을 부여하는 방식으로 그룹화할 수 있다. 컴퓨팅 장치는 그룹화를 통해 경계 영역을 클러스터링 할 수 있다.
도 7은 본 발명의 일실시예에 따른 컴퓨팅 장치를 탑재한 이동 로봇이 특정 공간을 구성하는 복수의 영역을 탐사하는 동작을 설명하기 위해 도시한 도면이다.
도 7을 참고하면, 컴퓨팅 장치는 미지 환경을 갖는 특정 공간에서 추출되는 경계 영역에서 새로운 미지 영역을 탐색할 수 있는 경계 포인트를 결정할 수 있다. 컴퓨팅 장치는 전면 그리도 지도를 기반으로 경계 검출 알고리즘을 적용함으로써, 특정 공간 내 자유 영역과 미지 영역 사이의 경계 영역을 결정할 수 있다. 이때, 컴퓨팅 장치는 경계 영역을 감지하기 위한 정확도를 유지하면서 점유 격자 지도의 크기를 다운 샘플링하여 경계 검출 알고리즘에 따른 속도를 가속화 시킬 수 있다.
또한, 컴퓨팅 장치는 경계 영역에 포함된 경계 셀과 경계 셀과 인접한 이웃 셀들을 분석하여 무의미한 셀을 제거함으로써, 이동이 불가능한 목표점으로의 설정을 사전에 방지할 수 있다. 또한, 컴퓨팅 장치는 분기 조건 및 경계 조건을 만족하도록 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있습니다. 다시 말해, 컴퓨팅 장치는 병렬 경로 알고리즘에 의해 이동 경로를 효율적으로 병렬화할 수 있다.
컴퓨팅 장치는 이동 로봇에 의해 탐사된 상기 특정 공간의 미지 영역에 대한 탐사 궤적을 점유 격자 지도에 표시함으로써, 탐사 궤적으로 포함하는 새로운 점유 격자 지도를 생성할 수 있다. 다시 말해, 컴퓨팅 장치는 점유 격자 지도에 이동 로봇의 탐사 궤적을 실시간으로 합성함으로써, 이동 로봇에 의해 미지 영역이 탐색된 새로운 맵을 구축할 수 있다.
도 7의 (a) 내지 (g)에 도시된 도면들은 미지 환경에서 컴퓨팅 장치를 탑재한 이동 로봇의 자율 주행을 단계적으로 도시화한 것이다.
도 7의 (a)를 참고하면, 컴퓨팅 장치는 특정 공간 내 이동 로봇의 현재 위치를 기반으로 경계 영역들에서 이동 로봇이 첫 번째로 이동할 경계 포인트(또는, 국경 지점)에 접근할 수 있다. 컴퓨팅 장치는 경계 영역들 중에서 최적 경계 포인트가 결정되고, 결정된 최적 경계 포인트를 이용하여 특정 공간의 미지 영역을 탐사할 수 있다. 컴퓨팅 장치는 이동 로봇의 위치를 최적 경계 포인트로 이동시킨 후, 미지 영역을 일정 화각으로 스캔하여 탐사할 수 있다.
도 7의 (b)를 참고하면, 컴퓨팅 장치는 이동 로봇이 첫 번째 경계 포인트를 목표로 도달한 다음, 두 번째 경계 포인트를 차례로 검색할 수 있다.
도 7의 (c)를 참고하면, 컴퓨팅 장치는 두 번째 경계 포인트, 세 번째 경계 포인트 등을 목표로 도달한 후, 연속하여 후속적으로 새로운 영역을 탐색할 수 있다.
도 7의 (d), (e) 및 (f)는 각각 (a), (b) 및 (c)에서 이동 로봇의 관점에서 바라본 뷰를 나타낸 도면이다.
도 7의 (g)를 참고하면, 컴퓨팅 장치는 이동 로봇의 탐사 궤적이 점유 격자 지도에 커버된 영역을 나타낼 수 있다.
도 8은 본 발명의 일실시예에 따른 서로 다른 경계 검출 알고리즘에 따른 성능을 나타낸 그래프이다.
도 8의 그래프는 본 발명에서 제안하는 자율 탐색 방법의 경계 검출 알고리즘(FFP) 및 파면 감지 방법(WFD: Wavefront Frontier Detection) 각각의 성능을 나타낸 결과이다. 본 발명은 미지 환경에서 최적의 이동 경로를 탐색하기 위해 사용되는 점유 격자 지도를 다운 샘플링(DS: Down Sampling)을 수행할 수 있다. 본 발명은 각 방법에 따른 원본에 해당되는 점유 격자 지도 및 다운 샘플링이 수행된 점유 격자 지도를 활용한 성능을 평가할 수 있다.
본 발명의 자율 탐색 방법을 수행하는 컴퓨팅 장치는 미지 환경을 갖는 특정 공간을 탐색하면서 특정 공간에 존재하는 잠재적인 미지 영역을 보다 정확하게 찾아낼 수 있다. 컴퓨팅 장치는 이동 로봇에 탑재되어 자율적으로 탐색함에 따라 최대 18M 셀까지 증가하는 매우 큰 규모를 갖는 특정 공간을 파악할 수 있다.
도 8의 (a)에서 그래프의 X축은 점유 격자 지도의 크기를 나타내며, Y축은 로그 스케일에 따른 실행 시간을 나타낼 수 있다. 도 8의 (a)를 참고하면, 자율 탐색 방법에서 사용되는 경계 검출 알고리즘은 파면 감지 방법보다 약 6 배 빠르며, 이는 특정 공간을 나타낸 점유 격자 지도의 맵 크기를 축소될수록 더욱 가속화될 수 있다.
또한, 이중 다운 샘플링된 점유 격자 지도에 적용된 경계 검출 알고리즘은 원본에 해당되는 점유 격자 지도에 적용된 경계 검출 알고리즘 보다 약 14 배, 원본에 해당되는 점유 격자 지도에 적용된 파면 감지 방법보다 87배 빠른 것으로 확인될 수 있다.
도 8의 (b)와 (c)에서 그래프의 X축은 점유 격자 지도의 크기를 나타내며, Y축은 프론티어 포인트를 나타낼 수 있다. 도 8의 (b)의 그래프는 경계 영역에서 탐지된 경계 포인트의 수에서 경계 검출 알고리즘과 파면 감지 방법이 유사한 성능을 나타낼 수 있다.
도 8의 (c)의 그래프는 경계 영역에서 감지된 경계 포인트의 수에 대한 다운 샘플링이 적용된 점유 격자 지도의 효과를 나타낼 수 있다.
도 8의 (c)의 그래프는 다운 샘플링이 적용된 점유 격자 지도에 감지된 경계 영역의 수에 따른 어떤 성능을 나타내는지를 보여줄 수 있다.
IG > 6인 경우, 경계 검출 알고리즘은 경계 영역의 클러스터 크기를 임계값으로 지정하는 것이 단일 다운샘플링을 적용하는 성능과 거의 동일함을 의미할 수 있다. 여기서, 정보 이득(IG)은 경계 영역의 크기를 나타낼 수 있다. 즉, 경계 검출 알고리즘은 합리적인 크기의 경계 영역에 대한 클러스터만 고려하면 대략적인 수준에서, 필요한 모든 경계 점을 탐색할 수 있다.
여기서, IG > 6인경우, 경계 검출 알고리즘은 셀 크기가 6보다 큰 클러스터를 의미하며, 맵 해상도가 0.05m로 설정되어 0.3m의 영역을 의미할 수 있다. 이때, 0.3m는 Turtlebot과 같은 일반 가정 청소 로봇의 크기이고 IG = 12는 Fetch 로봇과 같은 창고 로봇 크기일 수 있다. 따라서, 단일 다운 샘플링된 점유 격자 지도를 사용되는 경계 검출 알고리즘은 Turtlebot 크기 로봇의 모든 경계 영역을 찾을 수 있다.
도 9는 본 발명의 일실시예에 따른 병렬 경로 알고리즘의 성능을 나타낸 그래프이다.
도 9의 그래프는 병렬 경로 알고리즘을 기반으로 스레드 계획에 따른 상대적 런타임이 개선된 결과를 도시한 그래프이다. 여기서, 병렬 경로 알고리즘은 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다. 병렬 경로 알고리즘은 경계 영역들에 대한 분기 조건 및 경계 조건을 만족하도록 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다.
도 9의 (a)를 참고하면, 그래프의 범례 1()은 필터를 사용하지 않은 단일 스레드를 이용해 이동 경로를 탐색한 결과(이하, 탐색 ①로 기재)를 나타낼 수 있다. 그래프 상에 표현된 w/o Filter는 with-out Filter의 약자로 필터를 사용하지 않는다는 것을 의미한다.
그래프의 범례 2()는 분기 조건 및 경계 조건이 적용되지 않은 병렬 경로 알고리즘(A*) 및 필터를 이용해 이동 경로를 탐색한 결과(이하, 탐색 ②로 기재)를 나타낼 수 있다. 그래프 상에 표현된 w/o BB는 with-out Branch and Bound의 약자로, 분기 조건 및 경계 조건이 적용되지 않는 다는 것을 의미한다.
그래프의 범례 3()는 분기 조건 및 경계 조건이 적용된 병렬 A* 및 필터를 이용해 이동 경로를 탐색한 결과(이하, 탐색 ③로 기재)를 나타낼 수 있다.
이에, 본 발명의 자율 탐색 방법이 적용된 탐색 ③은 탐색 ② 보다 약 2 배 빠른 것으로 확인이 가능할 수 있다. 일례로, 자율 탐색 방법은 20 개의 스레드가 작동 중일 때, 탐색 ② 보다 약 30배 빠른 탐색이 가능할 수 있다.
도 9의 (b)를 참고하면, 자율 탐색 방법은 전면 그리드 맵을 기반으로 단일 스레드 계획에 따른 상대적 런타임의 개선을 나타낸 결과이다.
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
101: 컴퓨팅 장치
102: 특정 공간
103: 탐사 궤적이 표시된 점유 격자 지도
104: 이동 로봇의 탐사 궤적

Claims (18)

  1. 자율 탐색 방법에 있어서,
    경계 검출 알고리즘(FFP: Fast Front Propagation)을 적용하여 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계;
    상기 경계 영역들에 병렬 경로 알고리즘을 적용하여 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정하는 단계; 및
    상기 최적 경계 포인트를 이용하여 상기 특정 공간의 미지 영역을 탐사하는 단계
    를 포함하는 자율 탐색 방법.
  2. 제1항에 있어서,
    상기 경계 영역들을 결정하는 단계는,
    이동 로봇의 시작 위치를 기준으로 특정 공간이 스캔된 점유 격자 지도를 다운 샘플링하는 단계;
    상기 다운 샘플링 된 점유 격자 지도에 경계 검출 알고리즘을 적용하여 상기 다운 샘플링 된 점유 격자 지도 내 경계 셀을 설정하는 단계; 및
    상기 경계 셀이 설정된 점유 격자 지도에 경계 필터 기능 또는, 장애물 필터 기능 중 적어도 하나를 적용하여 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계
    를 포함하는 자율 탐색 방법.
  3. 제2항에 있어서,
    상기 경계 영역들을 설정하는 단계는,
    경계 필터 기능을 적용하여 경계 셀 및 상기 경계 셀과 인접한 이웃 셀들을 이용하여 이동 로봇에 대한 전면 전진 여부를 확인하는 단계; 및
    상기 이웃 로봇에 대한 전면 전진 여부를 고려하여 상기 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계
    를 포함하는 자율 탐색 방법.
  4. 제3항에 있어서,
    상기 이동 로봇의 전면 전진 여부를 확인하는 단계는,
    상기 특정 공간의 시드 포인트를 기반으로 상기 경계 셀의 값 및 이웃 셀들 각각의 값이 언노운 값을 나타내는지 여부를 확인하는 단계; 및
    상기 확인 결과에 따라 점유 격자 지도 상에 상기 이동 로봇의 전면 전진 여부를 확인하는 단계
    를 포함하고,
    상기 시드 포인트는,
    상기 특정 공간에 위치 가능한 이동 로봇의 현재 위치에서 상기 특정 공간 내 임의로 이격된 미지 영역의 포인트인 자율 탐색 방법.
  5. 제3항에 있어서,
    상기 경계 영역들을 결정하는 단계는,
    장애물 필터 기능을 적용하여 상기 전면 전진 여부가 확인된 상기 경계 셀 및 이웃 셀들의 장애물 존재 확률을 설정하는 단계; 및
    상기 설정된 장애물 존재 확률을 고려하여 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계
    를 포함하는 자율 탐색 방법.
  6. 제1항에 있어서,
    상기 경계 포인트를 결정하는 단계는,
    상기 병렬 경로 알고리즘을 적용하여 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하는 단계; 및
    상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 경계 영역들 중 최적 경계 포인트를 결정하는 단계
    를 포함하는 자율 탐색 방법.
  7. 제6항에 있어서,
    상기 탐색하는 단계는,
    상기 경계 영역들에 대한 분기 조건 및 경계 조건을 고려하여 상기 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하고,
    상기 분기 조건은,
    복수의 스레드를 실행시키기 위한 시작 요소이고,
    상기 경계 조건은,
    이동 경로를 탐색하기 위한 종료 요소인
    자율 탐색 방법.
  8. 제6항에 있어서,
    상기 경계 포인트를 결정하는 단계는,
    상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 길이를 비교하여 이동 가능한 경계 영역들을 구성하는 경계 포인트 중 최적 경계 포인트를 결정하는 자율 탐색 방법.
  9. 자율 탐색 방법에 있어서,
    이동 로봇의 시작 위치를 기준으로 특정 공간을 스캔하여 점유 격자 지도를 생성하는 단계;
    상기 생성된 점유 격자 지도를 다운 샘플링한 후, 상기 다운 샘플링 된 점유 격자 지도에 경계 검출 알고리즘을 적용하는 단계;
    상기 경계 검출 알고리즘이 적용된 점유 격자 지도에 경계 필터 기능 및 장애물 필터 기능 중 적어도 하나를 적용하여 상기 점유 격자 지도에 표현 가능한 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계;
    병렬 경로 알고리즘을 적용하여 상기 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하는 단계;
    상기 병렬로 동시에 탐색된 이동 경로들을 이용하여 상기 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정하는 단계;
    상기 최적 경계 포인트를 이용하여 상기 특정 공간의 미지 영역을 탐사하는 단계; 및
    상기 이동 로봇에 의해 탐사된 상기 특정 공간의 미지 영역에 대한 탐사 궤적을 점유 격자 지도에 표시하는 단계
    를 포함하는 자율 탐색 방법.
  10. 제9항에 있어서,
    상기 경계 영역들을 결정하는 단계는,
    상기 경계 검출 알고리즘이 적용된 점유 격자 지도로부터 특정 공간 상에 경계 셀을 설정하는 단계;
    상기 설정된 경계 셀 및 상기 경계 셀과 인접한 이웃 셀들을 이용하여 이동 로봇에 대한 전면 전진 여부를 확인하는 단계; 및
    상기 이웃 로봇에 대한 전면 전진 여부를 고려하여 상기 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계
    를 포함하는 자율 탐색 방법.
  11. 제10항에 있어서,
    상기 이동 로봇의 전면 전진 여부를 확인하는 단계는,
    상기 특정 공간의 시드 포인트를 기반으로 경계 필터 기능을 적용하여 상기 경계 셀의 값 및 이웃 셀들 각각의 값이 언노운 값을 나타내는지 여부를 확인하는 단계; 및
    상기 확인 결과에 따라 점유 격자 지도 상에 상기 이동 로봇의 전면 전진 여부를 확인하는 단계
    를 포함하는 자율 탐색 방법.
  12. 제9항에 있어서,
    상기 경계 영역들을 결정하는 단계는,
    장애물 필터 기능을 적용하여 상기 전면 전진 여부가 확인된 상기 경계 셀 및 이웃 셀들의 장애물 존재 확률을 설정하는 단계; 및
    상기 설정된 장애물 존재 확률을 고려하여 자유 영역과 미지 영역 사이의 경계 영역들을 결정하는 단계
    를 포함하는 자율 탐색 방법.
  13. 제9항에 있어서,
    상기 경계 포인트를 결정하는 단계는,
    상기 병렬 경로 알고리즘을 적용하여 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하는 단계; 및
    상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 경계 영역들 중 최적 경계 포인트를 결정하는 단계
    를 포함하는 자율 탐색 방법.
  14. 제13항에 있어서,
    상기 병렬로 동시에 탐색하는 단계는,
    상기 경계 영역들에 대한 분기 조건 및 경계 조건을 고려하여 상기 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하는 자율 탐색 방법.
  15. 제9항에 있어서,
    상기 최적 경계 포인트를 결정하는 단계는,
    상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 길이를 비교하여 이동 가능한 경계 영역들을 구성하는 경계 포인트 중 최적 경계 포인트를 결정하는 자율 탐색 방법.
  16. 제9항에 있어서,
    상기 최적 경계 포인트를 결정하는 단계는,
    상기 경계 영역들을 구성하는 경계 포인트를 기준으로 나선형 방향으로 상기 경계 셀 및 이웃 셀을 스캔하면서 상기 경계 포인터에 포함된 위치 오차를 보정하는 단계; 및
    상기 위치 오차가 보정된 경계 포인트 중 상기 최적 경계 포인트를 결정하는 단계
    를 포함하는 자율 탐색 방법.
  17. 컴퓨팅 장치에 있어서,
    상기 컴퓨팅 장치는 프로세서를 포함하고,
    상기 프로세서는,
    경계 검출 알고리즘(FFP)을 적용하여 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역들을 결정하고,
    상기 경계 영역들에 병렬 경로 알고리즘을 적용하여 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정하고,
    상기 결정된 최적 경계 포인트를 이용하여 상기 특정 공간의 미지 영역을 탐사하는 컴퓨팅 장치.
  18. 컴퓨팅 장치에 있어서,
    상기 컴퓨팅 장치는 프로세서를 포함하고,
    상기 프로세서는,
    이동 로봇의 시작 위치를 기준으로 특정 공간을 스캔하여 점유 격자 지도를 생성하고,
    상기 생성된 점유 격자 지도를 다운 샘플링한 후, 상기 다운 샘플링 된 점유 격자 지도에 경계 검출 알고리즘을 적용하는 단계;
    상기 경계 검출 알고리즘이 적용된 점유 격자 지도에 경계 필터 기능 및 장애물 필터 기능 중 적어도 하나를 적용하여 상기 점유 격자 지도에 표현 가능한 자유 영역과 미지 영역 사이의 경계 영역들을 결정하고,
    병렬 경로 알고리즘을 적용하여 상기 경계 영역들 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하고,
    상기 병렬로 동시에 탐색된 이동 경로들을 이용하여 상기 이동 로봇의 현재 위치를 기준으로 이동 가능한 경계 영역들 중 최적 경계 포인트를 결정하고,
    상기 결정된 최적 경계 포인트를 이용하여 상기 특정 공간의 미지 영역을 탐사하고,
    상기 이동 로봇에 의해 탐사된 상기 특정 공간의 미지 영역에 대한 탐사 궤적을 점유 격자 지도에 표시하는 컴퓨팅 장치.
KR1020220129661A 2022-10-11 2022-10-11 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치 KR20240050015A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220129661A KR20240050015A (ko) 2022-10-11 2022-10-11 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치
PCT/KR2023/012892 WO2024080550A1 (ko) 2022-10-11 2023-08-30 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220129661A KR20240050015A (ko) 2022-10-11 2022-10-11 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치

Publications (1)

Publication Number Publication Date
KR20240050015A true KR20240050015A (ko) 2024-04-18

Family

ID=90669563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220129661A KR20240050015A (ko) 2022-10-11 2022-10-11 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치

Country Status (2)

Country Link
KR (1) KR20240050015A (ko)
WO (1) WO2024080550A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4067957B2 (ja) * 2002-12-20 2008-03-26 富士通株式会社 境界検出方法、プログラム、及び画像処理装置
KR100611328B1 (ko) * 2005-06-30 2006-08-11 고려대학교 산학협력단 세선화 기반 위상지도의 작성방법 및 그 장치, 이동로봇의탐사를 통한 세선화 기반 위상지도 작성방법 및 그 장치

Also Published As

Publication number Publication date
WO2024080550A1 (ko) 2024-04-18

Similar Documents

Publication Publication Date Title
CN107436148B (zh) 一种基于多地图的机器人导航方法及装置
Zhou et al. Fuel: Fast uav exploration using incremental frontier structure and hierarchical planning
CN108444482B (zh) 一种无人机自主寻路避障方法及系统
Walcott-Bryant et al. Dynamic pose graph SLAM: Long-term mapping in low dynamic environments
US4891762A (en) Method and apparatus for tracking, mapping and recognition of spatial patterns
EP1320834B1 (en) System and method for automatic placement of labels for interactive graphics applications
CN111638526B (zh) 一种陌生环境下机器人自主建图的方法
Hernandez et al. A comparison of homotopic path planning algorithms for robotic applications
CN105335597B (zh) 用于获取路线的轨迹模式的方法和系统
EP4332714A1 (en) Robot navigation method, chip and robot
US11341297B2 (en) Obstacle distribution simulation method, device and terminal based on a probability graph
CN113286985A (zh) 一种路径规划方法和路径规划装置
WO2021021862A1 (en) Mapping and localization system for autonomous vehicles
KR20180092960A (ko) 고속 탐색 랜덤화 피드백 기반의 모션 계획
WO2022141116A1 (zh) 三维点云分割方法和装置、可移动平台
CN114527788A (zh) 基于动态权重的a星算法改进方法、系统、装置及介质
US20210381845A1 (en) Determining landmark detectability
CN114593739B (zh) 基于视觉检测与参考线匹配的车辆全局定位方法及装置
Bouman et al. Adaptive coverage path planning for efficient exploration of unknown environments
EP3620962A1 (en) Method, device and terminal for simulating a distribution of obstacles
KR20240050015A (ko) 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치
Murphy et al. Using incomplete online metric maps for topological exploration with the gap navigation tree
Wang et al. Robust exploration with multiple hypothesis data association
CN116576868A (zh) 一种多传感器融合精确定位及自主导航方法
Ismail et al. Advanced mapping and localization for autonomous vehicles using osm