跳到主要内容

快速开始


最小工作示例

这是一个最简单的VitAI SDK使用示例:

"""VitAI 最小工作示例"""
from isaaclab.app import AppLauncher
import argparse

# 启动 Isaac Sim
parser = argparse.ArgumentParser()
parser.add_argument("--config", default="configs/uipc_scene.yaml")
AppLauncher.add_app_launcher_args(parser)
args = parser.parse_args()
app = AppLauncher(args).app

# 导入模块
from vitai_core import load_cfg_from_yaml, VitaiScene
from vitai_core.uipc.vitai_uipc_coupling import UipcRLEnv

# 加载配置并创建场景
configs = load_cfg_from_yaml(args.config)

class MyEnv(UipcRLEnv):
def __init__(self, cfg, configs):
super().__init__(cfg)
# VitaiScene 自动创建所有对象和传感器
self.vitai_scene = VitaiScene(
configs=configs,
env=self,
robot=self.robot,
scene=self.scene,
enable_ros2=False # 可选:启用 ROS2
)

# 运行
env = MyEnv(cfg, configs)
while app.is_running():
# 读取传感器数据
sensor = env.vitai_scene.tactile_sensors["left"]["sensor"]
depth = sensor.get_camera_depth(env_idx=0)

# 控制机器人...
env.step()

运行示例

1. 运行预置示例

cd examples/scripts
python pick_up_auto.py

2. 使用自定义配置

python pick_up_auto.py --config configs/uipc_scene.yaml

3. 启用调试窗口

修改配置文件 configs/uipc_scene.yaml

debug_vis:
show_sensor_windows: true
show_camera_depth_image: true
show_marker_image: true

代码详解

1. 初始化Isaac Sim

from isaaclab.app import AppLauncher
import argparse

parser = argparse.ArgumentParser()
AppLauncher.add_app_launcher_args(parser)
args = parser.parse_args()
app = AppLauncher(args).app

这段代码启动Isaac Sim仿真环境。

2. 加载配置

from vitai_core import load_cfg_from_yaml

configs = load_cfg_from_yaml("configs/uipc_scene.yaml")

从YAML文件加载场景配置,包括对象、传感器等。

3. 创建VitaiScene

from vitai_core import 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
)

VitaiScene会自动:

  • ✅ 创建所有UIPC对象
  • ✅ 创建所有触觉传感器
  • ✅ 调用finalize_scene()
  • ✅ 建立传感器与机器人的连接

4. 读取传感器数据

# 获取传感器
sensor = env.vitai_scene.tactile_sensors["left"]["sensor"]

# 读取不同类型的数据
depth = sensor.get_camera_depth(env_idx=0)
tactile_rgb = sensor.get_tactile_rgb(env_idx=0)
marker_motion = sensor.get_marker_motion(env_idx=0)

使用流程

1. 加载配置

2. 创建环境和场景

3. 在仿真循环中:
- 读取传感器数据
- 控制机器人
- 执行step()