基于多传感器融合的人工智能平台的搭建和集成

2020-02-14 05:58严淑芹
计算机时代 2020年1期
关键词:传感器

严淑芹

摘  要: 人工智能平台离不开各种硬件设备如机械雷达(Mechanical Radar)、惯性测量单元(IMU)等传感器。这些传感器实时捕获点阵图、陀螺仪数据、加速度计数据等信息传入后台,后台运用算法对这些数据进行时间戳对齐等处理,得到可用的信息。文章在传感器已选型的基础上,介绍如何将机械雷达、惯性测量单元以及毫米波雷达在物理上搭建成一个人工智能平台;如何在Ubuntu操作系统上运用各个传感器供应商提供的软件开发包(SDK)开发软件,以使得各个传感器能独立工作去捕获数据;如何运用Python开发上位机软件(GUI)让这些传感器协同工作以及按照时间戳保存数据。

关键词: 人工智能平台; 传感器; 机械雷达; Ubuntu; Python

中图分类号:TP399          文献标识码: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 引言

隨着人工智能和大数据技术的不断发展,越来越需要丰富多样和量大的数据。而绝大部分数据来源于传感器。对一个人工智能系统而言,将所有硬件(传感器、交换机等)进行物理上的集成和软件上的整合,将是人们进行下一步大数据处理的基础和关键开始。

1 基于SDK的各个传感器的软件开发

各个传感器的软件开发与功能实现都是基于供应商提供的软件开发包(SDK)。其中,机械雷达(Lidar)、双光相机(Uranus)、IMU、工业相机是通过以太网与主机Ubuntu进行通讯的,而毫米波雷达和云台是通过CAN总线与主机Ubuntu进行通讯。该部分主要介绍以太网络上的各个传感器的软件开发。毫米波雷达通过供应商提供的DBC文件以及USB2CAN设备及其驱动和Python-CAN强大功能,即可实现对它的控制。

1.1 机械雷达(Lidar)的软件开发与功能实现

本项目采用的机械雷达是禾赛科技的Pandar40。Pandar40是一款40线机械式激光雷达,其内部包含40组激光收发对,通过360°旋转进行3D成像。它的工作原理是:激光雷达的测距方式——飞行时间测量法(Time of Flight)[1],即:

⑴ 激光雷达的激光器发射出一束超短激光脉冲;

⑵ 激光投射到物体上后发生漫反射,激光接收器接收漫反射光;

⑶ 通过激光光束在空中的飞行时间,准确计算得出目标物体到传感器间的距离。

在Ubuntu上打开一个终端,下载供应商的SDK。使用命令:

git clone https://github.com/HesaiTechnology/HesaiLidarSDK.git --recursive

安装SDK正常运行所需要的各种软件包。使用命令:

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

在软件开发包SDK的源文件test.cc基础上,将代码按照项目需求进行修改。

int main(int argc, char **argv)

{

testResultMainPath = argv[0] + std::string("/Pandar40_Records/");

char command[260];

猜你喜欢
传感器
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
光电传感器在自动检测和分拣中的应用
基于扩展卡尔曼滤波的PMSM无位置传感器控制