KR20180071928A - 대표 광선 기반의 점유맵 업데이트 방법 및 시스템 - Google Patents

대표 광선 기반의 점유맵 업데이트 방법 및 시스템 Download PDF

Info

Publication number
KR20180071928A
KR20180071928A KR1020170122381A KR20170122381A KR20180071928A KR 20180071928 A KR20180071928 A KR 20180071928A KR 1020170122381 A KR1020170122381 A KR 1020170122381A KR 20170122381 A KR20170122381 A KR 20170122381A KR 20180071928 A KR20180071928 A KR 20180071928A
Authority
KR
South Korea
Prior art keywords
occupancy map
updating
cloud data
ray
point cloud
Prior art date
Application number
KR1020170122381A
Other languages
English (en)
Other versions
KR101949609B1 (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 US15/817,421 priority Critical patent/US11300964B2/en
Publication of KR20180071928A publication Critical patent/KR20180071928A/ko
Application granted granted Critical
Publication of KR101949609B1 publication Critical patent/KR101949609B1/ko

Links

Images

Classifications

    • 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/005Tree description, e.g. octree, quadtree
    • 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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Abstract

대표 광선 기반의 점유맵 업데이트 방법 및 시스템이 개시된다. 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법에 있어서, 센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계, 생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계, 및 상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계를 포함할 수 있다.

Description

대표 광선 기반의 점유맵 업데이트 방법 및 시스템{METHOD AND SYSTEM FOR UPDATING OCCUPANCY MAP BASED ON SUPER RAY}
본 발명의 실시예들은 옥트리(octree)와 같은 점유맵(occupancy map) 표현으로 점군 데이터(point clouds)를 효율적으로 업데이트하는 기술에 관한 것으로서, 더욱 상세하게는 에지(edge) 또는 그리드(grid) 포인트가 맵 업데이트의 액세스 패턴을 분기하는 특성에 기초하는 맵핑 라인(mapping line)을 이용하여 점유맵을 업데이트하는 기술에 관한 것이다.
많은 로보틱 시스템은 그들의 환경을 이해하기 위해 다양한 센서 데이터를 사용한다. 점군 데이터(point clouds)는 로봇 주변의 환경을 표현하는 효과적인 센서 데이터로 알려져 있으며, 최근 부상하고 있는 저렴한 소비자 수준의 깊이(depth) 센서(예를 들어, Kinect 및 Xtion)에서 쉽게 캡쳐된다. 점군 데이터는 고해상도 환경의 기하학적 정보를 나타내는 많은 양의 점으로 표현되지만, 다양한 수준의 센서 노이즈를 가지고 있다. 경로 계획(path planning)이나 SLAM 등의 응용 프로그램에서는, 생성된 데이터 자체의 양과 노이즈의 양 때문에 직접적으로 점군 데이터를 사용하기가 어렵다. 노이즈 및 데이터 자체의 양으로 인한 문제점을 해결하기 위해, 옥트리 또는 그리드 기반으로 점유맵을 표현하는 기술이 제안되었으며, 아래의 비특허 문헌 [1] Kai M Wurm , Armin Hornung , Maren Bennewitz , Cyrill Stachniss , and Wolfram Burgard , " Octomap : A probabilistic, flexible, and compact 3d map representation for robotic systems", in Proc . of the ICRA 2010 workshop on best practice in 3D perception and modeling for mobile manipulation, 2010, vol. 2, [2] H Moravec, "Robot spatial perceptionby stereoscopic vision and 3d evidence grids", Perception, (September), 1996.에서는 점 군의 불확실성을 고려하기 위해 옥트리(octree) 및 그리드(grid)와 같은 다양한 점유맵 표현으로 점군 데이터를 표현하는 방법을 설명하고 있다. 그리드(grid) 맵의 경우, 대규모 외부 환경을 처리하기 위해 거대한 크기의 메모리를 요구하며, 정확한 맵 표현을 위해서는 고해상도를 요구한다.
최근 응용 프로그램은 더 높은 성능을 얻기 위한 맵 표현을 사용한다. 예를 들어, 경로 계획 알고리즘은 크고 불확실한 점군 데이터에 액세스하는 대신에, 충돌없는 경로를 효율적으로 찾기 위해 각 셀(cell)에서 자유 상태(free states) 또는 점유 상태(occupancy states)를 나타내는 점유맵을 사용한다.
그러나, 점군 데이터를 벗어난 점유맵을 구축하는 데는 상당한 계산 오버 헤드가 발생하며, 특히 높은 정밀도를 얻기 위해 맵을 고해상도로 사용하면 맵을 트래버스(traversing)하고 업데이트하는 데 많은 시간이 걸린다. 그리고, 맵의 해상도를 낮추면, 성능은 높아지지만 정확도는 낮아져서 모션(motion) 계획과 같은 다양한 로보틱 작업에 심각한 문제가 발생한다.
따라서, 맵의 정확성을 손상시키지 않으면서도 높은 성능을 달성하기 위한 점군 데이터를 표현하는 점유맵 업데이트 기술이 요구된다. 한국공개특허 제 10-2011-0092592호는 옥트리와 그리드 기반의 3차원 맵 생성 장치 및 방법에 관한 것으로서, 3차원 위치 정보를 가지는 다수의 포인트들을 검출하고, 검출된 다수의 포인트들을 포함하는 공간을 옥트리와 그리드 기반의 점유맵로 표현함으로써 3차원 맵을 생성하는 기술을 제시하고 있다.
[1] Kai M Wurm, Armin Hornung, Maren Bennewitz, Cyrill Stachniss, and Wolfram Burgard, "Octomap: A probabilistic, flexible, and compact 3d map representation for robotic systems", in Proc. of the ICRA 2010 workshop on best practice in 3D perception and modeling for mobile manipulation, 2010, vol. 2. [2] H Moravec, "Robot spatial perceptionby stereoscopic vision and 3d evidence grids", Perception, (September), 1996. [3] Alberto Elfes, "Using occupancy grids for mobile robot perception and navigation", Computer, vol. 22, no.6, pp. 46-57, 1989. [4] Hans P Moravec and Alberto Elfes, "High resolution maps from wide angle sonar", in Robotics and Automation. Proceedings. 1985 IEEE International Conference on. IEEE, 1985, vol. 2, pp. 116-121. [5] Kai M Wurm, Armin Hornung, Maren Bennewitz, Cyrill Stachniss, and Wolfram Burgard, "Octomap: A probabilistic, flexible, and compact 3d map representation for robotic systems", in Proc. of the ICRA 2010 workshop on best practice in 3D perception and modeling for mobile manipulation, 2010, vol. 2.
본 발명은 상기한 문제점들을 해결하기 위한 것으로서, 점군 데이터들의 집합에 대한 대표 광선(super ray)에 기반하여 점유맵을 업데이트 하는 기술에 관한 것이다. 즉, 맵의 대표 광선에 해당하는 점군 데이터를 업데이트하면, 대표 광선과 동일한 셀(cell) 집합을 경유(traversing)하는 점군 데이터들을 함께 업데이트 처리하는 기술에 관한 것이다.
그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법에 있어서, 센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계, 생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계, 및 상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계를 포함할 수 있다.
일측면에 따르면, 상기 맵핑 라인을 생성하는 단계는, 상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하는 단계, 좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하는 단계, 및 점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계를 포함할 수 있다.
다른 측면에 따르면, 상기 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계는, 상기 센서 원점을 포함하는 제1 슬라이스 상에서 상기 센서 원점으로부터 상기 셀 박스의 양 끝점을 연결하는 복수의 교차점을 결정하는 단계, 결정된 교차점 사이에 위치하는 격자점(grid point)을 결정하는 단계, 및 상기 격자점에 기초하여 초기 절두체(seed frustum)을 복수개로 분할하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 맵핑 라인을 생성하는 단계는, 점유맵 상의 센서 원점으로부터 격자점(grid point)을 통과하여 맵핑 라인을 연결하는 매핑 라인 상의 어느 하나의 점(point)에 기초하여 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 대표 광선(super ray)을 생성하는 단계는, 상기 맵핑 라인을 구분하는 복수의 세그먼트 구간들 사이에 위치하는 점군 데이터들을 대상으로 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정하는 단계, 및 센서 원점으로부터 결정된 상기 점군 데이터로 투영된 광선을 상기 대표 광선(super ray)으로 결정하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 대표 광선(super ray)을 생성하는 단계는, 상기 복수의 세그먼트 구간 각각에 위치하는 점군 데이터의 수를 세그먼트 구간 별로 계산하는 단계, 및 계산된 점군 데이터의 수를 결정된 상기 대표 광선의 가중치(weight)로 설정하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 맵핑 라인을 생성하는 단계는, X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 상기 맵핑 라인을 생성함으로써, 2D 좌표계 기반의 대표 광선을 3D 좌표계 기반으로 확장하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 대표 광선을 생성하는 단계는, 상기 2D 좌표계에서 3개의 매핑 평면인 X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 해당하는 매핑 평면 별로 광선들을 매핑시켜 대표 광선을 생성할 수 있다.
또 다른 측면에 따르면, 상기 대표 광선을 생성하는 단계는, 2차원 좌표계에서 초기 절두체(seed frustum) 내부에 존재하는 모서리들을 3차원 좌표계의 매핑 평면(mapping plane)에 투영(projection)시킴에 따라 구분된 복수의 영역들을 대상으로, 각 영역에 매핑된 광선들을 묶어서 영역 별로 하나의 대표 광선을 생성할 수 있다.
또 다른 측면에 따르면, 상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traverse)할 수 있다.
그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 시스템에 있어서, 센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 맵핑 라인 생성부, 생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 대표 광선 생성부, 및 상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 맵 업데이트부를 포함할 수 있다.
일측면에 따르면, 상기 맵핑 라인 생성부는, 상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하고, 좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하고, 점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성할 수 있다.
다른 측면에 따르면, 상기 맵핑 라인 생성부는, 상기 센서 원점을 포함하는 제1 슬라이스 상에서 상기 센서 원점으로부터 상기 셀 박스의 양 끝점을 연결하는 복수의 교차점을 결정하고, 결정된 교차점 사이에 위치하는 격자점(grid point)을 결정하고, 상기 격자점에 기초하여 초기 절두체(seed frustum)을 복수개로 분할할 수 있다.
또 다른 측면에 따르면, 상기 맵핑 라인 생성부는, 점유맵 상의 센서 원점으로부터 격자점(grid point)을 통과하여 맵핑 라인을 연결하는 매핑 라인 상의 어느 하나의 점(point)에 기초하여 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분할 수 있다.
또 다른 측면에 따르면, 상기 대표 광선 생성부는, 상기 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정하고, 센서 원점으로부터 결정된 상기 점군 데이터로 투영된 광선을 상기 대표 광선(super ray)으로 결정할 수 있다.
또 다른 측면에 따르면, 상기 대표 광선 생성부는, 상기 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터의 수를 세그먼트 구간 별로 계산하고, 계산된 점군 데이터의 수를 결정된 상기 대표 광선의 가중치(weight)로 설정할 수 있다.
또 다른 측면에 따르면, 동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 저장부를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 맵핑 라인 생성부는, X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 상기 맵핑 라인을 생성함으로써, 2D 좌표계 기반의 대표 광선을 3D 좌표계 기반으로 확장할 수 있다.
또 다른 측면에 따르면, 상기 3D 좌표계 기반으로 확장된 대표 광선은, 상기 2D 좌표계에서 3개의 매핑 평면인 X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 해당하는 매핑 평면 별로 광선들을 매핑시켜 생성된 대표 광선을 나타낼 수 있다.
또 다른 측면에 따르면, 상기 대표 광선 생성부는, 2차원 좌표계에서 초기 절두체(seed frustum) 내부에 존재하는 모서리들을 3차원 좌표계의 매핑 평면(mapping plane)에 투영(projection)시킴에 따라 구분된 복수의 영역들을 대상으로, 각 영역에 매핑된 광선들을 묶어서 영역 별로 하나의 대표 광선을 생성할 수 있다.
또 다른 측면에 따르면, 상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traverse)할 수 있다.
컴퓨터로 구현되는 전자 기기와 결합되어 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법을 실행시키기 위해 기록매체에 저장된 컴퓨터 프로그램에 있어서, 상기 점유맵을 업데이트하는 방법은, 센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계, 생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계, 및 상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계를 포함할 수 있다.
본 발명은 대표 광선(super ray)에 해당하는 점군 데이터를 업데이트하면, 대표 광선과 동일한 셀(cell) 집합을 트래버싱(traversing)하는 점군 데이터들을 함께 업데이트하여 점유맵을 효율적으로 업데이트할 수 있다. 즉, 트래버싱 시간 및 업데이트 시간을 감소시켜 업데이트 시간을 단축시킬 수 있다.
도 1은 본 발명의 일실시예에 있어서, 서로 다른 종점을 가지는 4가지 다른 광선들의 옥트리 맵 표현을 나타내고 있는 도면이다.
도 2는 본 발명의 일실시예에 있어서, 점유맵 업데이트 시스템의 내부 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 점유맵 업데이트 방법을 도시한 흐름도이다.
도 4는 본 발명의 일실시예에 있어서, 맵핑 라인 생성을 설명하기 위해 제공되는 도면이다.
도 5는 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 설명하기 위해 제공되는 도면이다.
도 6은 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 3D로 확장하는 동작을 설명하기 위해 제공되는 도면이다.
도 7은 본 발명의 일실시예에 있어서, 옥토맵과 그리드맵에서 테스트된 평균 FPS를 도시한 그래프이다.
도 8은 본 발명의 일실시예에 있어서, 옥토맵과 그리드맵에서 테스트된 액세스되는 셀의 수를 도시한 그래프이다.
도 9는 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 3D로 확장 시 이용되는 매핑 평면을 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 매핑 평면에 포함된 영역들 중 동일 영역에 속하는 광선들을 묶어 대표 광선으로 생성하는 동작을 설명하기 위해 제공되는 도면이다.
도 11은 본 발명의 일실시예에 있어서, 매핑 편면을 이용하여 데표 광선을 결정하는 것과 3개의 3차원 평면에서 매핑 라인을 이용하여 대표 광선을 결정하는 것이 일치함을 나타내는 도면이다.
도 12는 본 발명의 일실시예에 있어서, 각 차원에서 매핑 라인을 생성하여 대표 광선을 생성하는 것이 더 효율적인 이유를 설명하기 위해 제공되는 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예들은 새로운 개념인 대표 광선(super ray)를 기반으로 점유맵을 업데이트하는 기술에 관한 것이다. 특히, 본 실시예들은 그리드(grid) 기반의 점유맵 상에서 점군 데이터를 업데이트함에 있어서, 모든 광선이 지나는 공간(즉, 셀)을 개별적으로 처리하여 점유맵을 업데이트하는 것 대신, 항상 같은 공간을 지나는 광선들의 대표 광선(super ray)을 이용하여 점유맵을 업데이트하는 기술에 관한 것이다. 즉, 점군 데이터를 업데이트하는 점유맵의 공간에 접근하는 수를 줄임으로써, 기존 방식으로 생성된 점유맵의 표현 정확도를 그대로 유지하면서, 대표 광선을 이용하여 업데이트를 수행함으로써 점유맵의 업데이트 속도를 향상하는 기술에 관한 것이다.
본 실시예들에서, '대표 광선(super ray)'은 그리드(grid) 기반의 점유맵 상에서 항상 같은 공간(즉, 같은 셀)을 지나는 광선들을 대표하는 광선을 나타낼 수 있다. 즉, 대표 광선은 점유맵 상에서 같은 공간(즉, 같은 셀)을 업데이트하는 점들(pints)을 묶음으로써, 점유맵을 동시에 업데이트하기 위해 이용될 수 있다. 다시 말해, 맵 업데이트 프로세스 중 액세스 되는 셀 세트와 동일한 포인트를 업데이트하기 위해 이용될 수 있다. 예컨대, 대표 광선에 해당하는 점군 데이터를 업데이트하면 점유맵 상에서 대표 광선이 지나가는 셀(즉, 격자 공간)과 동일한 셀을 지나가는 광선들에 해당하는 점군 데이터(즉, 동일한 셀 집합)들이 함께 업데이트할 수 있다.
본 실시예들에서, '점군 데이터(point clouds)'는 센서나 레이저 레인지 파인더(laser range finder)에 의해 캡쳐 또는 센싱되는 센서 데이터들을 나타낼 수 있으며, 점군 데이터 자체가 점유맵을 표현하기 위해 이용될 수 있다. 이때, 점군 데이터는 매 프레임(frame)마다 센서로부터 획득될 수 있다. 그리고, 센서로부터 '점군 데이터(point clouds)'가 획득되면, 즉, 센서에 의해 점 군 데이터가 리포트(report)되면, 센서 원점과 점군 데이터에 해당하는 격자점(grid point) 사이의 공간이 비워져 있음을 의미할 수 있다. 이에 따라, 센서 원점을 시작으로 센서로부터 리포트되는 점군 데이터에 해당하는 격자점에 광선을 연결하고, 광선을 연결하는 작업을 종점까지 수행하는 맵 탐색을 통해 대표 광선을 생성하고, 대표 광선을 기반으로 점유맵을 업데이트할 수 있다.
본 실시예들에서, 점유맵 업데이트 시스템은, 컴퓨터로 구현되는 고정형 단말이거나 이동형 단말 등의 전자 기기를 나타낼 수 있다. 예를 들어, 전자 기기는 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등을 포함할 수 있다.
본 실시예들에서, '맵핑 라인(mapping line)'은 입력 점, 즉, 센서로부터 획득한 점군 데이터에 기초하여 대표 광선을 구성하기 위해 이용될 수 있다. 예컨대, 2차원 맵을 갱신하기 위해 맵핑 라인이 사용될 수 있으며, 그리드와 옥트리와 같은 3차원 맵으로 확장하여 대표 광선을 구성하기 위해 이용될 수도 있다.
본 실시예들에서, '절두체(frustum)'는 입체를 평핸한 두 평면으로 절단할 때, 해당 두 평면 사이의 부분을 나타낼 수 있다. 그리고, 대표 광선이 업데이트하는 점유 확률에 속하는 포인트들의 개수만큼 가중치를 부가하여 업데이트를 수행할 수 있다.
본 실시예들에서, '트래버스(traversing)'는 복수의 셀들로 구분되는 점유맵 상에서 특정 광선이 센서 원점으로부터 종점(end point)에 도착할 때까지 어떤 셀을 지나서 종점에 도착하는지를 탐색하는 프로세스를 의미할 수 있다.
본 실시예들에서, '광선'은 공간에 대한 점유 상태(occupancy state)와 자유 상태(free state)라는 두 종류의 상태 정보를 가질 수 있다. 센서는 센싱된 특정 지점의 일부 객체(object)를 리포트하므로, 광선의 종점은 점유 상태가 될 수 있다. 이때, 광선이 통과하는 다른 공간들은 자유 상태(free state)가 될 수 있다. 이러한, 자유 상태 또는 점유 상태 등의 상태 정보는 모션 계획(motion planning)과 같은 응용 프로그램에서 중요한 정보로 이용될 수 있다. 센서로부터 수집된 상기 정보들을 기반으로 점유맵이 표현될 수 있는 데, 이때, 센서에 의해 수집된 데이터는 다양한 레벨의 노이즈(noise)를 포함할 수 있다. 이러한 노이즈를 고려하기 위해 점유 확률이 이용될 수 있으며, 점유 확률
Figure pat00001
은 아래의 수학식 1과 같이 표현될 수 있다.
[수학식 1]
Figure pat00002
수학식 1에서, 점유 확률
Figure pat00003
은 셀의 점유 상태 n, 초기 시간 1(step 1)부터 현재 시간 t(step t) 동안 센싱된 센서 측정값
Figure pat00004
및 베이즈 법칙(Bayes rule)에 기초하여 계산될 수 있다. 위의 비특허 문헌 [3] Alberto Elfes , "Using occupancy grids for mobile robot perception and navigation", Computer, vol. 22, no.6, pp. 46-57, 1989.에서는 베이즈 법을 이용하여 점유 확률을 모델링하는 방법을 제시하고 있다.
위의 수학식 1은 위의 비특허 문헌 [4] Hans P Moravec and Alberto Elfes , "High resolution maps from wide angle sonar", in Robotics and Automation. Proceedings. 1985 IEEE International Conference on. IEEE, 1985, vol. 2, pp. 116-121.에서 제시하고 있는 log-odd notation을 이용하여 아래의 수학식 2와 같이 표현될 수 있다.
[수학식 2]
Figure pat00005
수학식 2에서,
Figure pat00006
은 역 센서 모델을 나타내는 것으로서, 아래의 수학식 3과 같이 정의될 수 있다.
[수학식 3]
Figure pat00007
셀이 기정의된 오랜 시간 동안 누적된 점유 확률을 가지는 경우, 셀의 현재 상태와 충돌하는 새로운 입력 데이터는 상태를 즉시 변화시킬 수 없는 오버 컨피던스(over-confidence) 문제는 동적 환경에서 빈번하게 발생할 수 있다. 이때, 최소 상태와 최대 상태의 경계를 기반으로 셀의 점유 확률을 제한하는 클램핑 정책을 사용하여 오버 컨피던스를 해결할 수 있다. 즉, 두 경계 중 하나에 의해 제한되는 셀의 상태는 완전히 자유 롭거나, 높은 점유 확률로 완전히 점유된 것으로 간주될 수 있다.
도 1은 본 발명의 일실시예에 있어서, 서로 다른 종점을 가지는 4가지 다른 광선들의 옥트리 맵 표현을 나타내고 있는 도면이다.
도 1에 따르면, 4개의 서로 다른 광선들이 옥트리 맵 상에서 동일한 셀들을 가로지르지만, 각 광선이 서로 다른 종점(end point)를 가짐을 확인할 수 있다. 이때, 광선들 각각에 해당하는 점군 데이터를 개별적으로 하나씩 업데이트하면 동일한 셀을 대상으로 트래버스(traversing) 시 중복된 연산이 이루어져 성능저하가 발생할 수 있다. 이에 따라, 동일한 셀들을 지나가는 복수의 광선들(110) 중 어느 하나의 광선을 대표 광선(101)을 생성하여 맵 업데이트를 수행할 수 있으며, 대표 광선을 이용하여 맵을 업데이트함으로써 동일 셀에 대해 중복 계산을 제거하여 맵 업데이트 성능을 향상시킬 수 있다.
도 2는 본 발명의 일실시예에 있어서, 점유맵 업데이트 시스템의 내부 구성을 도시한 블록도이고, 도 3은 본 발명의 일실시예에 있어서, 점유맵 업데이트 방법을 도시한 흐름도이다.
본 실시예에 따른 점유맵 업데이트 시스템(200)은 센서(210), 맵핑 라인 생성부(220), 대표 광선 생성부(230), 맵 업데이트부(240) 및 저장부(250)를 포함할 수 있다. 센서(210), 맵핑 라인 생성부(220), 대표 광선 생성부(230), 맵 업데이트부(240) 및 저장부(250)는 도 3의 단계들(310 내지 340 단계)을 수행하기 위해 구성될 수 있다. 본 실시예들에서는 균일한 그리드(grid)를 기반으로 점군 데이터에 대한 점유맵을 표현하는 것을 예로써 설명하나, 이는 실시예에 해당되며, 그리드의 크기는 불균일할 수도 있다. 즉, 점유맵을 구성하는 격자 공간(즉, 각 셀들)의 크기가 서로 상이할 수도 있다. 그리고, 맵핑 라인 생성부(220), 대표 광선 생성부(230), 맵 업데이트부(240) 및 저장부(250)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성되는 프로세서에 포함되도록 구성될 수 있다. 예를 들어, 프로세서는 메모리와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
센서(210)는 센싱하고자 하는 주변 환경을 구성하고 있는 오브젝트들(objects)을 센싱하고, 센싱된 데이터, 즉, 점군 데이터를 점유맵 업데이트 시스템(200)으로 제공할 수 있다. 여기서, 센서(210)는 점유맵 업데이트 시스템(200)에 포함될 수도 있고, 점유맵 업데이트 시스템(200)과는 별도로 구현될 수도 있다. 예컨대, 센서(210)는 근거리 무선통신 모듈 또는 유선 통신 모듈을 통해 센싱된 점군 데이터를 점유맵 업데이트 시스템(200)으로 제공할 수도 있다.
예를 들어, 센서(210)는 로봇 또는 자율주행 자동차 주변 환경을 센싱할 수 있으며, 센싱된 점군 데이터(point clouds)를 점유맵 생성을 위해 맵핑 라인 생성부(220)로 제공할 수 있다. 이때, 센서(210)는 기정의된 일정시간 동안 센싱된 점군 데이터를 제공할 수 있으며, 매 프레임, 또는 기정의된 매 시간단위마다 일정시간 동안 센싱된 점군 데이터를 맵핑 라인 생성부(220)로 제공할 수 있다.
310 단계에서, 맵핑 라인 생성부(220)는 센서(210)로부터 획득한 점군 데이터에 기초하여 맵핑 라인을 생성할 수 있다. 이때, 센서(210)로부터 획득한 점군 데이터의 좌표계는 센서 좌표계에서 정의되므로, 점유맵으로의 표현을 위해 상기 좌표계를 세계 좌표계(world coordinate)로 변환할 필요가 있다.
311 단계에서, 맵핑 라인 생성부(220)는 센서(210)로부터 획득한 점군 데이터의 좌표계를 세계 좌표계(world coordinate)로 변환할 수 있다. 여기서, 세계 좌표계 상에서 센서의 위치와 방향을 이미 알고 있음을 가정하고, 센서 좌표계에서 세계 좌표계로 점군 데이터의 좌표계를 변환할 수 있다. 그리고, 변환된 세계 좌표계기반의 점군 데이터를 이용하여 점유맵에 대한 업데이트가 처리될 수 있다.
312 단계에서, 맵핑 라인 생성부(220)는 좌표계가 변환된 점군 데이터들을 대상으로, 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성할 수 있다.
313 단계에서, 점유맵 상의 센서 원점에 기초하여 생성된 상기 셀 박스, 그리고 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 맵핑 라인(mapping line)으로 생성할 수 있다. 여기서, 맵핑 라인을 생성하는 자세한 동작은 도 4를 참고하여 후술하기로 한다.
320 단계에서, 맵핑 라인이 생성되면, 대표 광선 생성부(230)는 생성된 맵핑 라인에 기초하여 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과(traverse)하는 셀을 식별하여 대표 광선을 생성할 수 있다.
321 단계에서, 대표 광선 생성부(230)는 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로, 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정할 수 있다.
322 단계에서, 대표 광선 생성부(230)는 센서 원점으로부터 상기 결정된 점군 데이터로 투영(또는 영사)된 광선을 대표 광선(super ray)으로 결정할 수 있다. 이때, 대표 광선 생성부(230)는 복수의 세그먼트 구간들에 위치하는 점구 데이터의 수를 세그먼트 구간 별로 계산하고, 계산된 점군 데이터의 수를 상기 대표 광선의 가중치(weight)로 설정할 수 있다. 여기서, 대표 광선을 생성하는 자세한 동작은 도 5에서 후술하기로 한다.
330 단계에서, 저장부(250)는 동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장할 수 있다.
340 단계에서, 맵 업데이트부(240)는 점유맵을 구성하는 복수의 셀들 중 일부에 해당하는 대표 광선이 통과하는 셀을 업데이트함으로써, 점유맵을 업데이트할 수 있다. 즉, 모든 광선이 통과하는 셀을 업데이트하여 동일 셀에 대해 중복된 업데이트를 수행하는 대신, 복수의 광선들 중 동일한 셀을 통과하는 대표 광선이 지나가는 셀을 업데이트하여 중복 연산을 제거하고, 업데이트 속도를 향상시킬 수 있다.
도 4는 본 발명의 일실시예에 있어서, 맵핑 라인 생성을 설명하기 위해 제공되는 도면이다.
도 4를 참고하면, 점유맵(410)은 복수의 셀들(즉, 복수의 격자 공간)으로 구분될 수 있다. 도 4에서는 점유맵(410)을 구성하는 격자 공간들 각각이 균일한 크기를 가짐을 가정한다.
맵핑 라인 생성부(220)는 점유맵(410)을 구성하는 복수의 셀들 중 어느 하나의 셀(예컨대, 셀 C)를 대상으로, 센서 원점(401)부터 셀 C에 속하는 모든 점군 데이터들을 포함하는 가상의 셀 박스(402)를 생성할 수 있다. 그리고, 맵핑 라인 생성부(220)는 센서 원점(401)부터 셀 박스(420)로의 초기 절두체(seed frustum)을 구성할 수 있다.
이때, 맵핑 라인 생성을 위해 프로세싱 방향(412)으로 초기 절두체가 복수개로 분할될 수 있으며, 슬라이스(slice) 단위로 처리될 수 있다. 슬라이스(slice) 단위로 처리하기 위해 x축, y축, 및 z축 중 어느 하나가 선택될 수 있으며, 선택된 축 방향이 프로세싱 방향이 될 수 있다. 도 4에서는 x축 방향을 프로세싱 방향으로하여 맵핑 라인을 생성하는 경우를 예로 들어 설명하나, 이는 실시에 해당되며, y축, 또는 z축 방향이 프로세싱 방향이 될 수도 있다. 도 4에서, 슬라이스는 복수의 셀들을 포함할 수 있다. 예컨대, 슬라이스 1(421)은 4개의 셀들을 포함할 수 있으며, 슬라이스 2(422)는 슬라이스 1에 포함된 셀들과 프로세싱 방향으로 이웃하는 4개의 셀들을 포함할 수 있다. 도 4에서는 점유맵이 4개의 슬라이스드들을 포함하는 경우를 예로서 도시하고 있다.
이때, 동일한 대표 광선에 맵핑되는 점군 데이터들을 식별하기 위해 셀 C 및 셀 C를 포함하는 슬라이스(즉, 슬라이스 3, 423) 사이에 오버랩되는 선분(line segment)가 맵핑 라인으로 생성될 수 있다.
일례로, 맵핑 라인 생성부(220)는 센서 원점(401)을 포함하는 슬라이스 1(4110) 상에서 센서 원점(401)으로부터 셀 박스(402)의 양 끝점(403, 404)을 연결하는 연결하는 복수의 교차점(405, 406)을 결정할 수 있다. 점유맵 420을 참고하면, 맵핑 라인 생성부(220)는 센서 원점(401)을 포함하는 슬라이스 1(4110) 상에서 상기 결정된 교차점(424, 425) 사이에 위치하는 격자점(grid point, g1, 426)을 결정할 수 있다. 그리고, 맵핑 라인 생성부(220)는 결정된 ?자점(426)에 기초하여 초기 절두체를 복수개로 분할함으로써, 초기 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분할 수 있다. 예컨대, 점유맵 410에서, 센서 원점(401)과 셀 박스(402)의 양 끝점(403, 404)을 연결하는 경우, 셀 C를 포함하는 슬라이스 3 상에서 상기 두 개의 선분들(407, 408) 각각과의 교차점(403, 409)과 셀 박스(402)가 초기 맵핑 라인으로 생성될 수 있다. 그리고, 초기 맵핑 라인은 초기 절두체를 분할함으로써 복수의 세그먼트 구간으로 구분될 수 있다. 초기 맵핑 라인은 대표 광선을 나타내는 단일 선분으로 시작하며, 초기 절투체가 복수개로 분할되어 초기 맵핑 라인이 여러 개의 세그먼트 구간들로 구분됨에 따라, 세그먼트 구간들 각각에 해당하는 선분은 다수의 대표 광선들 각각에 대응할 수 있다.
예를 들어, 점유맵 420에서, 센서 원점으로부터 격자점(g1, 426)을 지나 초기 맵핑 라인과 만나는 어느 하나의 점(point, 427)을 연결하는 선분이 초기 맵핑 라인을 복수의 세그먼트 구간들로 구분할 수 있다. 즉, 격자점(426)에 기초하는 상기 점(427)을 연결하는 선분은 초기 절두체를 두 개로 분할할 수 있으며, 상기 격자점(426)에 의해 상기 선분에 해당하는 광선이 지나가는 셀이 달라질 수 있다. 점유맵 430을 참고하면, 맵핑 라인 생성부(220)는 초기 맵핑 라인을 복수의 세그먼트 구간으로 구분하는 동작을 슬라이스 2(431)에 대해서도 반복 수행하여 2개의 세그먼트 구간으로 구분된 초기 맵핑 라인을 4개의 세그먼트 구간으로 구분할 수 있다. 예컨대, 점유맵 440을 참고하면, 초기 맵핑 라인은 4개의 세그먼트 구간(441, 442, 443, 444)으로 구분될 수 있다. 이때, 초기 맵핑 라인을 복수개의 세그먼트 구간들(예컨대, 세그먼트 구간 1 내지 세그먼트 구간 4)로 구분하기 위해서는 절두체 내의 격자점(grid point)을 효율적으로 결정하는 것이 중요할 수 있다.
예컨대, 점유맵 420을 참고하면, out1은 프로세싱 방향으로부터 해당 슬라이스(즉, 슬라이스 1)에서 먼 쪽 라인을 나타낼 수 있으며, 맵핑 라인 생성부(220)는 해당 슬라이스(즉, 슬라이스 1)와 초기 절두체 간의 교차점(intmax, intmin)에 기초하여 격자점(grid point)을 결정할 수 있다. 즉, 슬라이스 1과 초기 절두체 간의 교차점(424, 425) 사이에 존재하는 격자점(426)을 상기 절두체 내의 격자점으로 결정할 수 있다. 여기서, 센서 원점을 포함하는 첫 번째 슬라이스가 슬라이스 1이고, 셀 C를 포함하는 슬라이스를 마지막 슬라이스로서, N이라고 정의하면, 맵핑 라인 생성부(220)는 슬라이스 1부터 슬라이스 N-1까지 각 슬라이스 상에서 상기 교차점들을 결정하고, 교차점들 사이에 위치하는 격자점을 결정하는 동작을 슬라이스 N-1까지 반복 수행함으로써, 초기 맵핑 라인을 복수개의 세그먼트들로 구분할 수 있다. 예컨대, m개의 격자점이 있음을 가정하면,
Figure pat00008
와 같이 표현될 수 있다. 이처럼, 격자점은 초기 절두체 또는 현재 절두체를 m+1개의 서브 절두체로 분할하는 점을 나타낼 수 있으며, 결국 초기 맵핑 라인에서 m+1개의 세그먼트가 생성(즉, 구분)될 수 있다. 이처럼, 점유맵의 이산적 특성으로 인해 격자점을 쉽게 결정하고, 값비싼 정렬방법을 사용하지 않고도 상기 격자점을 기반으로 초기 맵핑 라인을 복수개의 세그먼트들로 빠르게 구분할 수 있다. 셀 C와 관련하여 맵핑 라인을 생성하는 의사 코드(pseudo code) 알고리즘은 아래의 표 1과 같을 수 있다.
Figure pat00009
도 5는 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 설명하기 위해 제공되는 도면이다.
도 5를 참고하면, 센서로부터 획득한 셀 C(511)에 해당하는 모든 점군 데이터들(512)이 점유맵(510) 상에 맵핑될 수 있다. 예컨대, 셀 C(511)에 속하는 5개의 점군 데이터들(512)이 점유맵(510) 상에 표현될 수 있다. 이때, 대표 광선 생성부(230)는 맵핑 라인을 대상으로 구분된 복수의 세그먼트 구간에 해당하는 점군 데이터 중 어느 하나의 점군 데이터에 해당하는 광선을 대표 광선으로 결정할 수 있다. 예컨대, 점유맵 520을 참고하면, 맵핑 라인(521)은 슬라이스 1의 격자점, 슬라이스 2의 격자점에 기초하여 4개의 세그먼트 구간(522, 523, 524, 525)으로 구분될 수 있다. 그러면, 점유맵 530에서, 대표 광선 생성부(230)는 센서 원점(531)부터 세그먼트 구간 1(522)의 양 끝점을 지나는 광선(532, 533) 사이에 위치하는 점군 데이터들 중 어느 하나의 점군 데이터에 해당하는 광선을 대표 광선으로 결정할 수 있다. 예컨대, 첫 번째 점군 데이터(534)에 해당하는 광선(즉, 센서 원점으로부터 첫 번째 점군 데이터를 지나가는 광선)을 대표 광선(535)으로 결정할 수 있다. 동일한 방법으로, 대표 광선 생성부(230)는 세그먼트 구간 2의 대표 광선(536) 및 세그먼트 구간 3의 대표 광선(537)을 결정할 수 있다. 이때, 세그먼트 구간 4에는 맵핑된 점군 데이터가 존재하지 않음에 따라 대표 광선이 없을 수도 있다.
그리고, 대표 광선 생성부(230)는 세그먼트 구간 별로 맵핑된(즉, 할당된) 점군 데이터의 개수를 계산할 수 있다. 예컨대, 세그먼트 구간 1은 2개, 세그먼트 구간 2은 1개, 세그먼트 구간 3은 2개와 같이 맵핑된 점군 데이터의 개수가 계산될 수 있으며, 대표 광선 생성부(230)는 계산된 상기 점군 데이터의 개수를 해당 세그먼트 구간의 대표 광선의 가중치로 설정할 수 있다. 즉, 대표 광선 1(541)의 가중치는 2, 대표 광선 2(542)의 가중치는 1, 대표 광선 3(543)의 가중치는 2로 설정될 수 있다. 그러면, 맵 업데이트부(240)는 점유맵 업데이트 시 대표 광선 별로 설정된 가중치, 즉, 점유 확률에 묶여진 점군 데이터의 개수만큼 가중치를 주어 점유맵에 대한 업데이트를 수행할 수 있다. 그리고, 대표 광선 1(541)이 지나가는 셀과 해당 세그먼트에 속하는 적어도 하나의 광선이 지나가는 셀은 동일할 수 있다. 즉, 각 세그먼트 구간 별 대표 광선과 동일 세그먼트에 속하는 점구 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traversing)할 수 있다. 이에 따라, 점유 맵 상의 모든 광선이 아닌 대표 광선이 지나가는 셀을 업데이트함으로써 나머지 광선이 지나감에 따라 중복되는 셀들을 중복하여 업데이트하지 않아도 되어 맵 업데이트 속도를 증가시킬 수 있다.
도 6은 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 3D로 확장하는 동작을 설명하기 위해 제공되는 도면이다.
3D로 확장하기 위해서는 2D 평면의 맵핑 라인을 3개의 다른 2D 평면에서 생성하여 3D로 확장할 수 있다. 예컨대, 맵핑 라인 생성부(220)는 2D 평면의 맵핑 라인을 X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 생성할 수 있으며, 상기 맵핑 라인 생성을 통해 2D 좌표계 기반의 대표 광선이 3D 좌표계로 확장될 수 있다.
먼저, 3D 표현을 위해, 점군 데이터를 포함하는 경계 체적이 계산될 수 있으며, 2D와 마찬가지로 체적을 트래버스(traversing)하는 초기 절두체가 구성될 수 있다. 이후, 절두체를 서브 절두체로 분할하고, 분할된 각 서브 절두체와 동일한 셀 집합을 액세스하는 대표 광선이 결정될 수 있다.
도 5를 참고하면, 센서 원점(601)으로부터 두 개의 광선(602, 603)이 각 평면의 격자점(604)을 기반으로 분할되므로, 두 개의 광선이 서로 다른 셀에 액세스함을 확인할 수 있다. 즉, 두 광선의 액세스 패턴은 Y-Z 평면(610)에 투영된 격자점과 다를 수 있다. 이처럼, Y-Z 평면(610), Z-X 평면(620) 및 X-Y 평면(630) 각각에 격자점을 투영하고, 해당 격자점이 2D 평면에서 격자점으로 분할되어 있는 것인지 확인함으로써, 3개의 서로 다른 평면에 대한 맵핑 라인을 생성함으로써, 맵핑 라인 생성을 3D로 확장할 수 있다. 이처럼, 맵핑 라인이 3D에서 생성되면, 각 평면의 맵핑 라인에 센서로부터 획득한 특정 셀에 속하는 모든 점군 데이터들을 맵핑(또는 투영)하고, 세 개의 맵핑 라인 모두에서 동일한 세그먼트에 해당하는 점이 결정되면, 해당 점은 동일한 액세스 패턴을 가지는 대표 광선으로 생성될 수 있다. 3D에서의 셀에 대한 대표 광선을 생성하는 의사 코드 알고리즘은 아래의 표 2와 같을 수 있다.
Figure pat00010
아래의 표 3은 대표 광선 및 각 대표 광선 별 가중치를 나타낼 수 있다.
Figure pat00011
표 3에 따르면, 해상도 0.6m의 경우, 실내 점군 데이터들을 대상으로 평균 17.5개의 점군 데이터들을 그룹화하고, 실외 점군 데이터들을 대상으로, 평균 3.4개의 점군 데이터들이 그룹화됨을 확인할 수 있다. 즉, 실내에서는 평균 17.5개의 점군 데이터들에 해당하는 광선들이 동일한 셀을 경유하고, 실외에서는 평균 3.4개의 점군 데이터들에 해당하는 광선들이 동일한 셀을 경유함을 확인할 수 있다. 그룹화 비율이 높을수록 실내 및 실외 데이터 세트에서 맵 업데이트 중에 트래버스(traversing)하는 셀의 수를 상기 비율이 작을 때보다 상대적으로 많이 감소시킬 수 있다.
대표 광선은 하나의 셀 내에서도 여러 점군 데이터에 대해 생성되므로, 대표 광선의 가중치
Figure pat00012
를 고려하여 수정된 역 센서 모델을 이용하여 점유 맵이 업데이트될 수 있다. 위의 수학식 3의 역 센서 모델은 아래의 수학식 4와 같이 수정될 수 있다.
[수학식 4]
Figure pat00013
한편, 대표 광선을 이용하여 점유맵을 업데이트하는 경우, 셀 내의 점군 데이터가 적은 경우, 대표 광선이 단일 점만을 가질 수 있으며, 이처럼, 단일 점만 가진 경우 오버헤드만 증가시킬 수도 있다. 이에 따라, 대표 광선 생성부(230)는 기정의된 임계값
Figure pat00014
를 이용하여 대표 광선을 생성할 수도 있다. 여기서, 임계값
Figure pat00015
는 특정 셀 내에 포함되는 최소 점군 데이터의 개수를 나타낼 수 있다.
예를 들어, 셀에 포함된 점군 데이터의 개수가 임계값
Figure pat00016
보다 작은 경우, 대표 광선 생성부(230)는 셀에 포함된 모든 점들 각각을 대상으로 대표 광선을 생성할 수 있다. 즉, 셀 내의 모든 점군 데이터들을 개별적으로 처리할 수 있다. 그리고, 셀 내에 포함된 점군 데이터의 개수가 임계값
Figure pat00017
이상인 경우, 대표 광선 생성부(230)는 세그먼트 구간에 속하는 복수의 광선들 중 어느 하나를 대표 광선으로 결정하고, 맵 업데이트부(240)는 대표 광선에 기초하여 점유맵을 업데이트할 수 있다. 이처럼, 점유맵을 업데이트함에 있어서, 상기 임계값
Figure pat00018
는 특정 셀을 대상으로 대표 광선을 생성하는 것이 해당 점유맵에 유익한지 아닌지 여부를 확인하기 위해 이용될 수 있으며, 특정 셀 내의 점군 데이터의 개수가 임계값 k 이상인 경우, 대표 광선을 생성하는 것으로 결정하고, k보다 작은 경우 대표 광선을 생성하지 않고 셀 내 모든 점군 데이터에 대해 개별적으로 점유맵을 업데이트하는 것으로 결정될 수 있다. 그리고, 결정된 방법에 따라 점유맵이 업데이트될 수 있다.
이하에서는 대표 광선을 이용하여 점유맵을 업데이트하는 경우와 3차원 디지털 미분 분석기(3D Digital Differential Analyzer, 3DDDA) 알고리즘을 사용하는 기존의 업데이트 방법의 성능 비교에 대해 설명하고자 한다. 여기서, 성능 비교는 대표 광선의 생성 시간과 대표 광선을 가진 맵의 업데이트 시간을 모두 포함할 수 있다. 즉, 대표 광선을 이용하는 경우의 성능의 향상 여부는 단순히 맵 업데이트 여부만을 고려한 것이 아니라, 대표 광선의 생성 시간까지 고려할 수 있다. 3차원 디지털 미분 분석기(3DDDA) 알고리즘 기반의 맵 업데이트 방법은 위의 비특허 문헌 [5] Kai M Wurm , Armin Hornung , Maren Bennewitz , Cyrill Stachniss , and Wolfram Burgard, " Octomap : A probabilistic, flexible, and compact 3d map representation for robotic systems", in Proc . of the ICRA 2010 workshop on best practice in 3D perception and modeling for mobile manipulation, 2010, vol. 2.에서 제시하고 있다.
도 7은 본 발명의 일실시예에 있어서, 옥토맵과 그리드맵에서 테스트된 평균 FPS를 도시한 그래프이다.
도 7에서, 그래프 710은 실내 환경의 점군 데이터들을 대상으로 수행된 시뮬레이션 결과를 나타내고, 그래프 720은 실외 환경의 점군 데이터들을 대상으로 수해오딘 시뮬레이션 결과를 나타낼 수 있다. 아래의 표 4는 도 7의 시뮬레이션 결과로서, 대표 광선 생성 시간 및 맵 업데이트 시간을 나타낼 수 있다.
Figure pat00019
도 7에 따르면, 실내 및 실외, 그리고, 그리드맵 및 옥토맵 모두에서, 3차원 디지털 미분 분석기(3D Digital Differential Analyzer, 3DDDA) 알고리즘을 이용할 때보다 대표 광선을 생성하여 점유맵을 업데이트하는 경우(711, 712, 721, 722)에 성능이 향상됨을 확인할 수 있다. 즉, 평균 초당 프레임 수(FPS)가 향상됨을 확인할 수 있다. 그리고, 위의 표 4에 따르면, 3차원 디지털 미분 분석기 알고리즘과 비교하여 실내 점군 데이터에 대해서는 평균 2.5 배, 실외 점군 데이터에 대해서는 평균 1.6배 빠른 성능을 가짐을 확인할 수 있다. 그리고, 해상도가 낮을 때 보다(0.2m) 해당도가 높을 때(0.8m) FPS가 높아짐을 확인할 수 있다. 즉, 고해상도를 유지하면서도 점유맵 업데이트 속도를 빠르게 처리(즉, 업데이트 시간을 단축)함을 확인할 수 있다. 이에 따라, 자율주행 자동차, 로봇 등이 충돌을 빠르게 탐지하고, 주변 상황에서 변화하는 오브젝트(예컨대, 장애물 등)에 빠르게 대처할 수 있다.
도 8은 본 발명의 일실시예에 있어서, 옥토맵과 그리드맵에서 테스트된 액세스되는 셀의 수를 도시한 그래프이다.
즉, 도 8은 대표 광선을 생성하고, 생성된 대표 광선을 기반으로 점유맵(예컨대, 옥토맵과 그리드맵)을 업데이트하는데 소요되는 총 시간을 도시한 그래프를 나타낼 수 있다.
도 8에 따르면, 실내 및 실외 모두에서, 대표 광선을 이용하여 업데이트하는 경우에, 상기 총 시간이 3차원 디지털 미분 분석기(3DDDA) 알고리즘을 이용할 때보다 평균 5.6배, 최대 20배 단축됨을 확인할 수 있다. 대표 광선을 생성하는데 소요되는 시간은 해상도와 점군 데이터 세트에 따라 다르지만, 브렌스함 알고리즘보다 전반적으로 성능이 향상됨을 확인할 수 있다. 예를 들어, 89K의 점군 데이터로 구성된 실내 데이터 세트의 경우, 대표 광선을 이용 시 0.2m 해상도에서 25.1K 대표 광선을 생성하기 위해 약 16.6ms가 소요될 수 있다. 결과적으로, 매초당 1.51K의 대표 광선을 생성함을 확인할 수 있다. 각 대표 광선은 평균 2.6개의 점군 데이터를 가지므로, 1m 해상도에서 2.1K 대표 광선을 생성하기 위해 8.6ms의 시간이 소요될 수 있다. 즉, 매 초당 0.24K의 대표 광선을 생성하며, 대표 광선은 43.1개의 점군 데이터를 가짐을 의미할 수 있다. 이에 따라, 점유맵 업데이트를 위해 트래버스(traversing)되는 셀의 개수가 높은 비율로 감소되므로, 시스템의 성능이 향상될 수 있다.
이상에서 설명한 바와 같이, 대표 광선을 기반으로 점유맵을 업데이트함에 따라, 맵 업데이트 프로세스 과정에서 트래버스(traversing)하는 셀 수가 대폭 감소함으로써, 업데이트 시간이 감소, 즉, 업데이터 속도가 향상될 수 있다.
도 9는 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 3D로 확장 시 이용되는 매핑 평면을 도시한 도면이다.
도 9에서, z=d는 3차원에서의 임의 평면(z=d 값을 가지는 X-Y 평면)을 나타내고,
Figure pat00020
는 평면 z=d에 매핑/투영(projection)된 모서리(911)가 가지는 기울기 값을 나타낼 수 있다. 즉, 2차원에서 센서의 원점으로부터 모든 그리드 포인트를 매핑 라인에 매핑/투영(prokjection)시킨 것과 마찬가지로, 3차원에서 센서의 원점으로부터 모든 셀(cell)의 모서리가 매핑 평면(910)에 매핑/투영(prokjection)될 수 있다.
2차원에서 대표 광성을 생성하기 위해 매핑 라인(mapping line)을 이용하였으며, 위의 도 6에서는 2차원에서 대표 광선을 생성하는 개념을 3차원으로 확장하여 설명하였다. 이때, 3차원으로 확장 시 매핑 평면(mapping plane)이 이용될 수 있으며, 2차원 및 3차원 각각에서 대표 광선을 생성하기 위한 개념들은 아래의 표 5와 같을 수 있다.
Figure pat00021
2차원에서 광선의 경유 패턴(traversal pattern)을 그리드 포인트(grid point)가 나누었다면, 3차원에서는 셀의 모서리가 광선의 경유 패턴(traversal pattern)을 구분할 수 있다. 이에 따라, 초기 절두체(seed frustum) 내부에 존재하는 광선들의 경유 패턴(traversal pattern)을 분류하고, 대표 광선을 선출하기 위해 매핑 평면(mapping plane)을 이용함으로써, 대표 광선을 생성하는 자료 구조를 3차원으로 확장할 수 있다.
일례로, 2차원에서 초기 절두체(seed frustum) 내부에 존재하는 모든 그리드 포인트들을 이용하여 하나의 선분을 세그먼트로 나누었으나, 3차원에서는 초기 절두체(seed frustum) 내부에 존재하는 모든 모서리들(901, 911)을 매핑 평면(910)에 투영시켜 영역들로 나눌 수 있다. 여기서, 매핑 평면(910) 상에 나눠진 여러 개의 영역들 각각은 항상 같은 공간을 지나는 3차원 광선들이 매핑될 수 있는 2차원 영역을 나타낼 수 있다.
이에 따라, 매핑 평면(910)은 여러 개의 영역들로 구성될 수 있으며, 매핑 평면(910)에서 하나의 영역은 하나의 경유 패턴(traversal pattern)에 매칭되어 있기 때문에, 대표 광선 생성부(230)는 같은 영역에 매핑되는 광선들을 묶어 대표 광선으로 생성할 수 있다. 여기서, 상기 모서리들(911)을 매핑 평면(910)에 투영시켜 복수개의 영역들로 구분하는 동작은 도 2의 매핑 라인 생성부(220)에서 수행할 수도 있고, 매핑 평면을 이용하여 3차원으로 대표 광선 생성을 확장하기 위한 프로세스를 별도로 처리하는 매핑 평면 처리부(미도시)에서 수행될 수도 있다. 매핑 평면 처리부에서 수행되는 경우, 도 2의 점유맵 업데이트 시스템(200)은 매핑 평면 처리부(미도시)를 더 포함할 수도 있다.
도 10은 본 발명의 일실시예에 있어서, 매핑 평면에 포함된 영역들 중 동일 영역에 속하는 광선들을 묶어 대표 광선으로 생성하는 동작을 설명하기 위해 제공되는 도면이다.
도 10을 참고하면, 광선(1002, 1003)은 매핑 평면(1010)에 포함된 복수의 영역들 중 동일한 영역(1011)에 매핑되고, 광선(1001)은 상기 영역(1011)과 다른 영역(1012)에 매핑될 수 있다. 그러면, 동일 영역(1011)에 매핑된 광선들(1002, 1003)은 같은 공간을 지나는 것이므로, 하나의 대표 광선으로 묶을 수 있다. 이에 따라, 대표 광선 생성부(230)는 상기 영역(1011)에 속하는 광선들(1002, 1003)은 하나의 동일한 대표 광선으로 묶고, 다른 영역(1012)에 매핑된 광선(1001)은 상기 광선들(1002, 1003)에 해당하는 대표 광선과는 다른 대표 광선으로 묶을 수 있다. 예컨대, 대표 광선 생성부(230)는 광선(1001)을 해당 영역(1012)에 매핑된 광선들을 대표하는 대표 광선으로 결정하고, 광선(1003)을 해당 영역(1011)에 매핑된 광선들을 대표하는 대표 광선으로 결정할 수 있다.
도 11은 본 발명의 일실시예에 있어서, 매핑 편면을 이용하여 데표 광선을 결정하는 것과 3개의 3차원 평면에서 매핑 라인을 이용하여 대표 광선을 결정하는 것이 일치함을 나타내는 도면이다.
도 11을 참고하면, 대표 광선을 생성하는 것을 3차원으로 확장하는 것은 3차원 에서 매핑 평면을 이용하여 대표 광선을 결정/생성하는 것과, 3개의 2차원 평면에서 매핑 라인들을 이용하여 대표 광선을 결정/생성하는 두 가지 방법이 존재할 수 있다. 이때, 3개의 2차원 평면(X-Y, Z-X, Z-Y, 1110, 1120, 1130) 각각에서 매핑 라인(1111, 1121, 1131)을 생성하여 대표 광성을 생성하는 것이 매핑 평면을 이용하여 대표 광선을 생성하는 것보다 효율적일 수 있다.
도 11에서, 그리드 포인트(grid point, 1140)는 3개의 2차원 평면(1110, 1120, 1130) 각각의 매핑 라인 모두에서 동일한 세그먼트에 해당하는 그리트 포인트일 수 있다.
도 12는 본 발명의 일실시예에 있어서, 각 차원에서 매핑 라인을 생성하여 대표 광선을 생성하는 것이 더 효율적인 이유를 설명하기 위해 제공되는 도면이다.
3차원에서 하나의 매핑 평면을 만드는 것보다 2차원 3개의 매핑 평면을 만드는 과정이 빠를 수 있다. 그리고, 광선들을 매핑시켜 대표 광선으로 묶는 과정의 계산 시간은 일치할 수 있다.
도 12를 참고하면, 매핑 평면 위의 선(1210, 1220)을 구하고자 하는 경우, 1201을 참고하면, 3차원에서 매핑 평면에 셀(cell)의 모서리를 매핑/투영(projection)시켜 선분(1210)이 계산될 수 있다. 이때, 총 3개의 모서리를 고려할 수 있다. 1202를 참고하면, Z-X 평면에서 매핑 라인의 세그먼트를 구하는 것과 일치하는 과정으로, 총 1개의 그리드 포인트(grid point)을 고려하면 구하고자 하는 선분(1220)을 구할 수 있다. 즉, 매핑 평면에서의 각 영역을 구분하기 위한 선들을 계산하는 과정에서, 1201의 경우(즉, 3차원에서 하나의 매핑 평면을 만드는 경우), 3개의 모서리를 고려해야 하고, 1202의 경우(즉, 2차원 3개의 매핑 평면을 만드는 경우)에는 한 개의 그리드 포인트를 고려하면 되는 차이가 발생하므로, 3개의 하위 평면(X-Y, Z-X, Z-Y)의 매핑 라인을 구해 대표 광선을 생성하는 것이 더 효율적일 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (23)

  1. 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법에 있어서,
    센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계;
    생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계; 및
    상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계
    를 포함하는 점유맵 업데이트 방법.
  2. 제1항에 있어서,
    상기 맵핑 라인을 생성하는 단계는,
    상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하는 단계;
    좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하는 단계; 및
    점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계
    를 포함하는 점유맵 업데이트 방법.
  3. 제2항에 있어서,
    상기 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계는,
    상기 센서 원점을 포함하는 제1 슬라이스 상에서 상기 센서 원점으로부터 상기 셀 박스의 양 끝점을 연결하는 복수의 교차점을 결정하는 단계;
    결정된 교차점 사이에 위치하는 격자점(grid point)을 결정하는 단계; 및
    상기 격자점에 기초하여 초기 절두체(seed frustum)을 복수개로 분할하는 단계
    를 포함하는 점유맵 업데이트 방법.
  4. 제1항에 있어서,
    상기 맵핑 라인을 생성하는 단계는,
    점유맵 상의 센서 원점으로부터 격자점(grid point)을 통과하여 맵핑 라인을 연결하는 매핑 라인 상의 어느 하나의 점(point)에 기초하여 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분하는 단계
    를 포함하는 점유맵 업데이트 방법.
  5. 제1항에 있어서,
    상기 대표 광선(super ray)을 생성하는 단계는,
    상기 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정하는 단계; 및
    센서 원점으로부터 결정된 상기 점군 데이터로 투영된 광선을 상기 대표 광선(super ray)으로 결정하는 단계
    를 포함하는 점유맵 업데이트 방법.
  6. 제5항에 있어서,
    상기 대표 광선(super ray)을 생성하는 단계는,
    상기 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터의 수를 세그먼트 구간 별로 계산하는 단계; 및
    계산된 점군 데이터의 수를 결정된 상기 대표 광선의 가중치(weight)로 설정하는 단계
    를 포함하는 점유맵 업데이트 방법.
  7. 제5항에 있어서,
    동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 단계
    를 더 포함하는 점유맵 업데이트 방법.
  8. 제1항에 있어서,
    상기 맵핑 라인을 생성하는 단계는,
    X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 상기 맵핑 라인을 생성함으로써, 2D 좌표계 기반의 대표 광선을 3D 좌표계 기반으로 확장하는 단계
    를 포함하는 점유맵 업데이트 방법.
  9. 제8항에 있어서,
    상기 대표 광선을 생성하는 단계는,
    상기 2D 좌표계에서 3개의 매핑 평면인 X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 해당하는 매핑 평면 별로 광선들을 매핑시켜 대표 광선을 생성하는 것
    을 특징으로 하는 점유맵 업데이트 방법.
  10. 제1항에 있어서,
    상기 대표 광선을 생성하는 단계는,
    2차원 좌표계에서 초기 절두체(seed frustum) 내부에 존재하는 모서리들을 3차원 좌표계의 매핑 평면(mapping plane)에 투영(projection)시킴에 따라 구분된 복수의 영역들을 대상으로, 각 영역에 매핑된 광선들을 묶어서 영역 별로 하나의 대표 광선을 생성하는 것
    을 특징으로 하는 점유맵 업데이트 방법.
  11. 제1항에 있어서,
    상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traverse)하는 것
    을 특징으로 하는 점유맵 업데이트 방법.
  12. 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 시스템에 있어서,
    센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 맵핑 라인 생성부;
    생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 대표 광선 생성부; 및
    상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 맵 업데이트부
    를 포함하는 점유맵 업데이트 시스템.
  13. 제12항에 있어서,
    상기 맵핑 라인 생성부는,
    상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하고, 좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하고, 점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  14. 제13항에 있어서,
    상기 맵핑 라인 생성부는,
    상기 센서 원점을 포함하는 제1 슬라이스 상에서 상기 센서 원점으로부터 상기 맵핑 라인의 양 끝점을 연결하는 복수의 교차점을 결정하고, 결정된 교차점 사이에 위치하는 격자점(grid point)을 결정하고, 상기 격자점에 기초하여 초기 절두체(seed frustum)을 복수개로 분할하는 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  15. 제12항에 있어서,
    상기 맵핑 라인 생성부는,
    점유맵 상의 센서 원점으로부터 격자점(grid point)을 통과하여 맵핑 라인을 연결하는 매핑 라인 상의 어느 하나의 점(point)에 기초하여 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분하는 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  16. 제12항에 있어서,
    상기 대표 광선 생성부는,
    상기 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정하고, 센서 원점으로부터 결정된 상기 점군 데이터로 투영된 광선을 상기 대표 광선(super ray)으로 결정하는 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  17. 제16항에 있어서,
    상기 대표 광선 생성부는,
    상기 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터의 수를 세그먼트 구간 별로 계산하고, 계산된 점군 데이터의 수를 결정된 상기 대표 광선의 가중치(weight)로 설정하는 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  18. 제16항에 있어서,
    동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 저장부
    를 더 포함하는 점유맵 업데이트 시스템.
  19. 제12항에 있어서,
    상기 맵핑 라인 생성부는,
    X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 상기 맵핑 라인을 생성함으로써, 2D 좌표계 기반의 대표 광선을 3D 좌표계 기반으로 확장하는 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  20. 제19항에 있어서,
    상기 3D 좌표계 기반으로 확장된 대표 광선은, 상기 2D 좌표계에서 3개의 매핑 평면인 X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 해당하는 매핑 평면 별로 광선들을 매핑시켜 생성된 대표 광선인 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  21. 제12항에 있어서,
    상기 대표 광선 생성부는,
    2차원 좌표계에서 초기 절두체(seed frustum) 내부에 존재하는 모서리들을 3차원 좌표계의 매핑 평면(mapping plane)에 투영(projection)시킴에 따라 구분된 복수의 영역들을 대상으로, 각 영역에 매핑된 광선들을 묶어서 영역 별로 하나의 대표 광선을 생성하는 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  22. 제12항에 있어서,
    상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traverse)하는 것
    을 특징으로 하는 점유맵 업데이트 시스템.
  23. 컴퓨터로 구현되는 전자 기기와 결합되어 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법을 실행시키기 위해 기록매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 점유맵을 업데이트하는 방법은,
    센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계;
    생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계; 및
    상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020170122381A 2016-12-20 2017-09-22 대표 광선 기반의 점유맵 업데이트 방법 및 시스템 KR101949609B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/817,421 US11300964B2 (en) 2016-12-20 2017-11-20 Method and system for updating occupancy map for a robotic system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160174452 2016-12-20
KR20160174452 2016-12-20

Publications (2)

Publication Number Publication Date
KR20180071928A true KR20180071928A (ko) 2018-06-28
KR101949609B1 KR101949609B1 (ko) 2019-02-19

Family

ID=62780586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170122381A KR101949609B1 (ko) 2016-12-20 2017-09-22 대표 광선 기반의 점유맵 업데이트 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101949609B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020130750A1 (en) * 2018-12-21 2020-06-25 Samsung Electronics Co., Ltd. Apparatus and method for compressing and decompressing point clouds
WO2020141946A1 (en) * 2019-01-04 2020-07-09 Samsung Electronics Co., Ltd. Lossy compression of point cloud occupancy maps
WO2020145783A1 (ko) * 2019-01-11 2020-07-16 삼성전자주식회사 3차원 데이터 부호화 방법 및 장치 및 3차원 데이터 복호화 방법 및 장치
WO2020145654A1 (en) * 2019-01-09 2020-07-16 Samsung Electronics Co., Ltd. Adaptive selection of occupancy map precision
CN112673635A (zh) * 2018-07-11 2021-04-16 交互数字Vc控股公司 处理点云
CN113290570A (zh) * 2020-07-20 2021-08-24 阿里巴巴集团控股有限公司 夹持装置、数据中心运维机器人及装配机器人
CN113290570B (zh) * 2020-07-20 2024-04-19 阿里巴巴集团控股有限公司 夹持装置、数据中心运维机器人及装配机器人

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07501162A (ja) * 1991-06-28 1995-02-02 リム ホン リップ 3dコンピュータグラフィック用可視性計算の改善
KR20030082307A (ko) * 2002-04-17 2003-10-22 류승택 직각 교차 실린더를 이용한 영상기반 렌더링 방법
US20060025888A1 (en) * 2004-06-25 2006-02-02 Steffen Gutmann Environment map building method, environment map building apparatus and mobile robot apparatus
JP2009163610A (ja) * 2008-01-09 2009-07-23 Canon Inc 画像処理装置及び画像処理方法
KR20090108952A (ko) * 2008-04-14 2009-10-19 제주대학교 산학협력단 궤적 데이터의 인덱싱 방법 및 그 방법을 이용하는 장치
US20110007072A1 (en) * 2009-07-09 2011-01-13 University Of Central Florida Research Foundation, Inc. Systems and methods for three-dimensionally modeling moving objects
KR20110092592A (ko) * 2010-02-09 2011-08-18 삼성전자주식회사 옥트리 기반의 3차원 맵 생성 장치 및 방법
WO2012025288A1 (en) * 2010-08-27 2012-03-01 Telefonica, S.A. Method for generating a model of a flat object from views of the object
US20120169712A1 (en) * 2010-12-30 2012-07-05 Hill Anthony D Display of medical device position information in a volumetric rendering
US20130060540A1 (en) * 2010-02-12 2013-03-07 Eidgenossische Tehnische Hochschule Zurich Systems and methods that generate height map models for efficient three dimensional reconstruction from depth information
JP2014195868A (ja) * 2010-05-20 2014-10-16 アイロボット コーポレイション 移動式ロボットを作動させて人について行くようにする方法
KR20160002204A (ko) * 2014-06-30 2016-01-07 삼성전자주식회사 레이 트레이싱 처리 장치 및 방법
JP2016153795A (ja) * 2008-11-25 2016-08-25 テトラビュー, インコーポレイテッド 高解像度三次元撮像のシステムおよび方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07501162A (ja) * 1991-06-28 1995-02-02 リム ホン リップ 3dコンピュータグラフィック用可視性計算の改善
KR20030082307A (ko) * 2002-04-17 2003-10-22 류승택 직각 교차 실린더를 이용한 영상기반 렌더링 방법
US20060025888A1 (en) * 2004-06-25 2006-02-02 Steffen Gutmann Environment map building method, environment map building apparatus and mobile robot apparatus
JP2009163610A (ja) * 2008-01-09 2009-07-23 Canon Inc 画像処理装置及び画像処理方法
KR20090108952A (ko) * 2008-04-14 2009-10-19 제주대학교 산학협력단 궤적 데이터의 인덱싱 방법 및 그 방법을 이용하는 장치
JP2016153795A (ja) * 2008-11-25 2016-08-25 テトラビュー, インコーポレイテッド 高解像度三次元撮像のシステムおよび方法
US20110007072A1 (en) * 2009-07-09 2011-01-13 University Of Central Florida Research Foundation, Inc. Systems and methods for three-dimensionally modeling moving objects
KR20110092592A (ko) * 2010-02-09 2011-08-18 삼성전자주식회사 옥트리 기반의 3차원 맵 생성 장치 및 방법
US20130060540A1 (en) * 2010-02-12 2013-03-07 Eidgenossische Tehnische Hochschule Zurich Systems and methods that generate height map models for efficient three dimensional reconstruction from depth information
JP2014195868A (ja) * 2010-05-20 2014-10-16 アイロボット コーポレイション 移動式ロボットを作動させて人について行くようにする方法
US20130208098A1 (en) * 2010-08-27 2013-08-15 Telefonica, S.A. Method for generating a model of a flat object from views of the object
WO2012025288A1 (en) * 2010-08-27 2012-03-01 Telefonica, S.A. Method for generating a model of a flat object from views of the object
US20120169712A1 (en) * 2010-12-30 2012-07-05 Hill Anthony D Display of medical device position information in a volumetric rendering
KR20160002204A (ko) * 2014-06-30 2016-01-07 삼성전자주식회사 레이 트레이싱 처리 장치 및 방법

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
[1] Kai M Wurm, Armin Hornung, Maren Bennewitz, Cyrill Stachniss, and Wolfram Burgard, "Octomap: A probabilistic, flexible, and compact 3d map representation for robotic systems", in Proc. of the ICRA 2010 workshop on best practice in 3D perception and modeling for mobile manipulation, 2010, vol. 2.
[2] H Moravec, "Robot spatial perceptionby stereoscopic vision and 3d evidence grids", Perception, (September), 1996.
[3] Alberto Elfes, "Using occupancy grids for mobile robot perception and navigation", Computer, vol. 22, no.6, pp. 46-57, 1989.
[4] Hans P Moravec and Alberto Elfes, "High resolution maps from wide angle sonar", in Robotics and Automation. Proceedings. 1985 IEEE International Conference on. IEEE, 1985, vol. 2, pp. 116-121.
[5] Kai M Wurm, Armin Hornung, Maren Bennewitz, Cyrill Stachniss, and Wolfram Burgard, "Octomap: A probabilistic, flexible, and compact 3d map representation for robotic systems", in Proc. of the ICRA 2010 workshop on best practice in 3D perception and modeling for mobile manipulation, 2010, vol. 2.
Armin H., et al. "OctoMap An Efficient Probabilistic 3D Mapping Framework Based on Octrees", Autonomous Robots (2013)* *
Florian S., et al. "Person Tracking in Three-Dimensional Laser Range Data with Explicit Occlusion Adaption", 2011 IEEE International Conference on Robotics and Automation(2011)* *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112673635A (zh) * 2018-07-11 2021-04-16 交互数字Vc控股公司 处理点云
WO2020130750A1 (en) * 2018-12-21 2020-06-25 Samsung Electronics Co., Ltd. Apparatus and method for compressing and decompressing point clouds
US11039115B2 (en) 2018-12-21 2021-06-15 Samsung Electronics Co., Ltd. Low complexity color smoothing of reconstructed point clouds
WO2020141946A1 (en) * 2019-01-04 2020-07-09 Samsung Electronics Co., Ltd. Lossy compression of point cloud occupancy maps
US11288843B2 (en) 2019-01-04 2022-03-29 Samsung Electronics Co., Ltd. Lossy compression of point cloud occupancy maps
WO2020145654A1 (en) * 2019-01-09 2020-07-16 Samsung Electronics Co., Ltd. Adaptive selection of occupancy map precision
US11259048B2 (en) 2019-01-09 2022-02-22 Samsung Electronics Co., Ltd. Adaptive selection of occupancy map precision
WO2020145783A1 (ko) * 2019-01-11 2020-07-16 삼성전자주식회사 3차원 데이터 부호화 방법 및 장치 및 3차원 데이터 복호화 방법 및 장치
CN113290570A (zh) * 2020-07-20 2021-08-24 阿里巴巴集团控股有限公司 夹持装置、数据中心运维机器人及装配机器人
CN113290570B (zh) * 2020-07-20 2024-04-19 阿里巴巴集团控股有限公司 夹持装置、数据中心运维机器人及装配机器人

Also Published As

Publication number Publication date
KR101949609B1 (ko) 2019-02-19

Similar Documents

Publication Publication Date Title
US11300964B2 (en) Method and system for updating occupancy map for a robotic system
KR101949609B1 (ko) 대표 광선 기반의 점유맵 업데이트 방법 및 시스템
CN112859859B (zh) 一种基于三维障碍物体素对象映射的动态栅格地图更新方法
US7499053B2 (en) Real-time precision ray tracing
CN108537876B (zh) 三维重建方法、装置、设备及存储介质
JP6598090B2 (ja) 記憶媒体、ロボット動作を計画する方法、ロボット動作を計画するハードウェア、及びロボット
EP3008702B1 (en) Scalable volumetric 3d reconstruction
Payeur et al. Probabilistic octree modeling of a 3D dynamic environment
CN107677279A (zh) 一种定位建图的方法及系统
US20210358209A1 (en) Method and device for determining plurality of layers of bounding boxes, collision detection method and device, and motion control method and device
Pan et al. Real-time collision detection and distance computation on point cloud sensor data
KR20220066325A (ko) 이동 로봇용 장애물 정보 감지 방법, 장치
KR102624587B1 (ko) 작업 및 움직임 계획을 위한 의미론적 정보의 압축
CN108984741A (zh) 一种地图生成方法及装置、机器人和计算机可读存储介质
CN111009034B (zh) 一种三维模型单体化方法、系统、存储介质及设备
Wijaya et al. Research study of occupancy grid map mapping method on Hector SLAM technique
Khan et al. Adaptive rectangular cuboids for 3D mapping
Chen et al. A probabilistic, variable-resolution and effective quadtree representation for mapping of large environments
JP2915363B2 (ja) 空間探索システム
CN101297325A (zh) 用于降低计算次数的区间算法在射线跟踪问题中的应用
Kwon et al. Super ray based updates for occupancy maps
CN117193278A (zh) 动态沿边路径生成的方法、装置、计算机设备和存储介质
CN111076724B (zh) 三维激光定位方法及系统
CN111376249B (zh) 移动设备定位系统、方法、装置及移动设备
CN117058358B (zh) 一种场景边界检测方法和移动平台

Legal Events

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