王德坤 楊宜民
【摘要】為了提高禮儀機(jī)器人在復(fù)雜環(huán)境中測量數(shù)據(jù)的可靠性以及解決同一類型多傳感器測距盲區(qū)無法補(bǔ)償?shù)膯栴},使得禮儀機(jī)器人可以測得300cm以內(nèi)障礙物的距離信息,本設(shè)計(jì)采用紅外傳感器和超聲波傳感器組成禮儀機(jī)器人的測距系統(tǒng),并應(yīng)用自適應(yīng)加權(quán)數(shù)據(jù)融合技術(shù)對傳感器所測數(shù)據(jù)進(jìn)行融合,實(shí)現(xiàn)了兩種傳感器在功能上的互補(bǔ),提升了系統(tǒng)的實(shí)時性,減小了系統(tǒng)的測距誤差。實(shí)驗(yàn)結(jié)果表明系統(tǒng)可在300cm以內(nèi)精確測距,提高了整體測距精度,得到了被測距離更加準(zhǔn)確的估計(jì)。
【關(guān)鍵詞】禮儀機(jī)器人;紅外傳感器;超聲波傳感器;測距;自適應(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)境信息,感知障礙物的存在,測量障礙物的距離顯得尤為重要。禮儀機(jī)器人在完成任務(wù)的時候,通常是在機(jī)器人移動的同時還要一直探測周圍環(huán)境中的障礙物。想要得到障礙物的可靠距離,如果禮儀機(jī)器人測距系統(tǒng)僅用一種傳感器來探測,那么就必須對相同的位置不斷地進(jìn)行探測。但是禮儀機(jī)器人地移動會給探測結(jié)果帶來很大的誤差,而且時間消耗激增。禮儀機(jī)器人測距系統(tǒng)采用多傳感器進(jìn)行探測,不僅可以提高探測量的互補(bǔ)信息和冗余信息,而且還可以提高系統(tǒng)的實(shí)時性[1]。文獻(xiàn)[2]中的自適應(yīng)加權(quán)融合估計(jì)算法不需要知道傳感器測量數(shù)據(jù)的任何先驗(yàn)知識,只依靠傳感器所提供的測量數(shù)據(jù),就可融合出均方誤差最小的數(shù)據(jù)融合值[2]。利用該方法將上述信息進(jìn)行融合,得出比單個傳感器更準(zhǔn)確更完全的估計(jì)值。
目前,機(jī)器人測距傳感器主要有紅外、超聲波、視覺和激光傳感器。但是視覺和激光傳感器相對其他傳感器不僅價格昂貴而且對控制器的要求十分高。超聲波測距成本低廉,測量精度較高,不受環(huán)境的限制,應(yīng)用十分的方便[3]。但是超聲波傳感器測距范圍一般在20~500cm,20cm之內(nèi)的障礙物很難被探測到[4],即存在盲區(qū)。而紅外傳感器價格低廉,安全可靠,探測距離較短,一般在幾十厘米之內(nèi)[5][6],因此,本設(shè)計(jì)將超聲波傳感器和紅外傳感器配合使用,并采用自適應(yīng)加權(quán)數(shù)據(jù)融合技術(shù)對采集的數(shù)據(jù)進(jìn)行融合,不僅在一定程度上實(shí)現(xiàn)兩種傳感器功能上的互補(bǔ),提升了系統(tǒng)的實(shí)時性,而且提高了系統(tǒng)的整體測距精度。
2.測距系統(tǒng)的整體結(jié)構(gòu)
如圖1所示。傳感器模塊將采集到的外部環(huán)境信息傳給主控制器,主控制器將接收到的傳感器信號轉(zhuǎn)換成距離信息,然后采用自適應(yīng)加權(quán)融合估計(jì)算法對傳感器采集的信息進(jìn)行融合,再將融合后的距離信息傳給上位機(jī)顯示。
圖1 禮儀機(jī)器人測距系統(tǒng)結(jié)構(gòu)框圖
3.測距系統(tǒng)的硬件設(shè)計(jì)
3.1 主控制模塊
由于單片機(jī)簡單可靠、控制功能強(qiáng)、成本相對較低,所以主控制模塊的控制核心由單片機(jī)來控制,這里采用紅龍STM32F103,其芯片上集成有2×12位D/A轉(zhuǎn)換器、16通道2×12位電壓A/D轉(zhuǎn)換器、51位通用可編程I/O通道、7個可編程定時/計(jì)數(shù)器和16個中斷源。芯片內(nèi)部集成了很多功能,一般情況下可以直接使用,不需要額外的擴(kuò)展復(fù)雜的接口,使用起來十分方面靈活。D/A轉(zhuǎn)換器、A/D轉(zhuǎn)換器、I/O通道、定時/計(jì)數(shù)器和中斷源的位數(shù)相對較多,完全可以提供傳感器使用。
3.2 傳感器模塊的設(shè)計(jì)
3.2.1 傳感器的選型
目前,用于機(jī)器人測距的傳感器主要有紅外、超聲波、激光及視覺傳感器。視覺傳感器和激光傳感器價格相對較貴,且對控制器的要求較高。超聲波傳感器距離分辨力強(qiáng)、價格低廉,探測距離較長,測距范圍一般為20~500cm,小于20cm時即為盲區(qū)。而紅外測距傳感器光束發(fā)散小、響應(yīng)速度快、探測距離較短,一般在幾十厘米之內(nèi),剛好可以彌補(bǔ)超聲波傳感器近距離無法測量的缺點(diǎn)。所以本設(shè)計(jì)選擇超聲波傳感器和紅外傳感器組成多傳感器測距系統(tǒng)。
設(shè)計(jì)要求能探測到300cm范圍內(nèi)的障礙物,且供電電壓為直流5V。綜合考慮設(shè)計(jì)的要求,出于簡便角度,選用HC-SR04超聲波集成模塊,此超聲波模塊的最大探測距離為450cm,精度可達(dá)0.2cm,盲區(qū)為20cm,符合探測300cm范圍內(nèi)的障礙物。該模塊使用電壓為DC5V,靜態(tài)電流小于2mA,工作頻率在39kHz和41kHz之間,完全能在40kHz工作頻率工作。
由于超聲波傳感器存在測量盲區(qū),20cm以內(nèi)的障礙物很難被探測到,所以需要紅外傳感器來彌補(bǔ)其不足,探測近距離的障礙物。本設(shè)計(jì)選用GP2D12紅外傳感器,其測量射程范圍為10~80cm,最大允許角度大于40°,電源電壓在4.5V和5.5V之間。當(dāng)探測物體的距離小于10cm的時候,輸出電壓急劇下降,也就是說物體的距離反而越來越遠(yuǎn)了。所以本設(shè)計(jì)將紅外傳感器安裝在機(jī)器人內(nèi)部離表殼10cm的地方,相當(dāng)于紅外傳感器的探測范圍變成了0~70cm,使得系統(tǒng)可以探測0~300cm范圍內(nèi)的障礙物。
3.2.2 傳感器的分布
因?yàn)橐獙?shí)現(xiàn)功能上的互補(bǔ),所以將超聲波傳感器和紅外傳感器安裝在一起作為一組傳感器。為了探測機(jī)器人正前方90°的障礙物,需要在機(jī)器人的前方安裝3組傳感器,因?yàn)楸驹O(shè)計(jì)選用的GP2D12紅外傳感器探測角度約為40°,如果使用兩個則只能探測前方80°的障礙物。要求探測前方1m左右高的障礙物,因此要將三組傳感器按不同的高度分布,禮儀機(jī)器人身形是按照常人來設(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信號由I/O輸出,經(jīng)放大器放大后由超聲波探頭驅(qū)動將超聲波發(fā)射出去。聲波遇到障礙物返回,被接收器接收,再經(jīng)過放大器放大和檢波電路濾波后,通過I/O口輸入單片機(jī)。單片機(jī)通過聲波的傳輸時間計(jì)算障礙物距離。
STM32F103單片機(jī)的I/O3~I(xiàn)/O 5和I/O 9~I(xiàn)/O 11分別接三路紅外接收電路和紅外發(fā)射電路。STM32F103的I/O口為高電平的時候,紅外發(fā)光管就會導(dǎo)通發(fā)射出紅外光,發(fā)射出的紅外光遇到障礙物就會反射回來被紅外接收管接收,同時會產(chǎn)生一個對應(yīng)于光強(qiáng)的電流。兩級放大電路將該電流放大之后會有一個0~3V的模擬電壓輸出,該電壓通過A/D口被單片機(jī)接收。根據(jù)電壓的大小單片機(jī)就可以計(jì)算障礙物的距離。
4.測距系統(tǒng)的軟件設(shè)計(jì)
基于Cortex-M3內(nèi)核的STM32F103系列處理器是新型的嵌入式微處理器,它在各方面指標(biāo)上都遠(yuǎn)遠(yuǎn)優(yōu)于51系列單片機(jī),但是其開發(fā)使用方法卻和51系列單片機(jī)一樣簡便,其支持keil編譯環(huán)境,支持C語言編程。整個禮儀機(jī)器人測距系統(tǒng)軟件采用C語言編寫[7],由主程序、紅外測距子程序和超聲波測距子程序和數(shù)據(jù)融合子程序組成。主程序中,首先進(jìn)行紅外測距和超聲波測距,如果探測到障礙物,則對接收到的距離信息進(jìn)行融合,然后將融合后的距離信息傳給上位機(jī)顯示,如圖2所示。紅外測距過程,選用定時器 A產(chǎn)生0.1s的中斷進(jìn)行傳感器信息的采集,并將采集的電壓值轉(zhuǎn)換為距離信息,如圖3所示。
由于40kHz的超聲波脈沖為高低電平各占 12.5μs的方波,CPU時鐘計(jì)數(shù)延遲123個指令周期即為12.5μs。單片機(jī)通過不斷的交替產(chǎn)生12.5μs的高低電平即可產(chǎn)生40kHz的脈沖信號,每次發(fā)射20個脈沖的脈沖群,持續(xù)0.5ms,脈沖發(fā)射間隔時間至少20ms,從I/O口輸出。系統(tǒng)選用定時器A作為產(chǎn)生20ms的定時中斷 ,選用定時器B作為超聲波計(jì)數(shù)器。圖4為超聲波測距子程序。
圖2 測距系統(tǒng)主程序流程圖
圖3 紅外測距子程序流程圖
圖4 超聲波測距子程序流程圖
對于多傳感器的檢測信息,因?yàn)閭鞲衅鞯牟煌矔?dǎo)致其量程和精度都不相同,測量的準(zhǔn)確性也難免會有差異。如果不加區(qū)別地將多傳感器探測到的數(shù)據(jù)進(jìn)行處理利用,系統(tǒng)的測量結(jié)果必然會由此產(chǎn)生誤差。每個傳感器在探測系統(tǒng)中探測的準(zhǔn)確性都不相同,所以需要人為地對傳感器的重要性給予區(qū)別。這就是本設(shè)計(jì)選擇自適應(yīng)加權(quán)數(shù)據(jù)融合算法的依據(jù)[8]。根據(jù)文獻(xiàn)[2]介紹的多傳感器數(shù)據(jù)自適應(yīng)加權(quán)融合估計(jì)算法對禮儀機(jī)器人測距系統(tǒng)中超聲波和紅外傳感器所采集的信息進(jìn)行融合。由該方法,首先求得時刻k超聲波和紅外傳感器所測障礙物距離的最優(yōu)加權(quán)因子和均值,然后求得時刻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的空地作為測試環(huán)境進(jìn)行實(shí)驗(yàn)。機(jī)器人安裝有3組傳感器,每組由超聲波和紅外組成,分為左超聲與左紅外、右超聲與右紅外、前超聲與前紅外。選用同一方向上的一組傳感器進(jìn)行融合,因?yàn)榱砍滩幌嗤?,?dāng)有一種傳感器的量程超出的時候就讓另外一種傳感器單獨(dú)工作,歸一化處理后超過量程的傳感器的輸出為1。輸出為1的傳感器在融合的時候權(quán)值被設(shè)定為0,所以可以把融合的整個過程劃分成3個階段:紅外傳感器獨(dú)自測量0cm~30cm,超聲波和紅外傳感器同時測量30cm~70cm,超聲波傳感器獨(dú)自測量70cm~300cm。10個周期(k=10)中,將禮儀機(jī)器人在該環(huán)境內(nèi)檢測同一位置同一障礙物的距離信息,選定距離為30cm、50cm和200cm作為標(biāo)定距離進(jìn)行實(shí)驗(yàn)。選取超聲波和紅外傳感器同時測量的第二子階段,測得前超聲波的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ù)可見,該測距系統(tǒng)可精確探測300cm以內(nèi)的障礙物,多傳感器彌補(bǔ)了單一傳感器的測距盲區(qū),采用自適應(yīng)加權(quán)融合估計(jì)算法融合后,充分考慮到了環(huán)境對測量值的干擾,減小了對測量準(zhǔn)確度影響較大的數(shù)據(jù),使得融合后的測量值與真值更為接近,減小了測量的誤差,提高了測距系統(tǒng)的整體精度。
6.結(jié)論
本文以禮儀機(jī)器人作為研究平臺,設(shè)計(jì)了一種以STM32F103作為控制核心,利用超聲波和紅外傳感器共同測距的多傳感器測距系統(tǒng),并采用自適應(yīng)加權(quán)融合估計(jì)算法對多傳感器采集的數(shù)據(jù)進(jìn)行融合,不僅解決了單一傳感器測距系統(tǒng)中測量盲區(qū)的缺陷問題,而且還提高了測距精度。實(shí)驗(yàn)結(jié)果證明了該測距系統(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]呂漫麗.基于多傳感器信息融合的移動機(jī)器人避障研究[D].吉林:東北電力大學(xué),2008.
[4]時德剛,劉嘩.超聲波測距的研究[J].計(jì)算機(jī)測量與控制,2002,9(10):31-33.
[5]蘇長贊.紅外線與超聲波遙控[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.