李奔 LI Ben;章曉敏 ZHANG Xiao-min;劉麗 LIU Li;馬勰 MA Xie
(寧波財經學院數字技術與工程學院,寧波 315175)
人工智能不是人的智能,但能像人那樣思考、也可能超過人的智能。基于人工智能的機器人能代替許多人能做的事情節省了人力增加了勞動效率,本文以購物小車的智能化發展現狀作為基礎分析,進一步結合了人工智能的發展,兩者結合對于智能機器人未來的發展趨勢進行研究和分析[1-3]。
本文實現用于在各種情況下抗外來干擾來進行自動購物的超市購物機器人,該機器人主要使用電機,灰度傳感器,舵機和紅外測距傳感器,識別功能連接電腦進行拍照,通過已經訓練好的圖像識別庫來識別物品。也減少了人們的操作,簡便了人的生活[4-6]。
本系統設計和實現的功能需求主要有:①完成干擾物的識別,主要是樹莓派中使用Python的Tensorflow開源庫進行圖像識別,將訓練好的圖像識別庫放入樹莓派系統中,讓樹莓派調用庫。②完成Arduino控制板與樹莓派之間的通信,通過USB串口進行實時的交互,用來實現數據準確傳輸。③完成準確路徑的功能,通過紅外線和arduino的調試來準確使路徑統一,去抗干擾。④機械臂強度的實現,通過調試機械臂舵機控制模塊來進行功能的強化訓練[7-9]。
Arduino端模塊接受傳感器的反饋值再進行處理,處理后通過調節電機轉速機械臂動作展現出來。
樹莓派端模塊主要功能是處理arduino端傳過來的數據,處理后的數據一部分上傳云端數據庫,一部分返回arduino。
Tensorflow開源庫進行圖像識別,運用神經網絡算法庫來進行圖像訓練,將訓練完的圖像識別放入樹莓派。
主要包括系統總體框和硬件組成兩部分。
本系統按照功能模塊可劃分為:①坐標移動模塊:移動坐標的邏輯處理。②電機驅動模塊:PWM控制電機轉速和順時針或者逆時針旋轉。③物品識別模塊:調用卷積神經網絡來進行圖像識別。④物品抓取模塊:通過舵機控制板來控制抓取動作如圖1所示。

圖1 系統總體框圖
3.2.1 坐標移動模塊原理
機器人是通過紅外傳感器或灰度傳感器發射紅外光線進行循跡,本設計采用TCRT5000紅外反射傳感器,灰度傳感器根據地面黑白反射光線的明暗程度不同導致的傳感器值不同來產生小車的循跡功能。有一個直徑3mm的孔用于固定。
坐標移動是超市機器人重中之重,只有循跡穩定才能進行坐標的移動,本設計應用了TCRT5000紅外反射傳感器面對黑白線0或1反饋值來實現模塊的功能,循跡檢測模塊的主要功能如表1所示。

表1 循跡檢測模塊功能描述
3.2.2 坐標移動設計與實現
TCRT5000紅外反射傳感器傳感器面對黑色時,反饋信號為1,面對白色時反饋信號為0。只要固定好傳感器與地面的高度,傳感器會準確檢測該位置下面是否在白線上,在白線上的傳感器會亮,接受信號為LOW也就是0,根據傳感器返回的值可調節機器人的左右輪子轉速,從而達到小車平穩在區域內按照指定的坐標行走,而不偏離軌道。圖2為循跡功能流程圖。

圖2 循跡功能流程圖
3.3.1 電機驅動模塊原理
電機是傳動和控制系統重要組成部分,主要以速度,精度,力矩的控制。使用直流減速電機作為搬運機器人的驅動電機,以提高搬運機器人的穩定性,減少機器人在運動過程中因為慣性導致重心偏移,電機根據不同的應用會有不同的驅動方式,本設計統一采用ZGA37RG減速直流電機。
電機驅動模塊使用了L298N雙H橋,H橋控制電機順時針逆時針旋轉和速度的調節。
表2為電機驅動模塊功能描述。

表2 電機驅動模塊功能描述
3.3.2 電機驅動設計與實現驅動板采用L298N雙H橋,通過改變其輸出實現電機逆時針和順時針旋轉,也可以通過PWM來調整轉速。H橋使用了8個腳。只要一邊導通電路就可以驅動電機進行轉動,通過輸入的電源正負極方向控制電機的正反轉。
該設計以使用了一個H橋來驅動2個電機,該芯片可以直接驅動兩個電機,每一邊接口接一個電機總共使用兩個H橋來控制四個電機的轉動。
兩個H橋來控制四個電機,其中IN1、IN2、IN3、IN4接Arduino Mega通過控制接口數字信號高低來達到電機順時針和逆時針的旋轉。H橋電機控制信號見表3。

表3 電機控制信號邏輯表
3.4.1 圖像模塊原理
卷積神經網絡是包含卷積或經過相關計算后具有較深結構的神經網絡。它也是深度學習的代表性算法之一。卷積神經網絡是通過模擬生物的視覺和感知而構建的。監督學習和無監督學習均適用。由于隱藏層中卷積核參數的共享以及層間連接的稀疏性,卷積神經網絡可以使用少量計算來形成特征。
3.4.2 卷積神經網絡的設計與實現
將數據集拆分為訓練集和測試集,其中八成的圖像作為訓練集圖像,剩余的二成的圖像作為測試集。訓練前,對所有圖片進行歸一化,并統一尺寸為100×100,并且將數據集進行打亂。訓練時,為了得到最優的結果,會在進行多次卷積操作之后經過3個全連接層。設置學習率為0.0001,批尺寸(batch size)為64,采用CNN卷積神經網絡訓練方法,迭代了16000次,大約8個周期,最終達到收斂。
從新拍攝的圖片中選擇一張圖片,同時的將圖片處理成100×100的格式,取出事先訓練好的模型,并且還原出最后一次的checkpoint,載入這張圖片并獲得一個張量x,將該張量x放入模型進行識別,然后獲得預測矩陣。接下去獲得預測矩陣每一行最大值的索引,該值所對應的類,就是識別的最終結果,可以根據索引通過字典獲得對應圖片的分類。流程如圖3所示。

圖3 驗證結果的流程圖
3.5.1 物品抓取模塊功能設計
對機械臂的控制方法首先是對于舵機角度的調試,在該設計中Arduino因為沒有足夠的工作電壓所以無法直接控制多個舵機,導致的現狀是舵機抽搐無法正常工作,因此需要一塊舵機控制板和外接穩定的6V電源才可以穩定的控制控制舵機,Arduino主控板和舵機控制板之間可以通過串口通訊發送指令,購物機器人所有的抓取和放置動作都是通過MG996R舵機實現[10]。
主要功能如表4所示。

表4 串口通信功能描述
抓取物品動作模塊具體工作步驟如下:①用戶設置抓取動作。②主控制板通過串行通訊將命令發送到舵機控制板。③舵機控制板向舵機發出信號以控制動作。如圖4所示。

圖4 抓取物品動作模塊工作時序圖
3.5.2 抓取物品串口通訊設計與實現
通過Arduino的RXTX串口向舵機控制板發送指令,串口通信是全雙工通訊,可以邊發邊收數據。如表5。

表5 串口通訊基本參數
在本模塊中需要在setup()中進行初始化,設置波特率為9600。
主控模塊硬件包括Arduino Mega和驅動電源12V,單片機和其他元器件通過導線進行連接,圖5為系統硬件連接圖。

圖5 系統硬件連接圖
坐標移動的功能是使用了紅外反射傳感器,該設計使用了20個紅外反射傳感器,每個都需要單片機的5V和接地;電機驅動模塊的實現是使用H橋與電機相連,通過H橋控制電機逆時針和順時針的旋轉,每個都需要單片機的5V和接地;抓取物品模塊的實現是舵機控制板與舵機連接,TX連接RX,RX連接TX。
①購物機器人循跡采用TCRT5000紅外反射傳感器,灰度傳感器根據地面黑線、白線反射光線的敏暗程度不同而產生的灰度值不同來產生小車的循跡功能,方法簡便有效。②在底層運動模塊采用ZGA37RG直流減速電機作為搬運機器人的驅動電機,以提高搬運機器人的穩定性,減少機器人在運動過程中因為慣性導致重心偏移,電機根據不同的應用會有不同的驅動方式。③電機驅動板采用L298N雙H橋芯片,通過改變L298N雙H橋的輸出實現電機正反轉,或調整轉速,調試時程序輸入對應的占空比值,能夠實現對應的轉速。L298N雙H橋該芯片采用15腳封裝。電路內含兩個MOS管,只要使對角線上的電路導通即可驅動電機,兩個方向控制電機的正反轉,采用標準邏輯信號控制。本選題實現用于自動購物的超市購物機器人,該機器人主要使用電機,灰度傳感器,舵機和紅外測距傳感器,識別功能連接電腦進行拍照,通過已經訓練好的圖像識別庫來識別物品。也減少了人們的操作,簡便了人的生活。