李奔 LI Ben;章曉敏 ZHANG Xiao-min;劉麗 LIU Li;馬勰 MA Xie
(寧波財經(jīng)學(xué)院數(shù)字技術(shù)與工程學(xué)院,寧波 315175)
人工智能不是人的智能,但能像人那樣思考、也可能超過人的智能?;谌斯ぶ悄艿臋C器人能代替許多人能做的事情節(jié)省了人力增加了勞動效率,本文以購物小車的智能化發(fā)展現(xiàn)狀作為基礎(chǔ)分析,進一步結(jié)合了人工智能的發(fā)展,兩者結(jié)合對于智能機器人未來的發(fā)展趨勢進行研究和分析[1-3]。
本文實現(xiàn)用于在各種情況下抗外來干擾來進行自動購物的超市購物機器人,該機器人主要使用電機,灰度傳感器,舵機和紅外測距傳感器,識別功能連接電腦進行拍照,通過已經(jīng)訓(xùn)練好的圖像識別庫來識別物品。也減少了人們的操作,簡便了人的生活[4-6]。
本系統(tǒng)設(shè)計和實現(xiàn)的功能需求主要有:①完成干擾物的識別,主要是樹莓派中使用Python的Tensorflow開源庫進行圖像識別,將訓(xùn)練好的圖像識別庫放入樹莓派系統(tǒng)中,讓樹莓派調(diào)用庫。②完成Arduino控制板與樹莓派之間的通信,通過USB串口進行實時的交互,用來實現(xiàn)數(shù)據(jù)準(zhǔn)確傳輸。③完成準(zhǔn)確路徑的功能,通過紅外線和arduino的調(diào)試來準(zhǔn)確使路徑統(tǒng)一,去抗干擾。④機械臂強度的實現(xiàn),通過調(diào)試機械臂舵機控制模塊來進行功能的強化訓(xùn)練[7-9]。
Arduino端模塊接受傳感器的反饋值再進行處理,處理后通過調(diào)節(jié)電機轉(zhuǎn)速機械臂動作展現(xiàn)出來。
樹莓派端模塊主要功能是處理arduino端傳過來的數(shù)據(jù),處理后的數(shù)據(jù)一部分上傳云端數(shù)據(jù)庫,一部分返回arduino。
Tensorflow開源庫進行圖像識別,運用神經(jīng)網(wǎng)絡(luò)算法庫來進行圖像訓(xùn)練,將訓(xùn)練完的圖像識別放入樹莓派。
主要包括系統(tǒng)總體框和硬件組成兩部分。
本系統(tǒng)按照功能模塊可劃分為:①坐標(biāo)移動模塊:移動坐標(biāo)的邏輯處理。②電機驅(qū)動模塊:PWM控制電機轉(zhuǎn)速和順時針或者逆時針旋轉(zhuǎn)。③物品識別模塊:調(diào)用卷積神經(jīng)網(wǎng)絡(luò)來進行圖像識別。④物品抓取模塊:通過舵機控制板來控制抓取動作如圖1所示。
圖1 系統(tǒng)總體框圖
3.2.1 坐標(biāo)移動模塊原理
機器人是通過紅外傳感器或灰度傳感器發(fā)射紅外光線進行循跡,本設(shè)計采用TCRT5000紅外反射傳感器,灰度傳感器根據(jù)地面黑白反射光線的明暗程度不同導(dǎo)致的傳感器值不同來產(chǎn)生小車的循跡功能。有一個直徑3mm的孔用于固定。
坐標(biāo)移動是超市機器人重中之重,只有循跡穩(wěn)定才能進行坐標(biāo)的移動,本設(shè)計應(yīng)用了TCRT5000紅外反射傳感器面對黑白線0或1反饋值來實現(xiàn)模塊的功能,循跡檢測模塊的主要功能如表1所示。
表1 循跡檢測模塊功能描述
3.2.2 坐標(biāo)移動設(shè)計與實現(xiàn)
TCRT5000紅外反射傳感器傳感器面對黑色時,反饋信號為1,面對白色時反饋信號為0。只要固定好傳感器與地面的高度,傳感器會準(zhǔn)確檢測該位置下面是否在白線上,在白線上的傳感器會亮,接受信號為LOW也就是0,根據(jù)傳感器返回的值可調(diào)節(jié)機器人的左右輪子轉(zhuǎn)速,從而達到小車平穩(wěn)在區(qū)域內(nèi)按照指定的坐標(biāo)行走,而不偏離軌道。圖2為循跡功能流程圖。
圖2 循跡功能流程圖
3.3.1 電機驅(qū)動模塊原理
電機是傳動和控制系統(tǒng)重要組成部分,主要以速度,精度,力矩的控制。使用直流減速電機作為搬運機器人的驅(qū)動電機,以提高搬運機器人的穩(wěn)定性,減少機器人在運動過程中因為慣性導(dǎo)致重心偏移,電機根據(jù)不同的應(yīng)用會有不同的驅(qū)動方式,本設(shè)計統(tǒng)一采用ZGA37RG減速直流電機。
電機驅(qū)動模塊使用了L298N雙H橋,H橋控制電機順時針逆時針旋轉(zhuǎn)和速度的調(diào)節(jié)。
表2為電機驅(qū)動模塊功能描述。
表2 電機驅(qū)動模塊功能描述
3.3.2 電機驅(qū)動設(shè)計與實現(xiàn)驅(qū)動板采用L298N雙H橋,通過改變其輸出實現(xiàn)電機逆時針和順時針旋轉(zhuǎn),也可以通過PWM來調(diào)整轉(zhuǎn)速。H橋使用了8個腳。只要一邊導(dǎo)通電路就可以驅(qū)動電機進行轉(zhuǎn)動,通過輸入的電源正負極方向控制電機的正反轉(zhuǎn)。
該設(shè)計以使用了一個H橋來驅(qū)動2個電機,該芯片可以直接驅(qū)動兩個電機,每一邊接口接一個電機總共使用兩個H橋來控制四個電機的轉(zhuǎn)動。
兩個H橋來控制四個電機,其中IN1、IN2、IN3、IN4接Arduino Mega通過控制接口數(shù)字信號高低來達到電機順時針和逆時針的旋轉(zhuǎn)。H橋電機控制信號見表3。
表3 電機控制信號邏輯表
3.4.1 圖像模塊原理
卷積神經(jīng)網(wǎng)絡(luò)是包含卷積或經(jīng)過相關(guān)計算后具有較深結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)。它也是深度學(xué)習(xí)的代表性算法之一。卷積神經(jīng)網(wǎng)絡(luò)是通過模擬生物的視覺和感知而構(gòu)建的。監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)均適用。由于隱藏層中卷積核參數(shù)的共享以及層間連接的稀疏性,卷積神經(jīng)網(wǎng)絡(luò)可以使用少量計算來形成特征。
3.4.2 卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計與實現(xiàn)
將數(shù)據(jù)集拆分為訓(xùn)練集和測試集,其中八成的圖像作為訓(xùn)練集圖像,剩余的二成的圖像作為測試集。訓(xùn)練前,對所有圖片進行歸一化,并統(tǒng)一尺寸為100×100,并且將數(shù)據(jù)集進行打亂。訓(xùn)練時,為了得到最優(yōu)的結(jié)果,會在進行多次卷積操作之后經(jīng)過3個全連接層。設(shè)置學(xué)習(xí)率為0.0001,批尺寸(batch size)為64,采用CNN卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法,迭代了16000次,大約8個周期,最終達到收斂。
從新拍攝的圖片中選擇一張圖片,同時的將圖片處理成100×100的格式,取出事先訓(xùn)練好的模型,并且還原出最后一次的checkpoint,載入這張圖片并獲得一個張量x,將該張量x放入模型進行識別,然后獲得預(yù)測矩陣。接下去獲得預(yù)測矩陣每一行最大值的索引,該值所對應(yīng)的類,就是識別的最終結(jié)果,可以根據(jù)索引通過字典獲得對應(yīng)圖片的分類。流程如圖3所示。
圖3 驗證結(jié)果的流程圖
3.5.1 物品抓取模塊功能設(shè)計
對機械臂的控制方法首先是對于舵機角度的調(diào)試,在該設(shè)計中Arduino因為沒有足夠的工作電壓所以無法直接控制多個舵機,導(dǎo)致的現(xiàn)狀是舵機抽搐無法正常工作,因此需要一塊舵機控制板和外接穩(wěn)定的6V電源才可以穩(wěn)定的控制控制舵機,Arduino主控板和舵機控制板之間可以通過串口通訊發(fā)送指令,購物機器人所有的抓取和放置動作都是通過MG996R舵機實現(xiàn)[10]。
主要功能如表4所示。
表4 串口通信功能描述
抓取物品動作模塊具體工作步驟如下:①用戶設(shè)置抓取動作。②主控制板通過串行通訊將命令發(fā)送到舵機控制板。③舵機控制板向舵機發(fā)出信號以控制動作。如圖4所示。
圖4 抓取物品動作模塊工作時序圖
3.5.2 抓取物品串口通訊設(shè)計與實現(xiàn)
通過Arduino的RXTX串口向舵機控制板發(fā)送指令,串口通信是全雙工通訊,可以邊發(fā)邊收數(shù)據(jù)。如表5。
表5 串口通訊基本參數(shù)
在本模塊中需要在setup()中進行初始化,設(shè)置波特率為9600。
主控模塊硬件包括Arduino Mega和驅(qū)動電源12V,單片機和其他元器件通過導(dǎo)線進行連接,圖5為系統(tǒng)硬件連接圖。
圖5 系統(tǒng)硬件連接圖
坐標(biāo)移動的功能是使用了紅外反射傳感器,該設(shè)計使用了20個紅外反射傳感器,每個都需要單片機的5V和接地;電機驅(qū)動模塊的實現(xiàn)是使用H橋與電機相連,通過H橋控制電機逆時針和順時針的旋轉(zhuǎn),每個都需要單片機的5V和接地;抓取物品模塊的實現(xiàn)是舵機控制板與舵機連接,TX連接RX,RX連接TX。
①購物機器人循跡采用TCRT5000紅外反射傳感器,灰度傳感器根據(jù)地面黑線、白線反射光線的敏暗程度不同而產(chǎn)生的灰度值不同來產(chǎn)生小車的循跡功能,方法簡便有效。②在底層運動模塊采用ZGA37RG直流減速電機作為搬運機器人的驅(qū)動電機,以提高搬運機器人的穩(wěn)定性,減少機器人在運動過程中因為慣性導(dǎo)致重心偏移,電機根據(jù)不同的應(yīng)用會有不同的驅(qū)動方式。③電機驅(qū)動板采用L298N雙H橋芯片,通過改變L298N雙H橋的輸出實現(xiàn)電機正反轉(zhuǎn),或調(diào)整轉(zhuǎn)速,調(diào)試時程序輸入對應(yīng)的占空比值,能夠?qū)崿F(xiàn)對應(yīng)的轉(zhuǎn)速。L298N雙H橋該芯片采用15腳封裝。電路內(nèi)含兩個MOS管,只要使對角線上的電路導(dǎo)通即可驅(qū)動電機,兩個方向控制電機的正反轉(zhuǎn),采用標(biāo)準(zhǔn)邏輯信號控制。本選題實現(xiàn)用于自動購物的超市購物機器人,該機器人主要使用電機,灰度傳感器,舵機和紅外測距傳感器,識別功能連接電腦進行拍照,通過已經(jīng)訓(xùn)練好的圖像識別庫來識別物品。也減少了人們的操作,簡便了人的生活。