Gazebo在Ardupilot开源3D模拟仿真上被广泛使用。
通过SDFormat(Simulation Description Format)构建Ardupilot仿真世界,并如何向其中添加模型。
Gazebo作为开源项目,为仿真带来了全新的方法,提供了完整的开发库和云服务工具箱,使仿真变得简单。
在高保真传感器数据流的现实环境中,快速迭代您的新物理设计。在安全的环境中测试控制策略,并在持续集成测试中利用仿真。
SDFormat(Simulation Description Format),有时缩写为 SDF,是一种 XML 格式,用于描述机器人模拟器、可视化和控制的对象和环境。
... ... 前两个标签定义了 XML 和 SDF 的版本。然后是 标签,所有内容都在这对标签之间。
0.001 1.0 physics 标签指定了动态引擎的类型和属性。
是仿真中每个系统与世界状态交互的最大时间。值越小,计算越精确,但需要更多的计算能力。 是仿真时间与实际时间的比率。插件是一段动态加载的代码。
Physics 插件对于模拟世界的动态非常重要。
UserCommands 插件负责创建模型、移动模型、删除模型以及许多其他用户命令。
SceneBroadcaster 插件显示我们的世界场景。
... ... Gazebo GUI 有许多插件可供选择。
添加一些必要的插件,以使我们的世界能够具有基本的功能并运行起来。
MinimalScene 和 GzSceneManager 使我们的世界具备基本功能并运行起来的必要插件, 负责显示我们世界的 3D 场景。它具有以下属性(大多数 GUI 插件也具有这些属性):
标签中指定的名称。对于渲染引擎,我们可以选择 ogre 或 ogre2。
3D View false docked ogre2 scene 0.4 0.4 0.4 0.8 0.8 0.8 -6 0 6 0 0.5 0 0.25 25000 false 5 5 floating false 负责控制整个世界。其一些属性如下:
World control false false 72 121 1 floating true true true /world/world_demo/control /world/world_demo/stats 负责显示世界统计信息,包括 、、 和 。
通过这些标签,我们可以选择要显示的值(展开右下角以查看这些值)。我们可以选择这些值将发布到哪个 上。让我们尝试运行世界并监听该主题。
World stats false false 110 290 1 floating true true true true /world/world_demo/stats 在这个插件中,我们可以看到我们世界中的所有实体(仿真中的所有事物都被视为“实体”)。我们可以看到不同的模型、太阳以及它们的链接、视觉效果和碰撞。
relative_to 属性中指定的框架的位置(x, y, z)和方向(滚动、俯仰、偏航);在我们的例子中(relative_to 属性被忽略)是相对于世界的。 true 0 0 10 0 0 0 0.8 0.8 0.8 1 0.2 0.2 0.2 1 1000 0.9 0.01 0.001 -0.5 0.1 -0.9 可以使用已经构建好的模型,而不是自己构建模型。Gazebo Fuel 提供了数百个可以轻松添加到 Gazebo 世界中的模型。可以按以下方式添加模型。
访问 Gazebo Fuel 网站,选择你喜欢的模型,然后点击模型描述页面上的 <> 图标。这将把一个 SDF 代码片段复制到你的剪贴板,然后将其粘贴到你的世界中的关闭 标签的正上方,如下所示:
https://fuel.gazebosim.org/1.0/OpenRobotics/models/Coke 前面的方法在运行时下载你的模型,然后像这样引用它:
model://Coke 从 Gazebo Fuel 下载模型保存模型,如果如下所示目录:
world_tutorial ├── Coke └── world_demo.sdf 同时需要将 GZ_SIM_RESOURCE_PATH 环境变量设置为模型的父文件夹。
$ export GZ_SIM_RESOURCE_PATH=`pwd` 测试资料:SnapLearnGazebo/lesson_01_sdf
$ export GZ_SIM_RESOURCE_PATH=`pwd` $ gz sim world_demo_local.sdf $ export https_proxy=http:192.168.1.10:808 $ gz sim world_demo_uri.sdf 【1】ArduPilot开源代码之ROS2Humble+CartographerSLAM+SITL+Gazebo
【2】ArduPilot飞控之Gazebo + SITL + MP的Jetson Orin环境搭建
【3】ArduPilot飞控之ubuntu22.04-Gazebo模拟
【4】PX4模块设计之七:Ubuntu 20.04搭建Gazebo模拟器
上一篇:数据面试问题的记录——7.29
下一篇:Qt pro文件详解