KR20210065837A - 점유 격자 지도 생성 장치 및 방법 - Google Patents

점유 격자 지도 생성 장치 및 방법 Download PDF

Info

Publication number
KR20210065837A
KR20210065837A KR1020200135875A KR20200135875A KR20210065837A KR 20210065837 A KR20210065837 A KR 20210065837A KR 1020200135875 A KR1020200135875 A KR 1020200135875A KR 20200135875 A KR20200135875 A KR 20200135875A KR 20210065837 A KR20210065837 A KR 20210065837A
Authority
KR
South Korea
Prior art keywords
point cloud
grid map
voxel
obstacle
curr
Prior art date
Application number
KR1020200135875A
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 한국전자통신연구원
Publication of KR20210065837A publication Critical patent/KR20210065837A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06K9/6267
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64CAEROPLANES; HELICOPTERS
    • B64C39/00Aircraft not otherwise provided for
    • B64C39/02Aircraft not otherwise provided for characterised by special use
    • B64C39/024Aircraft not otherwise provided for characterised by special use of the remote controlled vehicle type, i.e. RPV
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64DEQUIPMENT FOR FITTING IN OR TO AIRCRAFT; FLIGHT SUITS; PARACHUTES; ARRANGEMENT OR MOUNTING OF POWER PLANTS OR PROPULSION TRANSMISSIONS IN AIRCRAFT
    • B64D45/00Aircraft indicators or protectors not otherwise provided for
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • G06K9/6201
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • B64C2201/141
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2201/00UAVs characterised by their flight controls
    • B64U2201/10UAVs characterised by their flight controls autonomous, i.e. by navigating independently from ground or air stations, e.g. by using inertial navigation systems [INS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Remote Sensing (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

점유 격자 지도 장치는 센서로부터 주변 환경에 대한 포인트 클라우드를 획득하고, 직전 포인트 클라우드와 현재 포인트 클라우드의 비교를 통해 포인트 클라우드의 상태 변화를 감지하며, 상기 포인트 클라우드의 상태 변화가 발생된 공간의 점유 여부를 판단한다. 그리고 상기 공간의 점유 여부를 점유 격자 지도에 반영한다.

Description

점유 격자 지도 생성 장치 및 방법{APPARATUS AND METHOD FOR GENERATING OCCUPANCY GRID MAP}
본 발명은 점유 격자 지도 생성 장치 및 방법에 관한 것으로, 특히 센서의 포인트 클라우드를 처리하여 장애물의 위치 변화를 점유 격자 지도에 신속하게 반영할 수 있는 점유 격자 지도 생성 장치 및 방법에 관한 것이다.
최근 널리 보급된 무인이동체는 이동 능력으로 인해 인간을 대신해 광범위한 임무를 수행할 수 있다. 이러한 무인이동체의 자율 임무는 자율 운행을 기초로 한다. 안전한 자율 운행을 위해서는 외부 센서를 이용한 장애물 탐지 기능이 매우 중요하다.
최근 로보틱스(robotics) 분야에서 실내/외 운행을 위해 빠르고 정확한 주변 환경의 점유 지도를 만드는 연구가 활발히 이루어지고 있다. 보통 센서 값은 노이즈를 가지기 때문에, 노이즈를 줄이고자 지도를 생성할 때 여러 번의 센서 값을 누적한다. 하지만 이러한 방식은 정적인 환경에 최적화된 방식으로, 동적 장애물이 지도에 반영되는데 걸리는 시간을 지연시키는 경향이 있다.
본 발명이 해결하려는 과제는 장애물의 움직임을 신속하게 지도에 반영할 수 있는 점유 격자 지도 생성 장치 및 방법을 제공하는 것이다.
본 발명의 한 실시 예에 따르면, 점유 격자 지도 생성 장치의 적어도 하나의 프로세서에 의해 실행되어 점유 격자 지도를 생성하는 방법이 제공된다. 점유 격자 지도 생성 방법은 적어도 하나의 센서로부터 주변 환경에 대한 포인트 클라우드를 획득하는 단계, 직전 포인트 클라우드와 현재 포인트 클라우드의 비교를 통해 포인트 클라우드의 상태 변화를 감지하는 단계, 상기 포인트 클라우드의 상태 변화가 발생된 공간에 대해 장애물에 의한 점유 상태를 판단하는 단계, 그리고 상기 공간의 점유 상태를 토대로 점유 격자 지도를 생성하는 단계를 포함한다.
본 발명의 실시 예에 의하면, 동적 장애물에 대해 점유 격자 지도를 효과적으로 생성할 수 있다.
또한 본 발명의 실시 예에 따르면, 장애물의 실시간 움직임에 신속하게 대응할 수 있으므로, 무인비행체의 자율 비행 시 안전한 비행을 위한 환경 인지 기술에서 유용하게 사용될 수 있으며, 무인비행체뿐 아니라 무인이동체 등 넓은 범위에 활용될 수 있고, 파급 효과도 클 것으로 예상된다.
도 1은 본 발명의 실시 예에 따른 점유 격자 지도 생성 장치를 나타낸 도면이다.
도 2는 기존 방법에 따라 생성된 점유 격자 지도의 일 예를 나타낸 도면이다.
도 3은 도 1에 도시된 환경 인지부를 구체적으로 나타낸 도면이다.
도 4는 본 발명의 실시 예에 따른 팔진 트리를 이용한 포인트 클라우드 변화를 설명하는 도면이다.
도 5는 본 발명의 실시 예에 따른 복셀의 상태 분류의 일 예를 나타낸 도면이다.
도 6은 본 발명의 실시 예에 따른 복셀의 상태 분류를 위한 광선 투사 기법을 설명하는 도면이다.
도 7은 본 발명의 실시 예에 따른 장애물 사라짐 영역에 대한 상태 분류 과정을 설명하는 도면이다.
도 8은 본 발명의 실시 예에 따른 장애물 등장 영역에 대한 상태 분류 과정을 설명하는 도면이다.
도 9는 본 발명의 실시 예에 따른 복셀의 상태 분류에 따라 점유 격자 지도를 업데이트하는 방법을 설명하는 도면이다.
도 10은 본 발명의 실시 예에 따른 장애물 탐지 방법에 해당하는 알고리즘을 나타낸 도면이다.
도 11은 본 발명의 실시 예에 따른 장애물 사라짐 영역 처리를 위한 알고리즘을 나타낸 도면이다.
도 12는 본 발명의 실시 예에 따른 장애물 등장 영역 처리를 위한 알고리즘을 나타낸 도면이다.
도 13은 본 발명의 실시 예에 따라 생성된 점유 격자 지도의 일 예를 나타낸 도면이다.
도 14는 본 발명의 다른 실시 예에 따른 점유 격자 지도 생성 장치를 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 점유 격자 지도 생성 장치 및 방법에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 점유 격자 지도 생성 장치를 나타낸 도면이다.
도 1을 참고하면, 점유 격자 지도 생성 장치(100)는 환경 인지부(110) 및 지도 생성부(120)를 포함한다.
환경 인지부(110)는 센서(200)로부터 포인트 클라우드를 획득하고, 무인 이동체의 IMU(Inertial Measuring Unit) 센서(300)로부터 해당 무인 이동체의 자세값(pose)을 입력 받는다. 환경 인지부(110)는 입력 받은 자세값을 토대로 획득한 포인트 클라우드의 좌표를 점유 격자 지도 기준의 좌표로 변환한다. 환경 인지부(110)는 직전 포인트 클라우드와 현재 포인트 클라우드의 비교를 통해 포인트 클라우드의 상태 변화를 감지하여 장애물이나 구조물(이하, "장애물"이라 함)을 탐지한다. 포인트 클라우드는 센서로부터 얻은 데이터를 표현하는 방식으로 3차원 공간 상에서 좌표(x, y, z)를 갖는 포인트들의 집합을 나타낸다. 점유 격자 지도는 주변 환경에 해당하는 3차원 공간을 일정한 크기의 격자 단위에 해당하는 복셀(voxel) 단위로 나누고, 각 복셀 영역에 물체 즉, 장애물이 있는지 표시한 지도로서, 지도의 원점은 무인이동체의 시작 위치가 된다. 이때 각 복셀에 대해 내부에 있는 포인트들은 복셀의 중심에 대해 다운샘플링되고, 다운샘플링을 거친 후 포인트 클라우드는 다운샘플링된 복셀의 포인트들로 이루어진다. 포인트 클라우드의 취득을 위한 센서로는 상황에 따라 2차원 라이다 센서(2D LiDAR), 3차원 라이다 센서(3D LiDAR), 스테레오 카메라(stereo), RGB-D(Red, Green, Blue, Depth) 카메라, 초음파 센서 등 다양한 센서가 선택적으로 사용될 수 있으며, 이들의 조합으로도 사용될 수 있다.
지도 생성부(120)는 환경 인지부(110)로부터 장애물 탐지 결과를 수신하고, 장애물 탐지 결과를 토대로 주변 환경의 각 복셀을 장애물로 점유되어 있는 점유 공간(occupied space) 또는 장애물로 점유되어 있지 않은 비점유 공간(free space)으로 구분하여 표현함으로써, 포인트 클라우드 형태의 주변 환경에 대한 점유 격자 지도를 생성하고, 생성된 점유 격자 지도를 업데이트한다.
기존의 점유 격자 지도를 생성하는 방법은 정적인 환경을 가정한 방식으로, 점유 격자 지도를 생성할 때 센서값의 노이즈를 줄이고자 여러 번의 센서값을 누적함으로써, 동적 장애물이 지도에 반영되는데 걸리는 시간을 지연시킨다.
도 2는 기존 방법에 따라 생성된 점유 격자 지도의 일 예를 나타낸 도면이다.
도 2에 도시한 바와 같이, 무인이동체 앞 직사면체(10)의 벽을 평균 속도 1m/s로 10m씩 좌우 방향으로 움직이는 단순한 동적 장애물 실험에서 옥토맵(Octomap)과 같은 기존 점유 격자 지도를 생성하는 방법에서는 동적 장애물이 지도에 반영되는데 걸리는 시간이 지연되면서, 장애물이 움직이는 궤적 상의 공간(20)을 모두 점유 공간으로 처리하게 되어, 점유 격자 지도(30)의 정확도를 저하시킨다.
본 발명의 실시 예에서는 장애물의 움직임을 보다 정확하고 신속하게 점유 격자 지도에 반영할 수 있는 방법을 제공한다.
도 3은 도 1에 도시된 환경 인지부를 구체적으로 나타낸 도면이다.
도 3을 참고하면, 환경 인지부(110)는 좌표 변환부(112), 데이터 전처리부(114) 및 장애물 탐지부(116)를 포함한다.
좌표 변환부(112)는 무인 이동체의 IMU 센서로부터 해당 무인 이동체의 자세값을 입력 받아, 이동체 기준의 좌표계를 점유 격자 지도 기준의 좌표계로 변환한다. 즉, 좌표 변환부(112)를 통해 입력되는 포인트 클라우드의 좌표는 점유 격자 지도 기준의 좌표로 변환된다.
데이터 전처리부(114)는 점유 격자 지도의 관심 영역에 맞춰 포인트 클라우드를 필터링하고 천장과 바닥과 같은 비장애물에 대한 포인트 클라우드를 제거한다. 이러한 전처리 과정은 센서의 측정 오류를 최소화시켜 준다.
장애물 탐지부(116)는 직전 포인트 클라우드와 현재 포인트 클라우드를 비교해 포인트 클라우드의 상태 변화를 감지한다. 장애물 탐지부(116)는 직전 포인트 클라우드와 현재 포인트 클라우드의 비교를 위해 팔진 트리(octree)를 이용할 수 있다. 이는 포인트 클라우드의 처리 속도를 높여준다.
장애물 탐지부(116)는 광선 투사(ray casting) 기법을 이용하여 상태 변화가 발생된 공간 내 각 복셀의 점유 여부를 판단한다. 장애물 탐지부(116)는 직전 포인트 클라우드와 현재 포인트 클라우드로부터 각각 재구성된 광선(ray)과 복셀간 교차 여부를 검사하여 해당 복셀에 대한 점유 공간과 비점유 공간의 정도를 비교하고, 우세한 방향으로 현재 복셀의 점유 여부를 판단한다. 즉, 복셀을 지나는 여러 개의 광선 중 일부는 해당 복셀을 가로질러 지나가고 일부는 해당 복셀 내 장애물에 의해 해당 복셀을 지나가지 못하고 차단될 것이다. 이때 광선이 해당 복셀을 지나가면 해당 복셀은 비점유 공간으로 판단될 것이고, 광선이 해당 복셀을 지나가지 못하면 해당 복셀은 점유 공간으로 판단될 것이다. 이러한 점을 토대로 장애물 탐지부(116)는 광선(ray)과 복셀간 교차 정도를 통해 복셀 내 교차된 광선이 우세한 경우 해당 복셀을 비점유 공간으로 판단한다.
이렇게 하면, 정적인 환경뿐만 아니라 장애물이 움직이는 것과 같이 갑작스러운 환경 변화에도 신속하게 그 변화를 탐지할 수 있다.
지도 생성부(120)는 현재 복셀의 점유 상태에 따라 점유 격자 지도를 업데이트한다.
도 4는 본 발명의 실시 예에 따른 팔진 트리를 이용한 포인트 클라우드 변화를 설명하는 도면이다.
도 4를 참고하면, 장애물 탐지부(116)는 입력 포인트 클라우드에 대해 팔진 트리 구조[Octree(Zcurr)]를 생성한다. 장애물 탐지부(116)는 직전 포인트 클라우드(Zprev)와 현재 포인트 클라우드(Zcurr)의 팔진 트리 구조[Octree(Zprev), Octree(Zcurr)]를 각각의 버퍼에 저장한다. 즉, 장애물 탐지부(116)는 직전 포인트 클라우드(Zprev)의 팔진 트리 구조[Octree(Zprev)]를 저장하는 버퍼와 현재 포인트 클라우드(Zcurr)의 팔진 트리 구조[Octree(Zcurr)]를 저장하는 버퍼를 가지고 있을 수 있다.
이와 같이, 2개의 버퍼를 이용하면, 2개의 팔진 트리 구조의 포인트 클라우드(Zprev, Zcurr)를 비교할 수 있고, 이로부터 포인트 클라우드 변화를 쉽게 감지할 수 있다.
예를 들면, 장애물 탐지부(116)는 2개의 포인트 클라우드(Zprev, Zcurr)의 비교를 통해 직전 포인트 클라우드(Zprev) 중에서 현재 포인트 클라우드(Zcurr)에서 측정되지 않은 포인트 클라우드(Zold) 및 현재 포인트 클라우드(Zcurr) 중에서 직전 포인트 클라우드(Zprev)에서 측정되지 않은 포인트 클라우드 (Znew)를 검출할 수 있다.
장애물 탐지부(116)는 변화된 포인트 클라우드(Zold, Znew)로부터 복셀의 상태를 분류하고, 복셀의 상태를 통해 장애물의 동적 변화를 탐지할 수 있다.
도 5는 본 발명의 실시 예에 따른 복셀의 상태 분류의 일 예를 나타낸 도면이다.
도 5를 참고하면, 복셀의 상태는 예를 들면, 5가지 상태 중 하나로 분류될 수 있다. 5가지 상태는 "장애물 등장 영역(Appeared)", "장애물 사라짐 영역(Disappeared)", "아는 영역이나 현재는 측정되지 않은 영역(Known location not measured)", "새롭게 측정된 영역(New location measured)", 그리고 "변함 없는 영역(Unchanged)"을 포함할 수 있다. 직전에는 점유 공간이나 현재 시점에서 투사된 광선으로부터 측정되지 않은 영역 중 비점유 공간은 "장애물 사라짐 영역(Disappeared)"으로 분류되고, 점유 공간은 "아는 영역이나 현재는 측정되지 않은 영역(Known location not measured)"으로 분류될 수 있다. 현재에는 점유 공간이나 직전 시점에서 투사된 광선으로부터 측정되지 않은 영역 중 비점유 공간은 "장애물 등장 영역(Appeared)"으로 분류되고, 점유 공간은 "새롭게 측정된 영역(New location measured)"으로 분류될 수 있다. 이러한 경우에 해당되지 않는 영역은 "변함 없는 영역(Unchanged)"으로 분류될 수 있다.
도 6은 본 발명의 실시 예에 따른 복셀의 상태 분류를 위한 광선 투사 기법을 설명하는 도면이다.
도 6을 참고하면, 라이다 센서의 포인트 클라우드는 라이다 센서가 원점에서 광선을 쏘아 장애물 표면에 부딪힌 점이다. 따라서 광선이 지나가면서 장애물 표면에 부딪히기 전까지의 복셀은 비점유 공간(free)으로 추정되고, 광선이 장애물 표면에 부딪힌 점이 포함된 복셀은 점유 공간(occupied)으로 추정된다. 이러한 광선 투사 기법을 사용해 광선과 복셀 내 장애물 표면의 교차 여부를 통해 해당 복셀의 점유 상태가 결정된다.
본 발명의 실시 예에서는 이러한 방법을 통해 복셀의 점유 변화를 추적하여 장애물의 동적 움직임을 점유 격자 지도에 실시간 반영할 수 있다.
도 7은 본 발명의 실시 예에 따른 장애물 사라짐 영역에 대한 상태 분류 과정을 설명하는 도면이다.
도 7을 참고하면, 장애물 탐지부(116)는 직전 및 현재 포인트 클라우드(Zprev, Zcurr)의 비교를 통해 직전 포인트 클라우드(Zprev) 중에서 현재 포인트 클라우드(Zcurr)에서 측정되지 않은 포인트 클라우드(Zold)를 검출한다.
장애물 탐지부(116)는 포인트 클라우드(Zold) 중에서 현재 포인트 클라우드(Zcurr) 측정을 위해 현재 센서 원점(ocurr)에서 투사한 광선이 어느 영역을 지나가면, 그 영역은 현재 비어있다고 판단하고, 현재 센서 원점(ocurr)에서 투사한 광선이 닿지 않는 영역이면 그 영역은 이전에 측정되어 아는 영역이지만 현재는 측정되지 않은 영역으로 판단한다. 즉 도 7에 도시된 바와 같이, 포인트 클라우드(Zold) 중에서 현재 센서 원점(ocurr)에서 투사한 광선이 지나간 복셀(71)은 현재 비어 있는 것으로 판단하고 해당 복셀(71)의 상태를 장애물 사라짐 영역(Disappeared)으로 분류하고, 현재 센서 원점(ocurr)에서 투사한 광선이 닿지 않는 복셀(72, 73)의 상태는 이전에 측정되어 아는 영역이지만 현재는 측정되지 않은 영역(known location not measured)으로 분류한다.
도 8은 본 발명의 실시 예에 따른 장애물 등장 영역에 대한 상태 분류 과정을 설명하는 도면이다.
도 8을 참고하면, 장애물 탐지부(116)는 직전 및 현재 포인트 클라우드(Zprev, Zcurr)의 비교를 통해 현재 포인트 클라우드(Zcurr) 중에서 직전 포인트 클라우드(Zprev)에서 측정되지 않은 포인트 클라우드(Znew)를 검출한다.
장애물 탐지부(116)는 검출된 포인트 클라우드(Znew) 중에서 직전 포인트 클라우드 측정을 위해 직전 센서 원점(oprev)에서 투사한 광선이 그 영역을 지나가면 이전에는 비어있었지만, 현재는 점유된 것을 의미하므로, 새로 등장한 영역으로 판단하고, 직전 센서 원점(oprev)에서 투사한 광선이 닿지 않는 영역이면 그 영역은 새롭게 측정된 것으로 판단한다. 즉 장애물 탐지부(116)는 포인트 클라우드(Znew) 중에서 현재 센서 원점(ocurr)에서 투사한 광선이 지나간 포인트(81)를 포함한 복셀의 상태는 장애물 등장 영역(Appeared)으로 분류하고, 현재 센서 원점(ocurr)에서 투사한 광선이 닿지 않는 포인트(82, 83)를 포함한 복셀의 상태는 새로 측정된 영역(New location measured)으로 분류한다.
도 9는 본 발명의 실시 예에 따른 복셀의 상태 분류에 따라 점유 격자 지도를 업데이트하는 방법을 설명하는 도면이다.
지도 생성부(120)는 변화가 발생한 복셀의 상태 분류에 따라 점유 격자 지도를 업데이트한다. 예를 들면, 도 9에 도시한 바와 같이 지도 생성부(120)는 도 7 및 도 8에 도시된 복셀의 상태 분류 결과를 토대로 장애물 사라짐 영역에 해당하는 복셀의 포인트(71)를 점유 격자 지도(M)에서 삭제하고, 장애물 등장 영역이나 새로 측정된 영역에 해당하는 복셀의 포인트(81, 82, 83)를 점유 격자 지도(M)에 추가하며, 아는 영역이나 현재는 측정되지 않은 영역이나 변함 없는 영역에 해당하는 복셀의 포인트(72, 73)를 점유 격자 지도(M)에서 유지한다.
도 10은 본 발명의 실시 예에 따른 장애물 탐지 방법에 해당하는 알고리즘을 나타낸 도면이다.
도 10을 참고하면, 장애물 탐지부(116)는 포인트 클라우드 Z, 광선 R 및 센서 원점 o가 입력되고, 점유 격자 지도 M을 출력한다.
장애물 탐지부(116)는 점유 격자 지도 M이 비어 있다면, 포인트 클라우드 Z를 Zcurr로, 광선 R을 Rcurr로, 센서 원점 o를 ocurr로 초기화한다. 지도 생성부(120)는 Zcurr를 토대로 점유 격자 지도 M을 생성한 후, 점유 격자 지도 M을 반환한다.
한편, 점유 격자 지도 M이 비어있지 않다면, 장애물 탐지부(116)는 현재 포인트 클라우드 Zcurr을 직전 포인트 클라우드 Zprev로, 현재 광선 Rcurr을 직전 광선 Rprev로, 그리고 현재 센서 원점 ocurr 를 직전 센서 원점 oprev로 설정하고, 현재 포인트 클라우드 Zcurr로 데이터 전처리부(114)에 의해 전처리된 포인트 클라우드 Z를 설정한다. 그리고 현재 포인트 클라우드 Zcurr 획득에 투사된 광선을 현재 광선 Rcurr로 설정한다.
장애물 탐지부(116)는 현재 포인트 클라우드 Zcurr와 직전 포인트 클라우드 Zprev를 비교하여, 직전 포인트 클라우드 Zprev 중에서 현재 포인트 클라우드 Zcurr에서 측정되지 않은 포인트를 검출하여 포인트 클라우드 Zold로 설정한 후, 포인트 클라우드 Zold에서 현재 광선 Rcurr을 이용해 사라진 포인트를 검출한다. 즉 현재 광선 Rcurr이 해당 복셀을 지나가면 그 복셀은 확실히 비어 있는 것으로 판단될 수 있지만, 현재 광선 Rcurr이 해당 복셀까지 도달하지 못하면 해당 복셀의 상태는 파악하기 어렵다. 예를 들어, 어느 광선을 기준으로 어느 복셀의 앞에 장애물이 있는 경우, 앞에 있는 장애물에 의해 해당 복셀까지 현재 광선 Rcurr이 도달하지 못하기 때문에 뒤에 위치한 복셀은 비어 있는지 점유되어 있는지 알 수 없다. 따라서, 현재 광선 Rcurr이 해당 복셀까지 도달하지 못하면 해당 포인트는 점유 격자 지도 M에서 지우지 않고 유지하며, 현재 광선 Rcurr을 이용해 확실히 사라진 포인트로 판단되면 지도 생성부(120)는 점유 격자 지도 M에서 사라진 포인트를 삭제하여 점유 격자 지도 M을 업데이트한다.
또한 장애물 탐지부(116)는 직전 포인트 클라우드 Zprev와 현재 포인트 클라우드 Zcurr를 비교하여, 현재 포인트 클라우드 Zcurr 중에서 직전 포인트 클라우드 Zprev에서 측정되지 않은 포인트를 검출하여 포인트 클라우드 Znew로 설정한 후, 포인트 클라우드 Znew에서 직전 광선 Rprev을 이용해 새로 등장한 포인트를 검출한다. 지도 생성부(120)는 점유 격자 지도 M에 새로 등장한 포인트를 추가하여 점유 격자 지도 M을 업데이트한다.
다음, 장애물 탐지부(116)는 현재 포인트 클라우드 Zcurr와 직전 포인트 클라우드 Zprev를 비교하여, 중복되는 포인트를 검출하고 중복되는 포인트를 변하지 않은 포인트 클라우드 Zunchanged로 설정한다.
지도 생성부(120)는 변하지 않은 포인트 클라우드 Zunchanged를 점유 격자 지도 M에 추가한다.
지도 생성부(120)는 업데이트된 점유 격자 지도 M을 반환한다.
도 11은 본 발명의 실시 예에 따른 장애물 사라짐 영역 처리를 위한 알고리즘을 나타낸 도면으로, 직전 포인트 클라우드 Zprev 중에서 현재 포인트 클라우드 Zcurr에서 측정되지 않은 포인트 클라우드 Zold를 현재 광선 Rcurr로 검증하고 점유 격자 지도 M에서 삭제하는 절차를 나타낸다.
도 11을 참고하면, 장애물 탐지부(116)는 해당 포인트가 비어있는지를 나타내기 위해 사용한 변수 free를 false 값으로 설정하고, 포인트 클라우드 Zold를 포함한 복셀을 정의한다. 도 11에는 포인트 클라우드 Zold를 포함한 복셀이 box로 정의되어 있다. 변수 free는 해당 포인트가 비어 있으면 true로 표시되고 해당 포인트가 점유되어 있으면 false로 표시되며, 변수 free의 초기값은 점유되어 있다고 가정하여 false로 설정된다.
장애물 탐지부(116)는 복셀을 통과하는 광선의 개수 m를 계산한다.
장애물 탐지부(116)는 광선의 개수 m과 기준 값 n을 비교하여, m이 n 이상이면 해당 복셀은 비어 있는 것으로 판단하고, 변수 free를 true로 표시한 후 해당 포인트의 일정 거리(radius) 내에 있는 포인트를 사라진 포인트(disappeared)로 저장한다. 여기서, n은 해당 포인트를 포함한 복셀 안에 있는 다른 이웃 포인트들의 수를 나타내며, n은 임의로 설정되거나 변경될 수 있다. 즉 복셀 내에 있는 이웃 포인트 수보다 지나가는 광선 수가 많으면 그 복셀은 비어 있고, 복셀 내 포인트 클라우드의 상태도 사라진 것으로 판단된다.
장애물 탐지부(116)는 m이 n 이하이면 해당 복셀에 대해 현재는 측정되지 않았지만 이전 측정에 의해 알고 있는 영역(known_locaion_not_measured)으로 저장한다.
지도 생성부(120)는 점유 격자 지도 M에서 사라진 포인트(disappeared)로 판단된 포인트 클라우드 z를 삭제한다.
지도 생성부(120)는 점유 격자 지도 M을 반환한다.
도 12는 본 발명의 실시 예에 따른 장애물 등장 영역 처리를 위한 알고리즘을 나타낸 도면으로, 현재 포인트 클라우드 Zcurr 중에서 직전 포인트 클라우드Zprev에서 측정되지 않은 포인트 클라우드 Znew를 직전 광선 Rprev로 검증하고 점유 격자 지도 M에 추가하는 절차를 나타낸다.
도 12를 참고하면, 장애물 탐지부(116)는 해당 포인트가 비어있는지를 나타내기 위해 사용한 변수 free를 false 값으로 설정하고, 포인트 클라우드 Znew를 포함한 복셀을 정의한다. 도 12에는 포인트 클라우드 Znew를 포함한 복셀을 box로 정의되어 있다. 앞에서 설명한 바와 같이, 변수 free는 해당 포인트가 비어 있으면 true로 표시되고 해당 포인트가 점유되어 있으면 false로 표시되며, 변수 free의 초기값은 점유되어 있다고 가정하여 false로 설정된다.
장애물 탐지부(116)는 해당 복셀을 하나의 광선 r이라도 지나가면 그 복셀을 비어 있는 것으로 판단하고, 변수 free를 true로 표시한 후 장애물 등장 영역(appeared)으로 해당 복셀의 포인트 클라우드 z를 추가한다.
한편, 장애물 탐지부(116)는 모든 광선 r이 해당 복셀을 지나지 않으면 새롭게 측정된 영역(new_location_measured)으로 해당 복셀의 포인트 클라우드 z를 추가한다.
지도 생성부(120)는 복셀의 포인트 클라우드 z를 점유 격자 지도 M에 추가한다. 지도 생성부(120)는 새롭게 측정된 영역(new_location_measured) 및 장애물 등장 영역(appeared)의 포인트 클라우드 z를 지도 M에 추가한다.
도 13은 본 발명의 실시 예에 따라 생성된 점유 격자 지도의 일 예를 나타낸 도면으로, 도 2에서와 동일한 시뮬레이션 환경에서 본 발명의 실시 예에 따른 장애물 탐지 및 점유 격자 지도 업데이트 방법을 적용한 결과를 도시하였다.
도 13을 보면, 점유 격자 지도(30)는 장애물(10)의 움직임을 실시간으로 반영하는 것을 알 수 있다.
도 14는 본 발명의 다른 실시 예에 따른 점유 격자 지도 생성 장치를 나타낸 도면으로, 도 1, 도 3 내지 도 13을 참고하여 설명한 장애물 탐지 및 점유 격자 지도 업데이트 기능 중 적어도 일부를 수행하는 데 사용할 수 있는 시스템을 나타낸다.
도 14를 참고하면, 점유 격자 지도 생성 장치(1400)는 프로세서(1410), 메모리(1420), 저장 장치(1430) 및 입출력(input/output, I/O) 인터페이스(1440)를 포함한다.
프로세서(1410)는 중앙 처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있다.
메모리(1420)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 램버스 DRAM(rambus DRAM, RDRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 정적 RAM(static RAM, SRAM) 등의 RAM과 같은 매체로 구현될 수 있다.
저장 장치(1430)는 하드 디스크(hard disk), CD-ROM(compact disk read only memory), CD-RW(CD rewritable), DVD-ROM(digital video disk ROM), DVD-RAM, DVD-RW 디스크, 블루레이(blu-ray) 디스크 등의 광학 디스크, 플래시 메모리, 다양한 형태의 RAM과 같은 영구 또는 휘발성 저장 장치로 구현될 수 있다.
I/O 인터페이스(1440)는 프로세서(1410) 및/또는 메모리(1420)가 저장 장치(1430)에 접근할 수 있도록 한다.
프로세서(1410)는 도 1, 도 3 내지 도 13을 참고하여 설명한 장애물 탐지 및 점유 격자 지도 업데이트 기능을 수행할 수 있으며, 환경 인지부(110) 및 지도 생성부(120)의 적어도 일부의 기능을 구현하기 위한 프로그램 명령을 메모리(1420)에 로드시켜, 도 1, 도 3 내지 도 13을 참고하여 설명한 동작이 수행되도록 제어할 수 있다. 그리고 이러한 프로그램 명령은 저장 장치(1430)에 저장되어 있을 수 있으며, 또는 네트워크로 연결되어 있는 다른 시스템에 저장되어 있을 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (1)

  1. 점유 격자 지도 생성 장치의 적어도 하나의 프로세서에 의해 실행되어 점유 격자 지도를 생성하는 방법으로서,
    적어도 하나의 센서로부터 주변 환경에 대한 포인트 클라우드를 획득하는 단계,
    직전 포인트 클라우드와 현재 포인트 클라우드의 비교를 통해 포인트 클라우드의 상태 변화를 감지하는 단계,
    상기 포인트 클라우드의 상태 변화가 발생된 공간에 대해 장애물에 의한 점유 상태를 판단하는 단계, 그리고
    상기 공간의 점유 상태를 토대로 점유 격자 지도를 생성하는 단계
    를 포함하는 점유 격자 지도 생성 방법.
KR1020200135875A 2019-11-27 2020-10-20 점유 격자 지도 생성 장치 및 방법 KR20210065837A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190154812 2019-11-27
KR1020190154812 2019-11-27

Publications (1)

Publication Number Publication Date
KR20210065837A true KR20210065837A (ko) 2021-06-04

Family

ID=76391886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200135875A KR20210065837A (ko) 2019-11-27 2020-10-20 점유 격자 지도 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20210065837A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114119729A (zh) * 2021-11-17 2022-03-01 北京埃福瑞科技有限公司 障碍物识别方法及装置
KR102494926B1 (ko) 2021-08-30 2023-02-06 재단법인대구경북과학기술원 무인기 운행을 위한 로컬 동적 맵 생성 장치 및 방법
CN117870653A (zh) * 2024-03-13 2024-04-12 中国科学技术大学 一种二维差分欧几里得符号距离场地图的建立与更新方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102494926B1 (ko) 2021-08-30 2023-02-06 재단법인대구경북과학기술원 무인기 운행을 위한 로컬 동적 맵 생성 장치 및 방법
CN114119729A (zh) * 2021-11-17 2022-03-01 北京埃福瑞科技有限公司 障碍物识别方法及装置
CN117870653A (zh) * 2024-03-13 2024-04-12 中国科学技术大学 一种二维差分欧几里得符号距离场地图的建立与更新方法
CN117870653B (zh) * 2024-03-13 2024-05-14 中国科学技术大学 一种二维差分欧几里得符号距离场地图的建立与更新方法

Similar Documents

Publication Publication Date Title
CN110632921B (zh) 机器人路径规划方法、装置、电子设备和存储介质
KR20210065837A (ko) 점유 격자 지도 생성 장치 및 방법
US11455565B2 (en) Augmenting real sensor recordings with simulated sensor data
EP3008488B1 (en) Lidar-based classification of object movement
US11487988B2 (en) Augmenting real sensor recordings with simulated sensor data
CN112526993B (zh) 栅格地图更新方法、装置、机器人及存储介质
CN109521757B (zh) 静态障碍物识别方法和装置
JP2021523443A (ja) Lidarデータと画像データの関連付け
CN110674705B (zh) 基于多线激光雷达的小型障碍物检测方法及装置
US11673533B2 (en) Vehicle sensor enhancements
CN114663526A (zh) 障碍物检测方法、装置、机器人及计算机可读存储介质
US20200064481A1 (en) Autonomous mobile device, control method and storage medium
KR102050754B1 (ko) 3d 센서 시스템을 위한 초소형 표적 탐지방법
US11216669B1 (en) Single frame motion detection and three-dimensional imaging using free space information
US11994589B2 (en) Vapor detection in lidar point cloud
KR102050756B1 (ko) 초소형 표적 탐지기
KR102050755B1 (ko) 3d 센서 시스템을 위한 증강 표적 데이터 세트 생성방법 및 이를 이용하여 생성된 증강 표적 데이터 세트
JP2021060943A (ja) 占有マップの作成方法、及び、占有マップの作成装置
EP3731130B1 (en) Apparatus for determining an occupancy map
CN115527034B (zh) 一种车端点云动静分割方法、装置及介质
Overbye et al. Radar-Only Off-Road Local Navigation
US20240087094A1 (en) Systems And Methods For Combining Multiple Depth Maps
CN115778263A (zh) 绕障方法、装置、机器人和存储介质
CN116229420A (zh) 一种道路物体识别方法及装置
Gal et al. Visibility Velocity Obstacles (VVO): Visibility-Based Path Planning in 3D Environments