本發(fā)明具體涉及一種基于自主機(jī)器人的亂架圖書識(shí)別、查找方法,利用條碼技術(shù)及機(jī)器人定位導(dǎo)航技術(shù)解決館藏圖書錯(cuò)架、亂架問(wèn)題,屬于圖書館自動(dòng)化技術(shù)領(lǐng)域。
背景技術(shù):
現(xiàn)代圖書館絕大多數(shù)采用開架借閱的方式,開架借閱的方式是指讀者可以到書庫(kù)的書架上直接挑選圖書。圖書的錯(cuò)架問(wèn)題是每個(gè)開架借閱圖書館長(zhǎng)期存在且亟需解決的問(wèn)題。現(xiàn)有的解決辦法主要分為兩類,一類屬于管理領(lǐng)域,即從規(guī)范讀者行為、增強(qiáng)人員管理等方面入手,實(shí)施培訓(xùn)新讀者分類排架知識(shí),倡導(dǎo)規(guī)范使用代書板,吸納志愿者參與日常管理,提供借閱指導(dǎo)服務(wù)等多項(xiàng)措施,投入的大量的人力物力后效果卻不盡人意。另一類即屬于技術(shù)領(lǐng)域,現(xiàn)今研究成果多集中在使用rfid射頻技術(shù),借助圖書標(biāo)簽、書架標(biāo)簽、讀寫器等實(shí)現(xiàn)圖書定位管理,但rfid的應(yīng)用還存在著諸如技術(shù)標(biāo)準(zhǔn)、使用成本及系統(tǒng)集成等多方面的制約因素,難以大規(guī)模普及。同時(shí)另有采用一種色彩標(biāo)簽的方法也由于成本及操作問(wèn)題使用較少。
為了解決上述圖書館內(nèi)圖書歸位的難題,利用現(xiàn)有圖書館的硬件設(shè)備和軟件系統(tǒng),降低圖書館人工管理成本,提高圖書館服務(wù)質(zhì)量,這里提出一種應(yīng)用于圖書館機(jī)器人的圖書定位與查找方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有的圖書館圖書管理模式,利用條碼技術(shù)及機(jī)器人定位導(dǎo)航技術(shù),實(shí)現(xiàn)對(duì)錯(cuò)架圖書的定位與查找,幫助讀者找到錯(cuò)架圖書,協(xié)助圖書管理員快速整理書架,解決館藏圖書錯(cuò)架的問(wèn)題。
為達(dá)成上述目的,本發(fā)明提出一種基于自主機(jī)器人、結(jié)合掃碼技術(shù)與機(jī)器人定位導(dǎo)航技術(shù)的亂架圖書識(shí)別、查找方法及管理系統(tǒng),機(jī)器人包括一個(gè)主體及安裝在主體上的構(gòu)件,包括:深度相機(jī)101、掃描槍102、電動(dòng)推桿103、激光傳感器104、機(jī)器人本體105。將激光傳感器104搭載在機(jī)器人本體105的正前方;深度相機(jī)101通過(guò)支架固定在機(jī)器人本體的上方80cm處以保證視野開闊;電動(dòng)推桿103緊靠機(jī)器人邊緣并與固定在支架與機(jī)器人本體上;掃描槍102與電動(dòng)推桿103的頂端連接,掃描槍鏡頭向外安置,且方向與機(jī)器人向前運(yùn)動(dòng)方向垂直。應(yīng)當(dāng)理解,上述構(gòu)件的安裝位置和其組合僅僅是示例性的,在一些需要或者必要的例子中,這些構(gòu)件的構(gòu)造方式、組合和其安裝位置可以是任意方式的。其具體實(shí)現(xiàn)包括如下步驟:
s1、將圖書原有的條形碼固定在書脊處;按照書架位置以及書架層數(shù)編制不同的二維碼,書架編號(hào)順序要和后續(xù)機(jī)器人上的掃描槍的掃碼的先后順序一致。在書架指定位置張貼二維碼便于掃描定位;按照傳統(tǒng)索書號(hào)將所有館藏圖書擺放到書架上。
該步驟針對(duì)現(xiàn)有圖書館的圖書管理模式,復(fù)制圖書原有的條形碼,粘貼該條形碼至?xí)沟锥艘粋?cè),為所有書架編號(hào),按照書架標(biāo)志-分館號(hào)-書架號(hào)-層號(hào)-起始標(biāo)志的方式編碼,條碼的編號(hào)順序要和后續(xù)機(jī)器人上的掃描槍的掃碼先后順序一致。制作相應(yīng)的書架條形碼,將書架條形碼張貼在與圖書條形碼統(tǒng)一水平高度的書架邊緣。
s2、管理終端控制移動(dòng)機(jī)器人掃描圖書館建立場(chǎng)館的二維導(dǎo)航地圖。
該步驟中采用能夠?qū)崿F(xiàn)即使定位與地圖創(chuàng)建功能的任意移動(dòng)機(jī)器人作為本體,管理終端發(fā)送指令到機(jī)器人,啟動(dòng)地圖創(chuàng)建模式,通過(guò)外置激光或者視覺傳感器獲得地圖構(gòu)建數(shù)據(jù),控制機(jī)器人在館內(nèi)需要建圖的區(qū)域內(nèi)移動(dòng),采集完數(shù)據(jù)即可完成導(dǎo)航地圖的創(chuàng)建。
s3、圖書位置信息的自動(dòng)采集,規(guī)劃運(yùn)動(dòng)路徑,控制機(jī)器人到達(dá)書架條形碼附近,啟動(dòng)機(jī)器人全局掃描模式,利用掃描槍獲取書架及條形碼信息,結(jié)合當(dāng)前機(jī)器人的位置及書架層高生成圖書的位置信息。
該步驟中在管理終端為機(jī)器人在地圖上規(guī)劃能夠覆蓋所有書架的移動(dòng)路徑,啟動(dòng)機(jī)器人全局掃描模式,控制機(jī)器人到達(dá)書架條形碼位置,利用掃描槍獲取書架和圖書的條形碼信息,結(jié)合當(dāng)前機(jī)器人的位置以及書架層高,生成圖書的位置信息,位置信息記為(x,y,h),其中x、y由步驟s2中的二維導(dǎo)航地圖決定,h由掃描到的書架二維碼決定。
s4、用戶查找指定圖書時(shí),根據(jù)條碼號(hào)獲取位置信息,將圖書坐標(biāo)發(fā)送至移動(dòng)機(jī)器人本體,自主導(dǎo)航到圖書的位置。
該步驟在用戶終端輸入需要查找的圖書信息,用戶終端查詢到圖書的原始位置信息,將圖書坐標(biāo)(x,y,h)發(fā)送至移動(dòng)機(jī)器人本體,機(jī)器人以自主規(guī)劃路徑,到達(dá)圖書所在書架的邊緣位置,掃描邊緣書架的含有層高信息的書架二維碼,控制推桿運(yùn)動(dòng)直到掃描槍尋找到h即可到達(dá)指定層高,移動(dòng)機(jī)器人根據(jù)坐標(biāo)(x,y)自主移動(dòng)至圖書所在位置,完成圖書查找。
s5、管理錯(cuò)位圖書時(shí),管理終端控制機(jī)器人掃描書架及圖書的條形碼,獲書架信息及該書架上的所有圖書信息,比對(duì)數(shù)據(jù)庫(kù)中的原始位置信息,將錯(cuò)架圖書的基本信息顯示在管理終端,圖書管理員借此完成錯(cuò)架圖書的歸位。
該步驟在批量查找錯(cuò)位圖書位置時(shí),圖書管理員在管理終端啟動(dòng)機(jī)器人全局掃描模式,機(jī)器人本體按照規(guī)劃的路徑運(yùn)動(dòng)并掃描每一層書架及圖書的條形碼,獲得書架編碼及該書架上的所有圖書信息,比對(duì)數(shù)據(jù)庫(kù)中的原始位置信息,確認(rèn)掃描的圖書編碼是否歸屬本層書架,如果不歸屬本書架就判斷該圖書屬于錯(cuò)架圖書,掃描結(jié)束后將錯(cuò)架圖書的基本信息顯示在管理終端,圖書管理員借此完成錯(cuò)架圖書的查找與歸位。
s6、增加新書時(shí),在新書書脊上張貼條形碼,根據(jù)索書號(hào)把圖書放在指定書架,啟動(dòng)機(jī)器人全局掃描模式,獲得新書圖書位置信息,更新原始位置信息。
該步驟在增加新書時(shí),先按照步驟s1所述的方法在新書書脊上張貼條形碼,根據(jù)索書號(hào)把圖書放在指定書架,再按照步驟s3在管理終端控制機(jī)器人運(yùn)動(dòng)到指定書架位置,啟動(dòng)機(jī)器人全局掃描模式,獲得新書圖書位置信息,更新原始位置信息。
應(yīng)當(dāng)理解,前述構(gòu)思以及在下面更加詳細(xì)地描述的額外構(gòu)思的所有組合只要在這樣的構(gòu)思不相互矛盾的情況下都可以被視為本公開的發(fā)明主題的一部分。另外,所要求保護(hù)的主題的所有組合都被視為本公開的發(fā)明主題的一部分。
結(jié)合附圖從下面的描述中可以更加全面地理解本發(fā)明教導(dǎo)的前述和其他方面、實(shí)施例和特征。本發(fā)明的其他附加方面例如示例性實(shí)施方式的特征和/或有益效果將在下面的描述中顯見,或通過(guò)根據(jù)本發(fā)明教導(dǎo)的具體實(shí)施方式的實(shí)踐中得知。
有益效果
對(duì)現(xiàn)有圖書館設(shè)施改動(dòng)較小,利用館內(nèi)現(xiàn)有硬件設(shè)備和軟件系統(tǒng),引入機(jī)器人解決圖書館內(nèi)圖書歸位的難題,實(shí)現(xiàn)對(duì)錯(cuò)架圖書的識(shí)別與查找,幫助讀者找到錯(cuò)架圖書,協(xié)助圖書管理員快速整理書架,解決館藏圖書錯(cuò)架的問(wèn)題。
附圖說(shuō)明
圖1為系統(tǒng)的硬件結(jié)構(gòu)圖。
圖2為軟件結(jié)構(gòu)圖。
圖3為系統(tǒng)信息流向圖。
圖4為系統(tǒng)所用本體機(jī)器人樣式結(jié)構(gòu)圖。
圖5為書架及圖書條碼張貼示意圖。
圖6為運(yùn)用機(jī)器人識(shí)別、查找圖書示意圖。
具體實(shí)施方式
以下結(jié)合附圖具體說(shuō)明本發(fā)明技術(shù)方案。。
圖1為為亂架圖書識(shí)別、查找系統(tǒng)的硬件結(jié)構(gòu)圖,管理終端和用戶終端均可用普通計(jì)算機(jī)替代。深度相機(jī)和激光傳感器作為創(chuàng)建導(dǎo)航地圖時(shí)采集深度數(shù)據(jù)的傳感器,可以用其他能實(shí)現(xiàn)相同功能的傳感器替代。推桿
圖2示例性地表示了圖書定位與查找系統(tǒng)軟件結(jié)構(gòu)圖,此系統(tǒng)包括機(jī)器人控制模塊、批量查詢模塊、管理界面模塊、地圖構(gòu)建模塊、圖書掃描模塊,定位導(dǎo)航模塊、推桿控制模塊、單個(gè)查詢模塊,用戶界面模塊。
圖3為亂架圖書識(shí)別、查找系統(tǒng)信息流向圖。機(jī)器人用掃描槍獲取圖書和書架的條碼信息,利用視覺或激光傳感器獲取建圖的信息,定位時(shí)根據(jù)已知的位置信息自主導(dǎo)航到指定地點(diǎn)。管理終端和用戶終端將控制信息傳送到機(jī)器人本體,同時(shí)接收從查詢結(jié)果。
圖4示例性地表示了圖書定位與查找系統(tǒng)所用本體機(jī)器人樣式結(jié)構(gòu)圖。機(jī)器人105具有一個(gè)主體以及設(shè)置在主體上的各個(gè)構(gòu)件,這些構(gòu)件包括:kinect攝像頭101、掃描槍102、電動(dòng)推桿103、sick激光傳感器104、p3-dx機(jī)器人105。應(yīng)當(dāng)理解,圖3中,前述構(gòu)件均為移動(dòng)服務(wù)機(jī)器人上的常用設(shè)置,其具體構(gòu)造、功能和效果在此不再贅述。這些構(gòu)件圖3所示的安裝位置和其組合僅僅是示例性的,在一些需要或者必要的例子中,這些構(gòu)件的構(gòu)造方式、組合和其安裝位置可以是任意方式的。
圖5示例性地表示了本發(fā)明所述書架及圖書條形碼張貼示意圖。
圖6示例性地表示了運(yùn)用本方法使用機(jī)器人識(shí)別、查找圖書的示意圖。
下面結(jié)合附圖所示,更加具體地描述前述應(yīng)用于圖書館機(jī)器人的圖書定位與查找方法的示例性實(shí)現(xiàn)。
s1、將圖書原有的條形碼固定在書脊處;按照書架位置以及書架層數(shù)編制不同的條形碼,條碼的編號(hào)順序要和后續(xù)機(jī)器人上的掃描槍的掃碼先后順序一致。張貼條碼在在書架指定位置方便掃描定位;按照傳統(tǒng)索書號(hào)將所有館藏圖書擺放到書架上,具體步驟如下:
s11,針對(duì)現(xiàn)有圖書館的圖書管理模式,將現(xiàn)有圖書的條形碼復(fù)制粘貼書脊底端一側(cè);
s12,為所有書架編號(hào),按照書架標(biāo)志-分館號(hào)-書架號(hào)-層號(hào)-起始標(biāo)志的方式編碼,制作相應(yīng)的書架條形碼。以1位表示書架,2位表示分館號(hào),3位表示書架號(hào),1位表示層號(hào),1位表示起止位的格式編碼書架,為每一個(gè)書架的每一層制作書架我二維碼,將書架條碼張貼在與圖書條形碼統(tǒng)一水平高度的書架邊緣,如圖4所示。
s2、管理終端控制移動(dòng)機(jī)器人掃描圖書館建立場(chǎng)館的二維導(dǎo)航地圖。本實(shí)施方式采用移動(dòng)機(jī)器人作為本體,管理終端發(fā)送指令到機(jī)器人,啟動(dòng)地圖創(chuàng)建模式,通過(guò)外置激光或者視覺傳感器獲得地圖構(gòu)建數(shù)據(jù),控制機(jī)器人在館內(nèi)需要建圖的區(qū)域內(nèi)移動(dòng),采集完數(shù)據(jù)即可完成導(dǎo)航地圖的創(chuàng)建。具體的實(shí)施方案依賴于ros機(jī)器人操作系統(tǒng)。具體步驟如下:
s21運(yùn)行roscore啟動(dòng)節(jié)點(diǎn)管理器,配置環(huán)境變量ros_master_url以及hostname,實(shí)現(xiàn)主機(jī)(機(jī)器人本體)和從機(jī)(管理終端)的通信
s22運(yùn)行roslaunchnav2d_gmapping.launch命令啟動(dòng)包括costmap/grid/move_base/odom/robotmodel等節(jié)點(diǎn),啟動(dòng)激光傳感器并采集其信息。
s221將里程計(jì)的信息傳給/odom,通過(guò)/odom發(fā)布出來(lái)并廣播變換,建立坐標(biāo)系/odom和/base_link之間的聯(lián)系。
s222配置move_base,將/odom坐標(biāo)系的位姿作為輸入到move_base,然后配置move_base.xml文件,其中包括全局和局部的代價(jià)地圖等。
s23運(yùn)行rosrunrosaria_clientinterface命令,控制機(jī)器人本體繪圖。
s24運(yùn)行rviz及其配置文件可以監(jiān)控地圖構(gòu)建的過(guò)程并實(shí)現(xiàn)交互。
s3、規(guī)劃運(yùn)動(dòng)路徑,控制機(jī)器人到達(dá)書架條形碼附近,啟動(dòng)機(jī)器人全局掃描模式,利用掃描槍獲取書架及條形碼信息,結(jié)合當(dāng)前機(jī)器人的位置以及掃描槍滑動(dòng)的高度,生成圖書的位置信息。具體步驟如下:
s31,在管理終端控制機(jī)器人本體運(yùn)動(dòng),根據(jù)機(jī)器人上的相機(jī)獲取實(shí)時(shí)圖像信息,運(yùn)動(dòng)到條形碼附近,調(diào)整機(jī)器人的位姿,使機(jī)器人上的掃描槍對(duì)準(zhǔn)書架上的條形碼,獲取當(dāng)前書架信息位置(xb,yb);
s32,通過(guò)推桿控制模塊控制電動(dòng)推桿自下向上運(yùn)動(dòng),判斷推桿上的掃描槍是否獲取到書架上的條碼信息,獲取到條碼信息時(shí)暫停推桿運(yùn)動(dòng)。由于書架編碼是按順序的,通過(guò)自身計(jì)算與掃碼結(jié)果比對(duì),如果數(shù)據(jù)相同則說(shuō)明位置正確,即可繼續(xù)掃描圖書條形碼;
s33,控制機(jī)器人移動(dòng),獲取同一層圖書的信息,直到掃描到書架邊緣的條碼停止。為本層圖書的信息增加一個(gè)數(shù)據(jù)項(xiàng),即圖書所在書架、層數(shù)及圖書在地圖上的位置坐標(biāo)(x,y)。
s4、查找指定圖書時(shí),根據(jù)條碼號(hào)獲取位置信息,將圖書坐標(biāo)發(fā)送至移動(dòng)機(jī)器人本體,自主導(dǎo)航到圖書的位置。具體步驟如下:
s41,用戶終端輸入需要查找的圖書書名或者條碼號(hào),即可查詢到步驟s33采集到該圖書的書架、層數(shù)信息;
s42,用戶終端將圖書坐標(biāo)信息(x,y)發(fā)送給機(jī)器人本體;
s43,機(jī)器本體加載地圖信息,啟動(dòng)move_base節(jié)點(diǎn),并且加載配置文件,運(yùn)行amcl結(jié)點(diǎn),加載目的地坐標(biāo)信息文件,進(jìn)行定點(diǎn)導(dǎo)航,跟隨機(jī)器人的運(yùn)動(dòng)路徑即可到達(dá)圖書所在書架,根據(jù)s41查詢到的層高,可確定圖書的位置。
s5、批量查找錯(cuò)位圖書位置時(shí),管理終端運(yùn)行機(jī)器人掃描書架及圖書的條形碼,獲書架信息及該書架上的所有圖書信息,比對(duì)數(shù)據(jù)庫(kù)中的原始位置信息,將錯(cuò)架圖書的基本信息顯示在管理終端,圖書管理員借此完成錯(cuò)架圖書的查找,圖書歸位后再次全局掃描,更新位置信息。具體步驟如下:
s51,圖書管理員在管理終端啟動(dòng)機(jī)器人,按照書架的編碼順序獲取相應(yīng)書架的地圖坐標(biāo)(xb,yb),按照s43的步驟定點(diǎn)導(dǎo)航到書架位置;
s52,掃描書架上的條形碼,獲取當(dāng)前書架編碼,查詢當(dāng)前書架當(dāng)前層原始圖書信息;
s53,執(zhí)行s33,獲取當(dāng)前書架當(dāng)前層的現(xiàn)有圖書信息,與步驟s52中獲取的信息比對(duì),篩選出不屬于當(dāng)前書架或者當(dāng)前層的圖書,發(fā)送至管理終端;
s54,掃描至?xí)苓吘壭畔r(shí),啟動(dòng)推桿控制模塊,將掃描槍往上推一層,掃描到此層的條碼信息,執(zhí)行步驟s53,直至掃完整個(gè)書架;
s55,獲取下一個(gè)書架的起始位置坐標(biāo),重新執(zhí)行步驟s51-s54,完成所有錯(cuò)架圖書的信息采集,圖書管理員借此完成錯(cuò)架圖書的查找與歸位。
s6、增加新書時(shí),在新書書脊上張貼條形碼,根據(jù)索書號(hào)把圖書放在指定書架,啟動(dòng)機(jī)器人全局掃描模式,獲得新書圖書位置信息,更新原始位置信息。具體步驟如下:
s61,按照步驟s1所述的方法在新書書脊上張貼條形碼,根據(jù)索書號(hào)把圖書放在指定書架;
s62,按照步驟s3在管理終端控制機(jī)器人運(yùn)動(dòng)到指定書架位置,通過(guò)掃描槍獲取新書圖書位置信息,維護(hù)原始位置信息數(shù)據(jù)。