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