Skip to main content

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_pathstrYAML配置文件路径(相对或绝对)

返回值

类型: Dict[str, Any]

解析后的配置字典,包含以下主要键:

说明
debug_vis调试可视化配置
uipc_simUIPC仿真配置
objectsUIPC对象定义
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之前调用