自定义场景配置 custom_scenarios.py
HoloOcean 的世界支持通过更换场景来进行配置(详见“场景”一节)。HoloOcean 软件包中包含了一些以 .json 文件形式提供的预置场景,同时也支持用户创建并使用自定义场景。
用户既可以通过 Python 脚本中的字典(dictionary)来定义场景,也可以直接创建 .json 文件。这两种方法均遵循相同的格式规范,具体请参阅场景文件格式一节。
使用字典进行场景配置
在 Python 中创建一个符合场景文件格式规范的字典,并将其传递给 holoocean.make() 函数。
示例

import holoocean
cfg = {
"name": "test_rgb_camera",
"world": "SimpleUnderwater",
"package_name": "Ocean",
"main_agent": "auv0",
"ticks_per_sec": 60,
"agents": [
{
"agent_name": "auv0",
"agent_type": "HoveringAUV",
"sensors": [
{
"sensor_type": "RGBCamera",
"socket": "CameraSocket",
"configuration": {
"CaptureWidth": 512,
"CaptureHeight": 512
}
}
],
"control_scheme": 0,
"location": [0, 0, -10]
}
]
}
with holoocean.make(scenario_cfg=cfg) as env:
for _ in range(200):
env.tick()
使用 .json 文件配置场景
您可以通过创建符合场景文件格式规范的 .json 文件来定义自定义场景,并采取以下任一方式:
1.将其放置在 HoloOcean 的场景搜索路径中
2.自行加载并将其解析为字典,然后按照使用字典配置场景中的说明使用该字典
HoloOcean 的场景搜索路径
当您向 holoocean.make() 传入场景名称时,HoloOcean 会遍历各个包文件夹(参见包安装位置),直到找到与该场景名称匹配的 .json 文件。
因此,您可以将自定义场景的 .json 文件放置在该文件夹中,HoloOcean 便会自动找到并使用它。
警告
如果您移除并重新安装某个包,HoloOcean 将清除该文件夹中的内容。