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