TurtleBot3是TurtleBot系列中的第三代产品,它在二代的基础之上做了一些改进,并开发了一些新功能,以补充其前身缺乏的功能和满足用户的需求。TurtleBot3采用机器人智能驱动器Dynamixel驱动,是一款小型的、可编程的、基于ROS的高性价比移动机器人,可用于教育、研究和产品原型制造。

 一、Turtlebot3安装

git指令有时候受网络影响提示失败,需要多试几次。

cd ~/catkin_ws/src
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/catkin_ws
rosdep install --from-paths src -i -y
catkin_make

执行rosdep intall 时报错:

更换指令:

rosdep install --from-paths src --ignore-src --rosdistro=melodic -y -i -r

安装成功:

source环境变量。

echo "source ~/catkin_ws/devel/setup.bash " >> ~/.bashrc
source ~/.bashrc

根据所选用的TB3机器人是Burger还是Waffle,将其作为环境变量加入~/.bashrc文件,以方便后续使用。否则每次运行程序都需要先输入“export TURTLEBOT3_MODEL=burger”或者“export TURTLEBOT3_MODEL=waffle”。

echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
source ~/.bashrc

检查环境变量设置是否成功:

env | grep TURTLEBOT3

执行结果:

 二、运行仿真turtlebot3_fake.launch

roslaunch turtlebot3_fake turtlebot3_fake.launch

报错:

rviz

解决:

#重启终端
catkin_make
roslaunch turtlebot3_fake turtlebot3_fake.launch

节点关系查看:rqt_graph

 三、运行仿真 turtlebot3_world.launch

roslaunch turtlebot3_gazebo turtlebot3_world.launch

报错,查信息是虚拟机的原因:

解决:关闭GPU,重启ubuntu:

export SVGA_VGPU10=0

重新运行launch文件:

roslaunch turtlebot3_gazebo turtlebot3_world.launch

gazbo运行成功,但仍然有报错:

解决:将~/.ignition/fuel/config.yaml中的 https://api.ignitionfuel.org 改为 https://api.ignitionrobotics.org即可。

gedit ~/.ignition/fuel/config.yaml

文件内容换成以下:

---
# The list of servers.
servers:-name: osrfurl: https://api.ignitionrobotics.org# -# name: another_server# url: https://myserver# Where are the assets stored in disk.
# cache:
#   path: /tmp/ignition/fuel

最终运行结果:

四、turtlebot3在模型中的运动

新终端,启动gazebo节点

roslaunch turtlebot3_gazebo turtlebot3_world.launch

新终端,启动键盘节点

roslaunch turtlebot3_gazebo turtlebot3_house.launch

新终端,启动仿真节点

roslaunch turtlebot3_gazebo turtlebot3_simulation.launch

新终端,启动rviz

roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

执行后,可以看到在gazebo仿真环境中,仿真小车在环境中走动:

可以在RVIZ看到点云数据和小车的运动:

 五、仿真slam建图

步骤一:新终端,打开gazebo仿真

roslaunch turtlebot3_gazebo turtlebot3_world.launch

步骤二:新终端,启动slam程序

roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

第一次有报错,按提示,安装gmapping工具,重新运行roslaunch

sudo apt-get install ros-melodic-gmapping

运行结果可以看到slam扫到的点云数据

步骤三: 新终端,打开键盘控制,使用键盘控制小车运动

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

步骤四:新终端,保存地图

rosrun map_server map_saver -f ~/map

自动驾驶系列(七)使用turtlebot3仿真slam建图相关推荐

  1. SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图...

    SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航--2.google-cartographer机器人SLAM建图 摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在 ...

  2. SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——1.在机器人上使用传感器...

    SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航--1.在机器人上使用传感器 摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣 ...

  3. SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——3.ros-navigation机器人自主避障导航...

    SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航--3.ros-navigation机器人自主避障导航 摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习 ...

  4. SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——4.多目标点导航及任务调度...

    SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航--4.多目标点导航及任务调度 摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐 ...

  5. 基于turtlebot3实现SLAM建图及自主导航仿真

    来源丨古月居 turtlebot3简介 TurtleBot3是一个小型,低成本,完全可编程,基于ROS的移动机器人.它旨在用于教育,研究,产品原型和爱好应用的目的. TurtleBot3的目标是大幅降 ...

  6. ROS探索篇(三)基于turtlebot3实现SLAM建图及自主导航仿真

    0.turtlebot3简介 TurtleBot3是一个小型,低成本,完全可编程,基于ROS的移动机器人.它旨在用于教育,研究,产品原型和爱好应用的目的.TurtleBot3的目标是大幅降低平台的尺寸 ...

  7. ndtmapping建图_自动驾驶系列:激光雷达建图和定位(NDT)

    该系列主要为对前期工作进行梳理,以后所进行的工作也会部分在此记录. 使用NDT(正态分布变换)进行点云建图和定位 前言 定位模块是自动驾驶最核心的模块之一,定位又包括全局定位和局部定位,对于自动驾驶, ...

  8. 从零搭建一台基于ROS的自动驾驶车-----3.激光Slam建图

    系列文章目录 北科天绘 16线3维激光雷达开发教程 基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图 Nvidia Jetson Nano学习笔记–串口通信 Nvidia Jet ...

  9. 人工智能之自动驾驶系列(一):概要

    人工智能之自动驾驶系列(一):概要 蓬生麻中 http://blog.csdn.net/wangdaiyin/article/details/77403592 版权声明:本文系个人经多处资料学习.吸收 ...

最新文章

  1. mybatis使用if判断参数是否为空
  2. 第四十六章:SpringBoot RabbitMQ完成消息延迟消费
  3. 2.15_graph_图
  4. ubuntu创建wifi热点(android可识别)亲测可用
  5. Bolt界面引擎中XLUE布局XML文件节点属性配置详解
  6. Java 简单TCP文件传输
  7. 学习记录-FDD大规模MIMO系统的稀疏信道估计技术研究
  8. java replaceLast
  9. php implode key,PHP implode()用法及代碼示例
  10. linux网络测速qerf,kehu.one在线网速测试,网站测速工具,测网速,网站访问速度测试-boce.com...
  11. Queen Collisions(分行列模拟)
  12. android 项目练习:自己的词典app——生词本(一)
  13. matlab怎样编程形成软件_Matlab编程笔记之GUI程序转exe
  14. 分辨率与观赏距离和屏幕尺寸的关系
  15. 360笔试题2019年4月24日(彩球分篮子问题 )
  16. 手把手教你写第一个C语言程序
  17. 入局二手奢侈品赛道,考拉海购想象力几何?
  18. 华软2016校内选拔赛
  19. Vector BLF格式转ASC格式软件 QT+C++编写
  20. 小刀学习flink 之入门 hello word

热门文章

  1. android一键换机功能实现,Android 手机克隆/一键换机原理初探
  2. Google黑客常用搜索语句(新增)
  3. 2022年天津助理工程师职称申报材料和条件是什么呢?你知道吗?甘建二
  4. 4种方法教你如何用动态影像提升网页魅力
  5. python读音-python读音
  6. VSCode中Vue插件使用整理_Vue2开发插件
  7. 过渡动画 css3渐变
  8. HIT软件构造Lab1--过程分析
  9. 分享哈啰出行小程序架构演进之路
  10. EXCEL规范数据输入教程-验证身份证号