介绍
Gazebo是一款3D动态模拟器,能够在复杂的室内和室外环境中准确有效地模拟机器人群。与游戏引擎相类似,Gazebo可以提供高保真度的物理仿真、一整套传感器模型以及用户界面和编程界面。
Gazebo典型用途包括:
• 测试机器人算法;
• 设计机器人;
• 用现实场景执行回归测试.
Gazebo几个主要特征包括:
• 支持多个物理引擎;
• 丰富的机器人模型和环境库;
• 支持各种各样的传感器;
• 方便的编程界面和图形用户界面。
版本说明
经典版Gazebo 11
过渡版Ignition Gazebo
稳定版趋势版Gazebo Harmonic
Gazebo was started in 2002. After over 15 years of development it was time for a significant upgrade and modernization. This upgrade also provided the opportunity to move away from a monolithic architecture to a collection of loosely coupled libraries.
These collection of libraries make up the new Gazebo. As a convention we refer to older versions of Gazebo, those with release numbers like Gazebo 9 and Gazebo 11 as “Gazebo Classic”. Newer versions of Gazebo, formerly called “Ignition”, with lettered releases names like Harmonic, are referred to as just “Gazebo”.
ROS2 与 Gazebo Classic
Gazebo Classic是指旧版本的Gazebo仿真器,它是一个被机器人社区广泛使用的模拟软件,已经有超过十年的历史。具体来说:
- 历史背景:Gazebo Classic代表了Gazebo的早期版本,它是一个成熟的仿真平台,专门为机器人和自主系统的设计、测试和验证提供支持。
- 特点:Gazebo Classic以其强大的物理引擎、直观的用户界面和广泛的机器人模型库而闻名。它允许用户创建复杂的仿真场景,包括地形、建筑、车辆和机器人,以测试算法和系统的性能。
- 局限性:尽管Gazebo Classic功能强大,但其架构相对封闭和单一,这限制了其扩展性和灵活性。此外,随着技术的发展,旧版本的维护和支持逐渐减少。
- 未来发展:由于Gazebo Classic的局限性,开发团队转向了Ignition Gazebo,这是一个基于模块化设计的全新一代仿真器,旨在提供更现代、更灵活的解决方案。Gazebo Classic的最新版本Gazebo 11标志着该系列的终结,未来的发展将集中在Ignition Gazebo上。
Gazebo 11是指Gazebo Classic的最新版本,同时也是该系列的最终发行版。具体来说:
- Gazebo Classic是一个基于SDF(Simulation Description Format)格式的3D物理模拟器,用于机器人研究和开发。
- Gazebo 11是这一经典系列的最新版本,它为用户提供了一个高保真的物理仿真环境,支持多个物理引擎、丰富的机器人模型和环境库,以及各种传感器的模拟。
- 这个版本特别强调了用户界面和编程接口的便利性,使得研究人员和开发者能够更高效地测试和验证机器人算法。
- 尽管Gazebo 11是最终版本,ROS(Robot Operating System)仿真团队已经开始将精力转向开发新的仿真软件Ignition,计划在不久的将来推出功能更强大的版本。
gazebo_ros_pkgs
gazebo_ros_pkgs 是一组ROS包,它们为在Gazebo 3D刚体机器人模拟器中模拟机器人提供了必要的接口。这些包通过ROS消息、服务和动态重配置与ROS系统集成,使得在ROS环境中使用Gazebo进行机器人仿真变得更加方便和高效。
主要功能特点:
- 利用现有的ROS标准插件:gazebo_ros_pkgs能够利用ROS社区中已有的标准插件,这些插件为Gazebo提供了丰富的功能扩展。
- 增强ros_control控制器的开箱即用支持:改进了对ros_control的支持,使得在Gazebo中模拟机器人时能够更方便地配置和使用控制器。
- 多种模拟传感器可用:提供了多种模拟传感器,如激光雷达、摄像头等,这些传感器可以直接在Gazebo环境中使用,无需额外配置。
ROS2 与 Ignition Gazebo
Ignition Gazebo是Gazebo仿真器的下一代版本,它提供了更先进的特性、更现代化的架构和更强大的仿真能力。Ignition Gazebo旨在提供更细粒度的控制以及更适合大型复杂仿真场景的特性。它基于插件的物理和渲染抽象,使得用户可以使用自己选择的引擎而无需重新编译仿真仿真器。此外,Ignition Gazebo还支持分布式仿真、高度可定制的用户界面等特性。
ros_ign 集成软件包概述
ros_ign: 这是一个元软件包(Metapackage),它提供了所有其他用于ROS和Ignition集成的软件包的集合。元软件包本身不包含代码,但它列出了所有相关的软件包,使得用户能够方便地安装和管理这些软件包。
ros_ign_image: 这个软件包提供了一个传输桥接,用于将Ignition仿真环境中的图像数据通过image_transport机制传输到ROS系统中。这对于需要处理图像数据的机器人应用尤为重要。
ros_ign_bridge: 这个软件包是ROS和Ignition之间的双向传输桥接。它允许ROS和Ignition之间的消息、服务和操作等数据的自由交换,从而实现了两个系统之间的无缝集成。
ros_ign_gazebo_demos: 这个软件包包含了一系列使用ROS和Ignition集成的演示示例。这些演示展示了如何在Ignition Gazebo仿真环境中运行ROS应用,并展示了集成的实际效果。
ros_ign_point_cloud: 这个软件包提供了一系列插件,用于将从Ignition Gazebo仿真环境中生成的点云数据发布到ROS系统中。这对于需要处理点云数据的机器人应用(如SLAM、路径规划等)非常有用。
ROS2 与 Gazebo 新版本
ROS 2 和 Gazebo 的不同版本之间有不同的集成支持和二进制包可用性。以下是一些关键版本的兼容性信息:
- Foxy:与 Citadel 版本的 Gazebo 集成,二进制包托管在 packages.ros.org。与 Edifice 版本的 Gazebo 集成仅支持从源代码编译。
- Galactic:与 Edifice 和 Fortress 版本的 Gazebo 集成,其中 Edifice 版本的二进制包托管在 packages.ros.org,而 Fortress 版本仅支持从源代码编译。
- Humble:与 Fortress、Garden 和 Harmonic 版本的 Gazebo 集成,其中 Fortress 版本的二进制包托管在 packages.ros.org,而 Garden 和 Harmonic 版本则通过特定的 gazebo packages 托管,或仅支持从源代码编译。
- Iron:与 Fortress、Garden 和 Harmonic 版本的 Gazebo 集成,但主要支持从源代码编译。
- Jazzy(计划于 2024 年 5 月 23 日发布):与 Garden 和 Harmonic 版本的 Gazebo 集成,其中 Harmonic 版本的二进制包托管在 packages.ros.org,而 Garden 版本仅支持从源代码编译。
- Rolling:与 Fortress、Garden 和 Harmonic 版本的 Gazebo 集成,其中 Fortress 版本的二进制包托管在 packages.ros.org,而 Garden 和 Harmonic 版本仅支持从源代码编译。
ros_gz
ROS 与 Gazebo 集成软件包 ros_gz 此仓库包含一系列软件包,用于在 ROS 和 Gazebo 之间提供集成:
ros_gz:元软件包,提供所有其他相关软件包。
ros_gz_image:单向传输桥,用于将 Gazebo 仿真中的图像数据通过 image_transport 传输到 ROS。
ros_gz_bridge:双向传输桥,允许 ROS 和 Gazebo 之间的消息、服务和操作等数据的自由交换。
ros_gz_sim:提供方便的启动文件和可执行文件,用于将 Gazebo 仿真与 ROS 结合使用。
ros_gz_sim_demos:包含使用 ROS-Gazebo 集成的演示示例。
ros_gz_point_cloud:插件,用于将从 Gazebo 仿真中生成的点云数据发布到 ROS。
安装
gazebo11
classic.gazebosim.org/tutorials?t…
Default installation: one-liner
-
Install
curl -sSL http://get.gazebosim.org | sh -
Run
gazebo
Alternative installation: step-by-step
-
Setup your computer to accept software from packages.osrfoundation.org.
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'You can check to see if the file was written correctly. For example, in Ubuntu Bionic (18.04), you can type:
cat /etc/apt/sources.list.d/gazebo-stable.listAnd if everything is correct, you should see:
deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main -
Setup keys
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - -
Install Gazebo.
First update the debian database:
sudo apt-get updateHint: make sure the apt-get update process ends without any errors, the console output ends in
Donesimilar to below:$ sudo apt-get update ... Hit http://ppa.launchpad.net bionic/main Translation-en Ign http://us.archive.ubuntu.com bionic/main Translation-en_US Ign http://us.archive.ubuntu.com bionic/multiverse Translation-en_US Ign http://us.archive.ubuntu.com bionic/restricted Translation-en_US Ign http://us.archive.ubuntu.com bionic/universe Translation-en_US Reading package lists... DoneNext install gazebo-11 by:
sudo apt-get install gazebo11 # For developers that work on top of Gazebo, one extra package sudo apt-get install libgazebo11-dev -
Check your installation
gazebo