ROS学习笔记之——激光雷达SLAM建图

81 篇文章 115 订阅
28 篇文章 0 订阅

装完双系统以及配置好机器人后(参考博文:《Ununtu 16.04LTS安装(与windows共存,双系统)》和《ROS中机器人与电脑的网络配置》)。接下来用激光雷达进行SLAM建图哈~

参考书籍的建图(章节11.2.4)和运行导航(11.5.2)

 

建图

通过turtlebot3上的激光雷达实现SLAM运行顺序如下:

首先ssh到机器人上,然后运行主节点

ssh链接机器人 ssh burger@172.20.10.12
roscore

再在机器人上启动机器人

roslaunch turtlebot3_bringup turtlebot3_robot.launch

在[Remote PC]中,运行turtlebot3_slam.launch启动文件。turtlebot3_slam功能包只包含一个launch文件。运行后,将运行robot_state_publisher节点和slam_gmapping节点,其中robot_state_publisher节点将两个轮子和每个关节的三维位置和
方向信息以TF形式发布,而slam_gmapping节点用于绘制地图。另外,描述包含机器人的外观信息的URDF的robot_model也会被设置。

$ export TURTLEBOT3_MODEL=burger
$ roslaunch turtlebot3_slam turtlebot3_slam.launch

运行RViz可视化工具RViz,以便在SLAM过程中可以直观地确认结果。运行时如果附加如下所示的“-d”选项,则从一开始就会添加有关显示(display)的插件,会比较方便。

$ export TURTLEBOT3_MODEL=burger
$ rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz

然后通过直接遥控机器人并执行SLAM操作,此时发出的/scan和/tf话题存储在名为scan_data的bag文件中。可以在后期使用此文件创建地图,也可以重现绘制地图过程中的/scan和/tf话题,而无需重复做实验。可以把它想象成来自实验的话题数据的副本。以下命令的-O选项是指定输出文件名称的选项,这将会把输出内容保存为叫做“scan_data.bag”的bag文件。

rosbag record -O scan_data /scan /tf

以下命令允许用户手动遥控机器人并执行SLAM操作。这里重要的是不要过快改变机器人的速度,也不要以过快的速度前进、后退或旋转。移动机器人时,机器人必须扫描要测量的环境的每个角落。这需要经验和技巧,因此需要在大量的SLAM实验中积累经验。

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

最后可以开始绘制地图了

现在已经完成了所有的准备工作,让我们运行map_saver节点来创建一个地图吧。当移动机器人时,机器人会根据测位(odometry)、tf信息和传感器的扫描信息来创建地图。这可以在我们刚刚运行的RViz中看到。创建的地图保存在运行map_saver的目录中。除非指定了文件名,否则保存为实际地图文件map.pgm和包含地图信息的和map.yaml文件。如下命令中的“-f”选项是指定保存地图文件的目录及文件名的选项。例如,如果指定为“~/map”,则“~”意味着用户目录,而“map”意味着要保存为map.pgm和map.yaml文件。

rosrun map_server map_saver -f ~/map/map

保存完地图后,就可以跟RVIZ结合使用了

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map/map.yaml 

 

 

 

 

 

  • 9
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【资源说明】 基于单线激光雷达SLAM建图与路径规划c++实现源码+项目说明(SLAM建图、定位、路径规划).zip 单线激光雷达SLAM建图与路径规划 使用的硬件:autolabor pro1小车、小觅双目相机(S1030标准版本)、IntelNUC迷你主机、显示器、2D激光雷达 Delta-1A 使用的软件:ubuntu 16.04 LTS、ROS-kinetic、小觅驱动、autolabor pro1小车驱动、Delta-1A驱动、VINS-Fusion算法、ROS-navigation导航包、gmapping建图算法、cartographer_ros建图算法 ## tf介绍 tf变换:map(地图坐标系)-->odom(里程计坐标系)——>base_link(小车基座坐标系)——>传感器坐标系(lidar、camera) ---- map-->odom 由建图算法提供 ---- odom --> base_link 由小车驱动提供 ---- base_link --> 传感器坐标系 根据传感器在小车上安装的位置确定,使用static_transform_publisher静态坐标转换来设置 所需传感器数据类型: sensor_msgs/LaserScan 使用Delta-1A驱动发布的雷达扫描话题,话题名:/scan 所需里程计信息数据类型:nav_msgs/Odometry 使用autolabor pro1发布的里程计,话题名:/wheel_odom ## 建图 采用gmapping与 cartographer_ros建图算法分别进行建图 ### gmapping建图:(雷达+小车) 打开终端,执行如下指令: $ cd ~/catkin_ws_lidar_slam/ $ source devel/setup.bash $ roslaunch autolabor_box_launch create_map_gmapping.launch ####打开小车urdf模型、驱动、键盘控制节点、打开雷达驱动、打开gmapping节点、打开rviz可视化节点 ####此时使用键盘的上下左右键控制小车移动,开始建图 ####建图完成后,开启新的终端执行如下指令,保存地图: $ rosrun map_server map_saver -f map_name ####保存地图 map_name为保存地图的名称,运行结果,会生成2个文件,后缀名分别为 .pgm .yaml ### cartographer_ros建图:(雷达+小车) ##打开终端,执行如下指令: $ cd ~/catkin_ws_lidar_slam/ $ source devel/setup.bash $ roslaunch autolabor_box_launch create_map_cartographer.launch ####此时使用键盘的上下左右键控制小车移动,开始建图 ####建图完成后,开启新的终端执行如下指令,保存地图: $ rosrun map_server map_saver -f map_name ### cartographer_ros建图:(雷达+小车+IMU) $ cd ~/catkin_ws_lidar_slam/ $ roslaunch autolabor_box_launch create_map_cartographer_imu.launch ####此时使用键盘的上下左右键控制小车移动,开始建图 ####建图完成后,开启新的终端执行如下指令,保存地图: $ rosrun map_server map_saver -f map_name ## 定位与路径规划 分别使用gmapping建图算法与cartographer_ros建图算法建立的地图进行定位与路径规划 ### gmapping算法建立的地图进行定位与路径规划 打开终端,执行如下指令: $ cd ~/catkin_ws_lidar_slam/ $ source devel/setup.bash $ roslaunc 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值