load_cfg_from_yaml()
函数路径: vitai_core.utils.scene_loader.load_cfg_from_yaml
加载YAML配置文件并解析路径。
函数签名
def load_cfg_from_yaml(yaml_path: str) -> Dict[str, Any]
参数
| 参数名 | 类型 | 说明 |
|---|---|---|
yaml_path | str | YAML配置文件路径(相对或绝对) |
返回值
类型: Dict[str, Any]
解析后的配置字典,包含以下主要键:
| 键 | 说明 |
|---|---|
debug_vis | 调试可视化配置 |
uipc_sim | UIPC仿真配置 |
objects | UIPC对象定义 |
tactile_sensors | 触觉传感器配置 |
使用示例
基础用法
from vitai_core import load_cfg_from_yaml
# 加载配置
configs = load_cfg_from_yaml("configs/uipc_scene.yaml")
访问配置内容
# 访问仿真参数
gravity = configs["uipc_sim"]["gravity"] # [0.0, 0.0, -9.8]
ground_height = configs["uipc_sim"]["ground_height"] # 0.0025
# 访问调试配置
show_fem = configs["debug_vis"]["show_fem_mesh"] # False
show_depth = configs["debug_vis"]["show_camera_depth_image"] # True
# 访问对象列表
object_names = list(configs["objects"].keys())
print(object_names) # ['pot_msh_rigid', 'cover_msh_rigid', ...]
# 访问传感器配置
left_sensor_cfg = configs["tactile_sensors"]["left"]
gelpad_path = left_sensor_cfg["gelpad"]["prim_path"]
resolution = left_sensor_cfg["sensor"]["sensor_camera_cfg"]["resolution"]
与VitaiScene配合使用
from vitai_core import load_cfg_from_yaml, VitaiScene
# 1. 加载配置
configs = load_cfg_from_yaml("configs/uipc_scene.yaml")
# 2. 传递给VitaiScene
class MyEnv(UipcRLEnv):
def __init__(self, cfg, configs):
super().__init__(cfg)
self.vitai_scene = VitaiScene(
configs=configs, # 传入配置
env=self,
robot=self.robot,
scene=self.scene
)
配置文件结构
典型的YAML配置结构:
# configs/uipc_scene.yaml
debug_vis:
show_fem_mesh: false
show_sensor_windows: true
uipc_sim:
gravity: [0.0, 0.0, -9.8]
ground_height: 0.0025
objects:
pot_msh_rigid:
type: rigid
prim_path: "/World/envs/env_.*/pot_msh_rigid"
# ...
tactile_sensors:
left:
gelpad: {...}
sensor: {...}
注意事项
- ✅ 支持相对路径和绝对路径
- ✅ 自动解析资源路径
- ⚠️ 配置文件格式错误会抛出异常
- ⚠️ 必须在创建VitaiScene之前调用