Turbot入门教程-实现SLAM建图和自主导航

 znjrobot   2019-01-21 13:23   237 人阅读  0 条评论

Turbot入门教程-实现创建地图和自主导航

说明:

  • 介绍使用Turbot,利用Gmapping创建地图和利用AMCL自主导航

创建地图:

  • 主机上,新终端,启动turtlebot

roslaunch turtlebot_bringup minimal.launch
  • 效果如下:

请输入图片描述

  • 主机上,新终端,启动gmapping,利用kinect v1实现获取深度速度并转为激光数据

roslaunch turtlebot_navigation gmapping_demo.launch
  • 效果如下:

请输入图片描述

  • 从机上,新终端,启动rviz

roslaunch turtlebot_rviz_launchers view_navigation.launch
  • 显示效果:

请输入图片描述

  • 从机上,新终端,启动键盘控制

roslaunch turtlebot_teleop keyboard_teleop.launch
  • 效果如下:

请输入图片描述

  • 通过键盘控制Turbot在房子内来回走动,生成房子的地图。

  • 效果如下:

请输入图片描述

保存地图:

  • 新建目录:

mkdir ~/map
  • 保存地图:

rosrun map_server map_saver -f /home/ubuntu/map/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(语义/符号)应该被反转(阈值的解释不受影响)。

自主导航

  • 关闭之前主从机打开所有终端

  • 主机上,新终端,启动minimal.launch

roslaunch turtlebot_bringup minimal.launch
  • 主机上,新终端,启动amcl_demo.launch, 并指定地图

roslaunch turtlebot_navigation amcl_demo.launch map_file:=/home/ubuntu/map/zhizaokongjian.yaml
  • 从机上,新终端,启动view_navigation.launch

roslaunch turtlebot_rviz_launchers view_navigation.launch --screen
  • 效果如下:

请输入图片描述

  • 初始化位置,选择2D Pose Estimate,标注机器人在地图上的位置和方向,按住鼠标左键拉向某个方向,如图:

请输入图片描述

  • 设置目标位置,选择“2D Nav Goal”, 标注机器人将要到达地图上的位置和方向,按住鼠标左键拉向某个方向,如图:

请输入图片描述

  • 自动到达目标,如图:

请输入图片描述


本文地址:http://www.rosrobot.cn/?id=279
版权声明:本文为原创文章,版权归 znjrobot 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?