Ubuntu 安装 Gazebo

354 阅读7分钟

介绍

Gazebo是一款3D动态模拟器,能够在复杂的室内和室外环境中准确有效地模拟机器人群。与游戏引擎相类似,Gazebo可以提供高保真度的物理仿真、一整套传感器模型以及用户界面和编程界面。

Gazebo典型用途包括:

• 测试机器人算法;

• 设计机器人;

• 用现实场景执行回归测试.

Gazebo几个主要特征包括:

• 支持多个物理引擎;

• 丰富的机器人模型和环境库;

• 支持各种各样的传感器;

• 方便的编程界面和图形用户界面。

版本说明

经典版Gazebo 11

过渡版Ignition Gazebo

稳定版趋势版Gazebo Harmonic

gazebosim.org/docs/latest…

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

  1. Install

    curl -sSL http://get.gazebosim.org | sh
    
  2. Run

    gazebo
    

Alternative installation: step-by-step

  1. 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.list
    

    And if everything is correct, you should see:

    deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main
    
  2. Setup keys

    wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
    
  3. Install Gazebo.

    First update the debian database:

    sudo apt-get update
    

    Hint: make sure the apt-get update process ends without any errors, the console output ends in Done similar 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... Done
    

    Next 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
    
  4. Check your installation

    gazebo