章揚,周子堯,楊皓斌
(杭州電子科技大學 電子信息學院,浙江杭州,310018)
隨著科學技術的不斷進步,智能控制和神經網絡應用正逐漸滲透到各個領域。傳統行業,如機械和電子制造,也在不斷向前發展,成為當前的研究熱點,并已經逐步實現產品化。此外,物流行業的崛起促使物流機器人的涌現和不斷發展。
目前的物流機器人在高效地完成搬運任務方面表現出色,然而,它們尚未具備物品識別和分類的功能,無法辨別貴重物品和普通物品,需要人工干預進行分類,這限制了其完全釋放人力生產力的潛力。此外,這類機器人缺乏遠程監控和操作功能,不能在應對突發問題時進行遠程操控。鑒于上述兩個問題,我們提出了當前領域的挑戰。
我們的項目具備在已知場地內執行貨物識別和搬運任務的能力,適用于各種物流分揀等場景,極大提升了生產效率,實現了生產力的最大釋放。此外,它還具備在未知或突發情況下進行遠程控制和探索道路的能力,使人能夠應對突發情況,并進行簡單的搬運任務,將潛在風險和損失降至最低。此外,它還可以進行固有功能之外的操作,實現更多的功能。
本系統的整體框圖如圖1 所示。它包括主控板、機械臂、舵機、攝像頭、電機、電機驅動電路、編碼器、電池、電源電路。

圖1 系統框圖

圖2 鋰聚合物電池

圖3 TPS54540 簡化電路圖
本系統的主要工作部件是機械臂、攝像頭和電動機。為了控制這三個部件執行相應的動作,我們采用舵機控制機械臂運動,電機驅動電路、編碼器控制電機轉向和速度,進一步操控車身運動軌跡。此外,主控板負責處理攝像頭傳來的視頻數據,分析得到結果后將行動命令傳遞給電機和機械臂。整個系統的供電由電池和電源電路提供。
硬件是整個系統最基礎的一部分,良好的硬件設計是實現軟件編程設計的基礎,才能保證智能車運行流暢穩定。根據車身結構來合理布局,確定電路板的尺寸以及固定孔位置,車模更加一體化。硬件電路設計的開始,要進行主控芯片的選擇,主控芯片要考慮算力,是否能夠滿足圖像處理的要求,芯片主頻能否滿足傳輸速率的要求等。整個硬件系統主要包括電源供電電路、電機驅動電路、運算放大電路等,將各個電路設計到一起時,需要考慮到供電的穩定性。
主控芯片使用的是NXP公司生產的I.MX RT1064[5],此款芯片基于Cortex-M7 內核,主頻高達600MHz,CPU運算速度快,這意味著在對攝像頭采集的圖像做圖像處理的時候會有很強的運算性能,為大量復雜的運算提供了更大的算力,增加了數據處理的速度,增強了圖像處理能力。同時,此款芯片還有1M 的片內SRAM,可以將一些較為復雜程序中的一些中間變量放入特殊的內存,提高數據處理的速率。
2.2.1 電池的選擇
電池選用鋰聚合物電池,規格型號為11.1V 2600mA。能夠滿足智能車中速運行大概半個多小時,續航時間長。并且該電池的尺寸很符合放置在車模底盤,不會影響車模運行情況及觀感。
電路根據不同外設供電需要,需要從11.1V 鋰聚合物電池設計不同的穩壓電路,用來提供6V 舵機供電、3.3V 單片機供電、5V 編碼器供電,另外電機的供電直接使用電池輸出電壓,無需做穩壓處理。
2.2.2 5V 穩壓電路的設計
5V 穩壓原理圖電路設計如圖4 所示。

圖4 TPS54540設計原理圖
TPS54540 是一款42V,5A 降壓穩壓器,此穩壓器具有一個集成的高側MOSFET。按照ISO 7637 標準,此器件能夠耐受高達45V 的拋負載脈沖。電流模式控制提供了簡單的外部補償和靈活的組件選擇。一個低紋波脈沖跳躍模式將無負載時的電源電流減小至146μA。當啟用引腳被拉至低電平時,關斷電源電流被減少至2μA。這塊芯片不僅體積小,輸出穩定,輸出電流更是可達5A,極高的開關頻率可以很好地為后方各種用電元件提供足夠的功率。經過實測,輸出端帶載1A 情況下紋波只有50mV,精度可達5%。用TPS545450 穩壓至5V后,使用簡單而穩定的AMS1117(LDO)電源穩壓至3.3V 即可。

表1 TPS545450管腳功能表

表2 LM2596S管腳功能表
2.2.3 6V 穩壓電路的設計
LM2596s 開關電壓調節器是降壓型電源管理單片集成電路,能夠輸出3A 的驅動電流。相比于另外一款穩壓芯片——AMS1117,能夠帶動更大的負載。
6V 穩壓原理圖電路設計如圖5 所示。

圖5 穩壓原理圖
2.2.4 3.3V 穩壓電路的設計
3V3 穩壓模塊主要是用AMS1117 在5V 穩壓基礎上再做穩壓,AMS1117 是一種固定輸出調節器,是一種低壓差線性穩壓器,最大可輸出500mA 電流,可以給編碼器,TFT 顯示屏等供電,這種供電的方式使輸出電源受干擾小,可以使傳感器采集的信號更加穩定。原理圖如圖6 所示。

圖6 3V 穩壓原理圖設計
電機驅動芯片選用BTN7971B 驅動芯片,它具有邏輯電平輸入、電流檢測診斷、壓擺率調整、死區時間產生以及過溫、過壓、欠壓、過流和短路保護,便于進行控制和電路設計,且驅動能力滿足智能車智能視覺組的使用要求。BTN7971B與其他BTN7971B 結合使用,可以形成H 橋電機驅動。
電流采集使用BTN 的引腳進行負載電流輸出,IS引腳與負載電流成比例(比例一般為19.5K,具體見芯片數據手冊)的電流源,在該引腳上配置檢流電阻,可以通過AD 接口采集到電壓得到相應的電流值。
對BTN 的使能引腳進行單獨控制,配合電流檢測可以對BTN的使能狀態進行控制,檢測到過流時,切斷BTN 輸出,對電機進行過流保護。
在BTN 的電源和地之間接470nf 的電容,進行濾波,減少電機造成的地抖動。圖7 是BTN7971B 的封裝。

圖7 BTN7971B 封裝圖
關于BTN7971B 的引腳定義如表3 所示。

表3 BTN7971B引腳功能表
芯片手冊建議的一種H 橋設計方法如圖8 所示。

圖8 BTN7971B H 橋推薦電路
參考上面H 橋設計電路,最終設計了該驅動電路原理圖如圖9 所示。

圖9 電機驅動原理圖
使用兩個H 橋來控制兩個電機,一個H 橋由兩路PWM 組成,可以在IS 端接一個ADC 管腳,來檢測電壓,進行過流保護。
圖10 顯示IN 管腳和OUT 管腳的時序問題,當IN由低變高,OUT 會延時一段時間后,再有電壓輸出,當IN 由高變低,OUT 會有一段延時,然后由高變低。

圖10 IN 和OUT 管腳時序圖
主控板除了包括核心板插針以外,還包括4 個編碼器接口,一個陀螺儀接口,3個舵機接口,一個電磁鐵接口,4 路電源接口,兩個OpenArt 通訊接口,裁判系統接口,PWM 輸出接口,以及為了調試時使用的LCD 接口和一個五項開關兩個獨立按鍵。
主控電路原理圖如圖11 所示。

圖11 主板原理圖

圖12 主控板PCB 圖

圖13 主程序流程圖

圖14 子程序流程圖1

圖15 子程序流程圖2

圖16 子程序流程圖3
2.5.1 主控板PCB 設計
主控板的接口和驅動板匹配,普遍使用XH2.54 接口,比較牢靠的同時可提供充足的電流。同時為了縮小主控體積,采用了四層板設計,盡可能提高集成度。
2.5.2 電機驅動PCB 設計
驅動板采取了雙面設計,在上下兩面都安置有電子器件,這樣可以節省空間,節約主控板的面積。由于驅動板過電流比較大,電源供電接口采用XT30,最大過電流為30A,完全滿足要求。
在整個系統上電后,首先對所有傳感器模塊進行初始化(電機、陀螺儀、串口等),結束后將會進入菜單欄目,在這里可以進行功能選項。當按鍵按下,我們可以選擇進入我們的遠程控制模式或是搬運模式,也可以進行參數測試與調整。若按鍵沒有按下則持續顯示。
在功能檢測的子模塊中,我們可以對已有的功能進行測試并實現參數的調試。我們可以測試電機、編碼器以及各種其他傳感器的基本功能,并與實際功能結合起來進行測試。例如,我們可以將陀螺儀與電機驅動結合,測試小車能否快速旋轉到指定角度或者利用攝像頭與串口功能測試下位機路徑規劃結果等。當結果與預期不符,我們可以進行PID參數整定并將參數存儲到SD 卡中,實現斷電參數存取,以及線下調參等功能。
在遠程控制模塊,我們主要利用樹莓派來實現遠程控制的功能。利用樹莓派攝像頭,我們可以輕易做到攝像頭圖像的調取與遠程顯示,另外我們在遠程發送串口指令來實現機器人動作。我們可以通過遠程串口指令來控制機器人前、后、左、右運動或定距離行進一段路程,并能控制機械臂進行左右移動,這樣除了能改變攝像頭視野外還能進行人工控制搬運工作。
在搬運模式下,我們除了可以直接利用機器人內置的攝像頭來實現目標的坐標點位提取,還可以通過樹莓派來構建場外攝像頭,利用OpenCV 來實現位置目標位置情況下,坐標點位的識別與計算。獲得準確的坐標信息后,利用無線模塊將信息傳遞給機器人,機器人開始工作,不斷進行平移、目標識別、機械臂搬運分類這三個流程直至所有目標搬運完畢。然后機器人會將分類后的貨物卸到目標區域內并自動回到車庫。
由于我們使用的是麥輪車,所以想要控制好麥輪的行動還需了解麥輪的特點。
麥克納姆輪(以下簡稱麥輪)[1~2]是由輪轂和圍繞輪轂的輥子組成的,輥子是一種沒有動力的從動小滾輪,麥克納姆輪輥子軸線和輪轂軸線夾角是45 度,并且有互為鏡像關系的A、B 輪兩種,或者會被稱為左旋輪和右旋輪。這一般會在輪轂上面有標識A 和B、L 和R。前面提到麥輪分AB兩種,如果A 輪向前運動時同時向右運動,即斜向右前方運動,那么相反,A 輪向后運動的同時會向左運動,即斜向左后方運動;相應B 輪就可以斜向左前和右后方運動。這樣的話只要安裝正確,我們就可以使車體全向移動。
只需調節x、y、z 三個方向的速度值即可完成全向移動,而為了使車能夠更平滑地啟動與停止,我們還編寫了速度環及位置環等PID 控制代碼。
同時為了獲得當前移動的距離和坐標[3],我們需要利用編碼器來計算小車移動的距離,同時,為了減小誤差,我們固定了車頭方向,由于我們車頭是需要保持超前的,因此我們需要用到陀螺儀來實時校正車身的姿態,以防車頭不正,產生距離上的誤差。
在工業過程控制中[4~5],按被控對象的實時數據采集的信息與給定值比較產生的誤差的比例、積分和微分進行控制的控制系統,簡稱PID(Proportional Integral Derivative)控制系統。PID 控制具有原理簡單,魯棒性強和適用面廣等優點,是一種技術成熟、應用最為廣泛的控制系統。我們對電機的速度控制進行了PID 閉環,每個輪子都有自己單獨的PID,并且在加減速和角度控制上也同樣利用了PID 來進行控制,我們將電機輸出的限幅設置在了40%,在滿足速度要求時防止出現一些意外情況導致加減速過快或車失控。運用PID控制的關鍵是調整KP、KI、KD三個參數,即參數整定。PID參數的整定方法有兩大類:一是理論計算整定法。它主要是依據系統的數學模型,經過理論計算確定控制器參數;二是工程整定方法,它主要依賴工程經驗,直接在控制系統的試驗中進行,且方法簡單、易于掌握,在工程實際中被廣泛采用。
由于我們需要讓小車移動到圖片面前并識別,單純地只靠編碼器獲取的距離值來判斷是否到達是很不精準的,因此在到達圖片附近后,我們需要利用一個攝像頭來幫助我們校正車身的位置,通過攝像頭獲取到圖片的位置信息反饋給主控從而來控制車身向圖片面前移動。
本作品為基于麥克納姆輪的智能搬運機器人,除了智能搬運的要求之外,本作品還實現了遠程網絡連接查看和遠程控制,將自動模式和手動模式相結合,擴寬了用途,探索了麥克納姆輪的新應用。本作品使用可以全向行駛的麥克納姆輪車模作為載體,使用四個電機,行駛速度快。車模裝載有機械臂可以實現搬運,在機械臂上裝載有攝像頭,用以進行識別,實現了移動識別和搬運,是一種極大的提升。機器人上搭載樹莓派[6],通過網絡可以遠程調用攝像頭,進行實時觀察,并且通過串口,可以實現手動控制。
硬件上使用了RT-1064 單片機,自主設計了PCB。機械臂結構采用3D 打印,其中與車模連接件采用自主設計和加裝。使用九軸陀螺儀和攝像頭等多種傳感器,實現了多種傳感器共同作用于一個系統的目標。使用航模電池供電,電源輸出穩定。
軟件編程上,使用自主上位機進行路徑規劃算法,對于搬運進行規劃,減少搬運時耗。搭建深度學習模型,進行學習和識別,實現貨物的自動化識別。對機械臂控制算法進行開發,可以實現輕易地準確拾取。通過樹莓派連接網絡,遠程查看實時圖像。串口連接下位機,進行控制信息的傳輸,實現手動控制。使用場外攝像頭進行搬運物的定位,獲取貨物地址。使用了RT-Thread 嵌入式系統,提高了單片機的使用效率。