文章目录

  • 前言
    • 在Turtlebot3进行SLAM仿真
      • 1 安装Turtlebot3依赖包
      • 2 创建项目并安装Turtlebot3
      • 3 使用Turtlebot3进行建图
      • 4 使用扫描地图进行自动导航仿真
  • 总结

前言

Turtlebot3(简称TB3)是继Turtlebot2之后,又一款ROS官方打造的软硬件学习平台,更小,更便宜,更好玩,该文章通过该项目提供的软件平台与例程进行SLAM简单介绍与实现。

  • SLAM实操入门(一):在已有WIN10的电脑上安装Ubuntu20.04

  • SLAM实操入门(二):安装ROS Noetic并运行“小乌龟”程序

  • SLAM实操入门(四):使用ROS连接自己的激光雷达并可视化扫描结果

  • SLAM实操入门(五):使用自己的激光雷达利用Gmapping算法建图

  • SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化

  • SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM


在Turtlebot3进行SLAM仿真

1 安装Turtlebot3依赖包

  • 打开终端,输入以下命令安装Turtlebot3依赖的包文件
sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro  ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation  ros-noetic-interactive-markers rviz

2 创建项目并安装Turtlebot3

  • 打开终端,输入命令创建名为"catkin_turtlebot3"的项目文件
mkdir catkin_turtlebot3
  • 进入项目文件“catkin_turtlebot3”
cd catkin_turtlebot3
  • 创建一个新文件“scr”用以储存环境等文件
mkdir src
  • 进入src文件
cd src
  • 将turtlebot3的源码从GitHub克隆至src文件中
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
  • 返回上一级文件夹并编译
cd ..
catkin_make

此时,Turtlebot3的已经下载并编译了
下一步对环境进行配置

  • 添加模型申明,用以设定打开后模型的样子
echo "export TURTLEBOT3_MODEL=waffle" >> ~/.bashrc
  • 对环境变量进行设置(与上一章ROS添加环境变量相同,可参考)
echo "source ~/catkin_turtlebot3/devel/setup.bash" >> ~/.bashrc
  • 很重要!完成后建议打开一个新终端,使用下面命令进行测试
echo $ROS_PACKAGE_PATH

如果显示当前项目的路径就表明设置成功


如果是以下情况,请再重新设置,或者新开一个终端测试(一定是再项目文件夹目录中运行)

至此,Turtlebot3的安装与配置就全部完成了

下面使用官方例程进行SLAM仿真

3 使用Turtlebot3进行建图

  • 打开新终端,进入项目文件“catkin_turtlebot3”
cd catkin_turtlebot3
  • ROS第一步,打开roscore
roscore
  • 打开新终端,输入命令启动Gazabo,是通过roslaunch命令启动src文件夹中特定节点
roslaunch turtlebot3_gazebo turtlebot3_world.launch

启动后得到打开了如下界面

  • 注意:如果启动界面一直卡在开头或打开后地图一片空白,可能是因为在路径中缺少turtlebot3_world文件夹
  • catkin_turtlebot3/src/turtlebot3_simulations/turtlebot3_gazebo/models
  • 打开新终端,启动SLAM进行建图,该命令是在可视化工具rviz中打开并进行SLAM
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

如果没有rviz包,可使用以下命令安装

sudo apt install rviz

打开后如图所示

  • 打开新终端,输入键盘控制的命令
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
  • 注意:该键盘控制是依靠按“W A D X”键增加速度,按S停止进行控制
    通过键盘移动机器人,完善地图的建立,直到自己满意


  • 打开新终端,输入命令保存地图
rosrun map_server map_saver -f ~/map

地图被保存至主目录中,包含2个文件

map.pgn:地图图片
map.yaml:地图信息

4 使用扫描地图进行自动导航仿真

  • 运动Gazabo
roslaunch turtlebot3_gazebo turtlebot3_world.launch
  • 读取地图并运行导航程序
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

点击上方红色箭头按钮:2D Nav Goal

随后在地图上任意地点点击设定导航目标位置,小车便开始自主规划移动

刚启动时会出现如下情况


可以点击界面上方绿色箭头:2D Pose Estimate

再点击小车在图片中的实际位置,移动小车后会对地图进行修复匹配。


总结

本文在Ubuntu中创建了新的工程项目“catkin_turtlebot3”,并配置了Turtlebot3的虚拟环境,使用官方例程进行了SLAM仿真。
需要重点注意的有ROS通信的关系,环境变量的设置。整个项目可能由于入门时对Ubuntu的不熟悉导致遇到一些奇怪的bug,可以多搜一搜去解决。

  • SLAM实操入门(一):在已有WIN10的电脑上安装Ubuntu20.04

  • SLAM实操入门(二):安装ROS Noetic并运行“小乌龟”程序

  • SLAM实操入门(四):使用ROS连接自己的激光雷达并可视化扫描结果

  • SLAM实操入门(五):使用自己的激光雷达利用Gmapping算法建图

  • SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化

  • SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM

SLAM实操入门(三):Ubuntu20.04安装Turtlebot3并运行SLAM例程仿真相关推荐

  1. SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化

    文章目录 前言 1 Velodyne激光雷达 2 配置网络 3 创建ROS工程 4 启动并可视化 5 录包与播放 总结 前言 好久没更新这部分了,最近在搞中期答辩的东西,简单补充一部分多线激光雷达建图 ...

  2. SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM

    文章目录 前言 1 A-LOAM 2 预备条件 2.1 Ubuntu和ROS 2.2 Ceres Solver(Ceres求解器) 2.3 PCL(Point Cloud Library) 3 创建A ...

  3. SLAM实操入门(五):无里程计仅使用激光雷达建图(GMapping算法)

    文章目录 前言 1 Gmapping算法 2 laser_scan_matcher库 2.1 安装laser_scan_matcher库 2.2 修改demo_gmapping.launch文件 3 ...

  4. ubuntu20.04安装到u盘+配置美化

    linux系统对于开发者而言更加方便,且相比于win to go,其对u盘的要求更低.所以,linux to go是一个不错的选择.在linux的众多发行版之中,ubuntu特别适合新手入门,在此记录 ...

  5. Ubuntu20.04安装与配置记录

    Ubuntu20.04安装与配置记录 原文地址:Ubuntu20.04安装与配置记录 一.Ubuntu系统盘制作 1.1 Windows环境下制作系统盘 下载Ubuntu系统,选择桌面版. 下载工具系 ...

  6. ubuntu20.04安装ROS及常见问题

    ubuntu20.04安装ROS及常见问题 一.ubuntu安装参考(双系统) 1.ios镜像官网下载地址: https://releases.ubuntu.com/?_ga=2.239339907. ...

  7. Ubuntu20.04安装,并Linux微信等

    Ubuntu20.04安装,并Linux微信等 一.Ubuntu20.04双硬盘双系统安装 电脑状况:256G+260G双固态硬盘,其中256G(sda)分C.D盘安装win10,460G(sdb)硬 ...

  8. ubuntu20.04安装PX4固件错误总结

    ubuntu20.04安装PX4固件错误总结 笔者小白一枚,意欲实现PX4"Hello Sky"仿真开发,在进行仿真模拟之前,需要在主机操作系统上安装开发人员工具链(Develop ...

  9. 【NPM】ubuntu20.04安装npm

    ubuntu20.04安装npm sudo apt install npm ubuntu20.04安装nodejs sudo apt install nodejs 1 package is looki ...

最新文章

  1. python单词词频字典_python利用多种方式来统计词频(单词个数)
  2. 磁铁对于小型直流电机的影响
  3. [UE4]网游中角色Pawn的移动位置同步以及RTS多角色同时移动的解决方案
  4. 权限问题导致zabbix无法监控mysql
  5. 经典C语言程序100例之二七
  6. 2020牛客暑期多校训练营(第一场)
  7. [Leetcode][第75题][JAVA][颜色分类][双(三)指针][计数排序]
  8. GIS人眼中的“云GIS”
  9. Java线程start()vs run()方法及示例
  10. mysql config.path_mysql之 mysql_config_editor/login-path 登录密码保护
  11. Java定时器Timer学习之一
  12. 【mmdetection】mmdetection数据处理pipline结果可视化
  13. poj 3268 bzoj 1631: [Usaco2007 Feb]Cow Party(最短路)
  14. mysql socket delphi_异步SOCKET分包和组包的一种通用算法
  15. Java后端面试题总结一
  16. Windows Server2008安装VC++2015运行库失败的解决方案
  17. 关于qt使用sqlist数据库的注意事项
  18. 高仿微信表情控件 -- LQREmojiLibrary
  19. 简述T568A和T568B的区别
  20. 计算机的内存储器应用范围,计算机的内存储器可与cpu什么交换信息

热门文章

  1. java对文件损坏校验
  2. Nvidia控制面板玩游戏最佳设置怎么调?
  3. 人脸识别SeetaFace6编译
  4. hihocoder 1505
  5. API_2 安装详细流程
  6. Python入门习题大全——汽车
  7. Windows通过服务名强行停止某个服务命令
  8. 登高自卑 | 我的Vue3入门与实践笔记
  9. 树莓派gpio编程c语言,树莓派gpio编程(一)控制Led灯
  10. 爬虫案例:手把手教你爬取图片