SDFormat 根元素与版本规范深度解析
1. 根元素 <sdf> 的核心规则
- 唯一性:每个 SDFormat 文件必须以
<sdf>作为根元素,且version属性为必填项(如version="1.10")。 - 版本映射:需通过 SDFormat Roadmap 确认规范版本与
libsdformat库版本的对应关系(例如 SDFormat 1.10 对应 libsdformat 11.0)。 - 多场景支持:单个文件可包含 多个根元素(如多个
<world>、<model>等),但需注意:- 并行仿真:多
<world>可用于并行仿真实例(如 Gazebo 多世界运行)。 - 运行时选择:应用可在运行时动态选择特定根元素(如通过 GUI 切换不同场景)。
- 并行仿真:多
2. 根元素类型与适用场景
| 根元素 | 适用场景 | 示例结构 |
|---|---|---|
<world> |
完整仿真场景(含模型、物理、插件等) | 包含 <model>、<physics>、<plugin> 等子元素 |
<model> |
单个机器人或物理对象(如机器人、障碍物) | 可独立保存为 .sdf 文件,或嵌入 <world> 中 |
<actor> |
动画角色(支持骨骼动画或路径动画) | 包含 <skeleton> 或 <script> 动画定义 |
<light> |
光源定义(如太阳、聚光灯) | 可单独使用或嵌入 <world> 中 |
3. 版本选择与兼容性策略
- 版本升级规则:
- Major 版本:如 1.x → 2.x,表示存在不兼容的重大变更,需手动调整文件结构。
- Minor 版本:如 1.10 → 1.11,通常通过自动转换工具(如
*.convert文件)处理兼容性。
- 推荐实践:
- 新项目:优先使用最新稳定版(如 1.12),以利用新功能(如 PBR 渲染、增强碰撞检测)。
- 旧项目迁移:通过
sdformat命令行工具验证版本兼容性,并逐步升级:# 检查文件版本兼容性 sdformat::con

最低0.47元/天 解锁文章
835

被折叠的 条评论
为什么被折叠?



