赞
踩
装完双系统以及配置好机器人后(参考博文:《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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。