Gazebo 机器人三维物理仿真平台

Gazebo 简介

Gazebo 是一款由 Open Robotics(前身为 Willow Garage 和 OSRF)开发的开源 3D 机器人仿真软件。它是目前世界上最流行的机器人仿真平台之一,被广泛应用于学术研究、工业开发和机器人竞赛中。


核心特性

1. 物理仿真引擎

  • ODE(Open Dynamics Engine):默认物理引擎,支持刚体动力学
  • Bullet:支持软体动力学和复杂碰撞检测
  • Simbody:生物力学级精确仿真
  • DART:基于广义坐标的高效动力学仿真

2. 3D 图形渲染

  • OGRE(Object-Oriented Graphics Rendering Engine):提供高质量的 3D 可视化
  • 支持逼真的光照、阴影、材质和纹理
  • 可配置多摄像头视角和传感器可视化

3. 传感器仿真

支持多种机器人传感器的仿真:

  • 摄像头(Camera):RGB、深度相机
  • 激光雷达(LiDAR):2D/3D 激光扫描
  • IMU(惯性测量单元)
  • GPS气压计磁力计
  • 接触传感器力/力矩传感器
  • RFID超声波传感器

4. 机器人模型支持

  • SDF(Simulation Description Format):Gazebo 原生的 XML 格式,描述机器人、环境和物理属性
  • URDF(Unified Robot Description Format):ROS 标准格式,可通过插件转换为 SDF
  • 内置模型数据库(Gazebo Model Database),包含数千种预置模型

软件架构

┌─────────────────────────────────────┐ │ 用户界面层 (GUI) │ │ (场景视图、模型编辑器、插件面板) │ ├─────────────────────────────────────┤ │ 仿真引擎层 (Server) │ │ (物理引擎、传感器管理、世界状态管理) │ ├─────────────────────────────────────┤ │ 通信层 (Transport) │ │ (基于 Google Protobuf 的发布/订阅) │ ├─────────────────────────────────────┤ │ 物理引擎层 │ │ (ODE/Bullet/Simbody/DART) │ └─────────────────────────────────────┘ 

主要版本演进

版本发布时间主要特性
Gazebo Classic (1.x-11.x)2002-2022基于 OGRE 1.x,与 ROS 深度集成
Ignition Gazebo (2020-2022)2020-2022模块化架构,支持云端仿真
Gazebo Sim (gz-sim)2022-至今全新架构,Ignition 的延续,支持 ROS 2
Gazebo Harmonic2023LTS 版本,长期支持至 2028 年
注意:Gazebo Classic(11.x)已于 2025 年 1 月停止维护,官方推荐迁移至 Gazebo Sim (Ignition)

与 ROS 的集成

Gazebo 与 ROS(Robot Operating System) 无缝集成:

ROS 1(Gazebo Classic)

  • gazebo_ros_pkgs:提供 ROS-Gazebo 接口
  • 支持话题发布/订阅、服务调用、插件机制

ROS 2(Gazebo Sim)

  • ros_gz(原 ros_ign):ROS 2 与 Gazebo Sim 的桥接包
  • 使用 gz-transport 和 ROS 2 的 DDS 通信
  • 更好的实时性和分布式仿真支持

典型应用场景

  1. 算法验证:在仿真环境中测试导航、感知、控制算法
  2. 硬件在环仿真(HIL):与真实硬件联调
  3. 多机器人仿真:支持大规模集群仿真
  4. 强化学习训练:提供 Gym 接口用于 AI 训练
  5. 竞赛平台:如 DARPA 机器人挑战赛、RoboCup 等

安装方式

Ubuntu(推荐)

# Gazebo Sim (最新版)sudoaptinstall gz-harmonic # 或 Gazebo Classic(已停止维护)sudoaptinstall gazebo11 

源码编译

支持 Linux、macOS 和 Windows(实验性),需要依赖:

  • OGRE 3D 渲染引擎
  • 物理引擎(ODE/Bullet 等)
  • Qt5/Qt6(GUI)
  • protobuf、Boost 等

优缺点分析

✅ 优点❌ 缺点
开源免费,社区活跃学习曲线较陡峭
物理仿真精度高大规模场景性能有限
与 ROS 生态深度集成图形渲染不如商业软件(如 Isaac Sim)
支持多种物理引擎文档有时滞后于版本更新
丰富的模型库和插件多机器人仿真时通信延迟

相关资源

  • 官网:https://gazebosim.org
  • 文档:https://gazebosim.org/docs
  • GitHub:https://github.com/gazebosim
  • 模型库:https://app.gazebosim.org/fuel

Read more

【愚公系列】《AI短视频创作一本通》012-AI 短视频分镜头设计(AI绘画提示词入门)

【愚公系列】《AI短视频创作一本通》012-AI 短视频分镜头设计(AI绘画提示词入门)

💎【行业认证·权威头衔】 ✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯:ZEEKLOG博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者 🏆【荣誉殿堂】 🎖 连续三年蝉联"华为云十佳博主"(2022-2024) 🎖 双冠加冕ZEEKLOG"年度博客之星TOP2"(2022&2023) 🎖 十余个技术社区年度杰出贡献奖得主 📚【知识宝库】 覆盖全栈技术矩阵: ◾ 编程语言:.NET/Java/Python/Go/Node… ◾ 移动生态:HarmonyOS/iOS/Android/小程序 ◾ 前沿领域:

彻底解决 Codex / Copilot 修改中文乱码【含自动化解决方案】

引言 在使用 GitHub Copilot 或 OpenAI Codex 自动重构代码时,你是否遇到过这样的尴尬:AI 生成的代码逻辑完美,但原本注释里的中文却变成了 我爱中文 这样的乱码?有时候这种字符甚至会污染正确的代码,带来巨大的稳定性隐患。 一、 问题核心:被忽视的“终端中转” 乱码的根源不在于 AI 的大脑,也不在于编辑器的显示,而在于执行链路的编码不一致。 Copilot/Codex 在执行某些修改任务(如:重构整个文件或批量替换)时,往往会通过终端调用系统指令。由于 Windows 终端(PowerShell/CMD)默认使用 GBK 编码,它在处理 AI 传来的 UTF-8 字节时会发生“误读”,导致写入文件的内容从源头上就损坏了。

机器人坐标系详解

机器人坐标系详解

笔者虽然从事自动化工作十几年,但是对于机器人坐标系的理解始终是一知半解,最近认为吃透了坐标系的事,和广大同仁分享一下。 工业机器人的坐标系的五个坐标系:1、世界坐标系;2、机器人足部坐标系;3、基坐标系;4、法兰坐标系;5、工具坐标系 这五个坐标系是工业机器人空间位置和姿态的数学基础。可以把它们想象成一套从宏观到微观的定位系统。 为了让你更直观地理解,可以把整个机器人工作站想象成一个房间,把机器人想象成人的手臂。以下是详细的解释: 1. 世界坐标系 —— 房间的地标 * 定义:这是一个固定不变的绝对坐标系,通常定义在整个工作站(房间)的某个角落。 * 用途:用来描述房间里所有东西的绝对位置。比如:机器人站在哪里、传送带放在哪里、工件放在哪里,都是相对于世界坐标系的。 * 理解:它相当于你房间里的经纬度或者墙角。无论你怎么移动,这个点的位置是固定不变的。 2. 机器人足部坐标系 —— 机器人脚下的地 * 定义:这是一个位于机器人安装底座正下方的坐标系。通常Z轴垂直向上,指向机器人的身体。 * 用途:在安装机器人时,我们需要把机器人足部坐标系校准到世界坐标系中去。

FPGA 跨时钟域 CDC 处理:3 种最实用的工程方案

本人多年 FPGA 工程与教学经验,今天跟大家聊一个重点——跨时钟域 CDC,这可是项目里最容易出玄学 bug、最难复现、最难定位的一类问题,新手必踩坑,老手也得谨慎! 还是老规矩,不搞虚的、不扯理论,只给大家工程里真正在用、稳定可靠、可直接复制上板的3种方案,不管是自学、做项目,还是面试,都能用得上、能拿分。 1. 什么是跨时钟域 CDC? 不用记复杂定义,简单说清楚3个关键点,就完全够用: * 核心场景:信号从一个时钟域(比如clk_a)传到另一个时钟域(比如clk_b); * 触发条件:两个时钟的频率不同,或者相位无关(没有固定的时间关系); * 直接后果:如果不做处理,直接打拍会出现亚稳态,进而导致数据错误,严重的还会让整个系统死机。 划重点:只要是多时钟系统,就必须做 CDC 处理,