基于Jetson和超声传感器的清洁车避障方法研究
2022-04-27熊文军赵山虎李世博杨建华范孝波孙洪良
熊文军, 赵山虎, 李世博, 杨建华*, 范孝波, 孙洪良
(1.西北工业大学 自动化学院,陕西 西安 710129; 2.江苏悦达专用车有限公司 特种车辆研究院,江苏 盐城 224007)
随着我国城镇化率不断提高,2018年底各类道路保洁面积已近90亿平方米。国家《十三五规划纲要》要求2020年机械化清扫保洁率要达到60%,而发达国家已达80%以上。清洁车作为城乡各类硬质路面深度清洁与垃圾回收运转作业的重要手段,具有巨大的市场前景。
但是市面上的清洁车目前还停留在驾驶员人为控制清扫过程的阶段,清扫盘和喷水杆在工作时摆出(如图1所示),容易因驾驶员的疏忽造成清扫盘和喷水杆与路肩的碰撞(如图2所示),加速清扫盘和喷水杆的损坏。这一突出问题导致清扫盘和喷水杆成为清洁车最容易受损的设备,也成为清洁车行业的痛点问题。为了解决这个问题,笔者设计了一种清洁车避障方法。
图1 清洁车清扫盘和喷水杆摆出示意图
图2 清洁车清扫盘与路肩碰撞示意图
针对汽车的避障已经涌现了各种各样的方法,旨在减少因车辆与障碍物碰撞而造成的损失。黄中友等[1]提出了一种基于大数据和即时建模的避障方法,计算时间短、效果好,但需要大量的数据输入。赵文明[2]提出了一种基于机器视觉的汽车自主避障方法,通过图像处理技术获取车道线和障碍物的位置进行即时预警,但是误差较大。于慧等[3]提出了一种基于改进型人工势场的动态避障算法,可以规划出一条安全可靠的行驶路径,但是会因局部极小值导致车辆无法到达目的地。王晓茹等[4]提出了一种基于点质量模型与三自由度模型的主动转向避障方法,可以获得较小的航向误差,但是横向误差较大。宋子豪[5]提出了一种基于双目立体视觉的汽车测距避障方法,检测速度可以达到80 f/s,但是平均检测精度只有55.3%,准确率过低。以上方法都主要针对车辆在行使过程中对其他车辆、护栏等高度较高的障碍物的避障,通过对车辆行驶方向、速度的控制实现自主避障,但在一定程度上存在安全性和工程伦理问题。而针对清洁车的清扫盘和喷水杆等清扫设备的避障研究文献较少,龚雪等[6]提出了一种基于改进模型RP-YOLOv3的洗扫车扫盘避障系统,通过目标检测算法识别车、行人、护栏和石墩等障碍物的位置来进行避障,识别准确率较高,但难以通过图像中的位置把握扫盘和障碍物的实际距离,避障效果较差。针对现有方法在准确率和安全性方面存在的问题,笔者设计了一种准确且高效的方法实现清洁车避障。
清洁车避障首先需要解决的问题是对车身和路肩相对位置的准确把握,这样才能为避障算法提供可靠的输入。由于清洁车进行清扫作业时前进方向总是与路肩保持基本平行,对路肩与车相对位置的测量可以简化为车到路肩水平距离的测量。毫米波测距、红外测距、激光测距和超声波测距是移动目标避障中常用的测距方法[7]。毫米波雷达广泛应用于国防、商用、民用等领域[8],其设备尺寸小、分辨率高、抗环境干扰能力强,但它对体积小、距离近的障碍物测距效果不佳,而且价格昂贵。红外测距测量时间短、功耗低[9],夜间测量精度高,但其容易受到外界环境的影响,测量精度受被测物体的形状、颜色和周围光线等因素影响严重,测量误差较大。激光测距雷达能够同时兼顾检测速度和精度要求,在黑暗环境下也有很好的检测效果,但它对安装精度要求很高且价格昂贵[10]。超声波传感器几乎不受外界光线、灰尘、电磁场等恶劣条件的影响,具有抗干扰能力强、响应时间短和电路易于实现等优点,而且超声波测距模块的结构简单、硬件成本低[11]、体积较小、应用简单可靠,便于设计使用。但是超声波测距方向性差,会由于车辆移动速度过快和较大的波束角导致测量误差,而且不能获得目标的尺寸大小信息。对于清洁车避障测距而言,超声波测距的优势明显,清洁车车速较慢且只需要距离信息即可进行避障。
清洁车避障不仅需要获取可靠的距离信息,而且需要可靠的避障算法。前人采用的避障算法都是基于对车辆驾驶的控制,包括前进方向、车速和制动的控制,算法较为复杂且易因失误造成严重的交通事故。
因此笔者采取一种新的避障算法,针对清洁车清扫盘和喷水杆的避障需求,不控制清洁车行驶过程,而是通过控制清扫盘和喷水杆的收回来避障,这样可以在保证行车安全的同时可有效降低清扫盘和喷水杆的损耗。
本文设计采用车载高性能计算设备Jetson AGX Xavier处理距离信息,采用价格高昂的计算设备的原因在于本文的系统是项目总系统的一个子系统,总系统的所有子系统全都部署在Jetson AGX Xavier上,其中包含深度学习算法。Jetson AGX Xavier具备高性能的计算能力,可以同时满足深度学习算法和嵌入式开发的要求。
所设计的系统将安装于清洁车上,在路肩高度不同的路段进行试验,预计所设计的系统能够在将发生路肩与清扫盘和喷水杆碰撞的地段即时控制清扫盘和喷水杆收回,从而达到减少损失的目的,这也在一定程度上提高了清洁车的智能化水平。
1 硬件设计
1.1 硬件系统总体结构设计
硬件系统的整体结构如图3所示,分为两个部分:本文设计部分和清洁车自有部分。其中,清洁车自有部分包括车载CAN设备控制器和车载CAN信号执行器(清扫盘和喷水杆等),司机可以通过手动操作控制面板的方式向车载CAN设备控制器发送相应的控制命令,车载CAN设备控制器控制车载CAN信号执行器做出相应动作。车载CAN设备控制器提供了可以外部接入的CAN接口,因此可以通过CAN接口接收CAN报文来实现对车载CAN信号执行器的控制。
图3 硬件系统总体结构图
本文检测系统由超声传感器检测电路、车载高性能计算设备Jetson AGX Xavier和CAN通信电路3个部分组成。超声传感器检测电路为相同的两套,安装在清洁车靠近车头的两侧,分别测量清洁车与左右两侧路肩的水平距离,并通过长度分别为3 m和5 m(两个传感器与计算平台之间距离)的RS232转USB线将距离信息传送到Jetson AGX Xavier。在Jetson AGX Xavier上运行相应的避障算法,实时处理上传的距离信息,生成相应的控制命令,通过CAN通信电路发送到车载CAN设备控制器控制清扫盘和喷水杆等车载CAN信号执行器做出相应动作。
1.2 超声传感器及检测电路
1.2.1 超声测距原理
超声波测距源自于蝙蝠的回波定位,在无接触测距领域应用广泛[12]。超声波是一种频率在20 kHz以上的机械波,其波长短、穿透性强、反射能力强,具有一定的方向性。超声波在同种传播介质中传播速度恒定,在不同传播介质的分界面或遇到杂质会产生反射现象。这种反射具有散射性,不是严格定向的[13]。可以利用超声波的这种反射特性进行距离检测。
共振法、频差法和脉冲回波法是3种常用的超声波测距方法,前两种方法检测精度不高,而脉冲回波测距法较为直观且应用广泛,该方法利用超声波在空气中传播速度恒定的特性,通过检测超声波传播时间进行测距,重点是对传感器发射的回波进行识别,通常通过电路来实现。超声波脉冲回波测距法原理如图4所示[14]。
图4 超声测距原理图
脉冲回波测距法原理为:由超声传感器发射端不断沿一个方向发射超声波,超声波遇到物体表面会发生反射,超声传感器接收端也在不断接收反射脉冲,通过测量同一超声脉冲从发射到被接收的时间间隔Δt,结合己知的超声波声速v,利用式(1)可以计算出传感器发射端到被测物之间的距离L。
(1)
设θ为超声波传播距离L与传感器和障碍物水平距离d之间的夹角,则d[15]可通过式(2)算出。
d=Lcosθ
(2)
(3)
1.2.2 超声传感器选型
考虑系统高尘、潮湿的应用环境,检测系统选用了DYP-A02-V2.0超声传感器用于检测清扫盘到路肩的距离,传感器如图5所示。DYP-A02-V2.0超声传感器测距范围在3~450 cm之间,对被测物体和使用环境均无特殊要求。
图5 DYP-A02-V2.0超声传感器实物图
1.2.3 超声传感器检测电路组成及原理
DYP-A02-V2.0超声传感器检测电路如图6所示。DYP-A02-V2.0超声传感器采用UART自动输出模式,每0.1 s自动检测1次距离,输出TTL串口信号。由于传感器和Jetson AGX Xavier之间存在较长的传输距离,TTL信号可能会发生衰减,故采用RS232总线进行转接传输。超声传感器输出的TTL信号经过TTL转RS232模块转换成RS232信号,经过3 m传输线,再经过RS232转USB转接到Jetson AGX Xavier的USB接口,实现传感器到Jetson AGX Xavier控制器的传输。
图6 超声传感器检测电路原理示意图
1.3 车载高性能计算设备Jetson AGX Xavier
NVIDIA Jetson AGX Xavier作为车载计算设备,实物如图7所示。Xavier能耗低,能够满足相对较大型、复杂的神经网络计算要求,适合一些小型智能设备。由于其具有小巧的外形,实际应用价值较高[16]。Xavier的分接板提供各种I/O接头和端口,从标准的双USB、Type-C、HDMI、千兆以太网接口到40-pinGPIO连接器等一系列典型的开发板接头都能在上面找到。40-pin接口如图8所示,可以实现5路串口和2路CAN总线。
图7 Jetson AGX Xavier实物图
图8 Jetson AGX Xavier 40-pin接口示意图
1.4 CAN通信电路
Jetson AGX Xavier没有现成的CAN通信接口,需要从40-pin扩展接口接CAN收发器才能实现CAN通信。检测系统采用TJA1050作为收发器,收发器与Jetson AGX Xavier组成的CAN通信电路如图9所示。Jetson AGX Xavier的40-pin扩展接口中的引脚33(CAN1_DOUT)与收发器上的TX引脚连接,引脚37(CAN1_DIN)与收发器上的RX引脚连接,收发器上的VCC引脚和GND引脚对应接到Jetson AGX Xavier上的VCC引脚(pin17)和GND引脚(pin39)。收发器和车载CAN设备控制器则是CANL引脚和CANH引脚对应相连接。
图9 CAN 通信电路示意图
2 软件设计
2.1 基于Jetson AGX Xavier的CAN通信软件配置
Jetson AGX Xavier实现CAN通信除了需外接CAN收发器外,还需要进行软件配置。每次重启之后都要运行CAN通信配置程序方可进行CAN通信。Jetson AGX Xavier使用Linux操作系统,对寄存器等硬件的读写操作使用命令行来实现。CAN通信配置涉及的寄存器操作较多,都放在命令行里难以实现,所以需要把相应的配置命令放在一个bash脚本里面,每次重启之后运行该bash脚本实现CAN通信的软件配置。bash脚本里编写的配置程序流程如图10所示,首先配置CAN控制器引脚对应的两个寄存器,然后在操作系统上挂载can、can_raw和mttcan等组件,接着设置CAN总线的波特率为0.1 Mbit/s、工作模式为正常模式,最后启动CAN。
图10 CAN通信配置过程
2.2 路肩距离检测及避障算法设计
Jetson AGX Xavier上使用Linux操作系统,在该系统下安装Python和Python的编译器PyCharm,使用Python来实现路肩距离检测和避障算法,相关的串口操作命令通过导入serial库实现,而CAN通信的相关操作命令通过导入CAN库实现。
路肩距离检测及避障算法流程图如图11所示。算法开始以后,超声传感器每0.1 s检测一次距离,判断是否收到结束命令,若收到则结束,若没收到则判断距离是否小于既定阈值,若不小于则返回重新检测,若小于则进入结果投票机制,结果票数小于阈值则返回重新检测,大于则信号经由CAN通信电路传送到车载CAN设备控制器控制清扫盘和喷水杆收回。
图11 路肩距离检测及避障程序流程图
其中的投票机制为每有1次距离小于阈值则计1票,票数阈值为3,累计3票则控制清扫盘和喷水杆收回,距离大于阈值则清空计票,重置为0票。设置投票机制的目的在于避免传感器输出异常导致系统误判,可以过滤异常距离检测。
3 现场试验及结果分析
3.1 设备安装
试验采用两个超声传感器,清扫盘离地高度25 cm,喷水杆离地高度28 cm,传感器安装高度取两者中较低高度为25 cm,具体位置如图12所示。这一高度可以保证路肩高度达到25 cm及以上时,超声信号能够垂直打到路肩并反射回来,从而进行测距和避障,而路肩高度低于25 cm时,即使距离太近也不会碰撞,故没有避障的需要。喷水杆位于清扫盘上方,超声传感器与二者的水平距离为4 m,试验车速为15 km/h,清洁车工作时的前进速度一般为10~15 km/s。4 m的距离说明从超声传感器检测距离到控制清扫盘和喷水杆收回这段时间至少需要控制在1 s以内才能满足实时性要求,超声传感器检测1次距离只需0.1 s,算法延时和CAN控制器控制清扫盘和喷水杆动作延时在0.1 s以内,完全可以满足实时性要求。试验道路为厂区道路,宽敞且相对平整。
图12 超声传感器安装示意图
3.2 测试效果
选取路肩高度分别为19 cm和34 cm的路段进行测试。距离阈值设置为50 cm,清扫盘和喷水杆最大摆出距离为45 cm,阈值增加5 cm可提高容错率,测试时在距离路肩50 cm的位置画线以便观察。测试结果如表1所示,路肩高度分别为19 cm和34 cm的路段各进行了50次测试,其中准确率是指系统正确控制清扫盘和喷水杆的次数占总次数的比例。正确控制的情况为:路肩高度为19 cm时,不管清洁车距离路肩多近,系统都不会控制清扫盘和喷水杆收回;当路肩高度为34 cm时,清洁车与路肩距离低于阈值则控制清扫盘和喷水杆收回,反之则摆出。从表1中可以看到,当路肩高度为19 cm时准确率为94%,路肩高度为34 cm时的准确率为98%,综合准确率较高。
表1 测试结果
3.3 测试结果分析
从测试结果来看,当路肩高度为19 cm时,出现了3次误控制,在出现错误的地方反复试验,发现当清洁车距离路肩较近时,系统会控制清扫盘和喷水杆收回。经分析发现,虽然超声传感器安装高度高于路肩高度,但超声传感器发送超声波存在波束角,超声波能打到的实际位置比发射端略低,加上车身抖动造成的传感器震动导致某一时刻超声信号打到路肩。此时清洁车与路肩的距离已经低于阈值,清扫盘和喷水杆虽然没有收回的必要,但收回也不会影响清洁车正常的清扫工作。
而当路肩高度为34 cm时出现误控制的情况,经研究发现,反复试验中某次清洁车距离路肩的距离已经越过画线(距离小于50 cm,经测量实际值为48.5 cm),系统没有控制清扫盘和喷水杆收回(此时传感器检测距离为50.2 cm)。经分析发现原因在于超声传感器的测量精度会存在±2 cm的随机误差,导致测量存在偏差。
总的来说,本系统可以有效地实现清洁车路肩距离检测及避障,达到了较高的准确率,测距误差在2 cm以内,距离检测到实现控制间隔在0.5 s以内,完全满足清扫盘和喷水杆避障的实时性要求,系统运行稳定,持续长时间运行未出现异常。
4 结束语
本文提出了一种基于Jetson和超声传感器的清洁车路肩距离检测及避障方法,旨在解决目前清洁车普遍存在的因触碰路肩导致清扫盘和喷水杆损坏的问题。采用Jetson AGX Xavier作为控制核心,利用超声传感器实时检测路肩距离,通过CAN总线对清扫盘和喷水杆实现有效控制,进而实现避障。经过实车试验验证,本文提出的方法可以有效实现避障,准确率和实时性都满足要求。后期计划将系统部署在10台城市环卫清洁车上,实际上路试验以检验系统对清扫盘和喷水杆的损耗率影响,再推广到更多有避障需求的车辆上,针对不同车辆的需求差异调整系统,降低车辆设备的损耗。