ROS2 与 Gazebo 联合仿真项目模版

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、包含的软件包
  • 二、安装
    • 2.1 安装要求
    • 2.2 作为模板使用
  • 三、用法
    • 3.1 安装依赖项
    • 3.2 构建项目
    • 3.3 source 工作空间
    • 3.4 启动仿真
  • 四、详细用法
    • 4.1 软件包结构
    • 4.2 仿真资源配置
  • 总结

前言

一个集成了 ROS 2 和 Gazebo 模拟器的模板项目。


一、包含的软件包

  • ros_gz_example_description - 保存模拟系统的 sdf 描述和其他文件。

  • ros_gz_example_gazebo - 保存 gazebo 专用代码和配置。也就是说,系统在这里结束。

  • ros_gz_example_application - 保存 ros2 的特定代码和配置。

  • ros_gz_example_bringup - 保存启动文件和高级实用程序。

二、安装

2.1 安装要求

  1. 选择 ROS 和 Gazebo 组合 https://gazebosim.org/docs/harmonic/ros_installation 注意:如果你使用的是 ROS 2 的特定且不支持的 Gazebo 版本,可能需要设置 GZ_VERSION 等环境变量:
bash 复制代码
export GZ_VERSION=garden
  1. 安装必要的工具
bash 复制代码
sudo apt install python3-vcstool python3-colcon-common-extensions git wget

2.2 作为模板使用

直接 Use this template 并在 Github 上创建项目库。

或者先创建一个工作区,然后克隆模板库:

bash 复制代码
mkdir -p ~/template_ws/src
cd ~/template_ws/src
wget https://raw.githubusercontent.com/gazebosim/ros_gz_project_template/main/template_workspace.yaml
vcs import < template_workspace.yaml

三、用法

3.1 安装依赖项

bash 复制代码
cd ~/template_ws
source /opt/ros/<ROS_DISTRO>/setup.bash
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -r -i -y --rosdistro <ROS_DISTRO>

3.2 构建项目

bash 复制代码
colcon build --cmake-args -DBUILD_TESTING=ON

3.3 source 工作空间

bash 复制代码
. ~/template_ws/install/setup.sh

3.4 启动仿真

bash 复制代码
ros2 launch ros_gz_example_bringup diff_drive.launch.py

四、详细用法

4.1 软件包结构

此时,你的项目中将包含以下软件包:

  • ros_gz_example_application - 保存 ROS 2 的特定代码和配置。即控制、规划或任何高级算法所在的位置。

    ├── CMakeLists.txt

    ├── package.xml

    ├── src

    └── ...

  • ros_gz_example_bringup - 保存启动文件和高级实用程序,是 ROS 与 Gazebo 之间的通信桥梁。任何机器人或硬件的特定配置都放在这里。

    ├── config

    │ ├── ros_gz_example_bridge.yaml

    │ └── diff_drive.rviz

    ├── launch

    └── diff_drive.launch.py

  • ros_gz_example_description - 保存模拟系统的 SDF 描述和任何其他模拟资产。

    ├── hooks

    │ └── ros_gz_example_description.dsv.in

    ├── models

    ├── diff_drive

    ├── model.config

    └── model.sdf

  • ros_gz_example_gazebo - 保存 Gazebo 的特定代码和配置。也就是说,这里是用户自定义世界和自定义系统插件的最终归宿。

    ├── include

    │ └── ros_gz_example_gazebo

    │ ├── BasicSystem.hh

    │ └── FullSystem.hh

    ├── src

    │ ├── BasicSystem.cc

    │ └── FullSystem.cc

    ├── worlds

    └── diff_drive.sdf

4.2 仿真资源配置

仿真资产包括URDF或SDF中的模型或机器人描述、网格和材料文件,以帮助可视化机器人的不同部分,最后将所有这些元素编译到模拟世界的SDF中。Gazebo 提供了几种不同的机制来定位这些资源,并通过 GZ_SIM_RESOURCE_PATH 环境变量来初始化搜索,详情请参见 gz-sim API 中的资源查找。

ROS 和 Gazebo 解析 URI 的方式有所不同,ROS 可以处理 package:// URI,但 SDFormat 默认只支持 model://。现在,libsdformat 可以将 package:// 转换为 model:// URI。因此,可以通过 "安装 "模型目录并将模型路径导出到环境中来加载现有的仿真资产。

这可以使用 DSV 文件中的 colcon 环境钩子(ROS 软件包提供的 shell 脚本)自动完成。无论何时在工作区中生成设置文件,这些环境钩子也会被生成。请参阅在 GZ_SIM_RESOURCE_PATH 中预置模型共享路径的示例,它可以让 Gazebo 使用 model:// URI 从 ROS 软件包中加载模型。


总结

相关推荐
嵌入式老牛10 小时前
HC32F460_ADC驱动(三)
单片机·嵌入式硬件
秀秀更健康11 小时前
stm32: 系统时钟如何配置为72Mhz
stm32·单片机·嵌入式硬件
kyle~12 小时前
机器人开发团队协作方法论:从传感数据流到运动控制的工程闭环
机器人
迁移科技13 小时前
告别人工分拣!迁移科技 AI+3D 视觉让机器人 “看懂” 无序抓取
人工智能·科技·3d·机器人·自动化·视觉检测
御风而行的蚂蚁15 小时前
Ubuntu 20.04 / 18.04 双版本 ROS1 安装保姆级教程
机器人
武子康15 小时前
调查研究-140 全球机器人产业深度调研报告【02篇】:全球机器人产业格局分析:五个阶段并存与商业化路径 2026
人工智能·ai·机器人·具身智能·智能化
a7520662816 小时前
OpenClaw企业微信渠道配置教程|API模式+长连接+全部授权
人工智能·机器人·企业微信·openclaw部署·小龙虾一键安装
归零鸟16 小时前
WD Elements移动硬盘能识别出盘但不能出盘的修复记录
stm32·单片机·嵌入式硬件
传说故事16 小时前
【论文阅读】GEN-0: Embodied Foundation Models That Scale with Physical Interaction
论文阅读·人工智能·机器人·具身智能
追兮兮17 小时前
MCUQuickStart v1.1.0发布,一键生成Keil工程+RTOS模板
stm32·单片机·嵌入式硬件·freertos·gd32·keil5