2. 上海交通大学航空航天学院, 上海, 200240
2. School of Aeronautics and Astronautics, Shanghai Jiao Tong University, Shanghai, 200240, China
无人直升机因其特有的可悬停、载荷能力强和机动性能好等优势在低空乃至近地面的应用里有着不可替代的作用,越来越多的研究人员在该领域进行探索与尝试。其中,无人直升机对其周边环境的探测与感知成为其安全飞行以及能否走向深层次应用的关键[1]。
目前,无人直升机可用超声波、计算机视觉和激光雷达等多种方法进行目标检测与定位[2]。超声波在倒车雷达、测距仪等场合应用广泛,但超声波测距短,且在无人直升机上使用极易受到干扰,影响测量精度。计算机视觉是当前研究热点,但是用视觉进行目标定位计算量大,对处理器要求高,设备价格昂贵。激光雷达测程大、测量频率快且精度高,具有较高的实用和商用价值[3-4]。Wallace等[5]利用无人机搭载激光雷达扫描树木的树冠层以实现森林管理的决策过程。Chisholm等[6]利用激光雷达帮助无人机在全球定位系统(Global position system, GPS)等导航信息受干扰的情况下在森林中完成作业。李冰等[7]利用无人机机载激光雷达对电网及塔杆进行建模并生成环境模型。邢承海[8]针对散料码头的超宽露天散料堆场的三维建模需求,设计了一种基于无人机激光扫描的堆场建模系统。
上述研究将激光雷达与无人机相结合,为无人机的实际应用提供了大量新思路。为了进一步提高小型无人直升机自主飞行作业的精准度,需要精确控制无人机与作业目标间的相对位置[9]。同时,复杂环境中的障碍物也会对无人机飞行状态的测量造成干扰。为解决上述问题,本文自主研发设计了一套激光雷达数据采集处理系统用于目标定位。
1 系统硬件组成测量系统硬件组成如图 1所示,其中UTM-30LX激光雷达用于扫描目标并建立环境模型,信号转换模块用于USB信号和串口信号之间的转换,电源模块给整个测量系统供电,数据处理模块用于数据处理及算法实现。
![]() |
图 1 系统硬件方框图 Figure 1 System hardware block diagram |
1.1 UTM-30LX激光雷达
UTM-30LX是一款结合了激光技术与雷达技术的先进探测系统,具有高精度、高分辨率、宽视场、低质量和低功耗等特点,可用于机器人环境识别、安防系统和自动导航等领域,如图 2所示,其主要性能参数如表 1所示。
![]() |
图 2 UTM-30LX激光雷达 Figure 2 UTM-30LX lidar |
![]() |
表 1 激光雷达性能参数 Table 1 Performance parameter of lidar |
激光雷达测量原理是借助激光束的发射与回波接收对目标进行扫描建模从而探测目标所处的距离和方位。其对周围环境的扫描建模结果如图 3所示。
![]() |
图 3 激光雷达扫描建模结果 Figure 3 Modeling result of lidar scanning |
激光雷达有效检测范围为270°,分辨率为0. 25°,即每扫描0.25°返回一次距离值。扫描方向为逆时针,每个扫描周期内返回1 081个点的数据,从-45°(Step A)开始扫描,到225°(Step C)结束扫描,如图 4所示。测量点A, B, C的代码分别对应为0, 540, 1 080,其他点的代码可以依次推算出。
![]() |
图 4 激光雷达扫描范围 Figure 4 Range of lidar scanning |
1.2 信号转换模块
激光雷达测量的数据通过USB串行总线输出,当数据处理模块硬件不具备USB串口时需要对信号进行转换。本设计采用VDIP1模块来实现。该模块是FTDI公司开发的信号转换模块,专用于USB信号到串口信号的转换,如图 5所示。
![]() |
图 5 VDIP1信号转换模块 Figure 5 VDIP1 signal transformation module |
该模块使用VNC1L芯片作为微控制器,工作电压为5 V。
1.3 数据处理模块数据处理模块负责信号采集、数据处理、目标距离和方位确定、实时向上位机返回数据等。模块选用ST M32F103CBT6嵌入式微控制器,其工作主频72 MHz,具有多个输入输出口,最多3个串口外设,独立看门狗和窗口看门狗[10, 11]。
数据处理模块电路原理设计以微控制器芯片为核心,搭配相关元器件,构成最小系统。
激光雷达测量的数据经由信号转换模块后进入数据处理模块进行处理。同时,数据处理模块将解算后的结果发送至上位机,接口电路支持RS232和RS422通信标准。
数据处理模块采用5 V供电,其实物图如图 6所示。
![]() |
图 6 数据处理模块 Figure 6 Data processing module |
2 系统应用软件设计
该系统的应用软件设计方案按照模块化方式完成,用C语言在KEIL MDK5集成开发环境下编写,其运行流程如图 7所示。在后台主程序循环中,通过串口接收中断服务函数进行激光雷达数据返回数据帧的解包,通过串口发送中断服务函数向上位机返回实时测量结果。
![]() |
图 7 系统运行流程图 Figure 7 System flow chart |
2.1 系统初始化
程序开始运行后,首先对整个系统的时钟、串口以及激光雷达进行初始化。配置处理器的主频为72 M Hz,系统定时器每1 ms计数一次。将串口波特率设置为115 200,无校验位,8个数据位,1个停止位。
激光雷达初始化中,设置其扫描范围为0°~180°,每隔0.5°返回一次距离值,即总共返回361个测量点的距离值,激光雷达扫描频率为40 Hz且连续返回数据。
2.2 激光雷达数据解包激光雷达测量出的数据按照表 2所示格式进行编码后返回给数据处理模块。
![]() |
表 2 激光雷达数据编码格式 Table 2 Data encoding format of lidar |
系统应用程序中按照此编码格式对361个距离量进行解包。
2.3 数据预处理对测量结果造成误差的原因有以下3点:
(1) 激光雷达有效测量范围为0.1~30 m,低于0.1 m时相对测量误差很大,而超出30 m时测量到的数据为0。
(2) 由于物体移动、混合像素点和表面材料等关键因素的影响,激光雷达某一固定扫描线在采集数据的过程中会产生一些噪点。
(3) 扫描范围内可能出现障碍物,这会对任务目标的定位造成干扰。
基于上述3点,数据处理模块在进行目标定位前需对采集的数据进行预处理,识别出有效区域,如图 8所示。
![]() |
图 8 有效区域示意图 Figure 8 Diagram of effective area |
针对第1点,考虑到无人直升机在实际作业时与目标的位置关系,设置测量值范围为0.5~20 m,用于剔除不在此范围内的无效数据。
针对第2点,由于噪点随机出现,且其函数形式较为复杂,要消除这一误差,本文采用滑动均值法对原始数据进行滤波。该方法适用于高频振荡的系统,对周期性干扰有良好的抑制作用,平滑度高。同时,该方法采用递推形式进行计算,滤波结果实时更新,便于快速处理非平稳数据[12]。
将激光雷达某一扫描线i在时间t上的测量值作为时间序列{yit},其在m个相邻数据的小区间上是接近平稳的,在这一小区间上作局部平均以减少随机误差造成的起伏。再在逐一小区间上进行不断的局部平均,即可得到较为平滑的测量结果{Lit},而滤除频繁起伏的随机误差,其中
$ L_{_i}^{^t} = \frac{1}{m}\sum\limits_{k = t-m + 1}^t {y_{_i}^{^k}} $ | (1) |
本文取m=5,即依次求时间序列上相邻5次测量结果的平均值。对激光雷达90°扫描线上的一组测量值{y180t}进行滑动均值滤波,由图 9可以看出,该方法有效消除了随机误差。
![]() |
图 9 滑动均值滤波结果 Figure 9 Result of sliding average method |
针对第3点,考虑到本文无人直升机作业环境中障碍物较少,且扫描区域无断裂特征,故使用基于坡度的方法[13]筛选出有效扫描范围。此类方法首先选取种子点,再通过比较种子点与邻近点之间的距离变化程度(即坡度)来滤除障碍物,如图 10所示。
![]() |
图 10 扫描示意图 Figure 10 Diagram of scanning |
Li为某一时刻扫描线i上经滑动均值滤波处理后的距离值,Li+1为间隔0.5°处的距离值,依此类推。故坡度的计算公式为
$ {S_{i + 1}} = \left| {\frac{{{L_{i + 1}}-{L_i}}}{{{L_i}}}} \right| $ | (2) |
因为相邻扫描线间隔角度固定为0.5°,所以扫描区域为某一连续区域时,坡度几乎不变,而当扫描至不连续区域时,坡度会突然增大。故可以根据坡度的这一特点,有效判断出不连续区域。设置坡度阀值Sth,当Si < Sth时,该点在连续区域内。若Si>Sth,则该点是两个不连续区域的分界点。
某一组扫描结果如图 11所示,根据式(2)计算得到坡度,并设置坡度阀值Sth =0.1,结果如图 12所示。
![]() |
图 11 一组扫描结果 Figure 11 Scanning result of one group |
![]() |
图 12 坡度曲线图 Figure 12 Diagram of slope |
根据图 12可以分析出:(1)扫描范围内有3块连续区域。(2)第2块区域包含扫描线的数量最多。
故可以判断出,区域1和区域3为障碍物,区域2为无人直升机的作业目标,记区域2起始扫描线索引值为N0,截止扫描线索引值为NS。
2.4 目标定位算法本文最终目的是得到无人直升机到目标的距离L (90°扫描方向的距离),最短距离Lmin,方位角φ,扫描起始线角度δ0,扫描终止线角度δS以及有关状态标志量,各状态量说明如图 13所示。
![]() |
图 13 状态量示意图 Figure 13 Diagram of status value |
为了表征无人直升机相对于目标的位置,程序中定义Position_Flag这一变量对不同位置状态进行区分,如图 14所示。
![]() |
图 14 Position_Flag标志说明 Figure 14 Description of Position_Flag |
当Position_Flag=3,即90°线扫在目标左侧时,如图 15所示,其中α, β, θ, γ分别为解算过程中用到的变量。
![]() |
图 15 Position_Flag=3时示意图 Figure 15 Diagram of Position_Flag=3 |
因为相邻扫描线间的角度为0.5°,故
$ \alpha = \left( {{N_{\rm{S}}}-{N_0}} \right) \times 0.5 $ | (3) |
根据相应几何关系,有
$ {L_{BD}} = \sqrt {L_{_{{N_{\rm{S}}}}}^{^2}-L_{_{{N_0}}}^{^2}-2{L_{{N_{\rm{S}}}}}{L_{N{_0}}}\cos \alpha } $ | (4) |
$ \frac{{{L_{{N_{\rm{S}}}}}}}{{\sin \gamma }} = \frac{{{L_{{N_0}}}}}{{\sin \beta }} = \frac{{{L_{BD}}}}{{\sin \alpha }} $ | (5) |
$ \beta = {\rm{arccos}}\left( {\frac{{L_{_{BD}}^{^2} + L_{_{{N_{\rm{S}}}}}^{^2}-L_{_{{N_0}}}^{^2}}}{{2{L_{BD}}{L_{{N_{\rm{S}}}}}}}} \right) $ | (6) |
其中LBD为有效区域的宽度,可以求出
$ {L_{{\rm{min}}}} = {L_{{N_0}}}\sin \gamma = \frac{{{L_{{N_0}}}\cdot{L_{{N_{\rm{S}}}}}}}{{L{_{BD}}}}{\rm{sin}}\alpha $ | (7) |
因为90°方向扫描线的索引值为180,故
$ \theta = \left( {180-{N_{\rm{S}}}} \right) \times 0.5 $ | (8) |
所求无人直升机与目标的方位角φ为
$ \varphi = 180-\left( {\beta-\theta } \right) $ | (9) |
故无人直升机到目标的距离L为
$ L = \frac{{{L_{{\rm{min}}}}}}{{{\rm{sin}}\varphi }} $ | (10) |
当Position_Flag=2,即90°线扫在目标上时,如图 16所示。
![]() |
图 16 Position_Flag=2时示意图 Figure 16 Diagram of Position_Flag=2 |
与Position_Flag=3的情况类似,可以求出α, β, LBD和Lmin,不同的是
$ \theta = \left( {{N_{\rm{S}}}-180} \right) \times 0.5 $ | (11) |
故无人直升机与目标的方位角φ为
$ \varphi = 180-\left( {\beta + \theta } \right) $ | (12) |
因为90°线扫在目标上,所以无人直升机到目标的距离L可以直接得出。
当Position_Flag=1,即90°线扫在目标右侧时,解算方法和Position_Flag=3时类似,这里不再赘述。
2.5 数据返回解算完成后的最终数据按照表 3所示的数据协议打包发送给上位机。
![]() |
表 3 数据帧打包格式 Table 3 Package format of data frame |
3 上位机与功能测试 3.1 上位机软件设计
上位机软件主要实现接收下位机采集处理的数据,并且实时显示,可以方便地对整个测量系统进行独立测试。本文的上位机软件采用LABVIEW进行开发,这是一种用图标代替文本行创建应用程序的图形化编程语言,并广泛应用于测试领域,一般LABVIEW程序包括前面板界面和后台程序框图,两者通过虚拟仪表控件实现数据交互[14]。
上位机运行框架如图 17所示,测量系统与上位机通过RS232串口实现数据传输,首先调用虚拟仪器软件架构(Virt ual instrument software architecture, VISA)接口函数库对串口号、波特率、数据位和校验位等进行配置。再按照通讯协议对数据帧进行解包,最后通过虚拟仪表显示在前面板中。
![]() |
图 17 上位机运行框架 Figure 17 Operating framework of host |
将上位机软件前面板分成4个主要区域,分别为状态数值显示、状态标志量显示说明、串口参数选择和图形显示界面,可以直观显示出所有的状态。
3.2 试验与测试试验与测试分为以下两个阶段:
(1) 独立测试阶段。该阶段通过搭建不同的实验环境对测量系统进行单独测试,主要验证算法的正确性以及硬件的可靠性。同时,在该阶段对上位机软件进行测试,实时显示测量结果,某一次试验的结果如图 18所示。
![]() |
图 18 独立测试阶段 Figure 18 Independent testing phase |
(2) 机载测试阶段。独立测试通过后,将测量系统安装在无人直升机上,进一步对测量系统进行验证,如图 19所示。
![]() |
图 19 机载测试阶段 Figure 19 Airborne testing phase |
4 结束语
本文基于UTM-30LX激光雷达,利用STM32设计了一套数据采集处理系统,用于无人直升机对任务目标的定位,并使用Labview开发了上位机软件对测量结果进行了直观的显示,最后将该系统应用于一款小型无人直升机上。测试结果表明,该系统运行可靠,可以准确获取无人直升机相对于任务目标的距离和方位角。
[1] |
FARID K, KENZO I, ROGELIO L.
An adaptive vision-based autopilot for mini flying machines guidance, navigation and control[J]. Autonomous Robots, 2009, 27(3): 165–188.
DOI:10.1007/s10514-009-9135-x
|
[2] |
余超凡, 孙建辉.
基于光流传感器的旋翼无人机实时避障系统[J]. 计算机应用软件, 2018, 35(1): 206–210.
YU Chaofan, SUN Jianhui. A real-time obstacle avoidance system for multi-rotor unmanned aerial vehicle based on optical flow sensor[J]. Computer Applications and Software, 2018, 35(1): 206–210. |
[3] |
何志远. 车载三维成像激光雷达系统研究[D]. 哈尔滨: 哈尔滨工业大学, 2015.
HE Zhiyuan. Research on 3D imaging laser radar system for vehicle[D]. Harbin: Harbin Institute of Technology, 2015.http://www.wanfangdata.com.cn/details/detail.do?_type=degree&id=D754599 |
[4] |
吕冰, 钟若飞, 王嘉楠.
车载移动激光扫描测量产品综述[J]. 测绘与空间地理信息, 2012, 6(6): 184–195.
LV Bing, ZHONG Ruofei, WANG Jianan. Vehicle-borne mobile laser scanner products:A review[J]. Geomatics & Spatial Information Technology, 2012, 6(6): 184–195. |
[5] |
WALLACE L, LUCIFER A, WATSON C.
Evaluating tree detection and segmentation routines on very high resolution UAV LiDAR data[J]. IEEE Transactions on Geoscience and Remote Sensing, 2014, 52(12): 7619–7628.
DOI:10.1109/TGRS.2014.2315649
|
[6] |
CHISHOLM R, CUI Jingqiang.
UAV LiDAR for below-canopy forest surveys[J]. Journal of Unmanned Vehicle Systems, 2013, 1(1): 61–68.
DOI:10.1139/juvs-2013-0017
|
[7] |
李冰, 林宇龙, 黄珣.
基于激光雷达技术的无人机电网基建管控系统[J]. 现代电子技术, 2018, 41(2): 99–106.
LI Bing, LIN Yulong, HUANG Xun. Infrastructure management and control system for UAV grid based on laser radar technology[J]. Modern Electronic Technique, 2018, 41(2): 99–106. |
[8] |
邢承海.
基于无人机激光雷达的散料堆场建模系统设计[J]. 冶金自动化, 2017, 41(2): 6–9.
XING Chenghai. Design of bulk yard modeling system based on UAV radar[J]. Metallurgical Industry Automation, 2017, 41(2): 6–9. |
[9] |
FARID K, ZHEN Yuyu, NONAMI K.
Guidance and nonlinear control system for autonomous flight of mini rotorcraft unmanned aerial vehicle[J]. Field Robotics, 2010, 27(3): 311–334.
|
[10] |
JOSEPHY.
The definitive guide to ARM cortex-M3 and cortex-M4 processors[M]. 北京: 清华大学出版社, 2017.
JOSEPH Y. The definitive guide to ARM cortex-M3 and cortex-M4 processors[M]. Beijing: Tsinghua University Press, 2017. |
[11] |
廖义奎.
ARM Cortex-M4嵌入式实战开发精解[M]. 北京: 北京航空航天大学出版社, 2013.
LIAO Yikui. ARM cortex-M4 embedded development[M]. Beijing: Beihang University Press, 2013. |
[12] |
裴益轩, 郭民.
滑动平均法的基本原理及应用[J]. 火炮发射与控制学报, 2001(1): 21–23.
PEI Yixuan, GUO Min. The fundamental principle and application of sliding average method[J]. Gun launch & Control Journal, 2001(1): 21–23. |
[13] |
张皓, 贾新梅.
基于虚拟网格与改进坡度滤波算法的机载LIDAR数据滤波[J]. 测绘科学技术学报, 2009, 26(3): 224–231.
ZHANG Hao, JIA Xinmei. Filtering of airborne LIDAR data based on pseudo-grid concept and modified slope filtering algorithm[J]. Journal of Geomatics Science and Technology, 2009, 26(3): 224–231. |
[14] |
阮奇桢.
我和LabVIEW[M]. 北京: 北京航空航天大学出版社, 2009.
RUAN Qizhen. I and LabVIEW[M]. Beijing: Beihang Universiiy Press, 2009. |