首页 > 系统相关 >Ubuntu 的 ROS 操作系统 turtlebot3 gazebo仿真

Ubuntu 的 ROS 操作系统 turtlebot3 gazebo仿真

时间:2024-11-12 19:15:12浏览次数:3  
标签:turtlebot3 机器人 环境 TurtleBot3 Ubuntu ROS Gazebo

引言

  • TurtleBot3 Gazebo仿真环境是一个非常强大的工具,能够帮助开发者在虚拟环境中测试和验证机器人算法。
  • Gazebo是一个开源的3D机器人仿真平台,它能支持物理引擎,允许机器人在虚拟环境中模拟和测试。结合ROS,它能提供一个完整的开发环境,特别适合机器人领域的研究和开发。
  • 本文将介绍如何在ROS Noetic环境下安装和配置TurtleBot3 Gazebo仿真环境。通过这些步骤,在Gazebo中启动TurtleBot3模型,并开始进行路径规划、导航、避障等操作。

在这里插入图片描述


学习目标

  • 掌握在ROS Noetic环境下安装TurtleBot3 Gazebo仿真所需的依赖包和仿真包。
  • 学会在Gazebo中启动TurtleBot3的三种车模型,空白场景、默认世界和房屋环境三种环模拟世界环境。
  • 通过远程控制机器人并启用避障功能,了解TurtleBot3的基本操作方法。
  • 安装与自己Ubuntu版本对应的ROS版本,本文ROS Noetic Ninjemys 主要支持 Ubuntu 20.04 (Focal Fossa)。安装前请详细参考 Ubuntu版本、ROS版本与Python 版本之间的关系

在这里插入图片描述


学习内容

1 注意事项

  • 注意:本文内容对应的是远程PC(桌面或笔记本电脑),用于控制TurtleBot3。 请勿将此指令应用到TurtleBot3机器人上。
  • 首次启动模拟可能需要一些时间来完成环境设置。

2 TurtleBot3模拟环境

TurtleBot3支持在模拟中使用虚拟机器人进行编程和开发,主要有以下两种开发环境:

2.1 Fake Node + RViz
  • 功能:Fake Node是一种轻量级的模拟方式,可以结合3D可视化工具RViz一起使用。这种环境可以对机器人的基本模型和运动进行测试,比如行进路线和旋转等基础行为。

  • 局限性:由于Fake Node不支持传感器,因此不适合涉及传感器数据的开发任务,比如环境感知、SLAM(即时定位与地图构建)、避障等。

  • 适用场景:适合需要快速验证机器人模型和基本运动功能的场景,但不支持复杂的传感器相关任务。

2.2 Gazebo
  • 功能:Gazebo是一个强大的3D机器人仿真平台,支持多种传感器(如IMU、激光测距仪LDS、摄像头等),并能够逼真地模拟物理环境。这使得Gazebo能够应用于包括SLAM、导航、避障等传感器依赖的复杂任务中。

  • 优点:Gazebo不仅支持TurtleBot3的物理行为模拟,还可以通过ROS接口来接收传感器数据、控制机器人动作,并实时监控机器人在仿真环境中的表现。广泛应用于ROS开发者的项目中,是研究导航、路径规划、环境感知等功能的首选平台。

  • 推荐用途:由于其全面的功能支持,Gazebo非常适合复杂的机器人开发任务,比如基于传感器数据的路径规划、自动导航和避障等。

2.3 Gazebo教程
  • 如果需要详细了解Gazebo的使用方法,建议访问 Gazebo官方教程
  • 该教程提供了从基本安装、环境设置到高级开发功能的全面指导,适合各个水平的开发者。

3 安装Gazebo模拟包

  • 本教程使用ROS Gazebo包,因此需要安装适用于ROS1 Noetic的正确Gazebo版本。
  • 确保安装了TurtleBot3和TurtleBot3_msgs包,否则无法启动模拟。
# 克隆TurtleBot3仿真包
cd ~/catkin_ws/src/
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git

# 编译工作空间
cd ~/catkin_ws
catkin_make


4 启动模拟环境

TurtleBot3提供了三个不同的车模型与模拟世界环境。启动新的环境前,确保完全终止其它模拟环境。

4.1 车模型环境

4.1.1 TurtleBot3 burger

export TURTLEBOT3_MODEL=burger

TurtleBot3 burger 模型如下图所示:

在这里插入图片描述

4.1.2 TurtleBot3 bwaffle

export TURTLEBOT3_MODEL=waffle

TurtleBot3 waffle 模型如下图所示:

在这里插入图片描述

4.1.3 TurtleBot3 waffle_pi

export TURTLEBOT3_MODEL=waffle_pi

TurtleBot3 waffle_pi 模型如下图所示:

在这里插入图片描述

4.1.3 便捷设置

如果我们仿真开发时只用其中某一款,例如只用TurtleBot3 burger 。但是每次启动一个终端都需要设置TurtleBot3 的车模型,为了方便,我们直接在终端的配置文件中写入,每次打开终端会自动加载设置的某一款车模型。

# 打开.bashrc文件
sudo gedit ~/.bashrc

# 在文件末尾添加以下内容(burger车模型,其他同理)
export TURTLEBOT3_MODEL=burger

4.2 模拟世界环境

4.2.1 空白环境

# 便捷设置后可不用设置车模型
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch

TurtleBot3 空白环境如下图所示:

在这里插入图片描述

4.2.2 TurtleBot3默认世界

# 便捷设置后可不用设置车模型
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_world.launch

TurtleBot3 默认世界环境如下图所示:

在这里插入图片描述

4.2.3 TurtleBot3房屋环境

# 便捷设置后可不用设置车模型
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_house.launch

提示:首次启动TurtleBot3房屋环境时,地图下载可能需要数分钟,具体时间取决于网络状况。

TurtleBot3 房屋环境如下图所示:

在这里插入图片描述

4.3 Gazebo启动失败原因

4.3.1 环境变量未自动加载

  • 默认情况下,Gazebo 的环境变量(如路径设置等)可能没有在系统启动时加载,可以手动加载,也可类似4.1.3 便捷设置。
# 终端输入
source /usr/share/gazebo/setup.sh

4.3.2 Gazebo 与 ROS 环境的兼容性问题

  • Gazebo 与 ROS 有各自的环境配置,运行 ROS 的环境时可能会缺少 Gazebo 所需的一些特定配置,导致 Gazebo 启动失败。

4.3.3 多版本冲突

  • 如果系统中存在多个版本的 Gazebo 或相关依赖包,可能会导致 Gazebo 找不到正确的库文件或路径。
  • 手动执行 source /usr/share/gazebo/setup.sh 有助于指定正确的 Gazebo 配置。

5 键盘控制与自主避障

5.1 键盘远程控制TurtleBot3

要使用键盘远程控制TurtleBot3,在新终端窗口中启动teleoperation节点。

# 启动teleoperation节点
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

键盘远程控制方法如下图所示:

在这里插入图片描述

5.2 自主避障操作

一个简单的避障节点已准备好,可让机器人在遇到障碍时自动保持一定距离并转弯以避免碰撞。Ctrl + C结束teleop节点后,启动自主避障节点。

# 启动自主避障节点
roslaunch turtlebot3_gazebo turtlebot3_simulation.launch

5.3 使用RViz可视化数据

RViz可视化仿真运行时发布的主题数据。在新终端窗口中启动RViz。

# 启动RViz
roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

TurtleBot3 RViz可视化数据如下图所示:

在这里插入图片描述


小结

  • 本文通过详细的操作步骤,在TurtleBot3仿真环境中配置和运行机器人,并通过远程控制、避障等功能实现基本的机器人行为。
  • 利用RViz进行传感器数据的可视化展示,以便实时监控仿真过程。掌握这些技能为实际机器人应用开发和算法验证提供有力支持。

欢迎大家评论留言!!!


友情提示:

  • 专栏:Turtlebot3 PC端ROS环境搭建与仿真
  • 下一节:Ubuntu 的 ROS 2 操作系统 turtlebot3 gazebo仿真

标签:turtlebot3,机器人,环境,TurtleBot3,Ubuntu,ROS,Gazebo
From: https://blog.csdn.net/qq_45780647/article/details/143716527

相关文章

  • Ubuntu 的 ROS 2 操作系统 turtlebot3 gazebo仿真
    引言TurtleBot3Gazebo仿真环境是一个非常强大的工具,能够帮助开发者在虚拟环境中测试和验证机器人算法。Gazebo是一个开源的3D机器人仿真平台,它能支持物理引擎,允许机器人在虚拟环境中模拟和测试。结合ROS,它能提供一个完整的开发环境,特别适合机器人领域的研究和开发。......
  • ubuntu下配置vim插件,实现轻量级代码编辑器
    背景因为需要用虚拟机做实验,然后虚拟机配置的内存很小,如果使用vscode编辑器,内存占用太高,所以放弃,远程使用vscode通过sftp链接也会有很多bug,所以也放弃,鉴于以上。只能考虑使用vimvim的优点轻量级不需要gui的支持,可以在server和desktop版本之间不限制是使用vim插件安装cu......
  • 运维系列&虚拟机系列:Ubuntu Server 24.04.1 配置静态ip
    UbuntuServer24.04.1配置静态ipUbuntuServer24.04.1配置静态ip1.找到NetPlan配置文件2.cat一下3.我这里用的无线网卡,修改wlp1s0下的配置4.保存文件后,执行5.检查IP地址和网络连接UbuntuServer24.04.1配置静态ip实体机安装完后,记录一下静......
  • 搭建 Ubuntu 可视化界面
    操作场景VNC(VirtualNetworkConsole)是虚拟网络控制台的缩写。它是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发。VNC是基于UNIX和Linux操作系统的开源软件,远程控制能力强大,高效实用,其性能可以和Windows、MAC中的任何远程控制软件媲美。本文档指导您......
  • vm安装ubuntu 20.04 server并用vscode进行ssh远程连接
    最近写专业课作业需要用到vscode进行SSH连接ubuntuserver,自己摸索了一会终于实现效果,秉承着“取之于网络,还之于网络”的开源精神写了一篇总结博客,欢迎大家参考,如有不足之处也欢迎大家指出。文章参考:VSCodeSSH远程连接Ubuntu_visualstudio连接到本地unbuntu远程系统-CSDN博......
  • 使用 roslyn 的 Source Generator 自动完成依赖收集和注册
    在使用Hosting构建WPF程序提到,因为不使用Stylet默认的IOC容器,所以不能自动收集和注册View/ViewModel,需要动手处理。如果项目比较大,手动处理显然过于麻烦。这里使用roslyn的SourceGenerator自动完成依赖收集和注册。源码JasonGrass/WpfAppTemplate1:WPF+Styl......
  • win 11 开发板,windows,ubuntu虚拟机网络互通
    确保在同一个网段里面就行如果ping开发板不通,将win防火墙关闭了试一试虚拟机使用桥接模式,桥接到正确的网卡上,此处使用的是usb网卡编辑->虚拟机网络编辑器ubuntu手动设置桥接的网卡信息此处ens32是桥接的网卡ens33是NAT网卡windows也是同样设置,注意网段保持一致虚拟......
  • Ubuntu安装指定的python版本,不推荐直接装系统里
    Ubuntu安装指定的python版本,不推荐直接装系统里。因为依赖该版本的软件会打不开或崩掉(如ubuntu20.04的终端gnome-terminal依赖系统自带的python3.8,如果装成高版本,则终端只转圈,打不开) 如果硬要玩火,参见下述步骤。此处只做记录,不推荐这样搞。在conda虚拟环境里玩,稳当点。目前还没......
  • 未能加载文件或程序集“Microsoft.Xaml.Behaviors”或它的某一个依赖项
    autocadwpfcommunitytoolkit.mvvmcombobox选定项变化事件安装Microsoft.Xaml.Behaviors.Wpf包使用命名空间xmlns:i="http://schemas.microsoft.com/xaml/behaviors"那么comobox应该是<ComboBoxItemsSource="{BindingItems}"><i:Interaction.Trigger......
  • ubuntu 快速测试 cpu 基准水平
    Geekbench6https://www.geekbench.com/命令sudoaptinstallwgettar-ywgethttps://cdn.geekbench.com/Geekbench-6.3.0-Linux.tar.gz&&tar-xvzfGeekbench-6.3.0-Linux.tar.gz&&cdGeekbench-6.3.0-Linux./geekbench_x86_64结果分析完成后会提供链接,打开......