KR101949609B1 - Method and system for updating occupancy map based on super ray - Google Patents

Method and system for updating occupancy map based on super ray Download PDF

Info

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

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)을 생성하는 단계, 및 상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계를 포함할 수 있다.A representative ray based occupancy map updating method and system are disclosed. A method of updating an occupancy map based on a grid and an octree, the method comprising: generating a mapping line based on point clouds data obtained from a sensor; Identifying a cell traversing the same cell for a plurality of cells constituting the occupancy map based on the mapping line to generate a super ray; and generating a plurality of Updating the occupancy map by updating the cell through which the representative ray corresponding to some of the rays associated with the cells passes.

Description

대표 광선 기반의 점유맵 업데이트 방법 및 시스템{METHOD AND SYSTEM FOR UPDATING OCCUPANCY MAP BASED ON SUPER RAY}[0001] METHOD AND SYSTEM FOR UPDATING OCCUPANCY MAP BASED ON SUPER RAY [0002]

본 발명의 실시예들은 옥트리(octree)와 같은 점유맵(occupancy map) 표현으로 점군 데이터(point clouds)를 효율적으로 업데이트하는 기술에 관한 것으로서, 더욱 상세하게는 에지(edge) 또는 그리드(grid) 포인트가 맵 업데이트의 액세스 패턴을 분기하는 특성에 기초하는 맵핑 라인(mapping line)을 이용하여 점유맵을 업데이트하는 기술에 관한 것이다.Embodiments of the present invention relate to techniques for efficiently updating point clouds with an occupancy map representation such as an octree and more particularly to techniques for updating point clouds with an edge or grid point Relates to a technique for updating an occupancy map using a mapping line based on a property of branching an access pattern of a map update.

많은 로보틱 시스템은 그들의 환경을 이해하기 위해 다양한 센서 데이터를 사용한다. 점군 데이터(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) 맵의 경우, 대규모 외부 환경을 처리하기 위해 거대한 크기의 메모리를 요구하며, 정확한 맵 표현을 위해서는 고해상도를 요구한다.Many robotic systems use a variety of sensor data to understand their environment. Point clouds are known to be effective sensor data representing the environment around a robot and are easily captured in recent consumer sensor depth sensors (eg, Kinect and Xtion). Point cloud data is represented by a large number of points representing geometric information in a high resolution environment, but with varying levels of sensor noise. In application programs such as path planning and SLAM, it is difficult to directly use the point cloud data because of the amount of generated data itself and the amount of noise. In order to solve the problems caused by the noise and the amount of data itself, a technique of representing an occupancy map based on an octree or a grid has been proposed, and the following non-patent documents [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. In order to take into account the uncertainty of the point group, various occupations such as octree and grid have been proposed in [1] , [2] H Moravec, "Robot spatial perceptionby stereoscopic vision and 3d evidence grids" A method of expressing point cloud data with a map representation is described. In the case of a grid map, a huge amount of memory is required to handle a large external environment, and a high resolution is required for accurate map representation.

최근 응용 프로그램은 더 높은 성능을 얻기 위한 맵 표현을 사용한다. 예를 들어, 경로 계획 알고리즘은 크고 불확실한 점군 데이터에 액세스하는 대신에, 충돌없는 경로를 효율적으로 찾기 위해 각 셀(cell)에서 자유 상태(free states) 또는 점유 상태(occupancy states)를 나타내는 점유맵을 사용한다.Recent applications use map representations to achieve higher performance. For example, instead of accessing large and uncertain point cloud data, the path planning algorithm may use an occupancy map representing free states or occupancy states in each cell to efficiently locate the non-collision path use.

그러나, 점군 데이터를 벗어난 점유맵을 구축하는 데는 상당한 계산 오버 헤드가 발생하며, 특히 높은 정밀도를 얻기 위해 맵을 고해상도로 사용하면 맵을 트래버스(traversing)하고 업데이트하는 데 많은 시간이 걸린다. 그리고, 맵의 해상도를 낮추면, 성능은 높아지지만 정확도는 낮아져서 모션(motion) 계획과 같은 다양한 로보틱 작업에 심각한 문제가 발생한다.However, building an occupancy map outside of the point cloud data takes considerable computational overhead, especially when using the map at high resolution to get high precision, it takes a lot of time to traverse and update the map. And, lowering the resolution of the map increases performance, but the accuracy is lowered, causing serious problems with various robotic tasks such as motion planning.

따라서, 맵의 정확성을 손상시키지 않으면서도 높은 성능을 달성하기 위한 점군 데이터를 표현하는 점유맵 업데이트 기술이 요구된다. 한국공개특허 제 10-2011-0092592호는 옥트리와 그리드 기반의 3차원 맵 생성 장치 및 방법에 관한 것으로서, 3차원 위치 정보를 가지는 다수의 포인트들을 검출하고, 검출된 다수의 포인트들을 포함하는 공간을 옥트리와 그리드 기반의 점유맵로 표현함으로써 3차원 맵을 생성하는 기술을 제시하고 있다.Therefore, there is a demand for an occupancy map updating technique for expressing point cloud data for achieving high performance without deteriorating the accuracy of the map. Korean Patent Laid-Open Publication No. 10-2011-0092592 relates to an apparatus and method for generating a three-dimensional map based on an octree and a grid, which detects a plurality of points having three-dimensional position information and detects a space including a plurality of detected points This paper presents a technique for generating a three-dimensional map by representing an octree and a grid-based occupancy map.

[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. [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.[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.[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.[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.[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)하는 점군 데이터들을 함께 업데이트 처리하는 기술에 관한 것이다.SUMMARY OF THE INVENTION The present invention is directed to a technique for updating an occupancy map based on a super ray for a set of point cloud data. That is, the present invention relates to a technique of updating together point cloud data that traverses the same cell set as the representative ray by updating the point cloud data corresponding to the representative ray of the map.

그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법에 있어서, 센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계, 생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계, 및 상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계를 포함할 수 있다.A method of updating an occupancy map based on a grid and an octree, the method comprising: generating a mapping line based on point clouds data obtained from a sensor; Identifying a cell traversing the same cell for a plurality of cells constituting the occupancy map based on the mapping line to generate a super ray; and generating a plurality of Updating the occupancy map by updating the cell through which the representative ray corresponding to some of the rays associated with the cells passes.

일측면에 따르면, 상기 맵핑 라인을 생성하는 단계는, 상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하는 단계, 좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하는 단계, 및 점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계를 포함할 수 있다.According to an aspect of the present invention, the step of generating the mapping line may include a step of converting the coordinate system of the point cloud data into a world coordinate system corresponding to the occupancy map, Generating a virtual cell box including all the point cloud data corresponding to any one of a plurality of cells in the occupied map, and generating a virtual cell box including overlapping data between the cell box and the slice associated with the cell box based on the sensor origin on the occupied map. and generating an overlapping line segment as the mapping line.

다른 측면에 따르면, 상기 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계는, 상기 센서 원점을 포함하는 제1 슬라이스 상에서 상기 센서 원점으로부터 상기 셀 박스의 양 끝점을 연결하는 복수의 교차점을 결정하는 단계, 결정된 교차점 사이에 위치하는 격자점(grid point)을 결정하는 단계, 및 상기 격자점에 기초하여 초기 절두체(seed frustum)을 복수개로 분할하는 단계를 포함할 수 있다.According to another aspect, the step of generating the overlapping line segment with the mapping line includes determining a plurality of intersection points connecting the both end points of the cell box from the sensor origin on a first slice including the sensor origin Determining a grid point located between the determined intersection points, and dividing the initial frustum into a plurality of seed frustums based on the lattice points.

또 다른 측면에 따르면, 상기 맵핑 라인을 생성하는 단계는, 점유맵 상의 센서 원점으로부터 격자점(grid point)을 통과하여 맵핑 라인을 연결하는 매핑 라인 상의 어느 하나의 점(point)에 기초하여 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분하는 단계를 포함할 수 있다.According to another aspect, the step of generating the mapping line may include generating a mapping line based on a point on the mapping line connecting the mapping line through the grid point from the sensor origin on the occupied map, May be divided into a plurality of segment segments.

또 다른 측면에 따르면, 상기 대표 광선(super ray)을 생성하는 단계는, 상기 맵핑 라인을 구분하는 복수의 세그먼트 구간들 사이에 위치하는 점군 데이터들을 대상으로 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정하는 단계, 및 센서 원점으로부터 결정된 상기 점군 데이터로 투영된 광선을 상기 대표 광선(super ray)으로 결정하는 단계를 포함할 수 있다.According to another aspect of the present invention, the step of generating the super ray includes: determining one of the point cloud data for each segment segment with respect to the point cloud data located between the plurality of segment segments that define the mapping line; And determining the ray of light projected with the point cloud data determined from the sensor origin as the super ray.

또 다른 측면에 따르면, 상기 대표 광선(super ray)을 생성하는 단계는, 상기 복수의 세그먼트 구간 각각에 위치하는 점군 데이터의 수를 세그먼트 구간 별로 계산하는 단계, 및 계산된 점군 데이터의 수를 결정된 상기 대표 광선의 가중치(weight)로 설정하는 단계를 포함할 수 있다.According to another aspect of the present invention, the step of generating the super ray includes the steps of: calculating, for each segment segment, the number of point cloud data located in each of the plurality of segment segments; To the weight of the representative light beam.

또 다른 측면에 따르면, 동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 단계를 더 포함할 수 있다.According to another aspect, the method may further include storing the point cloud data corresponding to the representative ray instead of the plurality of point cloud data corresponding to the same segment period for updating the occupancy map.

또 다른 측면에 따르면, 상기 맵핑 라인을 생성하는 단계는, X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 상기 맵핑 라인을 생성함으로써, 2D 좌표계 기반의 대표 광선을 3D 좌표계 기반으로 확장하는 단계를 포함할 수 있다.According to another aspect, generating the mapping line includes extending the 2D coordinate-based representative ray based on the 3D coordinate system by generating the mapping line for each of the XY plane, the YZ plane, and the ZX plane can do.

또 다른 측면에 따르면, 상기 대표 광선을 생성하는 단계는, 상기 2D 좌표계에서 3개의 매핑 평면인 X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 해당하는 매핑 평면 별로 광선들을 매핑시켜 대표 광선을 생성할 수 있다.According to another aspect, the step of generating the representative ray may generate a representative ray by mapping rays by mapping planes corresponding to the XY plane, the YZ plane, and the ZX plane, which are three mapping planes in the 2D coordinate system have.

또 다른 측면에 따르면, 상기 대표 광선을 생성하는 단계는, 2차원 좌표계에서 초기 절두체(seed frustum) 내부에 존재하는 모서리들을 3차원 좌표계의 매핑 평면(mapping plane)에 투영(projection)시킴에 따라 구분된 복수의 영역들을 대상으로, 각 영역에 매핑된 광선들을 묶어서 영역 별로 하나의 대표 광선을 생성할 수 있다.According to another aspect of the present invention, the step of generating the representative light ray includes the steps of projecting the edges existing in the initial frustum in the two-dimensional coordinate system to a mapping plane of the three- A plurality of representative regions can be generated for each region by grouping the rays mapped to the regions.

또 다른 측면에 따르면, 상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traverse)할 수 있다.According to another aspect, the rays corresponding to each of the point cloud data belonging to the segment region corresponding to the representative ray can traverse the same cells on the occupation map.

그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 시스템에 있어서, 센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 맵핑 라인 생성부, 생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 대표 광선 생성부, 및 상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 맵 업데이트부를 포함할 수 있다.A system for updating an occupancy map based on a grid and an octree, the system comprising: a mapping line generation unit for generating a mapping line based on point clouds data acquired from a sensor; A representative ray generator for generating a super ray by identifying a cell traversing the same cell for a plurality of cells constituting the occupancy map based on the generated mapping line, And a map updater that updates the occupancy map by updating a cell through which the representative ray corresponding to a part of rays associated with the plurality of cells constituting the map passes.

일측면에 따르면, 상기 맵핑 라인 생성부는, 상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하고, 좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하고, 점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성할 수 있다.According to an aspect of the present invention, the mapping line generator converts the coordinate system of the point cloud data to a world coordinate system corresponding to the occupancy map, and converts the coordinate system of the plurality of cells constituting the occupancy map, And generates a line segment overlapping between the cell box and the slice associated with the cell box based on the sensor origin on the occupation map, Can be generated as the mapping line.

다른 측면에 따르면, 상기 맵핑 라인 생성부는, 상기 센서 원점을 포함하는 제1 슬라이스 상에서 상기 센서 원점으로부터 상기 셀 박스의 양 끝점을 연결하는 복수의 교차점을 결정하고, 결정된 교차점 사이에 위치하는 격자점(grid point)을 결정하고, 상기 격자점에 기초하여 초기 절두체(seed frustum)을 복수개로 분할할 수 있다.According to another aspect of the present invention, the mapping line generator determines a plurality of intersection points connecting the both end points of the cell box from the sensor origin on a first slice including the sensor origin, grid point, and divide the initial frustum into a plurality of segments based on the grid points.

또 다른 측면에 따르면, 상기 맵핑 라인 생성부는, 점유맵 상의 센서 원점으로부터 격자점(grid point)을 통과하여 맵핑 라인을 연결하는 매핑 라인 상의 어느 하나의 점(point)에 기초하여 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분할 수 있다.According to another aspect of the present invention, the mapping line generation unit generates a mapping line based on a point on a mapping line connecting a mapping line passing through a grid point from a sensor origin on an occupied map, It can be divided into segments.

또 다른 측면에 따르면, 상기 대표 광선 생성부는, 상기 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정하고, 센서 원점으로부터 결정된 상기 점군 데이터로 투영된 광선을 상기 대표 광선(super ray)으로 결정할 수 있다.According to another aspect of the present invention, the representative light generation unit may determine one of the point cloud data for each segment segment with respect to the point cloud data located in each of the plurality of segment segments that define the mapping line, The light beam projected from the data can be determined as the super ray.

또 다른 측면에 따르면, 상기 대표 광선 생성부는, 상기 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터의 수를 세그먼트 구간 별로 계산하고, 계산된 점군 데이터의 수를 결정된 상기 대표 광선의 가중치(weight)로 설정할 수 있다.According to another aspect of the present invention, the representative light generating unit may calculate the number of point cloud data located in each of the plurality of segment intervals, for each segment segment, and calculate the number of the point cloud data calculated based on the determined weight of the representative light ray Can be set.

또 다른 측면에 따르면, 동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 저장부를 더 포함할 수 있다.According to another aspect, the image processing apparatus may further include a storage unit for storing the point cloud data corresponding to the representative ray in place of the plurality of point cloud data corresponding to the same segment period for updating the occupancy map.

또 다른 측면에 따르면, 상기 맵핑 라인 생성부는, X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 상기 맵핑 라인을 생성함으로써, 2D 좌표계 기반의 대표 광선을 3D 좌표계 기반으로 확장할 수 있다.According to another aspect, the mapping line generation unit may extend the 2D coordinate system based on the 3D coordinate system by generating the mapping line for each of the X-Y plane, the Y-Z plane, and the Z-X plane.

또 다른 측면에 따르면, 상기 3D 좌표계 기반으로 확장된 대표 광선은, 상기 2D 좌표계에서 3개의 매핑 평면인 X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 해당하는 매핑 평면 별로 광선들을 매핑시켜 생성된 대표 광선을 나타낼 수 있다.According to another aspect, the representative ray expanded on the basis of the 3D coordinate system may be a representative ray generated by mapping rays according to mapping planes corresponding to XY plane, YZ plane, and ZX plane, which are three mapping planes in the 2D coordinate system, Lt; / RTI >

또 다른 측면에 따르면, 상기 대표 광선 생성부는, 2차원 좌표계에서 초기 절두체(seed frustum) 내부에 존재하는 모서리들을 3차원 좌표계의 매핑 평면(mapping plane)에 투영(projection)시킴에 따라 구분된 복수의 영역들을 대상으로, 각 영역에 매핑된 광선들을 묶어서 영역 별로 하나의 대표 광선을 생성할 수 있다.According to another aspect of the present invention, the representative light generating unit may include a plurality of divided light sources for projecting the corners existing in the initial frustum in a two-dimensional coordinate system to a mapping plane of a three-dimensional coordinate system, A representative ray can be generated for each region by grouping the rays mapped to each region on the regions.

또 다른 측면에 따르면, 상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traverse)할 수 있다.According to another aspect, the rays corresponding to each of the point cloud data belonging to the segment region corresponding to the representative ray can traverse the same cells on the occupation map.

컴퓨터로 구현되는 전자 기기와 결합되어 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법을 실행시키기 위해 기록매체에 저장된 컴퓨터 프로그램에 있어서, 상기 점유맵을 업데이트하는 방법은, 센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계, 생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계, 및 상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계를 포함할 수 있다.A computer program stored on a recording medium for executing a method of updating an occupancy map based on a grid and an octree in combination with a computer implemented electronic device, Includes the steps of generating a mapping line based on point cloud data acquired from a sensor, passing a same cell through a plurality of cells constituting the occupancy map based on the generated mapping line Identifying a traverse cell to generate a super ray; and updating the cell through which the representative ray corresponding to a part of the rays related to the plurality of cells constituting the occupancy map is updated, And updating the occupancy map.

본 발명은 대표 광선(super ray)에 해당하는 점군 데이터를 업데이트하면, 대표 광선과 동일한 셀(cell) 집합을 트래버싱(traversing)하는 점군 데이터들을 함께 업데이트하여 점유맵을 효율적으로 업데이트할 수 있다. 즉, 트래버싱 시간 및 업데이트 시간을 감소시켜 업데이트 시간을 단축시킬 수 있다.The present invention can update the occupancy map efficiently by updating the point cloud data corresponding to the representative ray (super ray) together with updating the point cloud data that traverses the same cell set as the representative ray. That is, the traversing time and the update time can be reduced to shorten the update time.

도 1은 본 발명의 일실시예에 있어서, 서로 다른 종점을 가지는 4가지 다른 광선들의 옥트리 맵 표현을 나타내고 있는 도면이다.
도 2는 본 발명의 일실시예에 있어서, 점유맵 업데이트 시스템의 내부 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 점유맵 업데이트 방법을 도시한 흐름도이다.
도 4는 본 발명의 일실시예에 있어서, 맵핑 라인 생성을 설명하기 위해 제공되는 도면이다.
도 5는 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 설명하기 위해 제공되는 도면이다.
도 6은 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 3D로 확장하는 동작을 설명하기 위해 제공되는 도면이다.
도 7은 본 발명의 일실시예에 있어서, 옥토맵과 그리드맵에서 테스트된 평균 FPS를 도시한 그래프이다.
도 8은 본 발명의 일실시예에 있어서, 옥토맵과 그리드맵에서 테스트된 액세스되는 셀의 수를 도시한 그래프이다.
도 9는 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 3D로 확장 시 이용되는 매핑 평면을 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 매핑 평면에 포함된 영역들 중 동일 영역에 속하는 광선들을 묶어 대표 광선으로 생성하는 동작을 설명하기 위해 제공되는 도면이다.
도 11은 본 발명의 일실시예에 있어서, 매핑 편면을 이용하여 데표 광선을 결정하는 것과 3개의 3차원 평면에서 매핑 라인을 이용하여 대표 광선을 결정하는 것이 일치함을 나타내는 도면이다.
도 12는 본 발명의 일실시예에 있어서, 각 차원에서 매핑 라인을 생성하여 대표 광선을 생성하는 것이 더 효율적인 이유를 설명하기 위해 제공되는 도면이다.
Figure 1 is an illustration of an octree map representation of four different rays having different end points in one embodiment of the present invention.
2 is a block diagram illustrating an internal configuration of an occupancy map updating system in an embodiment of the present invention.
3 is a flowchart illustrating an occupancy map updating method in an embodiment of the present invention.
Figure 4 is a diagram provided to illustrate mapping line generation in one embodiment of the present invention.
Figure 5 is a diagram provided to illustrate the operation of generating a representative ray in one embodiment of the present invention.
FIG. 6 is a diagram provided for explaining an operation of expanding the operation of generating a representative ray in 3D, according to an embodiment of the present invention. FIG.
Figure 7 is a graph illustrating the average FPS tested in an octomap and grid map, in one embodiment of the present invention.
Figure 8 is a graph illustrating the number of cells accessed in an octomap and grid map tested in one embodiment of the present invention.
9 is a diagram showing a mapping plane used in 3D representation of an operation for generating representative rays in one embodiment of the present invention.
10 is a view for explaining an operation of bundling rays belonging to the same area among regions included in a mapping plane to generate a representative ray according to an embodiment of the present invention.
11 is a diagram showing the determination of the dendritic light using the mapping single plane and the determination of the representative ray using the mapping line in three three-dimensional planes in accordance with an embodiment of the present invention.
Figure 12 is a diagram provided to illustrate why it is more efficient to generate a representative ray in each dimension in accordance with one embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 실시예들은 새로운 개념인 대표 광선(super ray)를 기반으로 점유맵을 업데이트하는 기술에 관한 것이다. 특히, 본 실시예들은 그리드(grid) 기반의 점유맵 상에서 점군 데이터를 업데이트함에 있어서, 모든 광선이 지나는 공간(즉, 셀)을 개별적으로 처리하여 점유맵을 업데이트하는 것 대신, 항상 같은 공간을 지나는 광선들의 대표 광선(super ray)을 이용하여 점유맵을 업데이트하는 기술에 관한 것이다. 즉, 점군 데이터를 업데이트하는 점유맵의 공간에 접근하는 수를 줄임으로써, 기존 방식으로 생성된 점유맵의 표현 정확도를 그대로 유지하면서, 대표 광선을 이용하여 업데이트를 수행함으로써 점유맵의 업데이트 속도를 향상하는 기술에 관한 것이다.The embodiments relate to techniques for updating an occupancy map based on a new concept, super ray. Particularly, in updating the point cloud data on a grid-based occupancy map, the embodiments of the present invention are not limited to updating the occupancy map by individually processing spaces (i.e., cells) passing through all the rays, To a technique for updating an occupancy map using a super ray of rays. That is, by reducing the number of accesses to the occupied map space for updating the point cloud data, updating the occupancy map by performing update using the representative ray while maintaining the expression accuracy of the occupancy map generated by the existing method is improved Lt; / RTI >

본 실시예들에서, '대표 광선(super ray)'은 그리드(grid) 기반의 점유맵 상에서 항상 같은 공간(즉, 같은 셀)을 지나는 광선들을 대표하는 광선을 나타낼 수 있다. 즉, 대표 광선은 점유맵 상에서 같은 공간(즉, 같은 셀)을 업데이트하는 점들(pints)을 묶음으로써, 점유맵을 동시에 업데이트하기 위해 이용될 수 있다. 다시 말해, 맵 업데이트 프로세스 중 액세스 되는 셀 세트와 동일한 포인트를 업데이트하기 위해 이용될 수 있다. 예컨대, 대표 광선에 해당하는 점군 데이터를 업데이트하면 점유맵 상에서 대표 광선이 지나가는 셀(즉, 격자 공간)과 동일한 셀을 지나가는 광선들에 해당하는 점군 데이터(즉, 동일한 셀 집합)들이 함께 업데이트할 수 있다.In the present embodiments, the 'super ray' may represent rays that always represent rays passing through the same space (i.e., the same cell) on a grid-based occupancy map. That is, the representative ray may be used to update the occupancy map at the same time, by bundling the points (pints) that update the same space (i.e., the same cell) on the occupancy map. In other words, it can be used to update the same point as the set of cells accessed during the map update process. For example, when the point cloud data corresponding to the representative ray is updated, the point cloud data (i.e., the same cell cluster) corresponding to the rays passing through the same cell as the cell through which the representative ray passes (i.e., the lattice space) have.

본 실시예들에서, '점군 데이터(point clouds)'는 센서나 레이저 레인지 파인더(laser range finder)에 의해 캡쳐 또는 센싱되는 센서 데이터들을 나타낼 수 있으며, 점군 데이터 자체가 점유맵을 표현하기 위해 이용될 수 있다. 이때, 점군 데이터는 매 프레임(frame)마다 센서로부터 획득될 수 있다. 그리고, 센서로부터 '점군 데이터(point clouds)'가 획득되면, 즉, 센서에 의해 점 군 데이터가 리포트(report)되면, 센서 원점과 점군 데이터에 해당하는 격자점(grid point) 사이의 공간이 비워져 있음을 의미할 수 있다. 이에 따라, 센서 원점을 시작으로 센서로부터 리포트되는 점군 데이터에 해당하는 격자점에 광선을 연결하고, 광선을 연결하는 작업을 종점까지 수행하는 맵 탐색을 통해 대표 광선을 생성하고, 대표 광선을 기반으로 점유맵을 업데이트할 수 있다.In the present embodiments, 'point clouds' may represent sensor data captured or sensed by a sensor or laser range finder, and point cloud data itself may be used to represent the occupancy map . At this time, the point cloud data may be acquired from the sensor every frame. When 'point cloud' is obtained from the sensor, that is, when the point group data is reported by the sensor, the space between the sensor origin and the grid point corresponding to the point cloud data is emptied . Accordingly, a representative ray is generated by connecting a ray to a lattice point corresponding to the point cloud data reported from the sensor starting from the sensor origin, and searching the map to the end point of connecting the ray, and based on the representative ray The occupancy map can be updated.

본 실시예들에서, 점유맵 업데이트 시스템은, 컴퓨터로 구현되는 고정형 단말이거나 이동형 단말 등의 전자 기기를 나타낼 수 있다. 예를 들어, 전자 기기는 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등을 포함할 수 있다.In these embodiments, the occupancy map update system may represent a fixed terminal implemented by a computer or an electronic device such as a mobile terminal. For example, the electronic device may include a smart phone, a mobile phone, a navigation device, a computer, a notebook, a terminal for digital broadcasting, a personal digital assistant (PDA), a portable multimedia player (PMP)

본 실시예들에서, '맵핑 라인(mapping line)'은 입력 점, 즉, 센서로부터 획득한 점군 데이터에 기초하여 대표 광선을 구성하기 위해 이용될 수 있다. 예컨대, 2차원 맵을 갱신하기 위해 맵핑 라인이 사용될 수 있으며, 그리드와 옥트리와 같은 3차원 맵으로 확장하여 대표 광선을 구성하기 위해 이용될 수도 있다.In these embodiments, a " mapping line " can be used to construct a representative ray based on the input point, i.e., the point cloud data obtained from the sensor. For example, a mapping line may be used to update a two-dimensional map, and may be used to construct a representative ray by extending it to a three-dimensional map such as a grid and an octree.

본 실시예들에서, '절두체(frustum)'는 입체를 평핸한 두 평면으로 절단할 때, 해당 두 평면 사이의 부분을 나타낼 수 있다. 그리고, 대표 광선이 업데이트하는 점유 확률에 속하는 포인트들의 개수만큼 가중치를 부가하여 업데이트를 수행할 수 있다.In the present embodiments, a 'frustum' can represent a portion between two planes when cutting a solid into two flat planes. In addition, the update can be performed by adding a weight to the number of points belonging to the occupancy probability that the representative ray updates.

본 실시예들에서, '트래버스(traversing)'는 복수의 셀들로 구분되는 점유맵 상에서 특정 광선이 센서 원점으로부터 종점(end point)에 도착할 때까지 어떤 셀을 지나서 종점에 도착하는지를 탐색하는 프로세스를 의미할 수 있다.In these embodiments, " traversing " means a process of searching through a cell and arriving at an end point until a specific ray arrives at the end point from the sensor origin on an occupancy map divided into a plurality of cells can do.

본 실시예들에서, '광선'은 공간에 대한 점유 상태(occupancy state)와 자유 상태(free state)라는 두 종류의 상태 정보를 가질 수 있다. 센서는 센싱된 특정 지점의 일부 객체(object)를 리포트하므로, 광선의 종점은 점유 상태가 될 수 있다. 이때, 광선이 통과하는 다른 공간들은 자유 상태(free state)가 될 수 있다. 이러한, 자유 상태 또는 점유 상태 등의 상태 정보는 모션 계획(motion planning)과 같은 응용 프로그램에서 중요한 정보로 이용될 수 있다. 센서로부터 수집된 상기 정보들을 기반으로 점유맵이 표현될 수 있는 데, 이때, 센서에 의해 수집된 데이터는 다양한 레벨의 노이즈(noise)를 포함할 수 있다. 이러한 노이즈를 고려하기 위해 점유 확률이 이용될 수 있으며, 점유 확률

Figure 112017092663480-pat00001
은 아래의 수학식 1과 같이 표현될 수 있다.In the present embodiments, the 'ray' may have two types of state information: an occupancy state for a space and a free state. Since the sensor reports some objects at a specific point that is sensed, the end point of the ray can be in an occupied state. At this time, the other spaces through which the rays pass can be in a free state. Such state information such as free state or occupancy state can be used as important information in an application program such as motion planning. Occupancy maps may be expressed based on the information collected from the sensors, wherein the data collected by the sensors may include various levels of noise. Occupancy probability can be used to account for such noise, and occupancy probability
Figure 112017092663480-pat00001
Can be expressed as Equation (1) below.

[수학식 1][Equation 1]

Figure 112017092663480-pat00002
Figure 112017092663480-pat00002

수학식 1에서, 점유 확률

Figure 112017092663480-pat00003
은 셀의 점유 상태 n, 초기 시간 1(step 1)부터 현재 시간 t(step t) 동안 센싱된 센서 측정값
Figure 112017092663480-pat00004
및 베이즈 법칙(Bayes rule)에 기초하여 계산될 수 있다. 위의 비특허 문헌 [3] Alberto Elfes , "Using occupancy grids for mobile robot perception and navigation", Computer, vol. 22, no.6, pp. 46-57, 1989.에서는 베이즈 법을 이용하여 점유 확률을 모델링하는 방법을 제시하고 있다.In Equation (1), the occupancy probability
Figure 112017092663480-pat00003
Is the occupied state n of the cell, sensor measured value from the initial time 1 (step 1) to the current time t (step t)
Figure 112017092663480-pat00004
And Bayes rule. ≪ / RTI > [3] Alberto Elfes , " Using occupancy grids for mobile robot perception and navigation ", Computer, vol. 22, no. 6, pp. 46-57, 1989. In this paper, we propose a method of modeling occupancy probability using Bayes' method.

위의 수학식 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와 같이 표현될 수 있다.The above Equation (1) is derived from the above non-patent document [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. Can be expressed as Equation (2) below using the log-odd notation given in Equation (2).

[수학식 2]&Quot; (2) "

Figure 112017092663480-pat00005
Figure 112017092663480-pat00005

수학식 2에서,

Figure 112017092663480-pat00006
은 역 센서 모델을 나타내는 것으로서, 아래의 수학식 3과 같이 정의될 수 있다.In Equation (2)
Figure 112017092663480-pat00006
Represents an inverse sensor model, and can be defined as Equation (3) below.

[수학식 3]&Quot; (3) "

Figure 112017092663480-pat00007
Figure 112017092663480-pat00007

셀이 기정의된 오랜 시간 동안 누적된 점유 확률을 가지는 경우, 셀의 현재 상태와 충돌하는 새로운 입력 데이터는 상태를 즉시 변화시킬 수 없는 오버 컨피던스(over-confidence) 문제는 동적 환경에서 빈번하게 발생할 수 있다. 이때, 최소 상태와 최대 상태의 경계를 기반으로 셀의 점유 확률을 제한하는 클램핑 정책을 사용하여 오버 컨피던스를 해결할 수 있다. 즉, 두 경계 중 하나에 의해 제한되는 셀의 상태는 완전히 자유 롭거나, 높은 점유 확률로 완전히 점유된 것으로 간주될 수 있다.Over-confidence problems in which new input data that conflicts with the current state of a cell can not change state immediately, if the cell has a cumulative occupancy probability over a predefined period of time, can occur frequently in a dynamic environment have. At this time, the overconfidence can be solved by using the clamping policy which limits the occupancy probability of the cell based on the boundary between the minimum state and the maximum state. That is, the state of a cell bounded by one of the two boundaries can be considered completely free, or fully occupied by a high occupancy probability.

도 1은 본 발명의 일실시예에 있어서, 서로 다른 종점을 가지는 4가지 다른 광선들의 옥트리 맵 표현을 나타내고 있는 도면이다.Figure 1 is an illustration of an octree map representation of four different rays having different end points in one embodiment of the present invention.

도 1에 따르면, 4개의 서로 다른 광선들이 옥트리 맵 상에서 동일한 셀들을 가로지르지만, 각 광선이 서로 다른 종점(end point)를 가짐을 확인할 수 있다. 이때, 광선들 각각에 해당하는 점군 데이터를 개별적으로 하나씩 업데이트하면 동일한 셀을 대상으로 트래버스(traversing) 시 중복된 연산이 이루어져 성능저하가 발생할 수 있다. 이에 따라, 동일한 셀들을 지나가는 복수의 광선들(110) 중 어느 하나의 광선을 대표 광선(101)을 생성하여 맵 업데이트를 수행할 수 있으며, 대표 광선을 이용하여 맵을 업데이트함으로써 동일 셀에 대해 중복 계산을 제거하여 맵 업데이트 성능을 향상시킬 수 있다.1, it can be seen that although the four different rays traverse the same cells on the octree map, each ray has a different end point. In this case, if the point cloud data corresponding to each of the rays are updated one by one, the performance may be deteriorated due to redundant operations when traversing the same cell. Accordingly, any one of the plurality of light rays 110 passing through the same cells can be generated as a representative light ray 101 to update the map. By updating the map using the representative light ray, You can improve the performance of map updates by eliminating calculations.

도 2는 본 발명의 일실시예에 있어서, 점유맵 업데이트 시스템의 내부 구성을 도시한 블록도이고, 도 3은 본 발명의 일실시예에 있어서, 점유맵 업데이트 방법을 도시한 흐름도이다.FIG. 2 is a block diagram illustrating an internal configuration of an occupancy map updating system in an embodiment of the present invention, and FIG. 3 is a flowchart illustrating an occupancy map updating method in an embodiment of the present invention.

본 실시예에 따른 점유맵 업데이트 시스템(200)은 센서(210), 맵핑 라인 생성부(220), 대표 광선 생성부(230), 맵 업데이트부(240) 및 저장부(250)를 포함할 수 있다. 센서(210), 맵핑 라인 생성부(220), 대표 광선 생성부(230), 맵 업데이트부(240) 및 저장부(250)는 도 3의 단계들(310 내지 340 단계)을 수행하기 위해 구성될 수 있다. 본 실시예들에서는 균일한 그리드(grid)를 기반으로 점군 데이터에 대한 점유맵을 표현하는 것을 예로써 설명하나, 이는 실시예에 해당되며, 그리드의 크기는 불균일할 수도 있다. 즉, 점유맵을 구성하는 격자 공간(즉, 각 셀들)의 크기가 서로 상이할 수도 있다. 그리고, 맵핑 라인 생성부(220), 대표 광선 생성부(230), 맵 업데이트부(240) 및 저장부(250)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성되는 프로세서에 포함되도록 구성될 수 있다. 예를 들어, 프로세서는 메모리와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The occupancy map updating system 200 according to the present embodiment may include a sensor 210, a mapping line generator 220, a representative light generator 230, a map updater 240 and a storage 250 have. The sensor 210, the mapping line generator 220, the representative light generator 230, the map updater 240 and the storage 250 may be configured to perform the steps 310 through 340 of FIG. . In the present embodiments, an occupation map for point cloud data is represented on the basis of a uniform grid. However, this corresponds to the embodiment, and the size of the grid may be uneven. That is, the sizes of the lattice spaces constituting the occupation map (that is, the respective cells) may be different from each other. The mapping line generation unit 220, the representative light generation unit 230, the map update unit 240, and the storage unit 250 are configured to process basic computer arithmetic, logic, and input / output operations, Lt; / RTI > processor. For example, the processor may be configured to execute instructions received in accordance with program code stored in a recording device, such as a memory.

센서(210)는 센싱하고자 하는 주변 환경을 구성하고 있는 오브젝트들(objects)을 센싱하고, 센싱된 데이터, 즉, 점군 데이터를 점유맵 업데이트 시스템(200)으로 제공할 수 있다. 여기서, 센서(210)는 점유맵 업데이트 시스템(200)에 포함될 수도 있고, 점유맵 업데이트 시스템(200)과는 별도로 구현될 수도 있다. 예컨대, 센서(210)는 근거리 무선통신 모듈 또는 유선 통신 모듈을 통해 센싱된 점군 데이터를 점유맵 업데이트 시스템(200)으로 제공할 수도 있다.The sensor 210 senses objects constituting a surrounding environment to be sensed and provides the sensed data, that is, the point cloud data, to the occupancy map updating system 200. Here, the sensor 210 may be included in the occupancy map updating system 200 or separately from the occupancy map updating system 200. For example, the sensor 210 may provide the occupancy map update system 200 with point cloud data sensed via a near field wireless communication module or a wired communication module.

예를 들어, 센서(210)는 로봇 또는 자율주행 자동차 주변 환경을 센싱할 수 있으며, 센싱된 점군 데이터(point clouds)를 점유맵 생성을 위해 맵핑 라인 생성부(220)로 제공할 수 있다. 이때, 센서(210)는 기정의된 일정시간 동안 센싱된 점군 데이터를 제공할 수 있으며, 매 프레임, 또는 기정의된 매 시간단위마다 일정시간 동안 센싱된 점군 데이터를 맵핑 라인 생성부(220)로 제공할 수 있다.For example, the sensor 210 may sense a robot or an environment surrounding the autonomous vehicle, and may provide point cloud data to the mapping line generator 220 for generating occupancy maps. At this time, the sensor 210 may provide the point cloud data sensed for a predetermined period of time, and may transmit the point cloud data sensed for each frame or every predetermined time unit to the mapping line generator 220 .

310 단계에서, 맵핑 라인 생성부(220)는 센서(210)로부터 획득한 점군 데이터에 기초하여 맵핑 라인을 생성할 수 있다. 이때, 센서(210)로부터 획득한 점군 데이터의 좌표계는 센서 좌표계에서 정의되므로, 점유맵으로의 표현을 위해 상기 좌표계를 세계 좌표계(world coordinate)로 변환할 필요가 있다.In step 310, the mapping line generation unit 220 may generate a mapping line based on the point cloud data acquired from the sensor 210. [ At this time, since the coordinate system of the point cloud data acquired from the sensor 210 is defined in the sensor coordinate system, it is necessary to convert the coordinate system into a world coordinate system for representation as an occupancy map.

311 단계에서, 맵핑 라인 생성부(220)는 센서(210)로부터 획득한 점군 데이터의 좌표계를 세계 좌표계(world coordinate)로 변환할 수 있다. 여기서, 세계 좌표계 상에서 센서의 위치와 방향을 이미 알고 있음을 가정하고, 센서 좌표계에서 세계 좌표계로 점군 데이터의 좌표계를 변환할 수 있다. 그리고, 변환된 세계 좌표계기반의 점군 데이터를 이용하여 점유맵에 대한 업데이트가 처리될 수 있다.In step 311, the mapping line generation unit 220 may convert the coordinate system of the point cloud data acquired from the sensor 210 into a world coordinate system. Here, assuming that the position and direction of the sensor are already known on the world coordinate system, the coordinate system of the point cloud data can be converted from the sensor coordinate system to the world coordinate system. The update of the occupancy map can then be processed using the converted point cloud data based on the world coordinate system.

312 단계에서, 맵핑 라인 생성부(220)는 좌표계가 변환된 점군 데이터들을 대상으로, 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성할 수 있다.In step 312, the mapping line generation unit 220 generates a virtual cell box including all the point cloud data corresponding to any one of the plurality of cells constituting the occupation map, with respect to the point cloud data of which the coordinate system has been converted can do.

313 단계에서, 점유맵 상의 센서 원점에 기초하여 생성된 상기 셀 박스, 그리고 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 맵핑 라인(mapping line)으로 생성할 수 있다. 여기서, 맵핑 라인을 생성하는 자세한 동작은 도 4를 참고하여 후술하기로 한다.In step 313, a mapping line may be created that overlaps the cell box created based on the sensor origin on the occupation map and the slice associated with the cell box. Here, the detailed operation for generating the mapping line will be described later with reference to FIG.

320 단계에서, 맵핑 라인이 생성되면, 대표 광선 생성부(230)는 생성된 맵핑 라인에 기초하여 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과(traverse)하는 셀을 식별하여 대표 광선을 생성할 수 있다.In step 320, when a mapping line is generated, the representative light generating unit 230 identifies a cell that traverses the same cell on a plurality of cells constituting the occupation map based on the generated mapping line, Can be generated.

321 단계에서, 대표 광선 생성부(230)는 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로, 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정할 수 있다.In step 321, the representative ray generating unit 230 may determine any one of the point cloud data for each segment segment with respect to the point cloud data located in each of the plurality of segment segments for identifying the mapping line.

322 단계에서, 대표 광선 생성부(230)는 센서 원점으로부터 상기 결정된 점군 데이터로 투영(또는 영사)된 광선을 대표 광선(super ray)으로 결정할 수 있다. 이때, 대표 광선 생성부(230)는 복수의 세그먼트 구간들에 위치하는 점구 데이터의 수를 세그먼트 구간 별로 계산하고, 계산된 점군 데이터의 수를 상기 대표 광선의 가중치(weight)로 설정할 수 있다. 여기서, 대표 광선을 생성하는 자세한 동작은 도 5에서 후술하기로 한다.In step 322, the representative light generating unit 230 may determine a super ray as a light ray projected (or projected) from the sensor origin point with the determined point cloud data. At this time, the representative light generating unit 230 may calculate the number of the pointing data located in the plurality of segment intervals, for each segment segment, and set the number of the point cloud data to the weight of the representative light. Here, the detailed operation for generating the representative ray will be described later with reference to FIG.

330 단계에서, 저장부(250)는 동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장할 수 있다.In step 330, the storage unit 250 may store the point cloud data corresponding to the representative ray in place of the plurality of point cloud data corresponding to the same segment period, to update the occupancy map.

340 단계에서, 맵 업데이트부(240)는 점유맵을 구성하는 복수의 셀들 중 일부에 해당하는 대표 광선이 통과하는 셀을 업데이트함으로써, 점유맵을 업데이트할 수 있다. 즉, 모든 광선이 통과하는 셀을 업데이트하여 동일 셀에 대해 중복된 업데이트를 수행하는 대신, 복수의 광선들 중 동일한 셀을 통과하는 대표 광선이 지나가는 셀을 업데이트하여 중복 연산을 제거하고, 업데이트 속도를 향상시킬 수 있다.In step 340, the map updating unit 240 can update the occupancy map by updating the cell through which the representative ray corresponding to a part of the plurality of cells constituting the occupancy map passes. That is, instead of updating the cells through which all rays pass, instead of performing redundant updating for the same cell, a cell in which a representative ray passing through the same cell passes among a plurality of rays is updated to remove redundant operations, Can be improved.

도 4는 본 발명의 일실시예에 있어서, 맵핑 라인 생성을 설명하기 위해 제공되는 도면이다.Figure 4 is a diagram provided to illustrate mapping line generation in one embodiment of the present invention.

도 4를 참고하면, 점유맵(410)은 복수의 셀들(즉, 복수의 격자 공간)으로 구분될 수 있다. 도 4에서는 점유맵(410)을 구성하는 격자 공간들 각각이 균일한 크기를 가짐을 가정한다.Referring to FIG. 4, the occupancy map 410 may be divided into a plurality of cells (i.e., a plurality of lattice spaces). 4, it is assumed that each of the lattice spaces constituting the occupation map 410 has a uniform size.

맵핑 라인 생성부(220)는 점유맵(410)을 구성하는 복수의 셀들 중 어느 하나의 셀(예컨대, 셀 C)를 대상으로, 센서 원점(401)부터 셀 C에 속하는 모든 점군 데이터들을 포함하는 가상의 셀 박스(402)를 생성할 수 있다. 그리고, 맵핑 라인 생성부(220)는 센서 원점(401)부터 셀 박스(420)로의 초기 절두체(seed frustum)을 구성할 수 있다.The mapping line generation unit 220 generates a mapping map including all the point cloud data belonging to the cell C from the sensor origin point 401 to any one of the plurality of cells constituting the occupation map 410 A virtual cell box 402 can be created. The mapping line generation unit 220 may configure an initial frustum from the sensor origin point 401 to the cell box 420.

이때, 맵핑 라인 생성을 위해 프로세싱 방향(412)으로 초기 절두체가 복수개로 분할될 수 있으며, 슬라이스(slice) 단위로 처리될 수 있다. 슬라이스(slice) 단위로 처리하기 위해 x축, y축, 및 z축 중 어느 하나가 선택될 수 있으며, 선택된 축 방향이 프로세싱 방향이 될 수 있다. 도 4에서는 x축 방향을 프로세싱 방향으로하여 맵핑 라인을 생성하는 경우를 예로 들어 설명하나, 이는 실시에 해당되며, y축, 또는 z축 방향이 프로세싱 방향이 될 수도 있다. 도 4에서, 슬라이스는 복수의 셀들을 포함할 수 있다. 예컨대, 슬라이스 1(421)은 4개의 셀들을 포함할 수 있으며, 슬라이스 2(422)는 슬라이스 1에 포함된 셀들과 프로세싱 방향으로 이웃하는 4개의 셀들을 포함할 수 있다. 도 4에서는 점유맵이 4개의 슬라이스드들을 포함하는 경우를 예로서 도시하고 있다.At this time, the initial frustum can be divided into a plurality of pieces in the processing direction 412 for the mapping line generation, and can be processed in units of slices. Either x-axis, y-axis, or z-axis can be selected for processing in slice units, and the selected axis direction can be the processing direction. In FIG. 4, mapping lines are generated by using the x-axis direction as a processing direction. However, this corresponds to the implementation, and the y-axis or z-axis direction may be the processing direction. In Fig. 4, the slice may comprise a plurality of cells. For example, slice 1 421 may include four cells, and slice 2 422 may include cells included in slice 1 and four cells neighboring in the processing direction. FIG. 4 shows an example in which occupancy maps include four slices.

이때, 동일한 대표 광선에 맵핑되는 점군 데이터들을 식별하기 위해 셀 C 및 셀 C를 포함하는 슬라이스(즉, 슬라이스 3, 423) 사이에 오버랩되는 선분(line segment)가 맵핑 라인으로 생성될 수 있다.At this time, in order to identify the point cloud data mapped to the same representative ray, a line segment overlapping between the slice including the cell C and the cell C (i.e., the slice 3 423) may be generated as a mapping line.

일례로, 맵핑 라인 생성부(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)가 초기 맵핑 라인으로 생성될 수 있다. 그리고, 초기 맵핑 라인은 초기 절두체를 분할함으로써 복수의 세그먼트 구간으로 구분될 수 있다. 초기 맵핑 라인은 대표 광선을 나타내는 단일 선분으로 시작하며, 초기 절투체가 복수개로 분할되어 초기 맵핑 라인이 여러 개의 세그먼트 구간들로 구분됨에 따라, 세그먼트 구간들 각각에 해당하는 선분은 다수의 대표 광선들 각각에 대응할 수 있다. For example, the mapping line generation unit 220 generates a mapping line generation unit 220 for generating a plurality of connection lines connecting the both end points 403 and 404 of the cell box 402 from the sensor origin point 401 on the slice 1 4110 including the sensor origin point 401. The intersection points 405 and 406 can be determined. Referring to the occupancy map 420, the mapping line generation unit 220 generates a grid point (g1, 426) located between the determined intersection points 424 and 425 on the slice 1 4110 including the sensor origin point 401 Can be determined. The mapping line generation unit 220 may divide the initial mapping line into a plurality of segment segments by dividing the initial splitting frame into a plurality of segments based on the determined point 426. [ For example, in the occupancy map 410, when connecting the sensor origin 401 and both end points 403 and 404 of the cell box 402, the two line segments 407 and 408 on the slice 3 including the cell C 403 and cell box 402 can be generated as initial mapping lines. The initial mapping line may be divided into a plurality of segment segments by dividing the initial frustum. The initial mapping line starts with a single line segment representing a representative ray. As the initial line segment is divided into a plurality of segments and the initial mapping line is divided into a plurality of segment segments, a segment corresponding to each of the segment segments is divided into a plurality of representative rays Respectively.

예를 들어, 점유맵 420에서, 센서 원점으로부터 격자점(g1, 426)을 지나 초기 맵핑 라인과 만나는 어느 하나의 점(point, 427)을 연결하는 선분이 초기 맵핑 라인을 복수의 세그먼트 구간들로 구분할 수 있다. 즉, 격자점(426)에 기초하는 상기 점(427)을 연결하는 선분은 초기 절두체를 두 개로 분할할 수 있으며, 상기 격자점(426)에 의해 상기 선분에 해당하는 광선이 지나가는 셀이 달라질 수 있다. 점유맵 430을 참고하면, 맵핑 라인 생성부(220)는 초기 맵핑 라인을 복수의 세그먼트 구간으로 구분하는 동작을 슬라이스 2(431)에 대해서도 반복 수행하여 2개의 세그먼트 구간으로 구분된 초기 맵핑 라인을 4개의 세그먼트 구간으로 구분할 수 있다. 예컨대, 점유맵 440을 참고하면, 초기 맵핑 라인은 4개의 세그먼트 구간(441, 442, 443, 444)으로 구분될 수 있다. 이때, 초기 맵핑 라인을 복수개의 세그먼트 구간들(예컨대, 세그먼트 구간 1 내지 세그먼트 구간 4)로 구분하기 위해서는 절두체 내의 격자점(grid point)을 효율적으로 결정하는 것이 중요할 수 있다.For example, in the occupancy map 420, a line segment connecting a point (427) that passes through a grid point (g1, 426) from a sensor origin to an initial mapping line is divided into a plurality of segment intervals . That is, the line segment connecting the point 427 based on the lattice point 426 can divide the initial frustum into two, and the cell through which the ray corresponding to the line segment passes may be changed by the lattice point 426 have. Referring to the occupancy map 430, the mapping line generation unit 220 repeatedly performs an operation of dividing the initial mapping line into a plurality of segment intervals, for the slice 2 431 to obtain an initial mapping line divided into two segments, Segment segments. For example, referring to occupancy map 440, the initial mapping line may be divided into four segments 441, 442, 443, and 444. At this time, it may be important to efficiently determine a grid point in the frustum so as to divide the initial mapping line into a plurality of segment intervals (for example, segment interval 1 to segment interval 4).

예컨대, 점유맵 420을 참고하면, out1은 프로세싱 방향으로부터 해당 슬라이스(즉, 슬라이스 1)에서 먼 쪽 라인을 나타낼 수 있으며, 맵핑 라인 생성부(220)는 해당 슬라이스(즉, 슬라이스 1)와 초기 절두체 간의 교차점(intmax, intmin)에 기초하여 격자점(grid point)을 결정할 수 있다. 즉, 슬라이스 1과 초기 절두체 간의 교차점(424, 425) 사이에 존재하는 격자점(426)을 상기 절두체 내의 격자점으로 결정할 수 있다. 여기서, 센서 원점을 포함하는 첫 번째 슬라이스가 슬라이스 1이고, 셀 C를 포함하는 슬라이스를 마지막 슬라이스로서, N이라고 정의하면, 맵핑 라인 생성부(220)는 슬라이스 1부터 슬라이스 N-1까지 각 슬라이스 상에서 상기 교차점들을 결정하고, 교차점들 사이에 위치하는 격자점을 결정하는 동작을 슬라이스 N-1까지 반복 수행함으로써, 초기 맵핑 라인을 복수개의 세그먼트들로 구분할 수 있다. 예컨대, m개의 격자점이 있음을 가정하면,

Figure 112017092663480-pat00008
와 같이 표현될 수 있다. 이처럼, 격자점은 초기 절두체 또는 현재 절두체를 m+1개의 서브 절두체로 분할하는 점을 나타낼 수 있으며, 결국 초기 맵핑 라인에서 m+1개의 세그먼트가 생성(즉, 구분)될 수 있다. 이처럼, 점유맵의 이산적 특성으로 인해 격자점을 쉽게 결정하고, 값비싼 정렬방법을 사용하지 않고도 상기 격자점을 기반으로 초기 맵핑 라인을 복수개의 세그먼트들로 빠르게 구분할 수 있다. 셀 C와 관련하여 맵핑 라인을 생성하는 의사 코드(pseudo code) 알고리즘은 아래의 표 1과 같을 수 있다.For example, referring to the occupancy map 420, out 1 may represent a line farther from the processing slice (i.e., slice 1) from the processing direction, and the mapping line generation unit 220 may generate a mapping slice The grid point can be determined based on the intersection point (int max , int min ) between frustums. That is, the lattice points 426 existing between the intersections 424 and 425 between the slice 1 and the initial frustum can be determined as lattice points in the frustum. Here, if the first slice including the sensor origin is slice 1 and the slice including cell C is defined as the last slice, N, the mapping line generation unit 220 generates a mapping line on each slice from slice 1 to slice N-1 The initial mapping line can be divided into a plurality of segments by determining the intersections and repeating the operation of determining the lattice points located between the intersections to the slice N-1. For example, assuming that there are m grid points,
Figure 112017092663480-pat00008
Can be expressed as Thus, the lattice point may represent the point at which the initial frustrum or the current frustum is divided into m + 1 subfractors, so that m + 1 segments in the initial mapping line may be generated (i.e., separated). Thus, due to the discrete nature of the occupancy map, the lattice points can be easily determined and the initial mapping line can be quickly segmented into a plurality of segments based on the lattice points without using expensive alignment methods. The pseudo code algorithm for generating a mapping line with respect to cell C may be as shown in Table 1 below.

Figure 112017092663480-pat00009
Figure 112017092663480-pat00009

도 5는 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 설명하기 위해 제공되는 도면이다. Figure 5 is a diagram provided to illustrate the operation of generating a representative ray in one embodiment of the present invention.

도 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에는 맵핑된 점군 데이터가 존재하지 않음에 따라 대표 광선이 없을 수도 있다.Referring to FIG. 5, all the point cloud data 512 corresponding to the cell C 511 acquired from the sensor may be mapped on the occupancy map 510. For example, five point cloud data 512 belonging to the cell C 511 may be represented on the occupancy map 510. At this time, the representative light generating unit 230 may determine a light ray corresponding to any one point group data among the point cloud data corresponding to the plurality of segment segments divided for the mapping line as a representative light ray. For example, referring to the occupancy map 520, the mapping line 521 can be divided into four segments 522, 523, 524, and 525 based on the lattice points of the slice 1 and the lattice points of the slice 2. Then, in the occupancy map 530, the representative light generating unit 230 generates the representative point light from among the point cloud data positioned between the light rays 532 and 533 passing through both end points of the segment 1 522 from the sensor origin 531 The light corresponding to the data can be determined as a representative light ray. For example, a ray corresponding to the first point cloud data 534 (i.e., a ray passing through the first point cloud data from the sensor origin) may be determined as the representative ray 535. In the same manner, the representative light generating unit 230 can determine the representative ray 536 of the segment segment 2 and the representative ray 537 of the segment segment 3. At this time, there may be no representative ray due to the absence of the point cloud data mapped in the segment section 4.

그리고, 대표 광선 생성부(230)는 세그먼트 구간 별로 맵핑된(즉, 할당된) 점군 데이터의 개수를 계산할 수 있다. 예컨대, 세그먼트 구간 1은 2개, 세그먼트 구간 2은 1개, 세그먼트 구간 3은 2개와 같이 맵핑된 점군 데이터의 개수가 계산될 수 있으며, 대표 광선 생성부(230)는 계산된 상기 점군 데이터의 개수를 해당 세그먼트 구간의 대표 광선의 가중치로 설정할 수 있다. 즉, 대표 광선 1(541)의 가중치는 2, 대표 광선 2(542)의 가중치는 1, 대표 광선 3(543)의 가중치는 2로 설정될 수 있다. 그러면, 맵 업데이트부(240)는 점유맵 업데이트 시 대표 광선 별로 설정된 가중치, 즉, 점유 확률에 묶여진 점군 데이터의 개수만큼 가중치를 주어 점유맵에 대한 업데이트를 수행할 수 있다. 그리고, 대표 광선 1(541)이 지나가는 셀과 해당 세그먼트에 속하는 적어도 하나의 광선이 지나가는 셀은 동일할 수 있다. 즉, 각 세그먼트 구간 별 대표 광선과 동일 세그먼트에 속하는 점구 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traversing)할 수 있다. 이에 따라, 점유 맵 상의 모든 광선이 아닌 대표 광선이 지나가는 셀을 업데이트함으로써 나머지 광선이 지나감에 따라 중복되는 셀들을 중복하여 업데이트하지 않아도 되어 맵 업데이트 속도를 증가시킬 수 있다. The representative ray generating unit 230 may calculate the number of point group data mapped (i.e., assigned) for each segment period. For example, the number of mapped point group data can be calculated such that two segment segment 1, one segment segment 2, and two segment segments 3, and the representative light generation unit 230 calculates the number of point grid data Can be set as the weight of the representative ray of the segment segment. That is, the weight of the representative ray 1 541 may be set to 2, the weight of the representative ray 2 542 may be set to 1, and the weight of the representative ray 3 543 may be set to 2. Then, the map updating unit 240 may update the occupancy map by assigning weights corresponding to the weight values set for each representative ray in updating the occupancy map, that is, the number of the point cloud data bundled in occupancy probabilities. The cell through which the representative ray 1 541 passes and the cell through which at least one ray belonging to the segment pass may be the same. That is, the rays corresponding to the representative light rays belonging to the same segment as the representative light rays per each segment segment can traverse the same cells on the occupation map. Accordingly, by updating the cell through which the representative ray passes, not all rays on the occupied map, it is possible to increase the map update speed by avoiding duplication of overlapping cells as the remaining rays pass.

도 6은 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 3D로 확장하는 동작을 설명하기 위해 제공되는 도면이다.FIG. 6 is a diagram provided for explaining an operation of expanding the operation of generating a representative ray in 3D, according to an embodiment of the present invention. FIG.

3D로 확장하기 위해서는 2D 평면의 맵핑 라인을 3개의 다른 2D 평면에서 생성하여 3D로 확장할 수 있다. 예컨대, 맵핑 라인 생성부(220)는 2D 평면의 맵핑 라인을 X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 생성할 수 있으며, 상기 맵핑 라인 생성을 통해 2D 좌표계 기반의 대표 광선이 3D 좌표계로 확장될 수 있다.To extend to 3D, the mapping lines of 2D planes can be created in three different 2D planes and expanded to 3D. For example, the mapping line generation unit 220 may generate a mapping line of the 2D plane for each of the XY plane, the YZ plane, and the ZX plane, and the representative ray based on the 2D coordinate system may be extended to the 3D coordinate system .

먼저, 3D 표현을 위해, 점군 데이터를 포함하는 경계 체적이 계산될 수 있으며, 2D와 마찬가지로 체적을 트래버스(traversing)하는 초기 절두체가 구성될 수 있다. 이후, 절두체를 서브 절두체로 분할하고, 분할된 각 서브 절두체와 동일한 셀 집합을 액세스하는 대표 광선이 결정될 수 있다.First, for the 3D representation, the bounding volume containing the point cloud data can be calculated, and an initial frustum that traverses the volume as in 2D can be constructed. Then, a representative ray that divides the frustum into sub-frustums and accesses the same set of cells as each divided sub-frustrum can be determined.

도 5를 참고하면, 센서 원점(601)으로부터 두 개의 광선(602, 603)이 각 평면의 격자점(604)을 기반으로 분할되므로, 두 개의 광선이 서로 다른 셀에 액세스함을 확인할 수 있다. 즉, 두 광선의 액세스 패턴은 Y-Z 평면(610)에 투영된 격자점과 다를 수 있다. 이처럼, Y-Z 평면(610), Z-X 평면(620) 및 X-Y 평면(630) 각각에 격자점을 투영하고, 해당 격자점이 2D 평면에서 격자점으로 분할되어 있는 것인지 확인함으로써, 3개의 서로 다른 평면에 대한 맵핑 라인을 생성함으로써, 맵핑 라인 생성을 3D로 확장할 수 있다. 이처럼, 맵핑 라인이 3D에서 생성되면, 각 평면의 맵핑 라인에 센서로부터 획득한 특정 셀에 속하는 모든 점군 데이터들을 맵핑(또는 투영)하고, 세 개의 맵핑 라인 모두에서 동일한 세그먼트에 해당하는 점이 결정되면, 해당 점은 동일한 액세스 패턴을 가지는 대표 광선으로 생성될 수 있다. 3D에서의 셀에 대한 대표 광선을 생성하는 의사 코드 알고리즘은 아래의 표 2와 같을 수 있다.Referring to FIG. 5, it can be seen that two rays 602 and 603 from the sensor origin 601 are divided based on the lattice points 604 in each plane, so that the two rays access different cells. That is, the access pattern of the two rays may be different from the grid point projected onto the Y-Z plane 610. [ Thus, by projecting a grid point on each of the YZ plane 610, the ZX plane 620 and the XY plane 630 and verifying that the corresponding lattice point is divided into lattice points in the 2D plane, By creating a mapping line, mapping line creation can be extended to 3D. When a mapping line is generated in 3D, all point group data belonging to a specific cell acquired from the sensor are mapped (or projected) to the mapping lines of the respective planes, and if points corresponding to the same segment in all three mapping lines are determined, The point may be generated as a representative ray having the same access pattern. A pseudo-code algorithm that generates a representative ray for a cell in 3D may be as shown in Table 2 below.

Figure 112017092663480-pat00010
Figure 112017092663480-pat00010

아래의 표 3은 대표 광선 및 각 대표 광선 별 가중치를 나타낼 수 있다.Table 3 below shows representative weights and weights for each representative beam.

Figure 112017092663480-pat00011
Figure 112017092663480-pat00011

표 3에 따르면, 해상도 0.6m의 경우, 실내 점군 데이터들을 대상으로 평균 17.5개의 점군 데이터들을 그룹화하고, 실외 점군 데이터들을 대상으로, 평균 3.4개의 점군 데이터들이 그룹화됨을 확인할 수 있다. 즉, 실내에서는 평균 17.5개의 점군 데이터들에 해당하는 광선들이 동일한 셀을 경유하고, 실외에서는 평균 3.4개의 점군 데이터들에 해당하는 광선들이 동일한 셀을 경유함을 확인할 수 있다. 그룹화 비율이 높을수록 실내 및 실외 데이터 세트에서 맵 업데이트 중에 트래버스(traversing)하는 셀의 수를 상기 비율이 작을 때보다 상대적으로 많이 감소시킬 수 있다. According to Table 3, in the case of the resolution 0.6 m, it is confirmed that the average point group data of the indoor point group data is grouped by 17.5, and the average point group data of the outdoor point group data is grouped by 3.4. That is, it can be seen that the rays corresponding to the average of 17.5 point cloud data pass through the same cell in the room, and the rays corresponding to 3.4 point cloud data on the average pass through the same cell outdoors. The higher the grouping rate, the more the number of cells traversing during the update of the maps in the indoor and outdoor data sets can be reduced relatively than when the ratio is smaller.

대표 광선은 하나의 셀 내에서도 여러 점군 데이터에 대해 생성되므로, 대표 광선의 가중치

Figure 112017092663480-pat00012
를 고려하여 수정된 역 센서 모델을 이용하여 점유 맵이 업데이트될 수 있다. 위의 수학식 3의 역 센서 모델은 아래의 수학식 4와 같이 수정될 수 있다.Since the representative ray is generated for various point cloud data even in one cell, the weight of the representative ray
Figure 112017092663480-pat00012
The occupancy map may be updated using the modified inverse sensor model. The inverse sensor model of Equation (3) can be modified as shown in Equation (4) below.

[수학식 4]&Quot; (4) "

Figure 112017092663480-pat00013
Figure 112017092663480-pat00013

한편, 대표 광선을 이용하여 점유맵을 업데이트하는 경우, 셀 내의 점군 데이터가 적은 경우, 대표 광선이 단일 점만을 가질 수 있으며, 이처럼, 단일 점만 가진 경우 오버헤드만 증가시킬 수도 있다. 이에 따라, 대표 광선 생성부(230)는 기정의된 임계값

Figure 112017092663480-pat00014
를 이용하여 대표 광선을 생성할 수도 있다. 여기서, 임계값
Figure 112017092663480-pat00015
는 특정 셀 내에 포함되는 최소 점군 데이터의 개수를 나타낼 수 있다.On the other hand, when the occupancy map is updated using the representative light, the representative light ray may have only a single point when the point cloud data in the cell is small. Thus, only the single point may increase the overhead. Accordingly, the representative light generating unit 230 generates the representative light
Figure 112017092663480-pat00014
May be used to generate a representative ray. Here,
Figure 112017092663480-pat00015
May represent the number of minimum point group data included in a specific cell.

예를 들어, 셀에 포함된 점군 데이터의 개수가 임계값

Figure 112017092663480-pat00016
보다 작은 경우, 대표 광선 생성부(230)는 셀에 포함된 모든 점들 각각을 대상으로 대표 광선을 생성할 수 있다. 즉, 셀 내의 모든 점군 데이터들을 개별적으로 처리할 수 있다. 그리고, 셀 내에 포함된 점군 데이터의 개수가 임계값
Figure 112017092663480-pat00017
이상인 경우, 대표 광선 생성부(230)는 세그먼트 구간에 속하는 복수의 광선들 중 어느 하나를 대표 광선으로 결정하고, 맵 업데이트부(240)는 대표 광선에 기초하여 점유맵을 업데이트할 수 있다. 이처럼, 점유맵을 업데이트함에 있어서, 상기 임계값
Figure 112017092663480-pat00018
는 특정 셀을 대상으로 대표 광선을 생성하는 것이 해당 점유맵에 유익한지 아닌지 여부를 확인하기 위해 이용될 수 있으며, 특정 셀 내의 점군 데이터의 개수가 임계값 k 이상인 경우, 대표 광선을 생성하는 것으로 결정하고, k보다 작은 경우 대표 광선을 생성하지 않고 셀 내 모든 점군 데이터에 대해 개별적으로 점유맵을 업데이트하는 것으로 결정될 수 있다. 그리고, 결정된 방법에 따라 점유맵이 업데이트될 수 있다. For example, if the number of the point cloud data included in the cell exceeds the threshold
Figure 112017092663480-pat00016
The representative light generating unit 230 may generate a representative light beam on each of all the points included in the cell. That is, all the point cloud data within the cell can be processed individually. When the number of point cloud data included in the cell is smaller than the threshold value
Figure 112017092663480-pat00017
The representative light generating unit 230 may determine any one of the plurality of light beams belonging to the segment section as a representative light beam and the map updating unit 240 may update the occupancy map based on the representative light beam. As described above, in updating the occupancy map,
Figure 112017092663480-pat00018
May be used to determine whether generating a representative ray for a particular cell is beneficial to the occupation map or not, and if the number of point cloud data in a particular cell is greater than or equal to the threshold value k, And to update the occupancy map separately for all the point cloud data in the cell without creating a representative ray if k is less than k. Then, the occupancy map may be updated according to the determined method.

이하에서는 대표 광선을 이용하여 점유맵을 업데이트하는 경우와 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.에서 제시하고 있다. Hereinafter, the performance comparison between the conventional updating method using the 3D light source and the 3D digital differential analyzer (3DDDA) algorithm will be described. Here, the performance comparison may include both the generation time of the representative ray and the update time of the map having the representative ray. That is, whether or not the performance of the representative light beam is improved can be considered not only in the update of the map but also in the generation time of the representative light ray. The map update method based on the 3DDDA algorithm is described in Non-Patent Document [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. In this paper ,

도 7은 본 발명의 일실시예에 있어서, 옥토맵과 그리드맵에서 테스트된 평균 FPS를 도시한 그래프이다.Figure 7 is a graph illustrating the average FPS tested in an octomap and grid map, in one embodiment of the present invention.

도 7에서, 그래프 710은 실내 환경의 점군 데이터들을 대상으로 수행된 시뮬레이션 결과를 나타내고, 그래프 720은 실외 환경의 점군 데이터들을 대상으로 수해오딘 시뮬레이션 결과를 나타낼 수 있다. 아래의 표 4는 도 7의 시뮬레이션 결과로서, 대표 광선 생성 시간 및 맵 업데이트 시간을 나타낼 수 있다.In FIG. 7, a graph 710 shows a simulation result performed on point cloud data in an indoor environment, and a graph 720 can show a simulation result on a cloud cloud data in an outdoor environment. Table 4 below shows the representative light generation time and map update time as the simulation result of Fig.

Figure 112017092663480-pat00019
Figure 112017092663480-pat00019

도 7에 따르면, 실내 및 실외, 그리고, 그리드맵 및 옥토맵 모두에서, 3차원 디지털 미분 분석기(3D Digital Differential Analyzer, 3DDDA) 알고리즘을 이용할 때보다 대표 광선을 생성하여 점유맵을 업데이트하는 경우(711, 712, 721, 722)에 성능이 향상됨을 확인할 수 있다. 즉, 평균 초당 프레임 수(FPS)가 향상됨을 확인할 수 있다. 그리고, 위의 표 4에 따르면, 3차원 디지털 미분 분석기 알고리즘과 비교하여 실내 점군 데이터에 대해서는 평균 2.5 배, 실외 점군 데이터에 대해서는 평균 1.6배 빠른 성능을 가짐을 확인할 수 있다. 그리고, 해상도가 낮을 때 보다(0.2m) 해당도가 높을 때(0.8m) FPS가 높아짐을 확인할 수 있다. 즉, 고해상도를 유지하면서도 점유맵 업데이트 속도를 빠르게 처리(즉, 업데이트 시간을 단축)함을 확인할 수 있다. 이에 따라, 자율주행 자동차, 로봇 등이 충돌을 빠르게 탐지하고, 주변 상황에서 변화하는 오브젝트(예컨대, 장애물 등)에 빠르게 대처할 수 있다. According to FIG. 7, in the case where the occupancy map is updated by generating a representative ray more than when using the 3D Digital Differential Analyzer (3DDDA) algorithm in both the grid map and the octagon map, , 712, 721, 722). That is, the average number of frames per second (FPS) is improved. According to Table 4 above, the performance is 2.5 times faster on the indoor point cloud data and 1.6 times faster on the outdoor cloud point data than on the 3D digital differential analyzer algorithm. Also, it can be seen that the FPS increases when the corresponding degree is higher (0.8 m) than when the resolution is lower (0.2 m). That is, it can be confirmed that the occupancy map update rate is rapidly processed (that is, the update time is shortened) while maintaining the high resolution. Accordingly, the autonomous vehicle, the robot, or the like can quickly detect a collision and quickly cope with objects (e.g., obstacles, etc.) that change in a surrounding situation.

도 8은 본 발명의 일실시예에 있어서, 옥토맵과 그리드맵에서 테스트된 액세스되는 셀의 수를 도시한 그래프이다.Figure 8 is a graph illustrating the number of cells accessed in an octomap and grid map tested in one embodiment of the present invention.

즉, 도 8은 대표 광선을 생성하고, 생성된 대표 광선을 기반으로 점유맵(예컨대, 옥토맵과 그리드맵)을 업데이트하는데 소요되는 총 시간을 도시한 그래프를 나타낼 수 있다.That is, FIG. 8 may represent a graph illustrating the total time required to generate a representative ray and update an occupancy map (e.g., an octomap and a grid map) based on the generated representative ray.

도 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)되는 셀의 개수가 높은 비율로 감소되므로, 시스템의 성능이 향상될 수 있다.According to FIG. 8, it can be confirmed that the total time is shortened by an average of 5.6 times and a maximum of 20 times when using the representative light beam, both in indoor and outdoor environments, compared with the use of the 3DDDA algorithm . It can be seen that the time required to generate the representative ray differs depending on the resolution and the point cloud data set, but the overall performance is improved over the Brentham algorithm. For example, for an indoor data set consisting of 89K point cloud data, it may take about 16.6ms to generate a 25.1K representative light at 0.2m resolution using a representative light. As a result, it can be confirmed that a representative ray is generated at 1.51K per second. Since each representative ray has an average of 2.6 point cloud data, it may take 8.6ms to generate a 2.1K representative ray at a resolution of 1m. That is, it can generate a representative ray of 0.24K per second, and the representative ray may have 43.1 point cloud data. As a result, the number of cells traversed for occupancy map update is reduced at a high rate, so that the performance of the system can be improved.

이상에서 설명한 바와 같이, 대표 광선을 기반으로 점유맵을 업데이트함에 따라, 맵 업데이트 프로세스 과정에서 트래버스(traversing)하는 셀 수가 대폭 감소함으로써, 업데이트 시간이 감소, 즉, 업데이터 속도가 향상될 수 있다.As described above, updating the occupancy map based on the representative ray greatly reduces the number of cells traversing in the map update process, so that the update time can be reduced, i.e., the updater speed can be improved.

도 9는 본 발명의 일실시예에 있어서, 대표 광선을 생성하는 동작을 3D로 확장 시 이용되는 매핑 평면을 도시한 도면이다.9 is a diagram showing a mapping plane used in 3D representation of an operation for generating representative rays in one embodiment of the present invention.

도 9에서, z=d는 3차원에서의 임의 평면(z=d 값을 가지는 X-Y 평면)을 나타내고,

Figure 112017092663480-pat00020
는 평면 z=d에 매핑/투영(projection)된 모서리(911)가 가지는 기울기 값을 나타낼 수 있다. 즉, 2차원에서 센서의 원점으로부터 모든 그리드 포인트를 매핑 라인에 매핑/투영(prokjection)시킨 것과 마찬가지로, 3차원에서 센서의 원점으로부터 모든 셀(cell)의 모서리가 매핑 평면(910)에 매핑/투영(prokjection)될 수 있다.9, z = d represents an arbitrary plane in three dimensions (an XY plane having a z = d value)
Figure 112017092663480-pat00020
Can represent the slope value of the edge 911 mapped / projected on the plane z = d. That is, as in the case where all the grid points are mapped / projected from the origin of the sensor in two dimensions to the mapping line, the edges of all the cells from the origin of the sensor in three dimensions are mapped / projected onto the mapping plane 910 (prokjection).

2차원에서 대표 광성을 생성하기 위해 매핑 라인(mapping line)을 이용하였으며, 위의 도 6에서는 2차원에서 대표 광선을 생성하는 개념을 3차원으로 확장하여 설명하였다. 이때, 3차원으로 확장 시 매핑 평면(mapping plane)이 이용될 수 있으며, 2차원 및 3차원 각각에서 대표 광선을 생성하기 위한 개념들은 아래의 표 5와 같을 수 있다.A mapping line is used to generate the representative light in two dimensions. In FIG. 6, the concept of generating a representative light in two dimensions is extended to three dimensions. At this time, a mapping plane can be used when expanding to three dimensions, and concepts for generating a representative ray in each of two-dimensional and three-dimensional directions can be as shown in Table 5 below.

Figure 112017092663480-pat00021
Figure 112017092663480-pat00021

2차원에서 광선의 경유 패턴(traversal pattern)을 그리드 포인트(grid point)가 나누었다면, 3차원에서는 셀의 모서리가 광선의 경유 패턴(traversal pattern)을 구분할 수 있다. 이에 따라, 초기 절두체(seed frustum) 내부에 존재하는 광선들의 경유 패턴(traversal pattern)을 분류하고, 대표 광선을 선출하기 위해 매핑 평면(mapping plane)을 이용함으로써, 대표 광선을 생성하는 자료 구조를 3차원으로 확장할 수 있다.If the grid point divides the traversal pattern of light rays in two dimensions, the edge of the cell can distinguish the traversal pattern of light rays in three dimensions. Accordingly, a data structure that generates a representative ray is classified into three groups by classifying a traversal pattern of rays existing in an initial frustum and using a mapping plane to select a representative ray. It can be expanded to a dimension.

일례로, 2차원에서 초기 절두체(seed frustum) 내부에 존재하는 모든 그리드 포인트들을 이용하여 하나의 선분을 세그먼트로 나누었으나, 3차원에서는 초기 절두체(seed frustum) 내부에 존재하는 모든 모서리들(901, 911)을 매핑 평면(910)에 투영시켜 영역들로 나눌 수 있다. 여기서, 매핑 평면(910) 상에 나눠진 여러 개의 영역들 각각은 항상 같은 공간을 지나는 3차원 광선들이 매핑될 수 있는 2차원 영역을 나타낼 수 있다.For example, one segment is divided into segments by using all the grid points present in the seed frustum in two dimensions. However, in the three-dimensional segment, all the edges 901 and 902 existing in the seed frustum, 911 to the mapping plane 910 to divide them into regions. Here, each of the plurality of regions divided on the mapping plane 910 may represent a two-dimensional region in which three-dimensional rays, which pass through the same space, can always be mapped.

이에 따라, 매핑 평면(910)은 여러 개의 영역들로 구성될 수 있으며, 매핑 평면(910)에서 하나의 영역은 하나의 경유 패턴(traversal pattern)에 매칭되어 있기 때문에, 대표 광선 생성부(230)는 같은 영역에 매핑되는 광선들을 묶어 대표 광선으로 생성할 수 있다. 여기서, 상기 모서리들(911)을 매핑 평면(910)에 투영시켜 복수개의 영역들로 구분하는 동작은 도 2의 매핑 라인 생성부(220)에서 수행할 수도 있고, 매핑 평면을 이용하여 3차원으로 대표 광선 생성을 확장하기 위한 프로세스를 별도로 처리하는 매핑 평면 처리부(미도시)에서 수행될 수도 있다. 매핑 평면 처리부에서 수행되는 경우, 도 2의 점유맵 업데이트 시스템(200)은 매핑 평면 처리부(미도시)를 더 포함할 수도 있다.Accordingly, the mapping plane 910 may be composed of several regions, and one region in the mapping plane 910 is matched to one traversal pattern, Can be generated as a representative ray by bundling rays that are mapped to the same region. Here, the operation of projecting the edges 911 onto the mapping plane 910 and dividing the edges into a plurality of areas may be performed by the mapping line generation unit 220 of FIG. 2, May be performed in a mapping plane processing section (not shown) that separately processes the process for expanding representative ray generation. When performed in the mapping plane processing unit, the occupied map updating system 200 of FIG. 2 may further include a mapping plane processing unit (not shown).

도 10은 본 발명의 일실시예에 있어서, 매핑 평면에 포함된 영역들 중 동일 영역에 속하는 광선들을 묶어 대표 광선으로 생성하는 동작을 설명하기 위해 제공되는 도면이다.10 is a view for explaining an operation of bundling rays belonging to the same area among regions included in a mapping plane to generate a representative ray according to an embodiment of the present invention.

도 10을 참고하면, 광선(1002, 1003)은 매핑 평면(1010)에 포함된 복수의 영역들 중 동일한 영역(1011)에 매핑되고, 광선(1001)은 상기 영역(1011)과 다른 영역(1012)에 매핑될 수 있다. 그러면, 동일 영역(1011)에 매핑된 광선들(1002, 1003)은 같은 공간을 지나는 것이므로, 하나의 대표 광선으로 묶을 수 있다. 이에 따라, 대표 광선 생성부(230)는 상기 영역(1011)에 속하는 광선들(1002, 1003)은 하나의 동일한 대표 광선으로 묶고, 다른 영역(1012)에 매핑된 광선(1001)은 상기 광선들(1002, 1003)에 해당하는 대표 광선과는 다른 대표 광선으로 묶을 수 있다. 예컨대, 대표 광선 생성부(230)는 광선(1001)을 해당 영역(1012)에 매핑된 광선들을 대표하는 대표 광선으로 결정하고, 광선(1003)을 해당 영역(1011)에 매핑된 광선들을 대표하는 대표 광선으로 결정할 수 있다.10, light rays 1002 and 1003 are mapped to the same area 1011 among a plurality of areas included in the mapping plane 1010, and the light ray 1001 is mapped to the other area 1012 ). ≪ / RTI > Since the rays 1002 and 1003 mapped to the same area 1011 pass through the same space, they can be bundled into one representative ray. The representative light beam generator 230 bundles the light beams 1002 and 1003 belonging to the region 1011 into one and the same representative light beam and the light beam 1001 mapped to the other region 1012, (1002, 1003), as shown in FIG. For example, the representative light generating unit 230 may determine a light ray 1001 as a representative light ray representative of the light rays mapped to the corresponding region 1012, and determine the light ray 1003 as a representative light ray representative of the light rays mapped to the corresponding region 1011 It can be decided as a representative ray.

도 11은 본 발명의 일실시예에 있어서, 매핑 편면을 이용하여 데표 광선을 결정하는 것과 3개의 3차원 평면에서 매핑 라인을 이용하여 대표 광선을 결정하는 것이 일치함을 나타내는 도면이다.11 is a diagram showing the determination of the dendritic light using the mapping single plane and the determination of the representative ray using the mapping line in three three-dimensional planes in accordance with an embodiment of the present invention.

도 11을 참고하면, 대표 광선을 생성하는 것을 3차원으로 확장하는 것은 3차원 에서 매핑 평면을 이용하여 대표 광선을 결정/생성하는 것과, 3개의 2차원 평면에서 매핑 라인들을 이용하여 대표 광선을 결정/생성하는 두 가지 방법이 존재할 수 있다. 이때, 3개의 2차원 평면(X-Y, Z-X, Z-Y, 1110, 1120, 1130) 각각에서 매핑 라인(1111, 1121, 1131)을 생성하여 대표 광성을 생성하는 것이 매핑 평면을 이용하여 대표 광선을 생성하는 것보다 효율적일 수 있다.Referring to FIG. 11, the three-dimensional extension of generating a representative light ray includes determining / generating a representative ray using a mapping plane in three dimensions, determining a representative ray using mapping lines in three two- There are two ways to create / create. At this time, mapping lines 1111, 1121, and 1131 are generated in each of the two two-dimensional planes (XY, ZX, ZY, 1110, 1120, and 1130) to generate representative light, It can be more efficient.

도 11에서, 그리드 포인트(grid point, 1140)는 3개의 2차원 평면(1110, 1120, 1130) 각각의 매핑 라인 모두에서 동일한 세그먼트에 해당하는 그리트 포인트일 수 있다.11, a grid point 1140 may be a grit point corresponding to the same segment in all of the mapping lines of each of the two two-dimensional planes 1110, 1120, 1130.

도 12는 본 발명의 일실시예에 있어서, 각 차원에서 매핑 라인을 생성하여 대표 광선을 생성하는 것이 더 효율적인 이유를 설명하기 위해 제공되는 도면이다.Figure 12 is a diagram provided to illustrate why it is more efficient to generate a representative ray in each dimension in accordance with one embodiment of the present invention.

3차원에서 하나의 매핑 평면을 만드는 것보다 2차원 3개의 매핑 평면을 만드는 과정이 빠를 수 있다. 그리고, 광선들을 매핑시켜 대표 광선으로 묶는 과정의 계산 시간은 일치할 수 있다.Rather than creating a single mapping plane in three dimensions, the process of creating two three-dimensional mapping planes can be fast. And, the calculation time of mapping the rays into the representative rays can be matched.

도 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)의 매핑 라인을 구해 대표 광선을 생성하는 것이 더 효율적일 수 있다.Referring to FIG. 12, when it is desired to obtain lines 1210 and 1220 on a mapping plane, referring to 1201, a corner of a cell is mapped / projected onto a mapping plane in three dimensions, ) Can be calculated. At this time, a total of three corners can be considered. Referring to 1202, a line segment 1220 to be obtained can be obtained by considering a total of one grid point in the process of matching a segment of the mapping line in the Z-X plane. That is, in the case of 1201 (i.e., when one mapping plane is created in three dimensions), three edges must be considered in the process of calculating lines for dividing each region in the mapping plane, and 1202 (i.e., Dimensional mapping plane), it is more efficient to generate a representative ray by obtaining a mapping line of three sub-planes (XY, ZX, ZY), since there is a difference in considering one grid point .

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (23)

그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법에 있어서,
센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계;
생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계; 및
상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계
를 포함하고,
상기 맵핑 라인을 생성하는 단계는,
상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하는 단계;
좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하는 단계; 및
점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계
를 포함하는 점유맵 업데이트 방법.
A method for updating an occupancy map based on a grid and an octree,
Generating a mapping line based on the point cloud data obtained from the sensor;
Generating a super ray by identifying cells traversing the same cell on a plurality of cells constituting the occupancy map based on the generated mapping line; And
Updating the occupancy map by updating a cell through which the representative ray corresponding to some of the rays associated with the plurality of cells constituting the occupancy map passes,
Lt; / RTI >
Wherein the generating the mapping line comprises:
Converting the coordinate system of the point cloud data into a world coordinate system corresponding to the occupancy map;
Generating a virtual cell box including all the point cloud data corresponding to any one of the plurality of cells constituting the occupancy map among the point cloud data of which the coordinate system is transformed; And
Generating a line segment overlapping between the cell box and a slice associated with the cell box on the mapping line based on a sensor origin on the occupancy map
/ RTI >
삭제delete 제1항에 있어서,
상기 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계는,
상기 센서 원점을 포함하는 제1 슬라이스 상에서 상기 센서 원점으로부터 상기 셀 박스의 양 끝점을 연결하는 복수의 교차점을 결정하는 단계;
결정된 교차점 사이에 위치하는 격자점(grid point)을 결정하는 단계; 및
상기 격자점에 기초하여 초기 절두체(seed frustum)을 복수개로 분할하는 단계
를 포함하는 점유맵 업데이트 방법.
The method according to claim 1,
The step of generating the overlapping line segment with the mapping line includes:
Determining a plurality of intersection points connecting the two end points of the cell box from the sensor origin on a first slice comprising the sensor origin;
Determining a grid point located between the determined intersection points; And
Dividing the initial frustum into a plurality of segments based on the lattice points;
/ RTI >
제1항에 있어서,
상기 맵핑 라인을 생성하는 단계는,
점유맵 상의 센서 원점으로부터 격자점(grid point)을 통과하여 맵핑 라인을 연결하는 매핑 라인 상의 어느 하나의 점(point)에 기초하여 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분하는 단계
를 포함하는 점유맵 업데이트 방법.
The method according to claim 1,
Wherein the generating the mapping line comprises:
Dividing the mapping line into a plurality of segment segments based on a point on a mapping line connecting a mapping line passing through a grid point from a sensor origin on an occupancy map
/ RTI >
삭제delete 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법에 있어서,
센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계;
생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계; 및
상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계
를 포함하고,
상기 대표 광선(super ray)을 생성하는 단계는,
상기 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정하는 단계;
센서 원점으로부터 결정된 상기 점군 데이터로 투영된 광선을 상기 대표 광선(super ray)으로 결정하는 단계;
상기 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터의 수를 세그먼트 구간 별로 계산하는 단계; 및
계산된 점군 데이터의 수를 결정된 상기 대표 광선의 가중치(weight)로 설정하는 단계
를 포함하는 점유맵 업데이트 방법.
A method for updating an occupancy map based on a grid and an octree,
Generating a mapping line based on the point cloud data obtained from the sensor;
Generating a super ray by identifying cells traversing the same cell on a plurality of cells constituting the occupancy map based on the generated mapping line; And
Updating the occupancy map by updating a cell through which the representative ray corresponding to some of the rays associated with the plurality of cells constituting the occupancy map passes,
Lt; / RTI >
The step of generating the super ray comprises:
Determining one of the point cloud data for each of the segment segments with respect to the point cloud data located in each of the plurality of segment segments that define the mapping line;
Determining a ray of light projected on the point cloud data determined from the sensor origin as the representative ray (super ray);
Calculating the number of point cloud data located in each of the plurality of segment intervals on a segment segment basis; And
Setting the number of calculated point cloud data to a weight of the determined representative light ray
/ RTI >
제6항에 있어서,
동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 단계
를 더 포함하는 점유맵 업데이트 방법.
The method according to claim 6,
Storing the point cloud data corresponding to the representative ray in place of the plurality of point cloud data corresponding to the same segment period for updating the occupancy map
The occupancy map updating method further comprising:
제1항에 있어서,
상기 맵핑 라인은,
X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 생성됨으로써, 2D 좌표계 기반의 대표 광선을 3D 좌표계 기반으로 확장되는 것
을 특징으로 하는 점유맵 업데이트 방법.
The method according to claim 1,
Wherein the mapping line comprises:
By being generated for each of the XY plane, YZ plane, and ZX plane, it is possible to extend the representative ray based on the 2D coordinate system on the basis of the 3D coordinate system
And updating the occupancy map.
삭제delete 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법에 있어서,
센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계;
생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계; 및
상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계
를 포함하고,
상기 대표 광선을 생성하는 단계는,
2차원 좌표계에서 초기 절두체(seed frustum) 내부에 존재하는 모서리들을 3차원 좌표계의 매핑 평면(mapping plane)에 투영(projection)시킴에 따라 구분된 복수의 영역들을 대상으로, 각 영역에 매핑된 광선들을 묶어서 영역 별로 하나의 대표 광선을 생성하는 것
을 특징으로 하는 점유맵 업데이트 방법.
A method for updating an occupancy map based on a grid and an octree,
Generating a mapping line based on the point cloud data obtained from the sensor;
Generating a super ray by identifying cells traversing the same cell on a plurality of cells constituting the occupancy map based on the generated mapping line; And
Updating the occupancy map by updating a cell through which the representative ray corresponding to some of the rays associated with the plurality of cells constituting the occupancy map passes,
Lt; / RTI >
Wherein the step of generating the representative light beam comprises:
In a two-dimensional coordinate system, a plurality of regions divided according to projections of edges existing in an initial frustum on a mapping plane of a three-dimensional coordinate system, To create a single representative ray for each region
And updating the occupancy map.
제1항에 있어서,
상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traverse)하는 것
을 특징으로 하는 점유맵 업데이트 방법.
The method according to claim 1,
The rays corresponding to each of the point cloud data belonging to the segment segment corresponding to the representative light ray are traversed on the same cells on the occupation map
And updating the occupancy map.
그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 시스템에 있어서,
센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 맵핑 라인 생성부;
생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 대표 광선 생성부; 및
상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 맵 업데이트부
를 포함하고,
상기 맵핑 라인 생성부는,
상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하고, 좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하고, 점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 것
을 특징으로 하는 점유맵 업데이트 시스템.
A system for updating an occupancy map based on a grid and an octree,
A mapping line generation unit for generating a mapping line based on point cloud data acquired from a sensor;
A representative ray generator for generating a super ray by identifying a cell traversing the same cell for a plurality of cells constituting the occupancy map based on the generated mapping line; And
A map updating unit updating the occupancy map by updating a cell through which the representative ray corresponding to a part of the rays related to the plurality of cells constituting the occupancy map passes,
Lt; / RTI >
Wherein the mapping line generation unit comprises:
A coordinate system of the point cloud data is converted into a world coordinate system corresponding to the occupation map and all point cloud data corresponding to any one of a plurality of cells constituting the occupancy map among the point cloud data, And generating a line segment overlapping between the cell box and the slice associated with the cell box as the mapping line based on the sensor origin on the occupancy map
The occupancy map updating system comprising:
삭제delete 제12항에 있어서,
상기 맵핑 라인 생성부는,
상기 센서 원점을 포함하는 제1 슬라이스 상에서 상기 센서 원점으로부터 상기 맵핑 라인의 양 끝점을 연결하는 복수의 교차점을 결정하고, 결정된 교차점 사이에 위치하는 격자점(grid point)을 결정하고, 상기 격자점에 기초하여 초기 절두체(seed frustum)을 복수개로 분할하는 것
을 특징으로 하는 점유맵 업데이트 시스템.
13. The method of claim 12,
Wherein the mapping line generation unit comprises:
Determining a plurality of intersection points connecting the two end points of the mapping line from the sensor origin on a first slice including the sensor origin, determining a grid point located between the determined intersection points, And dividing the initial frustum into a plurality of segments
The occupancy map updating system comprising:
제12항에 있어서,
상기 맵핑 라인 생성부는,
점유맵 상의 센서 원점으로부터 격자점(grid point)을 통과하여 맵핑 라인을 연결하는 매핑 라인 상의 어느 하나의 점(point)에 기초하여 맵핑 라인을 복수개의 세그먼트(segment) 구간으로 구분하는 것
을 특징으로 하는 점유맵 업데이트 시스템.
13. The method of claim 12,
Wherein the mapping line generation unit comprises:
A mapping line is divided into a plurality of segment segments based on a point on a mapping line connecting a mapping line passing through a grid point from a sensor origin on an occupancy map
The occupancy map updating system comprising:
삭제delete 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 시스템에 있어서,
센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 맵핑 라인 생성부;
생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 대표 광선 생성부; 및
상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 맵 업데이트부
를 포함하고,
상기 대표 광선 생성부는,
상기 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정하고, 센서 원점으로부터 결정된 상기 점군 데이터로 투영된 광선을 상기 대표 광선(super ray)으로 결정하고,
상기 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터의 수를 세그먼트 구간 별로 계산하고, 계산된 점군 데이터의 수를 결정된 상기 대표 광선의 가중치(weight)로 설정하는 것
을 특징으로 하는 점유맵 업데이트 시스템.
A system for updating an occupancy map based on a grid and an octree,
A mapping line generation unit for generating a mapping line based on point cloud data acquired from a sensor;
A representative ray generator for generating a super ray by identifying a cell traversing the same cell for a plurality of cells constituting the occupancy map based on the generated mapping line; And
A map updating unit updating the occupancy map by updating a cell through which the representative ray corresponding to a part of the rays related to the plurality of cells constituting the occupancy map passes,
Lt; / RTI >
The representative light beam generator may include:
Wherein the point cloud data is determined for each segment segment with respect to the point cloud data located in each of the plurality of segment segments that define the mapping line, and the light reflected by the point cloud data determined from the sensor origin is referred to as the super ray ), ≪ / RTI >
The number of point cloud data located in each of the plurality of segment intervals is calculated for each segment period and the number of the calculated point cloud data is set to the determined weight of the representative light ray
The occupancy map updating system comprising:
제17항에 있어서,
동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 저장부
를 더 포함하는 점유맵 업데이트 시스템.
18. The method of claim 17,
A storage unit for storing the point cloud data corresponding to the representative rays in place of the plurality of point cloud data corresponding to the same segment period for updating occupancy maps;
The occupancy map updating system further comprising:
제12항에 있어서,
상기 맵핑 라인은,
X-Y 평면, Y-Z 평면, 및 Z-X 평면 각각에 대해 생성됨으로써, 2D 좌표계 기반의 대표 광선을 3D 좌표계 기반으로 확장되는 것
을 특징으로 하는 점유맵 업데이트 시스템.
13. The method of claim 12,
Wherein the mapping line comprises:
By being generated for each of the XY plane, YZ plane, and ZX plane, it is possible to extend the representative ray based on the 2D coordinate system on the basis of the 3D coordinate system
The occupancy map updating system comprising:
삭제delete 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 시스템에 있어서,
센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 맵핑 라인 생성부;
생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 대표 광선 생성부; 및
상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 맵 업데이트부
를 포함하고,
상기 대표 광선 생성부는,
2차원 좌표계에서 초기 절두체(seed frustum) 내부에 존재하는 모서리들을 3차원 좌표계의 매핑 평면(mapping plane)에 투영(projection)시킴에 따라 구분된 복수의 영역들을 대상으로, 각 영역에 매핑된 광선들을 묶어서 영역 별로 하나의 대표 광선을 생성하는 것
을 특징으로 하는 점유맵 업데이트 시스템.
A system for updating an occupancy map based on a grid and an octree,
A mapping line generation unit for generating a mapping line based on point cloud data acquired from a sensor;
A representative ray generator for generating a super ray by identifying a cell traversing the same cell for a plurality of cells constituting the occupancy map based on the generated mapping line; And
A map updating unit updating the occupancy map by updating a cell through which the representative ray corresponding to a part of the rays related to the plurality of cells constituting the occupancy map passes,
Lt; / RTI >
The representative light beam generator may include:
In a two-dimensional coordinate system, a plurality of regions divided according to projections of edges existing in an initial frustum on a mapping plane of a three-dimensional coordinate system, To create a single representative ray for each region
The occupancy map updating system comprising:
제12항에 있어서,
상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traverse)하는 것
을 특징으로 하는 점유맵 업데이트 시스템.
13. The method of claim 12,
The rays corresponding to each of the point cloud data belonging to the segment segment corresponding to the representative light ray are traversed on the same cells on the occupation map
The occupancy map updating system comprising:
컴퓨터로 구현되는 전자 기기와 결합되어 그리드(grid)와 옥트리(octree) 기반의 점유맵(occupancy map)을 업데이트하는 방법을 실행시키기 위해 기록매체에 저장된 컴퓨터 프로그램에 있어서,
상기 점유맵을 업데이트하는 방법은,
센서로부터 획득한 점군(point clouds) 데이터에 기초하여 맵핑 라인(mapping line)을 생성하는 단계;
생성된 상기 맵핑 라인에 기초하여 상기 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과하는(traverse) 셀을 식별하여 대표 광선(super ray)을 생성하는 단계; 및
상기 점유맵을 구성하는 복수의 셀들과 관련된 광선들 중 일부에 해당하는 상기 대표 광선이 통과하는 셀을 업데이트함에 따라 상기 점유맵을 업데이트하는 단계
를 포함하고,
상기 맵핑 라인을 생성하는 단계는,
상기 점군 데이터의 좌표계를 상기 점유맵에 해당하는 세계 좌표계(world coordinate)로 변환하는 단계;
좌표계가 변환된 점군 데이터들 중 상기 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성하는 단계; 및
점유맵 상의 센서 원점에 기초하여 상기 셀 박스 및 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 상기 맵핑 라인으로 생성하는 단계
를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
A computer program stored on a recording medium for executing a method for updating an occupancy map based on a grid and an octree in combination with a computer-implemented electronic device,
A method for updating occupancy map,
Generating a mapping line based on the point cloud data obtained from the sensor;
Generating a super ray by identifying cells traversing the same cell on a plurality of cells constituting the occupancy map based on the generated mapping line; And
Updating the occupancy map by updating a cell through which the representative ray corresponding to some of the rays associated with the plurality of cells constituting the occupancy map passes,
Lt; / RTI >
Wherein the generating the mapping line comprises:
Converting the coordinate system of the point cloud data into a world coordinate system corresponding to the occupancy map;
Generating a virtual cell box including all the point cloud data corresponding to any one of the plurality of cells constituting the occupancy map among the point cloud data of which the coordinate system is transformed; And
Generating a line segment overlapping between the cell box and a slice associated with the cell box on the mapping line based on a sensor origin on the occupancy map
And a computer program product.
KR1020170122381A 2016-12-20 2017-09-22 Method and system for updating occupancy map based on super ray KR101949609B1 (en)

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
KR20160174452 2016-12-20
KR1020160174452 2016-12-20

Publications (2)

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

Family

ID=62780586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170122381A KR101949609B1 (en) 2016-12-20 2017-09-22 Method and system for updating occupancy map based on super ray

Country Status (1)

Country Link
KR (1) KR101949609B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021530890A (en) * 2018-07-11 2021-11-11 インターデジタル ヴイシー ホールディングス, インコーポレイテッド Point cloud processing
CN110940994A (en) * 2018-09-25 2020-03-31 北京京东尚科信息技术有限公司 Positioning initialization method and system thereof
US11039115B2 (en) 2018-12-21 2021-06-15 Samsung Electronics Co., Ltd. Low complexity color smoothing of reconstructed point clouds
US11288843B2 (en) * 2019-01-04 2022-03-29 Samsung Electronics Co., Ltd. Lossy compression of point cloud occupancy maps
US11259048B2 (en) 2019-01-09 2022-02-22 Samsung Electronics Co., Ltd. Adaptive selection of occupancy map precision
KR102640235B1 (en) * 2019-01-11 2024-02-23 삼성전자주식회사 Method and apparatus for encoding 3-dimensional data and method and apparatus for decoding 3-dimensional data
CN113290570B (en) * 2020-07-20 2024-04-19 阿里巴巴集团控股有限公司 Clamping device, data center operation and maintenance robot and assembly robot

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060025888A1 (en) 2004-06-25 2006-02-02 Steffen Gutmann Environment map building method, environment map building apparatus and mobile robot apparatus
JP2009163610A (en) 2008-01-09 2009-07-23 Canon Inc Image processing apparatus and image processing method
US20110007072A1 (en) 2009-07-09 2011-01-13 University Of Central Florida Research Foundation, Inc. Systems and methods for three-dimensionally modeling moving objects
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 (en) 2010-05-20 2014-10-16 アイロボット コーポレイション Method of operating mobile robot to follow person
JP2016153795A (en) 2008-11-25 2016-08-25 テトラビュー, インコーポレイテッド Systems and methods for high resolution three-dimensional imaging

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5914721A (en) * 1991-06-28 1999-06-22 Lim; Hong Lip Visibility calculations for 3D computer graphics
KR100490885B1 (en) * 2002-04-17 2005-05-19 중앙대학교 산학협력단 Image-based rendering method using orthogonal cross cylinder
KR100963352B1 (en) * 2008-04-14 2010-06-14 제주대학교 산학협력단 Indexing method of trajectory data and apparatus using the method
KR101686169B1 (en) * 2010-02-09 2016-12-14 삼성전자주식회사 Apparatus and Method for generating 3D map based on the octree map
KR102242566B1 (en) * 2014-06-30 2021-04-20 삼성전자주식회사 Apparatus and method for processing ray tracing

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060025888A1 (en) 2004-06-25 2006-02-02 Steffen Gutmann Environment map building method, environment map building apparatus and mobile robot apparatus
JP2009163610A (en) 2008-01-09 2009-07-23 Canon Inc Image processing apparatus and image processing method
JP2016153795A (en) 2008-11-25 2016-08-25 テトラビュー, インコーポレイテッド Systems and methods for high resolution three-dimensional imaging
US20110007072A1 (en) 2009-07-09 2011-01-13 University Of Central Florida Research Foundation, Inc. Systems and methods for three-dimensionally modeling moving objects
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 (en) 2010-05-20 2014-10-16 アイロボット コーポレイション Method of operating mobile robot to follow person
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
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
US20120169712A1 (en) 2010-12-30 2012-07-05 Hill Anthony D Display of medical device position information in a volumetric rendering

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
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)*

Also Published As

Publication number Publication date
KR20180071928A (en) 2018-06-28

Similar Documents

Publication Publication Date Title
KR101949609B1 (en) Method and system for updating occupancy map based on super ray
US11300964B2 (en) Method and system for updating occupancy map for a robotic system
US20210109537A1 (en) Autonomous exploration framework for indoor mobile robotics using reduced approximated generalized voronoi graph
CN112859859B (en) Dynamic grid map updating method based on three-dimensional obstacle object pixel object mapping
US7499053B2 (en) Real-time precision ray tracing
CN108537876B (en) Three-dimensional reconstruction method, device, equipment and storage medium
JP6598090B2 (en) Storage medium, method for planning robot operation, hardware for planning robot operation, and robot
CN107677279A (en) It is a kind of to position the method and system for building figure
Payeur et al. Probabilistic octree modeling of a 3D dynamic environment
US11922574B2 (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 (en) Obstacle information detection method and device for mobile robot
KR102624587B1 (en) Compression of semantic information for task and motion planning
CN108984741A (en) A kind of ground drawing generating method and device, robot and computer readable storage medium
Rodenberg et al. Indoor A* pathfinding through an octree representation of a point cloud
CN111009034B (en) Three-dimensional model monomer method, system, storage medium and equipment
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 (en) Spatial search system
CN101297325A (en) Application of interval algorithm for reducing computation time in ray tracking problems
Kwon et al. Super ray based updates for occupancy maps
CN117193278A (en) Method, apparatus, computer device and storage medium for dynamic edge path generation
CN117058358B (en) Scene boundary detection method and mobile platform
CN111376249A (en) Mobile equipment positioning system, method and device and mobile equipment

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