王 皓 胡乃文 李昆泰 楊家武* 張龍一
(東北林業(yè)大學(xué) 機(jī)電工程學(xué)院,黑龍江 哈爾濱150040)
隨著機(jī)器人技術(shù)的發(fā)展及在各領(lǐng)域內(nèi)的廣泛應(yīng)用,國內(nèi)外對于消殺炮機(jī)器人都進(jìn)行了一定的設(shè)計與研究:國外的消殺炮機(jī)器人主要研究對室內(nèi)環(huán)境小面積的異形表面的消殺效果,以新加坡南洋理工大學(xué)開發(fā)的半自動機(jī)器人XDBOT 為例,該系統(tǒng)使用光檢測和測距傳感器和高清攝像頭,使用六軸機(jī)械臂控制頭部噴霧設(shè)備的方向,其噴頭不同于傳統(tǒng)的壓力噴嘴,而是使用帶靜電的噴嘴來確保消毒劑在隱藏表面的后面和上方更廣泛和進(jìn)一步地傳播;國內(nèi)在這方面的研究方法主要側(cè)重于對室外環(huán)境消殺的覆蓋性及實用性,多使用兩軸云臺,配用不同的移動平臺,通過紅外傳感器等進(jìn)行循跡和檢測,通過半自動的方式進(jìn)行遙控,可減輕消殺工作人員的負(fù)擔(dān)。各種不同的消殺炮機(jī)器人投入消殺工作的實際應(yīng)用中,是實現(xiàn)消殺工作便捷化、自動化的有效方案之一,具有一定的研究價值。
在消殺機(jī)器人的設(shè)計中,消殺系統(tǒng)的設(shè)計十分的重要,它直接影響著消殺工作的效率?;赟TM32 單片機(jī)實現(xiàn)對消殺炮機(jī)器人整體消殺系統(tǒng)的控制,易于實現(xiàn),可靠性高。
圖1 消殺炮系統(tǒng)結(jié)構(gòu)圖
智能消殺炮系統(tǒng)采用STM32F103C8T6 芯片作為控制器。其控制方式分為兩種:遙控與自動循跡。
STM32F103C8T6 是一款基于ARM Cortex-M 內(nèi)核STM32系列的32 位的微控制器,程序存儲器容量是64KB,需要電壓2V~3.6V,工作溫度為-40℃~85℃。該芯片工作頻率為72MHz,內(nèi)置高速存儲器,豐富的增強(qiáng)I/O 端口和聯(lián)接到兩條APB 總線的外設(shè),其封裝體積小,價格與同類芯片相比較低,與8 位單片機(jī)相比性能更優(yōu),有著高性能、低成本、低功耗的特點[1]。
以STM32F103C8T6 為核心,設(shè)計出智能消殺炮系統(tǒng)。如圖1 所示,該系統(tǒng)集避障模塊、電機(jī)驅(qū)動模塊、循跡模塊、云臺驅(qū)動模塊等硬件裝置于一體,通過軟件控制實現(xiàn)對于消殺炮的控制。
履帶用RoboMaster M3508 減速直流電機(jī)進(jìn)行底盤的驅(qū)動,云臺的Pitch 軸與Yaw 軸均用RoboMaster GM6020 直流電機(jī)。其電機(jī)具有扭矩大、電機(jī)和驅(qū)動器一體化設(shè)計、結(jié)構(gòu)緊湊、集成度高的特點。
該電機(jī)可通過CAN 總線來獲取轉(zhuǎn)子位置、轉(zhuǎn)子速度、電機(jī)溫度等信息,從而對消殺炮機(jī)器人進(jìn)行控制。用SN65HVD232DR 作為CAN 芯片進(jìn)行使用[2],如圖2 所示。
圖2 VD232 電路
遙控部分采用RoboMaster DR16 接收機(jī)對消殺炮進(jìn)行遙控,控制邏輯電路部分如圖3 所示。
圖3 DBUS 接收電路
消殺控制模塊采用繼電器模塊進(jìn)行控制,通過MCU 進(jìn)行通斷控制。在輸入部分DC+與DC- 分別接電源正負(fù)極,IN 引腳通過高低電平控制繼電器吸合;輸出部分NO、NC 分別為繼電器常開、常閉接口,COM為繼電器公用接口。基于繼電器的基本原理可以實現(xiàn)對消殺炮的噴霧控制。
超聲波模塊采用的是HC-SR04 測距模塊,其測距的范圍在2cm 到4m 之間,消殺炮會在前端設(shè)置5~6 個超聲波測距模塊,當(dāng)有物體或人靠近小于1m 時就會停止進(jìn)行等待并進(jìn)行報警,當(dāng)檢測到物體移走或者人離開后,將繼續(xù)進(jìn)行消殺工作,由STM32 處理器根據(jù)設(shè)定的程序調(diào)整超聲波測量角度,測量小車與障礙物的距離,從而實現(xiàn)避障功能。
圖4 HC-SR04 測距模塊
大致程序流程如下所示:
首先,與TRIG 相連的I/O 輸出一個不少于10us 高電平觸發(fā)測距;其次,模塊自動向某一方向發(fā)射8 個40khz 的方波; 發(fā)射的同時,打開程序中所用的定時器并檢測與ECHO 相連的I/O 口電位,當(dāng)有信號返回時,ECHO 輸出高電平,此時關(guān)閉定時器,讀取定時器的計時時間即為超聲波從發(fā)出信號到在空中傳播,再到接收到返回信號的總時間,該程序中會采取連續(xù)測量5次求平均值的方法來減小測量誤差[3]。
由于消殺炮體積相對于普通小車過大,因此大多數(shù)的使用時間會在遙控上,但也不妨一些特殊情況:當(dāng)消殺炮需要再固定地點多次、來回的進(jìn)行消殺工作時,我們可以采取自動循跡的方式進(jìn)行工作。循跡,就是循線,其是通過一些特定的傳感器來探測地面色調(diào)迥異的兩種色彩從而獲得引導(dǎo)線位置,修正機(jī)器人運(yùn)動路徑的一種技術(shù)。
自動循跡工作分為兩部分:紅外循跡和攝像頭輔助識別。
2.5.1 紅外循跡
紅外循跡是可以實現(xiàn)消殺炮在白底黑線的場地上行駛,通過AD 采樣來獲得紅外對管反饋來的電壓信息,再由MCU 轉(zhuǎn)化為二值信息,然后通過每個管子反饋回來的信息來判斷消殺炮所處的位置并與之調(diào)節(jié)方向進(jìn)行循線,其缺點就是容易受到光線的影響,紅外對管可能會很難進(jìn)行顏色的區(qū)分,這使其受到一定的限制[4]。
2.5.2 攝像頭輔助識別
攝像頭輔助識別是基于紅外循跡的情況下進(jìn)行的,其經(jīng)過攝像頭收集到的圖像進(jìn)行處理,我們用OpenCV 和高像素攝像頭來完成,其功能強(qiáng)大,圖傳穩(wěn)定,會根據(jù)接受到的圖像智能識別來大致確定消殺炮所處的位置與方向,之后進(jìn)行處理與調(diào)整[5]。對于在室內(nèi),紅外循跡是足夠的,如果在室外光線較強(qiáng)的情況下,可以使攝像頭對路面、墻壁、人物、花草等元素進(jìn)行識別,并判斷消殺炮需要如何進(jìn)行處理。這個步驟是漫長的,需要進(jìn)行調(diào)試與學(xué)習(xí)。
遙控器和STM32 之間采用DBUS 協(xié)議進(jìn)行通訊。DBUS 通訊協(xié)議和串口類似,DBUS 的傳輸速率為100k bit/s,數(shù)據(jù)長度為8 位,奇偶校驗位為偶校驗,結(jié)束位1 位。DMA 全稱為Direct Memory Access(直接存儲器訪問),當(dāng)需要將外部設(shè)備發(fā)來的數(shù)據(jù)存儲在存儲器中時,如果不使用DMA 方式則首先需要將外部設(shè)備數(shù)據(jù)先讀入CPU 中,再由CPU 將數(shù)據(jù)存儲到存儲器中,如果數(shù)據(jù)量很大的話,那么將會占用大量的CPU 時間,而通過使用DMA 控制器直接將外部設(shè)備數(shù)據(jù)送入存儲器,不需要占用CPU。
在消殺炮上采用串口加DMA 的通訊方式來實現(xiàn)DBUS 接收機(jī)的信號接收,DMA 是在使用串口進(jìn)行通訊時常用的一個功能,使用該功能能夠完成串口和內(nèi)存之間直接的數(shù)據(jù)傳送,而不需要CPU 進(jìn)行控制,從而節(jié)約CPU 的處理時間。但需要注意的是DBUS 使用的電平標(biāo)準(zhǔn)和串口是相反的,在DBUS 協(xié)議中高電平表示0,低電平表示1,需要在接收電路上添加一個反相器。
圖5 反相器電路
由于設(shè)備上電機(jī)用的比較多,因此采用汽車上的CAN 通訊方式,將多個電機(jī)掛載到同一CAN 總線上,便于控制。CAN 是控制器域網(wǎng)(Controller Area Network, CAN)的簡稱,是由研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國BOACH 公司開發(fā),并最終成為國際標(biāo)準(zhǔn)(ISO11898)。CAN 總線由CAN_H 和CAN_L 兩根線構(gòu)成,各個設(shè)備一起掛載在總線上。消殺炮采用的電機(jī)均支持CAN 通訊方式[6]。
CAN 的ID 分為標(biāo)準(zhǔn)ID 和拓展ID 兩類,標(biāo)準(zhǔn)ID 長度為11位。如果設(shè)備過多,標(biāo)準(zhǔn)ID 不夠用的情況下,可以使用拓展ID,拓展ID 的長度有29 位。每一個掛載在CAN 總線上的CAN 都有一個自己獨(dú)屬的ID,每當(dāng)一個設(shè)備發(fā)送一幀數(shù)據(jù)時,總線其它設(shè)備會檢查這個ID 是否是自己需要接收數(shù)據(jù)的對象,如果是則會接收本幀數(shù)據(jù),如果不是則會忽略。
對于消殺炮的云臺控制,我們通過兩個RM6020 大扭矩電機(jī)來實現(xiàn)控制Pitch 和Yaw兩個空間自由度,從而對設(shè)定的精準(zhǔn)位置進(jìn)行控制,將遙控器的信號輸出給期望角度,在STM32單片機(jī)內(nèi)進(jìn)行PID 閉環(huán)精準(zhǔn)控制來實現(xiàn)對兩個自由度的角度控制,從而進(jìn)行對目標(biāo)的消殺。
對于消殺炮的底盤控制,我們采用兩種方案,一種是麥克納姆輪四輪控制,另一種是履帶控制。
3.4.1 麥克納姆輪四輪控制
麥克納姆輪是一種可以進(jìn)行全方位任意移動的輪子。它由輪轂和圍繞輪轂的輥子組合而成,同時麥克納姆輪的輥子軸線與輪轂軸線成夾角。在輪轂的輪緣上斜向分布著許多小輪子,叫輥子,因此輪子可以橫向滑移。輥子又是一種沒有動力的小滾子,小滾子的母線十分特殊,當(dāng)輪子繞著固定的輪心軸轉(zhuǎn)動得時候,各個小滾子的包絡(luò)線會為圓柱面,所以該輪能夠連續(xù)地向前滾動。由四個這種輪加以組合,便可使設(shè)備實現(xiàn)任意方位移動的功能[7]。
圖6 麥克納姆輪
麥克納姆輪有著互為鏡像關(guān)系的AB 輪, 如果A 輪可以向斜向左前方、右后方運(yùn)動,那么B 輪就會向斜向右前方以及左后方移動。根據(jù)物理知識可知,速度是可以正交分解的,那么A輪可以分解成軸向向左,以及垂直軸向向前的速度分量;或者軸向向右,以及垂直軸向向后的速度分量。這樣下來,B 輪的速度分量和A 輪便會成為鏡像關(guān)系。
當(dāng)四個輪子都向前方轉(zhuǎn)動的時候,AB 輪可以相互抵消掉軸向的速度,這樣就只剩下向前的速度了,底盤就可以前進(jìn)不會跑偏,后退也是同樣的道理。如果當(dāng)A 輪正轉(zhuǎn),而B 輪反轉(zhuǎn)的時候,向前以及向后的速度便會抵消,只會剩下向左的速度,這樣底盤便會向左平移;相反,如果A 輪反轉(zhuǎn),B 輪進(jìn)行正轉(zhuǎn),那么底盤便會向右平移;底盤左側(cè)的車輪正轉(zhuǎn),右側(cè)的車輪反轉(zhuǎn),就可以實現(xiàn)底盤向右的旋轉(zhuǎn)方式,反之,底盤就能夠向左旋轉(zhuǎn)。
3.4.2 履帶控制
履帶控制比起麥克納姆輪四輪控制來說相對更加簡單,其采用的是差速轉(zhuǎn)向機(jī)構(gòu),其轉(zhuǎn)向時保持直線行駛速度不變的點在車輛的幾何中心,在轉(zhuǎn)向時只需要使左右兩側(cè)的驅(qū)動電機(jī)驅(qū)動履帶的速度不一樣即可。
圖7 MID-001 中型履帶機(jī)器人底盤
對于履帶控制來說,其難點在于要使同一側(cè)的電機(jī)保持轉(zhuǎn)速一致而且在消殺炮直行的過程中要保證兩側(cè)電機(jī)驅(qū)動履帶的速度是一樣的。可以通過STM32 單片機(jī)進(jìn)行PID 閉環(huán)精準(zhǔn)控制來解決其難點。
本論文使用STM32 為基礎(chǔ),實現(xiàn)智能消殺炮系統(tǒng)的搭建。通過CAN 通訊方式對消殺炮機(jī)器人的消殺和基本運(yùn)動功能進(jìn)行控制,同時,針對不同的底盤系統(tǒng)提出了不同的運(yùn)動控制方案。通過HC-SR04 測距模塊實現(xiàn)超聲波避障的功能,通過使用紅外和攝像頭輔助識別實現(xiàn)循跡功能,即可對其消殺工作進(jìn)行軌跡的預(yù)規(guī)劃,實現(xiàn)機(jī)器人在不同環(huán)境下的自動運(yùn)行,減輕了消殺人員的工作負(fù)擔(dān),降低了工作強(qiáng)度。本文也有需要改進(jìn)的地方,例如通過更先進(jìn)的5G 技術(shù)等作為通訊手段,結(jié)合物聯(lián)網(wǎng)的實現(xiàn)方式,對機(jī)器人進(jìn)行更加精確的室內(nèi)定位和控制,通過物聯(lián)網(wǎng)的方式實現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)控制是一個更好的發(fā)展方向。