跳到主要内容

配置文件说明

VitAI SDK使用YAML格式配置仿真场景。


YAML配置结构

# configs/uipc_scene.yaml

# 全局配置
output_dir: "~/.vitai"
asset_dir: "assets/data"

# 调试可视化
debug_vis:
show_fem_mesh: false # UIPC FEM网格(橙色线框)
show_attachments: false # Gelpad约束连线
show_sensor_windows: true # 传感器窗口(总开关)
show_gelpad_marker: false # Gelpad标记点
show_tactile_image: false # 触觉RGB图像窗口
show_marker_image: true # 标记点运动窗口
show_camera_depth_image: true # 深度图窗口

# UIPC仿真
uipc_sim:
ground_height: 0.0025
gravity: [0.0, 0.0, -9.8]
contact:
d_hat: 0.001
enable: true

# UIPC对象(刚体/可变形体)
objects:
pot_msh_rigid:
type: rigid
prim_path: "/World/envs/env_.*/pot_msh_rigid"
init_state:
pos: [0.7, -0.25, 0.02]
rot: [1, 0, 0, 0]
spawn:
msh_path: "objects/mshes/pot.msh"
scale: [1, 1, 1]
constitution_cfg:
type: "AffineBody" # 刚体本构
m_kappa: 1000000.0

ball_deformable:
type: deformable
prim_path: "/World/envs/env_.*/ball"
# ...
constitution_cfg:
type: "StableNeoHookean" # 超弹性材料
youngs_modulus: 0.5
poisson_rate: 0.45

# 触觉传感器
tactile_sensors:
left:
gelpad:
prim_path: "/World/envs/env_.*/Robot/Gripper/gripper_gf225/gelpad_0"
mesh_cfg:
edge_length_r: 0.05 # 网格细化(1/20)
constitution_cfg:
youngs_modulus: 1
poisson_rate: 0.49
constraint_cfg:
constraint_strength_ratio: 500000.0
body_name: "finger_case_0" # ⚠️ Isaac Sim刚体名称
isaaclab_rigid_body_prim_path: "/World/envs/env_.*/Robot/Gripper/gripper_gf225"
compute_attachment_data: true

sensor:
type: gf225
prim_path: "/World/envs/env_.*/Robot/Gripper/gripper_gf225/finger_case_0" # ⚠️ 与body_name对应
device: "cuda"
sensor_camera_cfg:
resolution: [480, 480]
data_types: ["depth", "rgb"]
clipping_range: [0.005, 0.014] # 深度裁剪范围(米)
data_types: [camera_depth, marker_motion]
debug_vis: true

right: # 右侧传感器类似,注意_0改为_1
gelpad:
prim_path: "/World/envs/env_.*/Robot/Gripper/gripper_gf225/gelpad_1"
constraint_cfg:
body_name: "finger_case_1" # ⚠️ 注意后缀_1
# ...
sensor:
prim_path: "/World/envs/env_.*/Robot/Gripper/gripper_gf225/finger_case_1" # ⚠️ 与body_name对应
# ...

关键配置参数

⚠️ Prim路径映射关系

GF225传感器必须与Isaac Sim World中的Prim正确映射:

配置项说明示例
gelpad.prim_pathUIPC Gelpad路径gelpad_0 / gelpad_1
constraint_cfg.body_nameIsaac Sim刚体名称finger_case_0 / finger_case_1
sensor.prim_path传感器挂载路径必须与body_name对应

左右传感器body_namesensor.prim_path后缀必须匹配(_0 vs _1)。


Gelpad参数

参数说明推荐值
edge_length_r网格细化(越小越细)0.05
youngs_modulus杨氏模量(MPa)1.0
poisson_rate泊松比0.49
constraint_strength_ratio约束强度500000.0

Sensor参数

参数说明推荐值
resolution相机分辨率[480, 480]
clipping_range深度范围(米)[0.005, 0.014]
data_types数据类型[camera_depth, marker_motion]

对象类型

类型本构模型适用场景
rigidAffineBody刚性物体(杯子、盖子)
deformableStableNeoHookean软体(球、海绵)

配置示例

添加新刚体对象

objects:
my_object:
type: rigid
prim_path: "/World/envs/env_.*/my_object"
init_state:
pos: [0.5, 0, 0.1]
rot: [1, 0, 0, 0]
spawn:
msh_path: "objects/mshes/my_object.msh"
scale: [1, 1, 1]
constitution_cfg:
type: "AffineBody"
m_kappa: 1000000.0

添加可变形对象

objects:
soft_ball:
type: deformable
prim_path: "/World/envs/env_.*/soft_ball"
init_state:
pos: [0.5, 0, 0.2]
rot: [1, 0, 0, 0]
spawn:
msh_path: "objects/mshes/ball.msh"
scale: [1, 1, 1]
constitution_cfg:
type: "StableNeoHookean"
youngs_modulus: 0.5
poisson_rate: 0.45