概覽 由美國(guó)國(guó)家儀器公司工程師搭建的演示平臺(tái)NIRo是一種小型的無(wú)人地面車(chē)輛,它的組件都是從當(dāng)?shù)厣痰曛匈?gòu)買(mǎi)的商用現(xiàn)貨。控制系統(tǒng)在集成了 FPGA和實(shí)時(shí)處理器的NI Single-Board RIO嵌入式平臺(tái)上實(shí)現(xiàn)。 部件概述 NIRo實(shí)現(xiàn)高效導(dǎo)航和避障需要幾個(gè)關(guān)鍵硬件組件: 嵌入式控制器 – 用于傳感器數(shù)據(jù)采集、決策和電機(jī)控制。 紅外線傳感器 – 用于探測(cè)機(jī)器人平臺(tái)兩側(cè)和后方一定距離內(nèi)的目標(biāo)。 超聲波傳感器 – 用于探測(cè)機(jī)器人前方的目標(biāo),因?yàn)榍胺礁采w了較大的區(qū)域。 H橋 – 用于控制電池至電機(jī)的電流方向,使電機(jī)前進(jìn)或后退。 圖1顯示了每個(gè)硬件組件在NIRo上的位置。表1提供了詳細(xì)的部件列表。 圖 1. NIRo硬件框圖 表1.部件列表
系統(tǒng)概述 NIRo的軟件構(gòu)架同時(shí)采用了底層和高層控制。避障和傳感器數(shù)據(jù)解析等高級(jí)任務(wù)在嵌入式實(shí)時(shí)控制器上執(zhí)行。避障算法使用IR和超聲波傳感器的測(cè)量數(shù)據(jù)來(lái)決定該如何根據(jù)周?chē)沫h(huán)境進(jìn)行導(dǎo)航。 NIRo還包括電機(jī)的底層控制,該控制在FPGA上實(shí)現(xiàn)。根據(jù)避障算法獲得的結(jié)果,F(xiàn)PGA通過(guò)數(shù)字I/O線路輸出脈沖寬度調(diào)制(PWM)信號(hào)來(lái)控制電機(jī)。實(shí)時(shí)處理器與FPGA之間的數(shù)據(jù)傳輸通過(guò)LabVIEW內(nèi)置的FPGA接口功能來(lái)完成。 NIRo軟件構(gòu)架中的主要軟件組件包括: * 避障算法 * 電機(jī)控制(PWM) NIRo的軟件構(gòu)架可見(jiàn)圖2。IR傳感器與NI Single-Board RIO設(shè)備上內(nèi)建的模擬通道連接,超聲波傳感器與內(nèi)建的數(shù)字線路連接。電機(jī)與H橋連接,H橋再通過(guò)數(shù)字I/O連接到NI Single-Board RIO設(shè)備上。 圖 2. 在NI Single-Board RIO平臺(tái)上實(shí)現(xiàn)NIRo的軟件構(gòu)架 避障 在避障過(guò)程中NIRo監(jiān)視從IR和超聲波傳感器獲得的值。如果從傳感器獲得的值顯示有物體接近,NIRo將按照自身與障礙物距離成比例的速率轉(zhuǎn)彎。也就是說(shuō),障礙物與NIRo的距離越近,轉(zhuǎn)彎的速度越快。 圖3的控制框圖說(shuō)明了以上問(wèn)題。障礙物與NIRo之間設(shè)置了一個(gè)預(yù)期最小距離。機(jī)器人與障礙物之間的距離小于該距離時(shí)會(huì)及時(shí)轉(zhuǎn)彎。機(jī)器人會(huì)考慮預(yù)期最小距離與物體真實(shí)距離的差值與傳感器測(cè)量到的真實(shí)距離的比例。 圖 3. 用于避障的控制框圖 避障算法的實(shí)現(xiàn)代碼可見(jiàn)圖4。值得注意的是,與圖3類(lèi)似,障礙物與NIRo之間的真實(shí)距離用來(lái)與最小預(yù)期距離進(jìn)行比較。還要注意圖4中case結(jié)構(gòu)與圖3中的避障框圖類(lèi)似。 PID.vi的輸出用于向電機(jī)發(fā)出指令,使NIRo避開(kāi)附近的障礙物。 圖4. 用于避障的LabVIEW代碼 電機(jī)控制(PWM) 避障算法的輸出控制每個(gè)電機(jī)PWM信號(hào)的占空比。舉例來(lái)說(shuō),如果NIRo未在行進(jìn)路徑上探測(cè)到任何障礙物,它將向FPGA發(fā)送數(shù)據(jù)告訴電機(jī)向前行進(jìn)。這可通過(guò)向所有電機(jī)發(fā)送相同的占空比來(lái)實(shí)現(xiàn)。如果NIRo需要轉(zhuǎn)向,每個(gè)電機(jī)收到的PWM信號(hào)占空比將不同。 實(shí)時(shí)控制器將占空比指令發(fā)送給FPGA。在FPGA上,占空比指令被轉(zhuǎn)換成可被H橋使用的數(shù)字指令。每個(gè)H橋得到4個(gè)數(shù)字信號(hào),4個(gè)數(shù)字信號(hào)結(jié)合確定了電池至電機(jī)的電流方向。根據(jù)發(fā)送到H橋的數(shù)字信號(hào)指揮電機(jī)前進(jìn)、后退或不動(dòng)。 總結(jié) 盡管NIRo是小型的地面機(jī)器人,它用到的許多傳感器、算法和技術(shù)與大型的更復(fù)雜的機(jī)器人相同。通過(guò)LabVIEW Real-Time、LabVIEW FPGA及NI Single-Board RIO,開(kāi)發(fā)人員能夠輕松集成硬件和軟件,快速設(shè)計(jì)、開(kāi)發(fā)和發(fā)布算法。高層決策算法及底層電機(jī)控制都可以在同一個(gè)平臺(tái)上實(shí)現(xiàn)。通過(guò)集成可購(gòu)買(mǎi)到的商用現(xiàn)貨以及使用高級(jí)圖形化編程語(yǔ)言,您可以極大地降低自主機(jī)器人開(kāi)發(fā)的復(fù)雜性。 |