版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机器人操作系统(ROS2)入门与实践机器人操作系统(ROS2)入门与实践第1章LinuxUbuntu入门基础第2章ROS2安装与系统架构第3章ROS2编程基础第4章ROS2机器人运动控制第5章激光雷达在ROS2中的使用第6章IMU在ROS2中的使用第7章ROS2中的SLAM环境建图第8章ROS2中的NAV2自主导航第9章ROS2中的图像视觉应用第10章ROS2的三维视觉应用第11章ROS2的机械臂应用第12章基于ROS2的综合应用第7章7.3仿真环境实现SLAM建图
第7章ROS2中的SLAM环境建图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仿真环境实现SLAM建图
下面介绍如何在仿真环境中使用SLAMToolbox进行SLAM建图。为了观察建图的过程,还会启动RViz2,实时显示建图的进展情况。所以建图时的数据通讯如图所示:详细操作步骤见教材P184-P199页7.3仿真环境实现SLAM建图7.3.1SLAMToolbox的启动SLAMToolbox的启动比较简单,只需要启动slam_toolbox软件包里的建图节点,配置好相关参数,就可以启动建图了。下面通过编写一个Launch文件来启动SLAMToolbox。首先在工作空间中创建一个软件包。cd~/ros2_ws/srcros2pkgcreateslam_pkg接下来在这个软件包中实现SLAM建图功能。具体操作步骤如下:1、编写Launch文件代码
在VSCode中找到[slam_pkg]软件包。新建文件夹并命名为“launch”。在新建的[launch]文件夹中新建文件并命名为“slam.launch.py”。7.3仿真环境实现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仿真环境实现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、设置安装规则install(DIRECTORYlaunchDESTINATIONshare/${PROJECT_NAME})7.3仿真环境实现SLAM建图3、编译软件包cd~/ros2_wscolconbuild7.3仿真环境实现SLAM建图7.3.2仿真环境建图sourceinstall/setup.bashros2launchwpr_simulation2robocup_home.launch.py7.3仿真环境实现SLAM建图sourceinstall/setup.bashros2launchslam_pkgslam.launch.py打开第2个子窗口。7.3仿真环境实现SLAM建图sourceinstall/setup.bashros2runwpr_simulation2keyboard_vel_cmd打开第3个子窗口。7.3仿真环境实现SLAM建图机器人在场景里巡游一遍之后,就可以看到建好的地图了。7.3仿真环境实现SLAM建图7.3.3地图的保存ros2runnav2_map_servermap_saver_cli-fmap在终端窗口的当前路径(~/ros2_ws)下创建两个地图文件:map.pgm和map.yaml。7.3仿真环境实现SLAM建图7.3.4SLAMToolbox的参数设置
除了上面例子的四个参数,SLAMToolbox还提供了大量的参数可供设置。举个例子,设置地图更新间隔参数map_update_interval。在软件包slam_pkg的[slam.launch.py]里,为字典slam_params添加一个参数。如图所示,参数名为“map_update_interval”,数值为1.0,表示机器人每移动1.0米就更新一次地图。7.3仿真环境实现SLAM建图cd~/ros2_wscolconbuildros2launchwpr_simulation2robocup_home.launch.pyros2launchslam_pkgslam.launch.pyros2runwpr_simulation2keyboard_vel_cmd用键盘控制机器人在仿真环境里建图,注意观察地图刷新频率的变化。
对slam_pkg进行编译,激活CMakelists.t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年临时员工派遣协议范本
- 2025年借壳上市交易合作协议
- 2025年仓储干果坚果保管合同
- 2025年售房合同解除协议
- 2025年死因赠与合同的咨询平台
- 2025年食堂食材采购与社区支持农业合同范本大全3篇
- 2025版生物质木屑颗粒燃料买卖合同4篇
- 二零二五年度不动产抵押担保物业管理合同样本3篇
- 2025版微股东众筹入股协议书-新能源开发项目专用3篇
- 二零二五年度科研实验室租赁合同租金调整与设备配置补充协议
- 《中华民族多元一体格局》
- 2023年四川省绵阳市中考数学试卷
- 南安市第三次全国文物普查不可移动文物-各乡镇、街道分布情况登记清单(表五)
- 选煤厂安全知识培训课件
- 项目前期选址分析报告
- 急性肺栓塞抢救流程
- 《形象价值百万》课件
- 红色文化教育国内外研究现状范文十
- 中医基础理论-肝
- 小学外来人员出入校门登记表
- 《土地利用规划学》完整课件
评论
0/150
提交评论