薛金林 閆 嘉 夏成楷 鄒 軍 楊學(xué)斌
(南京農(nóng)業(yè)大學(xué)工學(xué)院, 南京 210031)
農(nóng)業(yè)車輛田間作業(yè)時,實現(xiàn)人車分離對于改善作業(yè)者的工作環(huán)境、保護其身心健康、提高作業(yè)效率意義重大[1-3]?;诖?,本課題組設(shè)計了一套基于無線網(wǎng)絡(luò)的拖拉機遙操作系統(tǒng)[4],實現(xiàn)了轉(zhuǎn)向、離合、剎車、油門、點火、熄火等各執(zhí)行機構(gòu)的電控化改造和基本控制。然而,系統(tǒng)采用的單線程技術(shù)存在數(shù)據(jù)擁堵問題,新命令有時無法即時被執(zhí)行,影響了控制精度;同時,遙操作界面上按鈕眾多、操作不便,可能出現(xiàn)誤操作,轉(zhuǎn)向、離合等通過按鈕控制也不符合駕駛習(xí)慣,影響了指令下達實時性。針對第1代遙操作系統(tǒng)存在的問題,本文開展兩方面的優(yōu)化與改進設(shè)計。
一方面基于現(xiàn)有硬件條件將底層單線程控制程序改為多線程。多線程技術(shù)[5-6]可以有效提高資源利用效率和系統(tǒng)響應(yīng)速度,使得程序結(jié)構(gòu)更加合理、易于理解和修改。GRAMATIKOV等[7]利用多線程技術(shù)設(shè)計了一款矯正弱視的眼鏡控制器,試驗表明,數(shù)據(jù)采集線程和儀器控制線程設(shè)計合理,可以并行達到優(yōu)化視覺刺激的目的;陸旭等[8]利用多線程技術(shù)設(shè)計了一種基于ARM的嵌入式圖像處理系統(tǒng),通過將圖像采集和圖像處理分為不同的子線程,提高了圖像處理效率和圖像顯示的實時性;倪笑宇等[9]通過數(shù)據(jù)采集和數(shù)據(jù)處理與顯示子線程的劃分,提高了油門控制系統(tǒng)的響應(yīng)速度。遙操作系統(tǒng)同樣需要創(chuàng)建數(shù)據(jù)讀取和數(shù)據(jù)處理兩個線程,以提高遙操作指令的響應(yīng)速度和實時性。由于需要不斷采集傳感器信號作為反饋信息,除了線程數(shù)據(jù)資源的管理還需要進行串口資源的管理,且兩者都對實時性要求較高,所以與上述的多線程程序相比,遙操作系統(tǒng)多線程創(chuàng)建更為復(fù)雜。
另一方面采用集成操縱裝置實現(xiàn)人機交互指令輸入方式的優(yōu)化。目前指令輸入方式主要有鼠標/鍵盤[10-11]、操縱桿[12]、手勢/動作[13-14]、穿戴設(shè)備[15]等,均在各領(lǐng)域得到了較多的應(yīng)用。對本遙操作系統(tǒng)而言,輸入設(shè)備需要滿足以下要求:①指令輸入的實時性。②駕駛操作的舒適性和臨場感。③考慮農(nóng)業(yè)車輛駕駛操作的復(fù)雜性。車輛駕駛不同于簡單的上下左右移動,輸入設(shè)備需便于實現(xiàn)油門、剎車、離合踏板及方向盤的協(xié)調(diào)運動。綜上,選擇集成操縱裝置——Logitech G29型力反饋方向盤及踏板為指令輸入設(shè)備,代替鼠標和鍵盤輸入。
首先介紹優(yōu)化的遙操作系統(tǒng)結(jié)構(gòu),然后闡述基于多線程技術(shù)的遙操作控制系統(tǒng)軟件優(yōu)化方法與基于集成操縱裝置的人機交互系統(tǒng)優(yōu)化方法,最后設(shè)計隨動性能試驗和直線行駛、直角轉(zhuǎn)彎、蛇行駕駛試驗,以驗證優(yōu)化效果。
拖拉機遙操作系統(tǒng)主要由主操縱端控制平臺、從操縱端農(nóng)業(yè)機械和車載設(shè)備,以及主、從操縱端間的通信網(wǎng)絡(luò)3部分構(gòu)成。主操縱端控制平臺主要以Logitech G29型力反饋方向盤式操縱裝置及集成的力反饋剎車、油門、離合踏板作為遙操作指令輸入設(shè)備,還包括1臺便攜式計算機;從操縱端以轉(zhuǎn)向、油門、制動、離合、點火、熄火進行了電控化改造的茂源MY250型拖拉機為試驗車輛,除了拖拉機本體還包括以DM368與ATMEGA8微處理器作為主控ECU的嵌入式計算機控制單元、無線路由器、網(wǎng)絡(luò)硬盤錄像機(Network video recorder,NVR)、全景攝像頭和槍機攝像頭;主、從端通過4G無線網(wǎng)絡(luò)通信。系統(tǒng)結(jié)構(gòu)如圖1所示。
主操縱端控制平臺根據(jù)人機交互界面觀察到的位于拖拉機上方的魚眼攝像頭和拖拉機正前方的槍機攝像頭實時回傳的田間環(huán)境及拖拉機位姿信息,通過方向盤、踏板及方向盤上的按鍵輸入轉(zhuǎn)角、踏板位移及開關(guān)指令到上位機,遠端車載控制單元通過通信系統(tǒng)獲得該指令并控制各執(zhí)行機構(gòu)執(zhí)行相應(yīng)的動作,同時不斷檢測各傳感器的信號以繼續(xù)調(diào)整各機構(gòu)轉(zhuǎn)角或位移。
根據(jù)系統(tǒng)數(shù)據(jù)量大且主要為數(shù)值數(shù)據(jù)傳輸?shù)奶攸c,通信協(xié)議在MODBUS RTU基礎(chǔ)上進行設(shè)計,其中數(shù)字量、模擬量的輸入輸出采用標準協(xié)議,PWM控制與拖拉機執(zhí)行機構(gòu)控制基于MODBUS RTU擴展。每個數(shù)據(jù)幀包含8位地址碼、8位功能碼、4×8位數(shù)據(jù)區(qū)和16位校驗碼:地址碼明確了系統(tǒng)中需要接收和響應(yīng)指令的設(shè)備,包括主操縱端計算機、PWM發(fā)生板、主控制板;功能碼規(guī)定了接收指令的設(shè)備將要執(zhí)行的功能,表1為相關(guān)功能及功能碼,H表示十六進制;數(shù)據(jù)區(qū)為每個執(zhí)行操作特定的數(shù)據(jù)信息,因為操作指令不同而有差異,例如執(zhí)行啟動指令時只需在底層程序設(shè)定繼電器通斷時間而無需數(shù)據(jù)區(qū)設(shè)置,而對于轉(zhuǎn)向則需要3個字節(jié)來儲存電機開關(guān)量、轉(zhuǎn)動方向、轉(zhuǎn)角信息;校驗碼采用CRC(循環(huán)冗余碼)校驗法。
圖1 遙操作系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure of teleoperation system
基于上述,以右轉(zhuǎn)10°指令為例,命令碼(02 53 00 03 03 10 00 00)中02為主控制板地址,53表示執(zhí)行轉(zhuǎn)向操作,第1個03表示開3號電機即轉(zhuǎn)向盤處電機,第2個03表示右轉(zhuǎn),10表示轉(zhuǎn)角為10°。
第1代遙操作系統(tǒng)采用單線程技術(shù),能夠保證指令的執(zhí)行,但是響應(yīng)速度偏慢,因為系統(tǒng)需先讀取主操縱端控制指令,然后進行處理和執(zhí)行。當連續(xù)發(fā)送指令時無法即時響應(yīng),必須等前一指令下發(fā)并執(zhí)行完畢才可下發(fā)新指令。遙操作過程中當小角度微調(diào)時指令執(zhí)行時間較短,數(shù)據(jù)擁堵不明顯,所以第1代系統(tǒng)在直線行駛試驗中表現(xiàn)較好;一旦轉(zhuǎn)角過大或操作失誤,第1代系統(tǒng)不便于及時修正而引起的數(shù)據(jù)擁堵、等待問題則明顯影響了遙操作控制效果。因此進行了系統(tǒng)主程序的多線程設(shè)計,在主線程中創(chuàng)建了2個子線程:指令讀取線程和指令處理線程,利用互斥鎖[16]協(xié)調(diào)兩個線程的交替執(zhí)行,使得處理線程可以即時查看并執(zhí)行新指令,從而實現(xiàn)控制指令的實時更新和響應(yīng)。
表1 功能制定Tab.1 Function rules
遙操作系統(tǒng)創(chuàng)建兩把鎖mutex_uart和mutex。mutex_uart用于管理串口,讀取線程需要從串口接收控制指令,而處理線程需要模擬量采集模塊通過串口讀取傳感器信息;另一把鎖mutex為一個信號量,通過加鎖的方式在讀取線程和處理線程之間相互告知有無新命令被接收及新命令有無被處理。
指令讀取線程工作流程如圖2所示。其中,新命令標志位被占用表示處理線程正在從緩存中取走上一條命令;讀取線程對mutex上鎖并將新命令標志位置1以告知處理線程又存入了新命令。
圖2 讀取線程工作流程Fig.2 Flow chart of data reading thread
圖3 數(shù)據(jù)處理線程工作流程Fig.3 Flow chart of data processing thread
處理線程工作流程如圖3所示。當指令為控制轉(zhuǎn)向、油門、離合、制動時,需檢查串口占用情況,以獲取傳感器信息,點火、熄火等操作不必檢查串口占用情況。模擬量采集模塊每次重讀傳感器電壓之前檢查是否有新命令,有則中斷當前動作執(zhí)行新命令。
在參照文獻[4]所設(shè)計的基于“鼠標+鍵盤”的人機交互系統(tǒng)的基礎(chǔ)上,進行基于集成操縱裝置的交互系統(tǒng)的優(yōu)化設(shè)計。集成操縱裝置輸入與“鍵盤+鼠標”的輸入方式相比指令下達更加實時,從而便于及時修正,以提高遙操作控制精度;同時該優(yōu)化更符合駕駛員的操作習(xí)慣,改善了遙操作體驗。另外,集成操縱裝置具備的力反饋功能與眾多可開發(fā)接口為以后系統(tǒng)的繼續(xù)優(yōu)化提供了便利。
圖4 原遙操作用戶界面Fig.4 User interface of the first generation teleoperation system
第1代遙操作系統(tǒng)用戶界面主要包括登錄窗、觀察窗、操作窗3部分,如圖4所示。 優(yōu)化后操作區(qū)改為車輛轉(zhuǎn)角等行駛信息的觀察區(qū),不再通過按鈕控制,如圖5所示。
圖5 優(yōu)化后的遙操作用戶界面Fig.5 Optimized user interface of teleoperation system
圖6 遙操作控制臺Fig.6 Platform for remote control
Logitech G29型方向盤式集成操縱裝置通過人機交互設(shè)備接口與上位機相連接組成主操縱端的控制平臺,如圖6所示。除了轉(zhuǎn)向及加減速通過方向盤及踏板操作外,遠端拖拉機的點火和熄火等操作利用方向盤裝置上的按鍵完成。實際上,遙操作端基于集成操縱裝置的控制平臺搭建是基于現(xiàn)有硬件對軟件環(huán)境的二次開發(fā)與搭建[17]。
3.2.1集成操縱裝置數(shù)據(jù)讀取與標定
利用DirectX的DirectInput組件[18]實現(xiàn)操縱裝置數(shù)據(jù)的讀取。集成操縱裝置數(shù)據(jù)讀取流程如圖7所示,主要包括設(shè)備初始化、獲得設(shè)備、獲取數(shù)據(jù)和釋放對象。其中,初始化完成了方向盤及踏板的占有模式、數(shù)據(jù)范圍等設(shè)置,獲得設(shè)備明確了被讀取的對象是方向盤式操縱裝置而不是搖桿等其他裝置,獲取數(shù)據(jù)不斷輪詢更新數(shù)據(jù)并存在緩存中便于讀取。
圖7 操縱裝置數(shù)據(jù)讀取流程Fig.7 Flow chart of joysticks data reading
上位機所讀取的主操縱端集成操縱裝置的方向盤與踏板數(shù)據(jù)需要與遠端拖拉機方向盤實際轉(zhuǎn)角及離合、制動與油門踏板的實際行程進行標定。經(jīng)過標定,能夠?qū)崿F(xiàn)主操縱端方向盤輸出轉(zhuǎn)向1°則拖拉機轉(zhuǎn)向輪隨動轉(zhuǎn)向1°以及遙操作端踏板位移1 mm則拖拉機端踏板隨動1 mm的精確控制。
然后對集成操縱裝置上有關(guān)按鍵進行功能協(xié)議制定。根據(jù)系統(tǒng)需求分析,本文將按鍵與拖拉機執(zhí)行的功能相對應(yīng),使操作人員通過按鍵實現(xiàn)某些功能,如圖8所示。本文使用了部分按鍵,其他留作進一步開發(fā)和完善的備用接口。
圖8 方向盤按鍵功能示意圖Fig.8 Function of buttons on steering wheel1.緊急制動桿 2.系統(tǒng)初始化按鈕 3.熄火拉桿放回按鈕 4.熄火按鈕 5.點火按鈕
3.2.2集成操縱裝置與交互界面通信編程
上位機實時讀取集成操縱裝置的操作數(shù)據(jù)。對于方向盤和踏板的操作數(shù)據(jù),設(shè)置數(shù)據(jù)更新時間間隔即讀取頻率,新數(shù)據(jù)不斷在交互界面駕駛數(shù)據(jù)觀察區(qū)更新并作為新指令通過串口下發(fā);對于按鍵數(shù)據(jù),通過判斷按鍵是否被按下決定是否下發(fā)相應(yīng)指令。該通信過程在Microsoft Visual Studio 2010中實現(xiàn)。
為驗證拖拉機遙操作系統(tǒng)的優(yōu)化效果,分別開展隨動性能試驗與駕駛試驗。
遙操作系統(tǒng)操縱的隨動性能指遙操作端集成裝置與遠端拖拉機上執(zhí)行機構(gòu)的同步性,體現(xiàn)為執(zhí)行時間同步和執(zhí)行量同步。拖拉機平地靜置,用千斤頂頂起使其前輪離地。通過集成操縱裝置發(fā)送目標轉(zhuǎn)角或踏板位移,獲取動作執(zhí)行完畢時相應(yīng)機構(gòu)處傳感器的輸出電壓,并根據(jù)標定的位移-電壓或角度-電壓關(guān)系換算角度或位移實際值,以目標值與實際值差值的絕對值(即執(zhí)行誤差)表征執(zhí)行量的同步性能。先測得集成操縱裝置開始動作到拖拉機動作執(zhí)行完畢的總時間,再測得拖拉機開始動作到拖拉機動作執(zhí)行完畢時間,二者的差值為集成操縱裝置開始動作到拖拉機相應(yīng)機構(gòu)開始動作的時間,即執(zhí)行時延,以此表征系統(tǒng)控制在時間上的隨動性能。
5組測試結(jié)果的平均值如表2所示。其中,啟動執(zhí)行時間為成功啟動拖拉機所需時間,轉(zhuǎn)向執(zhí)行時間為方向回正位置到轉(zhuǎn)向右極限所需時間,其他機構(gòu)執(zhí)行時間為執(zhí)行機構(gòu)初始位到終止位所需時間。試驗結(jié)果表明,控制指令執(zhí)行誤差較小,執(zhí)行時延在60 ms以內(nèi)。
表2 隨動性能試驗結(jié)果Tab.2 Test results of follow-up performance
選取南京農(nóng)業(yè)大學(xué)農(nóng)業(yè)機械試驗場地內(nèi)干燥、平坦、清潔且任意方向坡度不大于2%的水泥路面進行駕駛試驗。拖拉機上安裝RTK-GPS記錄其行駛軌跡。
本文共設(shè)計3個試驗驗證優(yōu)化后的遙操作系統(tǒng)的駕駛性能,通過直線行駛試驗驗證遙操作拖拉機直線行駛保持水平;通過直角轉(zhuǎn)彎試驗驗證遙操作拖拉機實時大角度轉(zhuǎn)彎能力。理論上多線程技術(shù)的應(yīng)用使得指令執(zhí)行具備更高的實時性和靈活性,集成操縱裝置的應(yīng)用使得指令下達更加實時和準確,所以直線行駛和直角轉(zhuǎn)彎較第1代系統(tǒng)會減少大角度偏駛次數(shù)、降低最大誤差。然后通過蛇行試驗驗證遙操作拖拉機轉(zhuǎn)向的靈活性、隨動性和可靠性,而第1代系統(tǒng)無法較好地完成該試驗。進而通過3個試驗綜合評價第2代系統(tǒng)整體的實用性和安全性。
4.2.1直線行駛試驗
選取試驗場地長度約70 m的參考直線,進行3組直線行駛試驗,試驗場地如圖9所示。試驗時擋位固定在2擋,基于Matlab進行試驗數(shù)據(jù)處理。根據(jù)GPS數(shù)據(jù),行駛速度約為3.17 km/h。
圖9 直線行駛試驗場地Fig.9 Scene of driven along straight line
3組遙操作直線行駛軌跡如圖10所示。對3組試驗數(shù)據(jù)進行了誤差分析,如表3所示。3組試驗最大誤差絕對值不超過105.3 mm,RMS誤差最大不超過60.1 mm,與表4對比可知,優(yōu)化后的系統(tǒng)直線行駛控制精度較第1代遙操作系統(tǒng)有明顯的提高。且由圖10可知,優(yōu)化后的轉(zhuǎn)向控制更靈活,便于實時修正角度,減少了大角度偏駛情況出現(xiàn)的次數(shù),提高了直線行駛的穩(wěn)定性。
圖10 直線行駛軌跡追蹤Fig.10 Results of GPS tracking on straight
表3 3組遙操作直線行駛誤差分析Tab.3 Error analysis of teleoperation system mm
表4 第1代遙操作系統(tǒng)直線行駛誤差分析Tab.4 Error analysis of the first generation teleoperation system mm
4.2.2直角轉(zhuǎn)彎試驗
為了測試優(yōu)化后遙操作系統(tǒng)大角度轉(zhuǎn)彎執(zhí)行情況,進行2組直角轉(zhuǎn)彎試驗。在場地上用石灰粉標出正北-正東直角轉(zhuǎn)彎參考直線,試驗場景如圖11所示。
圖11 直角轉(zhuǎn)彎試驗場地Fig.11 Scene of right angle turn
對GPS數(shù)據(jù)進行處理,結(jié)果如圖12所示。由圖可知,圖12a初次轉(zhuǎn)向角度較合適,角度調(diào)整時機較晚,轉(zhuǎn)彎執(zhí)行誤差較大;圖12b經(jīng)多次角度實時調(diào)節(jié),轉(zhuǎn)彎執(zhí)行誤差較小,2次試驗均較好地完成了直角轉(zhuǎn)彎任務(wù)。原因是:①遙操作端駕駛員駕駛技術(shù)嫻熟,對轉(zhuǎn)向時機和轉(zhuǎn)彎角度有較準確的判斷。②在轉(zhuǎn)彎前提前減小油門行程進行了速度控制。同時,通過與第1代遙操作系統(tǒng)直角轉(zhuǎn)彎數(shù)據(jù)對比,優(yōu)化后的系統(tǒng)大角度轉(zhuǎn)彎時控制精度有明顯提高。
圖12 直角轉(zhuǎn)彎試驗軌跡追蹤Fig.12 Results of GPS tracking on right angle turn
4.2.3蛇行試驗
蛇行試驗是綜合評價車輛操縱穩(wěn)定性和靈敏性的駕駛試驗。蛇行試驗通常在保證安全的前提下以盡可能高的車速進行,以考察車輛在接近側(cè)滑或側(cè)翻工況下的操縱性能。而拖拉機實際作業(yè)時車速較低,對拖拉機進行蛇行試驗可著重評價遙操作轉(zhuǎn)向的隨動性、靈活性和可靠性[19]。
參考GB/T 6323—1994《汽車操縱穩(wěn)定性實驗方法》技術(shù)標準[20],確定拖拉機遙操作系統(tǒng)蛇行試驗的方法。首先駕駛員實際操作拖拉機進行蛇行駕駛,以確定標樁間隔。在規(guī)定車速下拖拉機可安全通過且需伴隨駕駛員持續(xù)不斷的動作,標樁間隔過大或過小均無法達到檢驗?zāi)康?,最終確定標樁間隔為8 m。在試驗場地的路中央和兩端共布置10個標樁,進入試驗路段前遙操作拖拉機以穩(wěn)定車速直線行駛,進入試驗路段后蛇行通過。蛇行試驗場地如圖13所示。
圖13 蛇行試驗場地Fig.13 Scene of pylon course slalom test
蛇行軌跡如圖14所示。由圖14可知,當駕駛員實際駕駛時執(zhí)行繞障動作的時機略晚于遙操作駕駛,原因可能是實車駕駛更習(xí)慣所以身心狀態(tài)更自然,而遙操作時擔(dān)心碰撞所以看到標樁提前采取繞障動作。駕駛員在自然狀態(tài)下實際駕駛完成蛇行和通過遙操作平臺完成蛇行精度差別不大。
圖14 蛇行試驗軌跡追蹤Fig.14 Results of GPS tracking of pylon course slalom test
(1)基于已經(jīng)搭建完成的拖拉機遙操作控制平臺進行了多線程程序優(yōu)化和人機交互系統(tǒng)優(yōu)化;通過試驗驗證了系統(tǒng)的隨動性能、直走、轉(zhuǎn)向與實時繞障能力,驗證了系統(tǒng)的可行性、可靠性與安全性。
(2)系統(tǒng)隨動控制精度良好,指令執(zhí)行時延在60 ms以內(nèi);拖拉機行駛速度為3.17 km/h時,直線行駛最大誤差絕對值不超過105.3 mm,RMS誤差最大不超過60.1 mm;直角轉(zhuǎn)彎、蛇行完成情況良好。