scenesmith / demos /README.md
yqi19's picture
Add bedroom scene, demos, Chinese documentation, and scene type guide (#1)
42f5508
|
Raw
History Blame Contribute Delete
2.46 kB

Demo 采集说明

本目录包含从 SceneSmith 生成场景中采集的 pick-and-place demo。

Demo 列表

文件 任务 场景
demo_bedroom_nightstand_to_desk.json 从床头柜取物放到书桌 卧室
demo_bedroom_nightstand_to_desk_trajectory.png 轨迹可视化 卧室
demo_bedroom_wardrobe_to_desk.json 从衣柜附近取物放到书桌 卧室
demo_bedroom_wardrobe_to_desk_trajectory.png 轨迹可视化 卧室

可视化说明

每张 *_trajectory.png 包含 4 个子图:

  1. 3D 轨迹:末端执行器路径,颜色区分阶段

    • 蓝色 = approach(接近)
    • 橙色 = pre_grasp(下降)
    • 红色 = grasp(抓取)
    • 紫色 = lift(提升)
    • 绿色 = transport(搬运)
    • 黄色 = place(放置)
  2. **俯视图 (XY)**:任务路径平面投影

  3. 高度时间曲线:末端执行器(蓝实线)和物体(红虚线)Z轴变化

  4. 夹爪宽度:0 = 完全闭合,1 = 完全张开

Demo JSON 格式

{
  "task": "Pick an object from the nightstand and place it on the desk",
  "scene_id": "bedroom_nightstand_to_desk",
  "target_object": "bedroom_nightstand_0",
  "initial_pos": [-0.55, -1.73, 0.5],
  "goal_pos": [0.79, 1.58, 0.85],
  "goal_reference": "bedroom_desk_0",
  "success": true,
  "total_duration_s": 7.5,
  "num_steps": 150,
  "trajectory": [
    {
      "step_id": 0,
      "phase": "approach",
      "end_effector_pos": [x, y, z],
      "end_effector_quat_wxyz": [w, x, y, z],
      "gripper_width": 1.0,
      "target_object_pos": [x, y, z],
      "timestamp": 0.0
    }
  ]
}

重要说明

本次 demo 是脚本化轨迹(scripted demo),不是真实 robot 采集:

  • 轨迹是几何插值(直线 + 竖直升降),不来自 robot controller
  • 没有物理碰撞避免
  • 没有力矩控制

SceneSmith 官方不提供 robot URDF 和 policy。真实 demo 采集需要:

  1. 加载 sim_files/house.dmd.yaml 到 Drake / MuJoCo
  2. 添加 robot URDF
  3. policy_interface.py 获取目标位姿
  4. 用真实 controller 执行并记录

采集方法

python scripts/collect_demo.py \
    --scene-state scenes/scene_01_bedroom/sim_files/house_state.json \
    --dmd scenes/scene_01_bedroom/sim_files/house.dmd.yaml \
    --task "Pick an object from the nightstand and place it on the desk" \
    --output-dir demos/ \
    --scene-id bedroom_demo