← ClaudeAtlas

simulationlisted

build123d-cad 的无头动力学仿真子技能。把 URDF/SDF 丢进 pybullet HEADLESS(p.DIRECT)跑 N 步, 在 被动跌落 / 位置保持 / 简单步态 三种控制模式下记录时序(关节角 / 基座位姿 / 速度 / 接触) 到 results.json,用 pybullet 自带离屏渲染器(getCameraImage + ER_TINY_RENDERER,无 GPU/无 GUI) 出关键帧 PNG(+可选 MP4),并自验稳定性(没穿地 / 没数值爆炸 / 关节在限位 / 末态稳) + 出小尺寸截图给 AI 视觉复核。可进 CI。 触发词:仿真跑一下、动力学、pybullet、跌落测试、站得稳吗、步态仿真、headless sim、 物理引擎、会不会翻、关节限位、接触力。 本子技能不做:MuJoCo / Gazebo 真跑(→ sdf 出世界)、GUI 交互预览(→ mechanical pybullet_preview / viewer)、 机器人描述生成(→ urdf)、网页 3D 预览(→ viewer)、FK/IK 解析(→ mechanical)。
baibai2013/build123d-cad · ★ 2 · AI & Automation · score 71
Install: claude install-skill baibai2013/build123d-cad
# simulation · 无头动力学仿真 把机器人描述丢进物理引擎跑得稳不稳的入口。**纯 headless(p.DIRECT),出数据 + 图给 AI/CI 判**, 不弹 GUI、不依赖 viewer/playwright。 > 一句话:urdf 管"描述对",simulation 管"丢进物理引擎跑得稳"(跌落/站立/步态,判稳 + 截图)。 > > 现状:本 MVP 只做 pybullet headless 闭环;MuJoCo/Gazebo 真跑、viewer 回放、完整步态优化 deferred。 --- ## AI 执行准入序列 1. 收到 仿真 / 动力学 / 跑一下 / 站得稳吗 类需求 → 先读本 SKILL.md「主流程」。 2. 控制模式 / pybullet API 拿不准 → 读 `references/pybullet-headless.md` / `control-modes.md`, **不凭印象编 flag 或 renderer 枚举**(headless 必须 ER_TINY_RENDERER)。 3. references/ 是查询表,不当 Playbook 全量读。 4. 跨子技能走 `../../shared/handoff-protocols.md` 文件接口,不互调函数、不互引 references。 5. 判定靠 `verify_sim.py` 退出码 + AI 看 static→settled 两图,**不靠"应该没事"**。 --- ## 主流程 ``` [1] 取输入 urdf:output/<task>/<robot>.urdf + meshes/ sdf:output/<task>/{world,model}.sdf ▼ [2] 选模式 passive(跌落/穿地) | hold(位置保持/站立) | gait(stand/trot/crawl 简单步态) ▼ [3] 跑仿真 run_sim.py:p.DIRECT 无头 → setGravity + plane → load → POSITION_CONTROL 循环 → stepSimulation×N ▼ [4] 出产物 <robot>.results.json + frames/*.png(ER_TINY 离屏)+ <robot>.sim.mp4(有 imageio/cv2 才出) ▼ [5] 自验 verify_sim.py:断言 没穿地/没爆炸/关节限位/末态稳 → _verify/{static,settled}.png + checklist → 退出码 0/1 ``` 每步脚本见下「脚本索引」,参数读脚本顶部 docstring,不要凭名字猜。 --- ## 控制模式速查(全表见 references/control-modes.md) | 模式 | 测什么 | 控制 | 典型 steps | |---|---|---|---| | `passive` | 自由跌落:穿地 / 散架 / 数值爆炸 | 不施加控制 | 480–1200 | | `hold` | 站得稳:伺服到限位中点保持直立 | POSITION_CONTROL → 中点 | 720–2400 | | `gait` | 动起来会不会翻:相位正弦驱动 | 相位偏置 sin(MVP 非 Bezier+IK) | 1600–4800 |