【学习笔记】古月居-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踩坑指南

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

  1. Linux性能优化实战学习笔记:第四十六讲=====实战分析

    Linux性能优化实战学习笔记:第四十六讲 一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模 ...

  2. Slam学习笔记——ROS踩坑记录

    Slam学习笔记--ROS踩坑记录 1. 安装 2. ROS文件系统 2.1 工作区 2.2 包package 2.2.1 包的操作 2.2.2 描述文件package.xml 2.3 节点node ...

  3. ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航

    ROS中阶笔记(八):机器人SLAM与自主导航-机器人自主导航 文章目录 1 ROS中的导航框架 1.1 move_base 1.1.1 基于move_base的导航框架 1.1.2 安装 1.2.3 ...

  4. ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用

    ROS中阶笔记(七):机器人SLAM与自主导航-SLAM功能包的使用 文章目录 1 机器人必备条件 1.1 硬件要求 1.2 深度信息 1.2.1 激光雷达 1.2.2 kinect 1.3 里程计信 ...

  5. ROS学习笔记-ROS订阅和发布节点

    一个简单的ROS包,一个发布者,一个订阅者 刚开始学习ROS,参考网上的资料完成了测试节点的编写,记录一下. 个人习惯在home/Develop目录中做开发,于是在Develop目录下面创建了一个RO ...

  6. ROS学习笔记-ROS语音识别与语音输出[2]

    说明:代码部分是基于古月居前辈的例程,在此对胡老师表示感谢!! 语音识别与输出功能框图: main()函数: int main(int argc, char* argv[]) {// 初始化ROSro ...

  7. ROS学习笔记-ROS语音识别与语音输出[1]

    说明:代码部分是基于古月居前辈的例程,在此对胡老师表示感谢!! 语音识别功能框图: 调用过程: roscore rosrun robot_voice iat_publish rostopic pub ...

  8. SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别

    本文为我在浙江省北大信研院-智能计算中心-情感智能机器人实验室-科技委员会所做的一个分享汇报,现在我把它搬运到博客中. 由于参与分享汇报的同事有许多是做其他方向的机器人工程师(包括硬件.控制等各方面并 ...

  9. ROS古月居21讲笔记

    文章目录 1.C++&python极简教程: 1.1安装编译器(python是解析器) 1.2 for循环 1.3 while循环 1.4 面向对象 2.ROS命令行工具 3.初始化操作 3. ...

最新文章

  1. 阿提拉公司 java_Atitit  文件上传  架构设计 实现机制 解决方案  实践java php c#.net js javascript  c++ python...
  2. 【c语言】蓝桥杯算法训练 整除问题
  3. ubuntu16.04 彻底卸载MySQL
  4. 逻辑回归实例--乳腺癌肿瘤预测
  5. java中8种基本类型与运算符
  6. 基于长度特征的三文鱼好sea bass的区分,sesbass 比三文鱼长
  7. 别人家SDK的设计模式——Android Retrofit库源码解读
  8. Hive多字符列分割
  9. ios 不被遮挡 阴影_解决ios10导航栏底部阴影线条隐藏失效问题
  10. Ubuntu安装特定版本安装包
  11. 计算机系统 cpu课程,计算机操作系统
  12. Layui组件 sliderVerify 实现滑块验证
  13. 使用web.xml控制Web应用的行为
  14. jquery简单的选择添加下拉列表
  15. ubuntu安装 gcc 5.4.0
  16. threejs添加天空盒
  17. 北大青鸟汉字注释机内码_北大青鸟消防主机如何编写汉字注释?
  18. javaWeb连接数据库实现简单的登陆注册功能
  19. vue 上传图片进行压缩图片
  20. 回归预测 | MATLAB实现SSA-LSTM和LSTM多输入单输出

热门文章

  1. macOS Catalina 之「随航」自带扩展屏
  2. 使用双屏如何设置开机自动变复制屏或扩展屏教程
  3. 【视频学习】超级人脉术-快速找到你想找的任何人
  4. 全功能好用管道应力CAESAR II 2014 v7.00 WinXP_7-ISO 1DVD管道设计应力分析软件
  5. wireshark过滤包规则
  6. Visual Studio 2013 MYSQL下载
  7. 【Unity3D开发小游戏】《炸弹人游戏》Unity开发教程
  8. Vue使用阿里巴巴iconfont彩色字体
  9. [转载]Zhuangbility~
  10. 计算机知识在手机上能学吗,如何学习计算机知识?