楊澤萍,曹海燕,張 波,仇海琴
(南京傳媒學院,江蘇 南京 211172)
在國外對于機器人尤其是智能化機器人的研究起步較早,其控制技術(shù)、信息處理技術(shù)、傳感器等的發(fā)展也是更高一個層次。其中在服務(wù)型機器人領(lǐng)域的研究也屬于當前的熱點,其在這方面的投入也是巨大的,并且也取得了一些非常好的研究成果。目前,商鋪智能服務(wù)機器人的應(yīng)用已經(jīng)在發(fā)達國家實現(xiàn)了量產(chǎn),且其實用性和可靠性也經(jīng)驗證,為國內(nèi)的研發(fā)提供了寶貴的經(jīng)驗。
國內(nèi)的研究速度也在慢慢提高。目前,我國已經(jīng)有了相當一批的研究學者專門進行服務(wù)機器人的研究,許多高校也有專門的服務(wù)機器人團隊,由于是跨學科的領(lǐng)域,有的是幾個學院合作開展一個項目。
本論文所設(shè)計的商鋪服務(wù)機器人主要包括語音識別、圖像識別、簡單移動等一些常用功能,并有針對性的對語音識別模塊和二維碼識別模塊做了詳細的設(shè)計,其系統(tǒng)框架如圖1所示。
圖1 服務(wù)機器人系統(tǒng)框圖
處理器模塊也就是微控制器模塊,關(guān)于其選型,目前主要是根據(jù)處理器的運行速率、精度、可靠性等方面。本論文在滿足所需條件的情況下選擇價格合適的單片機,并可以提供足夠的功能和拓展性。
處理器的核心選用如圖2所示的STM32單片機,是一種32位的單片機。具有較高的精度和較好的可靠性、存儲的占用體積小、功能強大、運行速度快、兼容5V的I/O管腳、低功耗模式等實用性較強且對于服務(wù)機器人有利的優(yōu)點。STM32有最多高達112個的快速I/O端口:根據(jù)型號的不同,有26,37,51,80,和112的I/O端口,所有端口電壓均為5v輸入。此外,STM32單片機的工作溫度范圍較廣,安全性較高。
圖2 STM32引腳圖
由于STM32單片機的正常工作電壓是3.3v,所以需要加入一個電壓轉(zhuǎn)換芯片,選用了LM1117型號的芯片將輸入電壓轉(zhuǎn)為3.3v。而此轉(zhuǎn)換芯片轉(zhuǎn)換的電壓差不能太大,若壓差太大會使轉(zhuǎn)換器的內(nèi)部發(fā)熱,甚至燒毀,直接損壞單片機。故將輸入電壓設(shè)置為5v,同時需要再輸入輸出端都加入容抗。
電源通過直流伺服電機控制驅(qū)動輪,可以實現(xiàn)隨時啟動和隨時停止。本論文設(shè)計的服務(wù)機器人主要是靠底部的驅(qū)動輪來運動,四個驅(qū)動輪由兩個電機控制,可以完成簡單的轉(zhuǎn)向、前進等運動。電機可以連接上位機,通過單片機控制直流伺服電機的正反轉(zhuǎn)和啟停,進而控制整個機器人的前進后退或者轉(zhuǎn)彎等動作。由于目前市面上已經(jīng)有了直接由單片機控制的電機,故直接選用MLSS4805序列的電機。
語音識別分為兩個階段:訓練和識別。如圖3是其識別原理圖,首先要對當前的語音輸入進行預處理(端點檢測、預加重、分幀和加窗等),然后提取人的聲音特征建立語音模型,若本次語音輸入為訓練樣本則將該語音模型保存,否則將該模型與數(shù)據(jù)庫中的語音模型進行比較,根據(jù)DTW動態(tài)時間規(guī)整算法,最終得出語音識別結(jié)果。
圖3 語音識別原理圖
本設(shè)計的語音識別過程首先是創(chuàng)建一個商品的語音庫,將各個商品的信息錄入,并將其存儲在STM32單片機;在用戶使用時上電,咪頭負責采集聲音信號,采集到之后將原始語音信號作預處理,建立聲音的模型,之后與錄入到語音庫中的信號進行比對,若得到匹配的語音信號,則返回相應(yīng)語音的編號,否則給出錯誤提醒。
2.6.1 圖像識別模塊硬件系統(tǒng)實現(xiàn)
首先,進行圖像采集的是OpenMV攝像機,以STM32單片機為核心,是一種功耗較小的電路板,可以對其進行編程控制,通過I/O管腳進行輸入輸出。
如圖4是二維碼識別系統(tǒng)的工作原理圖。在外部設(shè)備上選用的片上模塊有LCD模塊、按鍵模塊、LED模塊、蜂鳴器模塊,片外模塊還有SD卡配合攝像機。外部設(shè)備主要是對二維碼識別結(jié)果進行反饋,識別成功后會震動。單片機使用STM32,通過SPI總線數(shù)據(jù)傳輸協(xié)議上電后通過SD卡將字庫文件進行復制傳輸,提高識別效率。其中,在整個二維碼識別系統(tǒng)中,單片機上所連接的硬件起到了對二維碼識別的功能,外部的SD卡只是用于擴充內(nèi)存等存儲作用。
圖4 二維碼識別系統(tǒng)硬件模塊
2.6.2 圖像識別模塊軟件系統(tǒng)實現(xiàn)
其設(shè)計操作如下:掃描槍開啟采集圖像信息,以用戶的支付二維碼為例,采集到后觸發(fā)串口中斷,將采集到的數(shù)據(jù)傳給STM32控制器。主控制將接收到的信息進行解析和處理,通過網(wǎng)口通信模塊傳輸至支付系統(tǒng)。支付系統(tǒng)上的終端控制軟件會將不同的數(shù)據(jù)信息進行顯示,實現(xiàn)商鋪的自動化管理。
本設(shè)計采用的是基于背景分割的二維碼定位識別算法,利用ZBRA組件實現(xiàn)算法。其具體實現(xiàn)過程如下:
Begin
step1:輸入彩色圖像。
step2:將彩色圖片從RGB顏色空間轉(zhuǎn)換到灰度空間。
step3:確定閾值對灰度圖像進行二值化操作。
step4:對二值化圖像尋找輪廓。
step5:遍歷所有輪廓,選中包含兩個子輪廓的輪廓,將這三個輪廓按編號保存下來。
step6:遍歷所有保存下來的輪廓。
step7:對保留下來的輪廓,計算其中心點到其他輪廓中心點的距離,將每三個距離最近的輪廓作為一組,連接每組三個輪廓的中心點。
Step8:計算每組輪廓的最小包圍矩形,即為每個二維碼定位框,記錄矩形四個角點的位置。
Step9:將二維碼從背景中分割出來。
Step10:依次通過線性插值放大、霍夫直線檢測、透視變換、彩色圖轉(zhuǎn)灰度圖和自適應(yīng)二值化獲得最終的二維碼并交給zbar組件識別。
End
商鋪服務(wù)機器人以STM32單片機為核心,第一,驅(qū)動模塊利用差動方法,由單片機控制電機的啟停和加減速,可靠性高,實現(xiàn)機器人的前進后退等基本行為;第二,語音識別模塊作為基礎(chǔ)模塊,由于當前技術(shù)比較成熟,故直接引用,將所識別到的語音通過預處理之后提取語音特征,之后在于數(shù)據(jù)庫進行對比,最后將識別完成的語音進行輸出;第三,二維碼識別模塊,由片上和片外設(shè)備組成,二者之間進行通信,外部設(shè)備采集到信息傳入內(nèi)部,實現(xiàn)對二維碼的識別處理。本論文設(shè)計的服務(wù)機器人系統(tǒng)基本可以滿足日常的商鋪需求。但是由于時間有限,一些更貼近生活的功能沒有設(shè)計出。