林平偉,黃程新,陳英杰,齊 錦
(西北大學(xué) 信息科學(xué)與技術(shù)學(xué)院,陜西 西安 710127)
隨著數(shù)字化技術(shù)的發(fā)展,運用自動化代替人工已經(jīng)成為常態(tài)。在圖書館的日常管理中,最重要的任務(wù)就是對圖書進行人工分揀分類,由于人們借閱頻率的增加以及圖書存量的增多,分揀工作也變得日益繁重。據(jù)統(tǒng)計,截至2014年,僅中國就有公共圖書館3 117個,若放眼全世界,這個數(shù)字將會更加龐大。加之人們對圖書館管理能力的要求越來越高,人力分揀的成本高昂。而樹莓派圖書分揀機器人作為一個成本低、效率高的分揀機器人,可以有效解決這個難題,為各地的圖書館轉(zhuǎn)型起到良好的促進作用[1]。
圖書分揀機器人主要由樹莓派主板、智能小車(包括紅外循跡模塊、超聲波避障模塊、小車框架和四輪驅(qū)動)、機械臂模塊、攝像頭模塊和移動載書臺組成,并通過數(shù)據(jù)庫進行數(shù)據(jù)處理。
小車定時對各圖書架上的圖書通過攝像頭模塊進行識別,通過樹莓派(板載WiFi模塊)在局域網(wǎng)范圍內(nèi)發(fā)送數(shù)據(jù)至計算機,讀入數(shù)據(jù)庫后進行后臺數(shù)據(jù)分析處理以及分類,可得知圖書位置是否正確,若錯誤,則由機械臂抓取圖書。與此同時,樹莓派傳送循跡行駛命令,讓機器人將圖書傳送到相應(yīng)的書架前,由攝像頭識別后,經(jīng)機械臂將圖書進行準(zhǔn)確擺放。若在該過程中遇到障礙物,則根據(jù)超聲波避障模塊和紅外避障模塊的指令進行避障[2]。總體設(shè)計框圖如圖1所示。
圖1 總體設(shè)計框圖
該分揀機器人以樹莓派為核心。樹莓派是由一個四核處理器、一個內(nèi)存芯片、一個網(wǎng)卡、兩個DSI顯示連接器、micro HDMI接口、Type-C供電口、攝像頭接口、音頻接口、USB管理芯片、POE接口和千兆以太網(wǎng)端口組成的微型電腦。樹莓派可擴展端口眾多,故對機器人進行分模塊介紹。
該小車由4個電機驅(qū)動,選用的控制芯片為TB6612FNG。TB6612FNG是一種新型控制芯片,具有高集成度、高驅(qū)動能力等特點,能夠獨立控制2個電機的運動狀態(tài),并且在能耗和控制性能等方面也具有優(yōu)勢[3]。
小車的4個電機分別由兩片TB6612FNG電機驅(qū)動芯片驅(qū)動,芯片1驅(qū)動2個前輪電機,芯片2驅(qū)動2個后輪電機。分析小車的實際運動狀態(tài),我們發(fā)現(xiàn)兩側(cè)的電機運動狀態(tài)相同,所以我們僅需將兩片電機的驅(qū)動芯片并聯(lián)接到樹莓派I/O口處共同進行控制就可以達到預(yù)想的效果。
機械臂采用4個舵機與亞克力板組裝而成。組成結(jié)構(gòu)與挖掘機臂相似,由4個舵機分別控制上臂運動、下臂運動、爪子開合與機械臂整體的左右擺動。4個舵機分別與PWM0、PWM1、PWM2、PWM3口相接,由PCA9685芯片控制。連接PWM0口的舵機控制機械臂的手爪閉合,連接PWM1口的舵機控制機械臂上臂的伸展與收縮,連接PWM2口的舵機控制機械臂下臂的伸展與收縮,連接PWM3口的舵機控制機械臂底座左右180°轉(zhuǎn)向。
我們在當(dāng)前基礎(chǔ)上,通過加裝3種傳感器,成功實現(xiàn)了紅外循跡功能、紅外避障功能和超聲波避障功能。采用的傳感器為TR5000紅外線循跡傳感器、ZY101紅外線避障傳感器和HC-SR04超聲波避障傳感器。
對紅外循跡傳感器的原理進行簡單描述:由一對紅外對管對外界環(huán)境進行檢測,當(dāng)有返回信號時,該模塊的輸出為0,而當(dāng)紅外信號被黑色膠帶吸收無返回信號時,該模塊輸出為1。故我們只需對3個傳感器的輸出信號進行對應(yīng)的情況分類,即可得知小車是否偏離軌跡[4]。
實際設(shè)計時,我們將3個傳感器安裝在底部,并分別連接到樹莓派的3個I/O口上,對應(yīng)為GPIO26(右傳感器)、GPIO19(左傳感器)和GPIO13(中間傳感器)。工作時,傳感器檢測地上的黑色膠帶,樹莓派通過3個傳感器的返回信號控制小車的行進方向。
黑色膠帶會吸收光線,因此存在5種可能的情況,我們做如下設(shè)定:
(1)當(dāng)3個傳感器最中間一個無返回的紅外信號,而左右兩邊的傳感器有紅外信號返回時,小車判定為直行;
(2)當(dāng)左側(cè)和中間的傳感器均無紅外信號返回,而右側(cè)有紅外信號返回時,則判定小車偏向右側(cè),需要控制電機差速轉(zhuǎn)動讓小車向左側(cè)微調(diào);
(3)當(dāng)右側(cè)與中間的傳感器均無紅外信號返回,而左側(cè)有紅外信號返回時,判定小車偏向左側(cè),需要向右側(cè)微調(diào);
(4)當(dāng)3個傳感器均無返回信號時,則判定小車運動到交叉線位置,設(shè)定小車向左90°轉(zhuǎn)彎。
(5)當(dāng)3個傳感器均有返回信號時,即小車不在既定軌跡上,小車停止。
本機采用左右各一個ZY101紅外避障傳感器實現(xiàn)小車的紅外避障功能,避障傳感器對應(yīng)接在樹莓派GPIO12(左側(cè)避障傳感器)和GPIO16(右側(cè)避障傳感器),基本工作原理與TR5000相似,為一對紅外對管對前方障礙物進行檢測,當(dāng)有障礙物時,有紅外信號返回,模塊的輸出信號為0;當(dāng)無障礙物時,與之相反,模塊的輸出信號為1。
由此可知,我們僅需要對GPIO12和GPIO16的輸入信號進行分類,即可得到小車前方的障礙物情況。我們對可能遇到的情況進行分類編程:
(1)當(dāng)左側(cè)傳感器的輸入為0,且右側(cè)傳感器輸入為1時,小車左側(cè)有障礙物,需要向右轉(zhuǎn);
(2)當(dāng)右側(cè)傳感器輸入為0,左側(cè)傳感器輸入為1時,小車右側(cè)有障礙物,需要向左轉(zhuǎn);
(3)當(dāng)兩側(cè)都為1時,前方無障礙物,小車直行;
(4)當(dāng)兩側(cè)都為0時,障礙物就在前方,小車停止運動,隨后后退再沿左側(cè)向后轉(zhuǎn)向。
按照這個邏輯編寫程序,最后實現(xiàn)了小車的紅外避障功能。紅外避障的優(yōu)點是沒有盲區(qū),但缺點也很明顯,即檢測距離較短,所以該機器人在紅外避障的基礎(chǔ)上加裝了一個超聲波避障模塊。
本機選用HC-SR04超聲波模塊實現(xiàn)超聲波避障功能,HC-SR04超聲波模塊內(nèi)集成有單片機和出場自定的程序,大大降低了該模塊的應(yīng)用難度。
將HC-SR04的輸入端接在GPIO20端口,輸出端接在GPIO21端口。當(dāng)需要使用超聲波模塊工作時,向GPIO20端口輸出一個高電平,超聲波模塊開始工作,隨即樹莓派檢測GPIO21端口輸入的信號,當(dāng)輸入低電平時,樹莓派開始計時,直到低電平消失,停止計時。通過時間差可以算出超聲波傳播的距離,距離除以2就能得到小車與障礙物之間的距離,我們設(shè)置該距離小于等于50 cm時,小車停止,由此就可以實現(xiàn)超聲波避障功能。該超聲波模塊的有效工作距離為2 cm~3 m,與紅外線避障模塊配合工作就可以實現(xiàn)避障功能。
攝像頭可以捕獲圖書館的書籍圖像,先通過機器學(xué)習(xí),讓機器人預(yù)先進行圖片記憶,然后再用圖像識別技術(shù),對已學(xué)習(xí)圖片與目標(biāo)書籍進行對比,如果匹配度較高,這本書便可以通過機械臂抓取,送到目標(biāo)位置。
機器學(xué)習(xí)是一類從數(shù)據(jù)中自動分析獲得規(guī)律,并利用規(guī)律對未知數(shù)據(jù)進行預(yù)測的算法。深度學(xué)習(xí)是機器學(xué)習(xí)領(lǐng)域中一個新的研究方向。神經(jīng)網(wǎng)絡(luò)是一種由許多簡單元組成的網(wǎng)絡(luò)結(jié)構(gòu),這種網(wǎng)絡(luò)結(jié)構(gòu)類似生物神經(jīng)網(wǎng)絡(luò),能夠應(yīng)用于語言、文字、圖像等不同的學(xué)習(xí)任務(wù)[2]。
我們通過預(yù)先給機器人識別圖書圖片,讓它進行每個圖片特征值的提取,并記憶其特征后,將每個圖片分類,便于與觀察到的實物進行匹配。
本機實際應(yīng)用中,選擇軟件與硬件結(jié)合的方式,先通過軟件對每一張圖片進行特征值提取,然后將這些特征值結(jié)果導(dǎo)入機器人本體,讓機器人通過查詢預(yù)設(shè)的文件路徑與攝像頭采集的實物信息匹配。
圖像識別技術(shù)是指圖像作用于視覺傳感器,計算機對圖像信息進行識別比對,根據(jù)預(yù)設(shè)的信息得出識別結(jié)果的過程,該過程也被稱為圖像再認(rèn)。在圖像識別過程中,既要有當(dāng)時傳感器所采集的信息,也要有記憶中存儲的信息[3]。只有通過存儲的信息與當(dāng)前的信息進行比較加工,才能實現(xiàn)對圖像的再認(rèn)。
樹莓派支持使用OpenCV計算機視覺庫,使用OpenCV可以進行圖像識別。OpenCV有3個主要的模板,core用于數(shù)據(jù)結(jié)構(gòu)及其基本運算;highgui實現(xiàn)視頻與圖像的讀取,顯示視頻與圖像;imgproc實現(xiàn)圖像處理的基礎(chǔ)方法,包括圖像檢測等。
計算機中的圖像由許多像素點組成,包括灰度像素點與彩色像素點,圖像也是充滿噪聲的,如高斯噪聲和椒鹽噪聲等。高斯噪聲充滿各灰度各顏色,而椒鹽噪聲是圖片隨機出現(xiàn)的白點或者黑點。圖像直方圖是表示數(shù)字像素中亮度分布的直方圖,描繪了圖像中每個亮度值的像素個數(shù)。
使用SIFT算法可以尋找角點特征。在實際識別過程中,在圖像中間選出一個位置,很難判斷該位置在這幅圖片中的具體位置,但如果選取邊緣位置,就比中間部分容易找尋到具體位置,所以選擇識別角點特征,可以更方便找尋具體位置。
SIFT算法在空間尺度中尋找極值點,并提取其位置、尺度、旋轉(zhuǎn)不變量,由于harris角點檢測與shi-Tomasi角點檢測不具有尺寸不變性,所以該機器人圖像識別設(shè)計中并沒有選擇harris角點檢測與shi-Tomasi角點檢測[4]。
SIFT算法的實質(zhì)是在不同的尺寸空間尋找關(guān)鍵點(特征點),并計算出關(guān)鍵點的方向。SIFT查找的關(guān)鍵點是一些十分突出,不會因光照、仿射變換和噪音等因素而變化的點,如角點、邊緣點、暗區(qū)的亮點及亮區(qū)的暗點等。SIFT算法分解為四部分,尺度空間極點檢測、關(guān)鍵點定位、關(guān)鍵點方向確定、關(guān)鍵點描述。尺度空間極點檢測對小的關(guān)鍵點使用小的窗口,對大的關(guān)鍵點使用大的窗口,需要使用尺度空間濾波器[5]。
我們在OpenCV中利用SIFT檢測關(guān)鍵點,并通過攝像頭采集此時的畫面,讓此畫面與之前機器學(xué)習(xí)存儲的圖片信息進行匹配,如果匹配度高,則識別成功,以此實現(xiàn)樹莓派圖書分揀機器人的圖像識別功能。
在進行圖像識別之前,先導(dǎo)入書架上的圖書位置圖讓樹莓派進行機器學(xué)習(xí),之后攝像頭采集視頻文件傳輸?shù)綐漭?,樹莓派對視頻文件進行逐幀截取,將截取的圖片進行圖像識別,得到最后的結(jié)果,即該書原來所處的位置,圖像識別演示如圖2所示。
圖2 圖像識別演示
啟動機器人電源,通過連接樹莓派板載WiFi模塊可以實現(xiàn)在電腦端對機器人進行局域網(wǎng)范圍內(nèi)的數(shù)據(jù)通信與遠程操控。機器人的基本運動與機械臂抓取工作正常,在對循跡與避障功能進行測試時,發(fā)現(xiàn)受環(huán)境限制較大,在不同的環(huán)境下,工作前需要調(diào)節(jié)紅外傳感器模塊的靈敏度,以更好保證工作時的精確度。整體測試結(jié)果符合要求[6-7]。
針對圖書館圖書分揀所需人力多、成本高、工作繁雜等問題,本文設(shè)計了一款樹莓派圖書分揀機器人。該機器人通過樹莓派作為控制核心進行數(shù)據(jù)處理和控制,用多種傳感器采集數(shù)據(jù),由樹莓派編寫程序等方法實現(xiàn)了樹莓派圖書分揀機器人對圖書進行分揀的工作。該機器人可以借助紅外循跡模塊對既定軌跡黑線進行檢測并循跡運動,借助紅外避障模塊和超聲波避障模塊對工作環(huán)境中的障礙物和走動的行人進行避障,借助攝像頭和OpenCV計算機視覺庫實現(xiàn)對圖書位置的識別,借助機械臂模塊對圖書進行精確抓取和放置。此外,該樹莓派圖書分揀機器人具有成本低、對運行環(huán)境要求低、對人工依賴性低等優(yōu)點,推廣難度低,工作效果好,應(yīng)用前景廣闊[8-10]。