在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

基于ROS的機(jī)器人建圖與導(dǎo)航仿真全過程

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

引言

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

當(dāng)然我覺得你已經(jīng)會(huì)ROS的一些基本操作了,本文章只是簡單扼要的介紹這個(gè)過程,其中細(xì)節(jié)部分難免可能不會(huì)太詳細(xì)還請見諒,當(dāng)人后續(xù)也會(huì)有更多這方面的文章,也會(huì)傳授一些ROS機(jī)器人建圖與導(dǎo)航方面的經(jīng)驗(yàn),當(dāng)然我也在學(xué)習(xí)的過程,難免一些不足之處,話不多說啦,讓我先把這個(gè)全過程的思維導(dǎo)圖放在下面。

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

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

一、環(huán)境

1.機(jī)器人建模

我個(gè)人習(xí)慣把機(jī)器人本體放在單獨(dú)的一個(gè)package下,讓我們先看看里面的所有東西。

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

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


我們對URDF文件進(jìn)行檢查,check_urdf命令會(huì)解析URDF文件,并且顯示解析過程中發(fā)現(xiàn)的錯(cuò)誤,如果一切正常,就會(huì)顯示如下信息

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

當(dāng)然我們也可以在rviz中查看這個(gè)模型:

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

也可以看看機(jī)器人的TF關(guān)系:

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

2.運(yùn)動(dòng)控制器配置

接下來我們主要在gazebo環(huán)境下操作,我們再創(chuàng)建一個(gè)單獨(dú)的package,同樣我們先看看完整的內(nèi)容:

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

我們在config下可以看到一個(gè)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

這個(gè)文件便定義了機(jī)器人所有的運(yùn)動(dòng)控制器以及參數(shù),我們通過launch文件添加以下內(nèi)容便可以加載這些控制器:

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

3.world創(chuàng)建

world的創(chuàng)建方法有很多了,你可以自己畫一個(gè)世界,也可以導(dǎo)入,這里可以給大家安利另外一個(gè)仿真神器:Webots,你會(huì)發(fā)現(xiàn)不一樣的東西。

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

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

4.launch文件啟動(dòng)并測試

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

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

我們可以看到racecar_gazebo/scripts下有一個(gè)XL_keyboard_remote.py的,我們可以通過rosrun racecar_gazebo XL_keyboard_remote.py運(yùn)行它,然后我們的機(jī)器人就可以前后左右移動(dòng)并且轉(zhuǎn)向啦(注意運(yùn)行之后彈出來的窗口需要鼠標(biāo)點(diǎn)擊一下再控制機(jī)器人)。

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

二、建圖

建圖的話我們以Gmapping算法功能包為例子進(jìn)行地圖構(gòu)建,當(dāng)然可以用其它的算法,比如:hector,cartographer等。

1.參數(shù)配置

首先我們創(chuàng)建一個(gè)gmapping.launch,這個(gè)主要是負(fù)責(zé)配置參數(shù)的:


  


  
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  


然后我們需要?jiǎng)?chuàng)建一個(gè)gmapping_demo.launch用來打開gazebo,rviz等并建圖:




  


  
 
   
  
  


   
  




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

2.launch文件啟動(dòng)并建圖

之所以創(chuàng)建一個(gè)gmapping_demo.launch是想直接啟動(dòng)一個(gè)launch就可以開始建圖,我們直接在終端輸入roslaunch racecar_gazebo racecar.launch就可以開始建圖啦:

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

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

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

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

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

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

三、導(dǎo)航

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

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

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

1.代價(jià)地圖的配置

導(dǎo)航功能包使用兩種代價(jià)地圖存儲(chǔ)周圍環(huán)境中的障礙信息:一種用于全局路徑規(guī)劃(global_costmap),一種用于本地路徑規(guī)劃和實(shí)時(shí)避障(local_costmap)。

兩種代價(jià)地圖需要使用一些共用的或獨(dú)立的配置文件:通用配置文件、全局規(guī)劃配置文件和本地規(guī)劃配置文件。config/navigation下這三個(gè)文件分別與之對應(yīng)。

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

代價(jià)地圖用來存儲(chǔ)周圍環(huán)境的障礙信息,其中需要聲明地圖關(guān)注的機(jī)器人傳感器消息,以便于地圖信息的更新。

針對兩種代價(jià)地圖通用的配置選項(xiàng),創(chuàng)建名為costmap_common_params.yaml的配置文件。全局規(guī)劃配置文件用于存儲(chǔ)配置全局代價(jià)地圖的參數(shù),命名為global_costmap_params.yaml,本地規(guī)劃配置文件用來存儲(chǔ)本地代價(jià)地圖的配置參數(shù),命名為local_costmap_params.yaml。

2.本地規(guī)劃器的配置

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

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

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

3.launch文件啟動(dòng)并導(dǎo)航

我們通過roslaunch racecar_gazebo racecar_navigation.launch來開始導(dǎo)航前所有準(zhǔn)備工作:

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

通過rviz上2D Nav Goal來給機(jī)器人發(fā)布導(dǎo)航終點(diǎn)信息,可以看出機(jī)器人已經(jīng)開始實(shí)時(shí)掃描信息并規(guī)劃路徑向著終點(diǎn)出發(fā)啦:

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

我們可以通過rosrun rqt_tf_tree rqt_tf_tree來查看導(dǎo)航過程中的TF樹:

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

也可以通過rosrun rqt_graph rqt_graph來查看導(dǎo)航過程中的各節(jié)點(diǎn):

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

審核編輯:湯梓紅

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

    關(guān)注

    2551

    文章

    51207

    瀏覽量

    754529
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28490

    瀏覽量

    207448
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4099

    瀏覽量

    133712
  • 導(dǎo)航
    +關(guān)注

    關(guān)注

    7

    文章

    530

    瀏覽量

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

    關(guān)注

    1

    文章

    278

    瀏覽量

    17031

原文標(biāo)題:基于ROS的機(jī)器人建圖與導(dǎo)航仿真全過程

文章出處:【微信號(hào):3D視覺工坊,微信公眾號(hào):3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ROS機(jī)器人開發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!

    的快速發(fā)展,智能機(jī)器人設(shè)備已成為工業(yè)自動(dòng)化體系的佼佼者,而智能機(jī)器人設(shè)備核心—ROS系統(tǒng),是機(jī)器人領(lǐng)域的集大成者,主要應(yīng)用于機(jī)器人控制領(lǐng)域,
    發(fā)表于 07-09 11:38

    激光導(dǎo)航AGV底盤定制 巡檢機(jī)器人,服務(wù)機(jī)器人,智慧物流搬運(yùn)AGV

    ` 激光導(dǎo)航AGV底盤定制蘇州智偉達(dá)機(jī)器人科技有限公司坐落于-蘇州相城經(jīng)濟(jì)開發(fā)區(qū)陽澄湖國際科創(chuàng)園,是一家致力于機(jī)器人的研發(fā)、設(shè)計(jì)、銷售、安裝的的一體化企業(yè)。公司目前與大學(xué)科研機(jī)構(gòu)以及相關(guān)企業(yè)展開緊密
    發(fā)表于 06-10 14:24

    走到哪都不會(huì)迷路,全自動(dòng)機(jī)器人是怎么導(dǎo)航的?

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

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

    等功能,讓機(jī)器人提供更好的自主定位導(dǎo)航服務(wù)。    | 實(shí)時(shí)存儲(chǔ)地圖數(shù)據(jù)  優(yōu)化引擎是SLAM 3.0 的一部分,具有實(shí)時(shí)存儲(chǔ)地圖數(shù)據(jù)的能力。在建
    發(fā)表于 01-21 10:57

    如何保存機(jī)器人,用于后續(xù)定位導(dǎo)航

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

    【Toybrick RK3399Pro AI開發(fā)板試用體驗(yàn)】機(jī)器人自主導(dǎo)航

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

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

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

    最實(shí)用的STM32和ROS機(jī)器人的串口通信方案

    全網(wǎng)最實(shí)用的STM32和ROS機(jī)器人的串口通信方案小白學(xué)移動(dòng)機(jī)器人同名公眾號(hào):小白學(xué)移動(dòng)機(jī)器人創(chuàng)作聲明:內(nèi)容包含虛構(gòu)創(chuàng)作內(nèi)容中的情節(jié)存在虛構(gòu)加工,僅供參考全網(wǎng)最實(shí)用的STM32和
    發(fā)表于 08-20 06:33

    基于ROS系統(tǒng)實(shí)現(xiàn)導(dǎo)航機(jī)器人的精確方向和距離控制

    本實(shí)驗(yàn)箱以大載重的全向麥輪車為載體,基于ROS系統(tǒng)作為開發(fā)平臺(tái),使用雙驅(qū)和四驅(qū)兩種不同的結(jié)構(gòu)作為機(jī)器人本體,最終通過地面二維碼實(shí)現(xiàn)導(dǎo)航機(jī)器人的精確方向和距離控制...
    發(fā)表于 09-03 07:29

    【搶鮮體驗(yàn)】- Tran***ot ROS教育機(jī)器人

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

    ROS機(jī)器人定位導(dǎo)航仿真

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

    如何對ROS機(jī)器人的定位導(dǎo)航進(jìn)行仿真

    怎樣去實(shí)現(xiàn)ROS機(jī)器人的定位導(dǎo)航呢?如何對ROS機(jī)器人的定位導(dǎo)航進(jìn)行
    發(fā)表于 12-23 09:22

    如何搭建實(shí)體機(jī)器人ros底盤

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

    ROS機(jī)器人開發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!

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

    朱老師出新書了!!《ROS機(jī)器人編程零基礎(chǔ)入門》

    Ubuntu操作系統(tǒng)安裝和使用為起點(diǎn),依次介紹了ROS安裝、實(shí)體/仿真機(jī)器人搭建、機(jī)器視覺、SLAM
    的頭像 發(fā)表于 03-03 14:53 ?1406次閱讀
    朱老師出新書了!!《<b class='flag-5'>ROS</b><b class='flag-5'>機(jī)器人</b>編程零基礎(chǔ)入門》
    主站蜘蛛池模板: 午夜视频一区二区| 天天插日日插| 开心综合网| 黄色片 720p| a成人在线| 午夜看看| 久草五月| 黄篇网站在线观看| 欧美色图亚洲自拍| 一级毛片视屏| 婷婷五月情| 欧亚色视频| 国产特级毛片| 小优视频在线| 国产在线观看福利| 中文字幕一区在线播放| 黄视频免费| 深爱激情婷婷| 久久久久久综合| 中文在线天堂网www| 看黄免费在线| 亚洲一区二区三区高清视频| aaaaaa精品视频在线观看| 素股中文字幕| 九色综合久久综合欧美97| 中文字幕久久精品波多野结| 国产综合在线观看视频| 亚洲一区二区三| 特级一级片| 黄色成人毛片| 天天操天天插| 中文字幕一二三四区| 亚洲第一色图| 精品亚洲欧美无人区乱码| 天天做天天爱天天爽综合区| 51午夜| 国产叼嘿视频免费网站| 日本在线观看永久免费网站| 国产精品一区二区综合| 美女牲交毛片一级视频| 亚洲成av人影片在线观看|