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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
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
본 발명의 실시예들은 옥트리(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.
본 발명은 상기한 문제점들을 해결하기 위한 것으로서, 점군 데이터들의 집합에 대한 대표 광선(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)를 포함할 수 있다. 이러한 노이즈를 고려하기 위해 점유 확률이 이용될 수 있으며, 점유 확률 은 아래의 수학식 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 Can be expressed as Equation (1) below.
[수학식 1][Equation 1]
수학식 1에서, 점유 확률 은 셀의 점유 상태 n, 초기 시간 1(step 1)부터 현재 시간 t(step t) 동안 센싱된 센서 측정값 및 베이즈 법칙(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 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) 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) "
수학식 2에서, 은 역 센서 모델을 나타내는 것으로서, 아래의 수학식 3과 같이 정의될 수 있다.In Equation (2) Represents an inverse sensor model, and can be defined as Equation (3) below.
[수학식 3]&Quot; (3) "
셀이 기정의된 오랜 시간 동안 누적된 점유 확률을 가지는 경우, 셀의 현재 상태와 충돌하는 새로운 입력 데이터는 상태를 즉시 변화시킬 수 없는 오버 컨피던스(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
도 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
센서(210)는 센싱하고자 하는 주변 환경을 구성하고 있는 오브젝트들(objects)을 센싱하고, 센싱된 데이터, 즉, 점군 데이터를 점유맵 업데이트 시스템(200)으로 제공할 수 있다. 여기서, 센서(210)는 점유맵 업데이트 시스템(200)에 포함될 수도 있고, 점유맵 업데이트 시스템(200)과는 별도로 구현될 수도 있다. 예컨대, 센서(210)는 근거리 무선통신 모듈 또는 유선 통신 모듈을 통해 센싱된 점군 데이터를 점유맵 업데이트 시스템(200)으로 제공할 수도 있다.The
예를 들어, 센서(210)는 로봇 또는 자율주행 자동차 주변 환경을 센싱할 수 있으며, 센싱된 점군 데이터(point clouds)를 점유맵 생성을 위해 맵핑 라인 생성부(220)로 제공할 수 있다. 이때, 센서(210)는 기정의된 일정시간 동안 센싱된 점군 데이터를 제공할 수 있으며, 매 프레임, 또는 기정의된 매 시간단위마다 일정시간 동안 센싱된 점군 데이터를 맵핑 라인 생성부(220)로 제공할 수 있다.For example, the
310 단계에서, 맵핑 라인 생성부(220)는 센서(210)로부터 획득한 점군 데이터에 기초하여 맵핑 라인을 생성할 수 있다. 이때, 센서(210)로부터 획득한 점군 데이터의 좌표계는 센서 좌표계에서 정의되므로, 점유맵으로의 표현을 위해 상기 좌표계를 세계 좌표계(world coordinate)로 변환할 필요가 있다.In
311 단계에서, 맵핑 라인 생성부(220)는 센서(210)로부터 획득한 점군 데이터의 좌표계를 세계 좌표계(world coordinate)로 변환할 수 있다. 여기서, 세계 좌표계 상에서 센서의 위치와 방향을 이미 알고 있음을 가정하고, 센서 좌표계에서 세계 좌표계로 점군 데이터의 좌표계를 변환할 수 있다. 그리고, 변환된 세계 좌표계기반의 점군 데이터를 이용하여 점유맵에 대한 업데이트가 처리될 수 있다.In
312 단계에서, 맵핑 라인 생성부(220)는 좌표계가 변환된 점군 데이터들을 대상으로, 점유맵을 구성하는 복수의 셀들 중 어느 하나의 셀에 해당하는 모든 점군 데이터들을 포함하는 가상의 셀 박스를 생성할 수 있다.In
313 단계에서, 점유맵 상의 센서 원점에 기초하여 생성된 상기 셀 박스, 그리고 셀 박스와 관련된 슬라이스(slice) 간에 오버랩(overlap)되는 선분을 맵핑 라인(mapping line)으로 생성할 수 있다. 여기서, 맵핑 라인을 생성하는 자세한 동작은 도 4를 참고하여 후술하기로 한다.In
320 단계에서, 맵핑 라인이 생성되면, 대표 광선 생성부(230)는 생성된 맵핑 라인에 기초하여 점유맵을 구성하는 복수의 셀들을 대상으로 동일한 셀을 통과(traverse)하는 셀을 식별하여 대표 광선을 생성할 수 있다.In
321 단계에서, 대표 광선 생성부(230)는 맵핑 라인을 구분하는 복수의 세그먼트 구간들 각각에 위치하는 점군 데이터들을 대상으로, 세그먼트 구간 별로 어느 하나의 점군 데이터를 결정할 수 있다.In
322 단계에서, 대표 광선 생성부(230)는 센서 원점으로부터 상기 결정된 점군 데이터로 투영(또는 영사)된 광선을 대표 광선(super ray)으로 결정할 수 있다. 이때, 대표 광선 생성부(230)는 복수의 세그먼트 구간들에 위치하는 점구 데이터의 수를 세그먼트 구간 별로 계산하고, 계산된 점군 데이터의 수를 상기 대표 광선의 가중치(weight)로 설정할 수 있다. 여기서, 대표 광선을 생성하는 자세한 동작은 도 5에서 후술하기로 한다.In
330 단계에서, 저장부(250)는 동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장할 수 있다.In
340 단계에서, 맵 업데이트부(240)는 점유맵을 구성하는 복수의 셀들 중 일부에 해당하는 대표 광선이 통과하는 셀을 업데이트함으로써, 점유맵을 업데이트할 수 있다. 즉, 모든 광선이 통과하는 셀을 업데이트하여 동일 셀에 대해 중복된 업데이트를 수행하는 대신, 복수의 광선들 중 동일한 셀을 통과하는 대표 광선이 지나가는 셀을 업데이트하여 중복 연산을 제거하고, 업데이트 속도를 향상시킬 수 있다.In
도 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
맵핑 라인 생성부(220)는 점유맵(410)을 구성하는 복수의 셀들 중 어느 하나의 셀(예컨대, 셀 C)를 대상으로, 센서 원점(401)부터 셀 C에 속하는 모든 점군 데이터들을 포함하는 가상의 셀 박스(402)를 생성할 수 있다. 그리고, 맵핑 라인 생성부(220)는 센서 원점(401)부터 셀 박스(420)로의 초기 절두체(seed frustum)을 구성할 수 있다.The mapping
이때, 맵핑 라인 생성을 위해 프로세싱 방향(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
이때, 동일한 대표 광선에 맵핑되는 점군 데이터들을 식별하기 위해 셀 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
예를 들어, 점유맵 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
예컨대, 점유맵 420을 참고하면, out1은 프로세싱 방향으로부터 해당 슬라이스(즉, 슬라이스 1)에서 먼 쪽 라인을 나타낼 수 있으며, 맵핑 라인 생성부(220)는 해당 슬라이스(즉, 슬라이스 1)와 초기 절두체 간의 교차점(intmax, intmin)에 기초하여 격자점(grid point)을 결정할 수 있다. 즉, 슬라이스 1과 초기 절두체 간의 교차점(424, 425) 사이에 존재하는 격자점(426)을 상기 절두체 내의 격자점으로 결정할 수 있다. 여기서, 센서 원점을 포함하는 첫 번째 슬라이스가 슬라이스 1이고, 셀 C를 포함하는 슬라이스를 마지막 슬라이스로서, N이라고 정의하면, 맵핑 라인 생성부(220)는 슬라이스 1부터 슬라이스 N-1까지 각 슬라이스 상에서 상기 교차점들을 결정하고, 교차점들 사이에 위치하는 격자점을 결정하는 동작을 슬라이스 N-1까지 반복 수행함으로써, 초기 맵핑 라인을 복수개의 세그먼트들로 구분할 수 있다. 예컨대, m개의 격자점이 있음을 가정하면, 와 같이 표현될 수 있다. 이처럼, 격자점은 초기 절두체 또는 현재 절두체를 m+1개의 서브 절두체로 분할하는 점을 나타낼 수 있으며, 결국 초기 맵핑 라인에서 m+1개의 세그먼트가 생성(즉, 구분)될 수 있다. 이처럼, 점유맵의 이산적 특성으로 인해 격자점을 쉽게 결정하고, 값비싼 정렬방법을 사용하지 않고도 상기 격자점을 기반으로 초기 맵핑 라인을 복수개의 세그먼트들로 빠르게 구분할 수 있다. 셀 C와 관련하여 맵핑 라인을 생성하는 의사 코드(pseudo code) 알고리즘은 아래의 표 1과 같을 수 있다.For example, referring to the
도 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
그리고, 대표 광선 생성부(230)는 세그먼트 구간 별로 맵핑된(즉, 할당된) 점군 데이터의 개수를 계산할 수 있다. 예컨대, 세그먼트 구간 1은 2개, 세그먼트 구간 2은 1개, 세그먼트 구간 3은 2개와 같이 맵핑된 점군 데이터의 개수가 계산될 수 있으며, 대표 광선 생성부(230)는 계산된 상기 점군 데이터의 개수를 해당 세그먼트 구간의 대표 광선의 가중치로 설정할 수 있다. 즉, 대표 광선 1(541)의 가중치는 2, 대표 광선 2(542)의 가중치는 1, 대표 광선 3(543)의 가중치는 2로 설정될 수 있다. 그러면, 맵 업데이트부(240)는 점유맵 업데이트 시 대표 광선 별로 설정된 가중치, 즉, 점유 확률에 묶여진 점군 데이터의 개수만큼 가중치를 주어 점유맵에 대한 업데이트를 수행할 수 있다. 그리고, 대표 광선 1(541)이 지나가는 셀과 해당 세그먼트에 속하는 적어도 하나의 광선이 지나가는 셀은 동일할 수 있다. 즉, 각 세그먼트 구간 별 대표 광선과 동일 세그먼트에 속하는 점구 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(traversing)할 수 있다. 이에 따라, 점유 맵 상의 모든 광선이 아닌 대표 광선이 지나가는 셀을 업데이트함으로써 나머지 광선이 지나감에 따라 중복되는 셀들을 중복하여 업데이트하지 않아도 되어 맵 업데이트 속도를 증가시킬 수 있다. The representative
도 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
먼저, 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
아래의 표 3은 대표 광선 및 각 대표 광선 별 가중치를 나타낼 수 있다.Table 3 below shows representative weights and weights for each representative beam.
표 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.
대표 광선은 하나의 셀 내에서도 여러 점군 데이터에 대해 생성되므로, 대표 광선의 가중치 를 고려하여 수정된 역 센서 모델을 이용하여 점유 맵이 업데이트될 수 있다. 위의 수학식 3의 역 센서 모델은 아래의 수학식 4와 같이 수정될 수 있다.Since the representative ray is generated for various point cloud data even in one cell, the weight of the representative ray 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) "
한편, 대표 광선을 이용하여 점유맵을 업데이트하는 경우, 셀 내의 점군 데이터가 적은 경우, 대표 광선이 단일 점만을 가질 수 있으며, 이처럼, 단일 점만 가진 경우 오버헤드만 증가시킬 수도 있다. 이에 따라, 대표 광선 생성부(230)는 기정의된 임계값 를 이용하여 대표 광선을 생성할 수도 있다. 여기서, 임계값 는 특정 셀 내에 포함되는 최소 점군 데이터의 개수를 나타낼 수 있다.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
예를 들어, 셀에 포함된 점군 데이터의 개수가 임계값 보다 작은 경우, 대표 광선 생성부(230)는 셀에 포함된 모든 점들 각각을 대상으로 대표 광선을 생성할 수 있다. 즉, 셀 내의 모든 점군 데이터들을 개별적으로 처리할 수 있다. 그리고, 셀 내에 포함된 점군 데이터의 개수가 임계값 이상인 경우, 대표 광선 생성부(230)는 세그먼트 구간에 속하는 복수의 광선들 중 어느 하나를 대표 광선으로 결정하고, 맵 업데이트부(240)는 대표 광선에 기초하여 점유맵을 업데이트할 수 있다. 이처럼, 점유맵을 업데이트함에 있어서, 상기 임계값 는 특정 셀을 대상으로 대표 광선을 생성하는 것이 해당 점유맵에 유익한지 아닌지 여부를 확인하기 위해 이용될 수 있으며, 특정 셀 내의 점군 데이터의 개수가 임계값 k 이상인 경우, 대표 광선을 생성하는 것으로 결정하고, k보다 작은 경우 대표 광선을 생성하지 않고 셀 내 모든 점군 데이터에 대해 개별적으로 점유맵을 업데이트하는 것으로 결정될 수 있다. 그리고, 결정된 방법에 따라 점유맵이 업데이트될 수 있다. For example, if the number of the point cloud data included in the cell exceeds the threshold The representative
이하에서는 대표 광선을 이용하여 점유맵을 업데이트하는 경우와 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
도 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 평면)을 나타내고, 는 평면 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) Can represent the slope value of the
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.
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
이에 따라, 매핑 평면(910)은 여러 개의 영역들로 구성될 수 있으며, 매핑 평면(910)에서 하나의 영역은 하나의 경유 패턴(traversal pattern)에 매칭되어 있기 때문에, 대표 광선 생성부(230)는 같은 영역에 매핑되는 광선들을 묶어 대표 광선으로 생성할 수 있다. 여기서, 상기 모서리들(911)을 매핑 평면(910)에 투영시켜 복수개의 영역들로 구분하는 동작은 도 2의 매핑 라인 생성부(220)에서 수행할 수도 있고, 매핑 평면을 이용하여 3차원으로 대표 광선 생성을 확장하기 위한 프로세스를 별도로 처리하는 매핑 평면 처리부(미도시)에서 수행될 수도 있다. 매핑 평면 처리부에서 수행되는 경우, 도 2의 점유맵 업데이트 시스템(200)은 매핑 평면 처리부(미도시)를 더 포함할 수도 있다.Accordingly, the
도 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,
도 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,
도 11에서, 그리드 포인트(grid point, 1140)는 3개의 2차원 평면(1110, 1120, 1130) 각각의 매핑 라인 모두에서 동일한 세그먼트에 해당하는 그리트 포인트일 수 있다.11, a
도 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
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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)
센서로부터 획득한 점군(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 >
상기 오버랩(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 >
상기 맵핑 라인을 생성하는 단계는,
점유맵 상의 센서 원점으로부터 격자점(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 >
센서로부터 획득한 점군(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 >
동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 단계
를 더 포함하는 점유맵 업데이트 방법.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:
상기 맵핑 라인은,
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.
센서로부터 획득한 점군(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.
상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(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.
센서로부터 획득한 점군(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:
상기 맵핑 라인 생성부는,
상기 센서 원점을 포함하는 제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:
상기 맵핑 라인 생성부는,
점유맵 상의 센서 원점으로부터 격자점(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:
센서로부터 획득한 점군(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:
동일 세그먼트 구간에 해당하는 복수의 점군 데이터 대신 상기 대표 광선에 해당하는 점군 데이터를 점유맵 업데이트를 위해 저장하는 저장부
를 더 포함하는 점유맵 업데이트 시스템.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:
상기 맵핑 라인은,
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:
센서로부터 획득한 점군(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:
상기 대표 광선에 해당하는 세그먼트 구간에 속하는 점군 데이터들 각각에 해당하는 광선들은 점유맵 상에서 동일한 셀들을 경유(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:
상기 점유맵을 업데이트하는 방법은,
센서로부터 획득한 점군(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.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/817,421 US11300964B2 (en) | 2016-12-20 | 2017-11-20 | Method and system for updating occupancy map for a robotic system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160174452 | 2016-12-20 | ||
KR20160174452 | 2016-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180071928A 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2767775C1 (en) | 2018-07-11 | 2022-03-21 | ИНТЕРДИДЖИТАЛ ВиСи ХОЛДИНГЗ, ИНК. | Point cloud processing |
CN110940994B (en) * | 2018-09-25 | 2024-06-18 | 北京京东乾石科技有限公司 | 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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0591325B1 (en) * | 1991-06-28 | 2007-12-05 | LIM, Hong Lip | Improvements in 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 |
-
2017
- 2017-09-22 KR KR1020170122381A patent/KR101949609B1/en active IP Right Grant
Patent Citations (9)
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)
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 | |
US7499053B2 (en) | Real-time precision ray tracing | |
US20210109537A1 (en) | Autonomous exploration framework for indoor mobile robotics using reduced approximated generalized voronoi graph | |
CN112859859A (en) | Dynamic grid map updating method based on three-dimensional obstacle object pixel object mapping | |
US20210358209A1 (en) | Method and device for determining plurality of layers of bounding boxes, collision detection method and device, and motion control method and device | |
CN107677279A (en) | It is a kind of to position the method and system for building figure | |
Pan et al. | Real-time collision detection and distance computation on point cloud sensor data | |
CN113405552B (en) | Aircraft path planning method and device | |
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 | |
CN111076724B (en) | Three-dimensional laser positioning method and system | |
CN111009034B (en) | Three-dimensional model monomer method, system, storage medium and equipment | |
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 | |
CN118037790A (en) | Point cloud processing method and device, computer equipment and storage medium | |
CN117193278B (en) | Method, apparatus, computer device and storage medium for dynamic edge path generation | |
Kwon et al. | Super ray based updates for occupancy maps | |
CN117058358B (en) | Scene boundary detection method and mobile platform | |
CN116824068B (en) | Real-time reconstruction method, device and equipment for point cloud stream in complex dynamic scene | |
CN117456115B (en) | Method for merging adjacent three-dimensional entities | |
CN117870653B (en) | Method for establishing and updating two-dimensional differential Euclidean symbol distance field map | |
CN101297325A (en) | Application of interval algorithm for reducing computation time in ray tracking problems | |
Bazargani et al. | Planar surfaces recognition in 3d point cloud using a real-coded multistage genetic algorithm |
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 |