韓竺秦
(韶關(guān)學(xué)院智能工程學(xué)院,廣東 韶關(guān) 512005)
目前,高校圖書館是大學(xué)生最喜歡去的學(xué)習(xí)場所,人流量大且比較集中。圖書館工作人員每天的任務(wù)主要是圖書的借閱、分類、整理、上架等重復(fù)性工作。圖書館機器人在國外出現(xiàn)較早。1991年,美國加利福尼亞州立大學(xué)奧維亞特圖書館的自動存儲與檢索系統(tǒng)ASRS問世,這是ASRS系統(tǒng)第一次在圖書館領(lǐng)域使用[1]。從1991年到2018年,美國有28家圖書館加入了ASRS系統(tǒng),除了美國之外,挪威國家圖書館、哥倫比亞大學(xué)圖書館等圖書館也加入了ASRS系統(tǒng)[2]。
隨著機器人技術(shù)的不斷發(fā)展,AGV機器人也應(yīng)用到了圖書館領(lǐng)域,例如德國洪堡大學(xué)圖書館的AGV搬運機器人和日本大阪市立大學(xué)圖書館的AGV機器人運輸車[3],AGV機器人本身工作效率高、結(jié)構(gòu)簡單,它能在圖書館內(nèi)不斷運送圖書,將書籍運輸?shù)焦潭ㄎ恢谩?/p>
管理機器人采用四輪底盤,兩輪差分式轉(zhuǎn)向驅(qū)動結(jié)構(gòu),相比于其它轉(zhuǎn)向結(jié)構(gòu),兩輪差分式結(jié)構(gòu)更加適用于機器人導(dǎo)航的功能實現(xiàn),能減輕控制器的運算量。機器人采用雙層式的空間結(jié)構(gòu),以最大限度地利用激光雷達、單目攝像頭、超聲波等相關(guān)傳感器,提高其性能。
機器人硬件總體框架如圖1所示,上位機工控機與下位機STM32驅(qū)動使用串口通信的方式,上位機主控與激光雷達使用USB串口連接,觸摸屏、機械臂等通過USB等與下位機實現(xiàn)網(wǎng)絡(luò)通信。

圖1 機器人硬件總體框架
RBpf粒子濾波算法是解決在大型復(fù)雜環(huán)境下的概率估計問題,其公式可以簡要概括為

在式(1)中,p(x1∶t,m|z1∶t,u1∶t-1)為運動軌跡x1∶t和地圖m的聯(lián)合后驗概率,p(m|z1∶t,u1∶t-1)為地圖估計后驗概率,p(x1∶t|z1∶t,u1∶t-1)為軌跡估計后驗概率。根據(jù)機器人的軌跡進行估計,可以得到位姿信息,結(jié)合觀測模型p(zt|xt,m)在每個觀測點觀測得到的數(shù)據(jù)即可構(gòu)建地圖[4]。由于RBpf需要大量粒子來構(gòu)建地圖,而每個粒子攜帶一份地圖,因此會多次執(zhí)行重采樣,導(dǎo)致計算量和內(nèi)存占用比較大。
Gmapping算法將定位過程和建圖過程分離,且先進行定位再進行建圖。該算法在RBpf粒子濾波算法上做了兩個主要的改進,一是改進提議分布,二是選擇性重采樣[5]。
經(jīng)過多次計算,剩下粒子的權(quán)重都比較高。在濾波過程中,粒子逐漸發(fā)生退化現(xiàn)象,需要定義有效粒子的目標函數(shù)如下:

式(2)采用選擇性重采樣減少重復(fù)采樣次數(shù),即設(shè)定一個閾值,將全部粒子數(shù)的一半作為閾值,當Neff低于閾值時,執(zhí)行粒子重采樣。從而降低采樣頻率,緩解粒子退化問題。
基于粒子濾波的Gmapping算法流程圖如圖2所示。

圖2 基于粒子濾波的Gmapping流程圖
A*算法規(guī)劃的全局路徑,缺乏對機器人環(huán)境和機器人本身狀態(tài)的實時判斷,而DWA算法規(guī)劃的局部路徑只是局部的最優(yōu)解,對全局缺乏考量,將A*算法和DWA算法相結(jié)合得出的混合路徑規(guī)劃可以對導(dǎo)航效果進行優(yōu)化。混合路徑規(guī)劃的處理步驟可以歸納為下面五步:
(1)讀取地圖,機器人讀取基于RBPF的Gmapping算法創(chuàng)建的二維柵格地圖。
(2)AMCl算法定位,機器人通過激光雷達數(shù)據(jù),獲取機器人在地圖的定位。
(3)讀取起始點A和目標點B,使用A*算法進行全局路徑規(guī)劃。
(4)以集合的形式記錄全局路徑的拐點。
(5)以一個個拐點為DWA算法的目標點,用DWA算法進行局部路徑規(guī)劃,如果存在拐點周圍有障礙物,則以下一個拐點為目標點。
(6)機器人到達局部目標點后,判斷該點是否為全局目標點,如果是,則機器人到達全局目標點,完成了路徑規(guī)劃,如果不是,則返回步驟⑤繼續(xù)確定新的局部目標點。
混合路徑規(guī)劃流程圖如圖3所示。

圖3 混合路徑規(guī)劃流程圖
語音喚醒通過辨別輸入的音頻中預(yù)先設(shè)定的關(guān)鍵語句,成功識別到詞語后,應(yīng)用通過回調(diào)函數(shù)發(fā)布話題消息,機器人在聽到特定的喚醒詞后與用戶進行語音交互,是機器人語音交互過程的第一步。在訊飛開發(fā)平臺創(chuàng)建屬于自己的語音喚醒應(yīng)用[6],生成應(yīng)用于Linux平臺的專屬SDK后將其移植到機器人控制程序中,添加語音喚醒結(jié)果的發(fā)布節(jié)點,語音喚醒程序流程圖如圖4所示。

圖4 語音喚醒程序流程圖
語音喚醒程序開始首先初始化ROS節(jié)點和話題消息,接著判斷是否成功登錄訊飛語音,登錄成功后開啟語音喚醒功能,發(fā)布控制命令打開麥克風(fēng)進行錄音。當麥克風(fēng)錄到完整的喚醒詞,語音喚醒程序就會發(fā)布喚醒成功的話題信息給語音識別程序,進行下一步操作。喚醒詞在生成SDK前可自由定制,喚醒成功后機器人會做出回應(yīng)并進入傾聽轉(zhuǎn)態(tài)。
語音喚醒、語音識別和語音合成所發(fā)布的話題消息由語音交互系統(tǒng)整合并處理,該系統(tǒng)包含語音交流部分和語音控制部分。語音交流部分用于處理人機對話中的日常交流互動以及書籍的相關(guān)內(nèi)容問答,而語音控制部分則用于處理人機對話當中的命令詞,完成動作上的回應(yīng)。
語音交互系統(tǒng)首先訂閱語音喚醒成功的消息,只有語音喚醒成功才會給語音識別模塊發(fā)送指令觸發(fā)語音識別,同時訂閱語音識別的結(jié)果,并將語音識別的結(jié)果分為三類,一類是書籍相關(guān)知識,一類是命令詞,還有一類是日常交流語句。相應(yīng)把語音系統(tǒng)設(shè)計為三級順序,第一順序?qū)ふ覇栴}關(guān)鍵詞是否為設(shè)定的書籍相關(guān)內(nèi)容,若是則在本地文本庫中檢索答案;若否則進入第二順序?qū)ふ覇栴}關(guān)鍵詞是否為控制命令詞,若是則驅(qū)動機器人進行相應(yīng)動作;若否則進去第三順序,此時意味著問題既不是關(guān)于圖書館也不是控制命令,而是普通的日常交流,因此調(diào)用騰訊云閑聊機器人接口,獲取回答的文本消息發(fā)布后進行語音合成,播放合成后的音頻文件。整個語音系統(tǒng)流程圖如圖5所示。

圖5 語音系統(tǒng)流程圖
Qt對ROS的兼容性和Qt框架能迅速上手和操作的簡易性,都非常方便用戶對上位機進行UI設(shè)計。并且對于ROS與Qt的交互環(huán)境搭建問題。
UI界面上,系統(tǒng)主要實現(xiàn)了三方面的功能。如圖6所示,①登錄界面登錄之后,可使用上位機的控件進行機器人的控制和信息反饋。②協(xié)助讀者找書。用戶在找書欄輸入所要找的書籍名字后,點擊找書,界面將以彈框的形式匯報用戶所找書籍的編碼,若圖書館沒有收錄用戶所找圖書,彈框?qū)@示為“未找到該圖書”。③還書。當用戶點擊我要還書時,機器人將導(dǎo)航到還書區(qū),機器人到位后導(dǎo)航系統(tǒng)會發(fā)布指令給機械臂運動系統(tǒng),機械臂按照事先編寫好的動作組運動,自動夾取圖書;然后用戶輸入所還書籍編碼并點擊還書后,機器人將自動導(dǎo)航到所還書籍存放位置,到達相應(yīng)位置后,機械臂自動釋放圖書,最后機器人自動復(fù)位到還書區(qū)。

圖6 機器人UI設(shè)計界面
二維碼是很流行的一種編碼方式,最常見的形式是二維碼。QR碼將數(shù)據(jù)符號信息按照一定的幾何圖形規(guī)律記錄在二維平面分布的黑白相間的圖形中,這種編碼巧妙地利用計算機內(nèi)部邏輯基礎(chǔ)的“0”“1”比特流的概念,使用若干個與二進制相對應(yīng)的幾何形體來表示各種類型的數(shù)據(jù)信息。Zbar庫是一個開源軟件套件,主要用于從各種來源讀取QR碼或者條形碼信息。
圖書二維碼識別是通過已有的二維碼進行識別的,而二維碼的創(chuàng)建可以通過ROS提供的開源功能包ar_track_alvar[7],通過該功能包可以快速的創(chuàng)建二維碼,并且可以設(shè)置二維碼參數(shù)和掃描二維碼出現(xiàn)的結(jié)果。
Gmapping建圖適用于小場景的室內(nèi)環(huán)境,因此本次實驗地點為實驗室建立地圖。首先,啟動Gmapping節(jié)點,打開相應(yīng)rviz界面,經(jīng)過多次實驗后,得到的室內(nèi)地圖精度非常理想,無明顯畸變。如圖7所示,展示的為其中一次最終生成的地圖,此過程只對主要干道過了一遍,沒有進入一些小通道,但不能看出主通道部分地圖的高精度。

圖7 Gmapping最終生成地圖
當讀者需要查詢書籍時,只要按照UI界面提示,輸入需要查找的書名,機器人會尋找圖書并顯示位置,且進行導(dǎo)航取書。如圖8所示為找書成功的界面。

圖8 找書成功界面
在導(dǎo)航過程中,機器人從起始位置到目標位置后的狀態(tài),紅色箭頭是機器人的最優(yōu)規(guī)劃路徑方向。如圖9所示為導(dǎo)航路徑規(guī)劃圖。

圖9 導(dǎo)航路徑規(guī)劃圖
在導(dǎo)航系統(tǒng)運行過程中,可以使用rqt_graph工具獲取當前某個節(jié)點的計算圖。其中訂閱了里程計、坐標變換tf、地圖、激光雷達、定位、服務(wù)通訊等信息,發(fā)布運動控制信息給底盤,驅(qū)動電機做出運動,從而實現(xiàn)了導(dǎo)航。
為應(yīng)對圖書館智能化趨勢的發(fā)展,本文設(shè)計了一個基于ROS的圖書館還書管理機器人,包括硬件設(shè)計和軟件設(shè)計兩部分。硬件設(shè)計包括機器人機械結(jié)構(gòu)、上位機、下位機和傳感器的設(shè)計。軟件設(shè)計主要是自主導(dǎo)航系統(tǒng)的設(shè)計、機械臂運動系統(tǒng)的設(shè)計、語音交互系統(tǒng)設(shè)計、人機交互系統(tǒng)的設(shè)計、圖書二維碼識別的設(shè)計。目前,人機交互界面實現(xiàn)了機器人的控制、目標點導(dǎo)航控制達到了預(yù)期目的。