将 SITL 与 Gazebo 结合使用¶
gazebo 是一款广为人知、备受推崇的机器人模拟器,曾被用于多项地面、海洋和太空机器人模拟挑战赛,包括 DARPA 机器人挑战赛、DARPA 地下挑战赛和 Virtual RobotX 竞赛。
Gazebo 主要分为两代。要在 Gazebo11 及更早版本中使用 SITL,请参阅 旧版本使用说明.
本文介绍如何使用最新一代 Gazebo 作为 ArduPilot Rover、Coper 和 Plane 的外部模拟器。
提示
Gazebo 尤其适用于定义室内自主飞行、蜂群、非飞行器类型(如UGV无人车和船只)以及多飞行器场景(如上文视频中的飞船着陆模拟)。
安装 ArduPilot SITL¶
确保已设置 ArduPilot 开发环境,包括作为 GCS 的 MAVProxy。验证是否可以运行 Copter 和 Plane 的 SITL 示例。在 ArduPilot 开发维基 拥有所需的全部信息。
安装gazebo¶
我们目前支持 gazebo花园 和 和谐gazebo 这些软件适用于 Ubuntu 20.04 (Focal) 和 22.04 (Jammy),以及 macOS Big Sur (11)、Monterey (12) 和 Ventura (13)。
按照平台说明安装 Gazebo。
检查gazebo安装是否正常:
gz 模拟 -v4 -r 外形.sdf
这将打开一个包含各种形状的世界(在 macOS 上,您需要在不同的终端运行 Gazebo 服务器和客户端)。
安装 ArduPilot Gazebo 插件¶
我们使用 ArduPilot 的标准版本,并为 Gazebo 定制了一个插件,该插件托管在 GitHub 上: https://github.com/ArduPilot/ardupilot_gazebo.
备注
虽然 Gazebo 常用于 ROS / ROS2,但 ArduPilot Gazebo 插件并不依赖于 ROS。
备注
该插件的原始版本位于 https://github.com/khancyr/ardupilot_gazebo 与 Gazebo 的旧版本.
安装其他依赖项
乌班图
用于gazebo花园
苏都 适切 更新 苏都 适切 安装 libgz-sim7-设计 rapidjson-设计
用于gazebo谐波
苏都 适切 更新 苏都 适切 安装 libgz-sim8-设计 rapidjson-设计
MacOS
酿 更新 酿 安装 rapidjson
创建工作区文件夹并克隆版本库
mkdir -p gz_ws/来源 &&; CD gz_ws/来源 git 复制 https://github.网/ArduPilot/ardupilot_gazebo
构建插件
根据已安装的 gazebo 版本设置 GZ_VERSION 环境变量(如果需要,用 garden 替换 harmonic):
出口 GZ_VERSION=调和 CD ardupilot_gazebo mkdir 构建 &&; CD 构建 cmake .. -dcmake_build_type=RelWithDebInfo 生产 -j4
配置 Gazebo 环境¶
Gazebo 在运行时会使用一些环境变量来定位插件和模型。这些变量可以在运行 Gazebo 的终端中设置,也可以在您的 .bashrc 或 .zshrc 文件
在终端
export GZ_SIM_SYSTEM_PLUGIN_PATH=$HOME/gz_ws/src/ardupilot_gazebo/build:$GZ_SIM_SYSTEM_PLUGIN_PATH export GZ_SIM_RESOURCE_PATH=$HOME/gz_ws/src/ardupilot_gazebo/models:$HOME/gz_ws/src/ardupilot_gazebo/worlds:$GZ_SIM_RESOURCE_PATH在 .bashrc 或 .zshrc
回响 'export GZ_SIM_SYSTEM_PLUGIN_PATH=$HOME/gz_ws/src/ardupilot_gazebo/build:${gz_sim_system_plugin_path} 插件路径' >>; ~/.bashrc 回响 '导出 GZ_SIM_RESOURCE_PATH=$HOME/gz_ws/src/ardupilot_gazebo/models:$HOME/gz_ws/src/ardupilot_gazebo/worlds:${gz_sim_resource_path}(模拟资源路径' >>; ~/.bashrc
将 Gazebo 与 ArduPilot 结合使用¶
插件提供了两个模型作为示例:Iris 四旋翼飞行器和 Zephyr 三角翼飞行器。
虹膜四旋翼飞行器¶
运行gazebo
gz 模拟 -v4 -r 虹膜跑道.sdf
运行 SITL
模拟载具.py -v ArduCopter -f gazebo-马兰花 --模型 JSON --地图 --游戏机
手臂和起飞
稳定>; 模式 导游 指导>; 上膛 throttle 指导>; 起飞 5
Zephyr 三角翼飞机¶
Zephyr 定位为垂直起飞。
运行gazebo
gz 模拟 -v4 -r zephyr_runway.sdf
运行 SITL
模拟载具.py -v ArduPlane -f gazebo-zephyr --模型 JSON --地图 --游戏机
手臂、起飞和绕圈
手册>; 模式 fbwa FBWA>; 上膛 throttle FBWA>; rc 3 1800 FBWA>; 模式 圆形
改变模拟速度¶
默认情况下,Gazebo 会尝试以 1 的实时系数(RTF)运行模拟。 要提高模拟速度,请在世界文件的开头添加以下 XML 块 <世界>; 元素:
<;物理 名字="1ms"; 类型="忽略";>; <;最大步长>;0.001</最大步长>; <;实时因子>-1.0</实时因子>; </物理>;
然后在 MAVProxy 中设置模拟加速参数
手册>; 停止 设置 SIM_SPEEDUP 10