王德坤 楊宜民
【摘要】為了提高禮儀機(jī)器人在復(fù)雜環(huán)境中測(cè)量數(shù)據(jù)的可靠性以及解決同一類型多傳感器測(cè)距盲區(qū)無(wú)法補(bǔ)償?shù)膯?wèn)題,使得禮儀機(jī)器人可以測(cè)得300cm以內(nèi)障礙物的距離信息,本設(shè)計(jì)采用紅外傳感器和超聲波傳感器組成禮儀機(jī)器人的測(cè)距系統(tǒng),并應(yīng)用自適應(yīng)加權(quán)數(shù)據(jù)融合技術(shù)對(duì)傳感器所測(cè)數(shù)據(jù)進(jìn)行融合,實(shí)現(xiàn)了兩種傳感器在功能上的互補(bǔ),提升了系統(tǒng)的實(shí)時(shí)性,減小了系統(tǒng)的測(cè)距誤差。實(shí)驗(yàn)結(jié)果表明系統(tǒng)可在300cm以內(nèi)精確測(cè)距,提高了整體測(cè)距精度,得到了被測(cè)距離更加準(zhǔn)確的估計(jì)。
【關(guān)鍵詞】禮儀機(jī)器人;紅外傳感器;超聲波傳感器;測(cè)距;自適應(yīng)加權(quán)數(shù)據(jù)融合
Development of the control system of the etiquette robot based on AT89C52 SCM
College of Automation Engineering,Guangdong University of Technology ?WangDeKun ?YangYiMin
Abstract:In order to improve the measurement protocol droid data reliability in complex environments and solve the same type of multi-sensor ranging blind can not compensate for the problem,so that the robot can be measured within etiquette obstacle 300cm distance information,the design uses infrared sensors and ultrasonic sensors etiquette robots ranging system and apply adaptive weighted data fusion technology to the measured sensor data fusion,to achieve the two sensors on the complementary function to enhance the real-time system,reducing the distance error of the system. Experimental results show that the system can accurately ranging within 300cm,improving the overall range accuracy,the distance has been measured more accurate estimate.
Key words:etiquette robot;Infrared Sensors;Ultrasonic sensors;Ranging;Adaptive weighted data fusion
1.引言
隨著禮儀機(jī)器人應(yīng)用領(lǐng)域的不斷擴(kuò)展,機(jī)器人獲取外部環(huán)境信息,感知障礙物的存在,測(cè)量障礙物的距離顯得尤為重要。禮儀機(jī)器人在完成任務(wù)的時(shí)候,通常是在機(jī)器人移動(dòng)的同時(shí)還要一直探測(cè)周圍環(huán)境中的障礙物。想要得到障礙物的可靠距離,如果禮儀機(jī)器人測(cè)距系統(tǒng)僅用一種傳感器來(lái)探測(cè),那么就必須對(duì)相同的位置不斷地進(jìn)行探測(cè)。但是禮儀機(jī)器人地移動(dòng)會(huì)給探測(cè)結(jié)果帶來(lái)很大的誤差,而且時(shí)間消耗激增。禮儀機(jī)器人測(cè)距系統(tǒng)采用多傳感器進(jìn)行探測(cè),不僅可以提高探測(cè)量的互補(bǔ)信息和冗余信息,而且還可以提高系統(tǒng)的實(shí)時(shí)性[1]。文獻(xiàn)[2]中的自適應(yīng)加權(quán)融合估計(jì)算法不需要知道傳感器測(cè)量數(shù)據(jù)的任何先驗(yàn)知識(shí),只依靠傳感器所提供的測(cè)量數(shù)據(jù),就可融合出均方誤差最小的數(shù)據(jù)融合值[2]。利用該方法將上述信息進(jìn)行融合,得出比單個(gè)傳感器更準(zhǔn)確更完全的估計(jì)值。
目前,機(jī)器人測(cè)距傳感器主要有紅外、超聲波、視覺(jué)和激光傳感器。但是視覺(jué)和激光傳感器相對(duì)其他傳感器不僅價(jià)格昂貴而且對(duì)控制器的要求十分高。超聲波測(cè)距成本低廉,測(cè)量精度較高,不受環(huán)境的限制,應(yīng)用十分的方便[3]。但是超聲波傳感器測(cè)距范圍一般在20~500cm,20cm之內(nèi)的障礙物很難被探測(cè)到[4],即存在盲區(qū)。而紅外傳感器價(jià)格低廉,安全可靠,探測(cè)距離較短,一般在幾十厘米之內(nèi)[5][6],因此,本設(shè)計(jì)將超聲波傳感器和紅外傳感器配合使用,并采用自適應(yīng)加權(quán)數(shù)據(jù)融合技術(shù)對(duì)采集的數(shù)據(jù)進(jìn)行融合,不僅在一定程度上實(shí)現(xiàn)兩種傳感器功能上的互補(bǔ),提升了系統(tǒng)的實(shí)時(shí)性,而且提高了系統(tǒng)的整體測(cè)距精度。
2.測(cè)距系統(tǒng)的整體結(jié)構(gòu)
如圖1所示。傳感器模塊將采集到的外部環(huán)境信息傳給主控制器,主控制器將接收到的傳感器信號(hào)轉(zhuǎn)換成距離信息,然后采用自適應(yīng)加權(quán)融合估計(jì)算法對(duì)傳感器采集的信息進(jìn)行融合,再將融合后的距離信息傳給上位機(jī)顯示。
圖1 禮儀機(jī)器人測(cè)距系統(tǒng)結(jié)構(gòu)框圖
3.測(cè)距系統(tǒng)的硬件設(shè)計(jì)
3.1 主控制模塊
由于單片機(jī)簡(jiǎn)單可靠、控制功能強(qiáng)、成本相對(duì)較低,所以主控制模塊的控制核心由單片機(jī)來(lái)控制,這里采用紅龍STM32F103,其芯片上集成有2×12位D/A轉(zhuǎn)換器、16通道2×12位電壓A/D轉(zhuǎn)換器、51位通用可編程I/O通道、7個(gè)可編程定時(shí)/計(jì)數(shù)器和16個(gè)中斷源。芯片內(nèi)部集成了很多功能,一般情況下可以直接使用,不需要額外的擴(kuò)展復(fù)雜的接口,使用起來(lái)十分方面靈活。D/A轉(zhuǎn)換器、A/D轉(zhuǎn)換器、I/O通道、定時(shí)/計(jì)數(shù)器和中斷源的位數(shù)相對(duì)較多,完全可以提供傳感器使用。
3.2 傳感器模塊的設(shè)計(jì)
3.2.1 傳感器的選型
目前,用于機(jī)器人測(cè)距的傳感器主要有紅外、超聲波、激光及視覺(jué)傳感器。視覺(jué)傳感器和激光傳感器價(jià)格相對(duì)較貴,且對(duì)控制器的要求較高。超聲波傳感器距離分辨力強(qiáng)、價(jià)格低廉,探測(cè)距離較長(zhǎng),測(cè)距范圍一般為20~500cm,小于20cm時(shí)即為盲區(qū)。而紅外測(cè)距傳感器光束發(fā)散小、響應(yīng)速度快、探測(cè)距離較短,一般在幾十厘米之內(nèi),剛好可以彌補(bǔ)超聲波傳感器近距離無(wú)法測(cè)量的缺點(diǎn)。所以本設(shè)計(jì)選擇超聲波傳感器和紅外傳感器組成多傳感器測(cè)距系統(tǒng)。
設(shè)計(jì)要求能探測(cè)到300cm范圍內(nèi)的障礙物,且供電電壓為直流5V。綜合考慮設(shè)計(jì)的要求,出于簡(jiǎn)便角度,選用HC-SR04超聲波集成模塊,此超聲波模塊的最大探測(cè)距離為450cm,精度可達(dá)0.2cm,盲區(qū)為20cm,符合探測(cè)300cm范圍內(nèi)的障礙物。該模塊使用電壓為DC5V,靜態(tài)電流小于2mA,工作頻率在39kHz和41kHz之間,完全能在40kHz工作頻率工作。
由于超聲波傳感器存在測(cè)量盲區(qū),20cm以內(nèi)的障礙物很難被探測(cè)到,所以需要紅外傳感器來(lái)彌補(bǔ)其不足,探測(cè)近距離的障礙物。本設(shè)計(jì)選用GP2D12紅外傳感器,其測(cè)量射程范圍為10~80cm,最大允許角度大于40°,電源電壓在4.5V和5.5V之間。當(dāng)探測(cè)物體的距離小于10cm的時(shí)候,輸出電壓急劇下降,也就是說(shuō)物體的距離反而越來(lái)越遠(yuǎn)了。所以本設(shè)計(jì)將紅外傳感器安裝在機(jī)器人內(nèi)部離表殼10cm的地方,相當(dāng)于紅外傳感器的探測(cè)范圍變成了0~70cm,使得系統(tǒng)可以探測(cè)0~300cm范圍內(nèi)的障礙物。
3.2.2 傳感器的分布
因?yàn)橐獙?shí)現(xiàn)功能上的互補(bǔ),所以將超聲波傳感器和紅外傳感器安裝在一起作為一組傳感器。為了探測(cè)機(jī)器人正前方90°的障礙物,需要在機(jī)器人的前方安裝3組傳感器,因?yàn)楸驹O(shè)計(jì)選用的GP2D12紅外傳感器探測(cè)角度約為40°,如果使用兩個(gè)則只能探測(cè)前方80°的障礙物。要求探測(cè)前方1m左右高的障礙物,因此要將三組傳感器按不同的高度分布,禮儀機(jī)器人身形是按照常人來(lái)設(shè)計(jì)的,所以將其中一組放在禮儀機(jī)器人大約0.7m高處的正中間,其余兩組分別放在左右下部大約0.5m高處。
3.2.3 傳感器電路設(shè)計(jì)
STM32F103單片機(jī)的I/O 0~I(xiàn)/O 5可作為 12位A/D轉(zhuǎn)換器。STM32F103單片機(jī)的 I/O 6~I(xiàn)/O 8口接三路超聲波發(fā)射電路,I/O 0~I(xiàn)/O 2接三路超聲波接收電路。單片機(jī)產(chǎn)生的40 kHz信號(hào)由I/O輸出,經(jīng)放大器放大后由超聲波探頭驅(qū)動(dòng)將超聲波發(fā)射出去。聲波遇到障礙物返回,被接收器接收,再經(jīng)過(guò)放大器放大和檢波電路濾波后,通過(guò)I/O口輸入單片機(jī)。單片機(jī)通過(guò)聲波的傳輸時(shí)間計(jì)算障礙物距離。
STM32F103單片機(jī)的I/O3~I(xiàn)/O 5和I/O 9~I(xiàn)/O 11分別接三路紅外接收電路和紅外發(fā)射電路。STM32F103的I/O口為高電平的時(shí)候,紅外發(fā)光管就會(huì)導(dǎo)通發(fā)射出紅外光,發(fā)射出的紅外光遇到障礙物就會(huì)反射回來(lái)被紅外接收管接收,同時(shí)會(huì)產(chǎn)生一個(gè)對(duì)應(yīng)于光強(qiáng)的電流。兩級(jí)放大電路將該電流放大之后會(huì)有一個(gè)0~3V的模擬電壓輸出,該電壓通過(guò)A/D口被單片機(jī)接收。根據(jù)電壓的大小單片機(jī)就可以計(jì)算障礙物的距離。
4.測(cè)距系統(tǒng)的軟件設(shè)計(jì)
基于Cortex-M3內(nèi)核的STM32F103系列處理器是新型的嵌入式微處理器,它在各方面指標(biāo)上都遠(yuǎn)遠(yuǎn)優(yōu)于51系列單片機(jī),但是其開發(fā)使用方法卻和51系列單片機(jī)一樣簡(jiǎn)便,其支持keil編譯環(huán)境,支持C語(yǔ)言編程。整個(gè)禮儀機(jī)器人測(cè)距系統(tǒng)軟件采用C語(yǔ)言編寫[7],由主程序、紅外測(cè)距子程序和超聲波測(cè)距子程序和數(shù)據(jù)融合子程序組成。主程序中,首先進(jìn)行紅外測(cè)距和超聲波測(cè)距,如果探測(cè)到障礙物,則對(duì)接收到的距離信息進(jìn)行融合,然后將融合后的距離信息傳給上位機(jī)顯示,如圖2所示。紅外測(cè)距過(guò)程,選用定時(shí)器 A產(chǎn)生0.1s的中斷進(jìn)行傳感器信息的采集,并將采集的電壓值轉(zhuǎn)換為距離信息,如圖3所示。
由于40kHz的超聲波脈沖為高低電平各占 12.5μs的方波,CPU時(shí)鐘計(jì)數(shù)延遲123個(gè)指令周期即為12.5μs。單片機(jī)通過(guò)不斷的交替產(chǎn)生12.5μs的高低電平即可產(chǎn)生40kHz的脈沖信號(hào),每次發(fā)射20個(gè)脈沖的脈沖群,持續(xù)0.5ms,脈沖發(fā)射間隔時(shí)間至少20ms,從I/O口輸出。系統(tǒng)選用定時(shí)器A作為產(chǎn)生20ms的定時(shí)中斷 ,選用定時(shí)器B作為超聲波計(jì)數(shù)器。圖4為超聲波測(cè)距子程序。
圖2 測(cè)距系統(tǒng)主程序流程圖
圖3 紅外測(cè)距子程序流程圖
圖4 超聲波測(cè)距子程序流程圖
對(duì)于多傳感器的檢測(cè)信息,因?yàn)閭鞲衅鞯牟煌矔?huì)導(dǎo)致其量程和精度都不相同,測(cè)量的準(zhǔn)確性也難免會(huì)有差異。如果不加區(qū)別地將多傳感器探測(cè)到的數(shù)據(jù)進(jìn)行處理利用,系統(tǒng)的測(cè)量結(jié)果必然會(huì)由此產(chǎn)生誤差。每個(gè)傳感器在探測(cè)系統(tǒng)中探測(cè)的準(zhǔn)確性都不相同,所以需要人為地對(duì)傳感器的重要性給予區(qū)別。這就是本設(shè)計(jì)選擇自適應(yīng)加權(quán)數(shù)據(jù)融合算法的依據(jù)[8]。根據(jù)文獻(xiàn)[2]介紹的多傳感器數(shù)據(jù)自適應(yīng)加權(quán)融合估計(jì)算法對(duì)禮儀機(jī)器人測(cè)距系統(tǒng)中超聲波和紅外傳感器所采集的信息進(jìn)行融合。由該方法,首先求得時(shí)刻k超聲波和紅外傳感器所測(cè)障礙物距離的最優(yōu)加權(quán)因子和均值,然后求得時(shí)刻k的估計(jì)值(k)。其表達(dá)式如下所示。
根據(jù)以上的方法設(shè)計(jì)數(shù)據(jù)融合子程序,其流程圖如圖5所示。
圖5 數(shù)據(jù)融合子程序流程圖
5.實(shí)驗(yàn)結(jié)果與分析
將實(shí)驗(yàn)室內(nèi)一塊500cm×500cm的空地作為測(cè)試環(huán)境進(jìn)行實(shí)驗(yàn)。機(jī)器人安裝有3組傳感器,每組由超聲波和紅外組成,分為左超聲與左紅外、右超聲與右紅外、前超聲與前紅外。選用同一方向上的一組傳感器進(jìn)行融合,因?yàn)榱砍滩幌嗤?,?dāng)有一種傳感器的量程超出的時(shí)候就讓另外一種傳感器單獨(dú)工作,歸一化處理后超過(guò)量程的傳感器的輸出為1。輸出為1的傳感器在融合的時(shí)候權(quán)值被設(shè)定為0,所以可以把融合的整個(gè)過(guò)程劃分成3個(gè)階段:紅外傳感器獨(dú)自測(cè)量0cm~30cm,超聲波和紅外傳感器同時(shí)測(cè)量30cm~70cm,超聲波傳感器獨(dú)自測(cè)量70cm~300cm。10個(gè)周期(k=10)中,將禮儀機(jī)器人在該環(huán)境內(nèi)檢測(cè)同一位置同一障礙物的距離信息,選定距離為30cm、50cm和200cm作為標(biāo)定距離進(jìn)行實(shí)驗(yàn)。選取超聲波和紅外傳感器同時(shí)測(cè)量的第二子階段,測(cè)得前超聲波的10組數(shù)據(jù)為50.8、52.2、50、54.4、48.8、49.6、52.2、53.4、50.8、51,前紅外的10組數(shù)據(jù)為50.2、48.2、49.2、51、51.2、50.4、49.6、49.4、48.4、48;左超聲波的10組數(shù)據(jù)為53.6、54、53.2、56、57.4、55.6、53.8、55.2、58.4、57.4,左紅外的10組數(shù)據(jù)為51.4、53、52.6、54.2、55.6、54.2、52、54.2、54.8、52.8;右超聲波的10組數(shù)據(jù)為56.2、54.4、53、54.8、56.8、53.2、54.4、55.2、57、56.6,右紅外的10組數(shù)據(jù)為53.4、54、51.8、53.8、54.2、55.6、51.6、52.8、55、54.8。按照多傳感器數(shù)據(jù)自適應(yīng)加權(quán)融合估計(jì)算法計(jì)算這一階段內(nèi)相應(yīng)的權(quán)值和方差,得出如表l所示數(shù)據(jù),(k)、與實(shí)際值的單位均為cm(l為傳感器超量程輸出)。
從表l數(shù)據(jù)可見(jiàn),該測(cè)距系統(tǒng)可精確探測(cè)300cm以內(nèi)的障礙物,多傳感器彌補(bǔ)了單一傳感器的測(cè)距盲區(qū),采用自適應(yīng)加權(quán)融合估計(jì)算法融合后,充分考慮到了環(huán)境對(duì)測(cè)量值的干擾,減小了對(duì)測(cè)量準(zhǔn)確度影響較大的數(shù)據(jù),使得融合后的測(cè)量值與真值更為接近,減小了測(cè)量的誤差,提高了測(cè)距系統(tǒng)的整體精度。
6.結(jié)論
本文以禮儀機(jī)器人作為研究平臺(tái),設(shè)計(jì)了一種以STM32F103作為控制核心,利用超聲波和紅外傳感器共同測(cè)距的多傳感器測(cè)距系統(tǒng),并采用自適應(yīng)加權(quán)融合估計(jì)算法對(duì)多傳感器采集的數(shù)據(jù)進(jìn)行融合,不僅解決了單一傳感器測(cè)距系統(tǒng)中測(cè)量盲區(qū)的缺陷問(wèn)題,而且還提高了測(cè)距精度。實(shí)驗(yàn)結(jié)果證明了該測(cè)距系統(tǒng)的可靠性。
參考文獻(xiàn)
[1]John M.Richardson,Kenneth A.March.Fusion of Multisensor Data[J].The International Journal of Robotics Research(S0278-3649),1988,7(6):78-96.
[2]翟翌立,戴逸松.多傳感器數(shù)據(jù)自適應(yīng)加權(quán)融合估計(jì)算法的研究[J].計(jì)量學(xué)報(bào),1998,19(1):69-74.
[3]呂漫麗.基于多傳感器信息融合的移動(dòng)機(jī)器人避障研究[D].吉林:東北電力大學(xué),2008.
[4]時(shí)德剛,劉嘩.超聲波測(cè)距的研究[J].計(jì)算機(jī)測(cè)量與控制,2002,9(10):31-33.
[5]蘇長(zhǎng)贊.紅外線與超聲波遙控[M].北京:人民郵電出版社,1993.
[6]Tzuu-Hseng S Li,Shih-Jie Chang,Wei Tong.Fuzzy Target tracking control of autonomous mobile robots by using infrared sensors[J].IEEE Transactions on Fuzzy Systems,2004,12(4):491-501.
[7]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2002.
[8]王琳.多傳感器信息融合技術(shù)及其應(yīng)用[D].保定:華北電力大學(xué)碩士學(xué)位論文,2002.