KR102524995B1 - 전자 장치의 지도 생성 방법 - Google Patents

전자 장치의 지도 생성 방법 Download PDF

Info

Publication number
KR102524995B1
KR102524995B1 KR1020230014425A KR20230014425A KR102524995B1 KR 102524995 B1 KR102524995 B1 KR 102524995B1 KR 1020230014425 A KR1020230014425 A KR 1020230014425A KR 20230014425 A KR20230014425 A KR 20230014425A KR 102524995 B1 KR102524995 B1 KR 102524995B1
Authority
KR
South Korea
Prior art keywords
grid
occupancy
state
map
occupancy state
Prior art date
Application number
KR1020230014425A
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 KR1020230014425A priority Critical patent/KR102524995B1/ko
Application granted granted Critical
Publication of KR102524995B1 publication Critical patent/KR102524995B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/24Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for cosmonautical navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data

Abstract

비클의 위치 정보를 기초로, 제1 점유 격자 지도(occupancy grid map)의 제1 위치를 원점으로 하는 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 확인하고, 센서로부터 획득된 정보를 기초로 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신하고, 비클의 외형 정보를 기초로 제2 점유 격자 지도에 포함되는 격자 중 제1 격자에 대응하는 팽창 범위를 확인하고, 제1 격자의 점유 상태를 기초로 팽창 범위에 포함되는 제2 격자의 팽창된(inflated) 점유 상태를 확인하는 전자 장치 및 그의 동작 방법을 제공한다.

Description

전자 장치의 지도 생성 방법{MAP GENERATING METHOD OF ELECTRONIC APPARATUS}
본 개시는 전자 장치의 지도 생성 방법에 관한 것이다.
드론(Drone) 기술이 전세계적으로 각광받으면서, 드론 시스템을 구성하는 여러 요소기술 역시 빠르게 발전하고 있다. 특히, 무인화를 지향하는 현대의 전쟁 환경에서, 드론은 조종사의 탑승 없이도 적지를 정찰하고 적군의 주요시설 및 전쟁 자원을 타격할 수 있어, 인명 피해 없이 적을 공격할 수 있는 대표적인 비대칭 전력으로서 활용되고 있다.
소형 드론은 매우 가볍고 가격도 저렴하여 분대 규모에서 활용될 수 있는 전쟁 자원이다. 전시 상황에서 드론이 적에 의해 파괴될 수도 있는 점을 고려하면 고비용의 대형 드론을 전장에 투입하는 것은 비용 측면에서 효율적이지 않을 수 있다. 따라서, 파괴되어도 전쟁 수행에 큰 영향이 없도록, 대형 드론 대신 저비용의 수많은 소형 드론을 전장에 투입하는 방안이 지속적으로 대두되고 있다. 특히, 소형 드론의 작은 크기와 민첩성을 이용하여, 소형 드론이 적의 시야 또는 방공망의 탐지 영역으로부터 벗어나 저고도 지면 근처에서 장애물 뒤로 은폐하면서 장애물로의 충돌을 회피하고 목표 지점까지 도달하는 정찰 임무를 수행할 수 있는 방법에 대해 연구가 활발히 이루어지고 있다.
드론이 주변 환경을 인식하고 경로계획을 실시간으로 수행하여 임무를 수행하는 기술은 크기가 상대적으로 큰 드론에 적용되어 왔으나, 최근에는 비행체 주변의 환경을 인식하는 여러 센서(예를 들어, 깊이 카메라(Depth camera) 또는 3D 라이다(LiDAR, Light Detection And Ranging) 등의 ToF(Time of Flight) 센서)의 크기 및 무게가 상대적으로 소형화 및 경량화되면서 소형 드론에도 실시간 경로계획 기술을 적용하는 것이 가능하게 되었다.
본 발명은 소형 드론의 주변 환경 인식을 위한 요소기술 중 하나인 지도 작성 방법과 관련된다. 특히 본 발명은 드론의 3차원 지도 작성을 위해 3차원 비행환경을 격자화 하여 복셀(Voxel)로 표현된 복셀 지도를 실시간으로 작성하기 위한 방법에 관련된 것이다.
종래의 복셀 지도 작성 방법들은 복셀 데이터를 저장하는 방식으로 복셀 배열(Voxel Array)을 활용하는 방식 또는 복셀 해시 테이블(Voxel Hash Table)을 활용하는 방식이 주를 이루었다. 복셀 배열을 활용하는 방식은 지도 데이터의 임의 접근(Random Access)이 가능하여 데이터의 접근 속도가 빠르지만, 배열의 크기에 따라 지도의 크기가 제한되는 장점이 존재한다. 반면 복셀 해시 테이블을 활용하는 방식은 크기가 제한되지는 않지만 해시 테이블 데이터구조의 특성상 데이터의 접근 속도가 느리다는 단점이 존재한다.
본 발명은 복셀 배열의 단점을 보완하는 복셀 지도 작성 방법으로서, 접근 속도를 높이기 위하여 복셀 데이터를 저장하는 방식으로서 복셀 배열을 활용하며, 복셀 배열을 활용함에 따라 지도의 크기가 제한될 수 있는 문제점을 해결하기 위해 "지역 지도 원점 갱신 방법"을 적용한 복셀 지도 작성 방법이다.
본 발명은 비클(Vehicle)의 지도 작성 방법과 관련된다. 구체적으로, 본 발명은 비클의 주변 환경에 대한 점유 격자 지도를 실시간으로 작성하기 위해 점유 격자 지도를 방법에 관련된 것이다.
본 발명이 이루고자 하는 기술적 과제는 상기된 바와 같은 과제로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 실시예에 따라, 전자 장치의 지도 생성 방법에 있어서, 제1 점유 격자 지도(occupancy grid map)에서 비클의 위치 정보를 기초로, 제1 위치를 원점으로 하는 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 확인하는 단계; 센서로부터 획득된 정보를 기초로 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신하는 단계; 비클의 외형 정보를 기초로 제2 점유 격자 지도에 포함되는 격자 중 제1 격자에 대응하는 팽창 범위를 확인하는 단계; 및 제1 격자의 점유 상태를 기초로 팽창 범위에 포함되는 제2 격자의 팽창된(inflated) 점유 상태를 확인하는 단계를 포함할 수 있다.
일 실시예에 따라, 전자 장치로서, 적어도 하나의 프로그램이 저장된 메모리; 및 적어도 하나의 프로그램을 실행함으로써, 비클의 위치 정보를 기초로, 제1 점유 격자 지도(occupancy grid map)의 제1 위치를 원점으로 하는 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 확인하고, 센서로부터 획득된 정보를 기초로 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신하고, 비클의 외형 정보를 기초로 제2 점유 격자 지도에 포함되는 격자 중 제1 격자에 대응하는 팽창 범위를 확인하고, 제1 격자의 점유 상태를 기초로 팽창 범위에 포함되는 제2 격자의 팽창된(inflated) 점유 상태를 확인하는 프로세서를 포함할 수 있다.
일 실시예에 따라, 컴퓨터로 읽을 수 있는 기록매체는 상술한 동작 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 비일시적 기록매체를 포함할 수 있다.
기타 실시예들의 구체적인 사항은 상세한 설명 및 도면들에 포함된다.
본 발명에 따르면, 격자 지도의 크기가 상대적으로 작더라도 비클의 위치에 기초하여 격자 지도가 적절히 갱신될 수 있어 비클의 경로 계획에 부정적인 영향을 주지 않으면서도 격자 지도 데이터의 접근 속도를 높일 수 있는 이점이 있다. 특히, 격자 지도 데이터 구조로서 복셀 배열을 사용하면 격자 지도 데이터의 접근 속도를 더욱 높일 수 있다.
또한 본 발명에 따르면, 원점을 갱신하면서 지역 지도의 범위가 유동적으로 변화할 수 있으므로, 지역 지도의 크기 제한이 사라지게 되는 효과가 있다.
또한 본 발명에 따르면, 간단한 알고리즘을 이용하여 격자의 팽창(inflation)을 수행할 수 있어 비클의 경로 계획을 위한 C-Space(Configuration Space)를 효율적으로 획득할 수 있는 이점이 있다.
또한 본 발명에 따르면, 격자의 이전 점유 상태에 대비하여 점유 상태가 변경된 격자에 대해서만 팽창을 수행하므로 더욱 신속하게 격자의 팽창이 수행될 수 있는 이점이 있다.
발명의 효과는 이상에서 언급한 효과만으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있다.
도 1은 본 개시에 따른 전자 장치를 나타낸다.
도 2는 본 개시에 따른 방법에 대한 블록 선도를 나타낸다.
도 3은 본 개시에 따른 방법에 대한 지도 원점 갱신 단계의 일 실시예를 나타낸다.
도 4는 본 개시에 따른 방법에 대한 격자의 점유 상태의 일 실시예를 나타낸다.
도 5는 본 개시에 따른 방법에 대한 파라미터의 갱신 규칙의 일 실시예를 나타낸다.
도 6은 본 개시에 따른 방법에 대한 팽창된 점유 상태의 일 실시예를 나타낸다.
도 7은 본 개시에 따른 방법의 수행 결과를 시각화한 것이다.
도 8은 본 개시에 따른 방법의 일 실시예를 나타낸다.
본 개시에 기술된 실시예는 본 개시를 제한하는 것이 아니라 예시하는 것이고, 통상의 기술자는 첨부된 청구범위에 의해 정의된 본 개시의 범주를 벗어나지 않으면서, 다수의 대안적인 실시예를 설계할 수 있다. 실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 반대되는 기재가 존재하지 않는 한, 단수는 물론 복수를 모두 포함한다.
본 명세서 전체에서 어떤 부분이 어떤 구성요소들 또는 어떤 단계들을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 어떤 부분이 구성요소들 또는 단계들을 반드시 모두 포함해야 하는 것은 아니고, 청구범위 또는 명세서 전체에 열거된 것 이외의 구성요소 또는 단계가 포함되는 것을 배제하는 것도 아니며, 단지 이들을 더 포함할 수 있음을 의미한다.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 서수를 포함하는 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 문맥상 명세서의 일 부분에서 일 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 명세서의 다른 부분에서 제2 구성요소로 명명될 수 있고, 반대로 제2 구성요소도 명세서의 다른 부분에서 제1 구성요소로 명명될 수 있다.
본 명세서에서 "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 명세서(특히 청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 재배열되어 행해질 수 있고, 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 통상의 기술자는 본 명세서에 개시된 실시예에 설계 조건 및 팩터에 따라 다양한 수정, 조합 및 변경을 부가하여 특허청구범위 또는 그 균등물의 범주에 속하는 새로운 실시예를 구성할 수 있다.
본 개시에서 "점유 격자 지도(Occupancy Grid Map)"은 비클 또는 드론 주변 환경에 대한 정보를 하나 이상의 격자(grid)의 점유 상태로 나타내는 2차원 또는 3차원 지도를 의미할 수 있다. 예를 들어, 지도 상 특정 위치의 격자에 해당하는 넓이 또는 부피가 물체에 의해 채워진 경우, 해당 격자는 채워짐(occupied) 상태로 설정될 수 있다. 즉, 채워짐 상태의 격자에 해당하는 위치로 비클 또는 드론이 이동하는 경우, 비클 또는 드론은 그 위치에 존재하는 물체와 충돌할 수 있다. 다른 예를 들어, 지도 상 특정 위치의 격자에 해당하는 넓이 또는 부피가 비어 있는 경우, 해당 격자는 비어 있음(free) 상태로 설정될 수 있다. 즉, 비클 또는 드론은 비어 있음 상태의 격자에 해당하는 위치로 자유로이 이동할 수 있다. 또 다른 예를 들어, 지도 상 특정 위치의 격자에 해당하는 넓이 또는 부피가 비어 있는지 확인되지 않은 경우, 해당 격자는 미지(unknown) 상태로 설정될 수 있다. 미지 상태의 격자는 센서 등에 의해 그 점유 상태가 확인되지 않은 상태이므로, 센서 등에 의해 해당 격자가 측정된 다음, 해당 격자가 채워짐 상태 또는 비어 있음 상태로 설정될 수 있다. 점유 격자 지도가 3차원 지도인 경우, 격자는 정육면체 형태로 나타날 수 있고, 정육면체 형태의 3차원 격자는 복셀(Voxel)을 의미할 수 있다.
본 개시에서 "비클(Vehicle)"은 이동 가능한 물체를 의미할 수 있다. 비클에는 유인(manned) 이동체는 물론 무인 이동체도 포함될 수 있다. 예를 들어, 비클에는 무인 자동차 또는 드론 등이 포함될 수 있다.
이하에서는 도면을 참조하여 본 개시의 실시예를 설명한다.
도 1 은 본 개시의 적어도 하나의 실시예를 실행하는데 사용될 수 있는 전자 장치(100)의 예시적이고 단순화된 블록도를 나타낸다. 다양한 실시예에서, 전자 장치(100)는 본 개시에서 서술된 임의의 시스템 또는 방법을 구현하는데 사용될 수 있다. 예를 들어, 전자 장치(100)는 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터, 태블릿 컴퓨터, 워크스테이션, 휴대폰, 스마트 폰(smart phone) 또는 아래에서 서술되는 임의의 다른 디바이스를 포함하는 임의의 전자 장치로서 사용되도록 구성될 수 있다.
전자 장치(100)는 메모리(120) 및 메모리(120)와 통신하도록 구성될 수 있는 하나 이상의 캐시 메모리 및 메모리 제어기를 갖는 하나 이상의 프로세서(110)를 포함할 수 있다. 추가적으로, 전자 장치(100)는 하나 이상의 포트(예컨대, USB(Universal Serial Bus), 헤드폰 잭, 라이트닝(Lightning) 커넥터, 썬더볼트(Thunderbolt) 커넥터 등)를 통해 전자 장치(100)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 전자 장치(100)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성되는 복수의 포트를 포함할 수 있다. 도시된 전자 장치(100)의 구성은 디바이스의 바람직한 실시예를 예시할 목적으로 특정 예시로서만 의도된다. 도시된 전자 장치(100)에는 본 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 전자 장치(100)에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
프로세서(110)는 전자 장치(100)가 본 개시에서 서술된 임의의 실시예의 단계 또는 기능을 제공하도록 하기 위해 이용될 수 있다. 예를 들어, 프로세서(110)는 전자 장치(100) 내의 메모리(120)에 저장된 프로그램들을 실행함으로써, 전자 장치(100)를 전반적으로 제어한다. 프로세서(110)는 전자 장치(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
메모리(120)는 전자 장치(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 메모리(120)는 전자 장치(100)에서 프로세서(110)를 통해 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하는 것은 물론, 본 개시의 실시예의 기능을 제공할 수 있는 애플리케이션들(프로그램, 코드 모듈, 명령어), 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
본 개시에 따른 방법 및 각 단계는 전자 장치(100) 또는 프로세서(110)가 수행할 수 있지만, 설명을 간단히 하기 위하여 아래부터는 프로세서(110)가 본 개시에 따른 방법 및 각 단계의 수행 주체임을 전제하여 설명한다.
도 2는 본 개시에 따른 방법에 대한 블록 선도를 나타낸다. 일 실시예에서, 프로세서(110)는 제1 점유 격자 지도(occupancy grid map)에서 비클의 위치 정보를 기초로, 제1 위치를 원점으로 하는 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태(occupancy state)를 확인할 수 있다. 구체적으로, 프로세서(110)는 비클의 포즈(pose) 정보(221)를 기초로 제1 점유 격자 지도의 원점을 제1 위치로 갱신(240)하여 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 초기화할 수 있다. 위 과정에 대해서는 도 3을 참조하여 더 자세히 설명한다.
포즈 정보(221)는 비클의 위치 및 자세 정보를 의미할 수 있다. 예를 들어, 포즈 정보(221)는 가속도계, 자이로 센서(Gyro Sensor) 및 관성 측정 유닛(Inertial Measurement Unit) 등의 관성 측정 시스템 또는 GPS(Global Positioning System) 등의 위치 측정 시스템을 통해 획득될 수 있다.
일 실시예에서, 프로세서(110)는 센서로부터 획득된 정보를 기초로 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신할 수 있다. 구체적으로, 프로세서(110)는 ToF(Time of Flight) 센서로부터 획득된 깊이 정보(211) 및 관성 센서로부터 획득된 포즈(pose) 정보(221)를 기초로 광선 투사(ray casting)(230)를 수행하여 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신(250)할 수 있다. 예를 들어, 프로세서(110)는 비클에 탑재된 깊이 카메라(depth camera)로부터 깊이 이미지(211)를 획득하고, 깊이 이미지(211)로부터 포인트 클라우드(point cloud)(212) 정보를 확인하고, 포인트 클라우드(212) 정보 및 포즈 정보(221)를 기초로 광선 투사(ray casting)(230)를 수행하여 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신(250)할 수 있다. 이와 같이 센서로부터 획득된 정보를 기초로 격자의 점유 상태가 갱신(250)되므로, 갱신된 격자의 점유 상태는 미지 상태가 아닐 수 있다. 즉, 일 실시예에서, 프로세서(110)는 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 채워짐 상태 및 비어 있음 상태 중 어느 하나로 갱신할 수 있다.
도 2에는 깊이 이미지(211)로부터 포인트 클라우드(212)가 확인되는 것으로 나타나 있으나, 포인트 클라우드(212)가 확인되는 방법은 이에 한정되지 않고, 알려진 ToF 센서로부터 포인트 클라우드(212)가 확인될 수 있다. 예를 들어, LiDAR(Light Detection And Ranging) 센서로부터 포인트 클라우드(212)가 획득될 수 있다.
프로세서(110)는 비클의 포즈 정보(221) 또는 비클의 자세 정보 및 포인트 클라우드(212) 정보를 기초로 광선 투사를 수행하여 점유 격자 지도에 포함되는 격자의 점유 상태를 확인할 수 있다. 예를 들어, 프로세서(110)는 비클에 탑재된 ToF 센서의 지향 방향 정보 및 비클의 포즈 정보를 이용하여, 격자 지도 내에서 ToF 센서가 지향하는 방향을 확인할 수 있고, ToF 센서의 지향 방향, ToF 센서의 화각 및 포인트 클라우드(212) 데이터를 이용하여 ToF 센서의 지향 방향 근처 격자들의 점유 상태를 갱신할 수 있다. 이 때, 각 격자들이 채워질 확률을 기초로 각 격자들의 점유 상태가 갱신될 수 있다. 예를 들어, 격자가 채워질 확률이 기 설정된 수치 이상으로 확인된 경우, 격자의 점유 상태는 채워짐 상태로 갱신될 수 있고, 격자가 채워질 확률이 기 설정된 수치 미만인 경우, 격자의 점유 상태는 비워짐 상태로 갱신될 수 있다. 여기서 기 설정된 수치는 0.5 또는 0.75 등일 수 있다. 각 격자들이 채워질 확률은 비클에 탑재된 관성 센서, ToF 센서 등 센서의 측정 특성을 반영한 측정 모델 및 비클의 동역학 모델을 기초로 업계에 알려진 필터 또는 추정 알고리즘들을 활용하여 추정될 수 있다.
장애물을 피해 비클을 목표 위치로 이동시키기 위해 경로 계획(path planning)이 수행될 수 있는데, 경로 계획을 위한 알고리즘을 적용할 때 비클은 질점으로 간주될 수 있다. 비클을 질점으로 간주하기 위해 비클의 외형 정보를 기초로 점유 격자 지도에서 채워짐 상태에 있는 격자들 주변의 격자들은 채워짐 상태로 간주될 필요가 있다. 따라서 일 실시예에서, 프로세서(110)는 비클의 외형 정보를 기초로 제2 점유 격자 지도에 포함되는 격자 중 제1 격자에 대응하는 팽창 범위를 확인하고, 제1 격자의 점유 상태를 기초로 팽창 범위에 포함되는 제2 격자의 팽창된(inflated) 점유 상태를 확인할 수 있다. 구체적으로, 프로세서(110)는 격자 지도에 포함되는 격자들 각각의 점유 상태를 기초로, 각 격자들의 팽창된 점유 상태를 확인(260)하고, 비클의 주변 지역에 대한 환경 정보(270)를 갱신할 수 있다. 환경 정보(270)는 비클 주변의 장애물에 관한 정보를 포함할 수 있다.
구체적으로, 프로세서(110)는 비클에 관한 길이를 기초로 제1 격자를 중심으로 하는 팽창 범위를 확인할 수 있다. 비클에 관한 길이는 비클의 외형으로부터 확인될 수 있다. 예를 들어, 비클에 관한 길이는 비클의 무게 중심으로부터 비클의 가장 먼 표면까지의 거리를 의미할 수 있다. 이 때, 팽창 범위는 제1 격자를 중심으로 하고, 거리를 반지름으로 하는 원 또는 구를 의미할 수 있다. 이와 달리, 계산의 편의를 위해 팽창 범위는 제1 격자를 중심으로 하고, 거리를 한 변의 절반으로 하는 정사각형 또는 정육면체를 의미할 수 있다.
일 실시예에서, 점유 격자 지도에 포함되는 격자의 크기 및 개수는 비클의 외형 정보, 비클 주변의 장애물에 대한 정보, 비클의 활동 범위, 비클에 탑재된 관성 센서, 항법 센서 또는 ToF 센서의 정확도 또는 해상도, 지도 데이터의 저장 공간, 프로세서(110)의 연산 속도 등을 고려하여 결정될 수 있다. 예를 들어, 점유 격자 지도는 한 변의 길이를 15cm으로 하는 정사각형 또는 정육면체 형태의 격자로 이루어진 2차원 또는 3차원 격자 지도일 수 있다. 점유 격자 지도에 포함되는 격자의 크기는 모두 서로 동일할 수도 있지만, 상황에 따라 격자의 크기는 동적으로 결정될 수도 있다. 예를 들어, 주변 지역보다 장애물이 적다고 판단된 지역은 주변 지역에 비해 격자의 크기가 큰 격자로 구성될 수 있다. 이는 격자 지도 데이터의 저장 공간 및 격자 지도를 연산하기 위한 자원을 절약할 수 있는 이점을 갖는다.
본 개시는 점유 정보를 포함하는 지역 지도(local map)의 형태로서 정사각형 또는 정육면체 형태의 격자로 구성된 2차원 또는 3차원의 점유 격자 지도를 포함하지만, 지역 지도의 형태는 이에 한정되지 않고, 2차원 또는 3차원의 지도를 세부 지역으로 분할하는 알려진 모든 형태가 지역 지도의 형태에 포함될 수 있다. 예를 들어, 지역 지도는 동일한 크기의 원 또는 정육각형으로 분할되거나, 동일한 크기의 구 또는 정다면체로 분할될 수도 있다.
도 3은 본 개시에 따른 방법에 대한 지도 원점 갱신 단계의 일 실시예를 나타낸다. 일 실시예에서, 프로세서(110)는 비클의 포즈 정보를 기초로 제1 점유 격자 지도(310)를 제2 점유 격자 지도(320)로 갱신할 수 있다. 즉, 프로세서(110)는 제1 점유 격자 지도(310)에 포함되는 영역 대신 제2 점유 격자 지도(320)에 포함되는 영역을 탐색 대상 영역으로 확인할 수 있다. 이 때, 프로세서(110)는 제1 점유 격자 지도(310)의 경계(311) 및 제1 경계(324) 중 적어도 하나를 기초로 제1 영역(315)를 확인할 수 있다. 구체적으로, 프로세서(110)는 제1 점유 격자 지도(310)의 경계(311) 및 제1 경계(324)로 둘러싸인 제1 영역(315)를 확인할 수 있다. 즉, 제1 영역(315)은 제1 점유 격자 지도(310)의 경계(311) 주변의 영역을 포함할 수 있다. 일 실시예에서, 비클의 위치(350)가 제1 영역(315)에 포함되는 경우, 프로세서(110)는 제1 점유 격자 지도(310)를 제2 점유 격자 지도(320)로 갱신할 수 있다. 이는 점유 격자 지도의 갱신이 너무 자주 일어나지 않도록 하여 프로세서(110)의 연산 자원을 절약하는 이점이 있다. 제1 경계(324)는 제1 점유 격자 지도(310)의 경계(311)로부터 기 설정된 거리만큼 제1 점유 격자 지도(310)의 안쪽으로 이격된 도형을 포함할 수 있다.
일 실시예에서, 프로세서(110)는 비클의 포즈 정보를 기초로 제1 점유 격자 지도(310)의 원점(312)을 제1 위치(322)로 갱신하여 제2 점유 격자 지도(320)를 확인할 수 있다. 구체적으로, 프로세서(110)는 제1 점유 격자 지도(310)의 중심(313)을 기준으로 하는 비클의 변위(displacement)를 기초로 제1 위치(322)를 확인할 수 있다. 예를 들어, 프로세서(110)는 제1 점유 격자 지도(310)의 중심(313)으로부터 비클의 위치(350)까지의 변위를 확인하고, 제1 점유 격자 지도(310)의 중심(313)으로부터 변위만큼 이격된 제1 위치(322)를 제2 점유 격자 지도(320)의 중심으로 확인할 수 있다.
일 실시예에서, 프로세서(110)는 제2 점유 격자 지도(320)에 포함되는 격자의 점유 상태를 초기화할 수 있다. 구체적으로, 프로세서(110)는 제1 점유 격자 지도(310)의 중심(313)을 기준으로 하는 비클의 변위를 기초로 제2 격자 지도(320) 및 제1 격자 지도(310)가 서로 겹치는 영역(330)을 확인하고, 제1 격자 지도(310)에 포함되는 격자의 점유 상태를 기초로 제2 격자 지도(320)에 포함되는 격자의 점유 상태를 초기화할 수 있다. 예를 들어, 프로세서(110)는 제2 격자 지도(320)에 포함되는 격자 중 제2 격자 지도(320) 및 제1 격자 지도(310)가 서로 겹치는 영역(330)에 포함되는 격자의 점유 상태를 제1 격자 지도(310)의 겹치는 영역(330)에 포함되는 격자의 점유 상태와 같다고 확인할 수 있다. 즉, 프로세서(110)는 제2 점유 격자 지도(320)에 포함되는 격자 중 제1 점유 격자 지도(310)에 포함되는 격자와 대응하는 격자를 확인하고, 대응하는 격자의 점유 상태를 제1 점유 격자 지도(310)에 포함되는 격자의 점유 상태로 확인할 수 있다. 프로세서(110)는 제2 점유 격자 지도(320) 중 제1 점유 격자 지도(310)과 겹치는 영역(330)에 해당하는 격자의 점유 상태를 제1 점유 격자 지도(310)의 데이터로부터 확인할 수 있으므로, 제2 점유 격자 지도(320)의 초기화가 효율적으로 이루어질 수 있는 이점이 있다.
일 실시예에서, 프로세서(110)는 제2 점유 격자 지도(320)의 겹치는 영역(330)을 제외한 나머지 영역(327)(예를 들어, 제2 점유 격자 지도(320)에서 겹치는 영역(330) 밖의 영역 중 제1 점유 격자 지도(310)의 경계(311) 및 제2 점유 격자 지도(320)의 경계(321)로 둘러싸인 영역)에 포함되는 격자의 점유 상태를 미지(unknown) 상태로 초기화할 수 있다. 즉, 프로세서(110)는 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 채워짐 상태, 비어 있음 상태 및 미지 상태 중 어느 하나로 확인할 수 있다.
일 실시예에서, 프로세서(110)는 제2 점유 격자 지도에 포함되는 격자 중 제1 격자의 점유 상태의 갱신 결과를 기초로 제2 격자의 팽창된 점유 상태를 채워짐 상태, 비어 있음 상태 및 미지 상태 중 어느 하나로 확인할 수 있다. 도 4는 제2 점유 격자 지도에 포함되는 격자의 점유 상태의 갱신 결과를 나타낸다. 여기서 격자의 점유 상태의 갱신은 도 2에 나타난 점유 상태의 갱신(250)을 의미할 수 있다.
도 4의 표에서 첫 번째 열은 점유 상태가 갱신되는 경우 각각에 대해 붙인 번호를 의미할 수 있다. 예를 들어, 점유 상태의 갱신 결과 격자의 점유 상태는 변경되지 않을 수 있다. 즉, 격자의 갱신 전 점유 상태와 갱신 후 점유 상태는 비어 있음 상태로 동일(420)하거나, 채워짐 상태로 동일(450)할 수 있다. 또 다른 예를 들어, 점유 상태는 미지 상태로부터 비어 있음 상태로 변경(400)되거나, 점유 상태는 미지 상태로부터 채워짐 상태로 변경(410)되거나, 점유 상태는 비어 있음 상태로부터 채워짐 상태로 변경(430)되거나, 점유 상태는 채워짐 상태로부터 비어 있음 상태로 변경(440)될 수 있다.
일 실시예에서, 프로세서(110)는 제2 점유 격자 지도에 포함되는 격자 중 제1 격자의 점유 상태의 갱신 결과를 기초로 제2 격자에 대응하는 파라미터(parameter)를 갱신하고, 갱신된 파라미터를 기초로 제2 격자의 팽창된 점유 상태를 확인할 수 있다. 제2 격자는 제1 격자의 주변에 있는 격자를 의미할 수 있다. 예를 들어, 제2 격자는 제1 격자에 대응하는 팽창 범위에 포함되는 격자를 의미할 수 있다.
도 5는 본 개시에 따른 방법에 대한 파라미터의 갱신 규칙의 일 실시예를 나타낸다. 도 5의 표에서 xnew 및 xcur은 각각 갱신 후 및 갱신 전의 파라미터를 의미할 수 있다. 도 5의 첫 번째 열은 도 4의 첫 번째 열에 대응될 수 있다. 예를 들어, 제2 점유 격자 지도에 포함되는 격자 중 제1 격자의 점유 상태가 도 4의 갱신 번호 0에 대응하도록 갱신(400)된 경우, 도 5의 갱신 번호 0에 대응하는 파라미터 갱신 규칙(500)이 제2 격자에 적용될 수 있다. 일 실시예에서, 프로세서(110)는 갱신 결과 제1 격자의 점유 상태가 채워짐 상태로 변경된 경우(410, 430) 제2 격자에 대응하는 파라미터를 증가시키고(510, 530), 갱신 결과 제1 격자의 점유 상태가 채워짐 상태에서 비어 있음 상태로 변경된 경우(440) 파라미터를 감소시킬(540) 수 있다. 도 5에 나타난 파라미터의 증가 및 감소량은 1이지만, 파라미터의 증가 및 감소량은 이와 다른 수치로 설정될 수 있다.
도 6은 본 개시에 따른 방법에 대한 팽창된 점유 상태의 일 실시예를 나타낸다. 도 6에 도시된 파라미터는 도 5에 도시된 파라미터에 대응하는 것일 수 있다. 일 실시예에서, 파라미터는 음수, 0 또는 양수일 수 있다. 프로세서(110)는 파라미터가 음수인 경우, 제2 격자의 팽창된 점유 상태를 미확인 상태로 결정할 수 있다. 예를 들어, 프로세서(110)는 파라미터가 -1인 경우, 제2 격자의 팽창된 점유 상태를 미확인 상태로 결정(610)할 수 있다. 또한 일 실시예에서, 프로세서(110)는 파라미터가 기 설정된 제2 값 이하인 경우 제2 격자의 팽창된 점유 상태를 비어 있음 상태로 결정할 수 있다. 예를 들어, 프로세서(110)는 파라미터가 0인 경우, 제2 격자의 팽창된 점유 상태를 비어 있음 상태로 결정(620)할 수 있다. 또한 일 실시예에서, 프로세서(110)는 파라미터가 기 설정된 제1 값 이상인 경우, 제2 격자의 팽창된 점유 상태를 채워짐 상태로 결정할 수 있다. 예를 들어, 프로세서(110)는 파라미터가 1 이상인 경우, 제2 격자의 팽창된 점유 상태를 채워짐 상태로 결정(630)할 수 있다. 이는 하나의 파라미터를 기초로 세 가지의 팽창된 점유 상태를 확인할 수 있는 이점이 있다.
일 실시예에서, 파라미터는 미확인 상태를 의미하는 -1로 초기화될 수 있고, 파라미터가 적어도 한 번 갱신된 이후에는 0 이상의 값을 갖도록 파라미터의 값이 결정될 수 있다. 즉, 도 5의 표에 나타난 max 함수 등과 같이 파라미터 값과 0 중 큰 값을 기초로 파라미터가 갱신될 수 있다. 이는 한 번이라도 갱신된 파라미터가 파라미터 갱신 규칙에 의해 다시 갱신됨에 따라 제2 격자의 팽창된 점유 상태가 미확인 상태로 되돌아가는 것을 방지하는 이점이 있다.
일 실시예에서, 제1 점유 격자 지도에 포함되는 각 격자의 점유 상태, 제2 점유 격자 지도에 포함되는 각 격자의 점유 상태 또는 각 격자의 팽창된 점유 상태 중 적어도 하나는 배열(array) 형태의 데이터 구조로 데이터베이스에 저장될 수 있다. 데이터베이스는 메모리(120) 또는 전자 장치(100) 외부의 데이터베이스를 포함할 수 있다. 격자 지도의 점유 상태에 관한 데이터를 해시 테이블(hash table) 대신 배열 형태로 저장함으로써, 격자 지도의 점유 상태에 대한 접근 속도가 높아질 수 있는 이점이 있다.
도 7은 본 개시에 따른 방법의 수행 결과를 시각화한 3차원 복셀 지도(700)를 나타낸다. 본 개시에 따른 방법을 사용하여 프로세서(110)는 3차원 복셀 지도(700)에 포함된 복셀 중 점유 상태인 제1 복셀(700)을 확인할 수 있고, 제1 복셀(700)의 점유 상태를 기초로 제2 복셀(720)의 팽창된 점유 상태를 확인할 수 있다. 프로세서(110)는 복셀 지도(700)를 기초로 업계에 알려진 방법을 이용하여 비클의 경로를 계획하고, 비클의 움직임을 제어할 수 있다.
도 8은 일 실시예에 따른 전자 장치(100)의 동작 방법을 나타낸다. 도 8 의 동작 방법의 각 단계에 대해 도 1 내지 도 7 에서 설명한 전자 장치(100) 또는 프로세서(110)의 동작과 중복되는 내용에 대해서는 설명을 생략한다.
단계 S810에서, 전자 장치(100)는, 제1 점유 격자 지도(occupancy grid map)에서 비클의 위치 정보를 기초로, 제1 위치를 원점으로 하는 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 확인할 수 있다.
또한, 전자 장치(100)는, 제1 점유 격자 지도의 중심을 기준으로 하는 비클의 변위(displacement)를 기초로 제1 위치를 확인할 수 있다.
또한, 전자 장치(100)는, 제2 점유 격자 지도에 포함되는 격자 중 제1 점유 격자 지도에 포함되는 격자와 대응하는 격자를 확인하고, 대응하는 격자의 점유 상태를 제1 점유 격자 지도에 포함되는 격자의 점유 상태로 확인할 수 있다.
또한, 전자 장치(100)는, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 채워짐(occupied) 상태, 비어 있음(free) 상태 및 미지(unknown) 상태 중 어느 하나로 확인할 수 있다.
단계 S820에서, 전자 장치(100)는, 센서로부터 획득된 정보를 기초로 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신할 수 있다.
또한, 전자 장치(100)는, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 채워짐 상태 및 비어 있음 상태 중 어느 하나로 갱신할 수 있다.
또한, 전자 장치(100)는, ToF(Time of Flight) 센서로부터 획득된 깊이 정보 및 관성 센서로부터 획득된 포즈(pose) 정보를 기초로 광선 투사(ray casting)를 수행할 수 있다.
단계 S830에서, 전자 장치(100)는, 비클의 외형 정보를 기초로 제2 점유 격자 지도에 포함되는 격자 중 제1 격자에 대응하는 팽창 범위를 확인할 수 있다.
또한, 전자 장치(100)는, 비클에 관한 길이를 기초로 제1 격자를 중심으로 하는 팽창 범위를 확인할 수 있다.
단계 S840에서, 전자 장치(100)는, 제1 격자의 점유 상태를 기초로 팽창 범위에 포함되는 제2 격자의 팽창된(inflated) 점유 상태를 확인할 수 있다.
또한, 전자 장치(100)는, 제1 격자의 점유 상태의 갱신 결과를 기초로 제2 격자의 팽창된 점유 상태를 채워짐 상태, 비어 있음 상태 및 미지 상태 중 어느 하나로 확인할 수 있다.
또한, 전자 장치(100)는, 갱신 결과 제1 격자의 점유 상태가 채워짐 상태로 변경된 경우 제2 격자에 대응하는 파라미터를 증가시키고, 갱신 결과 제1 격자의 점유 상태가 채워짐 상태에서 비어 있음 상태로 변경된 경우 파라미터를 감소시키고, 파라미터가 기 설정된 제1 값 이상인 경우 제2 격자의 팽창된 점유 상태를 채워짐 상태로 결정하고, 파라미터가 기 설정된 제2 값 이하인 경우 제2 격자의 팽창된 점유 상태를 비어 있음 상태로 결정할 수 있다.
또한, 제1 점유 격자 지도에 포함되는 각 격자의 점유 상태, 제2 점유 격자 지도에 포함되는 각 격자의 점유 상태 또는 각 격자의 팽창된 점유 상태 중 적어도 하나는 배열(array) 형태의 데이터 구조로 데이터베이스에 저장될 수 있다.
이상 설명된 본 개시에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치 또는 전자 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어, 소프트웨어, 또는 이들의 조합들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 데이터 처리 또는 이들의 조합 등을 위하여 종래 기술을 채용할 수 있다.

Claims (10)

  1. 전자 장치의 지도 생성 방법에 있어서,
    제1 점유 격자 지도(occupancy grid map)에서 비클의 위치 정보를 기초로, 제1 위치를 원점으로 하는 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 확인하는 단계;
    센서로부터 획득된 정보를 기초로 상기 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신하는 단계;
    상기 비클의 외형 정보를 기초로 상기 제2 점유 격자 지도에 포함되는 격자 중 제1 격자에 대응하는 팽창 범위를 확인하는 단계; 및
    상기 제1 격자의 점유 상태를 기초로 상기 팽창 범위에 포함되는 제2 격자의 팽창된(inflated) 점유 상태를 확인하는 단계를 포함하는,
    전자 장치의 지도 생성 방법.
  2. 제1항에 있어서,
    상기 격자의 점유 상태를 확인하는 단계는,
    상기 제1 점유 격자 지도의 중심을 기준으로 하는 상기 비클의 변위(displacement)를 기초로 상기 제1 위치를 확인하는 단계를 포함하는,
    전자 장치의 지도 생성 방법.
  3. 제1항에 있어서,
    상기 격자의 점유 상태를 확인하는 단계는,
    상기 제2 점유 격자 지도에 포함되는 격자 중 상기 제1 점유 격자 지도에 포함되는 격자와 대응하는 격자를 확인하는 단계; 및
    상기 대응하는 격자의 점유 상태를 상기 제1 점유 격자 지도에 포함되는 격자의 점유 상태로 확인하는 단계를 포함하는,
    전자 장치의 지도 생성 방법.
  4. 제1항에 있어서,
    상기 격자의 점유 상태를 확인하는 단계는,
    상기 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 채워짐(occupied) 상태, 비어 있음(free) 상태 및 미지(unknown) 상태 중 어느 하나로 확인하는 단계를 포함하고,
    상기 격자의 점유 상태를 갱신하는 단계는,
    상기 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 채워짐 상태 및 비어 있음 상태 중 어느 하나로 갱신하는 단계를 포함하고,
    상기 팽창된 점유 상태를 확인하는 단계는,
    상기 제1 격자의 점유 상태의 갱신 결과를 기초로 상기 제2 격자의 팽창된 점유 상태를 채워짐 상태, 비어 있음 상태 및 미지 상태 중 어느 하나로 확인하는 단계를 포함하는,
    전자 장치의 지도 생성 방법.
  5. 제4항에 있어서,
    상기 팽창된 점유 상태를 확인하는 단계는,
    상기 갱신 결과 상기 제1 격자의 점유 상태가 채워짐 상태로 변경된 경우 상기 제2 격자에 대응하는 파라미터를 증가시키고, 상기 갱신 결과 상기 제1 격자의 점유 상태가 채워짐 상태에서 비어 있음 상태로 변경된 경우 상기 파라미터를 감소시키는 단계; 및
    상기 파라미터가 기 설정된 제1 값 이상인 경우 상기 제2 격자의 팽창된 점유 상태를 채워짐 상태로 결정하고, 상기 파라미터가 기 설정된 제2 값 이하인 경우 상기 제2 격자의 팽창된 점유 상태를 비어 있음 상태로 결정하는,
    전자 장치의 지도 생성 방법.
  6. 제1항에 있어서,
    상기 제1 점유 격자 지도에 포함되는 각 격자의 점유 상태, 상기 제2 점유 격자 지도에 포함되는 각 격자의 점유 상태 또는 각 격자의 팽창된 점유 상태 중 적어도 하나는 배열(array) 형태의 데이터 구조로 데이터베이스에 저장되는,
    전자 장치의 지도 생성 방법.
  7. 제1항에 있어서,
    상기 팽창 범위를 확인하는 단계는,
    상기 비클에 관한 길이를 기초로 상기 제1 격자를 중심으로 하는 팽창 범위를 확인하는 단계를 포함하는,
    전자 장치의 지도 생성 방법.
  8. 제1항에 있어서,
    상기 격자의 점유 상태를 갱신하는 단계는,
    ToF(Time of Flight) 센서로부터 획득된 깊이 정보 및 관성 센서로부터 획득된 포즈(pose) 정보를 기초로 광선 투사(ray casting)를 수행하는 단계를 포함하는,
    전자 장치의 지도 생성 방법.
  9. 전자 장치로서,
    적어도 하나의 프로그램이 저장된 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써,
    비클의 위치 정보를 기초로, 제1 점유 격자 지도(occupancy grid map)의 제1 위치를 원점으로 하는 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 확인하고,
    센서로부터 획득된 정보를 기초로 상기 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신하고,
    상기 비클의 외형 정보를 기초로 상기 제2 점유 격자 지도에 포함되는 격자 중 제1 격자에 대응하는 팽창 범위를 확인하고,
    상기 제1 격자의 점유 상태를 기초로 상기 팽창 범위에 포함되는 제2 격자의 팽창된(inflated) 점유 상태를 확인하는 프로세서를 포함하는, 전자 장치.
  10. 전자 장치의 지도 생성 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체로서,
    상기 지도 생성 방법은,
    비클의 위치 정보를 기초로, 제1 점유 격자 지도(occupancy grid map)의 제1 위치를 원점으로 하는 제2 점유 격자 지도를 확인하고, 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 확인하는 단계;
    센서로부터 획득된 정보를 기초로 상기 제2 점유 격자 지도에 포함되는 격자의 점유 상태를 갱신하는 단계;
    상기 비클의 외형 정보를 기초로 상기 제2 점유 격자 지도에 포함되는 격자 중 제1 격자에 대응하는 팽창 범위를 확인하는 단계; 및
    상기 제1 격자의 점유 상태를 기초로 상기 팽창 범위에 포함되는 제2 격자의 팽창된(inflated) 점유 상태를 확인하는 단계를 포함하는, 비일시적 기록 매체.
KR1020230014425A 2023-02-02 2023-02-02 전자 장치의 지도 생성 방법 KR102524995B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230014425A KR102524995B1 (ko) 2023-02-02 2023-02-02 전자 장치의 지도 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230014425A KR102524995B1 (ko) 2023-02-02 2023-02-02 전자 장치의 지도 생성 방법

Publications (1)

Publication Number Publication Date
KR102524995B1 true KR102524995B1 (ko) 2023-04-25

Family

ID=86101953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230014425A KR102524995B1 (ko) 2023-02-02 2023-02-02 전자 장치의 지도 생성 방법

Country Status (1)

Country Link
KR (1) KR102524995B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791386B1 (ko) * 2006-08-18 2008-01-07 삼성전자주식회사 이동 로봇의 영역 분리 방법 및 장치
KR20120037270A (ko) * 2010-10-11 2012-04-19 삼성전자주식회사 복셀 맵 생성기 및 그 방법
KR101925862B1 (ko) * 2018-09-13 2018-12-06 주식회사 에이엠오토노미 3차원 라이다를 이용한 실시간 3차원 지도 생성 방법 및 장치
KR20190070514A (ko) * 2017-12-13 2019-06-21 연세대학교 산학협력단 격자지도 생성 장치 및 방법
KR20210051513A (ko) * 2019-10-30 2021-05-10 에스케이텔레콤 주식회사 지도 생성 방법 및 장치
KR20220083666A (ko) * 2019-08-06 2022-06-20 보스턴 다이나믹스, 인크. 제약된 이동성 매핑

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791386B1 (ko) * 2006-08-18 2008-01-07 삼성전자주식회사 이동 로봇의 영역 분리 방법 및 장치
KR20120037270A (ko) * 2010-10-11 2012-04-19 삼성전자주식회사 복셀 맵 생성기 및 그 방법
KR20190070514A (ko) * 2017-12-13 2019-06-21 연세대학교 산학협력단 격자지도 생성 장치 및 방법
KR101925862B1 (ko) * 2018-09-13 2018-12-06 주식회사 에이엠오토노미 3차원 라이다를 이용한 실시간 3차원 지도 생성 방법 및 장치
KR20220083666A (ko) * 2019-08-06 2022-06-20 보스턴 다이나믹스, 인크. 제약된 이동성 매핑
KR20210051513A (ko) * 2019-10-30 2021-05-10 에스케이텔레콤 주식회사 지도 생성 방법 및 장치

Similar Documents

Publication Publication Date Title
US11222549B2 (en) Collision detection and avoidance
CN111380526B (zh) 一种路径确定的系统和方法
EP3903164B1 (en) Collision avoidance system, depth imaging system, vehicle, map generator, amd methods thereof
EP3754467A1 (en) Merged reality system and method
US10347139B2 (en) Autonomous nap-of-the-earth (ANOE) flight path planning for manned and unmanned rotorcraft
CN108225358B (zh) 交通工具导航
CN111275816B (zh) 获取点云数据的方法及相关设备
US20130124089A1 (en) Spatiotemporal survivability data compression using objective oriented constraints
WO2017168423A1 (en) System and method for autonomous guidance of vehicles
EP3903298A1 (en) Collision avoidance system, depth imaging system, vehicle, obstacle map generator, and methods thereof
US10578453B2 (en) Render-based trajectory planning
US10948300B2 (en) Systems and methods for path determination
CN103236079A (zh) 一种基于三维模型体素化的内部球改进构造方法
EP3809231B1 (en) Controlling movement of a device
US20200349727A1 (en) Obstacle detection method, mobile platform, and computer readable storage medium
Kuiper et al. Agent vision in multi-agent based simulation systems
CN117295647A (zh) 具有统一的多传感器视图的传感器模拟
US20190317529A1 (en) Virtual force system for a drone
KR102524995B1 (ko) 전자 장치의 지도 생성 방법
WO2022067759A1 (zh) 飞行控制方法、飞行器、控制终端及可读存储介质
Scholer et al. Configuration space and visibility graph generation from geometric workspaces for uavs
JP7351609B2 (ja) 経路探索装置及びプログラム
CN112105956A (zh) 用于自动驾驶的系统和方法
Adler et al. Towards autonomous airborne mapping of urban environments
Dinaux et al. FAITH: Fast iterative half-plane focus of expansion estimation using optic flow

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant