基于STM32的智能物流機器人
搬運機器人可代替人工在高溫、高壓、多粉塵等危險環(huán)境中作業(yè),節省大量人力資源,大幅提高工作效率。在未來(lái)智慧工廠(chǎng)建設中,智能物流搬運機器人技術(shù)起著(zhù)舉足輕重的作用[1]。
本文引用地址:http://dyxdggzs.com/article/202304/446017.htm鑒于智能物流搬運機器人將來(lái)在制造業(yè)發(fā)展中勢必占有較重要的地位,本文設計實(shí)現了一種基于STM32的智能物流機器人系統,通過(guò)智能車(chē)為平臺搭載機械臂和攝像頭,運用AprilTag 標定跟蹤與PID 控制[2] 實(shí)現機器人的移動(dòng)與跟蹤抓取。最終實(shí)現自動(dòng)導航以及智能識別并搬運物品的功能。
1 機器人工作原理
1.1 PID控制算法
PID 控制是指比例、積分、微分控制。將系統的測量反饋經(jīng)過(guò)比例、積分、微分3 種運算后,疊加至輸入中,達到控制的目的。其原理簡(jiǎn)單、易于實(shí)現,被應用于多種領(lǐng)域。常用的PID 算法有兩種,一種是位置式PID,另一種是增量式PID,兩者應用場(chǎng)合不同,各有優(yōu)點(diǎn)。位置式PID 算法的表達式為:
其中,Kp為比例放大系數,Ti為積分時(shí)間常數,Td為微分時(shí)間常數。
位置式PID 算法是根據當前實(shí)際測得的輸出與要達到的預期輸出的偏差e(k),進(jìn)行 PID 運算。由于積分項會(huì )對每一次的誤差進(jìn)行累加,使其運算量較大,且每次輸出均與過(guò)去的狀態(tài)相關(guān),可能會(huì )引起大幅度超調。適用于執行機構不帶積分部件的對象,如電液伺服閥。
增量式PID 算法的表達式為:
增量式 PID 公式是由將位置式 PID 的輸出 u(k) ?u(k?1) = Δu(k)得到,而不是對應與實(shí)際位置的偏差,沒(méi)有誤差累積。也就是說(shuō)增量式PID 中不需要累加??刂圃隽喀?em>u(k)的確定僅與最近 3 次的采樣值有關(guān)。所以增量式PID 容易通過(guò)加權處理獲得比較好的控制效果,相較于位置式PID 算法,在系統發(fā)生問(wèn)題時(shí),增量式PID 不會(huì )嚴重影響系統的工作。適用于執行機構帶積分部件的對象,如步進(jìn)電機等。
圖1 PID控制系統圖
1.2 視覺(jué)定位算法
AprilTag 是一種視覺(jué)基準系統,通過(guò)特定的標志快速檢測出相對位置,AprilTag 庫不需要依賴(lài),可以輕松移植到嵌入式裝備中。AprilTag 視覺(jué)定位[3] 實(shí)現主要分為三個(gè)部分:邊緣檢測,四邊形檢測,匹配與解析,其流程如圖2所示。
圖2 視覺(jué)定位算法流程圖
首先對圖像提取邊緣,查找邊緣中邊數大于四的凸 多邊形,在查找到的多邊形中篩選出四邊形。對四邊形中的圖像進(jìn)行編碼,白色為0,黑色為1,1 個(gè)四邊形有4 個(gè)編碼,分辨是當前圖像的編碼和進(jìn)行3 次90°旋轉后的編碼,計算與庫中編碼的最小海明距離。如果海明距離小于閾值,則認為其為AprilTag,可確定其ID,并通過(guò)矩陣變換得到位姿信息。
1.3 機械臂運動(dòng)學(xué)
機械臂運動(dòng)學(xué)[4] 研究的是通過(guò)建立機械臂運動(dòng)學(xué)模型、分析機械臂各關(guān)節的位姿、速度、加速度與機械臂末端在空間中的變換規律。正運動(dòng)學(xué)通過(guò)各個(gè)關(guān)節之間的關(guān)系,求出機器人末端執行器的位姿,以關(guān)節角度作自變量,建立機械臂的正運動(dòng)模型。
為方便的表達兩個(gè)相鄰關(guān)節連桿的參數關(guān)系,需要對所有關(guān)節指定一個(gè)參考系,D-H 參數法是一種常用的對機器人相鄰兩個(gè)連桿之間參數關(guān)系建模的數學(xué)方法,其中的參數有5 個(gè):
各個(gè)關(guān)節坐標系之間的變換矩陣依次相乘,求出從基坐標系到機械臂末端執行器坐標系之間的坐標變換矩陣。
圖3 機械臂簡(jiǎn)化幾何模型
2 機器人硬件設計
2.1 硬件總體設計
本文基于STM32 設計的智能物流機器人系統,選取性能較好的硬件配置作為系統運行的外部環(huán)境支撐,根據搬運機器人機械系統功能和技術(shù)指標,設置硬件總體結構。系統硬件設備包括攝像頭模塊、OLED 顯示器、轉向舵機、直流電機,系統硬件結構圖,如圖4 所示。
圖4 系統硬件結構圖
智能物流機器人系外部設備較多,各設備之間工作電壓不一致。本文采用了LM2596 和AMS1117 兩顆降壓芯片,調整系統運行時(shí)的電壓、攝像頭模塊和機械臂是機器人抓取目標的基礎硬件設備、直流電機和轉向舵機能控制機器人的移動(dòng)和方向,OLED 顯示系統運行時(shí)的各種參數,是調試時(shí)的重要依據。
2.2 移動(dòng)與轉向設計
本文所設計的機器人移動(dòng)采用兩路帶光電編碼器的直流電機,通過(guò)STM32 輸出PWM 波,同時(shí)接收編碼器計數,經(jīng)處理后達到控制調速目的。OLED 模塊顯示設定速讀和實(shí)時(shí)速度,選擇TB6612 模塊作為直流電機驅動(dòng)給電機供電。所有模塊形成一個(gè)完整的速度閉環(huán)控制,能對直流電機穩定快速準確的調速。機器人的轉向在舵機與連桿連接兩個(gè)前輪的方式下,通過(guò)STM32 輸出PWM 波控制舵機的轉動(dòng)從而帶動(dòng)兩個(gè)前輪同步轉動(dòng)以達到轉向的目的。前輪的束腳[5] 為0° ,從而在不影響轉向效果的前提下能夠穩定地直線(xiàn)行駛。
2.3 機械臂設計
本文所建立的機械臂是由6 個(gè)舵機及機械零件組成,其中5個(gè)舵機組成5個(gè)旋轉關(guān)節,另外1個(gè)舵機構成末端執行器機械爪,整體為5自由度,其D-H參數表如表1 所示。
2.4 機器人視覺(jué)設計
本文選用OpenMV 模塊承擔機器人的視覺(jué)功能。OpenMV是集攝像頭、處理器和調試器于一體的智能攝像頭,內含豐富的圖像處理實(shí)用庫,在低算力要求下表現良好。將OpenMV 鑲嵌到機械臂上即可通過(guò)機械臂控制攝像頭的視野以完成機器人的巡線(xiàn)移動(dòng)或機械臂的抓取定位等功能。
2.5 電源及驅動(dòng)設計
機器人電源結構如圖5 所示。
圖5 電源結構圖
本文所設計的機器人在滿(mǎn)足安全穩定的指標下,采用1 個(gè)總電源通過(guò)多級降壓為機器人的各個(gè)模塊進(jìn)行供電??傠娫礊?2 V、6 000 mAH 鋰電池, 電源通過(guò)TB6612 穩壓后給兩路直流電機供電,同時(shí)通過(guò)LM2596S-ADJ 芯片[6] 將12 V 降為7.5 V 給轉向舵機與機械臂的六個(gè)舵機供電。再將7.5 V 輸入至AMS1117-5.0 芯片輸出5 V 至OPENMV H7 模塊。最后將5 V 輸入至AMS1117-3.3 輸出3.3 V 給STM32F103C8T6 主控芯片供電。
3 機器人軟件設計
3.1 系統總體框架
系統運行流程如圖6 所示。機器人開(kāi)機之后等待帶有二維碼的物品出現,檢測到物品后,掃描物品上的二維碼獲取目標貨柜ID 信息,通過(guò)AprilTag 視覺(jué)定位獲取物品位置信息,以此控制機械臂進(jìn)行準確的定位與跟蹤抓取并放入機器人的臨時(shí)貨柜中。之后機器人切換為移動(dòng)狀態(tài),攝像頭識別地面黑線(xiàn),通過(guò)PID 控制機器人轉向與移動(dòng)直到到達目標位置后將臨時(shí)貨柜中的物品放入目標貨柜中。程序采用前后臺控制:基本功能和循環(huán)等待作為前臺程序,中斷函數為后臺程序。主程序中完成芯片外設的初始化、功能處理;中斷函數實(shí)現機械臂控制、電機控制、舵機控制、串口數據處理、狀態(tài)更新。
圖6 軟件設計流程
3.2 視覺(jué)跟蹤
攝像頭有兩種工作模式:抓取和巡線(xiàn)模式。抓取模式提供物品的位置信息,巡線(xiàn)模式提供黑線(xiàn)位置信息,主控芯片管理攝像頭的模式。程序流程圖如圖7 所示。
圖7 OpenMV程序流程圖
首先初始化攝像頭,將模式設為抓取模式,循環(huán)執行獲得圖像、檢測AprilTag、如果存在A(yíng)prilTag 則解析AprilTag位置信息、串口發(fā)送數據等操作,直到接收到模式切換命令。當收到巡線(xiàn)命令時(shí),循環(huán)執行獲得圖像、二值化、解析黑線(xiàn)位置和偏角信息、串口發(fā)送數據等操作。
3.3 移動(dòng)與轉向控制
機器人的移動(dòng)主要通過(guò)直流電機的轉動(dòng),為了能準確控制電機轉動(dòng)速度,本文采用了增量式PID 算法來(lái)控制電機,其控制流程如圖8所示。
圖8 調速流程圖
首先初始化外設,設置PWM 頻率為10 kHz,PID采樣頻率為50 Hz,即每20 ms 進(jìn)行一次定時(shí)器中斷,在定時(shí)器中斷函數中對讀取到的光電編碼器計數值進(jìn)行處理,STM32F103C8T6 的編碼器接口計數方向與編碼器信號的關(guān)系如表2 所示。
當其中一路接口信號跳變時(shí),判斷另一路的相對電平確定計數方向,在設置為4 倍頻模式下實(shí)際運行計數效果如圖9所示。
圖9 4倍頻編碼器模式下的計數器操作實(shí)例
結合本文所用電機的物理參數,減速比i ,光電編碼器線(xiàn)數P ,車(chē)輪半徑r ,采樣頻率f ,可得計數值Count與實(shí)際速度V 的計算公式為:
將由公式6 得到的實(shí)際速度V 帶入增量式PID 算法公式2 中即可得到應輸出的PWM 量以修正實(shí)際測得的誤差。機器人的轉向主要通過(guò)舵機通過(guò)連桿帶動(dòng)前輪實(shí)現轉向,在直線(xiàn)行駛的情況下,黑線(xiàn)在攝像頭中應處于圖像中間且豎直,由此確定轉向的反饋數據為黑線(xiàn)在圖中的偏距ρ 和偏角θ 如圖10 所示。
圖10 攝像頭解析圖像
ρ 為黑線(xiàn)頂部中點(diǎn)與圖像寬度一半的差,θ 為黑線(xiàn)與圖像底部的夾角。將偏距ρ 和偏角θ 分別帶入位置式PID 算法公式,計算出的數值相加即可得到應輸出PWM 波以控制轉向舵機修正攝像頭觀(guān)測到的誤差。
3.4 機械臂控制
機械臂控制流程如圖11 所示。
圖11 機械臂控制流程圖
在接收到目標物品的相對坐標x、y、z后,先通過(guò)正運動(dòng)學(xué)由當前關(guān)節角度計算出當前末端執行器的坐標,然后再加上物品的相對坐標,就可得到目標物品的絕對坐標X、Y、Z。通過(guò)逆運動(dòng)學(xué)將目標絕對坐標位置轉換為目標關(guān)節角度,利用增量式PID 完成對機械臂的控制輸出。
4 實(shí)驗結果及分析
整合各模塊后,現對各模塊進(jìn)行性能測試,包括電機調速性能、AprilTag 姿態(tài)獲取范圍、機械臂跟蹤能力。
4.1 機器人運動(dòng)控制性能
控制系統性能的評價(jià)可以采用動(dòng)態(tài)性能指標分析,即在典型輸入信號作用下,計算系統響應的上升時(shí)間tr ,峰值時(shí)間tp ,調節時(shí)間ts ,超調量σ %。以上指標可以滿(mǎn)足系統動(dòng)態(tài)過(guò)程的特征體現。
在零初始條件下,對系統給定不同的階躍輸入,分別為20、40、60、80 cm/s,測試得到系統的響應如圖12 所示。
通過(guò)圖 12 可知,系統輸出最后趨近于給定值,能夠滿(mǎn)足控制系統最基本的穩定性要求,然后分析其動(dòng)態(tài)指標如表 3。
分析表3 動(dòng)態(tài)指標可知,隨著(zhù)目標速度的增大上升時(shí)間,峰值時(shí)間都略微增大,調節時(shí)間受誤差影響較大,平均調節時(shí)間為560 ms,從總體上看,系統響應快速,在700 ms 內穩定至目標速度,雖然略微有部分超調,但仍在穩定可靠范圍內,不影響整個(gè)系統的安全性。
4.2 AprilTag檢測范圍
實(shí)際中二維碼可能會(huì )從各個(gè)角度各種距離面向攝像頭,為保證識別準確性需要測量出二維碼的有效范圍。經(jīng)過(guò)測試后有效范圍如表4 所示。
其中坐標軸以機械臂末端執行器關(guān)節為原點(diǎn),關(guān)節軸指向為Z 軸,X 軸與Y 軸分別為初始狀態(tài)下的水平與豎直方向。由表4 分析可知,AprilTag 能在攝像頭15.8 cm 的距離內準確識別,左右范圍19.6 cm,上下范圍12.4 cm 內能檢測到AprilTag。同時(shí)ArilTag 與攝像頭在70.8° 的夾角內能夠被識別到??傮w來(lái)講已經(jīng)能夠滿(mǎn)足機器人的視覺(jué)功能要求。
4.3 機械臂控制性能
機械臂為機器人物流功能的主要執行器,由于其控制模型為多輸入多輸出,涉及坐標變換較為復雜,系統響應曲線(xiàn)不能直觀(guān)的表達系統的動(dòng)態(tài)指標,所以本文采用末端執行器距目標位置的距離隨時(shí)間的變化來(lái)反應機械臂的控制性能。如圖13 所示。
圖13 末端執行器與目標距離的變化
在距離末端執行器5 cm 時(shí)機械臂到達目標位置并開(kāi)始抓取,抓取后距離不再變化。機械臂從目標物品出現到完成抓取用時(shí)2.5 s,一開(kāi)始快速接近目標物品,靠近目標后不斷修正位置直到能抓取目標物品??拷繕撕鬀](méi)有過(guò)多的振蕩滿(mǎn)足了快速性的同時(shí)也能保證系統的安全。相較于傳統開(kāi)環(huán)控制,減少了振蕩,提高了系統的穩定性與抗干擾能力,大幅提高了抓取的成功率。
5 結束語(yǔ)
本文設計了基于STM32 的智能物流機器人,采用了PID 算法控制機器人移動(dòng)與機械臂抓取,優(yōu)化了物流機器人的控制性能,提高了系統的穩定性,實(shí)現了精準的識別與抓取物品。但本文設計的機器人未優(yōu)化網(wǎng)絡(luò )應用層協(xié)議,沒(méi)有采用數據庫存儲數據,希望在下一次研究中優(yōu)化機器人的網(wǎng)絡(luò )通訊,以滿(mǎn)足互聯(lián)的要求。
參考文獻:
[1] 董智.5G商業(yè)化應用背景下“互聯(lián)網(wǎng)+物流”的發(fā)展趨勢研究[J].中國商論,2019(22):12-13.
[2] 雷慧杰.基于STM32的直流電機PID調速系統設計[J].現代電子技術(shù),2016,39(8):165-170.
[3] 徐慶坤,竇紅乾,杜志強,李凱,譚威.基于A(yíng)prilTag視覺(jué)定位的移動(dòng)機器人設計[J].工業(yè)控制計算機,2022,35(4):42-43.
[4] 王裕民,秦飛舟.五自由度機械臂的運動(dòng)學(xué)建模和軌跡規劃研究[J].電工技術(shù),2022(8):62-69.
[5] 彭鋒,丁良奇,劉尚鴻,潘筱.車(chē)輪外傾角和前束角匹配研究[J].北京汽車(chē),2021(3):21-23,31.
[6] 鄭琪,劉琳,尚冬梅,CHEN M.基于LM2596的輸出無(wú)級可調直流穩壓電源的設計與實(shí)現[J].電腦知識與技術(shù),2018,14(27):258-260.
[7] 單芝慶.基于STM32的搬運機器人機械系統設計[J].自動(dòng)化應用,2021(6):1-6.
[8] 鄔合林.PID在機械臂位置控制中的應用[J].冶金管理,2020(19):43-44.
[9] 楊曉峰,柳笑辰,王佳奇.基于OPENMV的智能送藥小車(chē)設計[J].電大理工,2022(1):1-7.
(本文來(lái)源于《電子產(chǎn)品世界》雜志2023年4月期)
評論