莊浩 范志超
摘要:自動跟隨購物系統是一款基于光學視覺跟蹤模塊以及模塊化自動跟隨底盤的購物系統。其可以自動完成對標定購物者的光學捕獲與跟蹤。使購物者可以將購物者的精力全部放在購物上。
關鍵詞:光學AprilTag跟蹤;可擴展底盤;增量PID控制算法
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2018)05-0151-01
1 引言
機器視覺是從光學領域獲取相應信息的機器系統。目前機器視覺的實現多依賴于X86以及ARM cortex-a系列的高端處理器以及相應的高端軟件開發。其整個系統的實現對于體積以及相應的低成本系統的開發與調試均有相當不小的挑戰。自動跟隨購物車的光學跟蹤系統是一種低成本,袖珍的的機器視覺跟蹤系統。在這里,我們采用了國外最新的袖珍光學視覺模塊openmv3。通過Openmv模塊以及其內置的相應機器視覺算法,我們可以捕獲到購物者的空間方位以及相應姿態,并通過UART(異步串口)向自動跟隨底盤發出相應的控制指令,從而達到跟隨購物者的目的。
2 Openmv的相應構建
openmv是一款通過python語言控制的機器視覺系統。Openmv由高性能處理器STM32F765與豪威公司的OV7725構成。由于目前對人體的面部識別算法以及相應的人體特征提取算法均需要對相應數據模型進行大數據訓練。而此要求對于在商場的自動購物場合均顯得特別不合時宜。故我們在這里采用SLAM中應用廣泛的Apriltag二維碼視覺跟蹤系統。
AprilTag是一款具有相應的多個碼型家族,允許用戶自定義生成的一種特殊二維碼系統。Openmv模塊通過識別其所拍攝的圖像數據,可以迅速的判斷出圖像中是否具有相應的Apriltag對象。并且openmv模塊可以使用相應的類方法獲取空間中所有Apriltag對象的空間數據。我們這里通過openmv中內置的Apriltag類方法獲取了openmv所拍攝的每一幀圖像中的Apriltag中的類參數。通過區分不同Apriltag碼的碼家族family,碼id,碼空間距離與姿態situation,碼光流移動flow。我們可以比對出購物車底盤所要跟隨的Apriltag對象。并且通過openmv中的UART類方法,將相應的控制數據發送給相應的控制底盤。
3 控制底盤的構建
控制底盤是一款基于單片機與傳統PID控制算法的控制系統。控制底盤由減速電機、電機驅動、單片機、擴展WiFi模塊以及電源模塊所組成。其中單片機采用瑞薩公司的16位單片機R5F100LG,通信模塊采用的是esp8266模塊,電機驅動采用的是7A 160W的橋式CMOS管驅動模塊,而電機則采用的是正科公司生產的555大扭矩減速電機。
單片機是整個控制底盤的核心,單片機的處理與開發效率直接決定著整個系統的好壞。在這里,我們采用的是瑞薩公司16位的R5F100LG單片機。我們的開發方法采用的是瑞薩公司的CubeSuite+軟件。通過瑞薩公司相應的代碼生成工具,我們直接生成了相應單片機外設的相關驅動的庫函數。通過代碼生成器以及庫函數的相應開發,我們直接通過相應的外部中斷以及UART接收函數得以獲取openmv所發送的控制數據幀。從相應的控制數據幀中,單片機對于其中的特定對象的光流偏移數據進行PID運算,最終獲取了要賦予單片機PWM控制寄存器的相應數據。
4 軟件調試
由于openmv與控制底盤可以劃分成相應的兩個系統。所以面對兩個系統我們需要分別去單獨調試,特別是兩個系統的通信與控制部分。
在openmv與單片機的通信系統調試中,由于openmv輸出的數據類型為整型數據類型,而目前現有的串行通信都是基于八位字節的串行數據傳輸。所以我們需要寫自己的控制協議。在這里我們將原來的基于16位整型數據的傳輸改為了相應的逐位八位字符型數據的傳輸。通過python中的相應str()字符串轉換函數,我們得以先將整型數據轉換為八位數據然后再通過相應的UART發送給相應的單片機。然后在單片機端,再通過相應的C語言判別以及位運算將字符串型數據恢復成相應的數個整型數據。
而在控制底盤的相應PID調試中,我們從通過相應機器視覺數據中提取出相應的距離數據與相應的對象偏移光流數據。然后對其進行相應的加權PID遠算,最終PID函數會返回一個處于0-32000之間的整型自然數。返回出的相應自然數,則是相應要賦給單片機PWM生成器的計數判別值。
5 硬件調試
整個小車的硬件結構是圍繞小車的主要功能去實現的。在硬件調試中,購物小車的硬件主要集中在電動機的控制與驅動上。由于購物小車的購物載重性。所以相應的四個電動機的驅動電流是一筆不小的功率開銷,而由此引發的電動機與驅動H橋的高次諧波干擾更是對單片機以及相應的視覺模塊產生了不小的影響。
在驅動調試中,我們設計了數字電路供電與驅動供電分開的設計。采用電容低通濾波電路與低壓差線性穩壓器相結合的方法去解決相應的數字電路供電受干擾的問題。而在進一步的實際測試中,發現電動機工作時電池電壓波動影響AD采樣的問題。相應的,我們采用在電機端并聯電容濾波,以及相應的設計低通AD采樣電路的方法去解決相應的采樣不精確,易觸發等問題。
6 結語
openmv作為一款微型機器視覺模塊,其效果是明顯的。其與python語言的結合使得在體積與功耗要求較高的機器視覺應用場合,開發者可以得以更好的開發。相應的利用市場上最新推出的機器視覺模塊以及傳統的諸如PID控制算法,在微型機電一體化的設計上,我們便可以完成更多的基于視覺的產品設計,其相應的擴展了機電一體化設計的設計視野。
參考文獻
[1]阮秉濤.電子設計實踐指南[M].高等教育出版社,2013.
[2]黃志偉.全國大學生電子競賽系統設計[M].北京:北京航空航天大學出版社,2013.
[3]童詩白,華成英.模擬電子技術基礎[M].四版.北京:高等教育出版社,2006.
[4]閻石.數字電子技術基礎[M].五版.北京:高等教育出版社,2006.
[5]胡壽松.自動控制原理[M].五版.北京:科學出版社,2007.
[6]Eric Matthes Python編程從入門到實踐[M].北京:人民郵電出版社,2016.
[7]Stephen Prata C Primer Plus中文版[M].五版.北京:人民郵電出版社,2005.
[8]MicroPython與Openmv中文文檔.廣州星瞳科技有限公司.2018.
[9]RL78/G13開發套件快速入門教程.瑞薩電子中國有限公司.2015.