譚福生, 楊 軍, 申純太
(上海電氣集團(tuán)股份有限公司中央研究院,上海200070)
近年來(lái)隨著傳感器等領(lǐng)域的技術(shù)進(jìn)步,移動(dòng)機(jī)器人的外形和智能行為變得更為擬人,其定位導(dǎo)航功能的實(shí)現(xiàn)大多依靠激光測(cè)距雷達(dá),其性價(jià)比也越來(lái)越高,擬人化也對(duì)激光測(cè)距傳感器外形要求小型化。
激光測(cè)距儀根據(jù)掃描機(jī)構(gòu)的不同可分為2D和3D兩種,分別進(jìn)行二維和三維環(huán)境的測(cè)距。3D激光測(cè)距儀除了提供障礙物的距離信息,還提供激光的反射強(qiáng)度信息,可以利用激光強(qiáng)度圖進(jìn)行障礙物的檢測(cè)。但3D激光測(cè)距儀價(jià)格昂貴、笨重,且成像速度較慢,限制了它的進(jìn)一步應(yīng)用。相比而言,2D激光測(cè)距儀只在二維平面內(nèi)掃描,結(jié)構(gòu)簡(jiǎn)單,掃描速度快且數(shù)據(jù)點(diǎn)密集精確,在室內(nèi)移動(dòng)機(jī)器人導(dǎo)航的研究中得到了廣泛的應(yīng)用,很多的研究如環(huán)境地圖構(gòu)建、自主定位、避障、軌跡跟蹤和導(dǎo)航等都是基于激光測(cè)距儀的[1-3]。
國(guó)內(nèi)外激光測(cè)距雷達(dá)產(chǎn)品在室內(nèi)導(dǎo)航應(yīng)用方面,可以用于自主移動(dòng)機(jī)器人上。主要廠商有日本的URG-04LX是北洋電機(jī)(Hokuyo)掃描探測(cè)傳感器較新的產(chǎn)品,具有質(zhì)量輕(僅160 g),耗能小,外觀尺寸為50mm×50 mm×70 mm,但其性能還主要處于實(shí)驗(yàn)室應(yīng)用方面,沒(méi)有展開(kāi)大規(guī)模的工業(yè)應(yīng)用。
而另外一家公司德國(guó)SICK公司生產(chǎn)的激光測(cè)距雷達(dá),無(wú)論在工業(yè)上的應(yīng)用,還是在實(shí)驗(yàn)室研究方面都有很高的聲譽(yù),作為主要環(huán)境感知傳感器,在小型化方面也進(jìn)行了大量的技術(shù)攻關(guān),于2008年推出型號(hào)為L(zhǎng)MS100的激光測(cè)距雷達(dá),如圖1所示。此LMS100的尺寸(W×H×D)為102 mm×152mm×105mm,掃描角度為270°,角度分辨率為0.5°/0.25°,掃描周期為 20m s/40m s。根據(jù)技術(shù)手冊(cè),在最大測(cè)距18m的情況下,LMS100測(cè)距的系統(tǒng)誤差為±30mm,統(tǒng)計(jì)誤差12mm,角度分辨率為0.5°/0.25°。
圖1 LMS100激光測(cè)距儀
LMS100除了提供RS232/485串口以外,還提供了RJ45接口,其傳輸相對(duì)于RS232優(yōu)勢(shì)是,通過(guò)網(wǎng)關(guān)設(shè)定只要設(shè)定同一網(wǎng)段的IP地址,即可對(duì)傳感器設(shè)備進(jìn)行訪問(wèn),連接方便,且傳輸數(shù)據(jù)速度可達(dá)到10/100MBit。
Labview (Laboratory Virtual Instrument Engineering Workbench)語(yǔ)言是美國(guó) NI(National Instruments)公司推出的面向虛擬儀器開(kāi)發(fā)的一種圖形化的編程語(yǔ)言,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實(shí)驗(yàn)室所接受,視為一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件[4]。Labview集成了與滿足 GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內(nèi)置了便于應(yīng)用TCP/IP、ActiveX等軟件標(biāo)準(zhǔn)的庫(kù)函數(shù)。這是一個(gè)功能強(qiáng)大且靈活的軟件,利用它可以方便地建立自己的vi模塊,實(shí)現(xiàn)對(duì)硬件的讀取和控制。近年來(lái)其推出的Com pactRIO平臺(tái)在嵌入式控制和采集平臺(tái)獲得廣泛應(yīng)用。
LMS100防護(hù)等級(jí)為IP65,適用于室內(nèi)環(huán)境,直流24 V供電需要手動(dòng)連接(而 LMS111防護(hù)IP67用于室外環(huán)境),需要打開(kāi)后蓋,把24 V外接直流外接電源端子引入,其中+24 V接入19口,地線接入18口。接入電源后,指示燈亮就可以對(duì)數(shù)據(jù)進(jìn)行讀取了,如圖2所示。
圖2 LMS100激光測(cè)距儀電源接線
上電后,可通過(guò)LMS100自帶工具SOPAS ET對(duì)硬件進(jìn)行配置,默認(rèn)的IP地址為192.168.0.1,端口為2111。根據(jù)實(shí)驗(yàn)用計(jì)算機(jī)的子網(wǎng)段,通過(guò)配置工具可以將IP地址修改為192.168.168.7,修改角度分辨率為0.5°。
激光數(shù)據(jù)的讀取有2種方式,分別是單次測(cè)量值輸出和連續(xù)測(cè)量值輸出:對(duì)于單次測(cè)量值輸出輸入一次請(qǐng)求指令便得到一次當(dāng)前值的返回值,對(duì)數(shù)據(jù)的讀取可以進(jìn)行周期性干預(yù);而對(duì)于連續(xù)測(cè)量值的輸出,只需輸入一次,數(shù)據(jù)實(shí)時(shí)的返回,無(wú)法進(jìn)行干預(yù)。
下面是單次測(cè)量值輸出時(shí)的請(qǐng)求指令:
其中STX為數(shù)據(jù)幀起始字符,對(duì)應(yīng)十六進(jìn)制表示為(02H),而ETX為數(shù)據(jù)幀結(jié)束字符,對(duì)應(yīng)十六進(jìn)制表示為(03H)。中間字符用ASCII碼十六進(jìn)制表示,字符間空格表示,最后映射的十六進(jìn)制請(qǐng)求指令為:
02 73 52 4E 20 4C 4D 44 73 63 61 6E 64 61 74 61 03
借助于調(diào)試軟件 HerculesSetup,打開(kāi) TCP Client配置功能界面,輸入IP地址和端口號(hào),Send輸入欄填寫(xiě)十六進(jìn)制請(qǐng)求指令,點(diǎn)擊Send按鈕得到返回值如圖3所示,其詳細(xì)數(shù)據(jù)如下:
sRA LMDscandata 1 1 7EF40D 0 0 9C87 5F8 41191 4135D 0 0 5 0 0 1388 168 0 1 DIST1 3F800000 00000000 FFF92230 1388 21D 2B8 2C5 2BD 2BD…1ED6 C90 C6E C7C 0 0 0 0 0 0
對(duì)于當(dāng)前設(shè)置,LMS100的掃描角度為270°,角度分辨率為0.5°,因此得到541(21D)組數(shù)據(jù),2B8 2C5 2BD…C90 C6E C7C為逆時(shí)針排列的541個(gè)數(shù)據(jù),數(shù)據(jù)單位為mm,十六進(jìn)制表示,為使用這組值,需要通過(guò)進(jìn)制轉(zhuǎn)換算法把十六進(jìn)制轉(zhuǎn)換為十進(jìn)制。
所得到數(shù)據(jù)按照逆時(shí)針排列對(duì)應(yīng)的角度分別為-45,-44.5,-44,…,224,224.5,225,將數(shù)據(jù)變換為十進(jìn)制為 686,709,709,…,3216,3182,3196,對(duì)應(yīng)的一共有541個(gè)數(shù)據(jù)值。
Labview 8.6包含了基于TCP/IP協(xié)議的讀取范例,具體路徑為瀏覽/任務(wù)方式,范例列表中打開(kāi)網(wǎng)絡(luò)/TCP&UDP,其中可以在 TCP Communicator-Active.vi基礎(chǔ)上進(jìn)行修改,其流程圖如圖4所示,其對(duì)應(yīng)的前面板如圖5所示。按照?qǐng)D5的前面板的輸入,執(zhí)行這個(gè)程序,在 Their Response中就能得到當(dāng)前時(shí)刻激光測(cè)距儀的數(shù)據(jù),其表示為十六進(jìn)制,如圖3。
圖3 基于TCP/IP協(xié)議的LMS100激光測(cè)距儀數(shù)據(jù)讀取
但上述方法的數(shù)據(jù)采集只能單次運(yùn)行,在機(jī)器人導(dǎo)航中需要對(duì)激光測(cè)距儀進(jìn)行連續(xù)的讀取,因此對(duì)上述Labview程序進(jìn)行改進(jìn),改進(jìn)的要點(diǎn)如下:
(1)可實(shí)時(shí)讀取激光測(cè)距儀;
(2)通過(guò)加權(quán)平均的方法,考慮到周期因素,取3次加權(quán)取平均的方法;
(3)對(duì)十六進(jìn)制轉(zhuǎn)十進(jìn)制進(jìn)行優(yōu)化,提供轉(zhuǎn)換效率。
經(jīng)過(guò)對(duì)以上3點(diǎn)的改進(jìn),得到新的程序流程圖如圖6所示。其中數(shù)據(jù)輸入對(duì)應(yīng)的是十六進(jìn)制請(qǐng)求指令,而數(shù)據(jù)輸出為1幀激光測(cè)距儀的數(shù)據(jù),其表示十六進(jìn)制需轉(zhuǎn)換成十進(jìn)制,通過(guò)對(duì)圖7的2個(gè)控件進(jìn)行配置,可以較高效率的轉(zhuǎn)換成十進(jìn)制數(shù)。其中前面控件把十進(jìn)制字符串提取為數(shù)組,后控件把十六進(jìn)制數(shù)值轉(zhuǎn)換為十進(jìn)制數(shù)值。通過(guò)外面While循環(huán),對(duì)3次數(shù)值進(jìn)行了加權(quán)取平均,對(duì)激光測(cè)距儀的數(shù)據(jù)漂移問(wèn)題進(jìn)行了改進(jìn)。
圖6 改進(jìn)的激光測(cè)距儀程序的程序流程圖
圖7 十六進(jìn)制轉(zhuǎn)換十進(jìn)制控件
通過(guò)上述的改進(jìn),經(jīng)過(guò)測(cè)算,激光測(cè)距儀1個(gè)周期數(shù)據(jù)讀取只需要20m s,而串口讀取需要100 ms左右。在編程效率上,通過(guò) Labview實(shí)現(xiàn)只需要1 d時(shí)間。
本文對(duì)基于TCP/IP接口的激光測(cè)距儀數(shù)據(jù)讀取原理和方法進(jìn)行了介紹,并在Labview平臺(tái)上進(jìn)行了實(shí)現(xiàn),并就實(shí)時(shí)性傳輸進(jìn)行了改進(jìn),實(shí)踐表明通過(guò)Labview平臺(tái),提高了編程效率,節(jié)省了開(kāi)發(fā)的時(shí)間。
[1] 董再勵(lì),王光輝,田彥濤,等.自主移動(dòng)機(jī)器人激光全局定位系統(tǒng)研究[J].機(jī)器人,2000,22(5):207-210.
[2] 鄭 宏,王景川,陳衛(wèi)東.基于地圖的移動(dòng)機(jī)器人自定位與導(dǎo)航系統(tǒng)[J].機(jī)器人,2007,29(4):397-402.
[3] 慕延華,尹怡欣,涂序彥,等.新的室內(nèi)移動(dòng)機(jī)器人的實(shí)時(shí)定位和運(yùn)動(dòng)規(guī)劃方法[J].計(jì)算機(jī)應(yīng)用研究,2007,24(8):106-108.
[4] 楊樂(lè)平,李海濤,楊 磊.Labview程序設(shè)計(jì)與應(yīng)用[M].第 2版.北京:電子工業(yè)出版社,2005.