機器人操作系統(tǒng)(ROS2)入門與實踐 課件 第7章 ROS2中的SLAM環(huán)境建圖_第1頁
機器人操作系統(tǒng)(ROS2)入門與實踐 課件 第7章 ROS2中的SLAM環(huán)境建圖_第2頁
機器人操作系統(tǒng)(ROS2)入門與實踐 課件 第7章 ROS2中的SLAM環(huán)境建圖_第3頁
機器人操作系統(tǒng)(ROS2)入門與實踐 課件 第7章 ROS2中的SLAM環(huán)境建圖_第4頁
機器人操作系統(tǒng)(ROS2)入門與實踐 課件 第7章 ROS2中的SLAM環(huán)境建圖_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

機器人操作系統(tǒng)(ROS2)入門與實踐機器人操作系統(tǒng)(ROS2)入門與實踐第1章LinuxUbuntu入門基礎第2章ROS2安裝與系統(tǒng)架構第3章ROS2編程基礎第4章ROS2機器人運動控制第5章激光雷達在ROS2中的使用第6章IMU在ROS2中的使用第7章ROS2中的SLAM環(huán)境建圖第8章ROS2中的NAV2自主導航第9章ROS2中的圖像視覺應用第10章ROS2的三維視覺應用第11章ROS2的機械臂應用第12章基于ROS2的綜合應用第7章7.3仿真環(huán)境實現SLAM建圖

第7章ROS2中的SLAM環(huán)境建圖7.2SLAMToolbox簡介7.1SLAM原理7.4本章小結7.1SLAM原理“SLAM”,英文全稱是“SimultaneousLocalizationAndMapping”,直譯過來就是“即時定位與地圖構建”。要理解SLAM,先得理解激光雷達的數據特點,激光雷達的掃描數據可以理解為一個障礙物分布的切面圖,如圖所示,其反映的是在一個特定高度上,障礙物面向雷達的邊緣形狀和分布位置。7.1SLAM原理

將三個位置的激光雷達掃描輪廓拼合在一起,就能得到一個相對更完整的平面地圖,同時也得出A、B、C三個位置在這個地圖中的位置,如圖所示:7.2SLAMToolbox簡介

在ROS2的官方教程中,推薦使用SLAMToolbox來替代ROS1的HectorMapping和Gmapping等建圖軟件包。SLAMToolbox是由工程師SteveMacenski在SimbeRobotics公司就職期間構建的一套2DSLAM開源項目,目前由三星機器人研究院在維護。要在ROS2中使用SLAMToolbox,需要先安裝相關軟件包。安裝指令為:sudoaptinstallros-humble-slam-toolbox7.3仿真環(huán)境實現SLAM建圖

下面介紹如何在仿真環(huán)境中使用SLAMToolbox進行SLAM建圖。為了觀察建圖的過程,還會啟動RViz2,實時顯示建圖的進展情況。所以建圖時的數據通訊如圖所示:詳細操作步驟見教材P184-P199頁7.3仿真環(huán)境實現SLAM建圖7.3.1SLAMToolbox的啟動SLAMToolbox的啟動比較簡單,只需要啟動slam_toolbox軟件包里的建圖節(jié)點,配置好相關參數,就可以啟動建圖了。下面通過編寫一個Launch文件來啟動SLAMToolbox。首先在工作空間中創(chuàng)建一個軟件包。cd~/ros2_ws/srcros2pkgcreateslam_pkg接下來在這個軟件包中實現SLAM建圖功能。具體操作步驟如下:1、編寫Launch文件代碼

在VSCode中找到[slam_pkg]軟件包。新建文件夾并命名為“l(fā)aunch”。在新建的[launch]文件夾中新建文件并命名為“slam.launch.py”。7.3仿真環(huán)境實現SLAM建圖importosfromlaunchimportLaunchDescriptionfromlaunch_ros.actionsimportNodefromament_index_python.packagesimportget_package_share_directory

defgenerate_launch_description():

slam_params={"use_sim_time":True,"base_frame":"base_footprint","odom_frame":"odom","map_frame":"map"}slam_cmd=Node(package="slam_toolbox",executable="sync_slam_toolbox_node",parameters=[slam_params])編寫這個Launch文件內容如下:7.3仿真環(huán)境實現SLAM建圖

rviz_file=os.path.join(get_package_share_directory('wpr_simulation2'),'rviz','slam.rviz')rviz_cmd=Node(package='rviz2',executable='rviz2',name='rviz2',arguments=['-d',rviz_file])

ld=LaunchDescription()ld.add_action(slam_cmd)ld.add_action(rviz_cmd)

returnld2、設置安裝規(guī)則install(DIRECTORYlaunchDESTINATIONshare/${PROJECT_NAME})7.3仿真環(huán)境實現SLAM建圖3、編譯軟件包cd~/ros2_wscolconbuild7.3仿真環(huán)境實現SLAM建圖7.3.2仿真環(huán)境建圖sourceinstall/setup.bashros2launchwpr_simulation2robocup_home.launch.py7.3仿真環(huán)境實現SLAM建圖sourceinstall/setup.bashros2launchslam_pkgslam.launch.py打開第2個子窗口。7.3仿真環(huán)境實現SLAM建圖sourceinstall/setup.bashros2runwpr_simulation2keyboard_vel_cmd打開第3個子窗口。7.3仿真環(huán)境實現SLAM建圖機器人在場景里巡游一遍之后,就可以看到建好的地圖了。7.3仿真環(huán)境實現SLAM建圖7.3.3地圖的保存ros2runnav2_map_servermap_saver_cli-fmap在終端窗口的當前路徑(~/ros2_ws)下創(chuàng)建兩個地圖文件:map.pgm和map.yaml。7.3仿真環(huán)境實現SLAM建圖7.3.4SLAMToolbox的參數設置

除了上面例子的四個參數,SLAMToolbox還提供了大量的參數可供設置。舉個例子,設置地圖更新間隔參數map_update_interval。在軟件包slam_pkg的[slam.launch.py]里,為字典slam_params添加一個參數。如圖所示,參數名為“map_update_interval”,數值為1.0,表示機器人每移動1.0米就更新一次地圖。7.3仿真環(huán)境實現SLAM建圖cd~/ros2_wscolconbuildros2launchwpr_simulation2robocup_home.launch.pyros2launchslam_pkgslam.launch.pyros2runwpr_simulation2keyboard_vel_cmd用鍵盤控制機器人在仿真環(huán)境里建圖,注意觀察地圖刷新頻率的變化。

對slam_pkg進行編譯,激活CMakelists.t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論