衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS編寫參數(shù)配置文件示例程序

麥辣雞腿堡 ? 來源:古月居 ? 作者:慕羽★ ? 2023-11-26 17:35 ? 次閱讀

ROS Motion Planning運(yùn)動規(guī)劃庫采用了非常靈活和簡易的方式來按照我們的需求去進(jìn)行配置和使用,在我們對一些必要參數(shù)進(jìn)行設(shè)定后,可使用庫中的main_generate.py文件自動生成我們設(shè)定的參數(shù)對應(yīng)的執(zhí)行文件main.launch。

這些需要設(shè)定的參數(shù),存放在user_config.yaml、pedestrians_config.yaml、obstacles _config.yaml這三個文件中,這三個文件均位于下圖所示的目錄下,下面依次進(jìn)行詳細(xì)的介紹

圖片

1、編寫user_config.yaml參數(shù)配置文件

首先,我們來看作者提供的示例程序,如下所示:

map: "warehouse"
world: "warehouse"
rviz_file: "sim_env.rviz"


robots_config:
  - robot1_type: "turtlebot3_waffle"
    robot1_global_planner: "theta_star"
    robot1_local_planner: "apf"
    robot1_x_pos: "0.0"
    robot1_y_pos: "0.0"
    robot1_z_pos: "0.0"
    robot1_yaw: "0.0"


# plugins:
  # pedestrians: "pedestrian_config.yaml"
  # obstacles: "obstacles_config.yaml"

接下來,我們對每個參數(shù)的作用以及可選的選項有那些進(jìn)行逐個介紹

(1)、map

map參數(shù)用于設(shè)定運(yùn)動規(guī)劃所使用的靜態(tài)地圖的名字,也就是rviz界面看到的靜態(tài)全局地圖,這些可用的靜態(tài)地圖文件存放在該運(yùn)動規(guī)劃庫的src/sim_env/map/文件夾下,目前該運(yùn)動規(guī)劃庫中僅提供了名為warehouse的靜態(tài)地圖文件

如下圖所示,當(dāng)然,我們可以利用SLAM建圖算法自行生成其他的靜態(tài)地圖文件,然后同樣存放在src/sim_env/map/文件夾下,并將參數(shù)map設(shè)定為該靜態(tài)地圖的名字,即可進(jìn)行調(diào)用。

注:該參數(shù)設(shè)為“ ”,則表示不使用靜態(tài)地圖

圖片

(2)world

world參數(shù)用于設(shè)定要調(diào)用的Gazebo仿真環(huán)境的文件名,該文件存放在該運(yùn)動規(guī)劃庫的src/sim_env/worlds/文件夾下,示例中調(diào)用的是warehouse.world。

當(dāng)然,我們也可以在Gazebo中搭建自己的仿真環(huán)境,并導(dǎo)出對應(yīng)的world文件,然后存放到該目錄下,通過修改參數(shù)world來進(jìn)行調(diào)用

注:需要注意的是參數(shù)map與world要對應(yīng)起來,這里的對應(yīng)是指環(huán)境內(nèi)容的對應(yīng),一般是先在Gazebo中搭建仿真環(huán)境,保存為xxx.world文件,然后使用SLAM建圖算法,比如最常用的gampping,對該仿真環(huán)境進(jìn)行建圖,將建好的圖作為靜態(tài)地圖保存,然后使用。

圖片

(3)rviz_file

rviz_file參數(shù)用于設(shè)定打開rviz時的配置文件,這些配置文件存放在src/sim_env/rviz/目錄下,目前庫中提供了cache.rviz、sim_env.rviz、view_multi.rviz這三個可選內(nèi)容,同樣我們可以在rviz中自行調(diào)整,并導(dǎo)出對應(yīng).rviz文件,存儲在該目錄下,然后通過對rviz_file參數(shù)進(jìn)行修改來調(diào)用

圖片

比如,我修改了全局路徑的話題及線型等,可以直接save config覆蓋原有設(shè)置,也可以導(dǎo)出新的.rviz配置文件,從而保留原有設(shè)置,如下圖所示:

圖片

(4)robot1_type

robot1_type用于設(shè)定編號為robot1的機(jī)器人所使用的機(jī)器人的模型,模型文件在庫的src/sim_env/urdf/目錄下庫中提供了nanocar、turtlebot3_burger、turtlebot3_waffle 、turtlebot3_waffle_pi四種可選的機(jī)器人模型

當(dāng)然,我們也可以自行創(chuàng)建或者從網(wǎng)上找其他的機(jī)器人模型的urdf或xacro文件,放到該目錄下,通過修改參數(shù)robot1_type的值來進(jìn)行調(diào)用。

圖片

庫中提供的這四種機(jī)器人模型如下圖所示:

圖片

(5)robot1_global_planner

robot1_global_planner用于設(shè)定編號為robot1的機(jī)器人所使用的全局路徑算法,全局路徑算法的實現(xiàn)文件在庫的src/planner/global_planner/目錄下,庫中提供了三大類共同16個全局路徑規(guī)劃算法,對應(yīng)三個全局路徑規(guī)劃器插件,詳細(xì)如下:

① 基于圖搜索的全局路徑規(guī)劃器插件graph_planner/GraphPlanner包含的算法有:

a_star、jps、gbfs、dijkstra、d_star、lpa_star、voronoi、d_star_lite、theta_star、lazy_theta_star

② 基于采樣的全局路徑規(guī)劃器插件sample_planner/SamplePlanner包含的算法有:

rrt、rrt_star、informed_rrt、rrt_connect

③、基于智能的路徑規(guī)劃器插件evolutionary_planner/EvolutionaryPlanner包含的算法有:

aco、ga

三大類共16種全局路徑規(guī)劃算法可供我們選擇,上面的示例文件中使用的是theta_star算法,我們可以嘗試修改為以上其他16種算法中的任意一個來測試其效果

當(dāng)然,我們也可以編寫自己的全局路徑規(guī)劃器算法,較容易的方式,是直接在以上16種算法中最接近的1種的源文件上進(jìn)行修改,若創(chuàng)建自己的算法名和源文件,則還需要修改庫的src/sim env/ launch /include /navigation/目錄下的move base.launch.xml等文件

(6)robot1_local_planner

robot1_local_planner用于設(shè)定編號為robot1的機(jī)器人所使用的局部路徑算法,局部路徑算法的實現(xiàn)文件在庫的src/planner/local_planner/目錄下,庫中提供了四個局部路徑規(guī)劃算法,對應(yīng)四個局部路徑規(guī)劃器插件,詳細(xì)如下:

①、插件dwa_planner/DWAPlanner對應(yīng)的算法是:dwa

②、插件pid_planner/PIDPlanner對應(yīng)的算法是:pid

③、插件apf_planner/APFPlanner對應(yīng)的算法是:apf

④、插件static_planner/StaticPlanner對應(yīng)的算法是:static

四個局部路徑規(guī)劃器插件對應(yīng)4種局部路徑規(guī)劃算法可供我們選擇,上面的示例文件中使用的是apf算法,我們可以嘗試修改為以上其他4種算法中的任意一個來測試其效果

當(dāng)然,我們也可以編寫自己的全局路徑規(guī)劃器算法,較容易的方式,是直接在以上4種算法中最接近的1種的源文件上進(jìn)行修改,若創(chuàng)建自己的算法名和源文件,則還需要修改庫的src/sim env/ launch /include /navigation/目錄下的move base.launch.xml等文件

(7)robot1_x_pos、robot1_y_pos、robot1_z_pos、robot1_yaw

robot1_x_pos、robot1_y_pos、robot1_z_pos、robot1_yaw分別用于設(shè)定編號為robot1的機(jī)器人的初始位置和姿態(tài)角,對于位置設(shè)定為地圖中任意一個非障礙物點都行

經(jīng)過我的測試,目前不支持任意修改初始姿態(tài)角robot1_yaw,其值保持為0即可,若修改為其他值rviz中顯示的雷達(dá)坐標(biāo)系將出現(xiàn)問題。

(8)行人插件 pedestrians

除了上述必備的配置參數(shù)外,庫中還提供了行人插件pedestrians,若想啟用該功能,則需要取消對該插件的注釋

如下所示,該插件可以在仿真環(huán)境中添加動態(tài)的行人來充當(dāng)動態(tài)障礙物,對規(guī)劃算法的性能進(jìn)行測試,使用該插件同樣需要提供一個名為pedestrian_config.yaml參數(shù)配置文件,將在本文第三部分的第2小節(jié),也就是下一小節(jié)中對該參數(shù)配置文件進(jìn)行詳細(xì)的介紹。

plugins:
  pedestrians: "pedestrian_config.yaml"

(9)新增障礙物插件 obstacles_config

除了行人插件,庫中還提供了新增障礙物插件 obstacles_config,若想啟用該功能,則需要取消對該插件的注釋

如下所示,該插件可以在仿真環(huán)境中添加新的靜態(tài)障礙物,新增的障礙物在SLAM建圖產(chǎn)生的靜態(tài)地圖map中并不存在

因此,可以用來測試規(guī)劃算法對新感知到的障礙物的避障能力,使用該插件同樣需要提供一個名為obstacles_config.yaml參數(shù)配置文件,將在本文第三部分的第3小節(jié)中對該參數(shù)配置文件進(jìn)行詳細(xì)的介紹。

plugins:
  obstacles: "obstacles_config.yaml"
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4124

    瀏覽量

    133993
  • 插件
    +關(guān)注

    關(guān)注

    0

    文章

    336

    瀏覽量

    22492
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    280

    瀏覽量

    17098
收藏 人收藏

    評論

    相關(guān)推薦

    使用用于MCS-51的IAR嵌入式平臺編寫的一個示例程序程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用用于MCS-51的IAR嵌入式平臺編寫的一個示例程序程序免費(fèi)下載。
    發(fā)表于 08-15 17:32 ?1次下載
    使用用于MCS-51的IAR嵌入式平臺<b class='flag-5'>編寫</b>的一個<b class='flag-5'>示例程序</b><b class='flag-5'>程序</b>免費(fèi)下載

    Python使用示例程序和工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Python使用示例程序和工程文件免費(fèi)下載。
    發(fā)表于 06-15 08:00 ?6次下載
    Python使用<b class='flag-5'>示例程序</b>和工程<b class='flag-5'>文件</b>免費(fèi)下載

    STM32 之 標(biāo)準(zhǔn)外設(shè)版USB驅(qū)動庫詳解(架構(gòu)+文件+函數(shù)+使用說明+示例程序

    STM32 之 標(biāo)準(zhǔn)外設(shè)版USB驅(qū)動庫詳解(架構(gòu)+文件+函數(shù)+使用說明+示例程序
    發(fā)表于 12-08 20:36 ?0次下載
    STM32 之 標(biāo)準(zhǔn)外設(shè)版USB驅(qū)動庫詳解(架構(gòu)+<b class='flag-5'>文件</b>+函數(shù)+使用說明+<b class='flag-5'>示例程序</b>)

    配置文件例程文件的使用

    上期講述了AMetal平臺驅(qū)動框架中的硬件層,介紹了硬件層的驅(qū)動是如何實現(xiàn)及其硬件層接口的定義,逐漸深入了解AMetal平臺。接下來向大家介紹配置文件例程文件的使用,以此可靈活使用相應(yīng)外設(shè)的資源。
    的頭像 發(fā)表于 04-07 11:49 ?2223次閱讀
    <b class='flag-5'>配置文件</b>和<b class='flag-5'>例程</b><b class='flag-5'>文件</b>的使用

    SpringBoot配置文件application

    ("#{${sys-num.mymap}}") private MapString, String numMap;} cron表達(dá)式 YML配置文件: schedule: 0 0 / 1 * * * ? 代碼示例
    的頭像 發(fā)表于 01-13 15:28 ?681次閱讀

    教程 2:自定義配置文件示例

    教程 2:自定義配置文件示例
    發(fā)表于 03-13 19:33 ?0次下載
    教程 2:自定義<b class='flag-5'>配置文件</b><b class='flag-5'>示例</b>

    教程 3:自定義配置文件 gatt cmd 示例

    教程 3:自定義配置文件 gatt cmd 示例
    發(fā)表于 03-15 19:40 ?0次下載
    教程 3:自定義<b class='flag-5'>配置文件</b> gatt cmd <b class='flag-5'>示例</b>

    教程 2:自定義配置文件示例

    教程 2:自定義配置文件示例
    發(fā)表于 07-04 20:50 ?1次下載
    教程 2:自定義<b class='flag-5'>配置文件</b><b class='flag-5'>示例</b>

    教程 3:自定義配置文件 gatt cmd 示例

    教程 3:自定義配置文件 gatt cmd 示例
    發(fā)表于 07-06 18:50 ?1次下載
    教程 3:自定義<b class='flag-5'>配置文件</b> gatt cmd <b class='flag-5'>示例</b>

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納
    的頭像 發(fā)表于 10-20 15:04 ?629次閱讀
    KT142C語音芯片<b class='flag-5'>配置文件</b>總是不起作用?<b class='flag-5'>配置文件</b>的問題集中歸納

    linux修改網(wǎng)卡ip配置文件

    、子網(wǎng)掩碼、網(wǎng)關(guān)等參數(shù)。本文將詳細(xì)介紹如何修改Linux的網(wǎng)卡ip配置文件。 首先,在Linux中,網(wǎng)絡(luò)接口的配置文件一般位于/etc/sysconfig/network-scripts/目錄下,
    的頭像 發(fā)表于 11-17 10:51 ?2379次閱讀

    springboot的全局配置文件有幾種

    Spring Boot是一種快速開發(fā)框架,其通過提供配置文件來實現(xiàn)對應(yīng)用程序配置。全局配置文件在Spring Boot中起著非常重要的作用,可以用于
    的頭像 發(fā)表于 12-03 15:28 ?1652次閱讀

    zookeeper的核心配置文件是什么

    Zookeeper是一個常用的分布式協(xié)調(diào)服務(wù),它被廣泛應(yīng)用于大型分布式系統(tǒng)中。Zookeeper的核心配置文件是zoo.cfg,它包含了Zookeeper服務(wù)器的各種配置參數(shù),可以通過修改這些
    的頭像 發(fā)表于 12-04 10:33 ?885次閱讀

    php的配置文件是什么

    PHP的配置文件是一種用于配置PHP解釋器的文本文件。它包含了一系列的指令和選項,用于影響PHP的行為和性能。通過修改配置文件,可以改變PHP解釋器的默認(rèn)行為,從而滿足不同的需求。 在
    的頭像 發(fā)表于 12-04 15:55 ?1610次閱讀

    支持CiA402驅(qū)動器配置文件示例程序用于通過EtherCAT?通信進(jìn)行電機(jī)控制

    電子發(fā)燒友網(wǎng)站提供《支持CiA402驅(qū)動器配置文件示例程序用于通過EtherCAT?通信進(jìn)行電機(jī)控制.pdf》資料免費(fèi)下載
    發(fā)表于 02-21 14:21 ?2次下載
    支持CiA402驅(qū)動器<b class='flag-5'>配置文件</b>的<b class='flag-5'>示例程序</b>用于通過EtherCAT?通信進(jìn)行電機(jī)控制
    大发888真钱娱乐场下载| 大发888国际娱乐net| 百家乐官网偷码| 大发888娱乐登录| 百家乐官网园sun811| k7娱乐城官网| 百家乐破解仪| 24风水| 百家乐官网最佳投注法下载| 香港百家乐的玩法技巧和规则 | 云安县| 大发888在线赌场网站| 百家乐黄金城游戏大厅| 网络赌博平台| 棋牌室赚钱吗| 太阳城洋伞| 百家乐纸牌赌博| 百家乐分析博彩正网| 百家乐官网补第三张牌规则| 百家乐官网玩法与规则| 国际环球娱乐| 娱乐城注册送白菜| 大发888任务怎么做| 明溪百家乐的玩法技巧和规则| 百家乐棋牌交| 百家乐娱乐城代理| 百家乐官网黏土筹码| 田阳县| 龙州县| 香港六合彩官方网站| 德州扑克大小顺序| 百家乐路单打法| 八卦24山| 百家乐官网平注资讯| 十六浦百家乐官网的玩法技巧和规则| 蓝盾百家乐官网洗码| 百家乐官网技巧真人荷官网| 百家乐官网能破解| 大世界百家乐赌场娱乐网规则| 网上百家乐的玩法技巧和规则| 百家乐娱乐礼金|