Turbot2入门教程-应用-实现gmapping建图(kinect V2版)
Turbot2入门教程-实现gmapping建图(kinect V2版)
说明:
- 介绍如何使用Turbot2通过kinect v2实现gmapping建图
步骤:
创建地图:
注意:启动tk1开发板后应该重拔usb-hub,否则可能会导致无法正常使用kinect V2的情况
- 主机上,新终端,启动turtlebot
roslaunch turbot_bringup minimal.launch
- 效果如下:
- 主机上,新终端,启动kinect v2
roslaunch turtlebot_navigation kinect2_cpu.launch
- 效果如下:
- 主机上,新终端,启动gmapping,利用kinect v2实现获取深度速度并转为激光数据
roslaunch turtlebot_navigation kinect2_gmapping_demo.launch
- 效果如下:
- 从机上,新终端,启动rviz
roslaunch turtlebot_rviz_launchers view_navigation.launch
- 显示效果:
- 从机上,新终端,启动键盘控制
roslaunch turbot_teleop keyboard.launch
- 效果如下:
- 通过键盘控制Turbot在房子内来回走动,生成房子的地图。
- 效果如下:
保存地图:
- 保存地图:
rosrun turbot_map saver zhizaokongjian
得到两个文件如下:
- zhizaokongjian.pgm 地图
- zhizaokongjian.yaml 配置
zhizaokongjian.yaml样例:
image: /home/ubuntu/map/zhizaokongjian.pgm
resolution: 0.050000
origin: [-12.200000, -12.200000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196
- 必填的字节:
image: 含占用信息的image文件的路径;可以是绝对路径,也可以是到YAML文件的相对路径。
resolution:地图的分辨率,meters/pixel
origin: 机器人相对地图原点的位姿,(x,y,yaw),yaw逆时针旋转(yaw=0表示没有旋转)。
occupied_thresh:单元占用的概率大于这个阈值则认为完全占用。
free_thresh: 单元占用的概率小于这个阈值则认为完全自由。
negate: 不论白色/黑色,自由/占用,semantics(语义/符号)应该被反转(阈值的解释不受影响)。
故障排除
故障一
相机启动和gmapping建图都正常运行,但是在rviz中出现没有扫描数据的情况如下图所示
- 此时在主机上打开新终端,运行下面的命令来检查是否存在扫描数据
rostopic echo /scan
- 检查结果如下
出现这种情况原因可能为Kinect V2使用时没用拆开其表面的塑料保护膜而导致扫描过程出现问题,所以拆开Kinect V2表面的塑料保护膜后再运行
rostopic echo /scan
命令,检查是否存在扫描数据存在扫描数据的效果图如下:
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号