姚科,李國利,咸尚君,鄒惟清
(金陵科技學院機電工程學院,江蘇南京 211169)
隨著科技的發(fā)展,機器人已逐漸融入人們的生活、工作、社會的發(fā)展和穩(wěn)定中,成為了不可缺少的角色。在機器人控制系統(tǒng)中,移動平臺的控制是極重要的部分[1-2]。機器人運行路跡固定且實現(xiàn)了功能統(tǒng)一的自動化項目,通常已經(jīng)實現(xiàn)了機器人移動平臺的自主定位和自主循跡,使機器人能長期高效穩(wěn)定運行[3]。但在工作環(huán)境復雜、機器人實現(xiàn)功能特殊的場景中,如火場救援滅火等,針對機器人移動平臺實現(xiàn)遠程高效穩(wěn)定控制具有重要的意義[4-6]。
隨著機器人在滅火救援特種作業(yè)等高危復雜工作中優(yōu)勢的體現(xiàn),移動平臺的遠程穩(wěn)定、高效控制擁有巨大的應用領(lǐng)域和廣闊的發(fā)展前景,近些年來更是呈現(xiàn)優(yōu)異的發(fā)展態(tài)勢[7-8]。這種對人員生命安全、財產(chǎn)安全敏感的特種作業(yè)來說,機器人遠程移動平臺控制具有穩(wěn)定、安全、高效、環(huán)境適應性強等優(yōu)點[9-10]。在科技不斷發(fā)展的今天,機器人越來越普及,將機器人移動平臺的遠程控制應用到特殊工作環(huán)境的特種作業(yè)中,對提高特種作業(yè)的工作效率、保障工作人員的生命安全都具有深遠意義。所以一種能在復雜作業(yè)環(huán)境下實現(xiàn)機器人移動平臺遠程控制的方案就顯得十分重要。該文設(shè)計了基于SX1280LoRa 模塊遠程傳輸數(shù)據(jù)的移動平臺控制方案,控制信號發(fā)送板采集控制元件狀態(tài)參數(shù),將參數(shù)遠程發(fā)送給接收板,接收板將接收的數(shù)據(jù)解碼成移動平臺各電機控制信號,控制各“H 橋”電機驅(qū)動電路,針對該方案制作樣機進行了調(diào)試和驗證。
1.1.1 控制信號采集編碼硬件電路設(shè)計
文中移動平臺遠程控制系統(tǒng)設(shè)計中,采集電路左右搖桿、鈕子開關(guān)、自鎖按鍵、撥碼開關(guān)的狀態(tài)作為控制信號,由這些控制元件狀態(tài)決定移動平臺的工作模式、移動速度、移動方向。
控制信號發(fā)送板和控制信號接收板的控制系統(tǒng)采用STM32 系列的主控芯片,控制系統(tǒng)電路包括最基本的電源供電電路、外部復位電路、外部時鐘電路、啟動方式BOOT 控制接口、狀態(tài)指示電路和在線調(diào)試JTAG 接口。
外部復位電路中,按下復位按鈕,NRST 復位引腳被拉低,從而產(chǎn)生復位脈沖,對控制系統(tǒng)執(zhí)行強制復位操作。外部時鐘電路是為了給單片機運行程序提供精準的時鐘信號。程序啟動控制BOOT 接口控制主控芯片啟動方式。程序下載和在線調(diào)試采用五線 制TCK/TMS/TDO/TDI/TRST 的JTAG 接 口,通 過JTAG 接口可以訪問處理器的內(nèi)部寄存器,從而對處理器進行在線調(diào)試。
信號發(fā)送板的控制系統(tǒng)讀取鈕子開關(guān)、自鎖開關(guān)、撥碼開關(guān)的電平信號,ADC 采集左右兩搖桿的數(shù)值。發(fā)送板主控電路將控制參數(shù)編碼成控制數(shù)據(jù)通過SX1280LoRa 模塊發(fā)送,接收板主控電路將接收到的控制數(shù)據(jù)解碼成移動平臺各電機的控制信號,控制各電機的轉(zhuǎn)向和轉(zhuǎn)速[11]。
1.1.2 通信部分硬件電路設(shè)計
SX1280LoRa 模塊是該項目中無線發(fā)送板和無線接收板的核心。該模塊是基于SX1280 的射頻模塊,是一款高性能無線收發(fā)器,特殊的LoRa 擴頻調(diào)制技術(shù)可以極大地提升通信距離,而且其無線收發(fā)模塊的體積小、傳輸距離遠、功耗低、具有線性度,抗干擾能力強[12-13],模塊內(nèi)部沒有集成微控制芯片,故需要配合MCU 使用,SX1280LoRa 通信電路原理圖如圖1 所示。
圖1 SX1280LoRa通信電路原理圖
NRST 和BUSY 分別為復位引腳和狀態(tài)指示輸出引腳,模塊采用SPI通信接口。SPI用四根信號線通信,在該模塊中NSS_CTS 為片選引腳,SCK_RTS 為時鐘輸入引腳,MOSI_RX 為SPI 數(shù)據(jù)輸入,MISO_TX為SPI 數(shù)據(jù)輸出。SPI 通信采用一主一從的通信方式,具有同步全雙工通信性質(zhì)。無論接收數(shù)據(jù)還是發(fā)送數(shù)據(jù)都是單向傳輸?shù)?。主機的SCK 時鐘作為主從機的同步時鐘信號,同步主、從機的時鐘頻率[14-15]。主機片選信號接高電平,從機片選信號接低電平,因為這是一主一從的通信系統(tǒng),所以從機的片選信號一直為低電平且時鐘被選中。
對移動平臺電機的驅(qū)動而言,主控單片機是可以輸出電壓的,但其輸出的電流很小,驅(qū)動能力十分有限。所以通過單片機輸出信號做驅(qū)動信號來驅(qū)動MOS 管是一種普遍的電機驅(qū)動方案。MOS 管實質(zhì)是一個電子開關(guān),通過關(guān)斷MOS 管控制驅(qū)動電機的供電電源,并且可以通過調(diào)PWM 占空比大小來控制驅(qū)動板加在電機上的電壓,從而達到電機調(diào)速的目的[16]。
移動平臺驅(qū)動控制板采用MP1584 降壓型芯片將供電電壓降至5 V,以對控制電路供電,控制系統(tǒng)采用STM32C8T6 作為MCU??刂艸 橋驅(qū)動的IR 2104S 半橋驅(qū)動芯片需要12 V 電壓,故使用SX1308將MP1584 降壓后的電壓升壓至12 V。
在H 橋驅(qū)動電路中,使用IR2104S 作為半橋驅(qū)動芯片。H 橋電路驅(qū)動原理圖如圖2 所示。
圖2 H橋電路驅(qū)動原理圖
當驅(qū)動電路下橋臂MOS 處于導通狀態(tài),此時上橋臂MOS 管處于關(guān)斷狀態(tài),VS 引腳的電平接近于低電平。芯片的VCC電壓(+12 V_motor)經(jīng)過二極管向自舉電容充電,使自舉電容上端電壓近似于VCC電壓。此時下橋臂MOS 關(guān)斷,VS 的電位將由近似于0 V 開始升高,此時VB 的電壓為電源電壓加VS 引腳電壓。由于芯片內(nèi)部HO 與VB 導通,也就是HO 與VS 之間電壓為VCC,這個電壓差足夠打開上橋臂。當上橋臂MOS 管關(guān)斷,下橋臂MOS 管導通,電路開始給自舉電容補充電量,電壓達到閾值時交替導通。全橋驅(qū)動的兩個IN 信號為一對相反的信號,控制半橋上、下橋臂MOS 管進行交替導通,達到全橋驅(qū)動的目的。
在基于SX1280LoRa 模塊的無線信號發(fā)送板程序設(shè)計中,采用定時器中斷設(shè)定每20 ms 對需要發(fā)送的數(shù)據(jù)進行編碼并判斷編碼內(nèi)容是否與上一組數(shù)據(jù)相同,若相同,則返回1,否則返回0。當返回值為1時執(zhí)行SX1280 模塊的無線數(shù)據(jù)發(fā)送函數(shù),發(fā)送結(jié)束后復位編碼完成標志位和20 ms 計時標志位。程序流程圖如圖3 所示。
圖3 無線信號發(fā)送板的程序流程圖
在數(shù)據(jù)采集編碼函數(shù)中引入三個形參,分別為目標地址、源地址、待發(fā)送數(shù)據(jù)。在對數(shù)據(jù)進行采集編碼中通過ADC 采樣獲取左右遙感X軸和Y軸的值以及左右電位器的值,并讀取按鍵的狀態(tài)。獲取無線遙控控制數(shù)據(jù)后,對數(shù)據(jù)進行編碼。定義存放編碼數(shù)據(jù)數(shù)組由目標地址、源地址、左右遙感X、Y軸參數(shù)、各按鍵參數(shù)、左右電位器參數(shù)、檢驗位和數(shù)據(jù)尾組成。編碼完成后會對要發(fā)送的數(shù)據(jù)和上一組數(shù)據(jù)進行比較,只有數(shù)據(jù)不同才會進入數(shù)據(jù)發(fā)送程序。在數(shù)據(jù)編碼函數(shù)中針對剛剛編碼完成準備進入發(fā)送函數(shù)的數(shù)據(jù)生成校驗位sum,sum 是由數(shù)組中除數(shù)據(jù)尾外的數(shù)據(jù)累計相加得到,在接收函數(shù)中會有對應的檢驗位驗證函數(shù),用于判別接收的數(shù)據(jù)包是否正確。
接收到的數(shù)據(jù)包內(nèi)容包括目標地址、源地址、左搖桿X軸數(shù)據(jù)、左搖桿Y軸數(shù)據(jù)、右搖桿X軸數(shù)據(jù)、右搖桿Y軸數(shù)據(jù)、旋轉(zhuǎn)工作模式、運行工作方式、遙控左電位器信號、遙控右電位器信號、遙控左右面板按鍵信號、校驗位、數(shù)據(jù)尾共計13 類數(shù)據(jù)。在數(shù)據(jù)包驗證流程中,定義一個驗證數(shù)據(jù)標志參數(shù)sum。首先確定目標地址和源地址是否正確,然后把接收到的數(shù)據(jù)從目標地址到校驗位前的數(shù)據(jù)累計相加放入sum 中,和校驗位數(shù)據(jù)進行比較。兩參數(shù)相同證明數(shù)據(jù)包接收無誤,接收數(shù)據(jù)指示燈閃爍,否則清空接收數(shù)據(jù)。數(shù)據(jù)校驗流程圖如圖4 所示。
圖4 數(shù)據(jù)校驗流程圖
在數(shù)據(jù)接收校驗完畢,對數(shù)據(jù)進行解碼。分別進行地址段解碼、功能段解碼和遙感數(shù)據(jù)解碼。定義全局變量,存放針對移動平臺解碼后的控制信號,發(fā)送的數(shù)據(jù)依次為接收地址、發(fā)送地址、功能、方向、速度1、速度2、速度3、速度4、緊急切換信號和校驗、數(shù)據(jù)尾,如表1 所示。
表1 電機驅(qū)動板接收數(shù)據(jù)字節(jié)定義
對于驅(qū)動單個電機需要電機轉(zhuǎn)動方向和電機轉(zhuǎn)動快慢兩個參數(shù)。文中用三個參數(shù)控制一臺電機的轉(zhuǎn)動狀態(tài),分別是motor_A、motor_B、PWM_motor。前兩個參數(shù)為一對相反的量,為全橋驅(qū)動電路的兩個半橋驅(qū)動芯片輸入相反的控制信號,控制電機的轉(zhuǎn)動方向。后者PWM 控制電機的轉(zhuǎn)動速度。由上述四路電機硬件驅(qū)動控制板硬件介紹可知,控制一個H 橋驅(qū)動需要兩個半橋驅(qū)動IR2104S 芯片,根據(jù)H 橋驅(qū)動原理,兩個半橋驅(qū)動芯片的“IN”腳為一對相 反 的PWM 波。故motor_A=motor.dir、motor_B=~motor.dir。
移動平臺驅(qū)動行進方式涉及整體的運動方向和行進速度,分散到每個電機就轉(zhuǎn)化為四個電機單獨的轉(zhuǎn)動方向和轉(zhuǎn)動速度配合問題。
在電機驅(qū)動控制程序中,會用到許多不同的驅(qū)動直流電機的參數(shù),因為其零散性且是共屬驅(qū)動直流電機的參數(shù),該程序?qū)⑦@些屬于驅(qū)動直流電機參數(shù)的“屬性”,組成“motor_drive”結(jié)構(gòu)體,更加有整體性,且效率高、方便調(diào)用、傳遞參數(shù)簡潔?,F(xiàn)將該程序入口參數(shù)結(jié)構(gòu)體變量介紹如下:
在接收到SX1280LoRa 模塊發(fā)出的信號后,無線接收板會對接收到的數(shù)據(jù)進行解碼,將接收到的搖桿、自鎖開關(guān)、鈕子開關(guān)等狀態(tài)數(shù)據(jù)解碼成移動平臺各電機控制參數(shù)。將設(shè)備如圖5 所示硬件接線圖相連接。通過串口助手監(jiān)測解碼后移動平臺的控制參數(shù),監(jiān)測數(shù)據(jù)解碼和再編碼如圖6 所示。
圖5 無線接收板調(diào)試硬件接線圖
圖6 監(jiān)測數(shù)據(jù)解碼和再編碼
將解碼后的數(shù)據(jù)再編碼成用于驅(qū)動控制的參數(shù),放入RS485_TX_BUF 數(shù)組中。第一、二個數(shù)據(jù)為數(shù)據(jù)發(fā)送目標地址和數(shù)據(jù)發(fā)送源地址,第三個數(shù)據(jù)是移動平臺工作的模式,有前進、后退、停車、向左、向右、左前、左后、右前、右后、順時針旋轉(zhuǎn)和逆時針旋轉(zhuǎn)。第四個數(shù)據(jù)的低四位存放四路電機的轉(zhuǎn)動方向。第五到第八位是四個電機的速度。第九位是緊急切換信號,包括手動模式和急停模式。
例如右側(cè)第二行數(shù)據(jù):AA 表示數(shù)據(jù)由移動平臺電機驅(qū)動控制板接收,AB 表示數(shù)據(jù)由遙控接收板發(fā)出,03 代表機器人向左移動,故09 是機器人的四個電機轉(zhuǎn)動方向“1001”,后四個數(shù)據(jù)為四個電機的速度,00為特殊狀態(tài)位,倒數(shù)第二位是校驗位,最后為數(shù)據(jù)尾。而在第三項數(shù)據(jù)中06 代表電機朝左后方向運動,雖然電機四個轉(zhuǎn)動方向為“1111”,但四個電機中的第二第三電機速度為0,故運動方向是正確的。
文中共進行了6 次控制信號連接成功率測試,每次測試連續(xù)輸出15 min 移動平臺控制信號,通過串口調(diào)試助手對信號發(fā)送端和接收端進行對比監(jiān)測,該實驗實際測試結(jié)果如表2 所示,每次遠程控制數(shù)據(jù)傳輸成功時,串口調(diào)試助手監(jiān)測控制信號發(fā)送端輸出數(shù)據(jù)與控制信號接收端所接收的數(shù)據(jù)均一致,該系統(tǒng)數(shù)據(jù)采集上傳成功率最低為97.3%,通信網(wǎng)絡(luò)丟包率平均為1.97%,系統(tǒng)數(shù)據(jù)傳輸丟包率測試統(tǒng)計如表2 所示。
表2 系統(tǒng)數(shù)據(jù)傳輸丟包率測試統(tǒng)計
在實驗室運行環(huán)境下,當移動平臺移動距離和速度給定時,對移動平臺進行了前后直行、斜行、側(cè)向橫行、等多狀態(tài)軌跡運動,以對其軌跡運動性能進行評估。文中運動性能測試了500 cm 距離時的定位精度,測試時在移動平臺不同的移動速度條件下,記錄實際運行距離與目標值之間的誤差,平臺定距定速運行性能測試數(shù)據(jù)如表3 所示。
表3 平臺定距定速運行性能測試數(shù)據(jù)
該文介紹了一款遠程移動平臺控制系統(tǒng),包括基于SX1280LoRa 模塊的控制信號發(fā)送板、基于SX1280LoRa 模塊的控制信號接收板、移動平臺電機驅(qū)動控制板,實現(xiàn)機器人移動平臺遠程高效穩(wěn)定控制功能。移動平臺的整體行進狀態(tài)由其各個電機共同決定,在移動平臺電機驅(qū)動控制板中,通過“H 橋”電路驅(qū)動電機,遠程控制信號發(fā)送板讀取和采樣控制元件狀態(tài),將控制元件狀態(tài)數(shù)據(jù)進行編碼發(fā)送。無線信號接收板對接收到的數(shù)據(jù)進行校驗解碼,將控制元件狀態(tài)參數(shù)解碼成移動平臺的各路電機控制參數(shù),傳至移動平臺電機驅(qū)動控制板的各路“H 橋”驅(qū)動電路半橋驅(qū)動芯片中,完成移動平臺的遠程控制。最后該系統(tǒng)經(jīng)過調(diào)試運行,結(jié)果表明,各電路硬件設(shè)計方案可行、遠程數(shù)據(jù)發(fā)送正確穩(wěn)定、控制算法正確、控制系統(tǒng)運行高效穩(wěn)定。