《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 機器人技術(shù)基礎(chǔ)系列:規(guī)劃與導(dǎo)航
機器人技術(shù)基礎(chǔ)系列:規(guī)劃與導(dǎo)航
摘要: 自主移動機器人的規(guī)劃與導(dǎo)航包括利用有目的的抉擇制定和執(zhí)行來使系統(tǒng)實現(xiàn)最高級的目標(biāo)。機器人是否勝任導(dǎo)航的能力必須通過兩個技能來證明:路徑規(guī)劃和避障。
Abstract:
Key words :

概覽

自主移動機器人的規(guī)劃與導(dǎo)航包括利用有目的的抉擇制定和執(zhí)行來使系統(tǒng)實現(xiàn)最高級的目標(biāo)。機器人是否勝任導(dǎo)航的能力必須通過兩個技能來證明:路徑規(guī)劃和避障。

目錄

  1. ni.com/devzone/cda/tut/p/id/10842#toc0">路徑規(guī)劃
  2. 避障
  3. 在中LabVIEW使用算法

路徑規(guī)劃

給定地圖和目的地情況下的路徑規(guī)劃指的是機器人通過軌跡識別行進至目的地的能力。路徑規(guī)劃是至關(guān)重要的問題解決能力,因為機器人必須有能力決定在到達目的地前的路程中如何行進。

路徑規(guī)劃可分為兩部分:表達與算法。路徑規(guī)劃人員首先將機器人環(huán)境轉(zhuǎn)化為適合路徑規(guī)劃的形式。一些常用的技術(shù)包括廣義的Voronoi圖、規(guī)則網(wǎng)格和四叉樹。路徑規(guī)劃算法通??捎糜趲缀跛信渲每臻g的表達,雖然某些方法會更適合特定表達。圖1展示了LabVIEW中繪制的Voronoi圖。

1.LabVIEW中的Voronoi圖

由于多數(shù)表達可轉(zhuǎn)換為圖表,初始節(jié)點和目標(biāo)節(jié)點之間的路徑可通過圖搜索算法來計算。圖搜索算法被計算機科學(xué)充分理解,然而,許多算法要求程序訪問圖上的每個節(jié)點,以此來決定初始節(jié)點和目標(biāo)節(jié)點間的最短路徑。對于松連通圖來說,訪問每個節(jié)點是容易計算的,如Voronoi 圖;但對于緊連通圖來說計算開銷迅速變大,如規(guī)則網(wǎng)格圖。

避障

路徑規(guī)劃人員僅考慮預(yù)先知道的環(huán)境障礙。在路徑執(zhí)行中可能由于地圖精度或動態(tài)環(huán)境等因素,造成機器人真實傳感器的值與預(yù)期值之間存在差異。因此,機器人必須能根據(jù)真實傳感器的值實時改變運動路徑。這正是避障能力重要的原因。一些通用的避障方法包括Bug算法、VFH算法。

Bug算法

一種直接的路徑規(guī)劃方法是沿機器人行進路線中每個障礙的輪廓繞行。Bug1算法中,機器人完全沿障礙物輪廓環(huán)繞,并在到達離目標(biāo)地點最近的點時分離。這種方法效率低,但能確保機器人到達任何可到達的目標(biāo)。Bug2算法中,機器人先沿障礙物輪廓行進,當(dāng)達到可直達目標(biāo)地點的位置時立刻分離。Bug2算法顯著縮短了機器人的行進路程,但仍不是最優(yōu)的。

VFH算法

Bug算法的一個限制是機器人每一刻的行為一般為傳感器最近時刻讀數(shù)的函數(shù)。這就可能導(dǎo)致機器人的瞬時傳感器讀數(shù)不能為穩(wěn)定的避障能力提供足夠的信息。VFH技術(shù)通過創(chuàng)建機器人周圍環(huán)境的地圖克服了該限制。在避障時生成極坐標(biāo)柱狀圖來確定轉(zhuǎn)向。首先,識別能夠讓機器人通過的所有通道。然后,執(zhí)行考慮目標(biāo)方向、輪方向和前一刻方向的代價函數(shù)。


2.LabVIEW VI的前面板運行VFH避障算法

在中LabVIEW使用算法

通過LabVIEW用戶可選擇最有效的語法來開發(fā)算法,或使用內(nèi)置工具來導(dǎo)入其它基于文本語言寫的算法。繼承代碼中已有的搜索算法及其它機器人庫可輕松導(dǎo)入LabVIEW、LabVIEW Real-Time和LabVIEW FPGA中。

調(diào)用函數(shù)庫節(jié)點

LabVIEW用戶可利用調(diào)用庫函數(shù)節(jié)點在Windows機器和實時嵌入式控制器中調(diào)用DLL。該節(jié)點用于在LabVIEW中創(chuàng)建調(diào)用專為LabVIEW編寫的已有庫或新庫的接口。下圖的調(diào)用庫函數(shù)節(jié)點輸入4個字節(jié)的浮點數(shù),并輸出其平方值。

3.調(diào)用函數(shù)庫節(jié)點可在LabVIEW中用于導(dǎo)入繼承代碼

也可參閱:

概述LabVIEW中的DLL訪問或庫共享

使用導(dǎo)入共享庫向?qū)ЬC合外部代碼

公式節(jié)點

公式節(jié)點可用于LabVIEW和LabVIEW Real-Time中的算法開發(fā)。公式節(jié)點是一種簡單的基于文本語言的節(jié)點,用于在LabVIEW框圖中執(zhí)行數(shù)學(xué)操作。用戶無需連接任何外部代碼或應(yīng)用,也無需連接低級算法函數(shù)來創(chuàng)建等式。除了基于文本的等式表達,公式節(jié)點還能接受基于文本版的if聲明、while循環(huán)、for循環(huán)和do循環(huán),這些都是C 語言用戶所熟悉的。

 

 

4.公式節(jié)點采用類似C語言的語法

公式節(jié)點對于包含許多變量或非常復(fù)雜的等式,以及使用已有的基于文本的代碼來說很有用。用戶可將已有的基于文本的代碼復(fù)制、粘貼到公式節(jié)點中,避免了重新創(chuàng)建圖形代碼的麻煩。

也可參閱:

指南:Mathscript和公式節(jié)點
練習(xí):Mathscript和公式節(jié)點
視頻:Mathscript和公式節(jié)點

HDL節(jié)點

HDL接口節(jié)點允許用戶在LabVIEW FPGA中綜合硬件描述語言(HDL)寫的算法或應(yīng)用。用戶可以直接在HDL接口節(jié)點中輸入HDL代碼,或引用外部HDL文件,下圖的例子中,HDL輸入節(jié)點包括了VHDL代碼,將兩個32比特數(shù)字相加并返回結(jié)果。

5.HDL節(jié)點允許用于向LabVIEW FPGA中導(dǎo)入HDL代碼

也可參閱:

HDL接口節(jié)點FAQ
使用HDL接口節(jié)點向FPGA VI中導(dǎo)入HDL代碼
使用HDL接口節(jié)點在LabVIEW FPGA中綜合IP核

了解更多關(guān)于機器人技術(shù),可參閱機器人技術(shù)基礎(chǔ)系列主頁ni.com/zone。

目前NI已全面推出LabVIEW Robotics 2009,用于自主地面機器人系統(tǒng)的設(shè)計、原型與發(fā)布,更多信息請訪問www.ni.com/robotics/zhs。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。