turtlebot3 Slam+nvigation仿真 ROS-lunar

2023-05-16

Date: 2017.09.06
Author: SuperDeveloper
Description: Slam simulation

说明:
1.Slam 初学笔记,搭建slam仿真环境;
2.文章里的连接可能会由于项目变更失效,因此如果不能下载的时候可以尝试按照文中的方法查找链接;
3.文章里涉及到路径都使用的是绝对路径,方便了解目录位置,实际操作中不必如此;
4.演示路径都是在/home/work/目录下,注意切换成自己的路径。
环境:ubuntu16.04 LTS ,ROS lunar

创建工作空间:

$ mkdir –p ~/work/ros/src
$ cd ~/work/ros/src
$ catkin_init_workspace

然后进入ros目录(src的上层目录)

$ cd ~/work/ros
$ catkin_make

执行完后会多出几个文件夹,包含devel

$ echo "source ~/work/ros/src" > ~/.bashrc
$ source ~/work/devel/setup.bash

.bashrc是用户home目录(~/)下的隐藏文件,每次打开一个Terminal都会执行一次里面的脚本,这样就不用每次打开命令窗口都导入一次路径。

安装SLAM软件

安装依赖包:

$ sudo apt-get install ros-lunar-navigation

在lunar中很多功能包的名字和indigo中是一样的,当你不确定的时候输入ros-lunar-然后按Table键,再找你要的功能包就好了。

然后在WIKI搜索gmapping,在主页上找到源代码链接

$ cd ~/work/src
$ git clone  https://github.com/ros-perception/slam_gmapping.git 

同样在WIKI上也可以找到hector-mapping

$ git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git

hector-mapping跟gmapping都是平面SLAM软件,两者功能上是一样的,两个选一个即可,具体说来gmapping建出的地图精度非常依赖于里程计的精度,如果你的里程计比较次,就选hector-mapping就行了。

仔细查看WIKI会发现hector-mapping和gmapping依赖openslam_gmapping,点击找到链接

$ git clone https://github.com/ros-perception/openslam_gmapping.git

安装turtlebot3:

依然在src目录

$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
$ git clone https://github.com/ros-teleop/teleop_twist_keyboard.git

回到上一级目录

$ cd ~/work/ros
$ catkin_make

编译完成即可

启动仿真环境

打开Terminal

$ export TURTLEBOT3_MODEL=burger

每次打开Termina运行turtlebot3相关的包都要执行一次上诉指令。同样你可以把这句写入~/.bashrc文件里面。
启动gazebo

$ roslaunch turtlebot3_gazebo turtlebot3_world.launch

用TAB键可自动补全,如果不能补全说明软件没安装上,或者没有导入工作空间的setup.bash,参考本文前面部分
启动rviz

$ roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

启动SLAM

打开一个Terminal

$ roscore &
$ roslaunch turtlebot3_slam  turtlebot3_slam.launch

在roscore 后面加一个&表示后台运行。
点击rviz的Add按钮,添加一个Map类型,topic输入/map,勾选刷新
再打开一个Terminal

$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

通过键盘进行控制,进行控制前请阅读Terminal里的操作说明
I 前进
U 左转
O 右转

M ,<, >, 后退

nvigation自主导航

在SLAM创建地图完成后保存地图

$ rosrun mapserver mapsaver –f ~/work/ros/test_map

启动nvigation

$ roslaunch turtlebot3_nvigation turtlebot3_nvigation.launch map_file=~/work/ros/test_map.yaml

然后在rviz中用global箭头设定目标位置和方向,停止之前的键盘输入,开始自动导航

记录数据:
进入需要保存数据的目录,打开Terminal

$ rosbag record –a

停止录入直接ctrl+c
停止之前打开的除roscore 和rviz之外的命令窗口,回放数据

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

turtlebot3 Slam+nvigation仿真 ROS-lunar 的相关文章

  • ROS2踩坑记录

    Vscode 显示 找不到module 以此选择 设置 Python 在setting json中编辑 在 python autoComplete extraPaths 中添加额外的第三方库路径 如 opt ros foxy lib pyt
  • 激光雷达LMS111在ROS上的使用

    LMS111 10100 在ROS上的测试与使用 准备工作 设备 硬件 LMS111 101000激光雷达 软件 ubuntu16 04 ROS 开始 设备连接 将激光雷达与处理器 电脑 工控机等 通过以太网连接好 激光雷达默认的IP地址为
  • 无人车

    1 无人车四大核心技术 自动驾驶实际包含三个问题 一是我在哪 二是我要去哪 三是如何去 第一个问题是环境感知和精确定位 无人车需要的是厘米级定位 厘米级定位是无人驾驶的难点之一 不光是车辆本身的语义级定位 还有一个绝对坐标定位 第二个问题是
  • 舒尔补-边际概率-条件概率

    margin求边际概率的时候喜欢通过舒尔补的形式去操作信息矩阵 如p b c 求积分p a b c da 从上图可知 边缘概率直接看协方差矩阵比较方便 边际概率的方差就是取对应联合分布中相应的协方差块 信息矩阵是由舒尔补的形式计算 此形式也
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • 【Pytorch论文相关代码】使用SOLD2预训练好的模型检测与匹配线段(自己的数据集)

    文章目录 前言 使用流程 检测与匹配结果 前言 论文链接 SOLD2 Self supervised Occlusion aware Line Description and Detection 论文源码 https github com
  • rosprofiler 安装和使用

    rosprofiler wiki 页面 http wiki ros org rosprofiler rosprofiler package 下载rosprofiler和ros statistics msgs 放到工程目录下编译 https
  • Ubuntu18.04安装pcl(过程/坑记录式教程)

    Ubuntu18 04安装pcl 1 下载pcl 2 安装依赖项 3 编译 4 安装 5 网上教程说要安装QT5和VTK 但按照本文的 本文记录了安装时出现的问题 出错的安装命令也记录了 建议浏览一遍再参考 不要错用了错误的指令 1 下载p
  • LOAM算法详解

    激光SLAM 帧间匹配方法 Point to Plane ICP NDT Feature based Method 回环检测方法 Scan to Scan Scan to Map LOAM创新点 定位和建图的分离 里程计模块 高频低质量的帧
  • 最快实现一个自己的扫地机

    作者 良知犹存 转载授权以及围观 欢迎关注微信公众号 羽林君 或者添加作者个人微信 become me 扫地机介绍 扫地机器人行业本质是技术驱动型行业 产品围绕导航系统的升级成为行业发展的主旋律 按功能划分 扫地机器人分为四大系统 即导航系
  • 程序“catkin_init_workspace”尚未安装。 您可以使用以下命令安装: sudo apt install catkin

    程序 catkin init workspace 尚未安装 您可以使用以下命令安装 sudo apt install catkin 问题如图 先贴上解决后的效果 运行环境 ubuntu 16 04 ros版本 kinetic 问题解释 这个
  • LIO-SAM运行自己数据包遇到的问题解决--SLAM不学无数术小问题

    LIO SAM 成功适配自己数据集 注意本文测试环境 Ubuntu18 04 ROS melodic版本 笔者用到的硬件以简单参数 激光雷达 速腾聚创16线激光雷达 RS Lidar 16 IMU 超核电子CH110型 9轴惯导 使用频率1
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2
  • 如何将从 rospy.Subscriber 数据获得的数据输入到变量中?

    我写了一个示例订阅者 我想将从 rospy Subscriber 获得的数据提供给另一个变量 以便稍后在程序中使用它进行处理 目前 我可以看到订阅者正在运行 因为当我使用 rospy loginfo 函数时 我可以看到打印的订阅值 虽然我不
  • 在 Python 3 中导入 Rosbag

    我正在尝试从 Python 3 读取 rosbag 文件 我安装了 ROS2 Eloquent Elusor 它应该支持 Python 3 当我跑步时 import rosbag bag rosbag Bag test bag 从Pytho
  • 我的代码的 Boost 更新问题

    我最近将 boost 更新到 1 59 并安装在 usr local 中 我的系统默认安装在 usr 并且是1 46 我使用的是ubuntu 12 04 我的代码库使用 ROS Hydro 机器人操作系统 我有一个相当大的代码库 在更新之前
  • 无法在 ROS 中使用本地安装的 Protocol Buffer

    我已经安装了协议缓冲区 https developers google com protocol buffers 本地 ROS包的目录结构如下 CMakeLists txt package xml include addressbook p
  • 在 ROS - Python 中使用来自多个主题的数据

    我能够显示来自两个主题的数据 但无法在 ROS 中实时使用和计算这两个主题的数据 用 Python 代码编写 您有想法存储这些数据并实时计算吗 谢谢 usr bin env python import rospy import string
  • 如何使用 PyQT5 连接和分离外部应用程序或对接外部应用程序?

    我正在使用 ROS 为多机器人系统开发 GUI 但我对界面中最不想做的事情感到困惑 在我的应用程序中嵌入 RVIZ GMAPPING 或其他屏幕 我已经在界面中放置了一个终端 但我无法解决如何向我的应用程序添加外部应用程序窗口的问题 我知道
  • 如何从里程计/tf数据获取投影矩阵?

    我想将视觉里程计的结果与 KITTI 数据集提供的事实进行比较 对于地面中的每一帧 我都有一个投影矩阵 例如 1 000000e 00 9 043683e 12 2 326809e 11 1 110223e 16 9 043683e 12

随机推荐

  • 调试rviz,并解决问题“For frame [laser]: Fixed Frame [map] does not exist”

    以rplidar为例 xff0c 运行命令 roslaunch rplidar ros rplidar launch 然后运行rviz xff0c 查看输出的雷达扫描数据 rosrun rviz rviz结果如下 xff1a 可以看到什么都
  • 解决ssh中的”Connection closed by 10.0.0.21“问题

    远程的电脑是个新安装的ubuntu xff0c 在本地执行ssh时 xff0c 出现错误 Connection closed by 10 0 0 21 解决步骤 xff1a 首先保证远程PC的ssh 服务启动 xff0c 使用命令ps e
  • navigation 调试 -2- 小车的配置问题

    1 确定传感器 xff08 sensors xff09 在小车的位置 影响 xff1a 导航 xff0c 建图 a 前提是使用kobuki机器人模板 xff0c 传感器使用深度 43 rgb摄像头 xff08 例如kinect xff09
  • Building ceres-solver fail with eigen3 "error: no type named ‘Literal’ in ‘struct Eigen::NumTraits"

    以前编译ceres solver没有出现过问题 xff0c 最近在编译时报出一个问题 xff1a 75 Building CXX object internal ceres CMakeFiles jet test dir jet test
  • c++中nan,inf详解

    nan xff1a not a number 非数字 注意事项 xff1a 对负数开方sqrt 1 0 对负数求对数 log 1 0 0 0 0 0 0 0 inf inf inf inf inf这些操作都会得到nan 0 0会产生操作异常
  • 经纬度的多种格式和转换方式

    格式 方式格式单位用途 注意事项度 d dd ddddddd度百度地图和google地图度 分 d ddmm mmmmmmdd单位是度 xff0c mm mmmmmm单位是分GPGGA度 分 秒 d ddmmss ssdd单位是度 xff0
  • 【Apollo】supervisor组件的应用

    Supervisor 一个client server系统 xff0c 用来控制一系列进程在UNIX like操作系统上 supervisord server xff1a 响应client端的命令 xff0c 控制进程启动 xff0c 停止
  • ubuntu 无登录界面,内核出错

    内核错误的原因 pc出现没有正常关机而直接下电 破坏内核文件 就有可能造成内核错误 在升级内核时 强制pc下电 也有可能造成内核错误 问题现象 显示ubuntu背景偏彩色的图片 但不会弹出登录窗口 解决方式 重新上电按下ESC 进入ubun
  • rplidar ros sdk 无原因挂死情况分析解决

    今天在rplidar sdk上遇到个问题 怀疑以前也遇到过 这里记录一下 问题环境 rplidar A3 43 ubuntu16 04 问题现象 运行rplidar sdk 无原因程序死掉 无错误日志 问题定位及解决 想查看core的堆栈信
  • 使用wget命令https资源下载不下来的解决办法

    使用wget命令下载https资源但是下载不下来 xff0c 这是可以将wget https xxxxx 修改为 wget http xxxxx 如果liunx网络不稳定 xff0c 可能会出现断了的情况 xff0c 可以开启断点续传的功能
  • (无人机方向)ros小白学习之路(四)ROS通信机制---服务通信

    文章目录 前言ROS服务通讯定义应用场景实现0 Server注册1 Client注册2 ROS Master实现信息匹配3 Client发送请求4 Server发送响应 服务通信自定义srv创建功能包 然后创建srv文件夹 再创建Addin
  • 修改双系统(win10+ubuntu)启动顺序和启动时间

    安装了ubuntu16 04后 xff0c GNU GRUB引导的默认启动项是ubuntu xff0c 如果希望默认启动项是windows xff0c 修改方法如下 xff1a step1 进入Ubuntu系统 xff0c 打开终端 xff
  • 虚拟帧缓冲驱动

    17 2 2 虚拟帧缓冲驱动 嵌入式Linux系统开发全程解析 是一本全面介绍嵌入式Linux开发的专著 xff0c 书中涵盖了程序生成工具 调试工具 引导加载器 Linux系统结构 Linux内核 驱动程序 用户空间编程 用户空间中间件等
  • 神经网络每次输出不一样,神经网络输出值相同

    BP神经网络最后得出的误差很大 1 看看是不是训练效果好 xff0c 预测效果不好 如果是这样那就是过拟合 网上搜搜有很多解决过拟合的方法 2 如果训练和预测都不好 xff0c 那就是模型有问题 可能原因是 xff08 1 xff09 数据
  • 深度神经网络应用实例

    深度神经网络目前有哪些成功的应用 深度学习最成功的应用是在音视频的识别上 xff0c 几乎所有的商用语音识别都是深度学习来完成的 其次深度学习应用最成功的领域就是图像识别 xff0c 目前识别准确率已经超越人类 深度学习成了图像识别的标配
  • 研究pixhawk的makefile的结构(-)

    首先研究 xff50 xff49 xff58 xff48 xff41 xff57 xff4b 的 xff4d xff41 xff4b xff45 xff46 xff49 xff4c xff45 的结构是怎样的 方便以后开发测试 xff11
  • 制作ROS移动机器人地盘

    制作ROS移动机器人地盘 摘要概述硬件需求车体设计电路设计程序设计PID控制轮速 摘要 本教程讲述如何利用扫地机轮子制作ROS移动机器人地盘 概述 原本不打算自己造轮子的 xff0c 但是网上的移动机器人地盘要么巨贵 对于学生党 xff0c
  • Lumia520刷安卓教程

    Date 2017 09 02 Author SuperDeveloper Descreption install android on luima 520 devices Email na1206 64 live com 警告 本教程只适
  • openwrt编译及第一个安装包教程

    Date 2017 03 14 Made SuperDeverloper Email na1206 64 live com Target For mt7688 based board 说明 xff1a 本人在学习过程中走了不少弯路 xff0
  • turtlebot3 Slam+nvigation仿真 ROS-lunar

    Date 2017 09 06 Author SuperDeveloper Description Slam simulation 说明 xff1a 1 Slam 初学笔记 xff0c 搭建slam仿真环境 xff1b 2 文章里的连接可能