日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Nav2中文网】三、导航相关概念

發(fā)布時間:2024/3/13 编程问答 106 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Nav2中文网】三、导航相关概念 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 本教程來自:Nav2中文網(wǎng)
  • Nav2交流社區(qū):https://fishros.org.cn/forum
  • ROS2/Nav2千人交流群:(QQ)139707339
  • 更多精彩教程請關(guān)注微信公眾號:魚香ROS
  • 歡迎添加機(jī)器人小伊微信,解鎖機(jī)器人學(xué)習(xí)特殊服務(wù)

導(dǎo)航相關(guān)概念?

本節(jié)旨在幫助學(xué)習(xí)機(jī)器人的新手熟悉移動機(jī)器人導(dǎo)航的概念,尤其是了解和使用Nav2 項(xiàng)目所需的概念。 [haisenzeng@2]

ROS 2?

Nav2使用ROS2作為核心中間件。如果您對此不熟悉,請?jiān)诶^續(xù)閱讀本文檔前訪問 ROS2文檔 ,對于國內(nèi)用戶推薦看看小魚的 `動手學(xué)ROS2課程文

動作服務(wù)器(Action Server)?

動作服務(wù)器就像在ROS中一樣是控制導(dǎo)航等長時間運(yùn)行任務(wù)的常見方式。Nav2軟件堆棧更廣泛地使用動作(通信機(jī)制),并且在某些情況下會缺乏簡單的話題接口。作為ROS 2的開發(fā)人員,了解動作服務(wù)器尤為重要。一些簡單的機(jī)器人命令(CLI)示例可以在 ROS 2 documementation 中找到。 [haisenzeng@6]

這個Action服務(wù)器類似于服務(wù)通信中的Service。客戶端會要求服務(wù)端完成一些任務(wù),但此任務(wù)可能需要很長時間。比如說:移動推土機(jī)的鏟子或者讓機(jī)器人向右移動10米。 [小魚@7]

在這種情況下,動作服務(wù)器和客戶端允許我們在另一個進(jìn)程或線程中調(diào)用長時間運(yùn)行的任務(wù),并為其結(jié)果返回一個future對象。此時允許阻塞線程直到動作完成,但是,用戶可能希望偶爾檢查動作是否完成并繼續(xù)在客戶端線程中處理工作。由于是長時間運(yùn)行的,動作服務(wù)器也會向其客戶端提供反饋。該反饋可以是任何東西,并且在ROS中使用具有請求和結(jié)果類型的.action文件定義。在推土機(jī)示例中,請求可以是一個角度,反饋可以是要移動的剩余角度,而結(jié)果則是以結(jié)束角度表示的成功或失敗的布爾值。在導(dǎo)航示例中,請求可能是一個位姿,反饋可能是已導(dǎo)航的時間和到達(dá)目標(biāo)位姿的距離,而結(jié)果則是以成功或失敗表示的布爾值。 [haisenzeng@8]

通過向Action客戶端注冊回調(diào)函數(shù),可以同步的收到反饋和結(jié)果。它們也可以通過無意識地從shared future對象中的require信息來獲取。兩者都需要對客戶端節(jié)點(diǎn)進(jìn)行spin來處理回調(diào)組。 [小魚@9]

在Nav2軟件堆棧中使用動作服務(wù)器通過 NavigateToPose 動作消息與最高級別的行為樹BT導(dǎo)航儀(Navigator)進(jìn)行通信。它們還用于行為樹BT導(dǎo)航儀與后續(xù)較小的動作服務(wù)器通信,以計(jì)算路徑規(guī)劃、控制工作和恢復(fù)。每個動作服務(wù)器都有自己獨(dú)特的 nav2_msgs 格式的 .action 類型,用于與服務(wù)器進(jìn)行交互。 [haisenzeng@10]

生命周期節(jié)點(diǎn)和綁定?

生命周期 (或被管理的,更正確的) 節(jié)點(diǎn)是ROS 2獨(dú)有的。更多信息可以是 在這里 。它們是包含狀態(tài)機(jī)轉(zhuǎn)換的用于加載和卸載ROS 2服務(wù)器的節(jié)點(diǎn)。這有助于確定ROS系統(tǒng)啟動和關(guān)閉的狀態(tài)是否正常。它還幫助用戶根據(jù)實(shí)際用途(商業(yè)或調(diào)試)以合理的方式構(gòu)建他們的程序, [小魚@12]

當(dāng)一個節(jié)點(diǎn)啟動時,它處于未配置狀態(tài),只處理節(jié)點(diǎn)的構(gòu)造函數(shù),該構(gòu)造函數(shù)不應(yīng)包含任何 ROS 網(wǎng)絡(luò)設(shè)置或參數(shù)讀取。通過啟動系統(tǒng)或提供的生命周期管理器,需要通過配置將節(jié)點(diǎn)轉(zhuǎn)換為非活動狀態(tài)。之后,可以通過激活階段的轉(zhuǎn)換來激活節(jié)點(diǎn)。 [haisenzeng@13]

這種狀態(tài)將允許節(jié)點(diǎn)處理信息,并完全設(shè)置為運(yùn)行狀態(tài)。在配置階段,觸發(fā) on_configure() 方法,將設(shè)置所有參數(shù)、ROS網(wǎng)絡(luò)接口,以及安全系統(tǒng),所有動態(tài)內(nèi)存的分配。在激活階段、觸發(fā) on_activate() 方法的將激活ROS網(wǎng)絡(luò)接口,并設(shè)置程序中的任何狀態(tài)以開始處理信息。 [小魚@14]

要關(guān)閉(該節(jié)點(diǎn))即過渡到停用需要清理、關(guān)閉,并以最終狀態(tài)結(jié)束。網(wǎng)絡(luò)接口分別在這些階段被停用并停止處理、釋放內(nèi)存、干凈地退出。 [haisenzeng@15]

生命周期節(jié)點(diǎn)框架在整個項(xiàng)目中被廣泛使用,所有服務(wù)器都使用它。如果可能的話,所有ROS系統(tǒng)最好使用生命周期節(jié)點(diǎn)。 [小魚@16]

在Nav2中,我們使用 nav2_util LifecycleNode 的包裝器。這種包裝包裝了典型應(yīng)用的生命周期節(jié)點(diǎn)的許多復(fù)雜性。它還包括生命周期管理器的連接 bond ,以確保服務(wù)器轉(zhuǎn)換后,它也保持活動狀態(tài)。如果服務(wù)器崩潰,它會讓生命周期管理器知道并向下過渡系統(tǒng),以防止嚴(yán)重故障。詳見 Eloquent到Foxy [小魚@729] 。 [haisenzeng@17]

行為樹?

行為樹 (BT) 在復(fù)雜的機(jī)器人任務(wù)中變得越來越普遍。它們是待完成任務(wù)的樹形結(jié)構(gòu)。行為樹為定義多步或多狀態(tài)應(yīng)用程序創(chuàng)建了一個更具可擴(kuò)展性和人類可理解性的框架。這與有限狀態(tài)機(jī) (FSM) 相反,后者可能有幾十個狀態(tài)和數(shù)百個狀態(tài)過渡。一個例子就是踢足球機(jī)器人。將足球比賽的邏輯嵌入FSM將具有挑戰(zhàn)性,且容易出錯因?yàn)橛性S多可能的狀態(tài)和規(guī)則。此外,像從左側(cè)、右側(cè)或中間射門這樣的建模選擇尤其不清楚。使用行為樹則可以為許多行為創(chuàng)建和重用基本原語,像 “kick” “walk” “go to ball” 。更多信息可以在 這本書 找到。強(qiáng)烈建議閱讀第1-3章,以更好地理解術(shù)語和工作流程。大約需要30分鐘。 [小魚@19]

Nav2項(xiàng)目使用 BehaviorTree CPP V3 作為行為樹庫。在 BT Navigator 中,創(chuàng)建了可以構(gòu)建為行為樹的節(jié)點(diǎn)插件。將節(jié)點(diǎn)插件加載到BT中,并且在解析該行為樹的XML文件時,將關(guān)聯(lián)注冊的名稱。此時,我們可以通過該行為樹進(jìn)行導(dǎo)航。 [haisenzeng@20]

使用此庫的一個原因是它能夠加載子樹。這意味著可以將Nav2行為樹加載到另一個更高級別的BT中,以將此項(xiàng)目用作節(jié)點(diǎn)插件。一個例子是在足球比賽中,使用Nav2行為樹作為 “go to ball” 節(jié)點(diǎn),將足球檢測作為更大任務(wù)的一部分。此外,為BT提供了一個 NavigateToPoseAction 插件,因此可以從客戶端應(yīng)用程序通過通常的動作接口調(diào)用Nav2軟件堆棧。 [haisenzeng@21]

導(dǎo)航服務(wù)器?

規(guī)劃器和控制器是導(dǎo)航任務(wù)的核心。恢復(fù)器用于使機(jī)器人擺脫不良狀態(tài)或嘗試處理各種形式的問題,以使系統(tǒng)具有容錯能力。在本節(jié)中,將分析有關(guān)它們的一般概念及其在Nav2項(xiàng)目中的用途。 [haisenzeng@23]

規(guī)劃器,控制器和恢復(fù)服務(wù)器 [haisenzeng@24]?

該項(xiàng)目中的三個動作服務(wù)器是規(guī)劃器、恢復(fù)器和控制器服務(wù)器。這些動作服務(wù)器用于托管一個地圖算法插件,以完成各種任務(wù)。它們還托管由該算法插件使用的環(huán)境表達(dá),以計(jì)算其輸出。 [haisenzeng@25]

這個規(guī)劃器和控制器服務(wù)器將在運(yùn)行時配置名稱 (別名) 和要使用的算法類型。這些類型是已注冊的插件庫名稱,這些名稱是任務(wù)的別名。一個例子是使用名稱為 FollowPath 的DWB控制器,因?yàn)樗裱瓍⒖悸窂健T谶@種情況下,DWB的所有參數(shù)都將放置在該命名空間中,例如 FollowPath. 。 [haisenzeng@26]

然后,這兩個服務(wù)器會公開與其任務(wù)相對應(yīng)的操作接口。當(dāng)行為樹勾選相應(yīng)的BT節(jié)點(diǎn)時,它將調(diào)用操作服務(wù)器來處理其任務(wù)。該服務(wù)器內(nèi)部的動作服務(wù)器回調(diào)將通過映射到特定算法的名稱 (例如 FollowPath ) 來調(diào)用所選算法。這允許用戶將行為樹中使用的算法抽象為算法類。例如,你可以讓 N 插件控制器跟隨路徑,與充電器對接,避開動態(tài)障礙物,或與某個工具進(jìn)行交互。在同一服務(wù)器中擁有所有這些插件允許用戶使用單個環(huán)境表達(dá)對象,因?yàn)樵搶ο蟮膹?fù)制成本很高。 [haisenzeng@27]

對于恢復(fù)服務(wù)器,每個恢復(fù)也包含自己的名稱,但是,每個插件也將公開其自己的特殊操作服務(wù)器。這樣做是因?yàn)榭梢詣?chuàng)建的各種恢復(fù)動作無法共享單個簡單的接口。恢復(fù)器服務(wù)器還包含一個訂閱本地成本地圖的成本地圖訂閱者節(jié)點(diǎn),該節(jié)點(diǎn)會從控制器服務(wù)器接收實(shí)時更新以計(jì)算其任務(wù)。這樣做是為了避免為本地成本地圖創(chuàng)建多個實(shí)例,因?yàn)閺?fù)制本地成本地圖在計(jì)算上是昂貴的。 [haisenzeng@28]

或者,由于BT節(jié)點(diǎn)是調(diào)用操作的簡單插件,因此可以創(chuàng)建新的BT節(jié)點(diǎn)來調(diào)用具有其他操作類型的其他動作服務(wù)器。如果可能的話,建議始終使用提供的服務(wù)器。如果由于插件或動作接口的原因,需要一個新的服務(wù)器,則可以通過該框架來維持。類似于提供的服務(wù)器,新服務(wù)器應(yīng)使用新類型和插件接口。需要創(chuàng)建一個新的BT節(jié)點(diǎn)插件來調(diào)用新的操作服務(wù)器 – 然而,通過廣泛使用服務(wù)器和插件,Nav2存儲庫本身不需要分叉或修改。 [haisenzeng@29]

如果您發(fā)現(xiàn)需要一個新的插件庫定義或動作類型接口,請?zhí)峤还?#xff0c;看看我們是否可以在相同的接口中糾正它。 [haisenzeng@30]

Planners?

規(guī)劃器的任務(wù)是計(jì)算完成一些目標(biāo)函數(shù)的路徑。根據(jù)所選的命名法和算法,該路徑也可以稱為路線。兩個典型示例是計(jì)算一個到達(dá)目標(biāo)位姿的規(guī)劃(例如從當(dāng)前位置到達(dá)一個目標(biāo)位姿)或者完全覆蓋(例如覆蓋所有空閑空間的規(guī)劃)。規(guī)劃器可以訪問全局環(huán)境表達(dá)和緩存在其中的傳感器數(shù)據(jù)。規(guī)劃器可以被編寫為具有以下功能的工具: [haisenzeng@32]

  • 計(jì)算最短路徑
  • 計(jì)算完整覆蓋路徑 [待校準(zhǔn)@34]
  • 沿稀疏或預(yù)定義路線計(jì)算路徑 [haisenzeng@35]

Nav2中規(guī)劃器的一般任務(wù)是計(jì)算從當(dāng)前位置到達(dá)目標(biāo)位姿的一個有效且可能是最佳的路徑。但是,有許多受支持的規(guī)劃類和路線類。 [haisenzeng@36]

Controllers?

控制器,在ROS 1中也被稱為局部規(guī)劃器,是我們跟隨全局計(jì)算路徑或完成局部任務(wù)的方法。控制器有權(quán)訪問局部環(huán)境表達(dá),以嘗試計(jì)算要跟隨的基準(zhǔn)路徑的可行控制工作。許多控制器會將機(jī)器人向前投射到空間中,并在每次更新迭代時計(jì)算局部可行路徑。控制器可以被編寫為具有以下功能的工具: [haisenzeng@38]

  • 跟隨路徑 [haisenzeng@39]
  • 使用里程作為與充電樁對接時的參考數(shù)據(jù) [小魚@40]
  • 登上電梯
  • 與某個工具的接口 [haisenzeng@42]

在Nav2中,控制器的一般任務(wù)是計(jì)算一個有效的控制工作以跟隨全局規(guī)劃路徑。然而,有多個控制器類和局部規(guī)劃器類。Nav2項(xiàng)目的目標(biāo)就是所有控制器算法都可以作為此服務(wù)器中的插件,以用于一般研究和產(chǎn)業(yè)任務(wù)中。 [haisenzeng@43]

恢復(fù)器 [haisenzeng@44]?

恢復(fù)器是容錯系統(tǒng)的支柱。恢復(fù)器的目標(biāo)是處理系統(tǒng)的未知狀況或故障狀況并自主處理這些狀況。例子包括感知系統(tǒng)中會導(dǎo)致環(huán)境表達(dá)充滿假障礙物的故障。這樣就會觸發(fā)清除成本地圖恢復(fù)以允許機(jī)器人移動。 [haisenzeng@45]

另一個例子就是機(jī)器人由于動態(tài)障礙物或控制不佳而卡住。在允許的情況下,倒退或原地旋轉(zhuǎn)會允許機(jī)器人從卡住的位置移動到可以成功進(jìn)行導(dǎo)航的自由空間中。 [haisenzeng@46]

最后,在完全故障的情況下,可以實(shí)施恢復(fù)以引起操作員的注意以尋求幫助。這可以通過電子郵件、短信、Slack、Matrix等來完成。 [小魚@47]

航點(diǎn)跟隨 [haisenzeng@48]?

航點(diǎn)跟隨是導(dǎo)航系統(tǒng)的基本功能之一。它會告知系統(tǒng)如何使用導(dǎo)航程序到達(dá)多個目的地。 [haisenzeng@49]

nav2_waypoint_follower 軟件包含一個航路點(diǎn)跟蹤程序,該程序具有特定任務(wù)執(zhí)行程序的插件接口。如果需要讓機(jī)器人前往給定位姿并完成像拍照、撿起盒子或等待用戶輸入之類的特定任務(wù),這會非常有用。這是一個用于展示如何在示例應(yīng)用程序中使用Nav2的不錯的演示應(yīng)用程序。 [haisenzeng@50]

但是,該軟件包不僅可以用于示例應(yīng)用程序。關(guān)于機(jī)器人隊(duì)管理器/調(diào)度器有兩種思想流派:啞機(jī)器人+智能集中式調(diào)度器;智能機(jī)器人+啞集中式調(diào)度器。 [haisenzeng@51]

在第一種思想中, nav2_waypoint_follower 軟件包足以創(chuàng)造一個產(chǎn)品級的機(jī)器人解決方案。由于自主系統(tǒng)/調(diào)度器在分配任務(wù)時會考慮機(jī)器人的姿勢、電池電量、當(dāng)前任務(wù)等因素,機(jī)器人上的應(yīng)用程序只需要關(guān)心手頭的任務(wù),而不用關(guān)心完成系統(tǒng)要求任務(wù)的其他復(fù)雜因素。在這種情況下,應(yīng)該將發(fā)送至航點(diǎn)跟隨者的請求視為1個工作單元(例如,倉庫中的1次揀貨、1個安全巡邏循環(huán)、1個過道等)來執(zhí)行任務(wù),然后返回給調(diào)度器以進(jìn)行下一個任務(wù)或者要求充電。在這種思想流派中,航點(diǎn)跟隨應(yīng)用程序只是導(dǎo)航軟件堆棧之上和系統(tǒng)自主應(yīng)用程序之下的一個步驟。 [haisenzeng@52]

在第二種思想中, nav2_waypoint_follower 軟件包是一個不錯的示例應(yīng)用程序/概念證明,但確實(shí)需要機(jī)器人上的航點(diǎn)跟蹤/自主系統(tǒng)來承擔(dān)更多任務(wù)以制定健壯的解決方案。在這種情況下,應(yīng)該使用 nav2_behavior_tree 軟件包創(chuàng)建自定義應(yīng)用程序級別的行為樹,以使用導(dǎo)航來完成任務(wù)。這可以包含子樹,例如在任務(wù)中檢查充電狀態(tài)以返回停泊塢,或者在更復(fù)雜的任務(wù)中處理1個以上的工作單元。很快,將會有一個 nav2_bt_waypoint_follower (名稱有待調(diào)整),它將允許用戶更容易地創(chuàng)建此應(yīng)用程序。在這個思想流派中,航點(diǎn)跟隨應(yīng)用程序與自主系統(tǒng)的聯(lián)系更加緊密,或者在很多情況下,航點(diǎn)跟隨應(yīng)用程序就是自主系統(tǒng)本身。 [haisenzeng@53]

這兩種思想流派并不能簡單地說誰比誰更好,誰更好很大程度上取決于機(jī)器人正在完成何種任務(wù)、處于何種類型的環(huán)境中以及有何種可用的云資源。通常,對于既定的業(yè)務(wù)案例,這種區(qū)別非常明顯。 [haisenzeng@54]

狀態(tài)估計(jì)?

根據(jù)ROS社區(qū)標(biāo)準(zhǔn),在導(dǎo)航項(xiàng)目中,需要提供兩個主要的坐標(biāo)轉(zhuǎn)換。 map 到 odom 的坐標(biāo)變換由定位系統(tǒng) (定位,建圖,SLAM)提供, odom 到 base_link 的坐標(biāo)轉(zhuǎn)換由里程計(jì)系統(tǒng)提供。 [haisenzeng@56]

注解

無需在機(jī)器人上使用LIDAR即可使用導(dǎo)航系統(tǒng)。不需要使用基于激光雷達(dá)的防撞、定位或SLAM系統(tǒng)。但是,Nav2確實(shí)可以提供說明和支持使用激光雷達(dá)對這些系統(tǒng)進(jìn)行嘗試和真實(shí)實(shí)現(xiàn)。使用基于視覺或深度傳感器的定位系統(tǒng)和使用其他傳感器來避免碰撞可以同樣成功。唯一的要求就是在選擇具體實(shí)現(xiàn)方式時遵循以下標(biāo)準(zhǔn)。 [haisenzeng@57]

Standards?

REP 105 定義了導(dǎo)航和更大的ROS生態(tài)系統(tǒng)所需的框架和約定。應(yīng)始終遵循這些約定,以利用社區(qū)中豐富的定位、里程計(jì)和SLAM項(xiàng)目。 [haisenzeng@59]

簡而言之,REP-105至少必須為機(jī)器人建造一個包含map -> odom -> base_link -> [sensorframes] 的完整 的TF樹。TF2是 ROS 2中的時變坐標(biāo)變換庫,Nav2使用TF2來表達(dá)和獲取時間同步的坐標(biāo)變換。全球定位系統(tǒng) (GPS、SLAM、動作捕捉Motion Capture) 的工作是至少要提供 map-> odom 的坐標(biāo)轉(zhuǎn)換。然后,里程計(jì)系統(tǒng)的作用是提供 odom -> base_link 的坐標(biāo)轉(zhuǎn)化。關(guān)于 base_link 的其余坐標(biāo)轉(zhuǎn)換應(yīng)該是靜態(tài)的,并應(yīng)在 URDF 中定義。 [haisenzeng@60]

全局定位: 定位與SLAM [haisenzeng@61]?

全局定位系統(tǒng) (GPS、SLAM、運(yùn)動捕捉) 的工作是至少提供 map -> odom 的坐標(biāo)轉(zhuǎn)換。Nav2項(xiàng)目提供的 amcl 是一種基于粒子過濾器的自適應(yīng)蒙特卡羅定位技術(shù),用于靜態(tài)地圖的定位。Nav2還提供用于定位和生成靜態(tài)映射的SLAM工具箱作為默認(rèn)的SLAM算法。 [haisenzeng@62]

這些方法還可能產(chǎn)生其他輸出,包括位置話題、地圖或其他元數(shù)據(jù),但它們必須提供該轉(zhuǎn)換才能有效。使用機(jī)器人定位可以將多種定位方法融合在一起,下面將詳細(xì)討論。 [小魚@63]

Odometry?

里程計(jì)系統(tǒng)的作用是提供 odom -> base_link 的坐標(biāo)轉(zhuǎn)換。里程計(jì)可以來自許多數(shù)據(jù)源,包括激光雷達(dá)、車輪編碼器、VIO和IMUs。里程計(jì)的目標(biāo)是提供基于機(jī)器人運(yùn)動的平滑和連續(xù)的局部坐標(biāo)系。全局定位系統(tǒng)會相對全局坐標(biāo)的坐標(biāo)變換進(jìn)行更新,以解決里程計(jì)的漂移問題。 [haisenzeng@65]

這個 Robot Localization 通常用于這種融合。它將采用各種類型的 N 個傳感器,并為TF和話題提供連續(xù)平滑的里程計(jì)。一個典型的移動機(jī)器人裝置可能有來自車輪編碼器或IMUs的里程計(jì)以及融合在這個工作區(qū)內(nèi)的視覺。 [haisenzeng@66]

這樣平滑輸出就可用于精確運(yùn)動的航行位置推算和在全局位置更新之間準(zhǔn)確地更新機(jī)器人的位置。 [haisenzeng@67]

環(huán)境表達(dá) [haisenzeng@68]?

環(huán)境表征是機(jī)器人感知環(huán)境的方式。它還充當(dāng)各種算法和數(shù)據(jù)源的中心定位工具,以將它們的信息組合到一個空間中。這樣,控制器、規(guī)劃器和恢復(fù)器就可以使用該空間來安全有效地計(jì)算它們的任務(wù)。 [haisenzeng@69]

成本地圖和圖層 [haisenzeng@70]?

當(dāng)前的環(huán)境表達(dá)是一個成本地圖。成本地圖是包含來自未知、空閑、占用或膨脹成本的單元格的規(guī)則2D單元格網(wǎng)格。然后搜索該成本地圖以計(jì)算全局計(jì)劃或采樣以計(jì)算局部控制工作。 [haisenzeng@71]

各種成本地圖圖層被實(shí)現(xiàn)為pluginlib插件,以將信息緩沖到成本地圖中。這包括來自LIDAR、RADAR、聲納、深度傳感器、圖像傳感器等的信息。最好在傳感器數(shù)據(jù)輸入到層本地圖之前進(jìn)行處理,但這取決于開發(fā)人員。 [haisenzeng@72]

可以使用相機(jī)或深度傳感器創(chuàng)建代價地圖層來檢測和跟蹤場景中的障礙物,以避免碰撞。此外,可以創(chuàng)建層來基于一些規(guī)則或啟發(fā)式算法來改變基礎(chǔ)成本圖。最后,它們可用于將實(shí)時數(shù)據(jù)緩沖到2D或3D世界中,以進(jìn)行障礙物的二值化標(biāo)記。 [haisenzeng@73]

成本地圖過濾器 [haisenzeng@74]?

想象一下,您正在注釋地圖文件 (或任何圖像文件),以便根據(jù)注釋地圖中的位置執(zhí)行特定操作。記/注釋的示例可以是將某些區(qū)域排除在外以避免在這些區(qū)域內(nèi)進(jìn)行路徑規(guī)劃,或者讓某些像素屬于標(biāo)記區(qū)域中的最大速度。這種帶注釋的地圖被稱為 “filter mask” 。就像覆蓋在某個表面上的掩碼一樣,過濾器掩碼的大小、位置和比例尺可以與主地圖相同,也可以不同。過濾器掩碼的主要目標(biāo)是提供在地圖上進(jìn)行標(biāo)記的能力,以標(biāo)記具有某些附加功能或行為變化的區(qū)域。 [haisenzeng@75]

成本地圖過濾器是基于成本地圖圖層的方法,可以將過濾器掩碼中注釋的空間相關(guān)行為變化應(yīng)用到Nav2軟件堆棧中。成本地圖過濾器是作為成本地圖插件實(shí)現(xiàn)的。這些插件之所以被稱為 “filters” ,是因?yàn)樗鼈儠ㄟ^過濾器掩碼上標(biāo)記的空間注釋對成本地圖進(jìn)行過濾。為了制作過濾后的成本地圖并改變機(jī)器人在注釋區(qū)域的行為,過濾器插件會讀取來自過濾器掩碼的數(shù)據(jù)。該數(shù)據(jù)在過濾器空間中被線性變換為特征圖。有了這個變換后的特征圖以及地圖/成本地圖、任何傳感器數(shù)據(jù)和機(jī)器人當(dāng)前坐標(biāo),過濾器就可以更新底層成本地圖,并根據(jù)機(jī)器人的位置改變機(jī)器人的行為。例如,通過使用成本地圖過濾器可以實(shí)現(xiàn)以下功能: [haisenzeng@76]

  • 機(jī)器人永遠(yuǎn)不會進(jìn)入的禁區(qū)/安全區(qū)。 [haisenzeng@77]
  • Speed restriction areas. Maximum speed of robots going inside those areas will be limited.
  • 機(jī)器人在工業(yè)環(huán)境和倉庫中移動的首選通道。 [haisenzeng@79]

Other Forms?

存在各種其他形式的環(huán)境表征。包括: [haisenzeng@81]

  • 梯度圖,類似于成本地圖,但梯度圖會表達(dá)表面梯度以檢查可穿越性 [haisenzeng@82]
  • 3D成本圖,以3D形式表示空間,但這樣就也需要3D規(guī)劃和碰撞檢測 [haisenzeng@83]
  • 網(wǎng)格圖,類似于梯度圖,但具有多個角度的表面網(wǎng)格 [haisenzeng@84]
  • “Vector space” ,接收傳感器信息并使用機(jī)器學(xué)習(xí)算法來檢測要跟蹤的單個物品和位置,而不是對離散點(diǎn)進(jìn)行緩沖區(qū)計(jì)算。。 [haisenzeng@85]

Nav2學(xué)術(shù)概述?

  • 本文主要校準(zhǔn)貢獻(xiàn):haisenzeng
  • 本文遵循知識共享協(xié)議,禁止未授權(quán)商用轉(zhuǎn)載

總結(jié)

以上是生活随笔為你收集整理的【Nav2中文网】三、导航相关概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。