当前位置: 首页 > 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

相关文章:

  • vscode vue文件单行注释失效解决办法
  • JVM性能优化之年轻代参数设置
  • 抗体工程改造系列:调节抗体功能的Fc改造
  • 编译原理(5):链接
  • 今日CSS学习浮动->定位
  • 数据分析案例:医疗健康数据分析
  • 机器学习(8)——主成分分析
  • Restful接口学习
  • [密码学实战]在Linux中实现SDF密码设备接口
  • 密码学的hash函数,哈希碰撞, collision resistance, BTC用到的SHA-256简介
  • arm64适配系列文章-第十章-arm64环境上jenkins的部署
  • docker部署Jenkins工具
  • PTA -L1-001 Hello World
  • 联邦知识窃取模型(FedBM):从预训练语言模型中窃取知识以实现异构联邦学习|文献速递-深度学习医疗AI最新文献
  • TCP基础题:音乐播放列表管理系统
  • React 的 useEffect 清理函数详解
  • Docker-高级使用
  • 【python】Python 中,单下划线(_)和双下划线(__)开头以及结尾的命名方式具有特殊的含义和用途
  • 安恒web安全春招实战
  • 如何使用 Apache 配置用户主页 ?
  • 冯象|那“交出”后的崩溃,如撒旦坠落诸天
  • 专访|攸佳宁:手机只是矛盾导火索,重要的是看见孩子的内心
  • 全品系停货?泸州老窖:暂未接到通知,常规调控手段
  • 国防部:“台独”武装摆练纯属搞心理安慰,怎么演都是溃败的死局
  • 央行上海总部答澎湃:上海辖内金融机构已审批通过股票回购增持贷款项目117个
  • 俄总理:2024年俄罗斯GDP增长4.3%