拖拉机遥操作系统优化与性能试验

2019-09-10 01:31薛金林夏成楷杨学斌
农业机械学报 2019年8期
关键词:线程方向盘拖拉机

薛金林 闫 嘉 夏成楷 邹 军 杨学斌

(南京农业大学工学院, 南京 210031)

0 引言

农业车辆田间作业时,实现人车分离对于改善作业者的工作环境、保护其身心健康、提高作业效率意义重大[1-3]。基于此,本课题组设计了一套基于无线网络的拖拉机遥操作系统[4],实现了转向、离合、刹车、油门、点火、熄火等各执行机构的电控化改造和基本控制。然而,系统采用的单线程技术存在数据拥堵问题,新命令有时无法即时被执行,影响了控制精度;同时,遥操作界面上按钮众多、操作不便,可能出现误操作,转向、离合等通过按钮控制也不符合驾驶习惯,影响了指令下达实时性。针对第1代遥操作系统存在的问题,本文开展两方面的优化与改进设计。

一方面基于现有硬件条件将底层单线程控制程序改为多线程。多线程技术[5-6]可以有效提高资源利用效率和系统响应速度,使得程序结构更加合理、易于理解和修改。GRAMATIKOV等[7]利用多线程技术设计了一款矫正弱视的眼镜控制器,试验表明,数据采集线程和仪器控制线程设计合理,可以并行达到优化视觉刺激的目的;陆旭等[8]利用多线程技术设计了一种基于ARM的嵌入式图像处理系统,通过将图像采集和图像处理分为不同的子线程,提高了图像处理效率和图像显示的实时性;倪笑宇等[9]通过数据采集和数据处理与显示子线程的划分,提高了油门控制系统的响应速度。遥操作系统同样需要创建数据读取和数据处理两个线程,以提高遥操作指令的响应速度和实时性。由于需要不断采集传感器信号作为反馈信息,除了线程数据资源的管理还需要进行串口资源的管理,且两者都对实时性要求较高,所以与上述的多线程程序相比,遥操作系统多线程创建更为复杂。

另一方面采用集成操纵装置实现人机交互指令输入方式的优化。目前指令输入方式主要有鼠标/键盘[10-11]、操纵杆[12]、手势/动作[13-14]、穿戴设备[15]等,均在各领域得到了较多的应用。对本遥操作系统而言,输入设备需要满足以下要求:①指令输入的实时性。②驾驶操作的舒适性和临场感。③考虑农业车辆驾驶操作的复杂性。车辆驾驶不同于简单的上下左右移动,输入设备需便于实现油门、刹车、离合踏板及方向盘的协调运动。综上,选择集成操纵装置——Logitech G29型力反馈方向盘及踏板为指令输入设备,代替鼠标和键盘输入。

首先介绍优化的遥操作系统结构,然后阐述基于多线程技术的遥操作控制系统软件优化方法与基于集成操纵装置的人机交互系统优化方法,最后设计随动性能试验和直线行驶、直角转弯、蛇行驾驶试验,以验证优化效果。

1 遥操作系统结构

拖拉机遥操作系统主要由主操纵端控制平台、从操纵端农业机械和车载设备,以及主、从操纵端间的通信网络3部分构成。主操纵端控制平台主要以Logitech G29型力反馈方向盘式操纵装置及集成的力反馈刹车、油门、离合踏板作为遥操作指令输入设备,还包括1台便携式计算机;从操纵端以转向、油门、制动、离合、点火、熄火进行了电控化改造的茂源MY250型拖拉机为试验车辆,除了拖拉机本体还包括以DM368与ATMEGA8微处理器作为主控ECU的嵌入式计算机控制单元、无线路由器、网络硬盘录像机(Network video recorder,NVR)、全景摄像头和枪机摄像头;主、从端通过4G无线网络通信。系统结构如图1所示。

主操纵端控制平台根据人机交互界面观察到的位于拖拉机上方的鱼眼摄像头和拖拉机正前方的枪机摄像头实时回传的田间环境及拖拉机位姿信息,通过方向盘、踏板及方向盘上的按键输入转角、踏板位移及开关指令到上位机,远端车载控制单元通过通信系统获得该指令并控制各执行机构执行相应的动作,同时不断检测各传感器的信号以继续调整各机构转角或位移。

2 遥操作控制系统软件设计

2.1 串口通信协议制定

根据系统数据量大且主要为数值数据传输的特点,通信协议在MODBUS RTU基础上进行设计,其中数字量、模拟量的输入输出采用标准协议,PWM控制与拖拉机执行机构控制基于MODBUS RTU扩展。每个数据帧包含8位地址码、8位功能码、4×8位数据区和16位校验码:地址码明确了系统中需要接收和响应指令的设备,包括主操纵端计算机、PWM发生板、主控制板;功能码规定了接收指令的设备将要执行的功能,表1为相关功能及功能码,H表示十六进制;数据区为每个执行操作特定的数据信息,因为操作指令不同而有差异,例如执行启动指令时只需在底层程序设定继电器通断时间而无需数据区设置,而对于转向则需要3个字节来储存电机开关量、转动方向、转角信息;校验码采用CRC(循环冗余码)校验法。

图1 遥操作系统结构图Fig.1 Structure of teleoperation system

基于上述,以右转10°指令为例,命令码(02 53 00 03 03 10 00 00)中02为主控制板地址,53表示执行转向操作,第1个03表示开3号电机即转向盘处电机,第2个03表示右转,10表示转角为10°。

2.2 多线程主程序设计

第1代遥操作系统采用单线程技术,能够保证指令的执行,但是响应速度偏慢,因为系统需先读取主操纵端控制指令,然后进行处理和执行。当连续发送指令时无法即时响应,必须等前一指令下发并执行完毕才可下发新指令。遥操作过程中当小角度微调时指令执行时间较短,数据拥堵不明显,所以第1代系统在直线行驶试验中表现较好;一旦转角过大或操作失误,第1代系统不便于及时修正而引起的数据拥堵、等待问题则明显影响了遥操作控制效果。因此进行了系统主程序的多线程设计,在主线程中创建了2个子线程:指令读取线程和指令处理线程,利用互斥锁[16]协调两个线程的交替执行,使得处理线程可以即时查看并执行新指令,从而实现控制指令的实时更新和响应。

表1 功能制定Tab.1 Function rules

遥操作系统创建两把锁mutex_uart和mutex。mutex_uart用于管理串口,读取线程需要从串口接收控制指令,而处理线程需要模拟量采集模块通过串口读取传感器信息;另一把锁mutex为一个信号量,通过加锁的方式在读取线程和处理线程之间相互告知有无新命令被接收及新命令有无被处理。

指令读取线程工作流程如图2所示。其中,新命令标志位被占用表示处理线程正在从缓存中取走上一条命令;读取线程对mutex上锁并将新命令标志位置1以告知处理线程又存入了新命令。

图2 读取线程工作流程Fig.2 Flow chart of data reading thread

图3 数据处理线程工作流程Fig.3 Flow chart of data processing thread

处理线程工作流程如图3所示。当指令为控制转向、油门、离合、制动时,需检查串口占用情况,以获取传感器信息,点火、熄火等操作不必检查串口占用情况。模拟量采集模块每次重读传感器电压之前检查是否有新命令,有则中断当前动作执行新命令。

3 遥操作人机交互系统优化设计

在参照文献[4]所设计的基于“鼠标+键盘”的人机交互系统的基础上,进行基于集成操纵装置的交互系统的优化设计。集成操纵装置输入与“键盘+鼠标”的输入方式相比指令下达更加实时,从而便于及时修正,以提高遥操作控制精度;同时该优化更符合驾驶员的操作习惯,改善了遥操作体验。另外,集成操纵装置具备的力反馈功能与众多可开发接口为以后系统的继续优化提供了便利。

图4 原遥操作用户界面Fig.4 User interface of the first generation teleoperation system

3.1 人机交互界面优化设计

第1代遥操作系统用户界面主要包括登录窗、观察窗、操作窗3部分,如图4所示。 优化后操作区改为车辆转角等行驶信息的观察区,不再通过按钮控制,如图5所示。

图5 优化后的遥操作用户界面Fig.5 Optimized user interface of teleoperation system

3.2 集成操纵装置与上位机的交互实现

图6 遥操作控制台Fig.6 Platform for remote control

Logitech G29型方向盘式集成操纵装置通过人机交互设备接口与上位机相连接组成主操纵端的控制平台,如图6所示。除了转向及加减速通过方向盘及踏板操作外,远端拖拉机的点火和熄火等操作利用方向盘装置上的按键完成。实际上,遥操作端基于集成操纵装置的控制平台搭建是基于现有硬件对软件环境的二次开发与搭建[17]。

3.2.1集成操纵装置数据读取与标定

利用DirectX的DirectInput组件[18]实现操纵装置数据的读取。集成操纵装置数据读取流程如图7所示,主要包括设备初始化、获得设备、获取数据和释放对象。其中,初始化完成了方向盘及踏板的占有模式、数据范围等设置,获得设备明确了被读取的对象是方向盘式操纵装置而不是摇杆等其他装置,获取数据不断轮询更新数据并存在缓存中便于读取。

图7 操纵装置数据读取流程Fig.7 Flow chart of joysticks data reading

上位机所读取的主操纵端集成操纵装置的方向盘与踏板数据需要与远端拖拉机方向盘实际转角及离合、制动与油门踏板的实际行程进行标定。经过标定,能够实现主操纵端方向盘输出转向1°则拖拉机转向轮随动转向1°以及遥操作端踏板位移1 mm则拖拉机端踏板随动1 mm的精确控制。

然后对集成操纵装置上有关按键进行功能协议制定。根据系统需求分析,本文将按键与拖拉机执行的功能相对应,使操作人员通过按键实现某些功能,如图8所示。本文使用了部分按键,其他留作进一步开发和完善的备用接口。

图8 方向盘按键功能示意图Fig.8 Function of buttons on steering wheel1.紧急制动杆 2.系统初始化按钮 3.熄火拉杆放回按钮 4.熄火按钮 5.点火按钮

3.2.2集成操纵装置与交互界面通信编程

上位机实时读取集成操纵装置的操作数据。对于方向盘和踏板的操作数据,设置数据更新时间间隔即读取频率,新数据不断在交互界面驾驶数据观察区更新并作为新指令通过串口下发;对于按键数据,通过判断按键是否被按下决定是否下发相应指令。该通信过程在Microsoft Visual Studio 2010中实现。

4 拖拉机试验及结果分析

为验证拖拉机遥操作系统的优化效果,分别开展随动性能试验与驾驶试验。

4.1 随动性能试验

遥操作系统操纵的随动性能指遥操作端集成装置与远端拖拉机上执行机构的同步性,体现为执行时间同步和执行量同步。拖拉机平地静置,用千斤顶顶起使其前轮离地。通过集成操纵装置发送目标转角或踏板位移,获取动作执行完毕时相应机构处传感器的输出电压,并根据标定的位移-电压或角度-电压关系换算角度或位移实际值,以目标值与实际值差值的绝对值(即执行误差)表征执行量的同步性能。先测得集成操纵装置开始动作到拖拉机动作执行完毕的总时间,再测得拖拉机开始动作到拖拉机动作执行完毕时间,二者的差值为集成操纵装置开始动作到拖拉机相应机构开始动作的时间,即执行时延,以此表征系统控制在时间上的随动性能。

5组测试结果的平均值如表2所示。其中,启动执行时间为成功启动拖拉机所需时间,转向执行时间为方向回正位置到转向右极限所需时间,其他机构执行时间为执行机构初始位到终止位所需时间。试验结果表明,控制指令执行误差较小,执行时延在60 ms以内。

表2 随动性能试验结果Tab.2 Test results of follow-up performance

4.2 驾驶试验

选取南京农业大学农业机械试验场地内干燥、平坦、清洁且任意方向坡度不大于2%的水泥路面进行驾驶试验。拖拉机上安装RTK-GPS记录其行驶轨迹。

本文共设计3个试验验证优化后的遥操作系统的驾驶性能,通过直线行驶试验验证遥操作拖拉机直线行驶保持水平;通过直角转弯试验验证遥操作拖拉机实时大角度转弯能力。理论上多线程技术的应用使得指令执行具备更高的实时性和灵活性,集成操纵装置的应用使得指令下达更加实时和准确,所以直线行驶和直角转弯较第1代系统会减少大角度偏驶次数、降低最大误差。然后通过蛇行试验验证遥操作拖拉机转向的灵活性、随动性和可靠性,而第1代系统无法较好地完成该试验。进而通过3个试验综合评价第2代系统整体的实用性和安全性。

4.2.1直线行驶试验

选取试验场地长度约70 m的参考直线,进行3组直线行驶试验,试验场地如图9所示。试验时挡位固定在2挡,基于Matlab进行试验数据处理。根据GPS数据,行驶速度约为3.17 km/h。

图9 直线行驶试验场地Fig.9 Scene of driven along straight line

3组遥操作直线行驶轨迹如图10所示。对3组试验数据进行了误差分析,如表3所示。3组试验最大误差绝对值不超过105.3 mm,RMS误差最大不超过60.1 mm,与表4对比可知,优化后的系统直线行驶控制精度较第1代遥操作系统有明显的提高。且由图10可知,优化后的转向控制更灵活,便于实时修正角度,减少了大角度偏驶情况出现的次数,提高了直线行驶的稳定性。

图10 直线行驶轨迹追踪Fig.10 Results of GPS tracking on straight

表3 3组遥操作直线行驶误差分析Tab.3 Error analysis of teleoperation system mm

表4 第1代遥操作系统直线行驶误差分析Tab.4 Error analysis of the first generation teleoperation system mm

4.2.2直角转弯试验

为了测试优化后遥操作系统大角度转弯执行情况,进行2组直角转弯试验。在场地上用石灰粉标出正北-正东直角转弯参考直线,试验场景如图11所示。

图11 直角转弯试验场地Fig.11 Scene of right angle turn

对GPS数据进行处理,结果如图12所示。由图可知,图12a初次转向角度较合适,角度调整时机较晚,转弯执行误差较大;图12b经多次角度实时调节,转弯执行误差较小,2次试验均较好地完成了直角转弯任务。原因是:①遥操作端驾驶员驾驶技术娴熟,对转向时机和转弯角度有较准确的判断。②在转弯前提前减小油门行程进行了速度控制。同时,通过与第1代遥操作系统直角转弯数据对比,优化后的系统大角度转弯时控制精度有明显提高。

图12 直角转弯试验轨迹追踪Fig.12 Results of GPS tracking on right angle turn

4.2.3蛇行试验

蛇行试验是综合评价车辆操纵稳定性和灵敏性的驾驶试验。蛇行试验通常在保证安全的前提下以尽可能高的车速进行,以考察车辆在接近侧滑或侧翻工况下的操纵性能。而拖拉机实际作业时车速较低,对拖拉机进行蛇行试验可着重评价遥操作转向的随动性、灵活性和可靠性[19]。

参考GB/T 6323—1994《汽车操纵稳定性实验方法》技术标准[20],确定拖拉机遥操作系统蛇行试验的方法。首先驾驶员实际操作拖拉机进行蛇行驾驶,以确定标桩间隔。在规定车速下拖拉机可安全通过且需伴随驾驶员持续不断的动作,标桩间隔过大或过小均无法达到检验目的,最终确定标桩间隔为8 m。在试验场地的路中央和两端共布置10个标桩,进入试验路段前遥操作拖拉机以稳定车速直线行驶,进入试验路段后蛇行通过。蛇行试验场地如图13所示。

图13 蛇行试验场地Fig.13 Scene of pylon course slalom test

蛇行轨迹如图14所示。由图14可知,当驾驶员实际驾驶时执行绕障动作的时机略晚于遥操作驾驶,原因可能是实车驾驶更习惯所以身心状态更自然,而遥操作时担心碰撞所以看到标桩提前采取绕障动作。驾驶员在自然状态下实际驾驶完成蛇行和通过遥操作平台完成蛇行精度差别不大。

图14 蛇行试验轨迹追踪Fig.14 Results of GPS tracking of pylon course slalom test

5 结论

(1)基于已经搭建完成的拖拉机遥操作控制平台进行了多线程程序优化和人机交互系统优化;通过试验验证了系统的随动性能、直走、转向与实时绕障能力,验证了系统的可行性、可靠性与安全性。

(2)系统随动控制精度良好,指令执行时延在60 ms以内;拖拉机行驶速度为3.17 km/h时,直线行驶最大误差绝对值不超过105.3 mm,RMS误差最大不超过60.1 mm;直角转弯、蛇行完成情况良好。

猜你喜欢
线程方向盘拖拉机
实时操作系统mbedOS 互斥量调度机制剖析
拖拉机内燃电传动系统
飞上天的“拖拉机”
六旬老人因抢夺公交车方向盘获刑
基于国产化环境的线程池模型研究与实现
粮食、武器和方向盘
小鸭开拖拉机
红色拖拉机
某型轿车方向盘抖动的分析与改进
“私车公用”打错“方向盘”