色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于ROS的機器人建圖與導航仿真全過程

3D視覺工坊 ? 來源:古月居 ? 2023-03-06 18:18 ? 次閱讀

引言

之前一直想寫一篇關于ROS機器人建圖與導航仿真全過程的教程,終于有時間來做這個事啦,本人也拿過吉林省高校機器人大賽—ROS競速組的冠軍,第十六屆全國智能車比賽—訊飛餐廳組線上賽二等獎,我想這個教程對接下來的一些參賽者多多少少也會有一些貢獻。

當然我覺得你已經會ROS的一些基本操作了,本文章只是簡單扼要的介紹這個過程,其中細節部分難免可能不會太詳細還請見諒,當人后續也會有更多這方面的文章,也會傳授一些ROS機器人建圖與導航方面的經驗,當然我也在學習的過程,難免一些不足之處,話不多說啦,讓我先把這個全過程的思維導圖放在下面。

36ac3dae-bbd6-11ed-bfe3-dac502259ad0.png

文章所用的代碼已經開源:https://gitee.com/xiaolong_ROS/Map_construction-Navigation_simulation.git

一、環境

1.機器人建模

我個人習慣把機器人本體放在單獨的一個package下,讓我們先看看里面的所有東西。

36bf9b92-bbd6-11ed-bfe3-dac502259ad0.png

可以看到這個機器人的URDF模型還有它所擁有的傳感器,相機、慣性測量單元、激光雷達。


我們對URDF文件進行檢查,check_urdf命令會解析URDF文件,并且顯示解析過程中發現的錯誤,如果一切正常,就會顯示如下信息

36d6e450-bbd6-11ed-bfe3-dac502259ad0.png

當然我們也可以在rviz中查看這個模型:

370d66ec-bbd6-11ed-bfe3-dac502259ad0.png

也可以看看機器人的TF關系:

371e1848-bbd6-11ed-bfe3-dac502259ad0.png

2.運動控制器配置

接下來我們主要在gazebo環境下操作,我們再創建一個單獨的package,同樣我們先看看完整的內容:

3730e3c4-bbd6-11ed-bfe3-dac502259ad0.png

我們在config下可以看到一個racecar_control.yaml文件:

racecar:


 left_rear_wheel_velocity_controller:
  type: effort_controllers/JointVelocityController
  joint: left_rear_axle
  pid: {p: 1000.0, i: 0.00, d: 0.0}




 right_rear_wheel_velocity_controller:
  type: effort_controllers/JointVelocityController
  joint: right_rear_axle 
  pid: {p: 1000.0, i: 0.00, d: 0.0}




 left_front_wheel_velocity_controller:
  type: effort_controllers/JointVelocityController
  joint: left_front_axle
  pid: {p: 1000.0, i: 0.00, d: 0.0}




 right_front_wheel_velocity_controller:
  type: effort_controllers/JointVelocityController
  joint: right_front_axle
  pid: {p: 1000.0, i: 0.00, d: 0.0}
  
 left_steering_hinge_position_controller:
  type: effort_controllers/JointPositionController
  joint: left_steering_joint
  pid: {p: 10000.0, i: 0.1, d: 500.0}
 
 right_steering_hinge_position_controller:
  type: effort_controllers/JointPositionController
  joint: right_steering_joint
  pid: {p: 10000.0, i: 0.1, d: 500.0}




 joint_state_controller:
  type: joint_state_controller/JointStateController
  publish_rate: 50

這個文件便定義了機器人所有的運動控制器以及參數,我們通過launch文件添加以下內容便可以加載這些控制器:

374f75f0-bbd6-11ed-bfe3-dac502259ad0.png

3.world創建

world的創建方法有很多了,你可以自己畫一個世界,也可以導入,這里可以給大家安利另外一個仿真神器:Webots,你會發現不一樣的東西。

給大家看看比賽的官方賽道吧,使用gazebo racecar_runway_original.world 打開:

3769b3e8-bbd6-11ed-bfe3-dac502259ad0.png

4.launch文件啟動并測試

我們先通過roslaunch racecar_gazebo racecar.launch 來打開小車所在的仿真環境:

377b0b34-bbd6-11ed-bfe3-dac502259ad0.png

我們可以看到racecar_gazebo/scripts下有一個XL_keyboard_remote.py的,我們可以通過rosrun racecar_gazebo XL_keyboard_remote.py運行它,然后我們的機器人就可以前后左右移動并且轉向啦(注意運行之后彈出來的窗口需要鼠標點擊一下再控制機器人)。

37933bf0-bbd6-11ed-bfe3-dac502259ad0.png

二、建圖

建圖的話我們以Gmapping算法功能包為例子進行地圖構建,當然可以用其它的算法,比如:hector,cartographer等。

1.參數配置

首先我們創建一個gmapping.launch,這個主要是負責配置參數的:


  


  
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  


然后我們需要創建一個gmapping_demo.launch用來打開gazebo,rviz等并建圖:




  


  
 
   
  
  


   
  




代碼第一塊就是建圖參數的配置,第二塊就是打開之前的gazebo環境等,第三塊是打開鍵盤控制,第四塊是打開一個已經配置好的rviz(配置的方法很簡單的,就是添加一些東西)。

2.launch文件啟動并建圖

之所以創建一個gmapping_demo.launch是想直接啟動一個launch就可以開始建圖,我們直接在終端輸入roslaunch racecar_gazebo racecar.launch就可以開始建圖啦:

37a9e56c-bbd6-11ed-bfe3-dac502259ad0.png

建圖過程需要有耐心,最好速度不要太快,當然不同的算法適應性也不太一樣,我們可以看看建圖效果還是可以的:

37cbbb6a-bbd6-11ed-bfe3-dac502259ad0.png

最后建成的地圖我們需要及時保存。保存的地圖一共有兩個文件,map.pgm和map.yaml。

讓我們看一下建好的地圖效果還是蠻不錯的:

37de8e5c-bbd6-11ed-bfe3-dac502259ad0.png

三、導航

我們先來看一下導航的launch啟動文件,第4行就是啟動之前的launch文件;第6~8行是加載配置好的rviz;第10行是加載地圖;注意第13行,我們加載了一個amcl.xml文件,這個是我們配置的定位方法參數。

自主定位即機器人在任意狀態下都可以推算出自己在地圖中所處的位置,ROS為開發者提供了一種自適應(或kld采樣)的蒙特卡羅定位方法(amcl),這是一種概率統計方法,針對已有地圖使用粒子濾波器跟蹤一個機器人的姿態;第16~32行是導航需要的配置文件;第34行是一個導航腳本(自定義的一個ROS節點),初學者可以不用深究其內容。

37eedb0e-bbd6-11ed-bfe3-dac502259ad0.png

1.代價地圖的配置

導航功能包使用兩種代價地圖存儲周圍環境中的障礙信息:一種用于全局路徑規劃(global_costmap),一種用于本地路徑規劃和實時避障(local_costmap)。

兩種代價地圖需要使用一些共用的或獨立的配置文件:通用配置文件、全局規劃配置文件和本地規劃配置文件。config/navigation下這三個文件分別與之對應。

37fee6e8-bbd6-11ed-bfe3-dac502259ad0.png

代價地圖用來存儲周圍環境的障礙信息,其中需要聲明地圖關注的機器人傳感器消息,以便于地圖信息的更新。

針對兩種代價地圖通用的配置選項,創建名為costmap_common_params.yaml的配置文件。全局規劃配置文件用于存儲配置全局代價地圖的參數,命名為global_costmap_params.yaml,本地規劃配置文件用來存儲本地代價地圖的配置參數,命名為local_costmap_params.yaml。

2.本地規劃器的配置

比賽一般都需要實時避障的,我們導航所用的地圖都是加上錐桶的,當然我們在建圖的時候是不允許掃描錐桶的信息的,所以我們需要配置本地規劃器,我們通過gazebo racecar_runway.world 打開環境如下:

38129346-bbd6-11ed-bfe3-dac502259ad0.png

常用的本地規劃算法有TEB算法和DWA算法,這篇教程主要用的TEB算法,本地規劃器當然也是用的TEB算法的參數,具體可以查看最后一個配置文件teb_local_planner_params.yaml。

3.launch文件啟動并導航

我們通過roslaunch racecar_gazebo racecar_navigation.launch來開始導航前所有準備工作:

382fcfb0-bbd6-11ed-bfe3-dac502259ad0.png

通過rviz上2D Nav Goal來給機器人發布導航終點信息,可以看出機器人已經開始實時掃描信息并規劃路徑向著終點出發啦:

3846d782-bbd6-11ed-bfe3-dac502259ad0.png

我們可以通過rosrun rqt_tf_tree rqt_tf_tree來查看導航過程中的TF樹:

386bd5fa-bbd6-11ed-bfe3-dac502259ad0.png

也可以通過rosrun rqt_graph rqt_graph來查看導航過程中的各節點:

388fef12-bbd6-11ed-bfe3-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2552

    文章

    51217

    瀏覽量

    754609
  • 機器人
    +關注

    關注

    211

    文章

    28501

    瀏覽量

    207484
  • 仿真
    +關注

    關注

    50

    文章

    4099

    瀏覽量

    133718
  • 導航
    +關注

    關注

    7

    文章

    530

    瀏覽量

    42449
  • ROS
    ROS
    +關注

    關注

    1

    文章

    278

    瀏覽量

    17032

原文標題:基于ROS的機器人建圖與導航仿真全過程

文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ROS機器人開發更便捷,基于RK3568J+Debian系統發布!

    的快速發展,智能機器人設備已成為工業自動化體系的佼佼者,而智能機器人設備核心—ROS系統,是機器人領域的集大成者,主要應用于機器人控制領域,
    發表于 07-09 11:38

    激光導航AGV底盤定制 巡檢機器人,服務機器人,智慧物流搬運AGV

    ` 激光導航AGV底盤定制蘇州智偉達機器人科技有限公司坐落于-蘇州相城經濟開發區陽澄湖國際科創園,是一家致力于機器人的研發、設計、銷售、安裝的的一體化企業。公司目前與大學科研機構以及相關企業展開緊密
    發表于 06-10 14:24

    走到哪都不會迷路,全自動機器人是怎么導航的?

    (Control):控制機器人按照導航走。定位(狀態估計)和這兩部分經常被一起提起,他們就是大名鼎鼎的SLAM(Simultaneous Localization And Mapp
    發表于 05-11 11:51

    機器人完美的SLAM 3.0到底是何方神圣?

    等功能,讓機器人提供更好的自主定位導航服務。    | 實時存儲地圖數據  優化引擎是SLAM 3.0 的一部分,具有實時存儲地圖數據的能力。在建
    發表于 01-21 10:57

    如何保存機器人,用于后續定位導航

    在地圖構建之后,下一步要考慮的就是如何保存地圖,便于下次開機直接使用,省時省力省心 ~    如何保存地圖  RoboStudio與機器人連接之后,在機器人過程中,RoboStu
    發表于 01-28 17:27

    【Toybrick RK3399Pro AI開發板試用體驗】機器人自主導航

    算法(DWA),導航由move_base統籌。參考:http://wiki.ros.org/global_plannerhttp://wiki.ros.org/dwa_local_plannerhttp://wiki.
    發表于 08-21 22:12

    棗陽市工程BIM軟件全過程建筑咨詢單位

    涉及前期場地平整BIM應用、主體施工(如鋼筋工程、混凝土工程、質量安全管理等)BIM應用。經過不斷的實踐和發展,BIM技術與各類硬件設備的集成應用在土建施工過程中發揮作用,如三維激光掃描儀器、測量機器人
    發表于 05-20 11:22

    最實用的STM32和ROS機器人的串口通信方案

    全網最實用的STM32和ROS機器人的串口通信方案小白學移動機器人同名公眾號:小白學移動機器人創作聲明:內容包含虛構創作內容中的情節存在虛構加工,僅供參考全網最實用的STM32和
    發表于 08-20 06:33

    基于ROS系統實現導航機器人的精確方向和距離控制

    本實驗箱以大載重的全向麥輪車為載體,基于ROS系統作為開發平臺,使用雙驅和四驅兩種不同的結構作為機器人本體,最終通過地面二維碼實現導航機器人的精確方向和距離控制...
    發表于 09-03 07:29

    【搶鮮體驗】- Tran***ot ROS教育機器人

    Tran***ot ROS教育機器人如果你熱衷于編程探索和DIY創作,恰好又在尋找一款可以讓你自由發揮,二次開發的ROS平臺,那么我們今天體驗的這款Tranbot ROS教育
    發表于 11-25 20:33

    ROS機器人定位導航仿真

    大作業——ROS機器人定位導航仿真一、安裝插件與相關配置1.下載源碼包2.安裝相應插件(1)ros-kinetic-driver-base(
    發表于 12-17 06:15

    如何對ROS機器人的定位導航進行仿真

    怎樣去實現ROS機器人的定位導航呢?如何對ROS機器人的定位導航進行
    發表于 12-23 09:22

    如何搭建實體機器人ros底盤

    目錄介紹一、底盤主控板二、嵌入式開發板1. 與上位機pc的關系2. 與STM32主控板的關系介紹自下而上的分析實體機器人(差分輪速機器人)搭建中的關鍵過程。一、底盤主控板本部分搭建實體機器人
    發表于 01-20 07:36

    ROS機器人開發更便捷,基于RK3568J+Debian系統發布!

    ,以及包管理。它也提供用于獲取、編譯、編寫、和跨計算機運行代碼所需的工具和庫函數。1 隨著工業智能化的快速發展,智能機器人設備已成為工業自動化體系的佼佼者,而智能機器人設備核心—ROS
    發表于 11-30 16:01

    朱老師出新書了!!《ROS機器人編程零基礎入門》

    Ubuntu操作系統安裝和使用為起點,依次介紹了ROS安裝、實體/仿真機器人搭建、機器視覺、SLAM
    的頭像 發表于 03-03 14:53 ?1407次閱讀
    朱老師出新書了!!《<b class='flag-5'>ROS</b><b class='flag-5'>機器人</b>編程零基礎入門》
    主站蜘蛛池模板: 国产精品女主播主要上线| 国内精品人妻无码久久久影院蜜桃| 狠狠色狠狠色综合系列| 亚洲在线国产日韩欧美| 久久九九亚洲精品| 99热成人精品国产免男男| 日本中文字幕伊人成中文字幕| 国产手机在线亚洲精品观看| 中文字幕无码一区二区免费| 日本xxxxx按摩19| 狠狠躁天天躁小说| 99re久久热在线视频| 忘忧草高清| 麻豆天美国产一区在线播放| 大学生第一次破苞疼哭了| 亚洲视频第二页| 飘雪在线观看免费完整版| 国产永久视频| qvod在线观看| 亚洲日本天堂在线| 欧美性类s0x| 狠狠干福利视频| 潮 喷女王cytherea| 亚洲无遮挡无码A片在线| 日本不卡一二三| 久久免费精彩视频| 国产东北男同志videos网站| 最近免费中文字幕MV免费高清| 少妇内射视频播放舔大片| 蜜芽一二三区| 国产一区二区三区影院| WRITEAS检查身体| 一级毛片皇帝 宫女| 十八禁久久成人一区二区| 两个奶被男人揉了一个晚上| 国产全部视频列表支持手机| chinese东北老年tv视频| 一级毛片在线免费视频| 无码专区久久综合久综合字幕 | 97超碰在线视频 免费| 亚洲va在线va天堂XX xX|