嚴(yán)淑芹
摘 ?要: 人工智能平臺離不開各種硬件設(shè)備如機(jī)械雷達(dá)(Mechanical Radar)、慣性測量單元(IMU)等傳感器。這些傳感器實(shí)時(shí)捕獲點(diǎn)陣圖、陀螺儀數(shù)據(jù)、加速度計(jì)數(shù)據(jù)等信息傳入后臺,后臺運(yùn)用算法對這些數(shù)據(jù)進(jìn)行時(shí)間戳對齊等處理,得到可用的信息。文章在傳感器已選型的基礎(chǔ)上,介紹如何將機(jī)械雷達(dá)、慣性測量單元以及毫米波雷達(dá)在物理上搭建成一個(gè)人工智能平臺;如何在Ubuntu操作系統(tǒng)上運(yùn)用各個(gè)傳感器供應(yīng)商提供的軟件開發(fā)包(SDK)開發(fā)軟件,以使得各個(gè)傳感器能獨(dú)立工作去捕獲數(shù)據(jù);如何運(yùn)用Python開發(fā)上位機(jī)軟件(GUI)讓這些傳感器協(xié)同工作以及按照時(shí)間戳保存數(shù)據(jù)。
關(guān)鍵詞: 人工智能平臺; 傳感器; 機(jī)械雷達(dá); Ubuntu; Python
中圖分類號:TP399 ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A ? ? 文章編號:1006-8228(2020)01-19-04
Abstract: AI Bench depends on versatile hardware like sensors (Mechanical Radar, IR Camera, IMU, etc.). The sensors will acquire PCD data, visible spectrum photo, infrared spectrum photo, gyro data, accelerometer data, and then the data will be passed to be processed by advanced algorithm to get the valuable information after the processing. With all the sensors determined, this paper introduces how to assemble Mechanical Radar, IR Camera, Imaging Camera, IMU in hardware way, and how to integrate them in software way, and describes how to develop software with Ubuntu operating system, and SDKs provided by the sensor suppliers, to make the sensors run according to projects requirements in detail, as well as how to develop the software for upper computer with Python to make the sensors work collaboratively.
Key words: AI bench; sensor; mechanical radar; Ubuntu; Python
0 引言
隨著人工智能和大數(shù)據(jù)技術(shù)的不斷發(fā)展,越來越需要豐富多樣和量大的數(shù)據(jù)。而絕大部分?jǐn)?shù)據(jù)來源于傳感器。對一個(gè)人工智能系統(tǒng)而言,將所有硬件(傳感器、交換機(jī)等)進(jìn)行物理上的集成和軟件上的整合,將是人們進(jìn)行下一步大數(shù)據(jù)處理的基礎(chǔ)和關(guān)鍵開始。
1 基于SDK的各個(gè)傳感器的軟件開發(fā)
各個(gè)傳感器的軟件開發(fā)與功能實(shí)現(xiàn)都是基于供應(yīng)商提供的軟件開發(fā)包(SDK)。其中,機(jī)械雷達(dá)(Lidar)、雙光相機(jī)(Uranus)、IMU、工業(yè)相機(jī)是通過以太網(wǎng)與主機(jī)Ubuntu進(jìn)行通訊的,而毫米波雷達(dá)和云臺是通過CAN總線與主機(jī)Ubuntu進(jìn)行通訊。該部分主要介紹以太網(wǎng)絡(luò)上的各個(gè)傳感器的軟件開發(fā)。毫米波雷達(dá)通過供應(yīng)商提供的DBC文件以及USB2CAN設(shè)備及其驅(qū)動(dòng)和Python-CAN強(qiáng)大功能,即可實(shí)現(xiàn)對它的控制。
1.1 機(jī)械雷達(dá)(Lidar)的軟件開發(fā)與功能實(shí)現(xiàn)
本項(xiàng)目采用的機(jī)械雷達(dá)是禾賽科技的Pandar40。Pandar40是一款40線機(jī)械式激光雷達(dá),其內(nèi)部包含40組激光收發(fā)對,通過360°旋轉(zhuǎn)進(jìn)行3D成像。它的工作原理是:激光雷達(dá)的測距方式——飛行時(shí)間測量法(Time of Flight)[1],即:
⑴ 激光雷達(dá)的激光器發(fā)射出一束超短激光脈沖;
⑵ 激光投射到物體上后發(fā)生漫反射,激光接收器接收漫反射光;
⑶ 通過激光光束在空中的飛行時(shí)間,準(zhǔn)確計(jì)算得出目標(biāo)物體到傳感器間的距離。
在Ubuntu上打開一個(gè)終端,下載供應(yīng)商的SDK。使用命令:
git clone https://github.com/HesaiTechnology/HesaiLidarSDK.git --recursive
安裝SDK正常運(yùn)行所需要的各種軟件包。使用命令:
sudo apt install cmake libproj-dev libpcap-dev libboost-all-dev libyaml-cpp-dev libjpeg-dev libgdal-dev libpq-dev libvtk6-dev libvtk6-qt-dev libpcl-dev
在軟件開發(fā)包SDK的源文件test.cc基礎(chǔ)上,將代碼按照項(xiàng)目需求進(jìn)行修改。
int main(int argc, char **argv)
{
testResultMainPath = argv[0] + std::string("/Pandar40_Records/");
char command[260];