体验内容

使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。

1. 安装一些依赖包

sudo apt-get install ros-melodic-move-base*
sudo apt-get install ros-melodic-map-server*
sudo apt-get install ros-melodic-amcl*
sudo apt-get install ros-melodic-navigation*
sudo apt-get install ros-melodic-openslam-gmapping

2. 新建launch文件及其配置文件

(1)rplidar_gmapping.launch.xml

turtlebot_ws/src/turtlebot_apps/turtlebot_navigation/launch/includes/gmapping/目录下新建文件rplidar_gmapping.launch.xml

<launch><arg name="scan_topic"  default="scan" /><arg name="base_frame"  default="base_footprint"/><arg name="odom_frame"  default="odom"/><node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen"><param name="base_frame" value="$(arg base_frame)"/><param name="odom_frame" value="$(arg odom_frame)"/><param name="map_update_interval" value="0.01"/><param name="maxUrange" value="4.0"/><param name="maxRange" value="5.0"/><param name="sigma" value="0.05"/><param name="kernelSize" value="3"/><param name="lstep" value="0.05"/><param name="astep" value="0.05"/><param name="iterations" value="5"/><param name="lsigma" value="0.075"/><param name="ogain" value="3.0"/><param name="lskip" value="0"/><param name="minimumScore" value="30"/><param name="srr" value="0.01"/><param name="srt" value="0.02"/><param name="str" value="0.01"/><param name="stt" value="0.02"/><param name="linearUpdate" value="0.05"/><param name="angularUpdate" value="0.0436"/><param name="temporalUpdate" value="-1.0"/><param name="resampleThreshold" value="0.5"/><param name="particles" value="8"/><!--<param name="xmin" value="-50.0"/><param name="ymin" value="-50.0"/><param name="xmax" value="50.0"/><param name="ymax" value="50.0"/>make the starting size small for the benefit of the Android client's memory...--><param name="xmin" value="-1.0"/><param name="ymin" value="-1.0"/><param name="xmax" value="1.0"/><param name="ymax" value="1.0"/><param name="delta" value="0.05"/><param name="llsamplerange" value="0.01"/><param name="llsamplestep" value="0.01"/><param name="lasamplerange" value="0.005"/><param name="lasamplestep" value="0.005"/><remap from="scan" to="$(arg scan_topic)"/></node>
</launch>

(2)rplidar_gmapping_demo.launch

turtlebot_ws/src/turtlebot_apps/turtlebot_navigation/launch/目录下新建文件rplidar_gmapping_demo.launch

<launch><!-- 2D_laser --><arg name="2D_laser" default="rplidar"/><include file="$(find rplidar_ros)/launch/rplidar.launch"></include><!-- Gmapping --><arg name="custom_gmapping_launch_file" default="$(find turtlebot_navigation)/launch/includes/gmapping/$(arg 2D_laser)_gmapping.launch.xml"/><include file="$(arg custom_gmapping_launch_file)"/><!-- Move base --><include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml"/></launch>

(3)修改rplidar.launch

turtlebot_ws/src/rplidar_ros/launch目录下的文件rplidar.launch进行修改,添加一句

<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0  0.0  0.18  0.0  0.0  1.0  0.0 base_link laser 100"/>

注意要添加在前一个</node>后面,并且注意空格。

3. 运行

roscore
roslaunch turtlebot_bringup minimal.launch
roslaunch turtlebot_navigation rplidar_gmapping_demo.launch
rviz

将map数据Add进来,并选择好话题。
启动键盘控制,可以看到rviz程序中显示的地图在发生变化。

roslaunch turtlebot_teleop keyboard_teleop.launch

查看tf树和graph图

rosrun rqt_tf_tree rqt_tf_tree
rqt_graph

得到一张如下图所示的建图结果。

此时分析一下工作中的节点和信息流


保存地图的操作如下,将得到一张图片和一个地图配置文件。

rosrun map_server map_saver -f <path>

作业内容

一、rosbag

自学rosbag,理解时间戳概念,写出rosbag的相关指令,利用rosbag储存的信息和gmapping,完成建图。
在控制turtlebot执行运动和建图之前,首先打开一个终端运行

rosbag record -a

录制完成后,在该终端按Ctrl+C结束录制,生成了数据包。
断开turtlebot、激光雷达与计算机的连接,重新开启终端,执行

roscore
roslaunch turtlebot_navigation rplidar_gmapping_demo.launch
rviz
rosbag play <filename>.bag

二、在gazebo中实现gmapping

使用中国大学慕课网《机器人操作系统入门》课程的仿真环境,其代码的位置为:
Kinetic:https://github.com/DroidAITech/ROS-Academy-for-Beginners/tree/kinetic
Melodic:https://github.com/DroidAITech/ROS-Academy-for-Beginners/tree/melodic
创建工作空间,将上面链接中下载的代码放入src目录中,进行编译即可。

可能会遇到cmake报错,提示qt出现问题,需要安装qt,参考:

  1. https://blog.csdn.net/x356982611/article/details/71169940
  2. https://blog.csdn.net/weixin_41477306/article/details/95743555

成功编译后,运行

roscore
roslaunch robot_sim_demo robot_spawn.launch
roslaunch slam_sim_demo gmapping_demo.launch
roslaunch slam_sim_demo view_slam.launch

可以使用rviz2D Nav Goal工具指定目标位姿,使机器人运动起来。

实验三 Gmapping建图相关推荐

  1. 开源自主导航小车MickX4(五)gmapping建图

    开源自主导航小车MickX4(五)gmapping建图 1 激光雷达驱动 2 3D点云到2D点云的转换 3 gmapping 建图 3.1 安装 gmapping库 3.2 配置 gmapping 3 ...

  2. SLAM学习:Gmapping建图下地图变形更新速度慢问题

    一.问题描述 首先,我在用Gmapping建图的时候发现扫描出来的地图更新速度很慢然后还有就是地图的完整性不高容易变形扭曲,我们在一般在路径规划前需要用适当的建图算法把地图创建出来然后保存方可进行全局 ...

  3. ROS---进行建图或者move_base路径规划时出现打滑现象(雷达匹配不上地图)的解决方法 附gmapping建图配置参数

    ROS-进行建图或者move_base路径规划时出现打滑现象(雷达匹配不上地图)的解决方法-本人多次实验的出的结论 之前我的车会经常出现打滑现象,图也建不了,就算勉强建好了图,在进行路径规划的时候也是 ...

  4. Turtlebot_01——激光雷达运行gmapping建图

    一.基本功能包安装 1.使用环境:Ubuntu14.04 LTS + ROS indigo + hokuyo URG-04LX-UG01(激光型号) 2.安装 Turtlebot包(若要学习源码,修改 ...

  5. gmapping建图与rviz实时显示中出现的问题记录

    网上关于gmapping建图教程基本都是: 用ros的数据记录指令rosbag去记录数据,然后再通过rviz去显示记录的数据. 其实可以用rviz去实时显示构建地图的过程,但是需要去配置ROS: 首先 ...

  6. 基于rf2o_laser_odometry纯激光里程计的gmapping建图

    ROS环境:ubuntu16.04 & ROS kinetic 激光雷达:EAI-X4 or RPlidar-A1 激光里程计:rf2o_laser_odometry 建图:gmapping ...

  7. Ubuntu14.04下sick LMS5xx的gmapping建图

    本文是一篇笔记,记录Ubuntu.14.04下使用sick LMS500的gmapping建图.业余时间整理,仅供参考. 功能:使用移动平台(如pioneer3dx)以及激光sicklms5xx在ub ...

  8. gmapping建图注意事项

    gmapping建图 由于这部分比较简单,就不记录详细的过程了,但是要提几点注意事项: 1.gmapping 用到了里程计.雷达,所以要确保这两个数据源没有问题,最简单的方法 是 rostopic l ...

  9. 速腾聚创rs_lidar_16(Robosense)使用gmapping建图

    1.配置速腾聚创 rs_lidar_16雷达驱动 参考下面教程的第一步,Robosense16线雷达驱动安装 速腾聚创rs_lidar_16使用cartographer配置教程 2.使用pointcl ...

最新文章

  1. ubuntu下安装vue-cli后输入vue提示无法找到vue命令解决办法
  2. USTC小道消息20220119
  3. r语言的逻辑回归分类
  4. Storm on yarn 安装
  5. nginx怎么处理php,nginx如何处理请求
  6. oracle数据库连接时报12514_连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程...
  7. 查看mysql的安装信息
  8. 简单树组织数据格式化为标准树组织数据
  9. 数据可视化应用在哪方面
  10. Azkaban入门简介
  11. bios 昂达h61c_Onda昂达主板BIOS,ONDA昂达H61N全固版(ver 3.00)主板BIOS 3.02版,主板BIOS,硬件驱动下载...
  12. thinkphp5基于php的校园微博系统--php-计算机毕业设计
  13. 100道c语言经典编程题,C语言经典例题100道
  14. 【经验教程】google谷歌Gmail邮箱帐号被停用怎么恢复Gmail邮箱google谷歌账号?
  15. MATLAB的GUI设计——计算器
  16. 唯物史观在高中历史教学中的具体运用
  17. Qt播放音乐报错DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070002 ()
  18. 淹没之城(Submerged).PC单机游戏 免费下载.虚幻4 打造
  19. 美国短信怎么发?美国短信如何计费?
  20. uniapp发布相关(主因处理key配置错误问题)

热门文章

  1. 开源分布式数据库中间件
  2. Activiti——HelloWorld-模拟流程执行(三)
  3. C++ 笔记(02)— 程序结构(头文件说明、命名空间、函数返回值、函数参数、注释、语句结束符、cin/cout)
  4. 个人作业3——个人总结(Alpha阶段)
  5. LINQ 学习路程 -- 查询操作 GroupBy ToLookUp
  6. es6学习笔记8--Map数据结构
  7. Linux 启动详解之init
  8. popStar手机游戏机机对战程序
  9. JavaScript小记
  10. python 检验数据正态分布程度_python 实现检验33品种数据是否是正态分布