KR20160071236A - Mini Integrated-control device - Google Patents

Mini Integrated-control device Download PDF

Info

Publication number
KR20160071236A
KR20160071236A KR1020140178719A KR20140178719A KR20160071236A KR 20160071236 A KR20160071236 A KR 20160071236A KR 1020140178719 A KR1020140178719 A KR 1020140178719A KR 20140178719 A KR20140178719 A KR 20140178719A KR 20160071236 A KR20160071236 A KR 20160071236A
Authority
KR
South Korea
Prior art keywords
sensor data
main processor
voxel
data
processor
Prior art date
Application number
KR1020140178719A
Other languages
Korean (ko)
Other versions
KR102106889B1 (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 KR1020140178719A priority Critical patent/KR102106889B1/en
Priority to PCT/KR2015/001741 priority patent/WO2016093427A1/en
Priority to TW104134777A priority patent/TW201629752A/en
Publication of KR20160071236A publication Critical patent/KR20160071236A/en
Application granted granted Critical
Publication of KR102106889B1 publication Critical patent/KR102106889B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera

Abstract

According to a preferable embodiment of the present invention, a small integrated control device comprises: a main processor for processing bulk sensor data by using a multi-core CPU; an auxiliary processor for processing the bulk sensor data in parallel by using the same clock as the main processor; and a graphic processing unit for using the same clock as the main processor and processing in parallel a calculation which occurs when the bulk sensor data is processed.

Description

소형통합제어장치{Mini Integrated-control device}[0002] Mini Integrated-control device [0003]

본 발명은 대용량의 센서 데이터를 입력받아 병렬처리하여 신속한 결과를 획득하는 소형 통합 제어기에 관한 것이다. The present invention relates to a small-sized integrated controller that receives a large-capacity sensor data and performs parallel processing to obtain quick results.

도 1 은 종래 제어기의 일 예를 도시한다. 기존 제어기 시스템에서는 도 1 에 도시된 바와 같이 대용량 센서 데이터를 처리하기 위하여 많은 수의 CPU core가 요구되었고, 이를 확보하기 위하여 다수의 PC(110, 111, 112, 113, 114 및 115)를 기가비트 스위치(120)를 통해 연결하여 이용하였다. Figure 1 shows an example of a conventional controller. In the conventional controller system, as shown in FIG. 1, a large number of CPU cores are required in order to process large capacity sensor data. In order to secure large capacity sensor data, a plurality of PCs 110, 111, 112, 113, 114 and 115 are connected to a gigabit switch (120).

또한 다수의 PC 이외에도 시스템을 제어하기 위한 외부 센서와 부가적인 파트들이 각각 개별적 제품으로 연결되어 제어기 시스템은 상당한 크기와 부피를 지녔다. In addition to a large number of PCs, external sensors and additional parts for controlling the system are connected to individual products, so that the controller system has considerable size and volume.

"Towards Fully Autonomous Driving: Systems and Algorithms", 2011 IEEE Intelligent Vehicles Symposium (IV) Baden-Baden, Germany, June 5-9, 2011"Towards Fully Autonomous Driving: Systems and Algorithms", 2011 IEEE Intelligent Vehicles Symposium (IV) Baden-Baden, Germany, June 5-9, 2011

도 1에 도시된 대용량 센서데이터(100)가 PC1(110)으로 입력되는 경우, PC1(110)은 PC2, PC3, PC4, PC5 및 PC6(111, 112, 113, 114 및 115) 등과 같은 다른 PC 들에게 수신된 대용량의 센서 데이터를 전송하여 공유하였다. 그러나, 데이터를 전송하고 공유함에 있어 기가비트 이더넷 스위치의 경우 이론적으로는 1Gb/s 이지만 실제로는 50MB/s 의 전송속도를 가지게 되므로 PC 간에 대용량의 데이터를 효율적으로 공유하지 못하는 문제점이 있었다. When the large capacity sensor data 100 shown in FIG. 1 is input to the PC1 110, the PC1 110 is connected to another PC such as PC2, PC3, PC4, PC5 and PC6 111, 112, 113, 114 and 115 And transmitted the large amount of sensor data received and shared. However, in the case of transmitting and sharing data, the Gigabit Ethernet switch is theoretically 1 Gb / s, but actually has a transmission speed of 50 MB / s, so that it is not possible to efficiently share a large amount of data among PCs.

이러한 문제점을 해결하기 위하여 PC 1 (110)은 수신된 대용량의 센서 데이터 중 중요한 몇 Frame 만 선정하여 공유하게 되므로 PC 1(110) 이외의 다른 PC 들(111, 112, 113, 114 및 115)은 분해능이 저하된 센서 데이터를 기반으로 연산을 수행하게 되어 정밀한 연산결과 값을 얻을 수 없는 문제점이 있다. In order to solve such a problem, the PC 1 110 selects and shares only a few important frames among the received large-capacity sensor data, so that the PCs 111, 112, 113, 114 and 115 other than the PC 1 110 There is a problem in that an accurate calculation result value can not be obtained because the calculation is performed based on the sensor data whose resolution is degraded.

본 발명의 바람직한 일 실시예에서 소형통합제어장치는 멀티코어CPU를 이용하여 대용량 센서데이터를 처리하는 메인 프로세서와, 상기 메인프로세서와 동일한 클럭을 이용하여 상기 대용량 센서데이터를 병렬로 처리하는 보조프로세서 및 상기 메인프로세서와 동일한 클럭을 이용하며, 상기 대용량 센서데이터 처리시 발생하는 연산을 병렬로 처리하는 그래픽처리부를 포함하는 것을 특징으로 한다. In one preferred embodiment of the present invention, the small integrated controller includes a main processor for processing large-capacity sensor data using a multi-core CPU, a secondary processor for processing the large-capacity sensor data in parallel using the same clock as the main processor, And a graphic processing unit which uses the same clock as the main processor and processes the operations occurring in the large capacity sensor data processing in parallel.

바람직하게, 그래픽처리부는 상기 대용량 센서 데이터 중 3차원 거리 데이터를 수신하고, 상기 3차원 거리 데이터를 복셀(voxel) 데이터로 변환하며, 각각의 복셀마다 포함되어 있는 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산을 계산하는 연산부; 상기 평균 및 공분산 값을 기초로 계산된 아이젠 값 및 아이젠 벡터값을 기초로 각 복셀의 표면 방향각 및 높이를 계산하여 각 복셀을 통과할 수 있는지에 대한 확률값인 통과계수(traversability)를 계산하는 통과계수연산부; 및 각 복셀을 스캔한 횟수값(Occupancy)을 수치화하는 빈도검출부;를 포함하는 것을 특징으로 한다. Preferably, the graphics processing unit receives the three-dimensional distance data among the large-capacity sensor data, converts the three-dimensional distance data into voxel data, and stores the three-dimensional point cloud data included in each voxel An arithmetic unit for calculating an average and a covariance; Calculating the surface direction angle and height of each voxel based on the eigen value and the eigenvector value calculated on the basis of the average and covariance values, and calculating a traversability, which is a probability value for whether to pass through each voxel A coefficient operation unit; And a frequency detector for digitizing the number of times the respective voxels have been scanned (Occupancy).

바람직하게, 상기 그래픽처리부는 각 복셀에 대한 통과계수 및 각 복셀을 스캔한 횟수값을 상기 메인프로세서에 전송하고, 상기 메인 프로세서는 각 복셀에 대한 통과계수 및 각 복셀을 스캔한 횟수값을 누적적으로 이용하여 지도를 생성하는 것을 특징으로 한다. Preferably, the graphics processor transmits the pass coefficient for each voxel and the number of times of scanning each voxel to the main processor, and the main processor calculates a pass coefficient for each voxel and a value of the number of times each voxel is scanned, To generate a map.

바람직하게, 이동 물체는 이동 물체에 장착된 영상촬영센서에서 촬영한 주행 경로 영상 및 상기 메인프로세서에서 생성한 지도를 이용하여 주행한 경로를 복귀하는 것을 특징으로 한다.Preferably, the moving object is returned by using the traveling route image photographed by the image photographing sensor mounted on the moving object and the map generated by the main processor.

본 발명의 바람직한 일 실시예로서, 메인프로세서는 시스템 계층(System Layer), 인터페이스 계층(Interface Layer), 코어 계층(Core Layer) 및 애플리케이션 계층(Application Layer)을 포함하는 계층화된 스택을 포함하는 것을 특징으로 한다.As a preferred embodiment of the present invention, the main processor includes a layered stack including a system layer, an interface layer, a core layer, and an application layer. .

본 발명의 또 다른 바람직한 일 실시예로서, 소형통합제어장치에서 대용량 센서데이터를 처리하는 방법은 메인프로세서에서 적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 단계; 보조프로세서에서 상기 메인프로세서와 동일한 클럭을 이용하여 상기 대용량 센서데이터 중 환경인식과 관련된 센서데이터를 처리하는 단계;및 그래픽처리부에서 멀티코어를 이용하여 상기 메인프로세서와 동일한 클럭을 이용하여 상기 대용량 센서데이터 중 연산처리를 수행하는 단계;를 포함하고, 상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부는 병렬로 상기 대용량 센서데이터를 처리하는 것을 특징으로 한다. As another preferred embodiment of the present invention, a method for processing large-capacity sensor data in a small integrated control apparatus includes processing large-capacity sensor data using at least one or more multicore CPUs in a main processor; Processing the sensor data related to the environment recognition among the mass sensor data using the same clock as the main processor in the coprocessor and outputting the large capacity sensor data using the same clock as the main processor using the multi- Wherein the main processor, the coprocessor, and the graphics processor process the large-capacity sensor data in parallel.

본 발명의 또 다른 바람직한 일 실시예로서, 소형통합제어장치에서 대용량 센서데이터를 처리하는 방법은 메인프로세서에서 적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 단계; 상기 메인프로세서와 동일한 클럭을 이용하는 보조프로세서에서 상기 대용량 센서데이터 중 레이저 기반 센서데이터를 처리하는 단계;및 상기 메인프로세서와 동일한 클럭을 이용하는 그래픽처리부에서, 상기 대용량 센서데이터 중 영상 기반 센서데이터를 멀티코어를 이용하여 병렬로 처리하는 단계;를 포함하고, 상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부는 상기 대용량 센서 데이터를 병렬로 처리하며, 상기 그래픽처리부는 상기 대용량 센서데이터 중 3차원 거리데이터를 직사각형의 복셀단위로 분할하여, 각 복셀 내의 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산 값을 기초로 각 복셀을 통과할 수 있는 확률값을 계산하고, 각 복셀을 스캔한 횟수값을 이용하여 상기 각 복셀을 통과할 수 있는 확률값의 정확도에 가중치를 계산하는 것을 특징으로 한다.As another preferred embodiment of the present invention, a method for processing large-capacity sensor data in a small integrated control apparatus includes processing large-capacity sensor data using at least one or more multicore CPUs in a main processor; Processing the laser-based sensor data among the large-capacity sensor data in a coprocessor using the same clock as that of the main processor, and in a graphics processing unit using the same clock as the main processor, Wherein the main processor, the coprocessor, and the graphics processor process the large-capacity sensor data in parallel, and the graphic processor processes the three-dimensional distance data among the large-capacity sensor data into a rectangle , Calculates a probability value that can pass through each voxel based on the average and covariance values of three-dimensional point cloud data in each voxel, The accuracy of the probability values that can pass through each voxel Characterized in that for calculating the weights.

본 발명의 바람직한 일 실시예로서, 소형 통합 제어장치는 인공지능, 군사장비, 공장 자동화, 이동형 서버장비, 자율주행 로봇 분야에서 활용이 가능한 효과가 있다. As a preferred embodiment of the present invention, the compact integrated control device has an effect that it can be utilized in artificial intelligence, military equipment, factory automation, mobile server equipment, and autonomous mobile robot.

도 1 은 일반적인 제어기의 일 예를 도시한다.
도 2 는 본 발명의 바람직한 일 실시예로서, 소형통합장치(200)의 일 예를 도시한다.
도 3 내지 4는 본 발명의 바람직한 일 실시예로서, 소형통합제어장치(300)의 내부 구성도를 도시한다.
도 5 내지 7 은 본 발명의 바람직한 일 실시예로서, 그래픽처리부에서 연산처리를 수행하는 일 실시예를 도시한다.
도 8은 본 발명의 바람직한 일 실시예로서, 메인프로세서(310)에서 지원하는 계층화된 스택(800)을 도시한다.
도 9 는 본 발명의 바람직한 일 실시예로서, 소형통합제어장치가 장착된 또는 소형통합제어장치를 이용하는 이동체의 일 실시예를 도시한다.
도 10은 본 발명의 바람직한 일 실시예에서, 소형통합제어장치의 그래픽처리부에서 병렬적으로 대용량센서데이터를 처리하는 흐름도를 도시한다.
도 11은 본 발명의 바람직한 일 실시예에서, 소형통합제어장치의 그래픽처리부에서 연산처리를 수행하는 흐름도를 도시한다.
1 shows an example of a general controller.
2 shows an example of a small integrated device 200, which is a preferred embodiment of the present invention.
3 to 4 show an internal configuration diagram of a small integrated control apparatus 300 as a preferred embodiment of the present invention.
FIGS. 5 to 7 illustrate an embodiment in which an operation process is performed in a graphics processing unit according to a preferred embodiment of the present invention.
FIG. 8 illustrates a layered stack 800 supported by a main processor 310 according to a preferred embodiment of the present invention.
Fig. 9 shows an embodiment of a moving object equipped with a small integrated control device or using a small integrated control device, according to a preferred embodiment of the present invention.
Fig. 10 shows a flowchart for processing large capacity sensor data in parallel in a graphics processing unit of a small integrated control apparatus, in a preferred embodiment of the present invention.
11 shows a flow chart for performing arithmetic processing in a graphics processing unit of a small integrated control apparatus in a preferred embodiment of the present invention.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. It is noted that the terms "comprises" and / or "comprising" used in the specification are intended to be inclusive in a manner similar to the components, steps, operations, and / Or additions.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다.Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs. Also, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise.

본 발명의 실시예들은 서버 컴퓨터 시스템, 데스크톱 컴퓨터 시스템들, 랩톱들로 제한되지 않고, 핸드헬드 디바이스들, 스마트폰들, 태블릿들, 다른 씬 노트북들, SOC(systems on a chip, 시스템 온 칩) 디바이스들, 및 임베디드 응용 분야들과 같은 다른 디바이스들에서도 사용될 수 있다. 핸드헬드 디바이스는 셀룰러폰들, 인터넷 프로토콜 디바이스들, 디지털 카메라들, PDA들(personal digital assistants, 개인 휴대 단말기들), 및 핸드헬드 PC들을 포함한다. 또한, 본 명세서에 기술되어 있는 장치들, 방법들, 및 시스템들이 물리 컴퓨팅 디바이스들로 제한되지 않고, 또한 에너지 절감 및 효율을 위한 소프트웨어 최적화를 위해 이용될 수도 있다.Embodiments of the present invention are not limited to server computer systems, desktop computer systems, laptops, handheld devices, smartphones, tablets, other thin notebooks, systems on a chip (SOC) Devices, and other applications such as embedded applications. Handheld devices include cellular phones, Internet protocol devices, digital cameras, PDAs (personal digital assistants), and handheld PCs. In addition, the devices, methods, and systems described herein are not limited to physical computing devices, and may also be utilized for software optimization for energy savings and efficiency.

도 2 는 본 발명의 바람직한 일 실시예로서, 소형통합장치(200)의 일 예를 도시한다. 2 shows an example of a small integrated device 200, which is a preferred embodiment of the present invention.

소형통합장치(200)는 적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 메인프로세서(210), 메인프로세서(210)와 동일한 클럭을 이용하며 대용량 센서데이터를 처리하는 보조프로세서(220), 메인프로세서와 동일한 클럭을 이용하며, 대용량 센서데이터의 연산처리를 수행하는 그래픽처리부(230)를 포함한다. 본 발명의 바람직한 일 실시예로서, 메인프로세서(210), 보조프로세서(220) 및 그래픽처리부(230)는 대용량 센서데이터를 병렬로 처리가 가능하다. The small integrated device 200 includes a main processor 210 for processing large-capacity sensor data using at least one multicore CPU, a secondary processor 220 for processing large-capacity sensor data using the same clock as the main processor 210, And a graphics processing unit 230 that uses the same clock as the main processor and performs arithmetic processing of the large-capacity sensor data. As a preferred embodiment of the present invention, the main processor 210, the coprocessor 220, and the graphic processor 230 are capable of processing large-capacity sensor data in parallel.

소형통합장치(200)는 입출력 인터페이스(240)를 이용하여 메인프로세서(210), 보조프로세서(220) 및 그래픽처리부(230)를 직렬 또는 병렬로 확장하도록 구현이 가능하다. The small integrated device 200 can be implemented to expand the main processor 210, the coprocessor 220 and the graphic processing unit 230 in series or in parallel using the input / output interface 240.

본 발명의 바람직한 일 실시예에서, 메인프로세서(210)는 범용 또는 특수 목적 중앙 처리 장치(CPU), 주문형 반도체(ASIC) 또는 디지털 신호 프로세서(DSP)를 포함하는 임의의 타입의 데이터 프로세서일 수 있다. In one preferred embodiment of the present invention, the main processor 210 may be any type of data processor, including a general purpose or special purpose central processing unit (CPU), an application specific integrated circuit (ASIC) or a digital signal processor .

예를 들어, 메인프로세서(210)는 Core™ i3, i5, i7, 2 Duo 및 Quad, Xeon™, 또는 Itanium™ 프로세서 등의 범용 프로세서일 수 있다. 메인프로세서(210)는 특수 목적을 위해 제작된 프로세서, 예를 들어, 네트워크 또는 통신 프로세서, 압축 엔진, 그래픽 프로세서, 코-프로세서, 내장형 프로세서 등일 수 있다. 메인프로세서(210)는 하나 이상의 패키지들 내에 포함된 하나 이상의 칩들로 구현될 수 있다. 메인프로세서(210)는, 예를 들어, BiCMOS, CMOS 또는 NMOS 등의 다수의 프로세스 기술들 중 임의의 기술을 이용할 수 있다.For example, the main processor 210 may be a general purpose processor such as a CoreTM i3, i5, i7, 2 Duo and Quad, XeonTM, or ItaniumTM processor. The main processor 210 may be a processor, such as a network or communications processor, a compression engine, a graphics processor, a co-processor, a built-in processor, etc., designed for a special purpose. The main processor 210 may be implemented with one or more chips included in one or more packages. The main processor 210 may utilize any of a number of process technologies, such as, for example, BiCMOS, CMOS, or NMOS.

본 발명의 바람직한 일 실시예에서, 메인프로세서(210)는 적어도 하나 이상의 멀티코어CPU(212, 214)를 포함할 수 있다. 적어도 하나 이상의 멀티코어CPU(212, 214) 간에는 QPI(Quick Path Interconnect)프로토콜을 이용하여 통신이 가능하다. 메인프로세서(210)는 패킷 기반의 점대점(point-to-point) 상호 연결 버스를 이용하여 상기 적어도 하나 이상의 멀티코어 CPU(210, 212)를 상호 연결할 수 있다. In a preferred embodiment of the present invention, the main processor 210 may include at least one multicore CPU 212, 214. At least one of the multicore CPUs 212 and 214 can communicate using a QPI (Quick Path Interconnect) protocol. The main processor 210 may interconnect the at least one multicore CPU 210, 212 using a packet-based point-to-point interconnect bus.

본 발명의 바람직한 일 실시예에서, 그래픽처리부(230)는 3D 또는 2D 그래픽 커맨드들 등의 그래픽 커맨드들을 실행하기 위한 로직을 포함한다. 그래픽처리부(230)는 Open GL 및/또는 Direct X 응용 프로그래밍 인터페이스들(API들)(예를 들어, OpenGL 4.1 및 Direct X 11)에 의해 지정된 커맨드들 등의 산업 표준 그래픽 커맨드들을 실행할 수 있다.In one preferred embodiment of the present invention, the graphics processing unit 230 includes logic for executing graphics commands, such as 3D or 2D graphics commands. Graphics processing unit 230 may execute industry standard graphics commands such as those specified by Open GL and / or Direct X application programming interfaces (APIs) (e.g., OpenGL 4.1 and DirectX 11).

입출력 인터페이스(240)는 근거리 통신망, 광역 통신망 또는 인터넷 등의네트워크 통신, 내부 유닛 또는 외부 장치와의 통신을 지원할 수 있다. 입출력 인터페이스(240)는 내부 유닛 또는 외부 장치와의 액세스 및 네트워크 통신을 제공하기 위해 어댑터, 허브 등을 추가로 더 포함할 수 있다. 입출력 인터페이스(240)는 메인프로세서(210)와 동일한 칩 또는 동일한 보드에 구현되거나 또는 메인프로세서(210)에 연결된 별개의 칩 및/또는 패키지에 구현될 수 있다. The input / output interface 240 can support network communication such as a local area network, a wide area network, or the Internet, and communication with an internal unit or an external device. The input / output interface 240 may further include an adapter, a hub, and the like to provide access and network communication with an internal unit or an external device. The input / output interface 240 may be implemented on the same chip or the same board as the main processor 210 or in a separate chip and / or package connected to the main processor 210.

도 3 내지 4는 본 발명의 바람직한 일 실시예로서, 소형통합제어장치(300)의 내부 구성도를 도시한다. 3 to 4 show an internal configuration diagram of a small integrated control apparatus 300 as a preferred embodiment of the present invention.

소형통합제어장치(300)는 메인프로세서(310), 보조프로세서(320) 및 그래픽처리부(330)를 포함한다. The small integrated control device 300 includes a main processor 310, a coprocessor 320, and a graphics processing unit 330.

바람직하게, 소형통합제어장치(300)는 입출력인터페이스(340) 또는 이더넷 스위치(350)를 더 포함할 수 있다.Preferably, the small integrated control device 300 may further include an input / output interface 340 or an Ethernet switch 350.

바람직하게, 소형통합제어장치(300)는 메인프로세서(310), 보조프로세서(320) 및 그래픽처리부(330)에 전원을 공급하는 전원부(미 도시)를 더 포함할 수 있다.The small integrated control device 300 may further include a main processor 310, a coprocessor 320 and a power supply unit (not shown) for supplying power to the graphic processing unit 330. [

바람직하게, 소형통합제어장치(300)는 메인프로세서(310), 보조프로세서(320) 및 그래픽처리부(330)를 제어하는 MCU(Micro Control Unit)(미 도시)를 더 포함할 수 있다. 이 경우 MCU는 메인프로세서(310)와 이더넷 또는 RS232 등의 통신으을 수행할 수 있고, 전원부와는 CAN 통신으로 연결되어 있어, 전원 상태와 Fault 상황에 대해 주변 장치들의 후속 대책을 제어하도록 구현될 수 있다.The micro integrated controller 300 may further include an MCU (Micro Control Unit) (not shown) for controlling the main processor 310, the coprocessor 320, and the graphics processor 330. In this case, the MCU can perform communication such as Ethernet or RS232 with the main processor 310, and is connected to the power unit through CAN communication, so that the MCU can be implemented to control the follow-up measures of the peripheral devices for the power state and the fault situation have.

본 발명의 바람직한 일 실시예로서, 소형통합제어장치(300)는 동일한 시스템 클럭을 이용하는 메인프로세서(310), 보조프로세서(320) 및 그래픽처리부(330)를 이용하여 대용량 센서데이터를 병렬로 처리할 수 있다. In one preferred embodiment of the present invention, the small integrated control device 300 can process large-capacity sensor data in parallel using the main processor 310, the coprocessor 320, and the graphics processor 330 using the same system clock .

본 발명의 바람직한 일 실시예로서, 소형통합제어장치(300)가 자율 주행 로봇, 이동 로봇, 이동체 등에 구현될 경우의 예를 가정할 수 있다.As one preferred embodiment of the present invention, it is assumed that the small integrated control device 300 is implemented as an autonomous mobile robot, a mobile robot, a moving object, or the like.

이 경우, 메인프로세서(310)는 자율 주행 로봇, 이동 로봇, 이동체 등에서 스스로 주행 경로를 선택하고 장애물을 피해 목적지로 이동하기 위해 대용량 센서데이터에서 획득한 자율 주행 로봇, 이동 로봇, 이동체 등의 위치 데이터 및 자율 주행 로봇, 이동 로봇, 이동체 등과 근접한 위치에 있는 장애물에 대한 데이터를 기반으로 자율주행을 위한 이동 경로를 표시하는 주행 맵 또는 지도를 생성할 수 있다. In this case, the main processor 310 selects the traveling path by itself from the autonomous mobile robot, the mobile robot, and the moving object, and calculates the position data of the autonomous mobile robot, the mobile robot, And an automobile map or a map indicating a movement route for autonomous travel based on data of an obstacle in a position close to an autonomous mobile robot, a mobile robot, or a mobile object.

이 경우, 보조프로세서(320)는 메인프로세서(310)에서 수신한 대용량 센서데이터 중 환경인식과 관련된 연산을 처리하고, 그래픽처리부(330)는 대용량 센서데이터 중 영상과 관련된 연산을 처리하도록 병렬 처리를 수행할 수 있다. In this case, the coprocessor 320 processes an operation related to environment recognition among the large-capacity sensor data received by the main processor 310, and the graphic processor 330 performs parallel processing to process image-related operations among the large- Can be performed.

보조프로세서(320)에서 수행하는 환경인식과 관련된 연산은 레이저 기반 센서데이터를 처리하는 연산을 포함한다. 레이저 기반 센서데이터는 레이저 스캐너 등에서 검출된 센서데이터를 포함한다. Operations associated with the perception of the environment performed by the coprocessor 320 include operations to process laser-based sensor data. The laser-based sensor data includes sensor data detected by a laser scanner or the like.

그래픽처리부(330)에서 수행하는 영상과 관련된 연산은 카메라 영상, 연산처리 등을 포함한다. 또한 레이저 기반 센서데이터로부터 도출된 연산처리도 그래픽처리부(330)에서 처리할 수 있다. An operation related to the image performed by the graphic processing unit 330 includes a camera image, an arithmetic process, and the like. Also, the computation processing derived from the laser-based sensor data can be processed in the graphic processing unit 330.

본 발명의 바람직한 일 실시예에서, 메인프로세서(310)는 자율 주행 로봇, 이동 로봇, 이동체 등에서 위치 데이터, 거리데이터, 근접한 위치에 있는 장애물에 대한 데이터 등을 나타내는 LADAR 센서정보, 2D, 3D LADAR 거리정보, CAMERA 영상정보 등을 수신할 수 있다. 이 경우, 메인프로세서(310)는 이더넷 스위치(350) 등을 이용하여 대용량 센서데이터를 수신하도록 구현될 수 있다. In a preferred embodiment of the present invention, the main processor 310 may include LADAR sensor information indicating position data, distance data, data on obstacles in close proximity, etc. in an autonomous mobile robot, a mobile robot, Information, CAMERA image information, and the like. In this case, the main processor 310 may be configured to receive the large-capacity sensor data using the Ethernet switch 350 or the like.

메인프로세서(310)는 대용량 센서데이터 중 거리데이터 및 근접한 위치에 있는 장애물에 대한 데이터의 연산처리는 그래픽처리부(330)에서 수행하도록 데이터를 전송하고, 그래픽처리부(330)에서 연산처리가 끝나면, 결과를 수신하여, 그에 기초하여 주행맵 또는 지도를 생성하도록 구현될 수 있다. 그래픽처리부(330)에서 연산을 처리하는 일 실시예는 도 5 내지 6을 참고한다. The main processor 310 transmits the data to the graphic processor 330 to process the data of the distance data and the obstacles in the proximate positions of the large capacity sensor data. And generate an on-road map or map based thereon. One embodiment of processing an operation in the graphics processing unit 330 is illustrated in Figures 5-6.

도 8은 본 발명의 바람직한 일 실시예로서, 메인프로세서(310)에서 지원하는 계층화된 스택(800)을 도시한다. FIG. 8 illustrates a layered stack 800 supported by a main processor 310 according to a preferred embodiment of the present invention.

계층화된 스택(800)은 시스템 계층(System Layer)(810), 인터페이스 계층(Interface Layer)(820), 코어 계층(Core Layer)(830) 및 애플리케이션 계층(Application Layer)(840)을 포함한다. The layered stack 800 includes a system layer 810, an interface layer 820, a core layer 830, and an application layer 840.

인터페이스 계층(Interface Layer)(820)은 MCU, 센서 및 통신 인터페이스를 지원한다. The Interface Layer 820 supports MCUs, sensors, and communication interfaces.

코어 계층(Core Layer)(830)은 동적 환경 실시간 파악, 시각 주행거리 파악, 레이저 스캔 매칭 등과 같은 위치추정, 동적 장애물 탐지 및 추적, 레이저기반 환경인식 등과 같은 환경인식, RRT 샘플링 기반 전역 경로 계획, costom planning 및 동적 장애물 회피 등과 같은 planning, Basic Waypoint following 및 Fast Waypoint following 과 같은 주행제어, 그 외 수학라이브러리 및 유틸 라이브러리를 지원한다. The core layer 830 is used for locating the dynamic environment in real time, locating the visual distance, locating such as laser scan matching, dynamic obstacle detection and tracking, environment recognition such as laser based environment recognition, global route planning based on RRT sampling, planning, basic waypoint following and fast way following, such as costom planning and dynamic obstacle avoidance, and other math and utility libraries.

보조프로세서(320)는 코어 계층(Core Layer)(830) 중 동적 장애물 탐지 및 추적, 레이저기반 환경인식 등과 같은 환경인식을 지원하여 처리가 가능하다. 또한, 병렬처리를 최적화 할 수 있는 부분을 처리하도록 구현이 가능하다. Planning SW에서도 각 격자로 나누어 처리할 수 있어 병렬화가 가능하다면 보조프로세서(320)에서 처리될 수 있다.The coprocessor 320 supports environmental recognition such as dynamic obstacle detection and tracking and a laser-based environment recognition among the core layer 830, for example. It can also be implemented to handle parts that can optimize parallel processing. The planning SW can also be divided into individual grids and processed by the auxiliary processor 320 if parallelization is possible.

도 5 내지 6 은 본 발명의 바람직한 일 실시예로서, 그래픽처리부에서 연산처리를 수행하는 일 실시예를 도시한다. FIGS. 5 to 6 illustrate an embodiment for performing arithmetic processing in the graphics processing unit according to a preferred embodiment of the present invention.

그래픽처리부(500)는 메인프로세서와 동일한 클럭을 이용하며, 멀티코어를 이용하여 대용량 센서데이터의 연산처리를 병렬로 처리한다. The graphics processor 500 uses the same clock as the main processor and processes the large-capacity sensor data in parallel by using the multicore.

그래픽처리부(500)는 연산부(532), 통과계수연산부(534) 및 빈도검출부(536)를 포함한다. The graphic processing unit 500 includes an operation unit 532, a pass coefficient operation unit 534, and a frequency detection unit 536.

연산부(532)는 메인프로세서(510)로부터 대용량 센서 데이터 중 3차원 거리 데이터, 카메라 영상, 주행 데이터 등을 수신할 수 있다. 본 발명의 바람직한 일 실시예로서, 3차원 거리 데이터는 장애물의 3차원 영상 데이터, 거리 정보, 이동 정보 중 하나 이상을 근거로 하여 형성된다. The calculation unit 532 can receive the three-dimensional distance data, the camera image, the traveling data, and the like among the large-capacity sensor data from the main processor 510. In one preferred embodiment of the present invention, the three-dimensional distance data is formed based on at least one of three-dimensional image data of the obstacle, distance information, and movement information.

연산부(532)는 도 6 의 일 실시예와 같이 3차원 거리데이터를 복셀(voxel) 데이터로 변환한다. 그 후, 각각의 복셀마다 포함되어 있는 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산을 계산한다. The operation unit 532 converts the three-dimensional distance data into voxel data as in the embodiment of FIG. Then, the average and covariance of the three-dimensional point cloud data contained in each voxel are calculated.

도 6 을 참고하면, 본 발명의 바람직한 일 실시예에서 연산부(532)는 3차원 거리 데이터를 일정한 크기의 직사각형 크기의 복셀로 분할한다(S610, S620, S630). 이 경우 각각의 복셀(S610, S620, S630)은 서로 독립적인 관계로, 각 복셀에 대한 계산은 멀티코어로 구현된 그래픽처리부에서 빠르게 처리가 가능하다. 본 발명의 바람직한 일 실시예로서, 복셀의 높이는 벨로다인 센서 등 3차원 거리 감지 센서가 검출할 수 있는 최대의 높이로 설정할 수 있다. Referring to FIG. 6, in a preferred embodiment of the present invention, the operation unit 532 divides the three-dimensional distance data into voxels of a rectangular size having a predetermined size (S610, S620, S630). In this case, since each of the voxels S610, S620, and S630 is independent of each other, the calculation for each voxel can be processed quickly by a multi-core graphics processing unit. In one preferred embodiment of the present invention, the height of the voxel may be set to a maximum height that can be detected by a three-dimensional distance sensor such as a velodyne sensor.

본 발명의 바람직한 일 실시예에서, 연산부(532)는 각각의 복셀(S610, S620, S630)마다 포함되어 있는 3차원 포인트 클라우드(point cloud) 데이터의 평균(mean) 및 공분산(covariance)을 계산한다. In a preferred embodiment of the present invention, the operation unit 532 calculates a mean and a covariance of three-dimensional point cloud data included in each of the voxels S610, S620, and S630 .

통과계수연산부(534)는 연산부(532)에서 계산된 각 복셀의 평균(mean) 및 공분산(covariance)을 이용하여 아이젠 값 및 아이젠 벡터값을 계산한다. 본 발명의 바람직한 일 실시예에서는 아이젠값(Eigen value)를 이용하여 각 복셀 내의 3차원 포인트 클라우드(point cloud) 데이터의 높이(도 6, S611)를 구하고, 아이젠 벡터값을 이용하여 각 복셀 내의 3차원 포인트 클라우드(point cloud) 데이터의 표면 방향각(도 6, S613)을 구한다. The pass coefficient calculator 534 calculates the eigenvalue and the eigenvector using the mean and covariance of each voxel calculated by the calculator 532. [ In one preferred embodiment of the present invention, the height (FIG. 6, S611) of the three-dimensional point cloud data in each voxel is obtained using the Eigen value, and the height The surface direction angle (FIG. 6, S613) of the point cloud data is obtained.

통과계수연산부(534)는 아이젠값 및 아이젠 벡터값을 이용하여 각 복셀 내의 3차원 포인트 클라우드(point cloud) 데이터의 높이 및 표면 방향각을 계산하고, 이를 기초로 각 복셀을 통과할 수 있는지에 대한 확률값을 계산한다. 표면 방향각은 surface Normal 을 통해 계산될 수 있다. 본 발명에서는 이 확률값을 통과계수(traversability)라 지칭한다. 통과계수는 수학식 1과 같이 구해질 수 있다.
The pass coefficient calculator 534 calculates the height and the surface direction angle of the three-dimensional point cloud data in each voxel using the eigen value and the eigenvector value, Calculate the probability value. The surface orientation angle can be calculated via surface normal. In the present invention, this probability value is referred to as a traversability. The pass coefficient can be calculated as shown in Equation (1).

Figure pat00001
Figure pat00001

수학식 1에서 N(x)는 surface Normal을 계산하는 함수이고, x는 각 복셀의 인덱스를 나타낸다.
In Equation (1), N (x) is a function for calculating surface normal, and x represents an index of each voxel.

빈도검출부(536)는 각 복셀이 스캔된 횟수(Occupancy)를 수치화한다. 각 복셀이 스캔된 횟수를 파악하는 것이 그래픽처리부(530)에서만 수행될 수 있는 것으로 제한되는 것이 아니라, 메인프로세서(510)에서도 수행이 가능하다는 것을 주의하여야 한다. The frequency detector 536 digitizes the number of times each voxel is scanned (Occupancy). It should be noted that it is not limited to being able to perform the number of times each voxel is scanned only in the graphic processor 530, but can also be performed in the main processor 510.

본 발명의 바람직한 일 실시예로서, 이동 로봇, 이동체, 자율형 로봇 등에 장착된 레이저 센서는 근접한 거리에 있는 물체를 스캔하는 횟수가 원거리에 있는 물체를 스캔하는 횟수보다 높다. 본 발명의 바람직한 일 실시예에서, 빈도검출부(536)는 레이저 스캐너, 레이저 센서 등의 이러한 특성을 이용하여 각 복셀이 스캔된 횟수(Occupancy)가 기설정된 횟수 이상 높을수록 가까운 곳에 위치하며 장애물 또는 물체 등으로 인식한 가능성이 정확함을 파악할 수 있다. 또한 센서데이터의 오차와 이동 로봇, 이동체, 자율형 로봇 등에서 위치 인식시 발생하는 오차를 줄일 수 있다.As a preferred embodiment of the present invention, a laser sensor mounted on a mobile robot, a moving object, an autonomous robot or the like is higher in the number of times that an object at a close distance is scanned than the number of times that an object at a distance is scanned. In one preferred embodiment of the present invention, the frequency detector 536 is located nearer to the preset number of occasions (Occupancy) of each voxel than the predetermined number of times the voxel has been scanned using a laser scanner, a laser sensor, And so on. In addition, it is possible to reduce the error in sensor data and errors in position recognition in mobile robots, mobile objects, autonomous robots, and the like.

본 발명의 바람직한 일 실시예로서, 그래픽처리부(530)는 각 복셀이 스캔된 횟수(Occupancy) 정보 및 각 픽셀의 통과계수를 메인프로세서(510)로 전송한다.In one preferred embodiment of the present invention, the graphics processor 530 transmits Occupancy information of each voxel and the pass coefficient of each pixel to the main processor 510.

메인프로세서(510)는 각 복셀이 스캔된 횟수(Occupancy) 정보 및 각 픽셀의 통과계수에 대한 정보를 수신하면, 각 복셀이 스캔된 횟수(Occupancy) 정보 및 각 픽셀의 통과계수에 대한 정보를 누적적으로 이용하여 주행맵생성부(511)를 통해 3차원 주행맵 또는 지도를 작성한다. 메인프로세서(510)는 주행 경로의 전방에 대하여 지속적으로 얻어지는 3차원 거리 데이터를 히스토그램 매칭 등을 수행하여 시간에 따른 이동 정보 및 주행맵를 구할 수 있다. 이렇게 생성된 3차원 지도는 내부 칩, 내부 보드 또는 원격 장치에 저장이 가능하다. When the main processor 510 receives Occupancy information of each voxel and information on the pass coefficient of each pixel, the main processor 510 accumulates Occupancy information of each voxel and pass coefficient of each pixel, And generates a three-dimensional running map or a map through the running map generating unit 511. [ The main processor 510 can obtain the movement information and the traveling map according to time by performing histogram matching or the like on the three-dimensional distance data continuously obtained in front of the traveling route. The generated three-dimensional map can be stored in an internal chip, an internal board or a remote device.

메인프로세서(510)에서 주행맵을 생성은 수학식 2와 같이 가능하다.The main processor 510 generates the driving map as shown in Equation (2).

Figure pat00002
Figure pat00002

이 경우, Weightt=Weightt -1 + Occupancyt In this case, Weight t = Weight t -1 + Occupancy t

본 발명의 바람직한 일 실시예에서, 이동체, 이동 로봇, 자율형 로봇 등은 메인프로세서(510)에서 생성한 주행맵을 참고하여, 주행한 경로를 자동으로 복귀가 가능하다. In a preferred embodiment of the present invention, the moving object, the mobile robot, the autonomous robot, and the like can automatically return the traveling route by referring to the traveling map generated by the main processor 510. [

본 발명의 바람직한 일 실시예에서, 주행맵 생성은 메인프로세서(510)에서 단독으로 진행되지 않고 그래픽처리부(530)에서의 연산처리 및 보조프로세서에서의 환경인식과 병렬적으로 실시간으로 처리되는 특징이 있다.In a preferred embodiment of the present invention, the driving map generation is not performed by the main processor 510 alone, but is performed in parallel in parallel with the operation processing in the graphic processor 530 and the environment recognition in the coprocessor have.

도 7 은 본 발명의 바람직한 일 실시예로서, 그래픽처리부에서 3차원 거리데이터를 인식하여 통과계수를 계산하는 일 예를 도시한다. FIG. 7 illustrates an example of recognizing three-dimensional distance data and calculating a pass coefficient in a graphic processor according to a preferred embodiment of the present invention.

그래픽처리부는 3차원 거리데이터를 인식한 후(710), 인식한 3차원 거리데이터를 복셀데이터로 변환하고(720), 이 후 각 복셀 내의 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산 값을 기초로 아이젠 값, 아이젠 벡터값을 계산하여 통과계수를 검출한다. 통과계수의 수치가 커질수록 진하게 표시되어 장애물이 존재함을 나타낸다. 통과계수의 수치가 큰 부분을 음영이 진하게 표시되고(711), 통과계수의 수치가 낮을수록 음영이 연하게 표시된다. 예를 들어 통과계수가 0.1 인 경우는 음영이 연하게 표시되고, 나무의 잎사귀 부분을 나타낼 수 있으며, 통과계수가 0.7인 경우는 음영이 진하게 표시되고, 나무의 기둥을 나타낼 수 있다. The graphic processing unit recognizes the three-dimensional distance data (710), converts the recognized three-dimensional distance data into voxel data (720), and then converts the three-dimensional distance data into the average and covariance values The eigen value and the eigen vector value are calculated to detect the pass coefficient. The larger the value of the pass coefficient is, the darker it is, indicating that an obstacle exists. The shaded portion of the portion where the numerical value of the pass coefficient is large is displayed (711), and the lower the numerical value of the pass coefficient is, the shaded is displayed. For example, if the coefficient of passage is 0.1, the shadows are displayed softly and can represent the leaf part of a tree. When the coefficient of passage is 0.7, the shade is displayed in bold and can represent the column of a tree.

도 7c 는 본 발명의 바람직한 일 실시예로서, 소형통합제어장치를 이용하는 이동체, 이동 로봇, 자율형 로봇(700)에서 통과계수값을 계산하여 경로를 설정한 일 예를 도시한다. 7C shows an example of setting a path by calculating a pass coefficient value in a moving object, a mobile robot, and an autonomous robot 700 using a small integrated control device according to a preferred embodiment of the present invention.

통과계수값이 높을수록 통과할 수 있는 확률이 낮다는 것을 의미하며, 음영이 진하게 표시되고, 통과계수값이 낮을수록 통과할 수 있는 확률이 높다는 것을 의미하며, 음영이 연하게 표시된다. The higher the value of the pass coefficient, the lower the probability of passage. The higher the value of the pass coefficient, the higher the probability that the shade will pass, and the shade is lightly displayed.

도 9 는 본 발명의 바람직한 일 실시예로서, 소형통합제어장치가 장착된 또는 소형통합제어장치를 이용하는 이동체의 일 실시예를 도시한다. Fig. 9 shows an embodiment of a moving object equipped with a small integrated control device or using a small integrated control device, according to a preferred embodiment of the present invention.

이동체(900)는 3D 센서부, 센서부, GPS 송수신부, 제어부 및 출력부 (내부 구성 미도시)을 포함하도록 구현될 수 있다. 센서부는 스티어링(steering) 감지부, 속도 센서, 가속 센서, 위치 센서 등을 포함할 수 있다.The moving body 900 may be implemented to include a 3D sensor unit, a sensor unit, a GPS transceiver unit, a control unit, and an output unit (internal configuration not shown). The sensor unit may include a steering sensing unit, a speed sensor, an acceleration sensor, a position sensor, and the like.

3D 센서부는 회전체 반사경과 집광 렌즈 및 촬상 소자를 이용하여 전방위, 후방위 및/또는 측방위를 한번에 촬영하는 카메라 시스템으로서, 보안 시설과 감시 카메라, 로봇 비전 등에 응용된다. 회전체 반사경의 형상으로는 쌍곡면이나 구면, 원추형, 복합형 등 다양하다. 또한, 촬상 소자로는 CCD(Charge Coupled Device) 또는 CMOS(Complementary Metal Oxide Semiconductor)가 사용된다. 이 촬상 소자의 촬상면에 투영되는 화상(즉 전방위 영상)은 회전체 반사경에 반사된 것이어서 인간이 그대로 관찰하기에는 적합하지 않은 일그러진 화상이다. 따라서 3D 센서부는 화상의 정확한 관찰을 위해 촬상 소자의 출력을 마이크로프로세서 등을 통해 그 좌표를 변환하여 새로운 파노라마 영상을 만들어낸다.The 3D sensor unit is a camera system that captures omnidirectional, rearward, and / or side orientations at once using a rotating mirror, a condenser lens, and an image pickup device. It is applied to security facilities, surveillance cameras, robot vision, and the like. The shape of the rotating body reflector may be hyperbolic, spherical, conical, or hybrid. Also, a CCD (Charge Coupled Device) or a CMOS (Complementary Metal Oxide Semiconductor) is used as the imaging element. An image (i.e., an omnidirectional image) projected on the imaging surface of the imaging element is a reflection image that is reflected on the rotating mirror and is a distorted image that is not suitable for human observation. Therefore, in order to observe the image accurately, the 3D sensor unit converts the coordinates of the output of the image pickup device through a microprocessor or the like to produce a new panoramic image.

3D 센서부는 전방위를 3차원적으로 촬영하여 3차원 거리 데이터를 획득하기 위해 스테레오 카메라(stereo camera), 깊이 카메라(depth camera), 이동식 스테레오 카메라(moving stereo camera) 및 라이다(Light Detection and Ranging; LIDAR) 장비 중 하나 이상을 포함하여 구성될 수 있다.The 3D sensor unit includes a stereo camera, a depth camera, a moving stereo camera, and a light detector (RDA) to capture three-dimensional distance data by three-dimensionally capturing all directions. LIDAR) equipment.

스테레오 카메라는 복수의 카메라로 구성되는 영상 장치이다. 3D 센서부(110)를 통해 얻은 전방위 영상은 3D 센서부 주변에 대한 2차원적인 정보를 제공한다. 만약 복수의 카메라를 통해 서로 다른 방향에서 촬영한 복수의 영상을 이용하면 3D 센서부 주변에 대한 3차원적인 정보를 얻을 수 있다. 이와 같은 스테레오 카메라를 이동체 또는 이동 로봇의 위치 인식 및 지도 생성에 이용하기도 한다.A stereo camera is a video device composed of a plurality of cameras. The omnidirectional image obtained through the 3D sensor unit 110 provides two-dimensional information about the periphery of the 3D sensor unit. If a plurality of images taken from different directions through a plurality of cameras are used, three-dimensional information about the periphery of the 3D sensor unit can be obtained. Such a stereo camera is also used for location recognition and map generation of a moving object or a mobile robot.

깊이 카메라는 장애물을 촬영 또는 측정하여 영상과 거리 데이터를 추출하는 카메라이다. 즉, 깊이 카메라는 일반적인 카메라와 같이 장애물을 촬상하여 영상 또는 이미지 데이터를 만들고, 각 영상의 픽셀에 해당하는 실제 위치에서 카메라로부터의 거리를 측정하여 거리 데이터를 만든다.The depth camera is a camera that shoots or measures obstacles and extracts images and distance data. That is, the depth camera creates image or image data by capturing an obstacle such as a general camera, and measures the distance from the camera at an actual position corresponding to a pixel of each image to produce distance data.

이동식 스테레오 카메라는 스테레오 카메라의 위치가 장애물의 거리에 따라 능동적으로 변하여 관측 장애물에 대한 주시각을 고정시키는 카메라를 말한다. 스테레오 카메라는 일반적으로 두 대의 카메라를 평행하게 배치하고 영상을 획득하며, 획득 영상의 스테레오 시차에 따라 장애물까지의 거리를 계산할 수 있다. A mobile stereo camera refers to a camera in which the position of a stereo camera is actively changed according to the distance of an obstacle, thereby fixing the main observer to an observation obstacle. Stereo cameras generally position two cameras in parallel and acquire images, and calculate the distances to the obstacles according to the stereo parallax of the acquired images.

이러한 스테레오 카메라는 광축이 항상 평행하게 배치되어 고정된 형태의 수동적인 카메라이다. 반면, 이동식 스테레오 카메라는 광축의 기하학적 위치를 능동적으로 변화시켜 주시각을 고정시킨다. 이렇게 스테레오 카메라의 주시 각도를 장애물의 거리에 따라 제어하는 것을 주시각 제어라 한다. Such a stereo camera is a passive camera in which the optical axis is always arranged in parallel and fixed. On the other hand, the mobile stereo camera actively changes the geometrical position of the optical axis to fix the main view. The control of the angle of view of the stereo camera according to the distance of the obstacle is called main vision control.

주시각 제어 스테레오 카메라는 움직이는 장애물에 대한 스테레오 시차를 항상 일정하게 유지하여 입체 영상 관측자에게 보다 자연스러운 입체 영상을 제공하며 장애물에 대한 거리 측정이나 스테레오 영상 처리에 있어서 유용한 정보를 제공한다.Main Visual Control Stereo camera maintains stereo parallax for moving obstacles at all times to provide more natural stereoscopic images to stereoscopic viewers and provides useful information for distances to obstacles and stereo image processing.

라이다(LIDAR) 장비는 이동체(900)의 전면에 위치한 장애물의 존재와 거리를 감지하기 위해 구비된다. 라이다 장비는 레이더(Radar)와 동일한 원리를 이용해 사물에 직접적인 접촉 없이 원하는 정보를 취득하는 능동형 원격 탐사(Remote Sensing)의 한 종류다. 라이다 장비는 정보를 취득하고자 하는 목표물에 레이저(Laser)를 쏘아 목표물로부터 반사되어 돌아오는 전자파의 시차와 에너지 변화를 감지해 원하는 거리 정보를 취득한다. The LIDAR equipment is provided to detect the presence and distance of the obstacles located on the front surface of the mobile unit 900. Raida is a type of active remote sensing that uses the same principle as radar to acquire the desired information without direct contact with objects. The Lada equipment uses a laser to target the target to acquire the desired distance information by sensing the parallax and energy changes of the electromagnetic waves reflected from the target.

라이다 장비는 측정하고자 하는 목적이나 대상물에 따라 DIAL(DIfferentail Absorption LIDAR), 도플러 라이다 (Doppler LIDAR), 거리 측정 라이다(Range finder LIDAR)의 세 종류로 나뉜다. DIAL은 측정하고자 하는 물체에 대한 흡수 정도가 서로 다른 두 개의 레이저를 이용해 대기중의 수증기, 오존, 공해 물질 등의 농도 측정에 활용되고, 도플러 라이다(Doppler LIDAR)는 도플러 원리를 이용해 물체의 이동 속도 측정에 이용된다. 그러나 일반적으로 라이다라고 하면 거리 측정 라이다(Range finder LIDAR)를 지칭하며 이것은 위성 측위 시스템(Global Positioning System; 이하 GPS)과 관성 항법 유도 장치(Inertial Navigation System; 이하 INS), 레이저 스캐너(LASER SCANNER) 시스템을 이용하여 대상물과의 거리 정보를 조합함으로써 3차원 지형 정보를 취득한다.The Rada equipment is divided into three types: DIAL (DIfferent Absorption LIDAR), Doppler LIDAR, and Range finder LIDAR, depending on the object or object to be measured. DIAL is used to measure the concentration of water vapor, ozone, and pollutants in the atmosphere using two lasers with different degrees of absorption for the object to be measured. Doppler LIDAR uses the Doppler principle to move objects It is used for speed measurement. However, in general, the term "RDA" refers to a range finder (LIDAR), which includes a Global Positioning System (GPS), an Inertial Navigation System (INS), a Laser Scanner ) System to obtain 3D terrain information by combining the distance information with the object.

라이다 장비는 이동체(900)의 이동 경로 전면에 위치한 장애물의 존재와 장애물까지의 거리 및 장애물의 이동을 감지하여 3차원 거리 데이터를 획득하고, 획득된 데이터를 제어부로 전송하여 장애물이 없는 공간으로 이동체(900)가 이동할 수 있도록 한다.The Lada equipment detects three-dimensional distance data by sensing the presence of an obstacle located on the moving path front of the moving object 900, the distance to the obstacle and the movement of the obstacle, and transmits the obtained data to the control unit, Thereby allowing the moving body 900 to move.

출력부는 디스플레이부를 포함하며, 제어부 또는 메인프로세서의 주행맵생성부(도 5, 511)에서 생성된 주행맵을 통해 결정된 주행 경로를 UI(User Interface) 또는 GUI(Graphic User Interface)를 이용하여 표시하도록 구현될 수 있다.The output unit includes a display unit and displays a driving route determined through the driving map generated by the control unit or the driving map generating unit of the main processor (FIGS. 5 and 511) using a UI (User Interface) or a GUI (Graphic User Interface) Can be implemented.

도 10은 본 발명의 바람직한 일 실시예에서, 소형통합제어장치의 그래픽처리부에서 병렬적으로 대용량센서데이터를 처리하는 흐름도를 도시한다.Fig. 10 shows a flowchart for processing large capacity sensor data in parallel in a graphics processing unit of a small integrated control apparatus, in a preferred embodiment of the present invention.

소형통합제어장치에서 대용량 센서데이터를 처리하는 방법은 메인프로세서에서 적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 단계(S1010), 보조프로세서에서 상기 메인프로세서와 동일한 클럭을 이용하여 상기 대용량 센서데이터 중 환경인식과 관련된 센서데이터를 처리하는 단계(S1020) 및  A method for processing large-capacity sensor data in a small integrated controller includes processing large-capacity sensor data using at least one multi-core CPU in a main processor (S1010) Processing sensor data related to environment recognition among the sensor data (S1020) and

그래픽처리부에서 멀티코어를 이용하여 상기 메인프로세서와 동일한 클럭을 이용하여 상기 대용량 센서데이터 중 연산처리를 수행하는 단계(S1030)를 병렬적으로 수행하는 특징이 있다. (S1030) of performing operation processing among the large-capacity sensor data using the same clock as that of the main processor by using a multi-core in a graphics processing unit.

그래픽처리부 내부에서는 또한 메인프로세서로부터 수신한 대용량 센서데이터에 대한 연산처리를 병렬적으로 수행한다. 도 11을 참고하면, 소형통합제어장치의 그래픽처리부에서는 메인프로세서로부터 대용량 센서 데이터 중 3차원 거리 데이터를 수신한다(S1110). 이 후, 3차원 거리 데이터를 복셀 데이터로 변환하고(S1120), 각 복셀마다 포함되어 있는 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산을 계산한다(S1130). The graphic processing unit also performs operation processing on the large-capacity sensor data received from the main processor in parallel. Referring to FIG. 11, the graphic processing unit of the small integrated control apparatus receives three-dimensional distance data among the large capacity sensor data from the main processor (S1110). Thereafter, the three-dimensional distance data is converted into voxel data (S1120), and the average and covariance of the three-dimensional point cloud data included in each voxel are calculated (S1130).

이후, 그래픽처리부는 평균 및 공분산 값을 기초로 아이젠 값 및 아이젠 벡터값을 계산하고(S1140), 아이젠 값 및 아이젠 벡터값을 기초로 각 복셀의 표면 방향각 및 높이를 계산하여 통과계수(traversability)를 계산한다. Then, the graphic processing unit calculates an eigen value and an eigenvector value based on the averaged and covariance values (S1140), calculates the surface direction angle and height of each voxel based on the eigen value and the eigenvector value, .

이 후, 각 복셀을 스캔한 횟수값(Occupancy)을 수치화하여 계산된 통과계수에 정확도에 대한 가중치를 부여할 수 있다(S1160). Thereafter, the number of times the voxel is scanned is digitized, and a weight for the accuracy is given to the calculated pass coefficient (S1160).

본 발명의 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The method of the present invention can also be embodied as computer readable code on a computer readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave (for example, transmission via the Internet) . The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

이상에서는 도면에 도시된 구체적인 실시예를 참고하여 본 발명을 설명하였으나 이는 예시적인 것에 불과하므로, 본 발명이 속하는 기술 분야에서 통상의 기술을 가진 자라면 이로부터 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 보호 범위는 후술하는 특허청구범위에 의하여 해석되어야 하고, 그와 동등 및 균등한 범위 내에 있는 모든 기술적 사상은 본 발명의 보호 범위에 포함되는 것으로 해석되어야 할 것이다.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 embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the invention. Accordingly, the scope of protection of the present invention should be construed in accordance with the following claims, and all technical ideas within the scope of equivalents and equivalents thereof should be construed as being covered by the scope of the present invention.

Claims (40)

적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 메인프로세서;
상기 메인프로세서와 동일한 클럭을 이용하며 상기 대용량 센서데이터 중 레이저 기반 센서데이터를 처리하는 보조프로세서;및
상기 메인프로세서와 동일한 클럭을 이용하며, 상기 대용량 센서데이터 중 영상 기반 센서데이터를 멀티코어를 이용하여 병렬로 처리하는 그래픽처리부;를 포함하며,
상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부는 병렬로 상기 대용량 센서데이터를 처리하는 것을 특징으로 하는 소형통합제어장치.
A main processor for processing mass sensor data using at least one multicore CPU;
An auxiliary processor for processing laser-based sensor data among the large-capacity sensor data using the same clock as the main processor;
And a graphic processor for processing image-based sensor data among the large-capacity sensor data in parallel using a multi-core, using the same clock as the main processor,
Wherein the main processor, the coprocessor, and the graphics processor process the large-capacity sensor data in parallel.
제 1 항에 있어서, 상기 그래픽처리부는
상기 대용량 센서 데이터 중 3차원 거리 데이터를 수신하고, 상기 3차원 거리 데이터를 복셀(voxel) 데이터로 변환하며, 각각의 복셀마다 포함되어 있는 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산을 계산하는 연산부;
상기 평균 및 공분산 값을 기초로 계산된 아이젠 값 및 아이젠 벡터값을 기초로 각 복셀의 표면 방향각 및 높이를 계산하여 각 복셀을 통과할 수 있는지에 대한 확률값인 통과계수(traversability)를 계산하는 통과계수연산부;
각 복셀을 스캔한 횟수값(Occupancy)을 수치화하는 빈도검출부;를 포함하는 것을 특징으로 하는 소형통합제어장치.
The apparatus of claim 1, wherein the graphics processing unit
Dimensional distance data among the large-capacity sensor data, converts the three-dimensional distance data into voxel data, and calculates an average and a covariance of three-dimensional point cloud data included in each voxel ;
Calculating the surface direction angle and height of each voxel based on the eigen value and the eigenvector value calculated on the basis of the average and covariance values, and calculating a traversability, which is a probability value for whether to pass through each voxel A coefficient operation unit;
And a frequency detector for digitizing the number of times the individual voxels are scanned.
제 2 항에 있어서,
상기 그래픽처리부는 각 복셀에 대한 통과계수 및 각 복셀을 스캔한 횟수값을 상기 메인프로세서에 전송하고,
상기 메인 프로세서는 각 복셀에 대한 통과계수 및 각 복셀을 스캔한 횟수값을 누적적으로 이용하여 지도를 생성하는 것을 특징으로 하는 소형통합제어장치.
3. The method of claim 2,
Wherein the graphics processing unit transmits the pass coefficient for each voxel and the number of times of scanning each voxel to the main processor,
Wherein the main processor generates a map by cumulatively using a pass coefficient for each voxel and a number of times of scanning each voxel.
제 3 항에 있어서,
이동 물체는 이동 물체에 장착된 영상촬영센서에서 촬영한 주행 경로 영상 및 상기 메인프로세서에서 생성한 지도를 이용하여 주행한 경로를 복귀하는 것을 특징으로 하는 소형통합제어장치.
The method of claim 3,
Wherein the moving object returns the traveled route by using the traveling route image photographed by the image photographing sensor mounted on the moving object and the map generated by the main processor.
제 1 항에 있어서, 상기 대용량 센서데이터는
이동 물체에 장착된 적어도 하나 이상의 센서에서 수신한 데이터인 것을 특징으로 하는 소형통합제어장치.
The method of claim 1, wherein the mass sensor data
And data received by at least one or more sensors mounted on the moving object.
제 1 항에 있어서,
상기 그래픽처리부는 상기 레이저 기반 센서데이터 중 영상처리와 관련된 센서데이터를 더 처리하는 것을 특징으로 하는 소형통합제어장치.
The method according to claim 1,
Wherein the graphic processing unit further processes sensor data related to image processing among the laser-based sensor data.
적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 메인프로세서;
상기 메인프로세서와 동일한 클럭을 이용하며 상기 대용량 센서데이터 중 레이저 기반 센서데이터를 처리하는 보조프로세서;및
상기 메인프로세서와 동일한 클럭을 이용하며, 멀티코어를 이용하여 상기 대용량 센서데이터의 연산처리를 병렬로 처리하는 그래픽처리부;를 포함하며, 상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부는 병렬로 상기 대용량 센서데이터를 처리하는 것을 특징으로 하는 소형통합제어장치.
A main processor for processing mass sensor data using at least one multicore CPU;
An auxiliary processor for processing laser-based sensor data among the large-capacity sensor data using the same clock as the main processor;
And a graphics processor for processing the large-capacity sensor data in parallel using the same clock as the main processor, wherein the main processor, the coprocessor, and the graphics processor are connected in parallel to the large- And processing the sensor data.
제 7 항에 있어서, 상기 그래픽처리부는
상기 대용량 센서데이터 중 거리 데이터를 복셀 단위로 분할하고, 각각의 복셀에 포함되된 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산 값을 기초로 각 복셀의 표면 방향각 및 높이를 계산하여 각 복셀을 통과할 수 있는지에 대한 확률값인 통과계수를 산출하는 것을 특징으로 하는 소형통합제어장치.
8. The apparatus of claim 7, wherein the graphics processing unit
The distance data and the height of each voxel are calculated on the basis of the average and covariance values of the three-dimensional point cloud data included in each voxel, And calculates a pass coefficient that is a probability value as to whether or not the signal can pass through the voxel.
제 7 항에 있어서, 상기 메인프로세서는
각 복셀을 스캔한 횟수값(Occupancy) 및 상기 각 복셀에 대해 산출된 상기 통과계수를 누적적으로 이용하여 지도를 생성하는 것을 특징으로 하는 소형통합제어장치.
8. The method of claim 7, wherein the main processor
And generates a map by cumulatively using the number of occasions of scanning each voxel and the pass coefficient calculated for each voxel.
제 8 항에 있어서,
상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부를 직렬 또는 병렬로 확장하도록 구현하는 입출력 인터페이스;를 더 포함하는 것을 특징으로 하는 소형통합제어장치.
9. The method of claim 8,
And an input / output interface for implementing the main processor, the coprocessor, and the graphics processing unit to expand in series or in parallel.
적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 메인프로세서;
상기 메인프로세서와 동일한 클럭을 이용하며, 상기 대용량 센서데이터를 상기 메인프로세서와 병렬로 처리하는 보조프로세서;및
상기 메인프로세서와 동일한 클럭을 이용하며, 연산 처리를 수행하는 그래픽처리부;를 포함하고, 상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부는 병렬로 상기 대용량 센서데이터를 처리하는 것을 특징으로 하는 소형통합제어장치.
A main processor for processing mass sensor data using at least one multicore CPU;
A coprocessor that uses the same clock as the main processor and processes the large capacity sensor data in parallel with the main processor;
And a graphics processor for performing a calculation process using the same clock as the main processor, wherein the main processor, the coprocessor, and the graphics processor process the large-capacity sensor data in parallel, Device.
제 11 항에 있어서,
상기 보조프로세서는 상기 대용량 센서데이터 중 레이저 기반 센서데이터를 처리하고, 상기 레이저 기반 센서데이터는 레이저 스캐너를 통해 획득한 센서데이터를 포함하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
Wherein the coprocessor processes laser-based sensor data among the large-capacity sensor data, and the laser-based sensor data includes sensor data obtained through a laser scanner.
제 11 항에 있어서,
상기 그래픽처리부는 상기 대용량 센서데이터 중 영상 기반 센서데이터를 실시간으로 처리하고, 상기 영상 기반 센서데이터는 카메라 영상을 포함하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
Wherein the graphic processing unit processes image-based sensor data among the large-capacity sensor data in real time, and the image-based sensor data includes a camera image.
제 12 항에 있어서, 상기 메인프로세서는
상기 그래픽처리부에서 상기 레이저 기반 센서데이터 중 영상처리와 관련된 센서데이터 연산을 처리하도록 제어하는 것을 특징으로 하는 소형통합제어장치.
13. The system of claim 12, wherein the main processor
And controls the graphic processing unit to process sensor data operations related to image processing among the laser-based sensor data.
제 11 항에 있어서,
상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부를 직렬 또는 병렬로 확장하도록 구현하는 입출력 인터페이스;를 더 포함하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
And an input / output interface for implementing the main processor, the coprocessor, and the graphics processing unit to expand in series or in parallel.
제 11 항에 있어서,
상기 메인프로세서는 이동 로봇 구동시 생성되는 대용량 센서데이터를 수신하고, 상기 대용량 센서데이터는 상기 이동 로봇이 이용하는 센서에서 검출한 센서데이터, 상기 이동 로봇이 이동한 실시간 거리 정보, 상기 이동 로봇이 촬영한 영상정보 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
The main processor receives mass sensor data generated when the mobile robot is driven, and the mass sensor data includes sensor data detected by a sensor used by the mobile robot, real-time distance information obtained by moving the mobile robot, And image information on the basis of the image information.
제 11 항에 있어서, 상기 그래픽처리부는
상기 대용량 센서 데이터 중 이동 로봇 주행시 검출된 3차원 거리 데이터 및 주행 경로 정보를 수신하고, 상기 3차원 거리 데이터를 복셀(voxel) 데이터로 변환하며, 각각의 복셀마다 포함되어 있는 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산을 계산하여 아이젠 값 및 아이젠 벡터값을 추출하는 연산부;를 포함하고,
상기 그래픽처리부는 상기 아이젠 값 및 아이젠벡터값을 기초로, 각 복셀을 통과할 수 있는 가능성을 표시하는 통과계수를 계산하며, 각 복셀을 스캔한 횟수값(Occupancy)를 파악하여, 각 복셀에 대한 통과계수 및 스캔한 횟수값을 상기 메인프로세서로 전송하는 것을 특징으로 하는 소형통합제어장치.
The apparatus of claim 11, wherein the graphics processing unit
Dimensional distance data and traveling path information detected during traveling of the mobile robot among the large-capacity sensor data, converts the three-dimensional distance data into voxel data, and outputs the three-dimensional point cloud included in each voxel and an operation unit for calculating an average value and a covariance of cloud data and extracting an eigen value and an eigenvector value,
The graphics processing unit calculates a pass coefficient indicating the possibility of passing through each voxel based on the eigen value and the eigenvector value, grasps the number of times the each voxel has been scanned, And transmits the scan count value and the scan count value to the main processor.
제 17 항에 있어서, 상기 메인프로세서는
각 복셀에 대한 통과계수 및 스캔한 횟수값을 누적적으로 이용하여 상기 이동 로봇의 주행경로를 표시하는 지도를 생성하는 것을 특징으로 하는 소형통합제어장치.
18. The system of claim 17, wherein the main processor
And generates a map indicating a travel route of the mobile robot by cumulatively using a pass coefficient and a scan count value for each voxel.
제 11항에 있어서,
상기 메인프로세서는 상기 대용량 센서데이터를 이더넷을 통해 수신하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
And the main processor receives the large capacity sensor data via Ethernet.
제 11항에 있어서,
상기 메인프로세서는 패킷 기반의 점대점(point-to-point) 상호 연결 버스를 이용하여 상기 적어도 하나 이상의 멀티코어 CPU를 상호 연결하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
Wherein the main processor interconnects the at least one multicore CPU using a packet-based point-to-point interconnect bus.
제 11 항에 있어서,
상기 보조프로세서 및 상기 그래픽처리부는 상기 메인프로세서와 동일한 클럭을 이용하여 처리한 센서데이터의 동기화를 수행하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
Wherein the auxiliary processor and the graphics processor synchronize the processed sensor data using the same clock as the main processor.
제 11 항에 있어서,
상기 메인프로세서는 상기 대용량 센서데이터를 이더넷 스위치를 통해 수신하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
And the main processor receives the large capacity sensor data through the Ethernet switch.
제 11 항에 있어서,
상기 메인프로세서, 상기 보조프로세서, 상기 그래픽처리부에 전원을 공급하는 전원부;를 더 포함하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
Further comprising a power supply unit for supplying power to the main processor, the auxiliary processor, and the graphic processing unit.
제 11 항에 있어서,
상기 메인프로세서, 상기 보조프로세서, 상기 그래픽처리부를 제어하는 MCU(Micro Control Unit)를 더 포함하는 것을 특징으로 하는 소형통합제어장치.
12. The method of claim 11,
Further comprising an MCU (Micro Control Unit) for controlling the main processor, the coprocessor, and the graphics processing unit.
제 11 항에 있어서, 상기 메인프로세서는
시스템 계층(System Layer), 인터페이스 계층(Interface Layer), 코어 계층(Core Layer) 및 애플리케이션 계층(Application Layer)을 지원하는 것을 특징으로 하는 소형통합제어장치.
12. The system of claim 11, wherein the main processor
Wherein the control unit supports a system layer, an interface layer, a core layer, and an application layer.
제 11 항에 있어서, 상기 메인프로세서는
시스템 계층(System Layer), 인터페이스 계층(Interface Layer), 코어 계층(Core Layer) 및 애플리케이션 계층(Application Layer)을 포함하는 계층화된 스택을 포함하는 것을 특징으로 하는 소형통합제어장치.
12. The system of claim 11, wherein the main processor
A layered stack including a system layer, an interface layer, a core layer, and an application layer.
제 17 항에 있어서,
상기 복셀의 높이는 3차원 거리 감지 센서가 검출할 수 있는 최대의 높이로 설정되는 것을 특징으로 하는 소형통합제어장치.
18. The method of claim 17,
Wherein the height of the voxel is set to a maximum height that can be detected by the three-dimensional distance detection sensor.
제 17 항에 있어서,
상기 복셀은 직사각형의 형태인 것을 특징으로 하는 소형통합제어장치.
18. The method of claim 17,
Wherein the voxel is in the form of a rectangle.
적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 메인프로세서;
상기 메인프로세서와 동일한 클럭을 이용하며 상기 대용량 센서데이터 중 레이저 기반 센서데이터를 처리하는 보조프로세서;및
상기 메인프로세서와 동일한 클럭을 이용하며, 상기 대용량 센서데이터 중 영상 기반 센서데이터를 멀티코어를 이용하여 병렬로 처리하는 그래픽처리부;를 포함하며,
상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부는 병렬로 상기 대용량 센서데이터를 처리하고, 상기 그래픽처리부는 상기 대용량 센서데이터 중 3차원 거리데이터를 직사각형의 복셀단위로 분할하여, 각 복셀 내의 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산 값을 기초로 각 복셀을 통과할 수 있는 확률값을 계산하고, 각 복셀을 스캔한 횟수값을 이용하여 상기 각 복셀을 통과할 수 있는 확률값의 정확도에 가중치를 계산하는 것을 특징으로 하는 소형통합제어장치.
A main processor for processing mass sensor data using at least one multicore CPU;
An auxiliary processor for processing laser-based sensor data among the large-capacity sensor data using the same clock as the main processor;
And a graphic processor for processing image-based sensor data among the large-capacity sensor data in parallel using a multi-core, using the same clock as the main processor,
Wherein the main processor, the coprocessor, and the graphics processor process the large-capacity sensor data in parallel, and the graphics processor divides the three-dimensional distance data among the large-capacity sensor data into a rectangular voxel unit, Calculating a probability value that can pass through each voxel based on the average and covariance values of cloud data and calculating a weight value of the accuracy of the probability value that can pass through each voxel using the number of scans of each voxel And a control unit for controlling the operation of the small integrated controller.
소형통합제어장치에서 대용량 센서데이터를 처리하는 방법으로서,
메인프로세서에서 적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 단계;
보조프로세서에서 상기 메인프로세서와 동일한 클럭을 이용하여 상기 대용량 센서데이터 중 환경인식과 관련된 센서데이터를 처리하는 단계;및
그래픽처리부에서 멀티코어를 이용하여 상기 메인프로세서와 동일한 클럭을 이용하여 상기 대용량 센서데이터 중 연산처리를 수행하는 단계;를 포함하고
상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부는 병렬로 상기 대용량 센서데이터를 처리하는 것을 특징으로 하는 방법.
A method for processing large capacity sensor data in a small integrated control device,
Processing large-capacity sensor data using at least one or more multicore CPUs in a main processor;
Processing sensor data related to environment recognition among the mass sensor data using the same clock as the main processor in a coprocessor;
And performing a calculation process among the large-capacity sensor data using the same clock as the main processor by using a multi-core in the graphics processor
Wherein the main processor, the coprocessor, and the graphics processing unit process the large capacity sensor data in parallel.
제 30 항에 있어서, 상기 그래픽처리부는
연산부에서 상기 대용량 센서 데이터 중 3차원 거리 데이터를 수신하고 상기 3차원 거리 데이터를 복셀(voxel) 데이터로 변환하며, 각각의 복셀마다 포함되어 있는 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산을 계산하는 단계;
통과계수연산부에서 상기 평균 및 공분산 값을 기초로 계산된 아이젠 값 및 아이젠 벡터값을 기초로 각 복셀의 표면 방향각 및 높이를 계산하여 각 복셀을 통과할 수 있는지에 대한 확률값인 통과계수(traversability)를 계산하는 단계;
빈도검출부에서 각 복셀을 스캔한 횟수값(Occupancy)을 수치화하고, 수치화한 각 복셀을 스캔한 횟수값을 이용하여 상기 통과계수의 정확도에 대한 가중치를 부여하는 단계;를 포함하는 것을 특징으로 하는 방법.
The apparatus of claim 30, wherein the graphics processing unit
The calculation unit receives three-dimensional distance data among the large-capacity sensor data, converts the three-dimensional distance data into voxel data, and calculates average and covariance of three-dimensional point cloud data included in each voxel Calculating;
A traversability calculation unit which calculates a surface direction angle and a height of each voxel based on an eigen value and an eigenvector calculated on the basis of the averaged and covariance values and calculates a traversability, ;
And a step of quantifying the number of times the voxel has been scanned by the frequency detector and giving a weight to the accuracy of the pass coefficient by using the number of times of scanning each of the digitized voxels. .
제 31 항에 있어서,
상기 그래픽처리부는 각 복셀에 대한 통과계수 및 각 복셀을 스캔한 횟수값을 상기 메인프로세서에 전송하고,
상기 메인 프로세서는 각 복셀에 대한 통과계수 및 각 복셀을 스캔한 횟수값을 누적적으로 이용하여 지도를 생성하는 것을 특징으로 하는 방법.
32. The method of claim 31,
Wherein the graphics processing unit transmits the pass coefficient for each voxel and the number of times of scanning each voxel to the main processor,
Wherein the main processor generates a map by cumulatively using a pass coefficient for each voxel and a number of times of scanning each voxel.
제 31 항에 있어서, 상기 복셀은
직사각형 형태이고, 상기 직사각형의 높이는 3차원 거리 감지 센서가 검출할 수 있는 최대의 높이로 설정되는 것을 특징으로 하는 방법.
32. The method of claim 31,
Wherein the height of the rectangle is set to a maximum height that can be detected by the three-dimensional distance detection sensor.
제 30 항에 있어서,
상기 메인프로세서는 이동 로봇 구동시 생성되는 대용량 센서데이터를 수신하고, 상기 대용량 센서데이터는 상기 이동 로봇이 이용하는 센서에서 검출한 센서데이터, 상기 이동 로봇이 이동한 실시간 거리 정보, 상기 이동 로봇이 촬영한 영상정보 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 방법.
31. The method of claim 30,
The main processor receives mass sensor data generated when the mobile robot is driven, and the mass sensor data includes sensor data detected by a sensor used by the mobile robot, real-time distance information obtained by moving the mobile robot, And image information. ≪ Desc / Clms Page number 20 >
소형통합제어장치에서 대용량 센서데이터를 처리하는 방법으로서, 상기 방법은
메인프로세서에서 적어도 하나 이상의 멀티코어 CPU를 이용하여 대용량 센서데이터를 처리하는 단계
상기 메인프로세서와 동일한 클럭을 이용하는 보조프로세서에서 상기 대용량 센서데이터 중 레이저 기반 센서데이터를 처리하는 단계;및
상기 메인프로세서와 동일한 클럭을 이용하는 그래픽처리부에서, 상기 대용량 센서데이터 중 영상 기반 센서데이터를 멀티코어를 이용하여 병렬로 처리하는 단계;를 포함하고, 상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부는 상기 대용량 센서 데이터를 병렬로 처리하며,
상기 그래픽처리부는 상기 대용량 센서데이터 중 3차원 거리데이터를 직사각형의 복셀단위로 분할하여, 각 복셀 내의 3차원 포인트 클라우드(point cloud) 데이터의 평균 및 공분산 값을 기초로 각 복셀을 통과할 수 있는 확률값을 계산하고, 각 복셀을 스캔한 횟수값을 이용하여 상기 각 복셀을 통과할 수 있는 확률값의 정확도에 가중치를 계산하는 것을 특징으로 하는 방법.
A method of processing large capacity sensor data in a small integrated control device, the method comprising:
Processing the mass sensor data using at least one or more multicore CPUs in the main processor
Processing laser-based sensor data among the large-capacity sensor data in a coprocessor using the same clock as the main processor;
And processing the image-based sensor data among the large-capacity sensor data in parallel using a multi-core in a graphics processing unit using the same clock as the main processor, wherein the main processor, the coprocessor, Large-capacity sensor data is processed in parallel,
The graphic processing unit divides the three-dimensional distance data among the large-capacity sensor data into a rectangular voxel unit, calculates a probability value that can pass through each voxel based on an average and a covariance value of three-dimensional point cloud data in each voxel And calculates a weight on the accuracy of a probability value that can pass through each of the voxels using the number of times of scanning each voxel.
제 35 항에 있어서, 상기 메인프로세서는
시스템 계층(System Layer), 인터페이스 계층(Interface Layer), 코어 계층(Core Layer) 및 애플리케이션 계층(Application Layer)을 지원하는 것을 특징으로 하는 방법.
The system of claim 35, wherein the main processor
A system layer, an interface layer, a core layer, and an application layer.
제 35 항에 있어서, 입출력 인터페이스를 이용하여
상기 메인프로세서, 상기 보조프로세서 및 상기 그래픽처리부를 직렬 또는 병렬로 확장하도록 구현하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 35, further comprising:
And expanding the main processor, the coprocessor, and the graphics processing unit in serial or parallel.
제 35항에 있어서,
상기 메인프로세서는 패킷 기반의 점대점(point-to-point) 상호 연결 버스를 이용하여 상기 적어도 하나 이상의 멀티코어 CPU를 상호 연결하는 것을 특징으로 하는 방법.
36. The method of claim 35,
Wherein the main processor interconnects the at least one multicore CPU using a packet-based point-to-point interconnect bus.
제 35항에 있어서,
상기 메인프로세서는 이더넷 스위치를 이용하여 상기 대용량 센서데이터를 수신하는 것을 특징으로 하는 방법.
36. The method of claim 35,
Wherein the main processor receives the large capacity sensor data using an Ethernet switch.
제 35 항에 있어서, 상기 대용량 센서데이터는
이동 물체에 장착된 적어도 하나 이상의 센서에서 수신한 데이터인 것을 특징으로 하는 방법.
37. The method of claim 35, wherein the mass sensor data
And data received from at least one or more sensors mounted on the moving object.
KR1020140178719A 2014-12-11 2014-12-11 Mini Integrated-control device KR102106889B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140178719A KR102106889B1 (en) 2014-12-11 2014-12-11 Mini Integrated-control device
PCT/KR2015/001741 WO2016093427A1 (en) 2014-12-11 2015-02-24 Mini integrated control device
TW104134777A TW201629752A (en) 2014-12-11 2015-10-23 Mini integrated-control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140178719A KR102106889B1 (en) 2014-12-11 2014-12-11 Mini Integrated-control device

Publications (2)

Publication Number Publication Date
KR20160071236A true KR20160071236A (en) 2016-06-21
KR102106889B1 KR102106889B1 (en) 2020-05-07

Family

ID=56107590

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140178719A KR102106889B1 (en) 2014-12-11 2014-12-11 Mini Integrated-control device

Country Status (3)

Country Link
KR (1) KR102106889B1 (en)
TW (1) TW201629752A (en)
WO (1) WO2016093427A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022114551A1 (en) * 2020-11-25 2022-06-02 삼성전자주식회사 Electronic apparatus and controlling method thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110073917A (en) * 2009-12-24 2011-06-30 중앙대학교 산학협력단 Apparatus and method for detecting obstacle for on-line electric vehicle based on gpu
KR20140007367A (en) * 2011-01-31 2014-01-17 마이크로소프트 코포레이션 Three-dimensional environment reconstruction
KR20140056082A (en) * 2012-10-30 2014-05-09 인텔 코오퍼레이션 Instruction and logic to provide vector compress and rotate functionality
KR20140108036A (en) * 2013-02-28 2014-09-05 삼성테크윈 주식회사 Mini Integrated-control device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015638A1 (en) * 2002-07-22 2004-01-22 Forbes Bryn B. Scalable modular server system
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US20120316680A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Tracking and following of moving objects by a mobile robot
WO2014178450A1 (en) * 2013-04-30 2014-11-06 전자부품연구원 Collaboration system between cpu and gpu, and method thereof
CN103713938A (en) * 2013-12-17 2014-04-09 江苏名通信息科技有限公司 Multi-graphics-processing-unit (GPU) cooperative computing method based on Open MP under virtual environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110073917A (en) * 2009-12-24 2011-06-30 중앙대학교 산학협력단 Apparatus and method for detecting obstacle for on-line electric vehicle based on gpu
KR20140007367A (en) * 2011-01-31 2014-01-17 마이크로소프트 코포레이션 Three-dimensional environment reconstruction
KR20140056082A (en) * 2012-10-30 2014-05-09 인텔 코오퍼레이션 Instruction and logic to provide vector compress and rotate functionality
KR20140108036A (en) * 2013-02-28 2014-09-05 삼성테크윈 주식회사 Mini Integrated-control device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Towards Fully Autonomous Driving: Systems and Algorithms", 2011 IEEE Intelligent Vehicles Symposium (IV) Baden-Baden, Germany, June 5-9, 2011

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022114551A1 (en) * 2020-11-25 2022-06-02 삼성전자주식회사 Electronic apparatus and controlling method thereof

Also Published As

Publication number Publication date
WO2016093427A1 (en) 2016-06-16
TW201629752A (en) 2016-08-16
KR102106889B1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
TWI827649B (en) Apparatuses, systems and methods for vslam scale estimation
US11427218B2 (en) Control apparatus, control method, program, and moving body
CN107111598B (en) Optical flow imaging system and method using ultrasound depth sensing
US20230072289A1 (en) Target detection method and apparatus
US8723987B2 (en) Uncertainty estimation of planar features
CN111670419A (en) Active supplemental exposure settings for autonomous navigation
JP6782903B2 (en) Self-motion estimation system, control method and program of self-motion estimation system
CN114270410A (en) Point cloud fusion method and system for moving object and computer storage medium
CN110609562B (en) Image information acquisition method and device
CN110162085A (en) Environment self-adaption perception and avoidance system for unmanned vehicle
US10109074B2 (en) Method and system for inertial measurement having image processing unit for determining at least one parameter associated with at least one feature in consecutive images
WO2017038659A1 (en) Motion detection device and three-dimensional shape measurement device using same
US20210263533A1 (en) Mobile object and method for controlling mobile object
WO2017047873A1 (en) Scanning method using high-speed scanning apparatus
KR101700764B1 (en) Method for Autonomous Movement and Apparatus Thereof
KR102106889B1 (en) Mini Integrated-control device
WO2022083529A1 (en) Data processing method and apparatus
US20230104937A1 (en) Absolute scale depth calculation device, absolute scale depth calculation method, and computer program product
CN108564626B (en) Method and apparatus for determining relative pose angle between cameras mounted to an acquisition entity
He et al. Visual positioning system for small-scaled spherical robot in underwater environment
KR102106890B1 (en) Mini Integrated-control device
WO2011047508A1 (en) Embedded vision tracker and mobile guiding method for tracking sequential double color beacons array with extremely wide-angle lens
EP3867725A1 (en) Obstacle detection
CN208314856U (en) A kind of system for the detection of monocular airborne target
Guo et al. Real time 3D indoor human image capturing based on FMCW radar

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant