張 碩,劉天悅,張鑫宇,史穎剛,崔永杰
(西北農林科技大學機械與電子工程學院,陜西咸陽 712100)
學科競賽以學生所在學科為背景,給定模擬場景和目標任務,使學生通過自主學習和創新設計完成作品設計。這種以賽促學的方式利于調動學生學習熱情,培養學生創新精神,提高學生綜合素質和動手能力,是提高教學質量、培養優秀創新人才的重要途徑[1]。
在農業工程領域學科競賽中,美國農業與生物工程師協會(ASABE,American Society of Agricultural&Biological Engineers)年會第十三屆國際大學生機器人設計競賽,是國際農業工程學科領域影響力較強、學術水平較高的機器人技術創新大賽之一。2019年ASABE機器人大賽的背景是模擬機器人在植物苗圃內對植物盆栽的精準化庫存管理,競賽場地如圖1所示,場地為長約4.8 m,寬約1.2 m的乳白色木板,四周有高約1.8 m的乳白色木制圍擋,模擬一個植物苗圃。
圖1 競賽場地
場地可供2支隊伍同時比賽,每支隊伍的場地分為出發位置、循跡行走區、盆栽放置區和盆栽存儲區4個部分。每支隊伍的盆栽放置區擺放有10個3D打印而成的模擬盆栽植物,盆栽分為綠色和紅色2種,如圖2所示,顏色隨機擺放。比賽過程中,機器人從規定位置出發,沿黑色循跡線行走,到達盆栽放置區域后,識別盆栽并根據葉片顏色分類,在保證盆栽直立狀態的前提下將其轉移到相應顏色的存儲區域。完成所有盆栽的轉移后,機器人回到出發位置。比賽過程中只能使用長、寬、高均被限制在約3.6 m以內的機器人。
圖2 2種盆栽
根據競賽要求,設計的盆栽轉移競賽機器人整體布局,如圖3所示。車體由鋁合金板材制成,金屬輪轂全向輪。鋁合金材質制成的四自由度機械臂可旋轉固定在車體上,為提高機器人在比賽抓取過程中的穩定性,使執行機構更好的貼合盆栽外壁,設計一個機械爪,3D打印成型后安裝在機械臂上,如圖4所示。
機器人控制系統總體框架如圖5所示,包括主控電路模塊、電機驅動模塊、舵機控制模塊、循跡導航模塊及Open MV視覺識別模塊。選用STM32F103ZET6芯片為控制核心,設計主控電路;選用2個BTS7960集成芯片組成電機驅動電路,選用額定電壓12 V,減速比為1∶90的GM37-545霍爾編碼器直流減速電機控制車輪運轉。在四自由度機械臂的每個手肘關節安裝一個扭矩為20 kg·cm的DS3218數碼數字舵機,設計舵機控制器實現對舵機旋轉角度的控制,根據盆栽大小和位置,設計具體動作組,控制機械臂和末端執行機構。循跡導航模塊集成了光電開關、灰度傳感器SEN1595、慣性模塊JY-901。光電開關檢測盆栽的位置,使機器人制動;灰度傳感器識別黑色循跡線,保證機器人運動路徑;慣性模塊JY-901反饋機器人實時姿態,調整機器人運動軌跡。
圖3 盆栽轉移機器人運動本體布局示
圖4 機械臂及末端執行機構仿真
圖5 控制系統總體框架
機器人的主控板要直接控制舵機驅動板、直流電機驅動板、OpenMV視覺模塊以及循跡導航模塊的多個傳感器,工作中需要占用較多的IO口,選用STM32F103ZET6作為主控芯片,該芯片數字模擬輸入輸出口很多,而且處理速度快,功耗低,滿足設計需求[2-3]。
圖6 STM32主電路
設計STM32F103ZET6最小系統電路,包括STM32主電路、電源電路、USB下載電路、擴展I/O接口電路、指示燈及按鍵電路等5個部分。STM32主電路如圖6所示,包括時鐘電路、復位電路以及BOOT啟動電路。時鐘電路為單片機提供工作信號脈沖,主要由晶振和電容組成。電路中選擇8 MHz的晶體振蕩器作為振蕩源,外接2個10 pF的負載電容,并連接1 MΩ的電阻匹配阻抗,構成并聯諧振電路。
選用AMS1117-3.3降壓芯片設計電源電路,輸入5 V的電源經過處理后輸出3.3 V電源,設置2個輸入電容,防止斷電后出現電壓倒置;設置2個輸出濾波電容,穩定輸出電壓和抑制自激振蕩,電源指示燈電路顯示主控系統的工作狀態。
選用CH340G設計USB串口下載電路,如圖7所示。在X1和XO引腳之間連接12 MHz的晶振,再連接2個負載電阻組成時鐘電路,提供時鐘信號。用5 V電源給CH340G供電,向VCC引腳提供5 V電壓[4]。
圖7 USB下載電路
為方便后期調試,設計指示燈電路和按鍵電路,其中LED1和LED2分別和單片機的GPIO管腳連接,為防止電流過大損壞發光二極管,在電路中串聯2個限流電阻。
選用2個BTS7960集成芯片設計H橋驅動電路,用于GM37-545霍爾編碼器驅動直流減速電機,如圖8所示。其中,R1、R2為阻值1 kΩ的限流電阻,防止電壓過大損害芯片電路。IS引腳輸出電流,具有電流檢測功能,SR引腳用來調節開關速率。電源接口處并聯的104μF電容為電流通道,1 000μF的電容用于降低PWM調速時MOSFET開關速率較快產生的諧波危害。IN引腳用于電機方波調速和決定電機正反轉,輸入高電平,高端場效應晶體管被接通,低端場效應晶體管截止,輸入低電平,前者截止后者導通。
圖8 H橋電機驅動電路原理
基于STM32F103RCT6單片機,設計24路舵機控制器,通過和上位機軟件配合,能在PC端直接編輯機器人動作組,實時在線調試。STM32F103RCT6的最小系統電路和2.1節的最小系統電路一樣,不再贅述。
舵機控制器的電源電路如圖9所示,系統外接7.4 V電池或5 V的USB電源,經AMS1117芯片將其降壓到3.3 V后為STM32F103RCT6供電。由于舵機的信號地和電源地相連,所以舵機電源輸入端的排針3和4,用跳線帽連接。當排針1、2跳線帽接通時,控制系統通過7.4 V充電電池供電。為防止電池對USB接口反向充電,在USB電源的正極接入一個肖特恩二極管SS14。選用STM32內置的USB模塊與上位機通信,設計舵機控制器的USB串口通信電路。
圖9 舵機電源電路
舵機的驅動電路如圖10所示,P4為單片機PWM信號輸出引腳,即舵機控制信號輸入端,輸入信號負極與GNDS共地。P5的VCCS通過電源電路的DC引腳輸入。
圖10 舵機驅動電路
在盆栽轉移競賽機器人控制系統軟件設計中,編寫了機器人底盤基本運動控制算法和視覺模塊顏色識別算法,設計了舵機控制器上位機軟件和舵機動作組,控制系統總體流程如圖11所示。機器人從起始區域出發,沿黑色循線行走,到達盆栽放置區識別盆栽葉片顏色,機械臂執行抓取動作組抓取盆栽,將盆栽轉移到對應顏色的存儲區,然后返回盆栽放置區,繼續完成其余盆栽的轉移。設置機器人識別轉移的動作循環10次后返回起始區域,完成比賽。
車輪轉速取決于電機兩端電壓的大小,通過STM32采樣檢測電機兩端電壓大小和前端并聯的電容電壓大小來控制單片機輸出可調脈沖寬度調制(PWM,Pulse Width Modulation)波的頻率。PWM波在低電平時,MOS管不導通,小車車輪不轉動;PWM波在高電平時,MOS管導通,小車車輪轉動。通過電機驅動器的EN1引腳調節PWM占空比,改變電機的轉速[6-7]。通過電機驅動全向輪正反轉,使機器人前進、后退、向左或向右行進,IN1、IN2引腳輸出信號,可以改變電機轉動方向,當其輸出控制信號多種組合時,電機可出現正反轉的不同狀態[8],電機正反轉的邏輯,如表1所示。
圖11 控制系統總體程序流程
表1 直流電機正反轉真值表
機器人左側安裝L1、L2、L3共3個灰度傳感器,前側安裝F3、F4、F5共3個灰度傳感器。其中,L1、F3檢測白色木地板上貼有的黑色循跡線是否出現,L2、L3和F4、F5分別組合實現循跡行走。灰度傳感器檢測到黑色線后,將低電平信號返回主控芯片。通過定時器中斷設置不同位置傳感器的優先級,確保機器人按照規定路線前進。采用光電開關檢測前方盆栽,當前方有盆栽時,光電開關返回高電平信號到主控芯片,電機停止轉動,主控制器通過串口發送字符串指令,控制OpenMV執行顏色識別程序,控制舵機運動,四自由度機械臂執行相應動作,將盆栽移至存儲區。完成盆栽轉移任務后,機器人返回起始區。
競賽要求機器人能夠通過盆栽葉片的顏色準確區分紅色、綠色盆栽。選用Open MV3 Cam M7攝像頭模組進行圖像數據采集,采集的圖像經攝像頭內的感光元件處理,獲取圖像,進行目標物體識別[5],在其自帶的集成開發環境Open MV IDE中,采用Python語言編寫代碼,并把處理結果經串口發送給STM32 F103ZET6主控芯片。
顏色識別程序流程如圖12所示。串口初始化后,通過thresholds函數設置目標物體的顏色閾值,本設計選用LAB顏色模型,在函數中分別設置L、A、B3個要素的最大值和最小值。在攝像頭獲取的圖像中查找最大色塊并用矩形框標記。最后將最大目標色塊的顏色閾值與設置的紅色、綠色閾值相比較,判斷出圖像中盆栽葉片的顏色。
圖12 顏色識別程序流程
舵機的驅動程序設計主要包括多路PWM輸出實現、USB模擬串口程序、串口通信協議設計等。舵機控制器的上位機軟件,要求能夠輸出24路可控占空比的PWM信號,從而驅動舵機轉到指定角度位置,實現對舵機的在線控制,數據的下載存儲以及從存儲器中依次輸出數據[9]。采用Qt Creator 3.4.2開發上位機軟件,軟件通過PC端USB接口與下位機舵機驅動器通信,上位機按照預先給定的傳輸協議給下位機發送信息。軟件可實現的功能有:控制舵機的轉動角度,保存舵機動作組并實時調用,將動作組下載到下位機中,并控制其運行或暫停。
PC端上位機軟件操作界面如圖13所示,包括連接界面、控制界面、調試界面3個部分。連接界面設計有連接、斷開調試、COM口選擇和波特率選擇4個操作按鈕。
圖13 上位機軟件界面
根據上述設計,搭建競賽機器人,如圖14所示。在1∶1的比賽場地中,測試機器人性能。
經實驗,機器人可沿循跡線行進,平均速度為0.604 m/s,機械臂及末端執行機構可以準確、穩定地實現對盆栽的抓取和放置,視覺模塊對葉片顏色的識別成功率為100%,抓取動作5.13 s/次,放置動作10.96 s/次,每完成一個盆栽轉移的平均時間為90 s,完成率為100%。整體來講機器人能夠穩定運行,完成比賽,轉移盆栽的成功率為96%。經過整理,該系統已經用于西北農林科技大學機械電子工程專業的實踐環節《機電一體化綜合訓練》,如圖15所示。
圖14 機器人實物圖
圖15 盆摘轉移競賽機器人實踐教學
本設計為盆栽轉移競賽機器人控制系統設計,在機器人機械系統的基礎上,基于STM32單片機構建了機器人控制系統。分別對機器人機械底盤、循跡導航模塊、Open MV視覺識別模塊、機械臂和末端執行器的舵機控制、基于STM32的主控電路五大模塊的硬件電路和控制算法進行設計。搭建比賽場地進行的實地測試顯示,機器人整體運動效果良好,能夠按照要求實現對植物盆栽的轉移。每完成一個盆栽轉移的平均時間為90 s,機器人整體系統能夠完成比賽,運行穩定,轉移成功率為96%。