系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、包含的软件包
- 二、安装
-
- 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 安装要求
- 选择 ROS 和 Gazebo 组合 https://gazebosim.org/docs/harmonic/ros_installation 注意:如果你使用的是 ROS 2 的特定且不支持的 Gazebo 版本,可能需要设置 GZ_VERSION 等环境变量:
bash
export GZ_VERSION=garden
- 安装必要的工具
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 软件包中加载模型。