【学习笔记】ROS-古月居第6讲:机器人SLAM与自主导航

【学习笔记】古月居-ROS第6讲:机器人SLAM与自主导航

一、操作步骤

  1. 建图功能包:

    • gmapping
    • hector_slam
    • cartographer
    • ORB_SLAM
  2. 建图指令:

    • gmapping

      roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch		# 启动Gazebo并加载三维地图
      roslaunch mbot_navigation gmapping_demo.launch			# 启动gmapping导航包,并打开rviz进行建图
      roslaunch mbot_teleop mbot_teleop.launch				# 打开移动机器人键盘控制节点
      rosrun map_server map_saver -f cloister_gmapping		# 保存地图,并命名为 cloister_gmapping
      
      • 保存地图后得到.pgm.yaml文件:.pgm文件为地图图片(可用ps更改该图以修改地图);.yaml包含要加载的图片名称、地图分辨率(单位:m)、起始坐标(表示pgm图片左下角在rviz坐标系中的坐标)等等信息;
      • 三维地图(.world)在mbot_laser_nav_gazebo.launch内更改(如果使用雷达信息建图的话)
  3. 导航指令:
    在这里插入图片描述

    roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch		# 启动Gazebo仿真,并加载地图
    roslaunch mbot_navigation nav_cloister_demo.launch		# 启动导航节点,并打开rviz可视化
    python cal_dist.py		# 计算实际导航距离
    
    • 操作细节:

      • 通过rviz中的2D Pose Estimate选定移动机器人初始的大致位姿
      • 通过rviz中的2D Nav Goal选定导航目标点的位姿
    • 导航框架:move_base

    • 定位方法:

      • 里程计定位:只通过里程计数据处理/base和/odom之间的的TF变换

        注:/map与/odom坐标系均为全局坐标系,但/map系的原点为建图时原点(起点),/odom系的原点为导航时移动机器人放置的起点

      • AMCL定位:可以估算机器人在地图坐标系/map下的位姿信息,可以提供/base、/odom、/map之间的TF变换

    • 节点配置:

      • move_base: mbot_navigation/launch/move_base.launch
      • amcl: mbot_navigation/launch/amcl.launch
    • 轨迹绘制:

      • 每次需要重新绘制轨迹时,需先停掉cal_dist.py,然后刷新(关闭再打开)rviz中的path消息。

二、遇到问题

  1. 【踩坑指南】Cartographer踩坑指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值