張猛 蔣濤 高琴
摘 要:采用MK60單片機作為智能下棋機器人的主控單元,控制氣泵配合吸盤吸取、放置棋子。利用OpenCV 視覺庫進行圖像處理,完成目標識別。算法上采用HOG特征算法、機器學習SVM算法,經過 PID 閉環運動控制,實現智能下棋機器人在棋盤上移動擺放及“八皇后”規則位置的擺放。
關鍵詞:單片機;圖像識別;PID控制;HOG特征算法;機器學習SVM算法;機器人
中圖分類號:TP274文獻標識碼:A文章編號:2095-1302(2019)03-00-04
0 引 言
隨著21世紀控制技術的發展,智能運動平臺控制技術將是未來的研究重點。隨著機器視覺、全向移動平臺的發展,智能運動平臺的控制與研究也將隨之產生突破性的創新與發展。隨著自動識別的識別率、機械移動精確度的提升,智能運動平臺的智能控制也將取得相應發展,在此基礎上還可搭載其它模塊實現多元化的功能需求,被廣泛應用在智能化物流倉儲、智能家居系統、衛星探測器等[1-3]。
智能機器人可根據棋盤上八顆不同位置的棋子進行重新擺放,擺出符合“八皇后”規則的位置。棋盤和棋子如圖1和圖2所示。在8×8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處于同一行、同一列或同一斜線上。
1 機械結構設計
機械結構整體框圖如圖3所示,整體采用雙層車身,下層用玻纖板作為小車的底盤,下層分別安裝電機、麥克納姆輪、氣泵、驅動板、主控板、陀螺儀模塊、電池。玻纖板四周雕刻固定四個減速電機。安裝麥克納姆輪,可實現全向移動。上下層之間安裝氣泵,減小了氣泵在工作時對車的震動影響導致攝像頭采集圖像不準確。上層采用碳板,在上層分別安裝攝像頭、機械臂。車模側視圖和車模俯視圖如圖4和圖5所示[4-5]。
2 硬件設計
2.1 主控電路設計
電路部分包括:主控芯片、電源電路、液晶顯示接口、升壓降壓模塊和按鍵電路。強電流和弱電流分別分布在電路板上的兩個角落。數字地與模擬地隔離,可抵抗干擾,顯著地提高電路的穩定性,主控電路如圖6所示。
2.2 電機驅動電路設計
電機驅動電路是一個由分立元件制作的直流電動機可逆雙極型橋式驅動器,其功率元件由四支N溝道功率MOSFET 管組成,額定工作電流可達到20 A以上,大大提高了電動機的工作轉矩和轉速。該驅動器主要由以下部分組成: PWM信號輸入接口、邏輯換向電路、死區控制電路、電源電路、上橋臂功率 MOSFET 管柵極驅動電壓泵升電路、功率 MOSFET 管柵極驅動電路、橋式功率驅動電路和緩沖保護電路等[6]。電機驅動電路如圖7所示。
2.3 舵機驅動電路設計
轉向舵機采用32 kg數字舵機,工作電壓不超過6 V。電源經TPS563201 降壓穩壓器輸出6 V作為舵機電源,通過周期為20 ms的PWM波控制舵機角度[7]。舵機驅動電路如圖8所示。
3 軟件設計
軟件設計包括四大部分:視覺處理、路徑規劃、機械臂控制和驅動電機PID閉環控制。樹莓派經過攝像頭采集圖像進行數字識別、坐標轉換、偏差處理,將目的坐標傳給單片機,由單片機計算路徑,控制麥克納姆輪平穩到指定地點,控制機械臂吸取棋子[8]。軟件流程框圖如圖9所示。
3.1 視覺處理
圖像處理平臺采用樹莓派配合USB攝像頭,搭配Linux操作系統及OPENCV開源庫,實現坐標系還原、車身定位、棋盤識別等圖像處理功能,能夠在4×4的場地中找出棋盤目標位置且判斷出機器人姿態,并且能夠識別棋盤數字確定目標。
3.1.1 數字識別
我們運用HOG特征算法加機器學習SVM算法解決數字識別問題。方向梯度直方圖(Histogram of Oriented Gradient,HOG)是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述子。HOG特征通過計算和統計圖像局部區域的梯度方向直方圖來構成特征。SVM(Support Vector Machine)指的是支持向量機,是常見的一種判別方法。在機器學習領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及回歸分析。通過事先采集好的數據集,銅鼓HOG算法提取出數字對應的特征信息,再通過SVM分類器進行分類處理。
數字識別過程:首先采集數據,對場地上的數字進行拍照,每個數字拍攝20張不同角度照片,并進行縮放,縮小后像素為128×128,并進行灰度化、二值化。進行對數字的HOG特征提取,訓練SVM分類器(20張照片為一組進行標號)并生成.xml文件,進行分類器測試。訓練框圖和識別框圖如圖10和圖11所示。
3.1.2 棋子識別
利用Hough 圓檢測,可方便檢測出圖像中的圓。HoughCircles函數的兩個參數 minRadius,maxRadius,最大半徑和最小半徑,通過設置合適的值,便可檢測出圖像中是否包含圓形棋子。
3.1.3 偏差識別
攝像頭捕捉圖像,對圖像進行灰度化、二值化、濾波、去燥。利用OPENCV的findContour函數進行輪廓查找,根據輪廓面積大小排序篩選,去除多余輪廓,利用函數minAreaRect()得到輪廓的中心(x,y),寬高(w,h),通過矩形輪廓中心(x,y)與攝像頭中心(x0,y0)的相對位置計算偏差,偏差結果用于小車PID閉環控制。
3.2 路徑規劃
利用回溯算法求得“八皇后”問題一共有92種不同的解,會生成92×8坐標解。識別到第一個棋子后,小車移動到棋子的位置。識別出數字后得到小車自身坐標與棋子的坐標,從92×8坐標中找到符合棋子位置的第一個坐標,之后可依次確定7個棋子的坐標。將第一個棋子確定位置后。進行逐行視覺尋找棋子并進行這一行棋子的搬移。
3.3 機械臂控制
為使機械臂能夠實現較為平滑的抓取,對機械臂上三個舵機分段延時PWM控制,實現用吸盤平穩吸取棋子。
3.4 閉環控制
位置和方向的閉環控制是實現底盤運動控制的基礎(棋子搬運),由陀螺儀采集轉動偏差,圖像處理采集位置偏差與期望值一起輸入到PID控制器,得到目標位移和方向。并最終作用于麥克納姆輪上,實現精確的位置控制[9-10]。PID控制圖如圖12所示。
4 結 語
智能平臺的自主識別的智能控制并非一個簡單的控制問題,它涵蓋了控制、模式識別、力學、光學、電磁學、傳感技術、電子、電氣、計算機、機械及車輛工程等多個學科。采用微控制器 MK60單片機,結合算法實現了對移動平臺的精確定位與具體功能地執行。搭建好小車的軟硬件平臺后,我們進行了一系列的實驗、調試,證明導航控制策略是穩定、有效的。當前方案存在的問題是在調試過程中,發現了移動平臺結構的設計和攝像頭支架的設計存在著缺陷和不足,限制了移動平臺的速度。圖像信息的處理算法和導航控制算法有改進和提升的空間,可以嘗試換用計算力更強的計算平臺,部署深度學習算法,提高圖像識別的準確性。對于目前智能下棋小車的平臺,延伸出物流倉儲方面的新用途。
參 考 文 獻
[1]卓晴等.學做智能車:挑戰“飛思卡爾”杯[M].北京:北京航空航天大學出版社,2007.
[2]譚浩強.C程序設計[M].北京:清華大學出版社,2001.
[3]張男,毛瓊.PID 模糊控制器的設計及在智能車轉向控制上的應用[J].科技風,2012(5):34-38.
[4]秦剛,杜超,吳丹怡.智能車轉彎控制算法的仿真及分析[J].自動化技術與應用,2012,31(12):49-54.
[5]韓全立.單片機控制技術及應用[M]. 北京:電子工業出版社,2004.
[6]王春玲,董濱.采用數字濾波改進PID控制[J].儀表技術,2002(3):32-33.
[7]朱昌平,李永強,單鳴雷.“飛思卡爾”智能車常見技術問題與解決方案[J].實驗室研究與探索,2012,31(4):45-49.
[8]王宜懷,劉曉升.嵌入式系統[M].北京:北京航空天大學出版社,2008.
[9]王曉明. 電動機的單片機控制[M].北京:北京航空航天大學出版社,2002.
[10]沈長生.常用電子元器件使用一讀通[M].北京:人民郵電出版社,2004.