turtlebot3仿真例子(二)----SLAM仿真实现

2023-05-16

turtlebot3地图构建
1、启动turtlebot3的world:

 roslaunch turtlebot3_gazebo turtlebot3_world.launch

2、启动slam导航包并配置方法:
Karto算法:

 roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=karto

Gmapping算法:

roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

其中slam_methods:=karto 命令为选择slam建图的算法,这里我只尝试了三种算法来实现,分别是gmapping,hector,karto,还有谷歌的cartographer算法,Frontier Exploration等等。
hector Mapping 功能包的安装指令为:

sudo apt-get install ros-kinetic-hector-mapping

Karto 功能包的安装指令为:

sudo apt-get install ros-kinetic-slam-karto

以及Cartographer安装指令:

sudo apt-get install ros-kinetic-cartographer ros-kinetic-cartographer-ros ros-kinetic-cartographer-ros-msgs ros-kinetic-cartographer-rviz

这个地方注意一下,由于谷歌开发的Cartographer是基于ROS melodic版本的,所以要在kinetic版本运行的话还需要进行以下指令进行安装:

$ sudo apt-get install ninja-build libceres-dev libprotobuf-dev protobuf-compiler libprotoc-dev
$ cd ~/catkin_ws/src
$ git clone https://github.com/googlecartographer/cartographer.git
$ git clone https://github.com/googlecartographer/cartographer_ros.git
$ cd ~/catkin_ws
$ src/cartographer/scripts/install_proto3.sh
$ rm -rf protobuf/
$ rosdep install --from-paths src --ignore-src -r -y --os=ubuntu:xenial
$ catkin_make_isolated --install --use-ninja
$ source ~/catkin_ws/install_isolated/setup.bash
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer

由于gmapping功能包在turtlebot3功能包中,就不在介绍。
3、运行键盘控制节点

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

gmapping建图:
gmapping建图效果
Karto建图:
Karto建图
hector建图:
在这里插入图片描述
4、保存地图

rosrun map_server map_saver -f ~/map

会在根目录下生成map.pgm和map.yaml文件:
在这里插入图片描述
map.yaml文件内容为:

  • image: testmap.png 地图图像的路径
  • resolution: 0.1 地图的分辨率 像素 或者/MI
  • origin: [0.0, 0.0, 0.0] 初始点位置 在地图上的坐标以及 航偏。航偏是指角度。
  • occupied_thresh: 0.65 当像素占据的概率大于 0.65时候认为是完全占据的。
  • free_thresh: 0.196 当像素占据概率小于0.196的时候,认为完全是空的
  • negate:是否反转黑白和占用(不影响阈值解释)
    slam建立的地图将会在导航中使用到,导航内容会之后再写。

另:这个部分做的实验都是通过调用功能包来实现slam建图的,我暂时并没有深入去学习slam,只是知道如何去用slam的成果,不过会继续深入学习的。
关于本次例子的几种slam算法,可以阅读大牛们的文章:

  • https://www.cnblogs.com/li-yao7758258/p/8213578.html
  • https://blog.csdn.net/Jeff_Lee_/article/details/77869987
  • https://blog.csdn.net/zyh821351004/article/details/47381135
  • https://blog.csdn.net/hzy925/article/details/78857241
  • https://blog.csdn.net/tiancailx/article/details/78590809
  • https://openslam-org.github.io/gmapping.html

有关gmapping的launch 文件中的参数配置见下一篇。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

turtlebot3仿真例子(二)----SLAM仿真实现 的相关文章

随机推荐

  • 机器学习一决策树

    决策树 一 基本流程 xff1a 决策树 xff08 decision tree xff09 是一种常见的机器学习方法 xff0c 以二分类任务为例 xff0c 我们希望从给定的训练数据集学得一个模型用于对未知样本进行分类 xff0c xf
  • Jetson AGX xavier 搭建ORB_SLAM3(ubuntu18)

    Jetson AGX xavier 搭建ORB SLAM3 ubuntu18 ORB SLAM3 Github https github com UZ SLAMLab ORB SLAM3 1 安装依赖 sudo apt get instal
  • PX4 GPS笔记

    20180509 xff1a orb publish auto ORB ID vehicle gps position amp report gps pos pub amp report gps pos amp gps orb instan
  • 使用github构建自己的博客

    背景 xff1a 某天偶然下看到同事的博客 xff0c 顿时被吸引了 xff0c 突然很想有一个自己的酷炫的博客 xff0c 就是那种光是背景就能玩一天的博客 xff08 好吧 xff0c 就是觉得好看 xff09 刚好昨天项目上线了 xf
  • 学习笔记(1):自己动手从0到1写嵌入式操作系统-C2.02 任务切换的实现

    立即学习 https edu csdn net course play 4605 82626 utm source 61 blogtoedu 解决了栈冲突的问题 为每个任务独立分配栈 在发生异常的时候 xff1a CPU会自动保存 xPSR
  • CLion 控制台输出中文乱码的解决方法

    照着这篇中的做即可 xff0c 亲测有效 xff1a CLion 控制台输出中文乱码 简书
  • Apollo 自动驾驶工程 x86迁移到ARM ORIN

    概述 最近工作主要关于自动驾驶工程跨平台迁移 xff0c 从原来的X86架构工控机形式迁移到英伟达Orin Soc xff0c 由于Orin是ARM以及这个嵌入式平台的内核是定制的 xff0c 所以遇到了很多问题 xff0c 这里分享出来
  • 在CentOS上安装 Docker

    官方网站安装教程 https docs docker com engine install centos sudo docker 是以管理员模式运行 卸载旧版本 sudo yum remove docker docker client do
  • 多线程的优点和缺点?什么场景适合使用多线程?

    由于多线程应用程序将程序划分成多个独立的任务 xff0c 因此可以在以下方面显著提高性能 xff1a 1 多线程技术使程序的响应速度更快 xff0c 因为用户界面可以在进行其它工作的同时一直处于活动状态 2 当前空闲的任务可以将处理器时间让
  • 相机内参和畸变参数进行校正程序

    当相机校正完成后 xff0c 会得到相机的外参 内参 畸变参数 通过内参和畸变参数可以得到相机校正后的图像 两种方法 xff0c 程序如下 xff1a include lt opencv2 opencv hpp gt include lt
  • (根据关键词)查找论文的一些途径

    以下方式都是在查找机器学习 深度学习相关的论文而发现的 目录 一 https arxiv org search cs 二 semanticscholar xff1a https www semanticscholar org search
  • Detected problems with api compatibility

    今天遇到了这个问题 xff0c 看来还是不要升到Android9 0了 xff01 待测试 xff1a https www cnblogs com qinxiaofei p 10075320 html
  • 在 Win10 系统下安装 JDK 及配置环境变量的方法

    首先 xff0c 在官网下载 JDK xff1a Oracle 官网 如上图所示 xff0c 在 Oracle 官网下载 JDK xff0c 有一点需要注意 xff0c 那就是在我们下载合适的 JDK 之前 xff0c 需要先点击 标记 1
  • APM 路径规划笔记

    20180711 xff1a 类名 xff1a AC WPNav 功能 xff1a 完成Auto Loiter Abmode模式中的路径规划 为计算方便设置默认值 xff0c 实际值有可能又变化 wp accel cms 61 100 wp
  • 程序员5大热门发展行业,就业迷茫的同学注意啦!

    信息化时代 xff0c 程序员成为各行业中的香饽饽岗位 xff0c 发展空间大 xff0c 薪资福利高 xff0c 因此最近几年转向程序员岗位的小伙伴越来越多 xff0c 不过因为这种 青睐 xff0c 使得程序员岗的竞争也越发大了 xff
  • Jetson TX2 初体验

    阅读原文请点击 摘要 xff1a 0 简介 Jetson TX2 1 是基于 NVIDIA Pascal 架构的 AI 单模块超级计算机 xff0c 性能强大 xff08 1 TFLOPS xff09 xff0c 外形小巧 xff0c 节能
  • 写毕业论文期间的一些收获和感想

    已经有好几天没有学Python了 xff0c 这几天一直在赶论文的进度 xff0c 虽然说拖延症害死人 xff0c 但毕竟写论文这件事在我心里的重要性实在无法排到很靠前的位置 xff0c 造成这些日子突击写论文的结果也是情理之中吧 而在写论
  • C/C++Linux服务器开发/后台架构师知识体系整理

    1 xff1a 精进基石 1 1 数据结构与算法 1 1 1 随处可见的红黑树 红黑树的应用场景 进程调度cfs xff0c 内存管理 红黑树的数学证明与推导 手撕红黑树的左旋与右旋 红黑树添加的实现与添加三种情况的证明 红黑树删除的实现与
  • Java 进口管制限制解除

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 由于国外的进出口限制 xff0c 对Java密码算法体系进行了一些限制 xff0c 为了解除限制 x
  • turtlebot3仿真例子(二)----SLAM仿真实现

    turtlebot3地图构建 1 启动turtlebot3的world xff1a roslaunch turtlebot3 gazebo turtlebot3 world launch 2 启动slam导航包并配置方法 xff1a Kar