快速开始
最小工作示例
这是一个最简单的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()