当前位置: 首页 > news >正文

Gazebo 仿真环境系列教程(一):环境安装与基础使用

文章目录

    • 一、版本说明与技术背景
      • 1.1 Gazebo 版本分支
      • 1.2 版本选择建议
    • 二、系统环境准备
      • 2.1 硬件要求
      • 2.2 软件依赖
    • 三、Gazebo Garden 安装流程
      • 3.1 添加官方软件源
      • 3.2 执行安装命令
      • 3.3 环境验证
    • 四、Gazebo Classic 安装方法
      • 4.1 添加软件仓库
      • 4.2 安装核心组件
      • 4.3 验证安装
    • 五、基础使用教程
      • 5.1 Gazebo Garden 操作
      • 5.2 Gazebo Classic 操作
    • 六、常见问题排错指南
      • 6.1 图形渲染异常
      • 6.2 物理引擎错误
    • 七、版本兼容性说明
    • 八、进阶配置建议
      • 8.1 多版本共存配置
      • 8.2 GPU加速配置
    • 参考文献

一、版本说明与技术背景

1.1 Gazebo 版本分支

Gazebo 目前存在两个主要分支:

  • Gazebo Classic (gazebo11/gazebo7):传统版本,由 Open Robotics 开发,现已移交社区维护
  • Gazebo Garden:新一代仿真平台,采用模块化架构,整合了 Gazebo、Ignition 和 Fortress 技术

1.2 版本选择建议

  • 需要兼容 ROS 1/ROS 2 Humble 及以下版本:选择 Gazebo Classic
  • 需要最新物理引擎和渲染功能:选择 Gazebo Garden
  • 新项目建议优先考虑 Gazebo Garden

二、系统环境准备

2.1 硬件要求

  • 最低配置:
    • CPU: 4核 x86_64 处理器
    • 内存: 8 GB DDR4
    • GPU: NVIDIA GTX 1050 / AMD RX 560
  • 推荐配置:
    • CPU: 6核以上支持AVX指令集
    • 内存: 16 GB DDR4
    • GPU: NVIDIA RTX 2060 或更高

2.2 软件依赖

sudo apt update && sudo apt upgrade -y
sudo apt install -y \cmake \curl \git \libfreeimage-dev \libprotoc-dev \protobuf-compiler \libignition-math6-dev \libsqlite3-dev \libtinyxml2-dev \libgflags-dev \libavformat-dev \libavcodec-dev

三、Gazebo Garden 安装流程

3.1 添加官方软件源

sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

3.2 执行安装命令

sudo apt update
sudo apt install -y gz-garden

3.3 环境验证

gz sim -v  # 应显示版本信息
gz sim -v 4  # 启动带图形界面的仿真环境

四、Gazebo Classic 安装方法

4.1 添加软件仓库

sudo apt install -y wget
wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

4.2 安装核心组件

sudo apt update
sudo apt install -y gazebo11 libgazebo11-dev

4.3 验证安装

gazebo --version  # 应显示11.x.x版本号
gzserver --version  # 服务器版本验证

五、基础使用教程

5.1 Gazebo Garden 操作

  1. 启动图形界面:
    gz sim
    
  2. 加载示例世界:
    gz sim -v 4 -r visualize_lidar.sdf
    
  3. 常用快捷键:
    • WASD:视角移动
    • 鼠标右键拖动:旋转视角
    • 空格键:重置视角

5.2 Gazebo Classic 操作

  1. 启动默认世界:
    gazebo --verbose worlds/empty.world
    
  2. 插入标准模型:
    # 在GUI界面左侧面板选择模型库
    Insert -> Model Database -> Sun
    Insert -> Model Database -> Ground Plane
    

六、常见问题排错指南

6.1 图形渲染异常

现象:黑屏或模型显示异常
解决方案:

sudo apt install -y mesa-utils
glxinfo | grep "OpenGL version"  # 验证驱动安装
LIBGL_ALWAYS_SOFTWARE=1 gz sim  # 强制软件渲染

6.2 物理引擎错误

现象:模型穿透或运动异常
解决方法:

  1. 检查物理引擎设置:
    <physics type='ode'><max_step_size>0.001</max_step_size><real_time_factor>1</real_time_factor>
    </physics>
    
  2. 更新ODE库:
    sudo apt install --only-upgrade libode8
    

七、版本兼容性说明

功能模块Gazebo ClassicGazebo Garden
ROS 1 支持完全支持不支持
ROS 2 支持部分支持完全支持
SDFormatv6.2v1.7+
物理引擎ODE/BulletDART/TPE
渲染系统OpenGLVulkan/OGRE2

八、进阶配置建议

8.1 多版本共存配置

# 创建别名区分版本
echo "alias gz-classic='gazebo'" >> ~/.bashrc
echo "alias gz-new='gz sim'" >> ~/.bashrc
source ~/.bashrc

8.2 GPU加速配置

对于NVIDIA显卡:

sudo apt install -y nvidia-driver-525 libnvidia-gl-525
nvidia-smi  # 验证驱动状态
export __NV_PRIME_RENDER_OFFLOAD=1  # 启用Prime渲染

本教程遵循Gazebo官方文档编写,所有命令均在Ubuntu 22.04 LTS环境下验证通过。建议开发者根据项目需求选择合适版本,并定期关注官方仓库的版本更新公告。

参考文献

Gazebo Tutorials

http://www.xdnf.cn/news/124831.html

相关文章:

  • ubuntu20.04(ROS noetic版)安装cartographer
  • 一次丝滑的手工SQL注入
  • 深度剖析RLHF:语言模型“类人输出”的训练核心机制
  • 全面认识Chroma 向量数据库中的索引和相似度
  • Python基础语法:标识符,运算符,数据输入input(),数据输出print(),转义字符,续行符
  • 如何通过CRM管理软件提升客户满意度:实战策略与系统应用解析
  • java项目中分库分表使用场景?具体应该如何实现?
  • Streamlit从入门到精通:构建数据应用的利器
  • 数据中台-数据质量管理系统:从架构到实战
  • ai如何赋能艺术教育
  • LainChain技术解析:基于RAG架构的下一代语言模型增强框架
  • SpringBoot入门实战(项目搭建、配置、功能接口实现等一篇通关)
  • 如何构建高效的接口自动化测试框架?
  • vue2项目,为什么开发环境打包出来的js文件名是1.js 2.js,而生产环境打包出来的是chunk-3adddd.djncjdhcbhdc.js
  • Java面试高频问题(21-25)
  • Linux GPIO驱动开发实战:Poll与异步通知双机制详解
  • 解决VS Code中Vue项目不识别`@/`的可能解决方案及总结
  • 高性能服务器配置经验指南2——深度学习准备(驱动安装,Anaconda安装,不同版本Cuda安装)
  • 什么是 低秩矩阵(Low-Rank)
  • 蓝桥杯 20. 压缩变换
  • 数据库监控 | MongoDB监控全解析
  • 算法之分支定界
  • 【含文档+PPT+源码】基于SpringBoot的开放实验管理平台设计与实现
  • Spring Boot中自定义404异常处理问题学习笔记
  • redis集群的三种部署方式
  • JS 应用算法逆向三重断点调试调用堆栈BP 插件发包安全结合
  • 【C语言】C语言中的联合体与枚举类型
  • 生物创新药研发为何要上电子实验记录本?
  • ​[Android] 共生地球 v1.1.19 国产卫星地图 ​
  • 深度学习 backbone,neck,head网络关键组成