李 海,王星馳,田英杰
基于STM32F4的智能分揀機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)
李 海,王星馳,田英杰
(電子科技大學(xué)成都學(xué)院 微電子技術(shù)系,四川 成都 611731)
為實(shí)現(xiàn)對(duì)快遞包裹進(jìn)行智能分揀和精準(zhǔn)定位,設(shè)計(jì)了一款基于STM32F4+STM32F7的智能分揀機(jī)器人。采用OpenMV3攝像頭進(jìn)行物體信息搜索,使用STM32F7單片機(jī)進(jìn)行圖像數(shù)據(jù)信息處理以及信息發(fā)送,采用STM32F4作為機(jī)器人主控芯片,用來(lái)進(jìn)行小車電機(jī)控制、自動(dòng)避障、自動(dòng)規(guī)劃路線、串口數(shù)據(jù)接收和舵機(jī)控制,雙CPU之間采用串口通信,使用四舵機(jī)機(jī)械臂進(jìn)行物體的抓取以及搬運(yùn)。經(jīng)過(guò)多次實(shí)測(cè),該系統(tǒng)可以精準(zhǔn)識(shí)別目標(biāo)物體,然后搬運(yùn)到指定位置,并且速度快、精度高,可進(jìn)行大量包裹智能分揀工作。
智能分揀機(jī)器人;單片機(jī);傳感器;STM32F4;OpenMV3
隨著電子商務(wù)的飛速發(fā)展,快遞業(yè)成為快速成長(zhǎng)的行業(yè)。為降低快遞企業(yè)的人力資源成本、提高快遞包裹的分揀速度、減少人員勞動(dòng)強(qiáng)度,本文設(shè)計(jì)了快遞包裹智能分揀和搬運(yùn)機(jī)器人系統(tǒng)[1]。該系統(tǒng)運(yùn)用單片機(jī)、攝像頭、驅(qū)動(dòng)電機(jī)、四舵機(jī)機(jī)械臂以及自動(dòng)控制識(shí)別等技術(shù),實(shí)現(xiàn)了道路環(huán)境的檢測(cè)、路線的自動(dòng)規(guī)劃、對(duì)目標(biāo)物體的抓取以及自動(dòng)搬運(yùn)等功能。經(jīng)過(guò)多次實(shí)測(cè),該機(jī)器人系統(tǒng)抓取精確度高、搬運(yùn)速度快、抗干擾性強(qiáng)、成本較低,適用于倉(cāng)庫(kù)分揀、物品搬運(yùn)、全自動(dòng)人工智能餐廳等作業(yè)。
目前市面上的搬運(yùn)機(jī)器人大多需要有固定的軌道。配套軌道不但增加了設(shè)備成本,而且在物品意外掉落軌道外時(shí),機(jī)器人難以處理。本文開(kāi)發(fā)的機(jī)器人系統(tǒng)使用攝像頭進(jìn)行物體識(shí)別,不需要固定的行走路線,對(duì)于環(huán)境適應(yīng)性強(qiáng),對(duì)于意外突發(fā)情況的處理能力強(qiáng)[2]。
智能分揀機(jī)器人在軟件和硬件上均采用模塊化設(shè)計(jì),主要由主控模塊、視頻采集模塊、電機(jī)驅(qū)動(dòng)模塊、電源模塊、機(jī)械臂模塊組成。系統(tǒng)總體框圖如圖1所示。
采用STM32F407單片機(jī)作為主控芯片,STM32F765作為輔助控制芯片。由STM32F765控制OpenMV3攝像頭進(jìn)行圖像數(shù)據(jù)采集,并將數(shù)據(jù)通過(guò)串口傳送給STM32F407主控芯片[3],然后由STM32F407規(guī)劃最佳路線、控制電機(jī)實(shí)現(xiàn)前進(jìn)至目標(biāo)物體位置,控制機(jī)械臂抓取目標(biāo)物體,并將其放至指定位置。
圖1 系統(tǒng)總體框架圖
采用OpenMV3攝像頭進(jìn)行視頻數(shù)據(jù)采集,使用python語(yǔ)言對(duì)STM32F765進(jìn)行編程。OpenMV3攝像頭易于使用,并有大量庫(kù)函數(shù)供調(diào)用和修改。視頻數(shù)據(jù)處理原理是:采集的圖像經(jīng)攝像頭內(nèi)的感光組件電路進(jìn)行處理,轉(zhuǎn)化成為數(shù)字信號(hào)供計(jì)算機(jī)識(shí)別[4],然后由軟件進(jìn)行圖像還原。在獲取圖像之后,通過(guò)查找目標(biāo)物體的形狀和顏色進(jìn)行目標(biāo)物體識(shí)別,在找到目標(biāo)物體之后,在圖片上建立坐標(biāo)系,并將目標(biāo)物體坐標(biāo)經(jīng)串口發(fā)送給STM32F407主控芯片。
智能分揀機(jī)器人采用單目攝像頭和紅外對(duì)管組成雙避障系統(tǒng),可以最大限度地發(fā)現(xiàn)和識(shí)別障礙物并進(jìn)行避讓。自動(dòng)避障模塊可以選用參考物,利用參考物的尺寸比例計(jì)算與目標(biāo)物體的距離[5]。紅外對(duì)管測(cè)距原理是通過(guò)改變電位器修改紅外線反射距離,通過(guò)改變單片機(jī)引腳電平來(lái)傳遞障礙物信息[6]。
選用帶編碼器的直流減速電機(jī),通過(guò)調(diào)節(jié)PWM波的占空比來(lái)控制電機(jī)的轉(zhuǎn)速。電機(jī)與STM32F4之間的連接如圖2所示。
圖2 電機(jī)驅(qū)動(dòng)電路圖
使用四舵機(jī)機(jī)械臂,第一個(gè)舵機(jī)控制機(jī)械臂爪的豎直轉(zhuǎn)向,第二個(gè)舵機(jī)控制機(jī)械臂爪的彎曲程度,第三個(gè)舵機(jī)控制機(jī)械臂爪的水平轉(zhuǎn)向,第四個(gè)舵機(jī)控制機(jī)械臂爪的開(kāi)合。
電源模塊為單電源供電模式,采用16.8 V的航模電池供電,通過(guò)2個(gè)LM2596降壓模塊將電壓降至5 V和3.3 V,分別給傳感器和單片機(jī)供電[7]。該供電方式可以保證機(jī)器人有一定的續(xù)航時(shí)間。如果要增加機(jī)器人的工作時(shí)間,可以用更大容量的電池替換航模電池,并且替換快捷、方便。降壓電路如圖3所示。
智能分揀機(jī)器人軟件設(shè)計(jì)主要包含攝像頭圖像采集、目標(biāo)距離識(shí)別、舵機(jī)控制、電機(jī)驅(qū)動(dòng)和自動(dòng)避障等模塊的編程。
攝像頭有兩方面的作用:一是監(jiān)測(cè)物體,測(cè)出物體與小車之間的距離;二是識(shí)別物體的形狀和大小。
圖3 降壓電路
攝像頭測(cè)距原理如圖4所示。
在攝像頭與鏡頭中,m是鏡頭與攝像頭的距離
根據(jù)式(1)和式(2)可以得到:
在真實(shí)環(huán)境中,幾何關(guān)系為:
圖4 攝像頭測(cè)距原理圖
將公式(4)代入式(3),得:
即:實(shí)際距離和攝像頭里的像素成反比,簡(jiǎn)化后,距離等于一個(gè)常數(shù)與直徑的像素的比值。通過(guò)這種算法可以得到機(jī)器人與目標(biāo)物體之間的實(shí)際距離。根據(jù)對(duì)目標(biāo)距離的計(jì)算可以得出測(cè)距的核心Python源碼。
首先,攝像頭獲取要分揀和搬運(yùn)的目標(biāo)物體的圖像,然后對(duì)目標(biāo)物體進(jìn)行LAB顏色識(shí)別,獲取目標(biāo)物體的顏色組合。獲得顏色組合后再由攝像頭獲取目標(biāo)物體的形狀,將獲得的目標(biāo)圖像通過(guò)9×9均值濾波器進(jìn)行去噪[8],然后二值化圖像,得到對(duì)應(yīng)圖像的數(shù)據(jù)進(jìn)行編程計(jì)算。二值化圖像和二值化算法Python源碼如圖5所示。
(a) 目標(biāo)原始圖像(b) 目標(biāo)二值化圖像(c) 二值化算法源碼
其中image.binary(thresholds[,invert=False[,zero= False[,mask=None[,to_bitmap=False[,copy=False]]]]])函數(shù)根據(jù)像素是否在閾值列表thresholds的閾值內(nèi),將圖像中的所有像素設(shè)置為黑色或白色。thresholds 必須是[(lo, hi), (lo, hi), …, (lo, hi)]定義要追蹤的顏色范圍。對(duì)于灰度圖像,每個(gè)元組需要包含最小灰度值和最大灰度值。本文僅考慮落在這些閾值之間的像素區(qū)域。對(duì)于RGB565圖像,每個(gè)元組需要有6個(gè)值(l_lo,l_hi,a_lo,a_hi,b_lo,b_hi),分別是 L、A和B通道的最小值和最大值。為方便使用,此功能將自動(dòng)修復(fù)交換的最小值和最大值。
如果元組大于6個(gè)值,則忽略其余值;相反,如果元組太短,則假定其余閾值處于最大范圍。然后提取目標(biāo)邊框信息,采集棱角數(shù)量、直線數(shù)量以及分布在像素點(diǎn)上的相對(duì)坐標(biāo)。在記錄目標(biāo)圖形特征之后,使用攝像頭重新獲取圖片,與目標(biāo)物體進(jìn)行相同的算法處理,然后記錄所獲得的棱角數(shù)量、直線數(shù)量以及分布在像素點(diǎn)上的相對(duì)坐標(biāo)。如果與之前記錄的數(shù)據(jù)成比例,則識(shí)別成功。
運(yùn)用狀態(tài)機(jī)的編程思路,設(shè)立狀態(tài)標(biāo)志位。小車有尋找目標(biāo)、抓取目標(biāo)和搬運(yùn)3種狀態(tài)。在系統(tǒng)初始化結(jié)束后,默認(rèn)標(biāo)志位為1,定義為尋找目標(biāo)狀態(tài);在找到目標(biāo)之后更改標(biāo)志位為2,定義為抓取目標(biāo)狀態(tài);在抓取目標(biāo)成功后,狀態(tài)標(biāo)志位修改為3,定義為搬運(yùn)目標(biāo)狀態(tài)。
智能分揀機(jī)器人系統(tǒng)工作流程如圖6所示。
圖6 系統(tǒng)流程圖
系統(tǒng)上電后先進(jìn)行初始化,機(jī)器人原地旋轉(zhuǎn)尋找目標(biāo)物體。在發(fā)現(xiàn)目標(biāo)物體后,向目標(biāo)物體行進(jìn),在到達(dá)離物體設(shè)定距離時(shí),使用機(jī)械臂抓取目標(biāo)物體,然后將物體放到指定位置。機(jī)器人在行進(jìn)途中遇到非目標(biāo)物體障礙物時(shí),將重新規(guī)劃路線以繞過(guò)障礙物。
本設(shè)計(jì)通過(guò)調(diào)節(jié)PWM波的占空比來(lái)調(diào)節(jié)電機(jī)轉(zhuǎn)速[9-10],通過(guò)控制兩個(gè)電機(jī)的轉(zhuǎn)速來(lái)控制機(jī)器人左轉(zhuǎn)右轉(zhuǎn)。機(jī)器人行駛控制代碼如下:
(1)先進(jìn)行硬件電路的檢測(cè),確保電路無(wú)虛焊、漏焊;然后進(jìn)行模塊測(cè)試,確保各個(gè)模塊的參數(shù)傳送正確。各個(gè)模塊的功能確保無(wú)誤后,進(jìn)行系統(tǒng)的整體軟硬件聯(lián)調(diào),確保各個(gè)整體系統(tǒng)連接的正確性。
(2)設(shè)定目標(biāo)物體,將符合算法的顏色及形狀的物體進(jìn)行無(wú)規(guī)則位置擺放,并指定最終目標(biāo)區(qū)域;在機(jī)器人行進(jìn)路徑上放置障礙物,檢測(cè)機(jī)器人自動(dòng)避障功能;設(shè)立干擾目標(biāo)物,檢測(cè)機(jī)器人識(shí)別抓取目標(biāo)的準(zhǔn)確性。
經(jīng)過(guò)多次測(cè)試,智能分揀機(jī)器人總體性能良好,OpenMV3攝像頭獲取圖片后可以準(zhǔn)確提取有效信息,精準(zhǔn)識(shí)別目標(biāo)物體并且排除干擾項(xiàng),成功建立平面直角坐標(biāo)系并將目標(biāo)物體坐標(biāo)通過(guò)串口傳送至主控芯片。主控芯片能夠準(zhǔn)確地控制電機(jī),使機(jī)器人行進(jìn)至距離目標(biāo)物體指定的位置,并控制機(jī)械臂進(jìn)行目標(biāo)物抓取,抓取目標(biāo)后通過(guò)識(shí)別標(biāo)志物將物體放置在指定位置。機(jī)器人在行進(jìn)途中遇到障礙物可以重新規(guī)劃路線并成功避開(kāi)障礙物[11-12]。
基于STM32F4的智能分揀機(jī)器人采用OpenMV3攝像頭,可以實(shí)現(xiàn)目標(biāo)追蹤,采用STM32F407和STM32F765雙處理器處理數(shù)據(jù),使數(shù)據(jù)的處理不會(huì)互相干擾。通過(guò)實(shí)驗(yàn)測(cè)試,該智能機(jī)器人可以良好地實(shí)現(xiàn)分揀功能,且運(yùn)行穩(wěn)定性好、抗干擾能力強(qiáng)。
[1] 金琦淳,任俊,袁明新,等.復(fù)雜競(jìng)賽任務(wù)中的自動(dòng)分揀搬運(yùn)機(jī)器人系統(tǒng)設(shè)計(jì)[J]. 輕工機(jī)械,2019, 37(2): 17–23, 28.
[2] 馬文凱,吳耀華,吳穎穎,等. 基于進(jìn)化算法的跨巷道多層穿梭車倉(cāng)儲(chǔ)系統(tǒng)的研究[J]. 機(jī)械工程學(xué)報(bào),2019, 55(8): 216–224.
[3] 賈英輝,耿濤,徐光憲,等. 基于STM32的多氣體傳感器檢測(cè)光傳輸創(chuàng)新實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J]. 實(shí)驗(yàn)技術(shù)與管理,2018, 35(7): 31–33.
[4] 宮浩,張秀再,胡敬鋒. 一種基于深度學(xué)習(xí)的遙感圖像分類及農(nóng)田識(shí)別方法[J]. 現(xiàn)代電子技術(shù),2019(8): 179–182, 186.
[5] 韓團(tuán)軍. 基于STM32RCT6的無(wú)線地面智能排障小車的設(shè)計(jì)[J]. 實(shí)驗(yàn)技術(shù)與管理,2018, 35(6): 151–155.
[6] 杜青,喬延華,韓淼,等. 基于金屬檢測(cè)的智能循跡小車設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù),2018, 41(17): 119–122.
[7] 艾皖東,盧浩,陳振斌,等. 基于導(dǎo)航系統(tǒng)的自動(dòng)尋跡智能小車研究[J]. 汽車技術(shù),2018(5): 1–5.
[8] 顏珂斐,杜娥. 物聯(lián)網(wǎng)智能家居的遠(yuǎn)程視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 實(shí)驗(yàn)技術(shù)與管理,2018, 35(3): 151–153.
[9] 楊建民,趙玫,楊洪勇,等. 電磁導(dǎo)航智能尋跡小車方向控制算法的分析與應(yīng)用[J]. 科學(xué)技術(shù)與工程,2016, 16(33): 71–78.
[10] 劉龍,李建奇,魏光宇,等. 基于圖像識(shí)別的自主尋跡智能小車設(shè)計(jì)[J]. 湖南文理學(xué)院學(xué)報(bào)(自然科學(xué)版),2016, 28(3): 62–66, 70.
[11] 陳小中,冒志建. 高校智能視頻監(jiān)控實(shí)訓(xùn)平臺(tái)設(shè)計(jì)探究[J]. 實(shí)驗(yàn)室研究與探索,2019, 38(1): 128–132.
[12] 湯知日,常勝. 機(jī)器學(xué)習(xí)FPGA硬件實(shí)驗(yàn)設(shè)計(jì)[J]. 實(shí)驗(yàn)技術(shù)與管理,2018, 35(12): 152–155.
Design and realization of intelligent sorting robot based on STM32F4
LI Hai, WANG Xingchi, TIAN Yingjie
(Department of Microelectronics Technology, Chengdu University of Electronic Science and Technology, Chengdu 611731, China)
In order to realize the intelligent sorting and precise positioning of parcels,an intelligent sorting robot based on STM32F4+STM32F7 is designed. The OpenMV3 camera is used for object information search, and the STM32F7 SCM is adopted for image data processing and information transmission, STM32F4 is used as the main control chip of the robot, which is used for car motor control, automatic obstacle avoidance, automatic route planning, serial data reception, steering gear control, and serial communication between two CPUs. Four steering gear manipulators are applied to grasp and carry objects. After many tests, the system can accurately identify the target object and then move it to the designated location. It has high speed and precision and can carry out a large amount of intelligent parcel sorting work.
intelligent sorting robot; SCM; sensor; STM32F4; OpenMV3
TN02-34
A
1002-4956(2019)10-0155-04
10.16791/j.cnki.sjg.2019.10.037
2019-04-16
四川省教育廳2018年科研項(xiàng)目(18ZB0245)
李海(1986—),男,四川通江,碩士,講師,主要從事人工智能和智能控制的研究工作。
實(shí)驗(yàn)技術(shù)與管理2019年10期