E2 验收记录#

Learning home · PhysX contents

Course text is primarily Chinese, with English terminology and summaries. The original content is preserved.

任务:PhysX Atlas #3。交付:控制、机器人与任务接口、原生 C++ 片段、中英文学习入口、课程/roadmap、源码地图与身份清单。

开始时默认分支 main 为 1d6eb4cfedf572c9a25f5aae87baea66798b87dd,E1 的课程与验收记录实际存在;#3 未关闭且没有进行中 PR。本项分支为 docs/e2-control-robotics。本记录对应包含它的 Git 提交;远端交付状态以随后核实的 commit/Issue/PR 为准。

对照验收#

要求

对应内容

结论

A3 控制输入到实际驱动

第 1–5 节:状态/目标/外力分离、四种 force mode、隐式 drive、单位与公式、旧上限/电机包络、API→core→solver 路径

固定源码课程完成

A5 机器人与运动学

第 6–7 节:原生建模/资产映射、joint frame/DOF、mimic、FK、COM 到工具点 Jacobian、应用 IK 与动力学计算责任

源码课程完成;未运行宿主导入或 IK

A7 任务接口

第 8 节:整数物理步计数、控制周期、回调缓冲、接近/闭合/保持/释放/故障状态与观测条件

接口与任务逻辑课完成;未做任务实验

原生片段与误区

第 9–10 节、C++ 文件、7 道阅读题及答案

保留原生类型,无新框架/包装器

版本与证据边界

固定源码标签/commit 与 SDK 5.11.0 分开;宿主/绑定/Direct GPU 限制

不推断历史 Isaac/UniSim 二进制配置

双语入口与课程状态

README 中英文、curriculum、roadmap、source map

A3/A5/A7 标源码交付;E3/E4/E5 等继续待开发

原生 API 和量纲结论由作者结合固定声明与实现自审;没有宣称独立 reviewer 批准。特别核对了:

  • PxForceMode 与 cache flag 不是同一概念,普通刚体力清理语义与持续 cache.jointForce 不同。

  • Force/acceleration drive 的参数单位、implicit drive 分母及 PGS/TGS 参数分支;一维推导明确是说明性假设,未冒充完整 SDK 数值算法。

  • maxForce 在本版仍生效但已标记 deprecated;启用 envelope.maxEffort>0 后走新包络路径,且限幅纳入 cache joint effort。

  • Jacobian 的 COM/world/linear-first 行语义、固定基座省略 root 行、工具点迁移公式;没有虚构通用 IK API。

  • computeJointForce 不自动含重力、Coriolis、drive/阻尼;回调不是任意控制写入窗口。

检查#

环境:Linux、Python 3.12.12、g++ 11.4.0。sources.json 累计 58 个固定源码文件(E2 新增 19 个)已与官方同一提交的 Git tree 和 Git blob 对照。源码链接累计 196 个,路径登记与行范围通过;链接数只是检查覆盖量,不是语义正确性的替代指标。

C++ E2 片段依赖的 71 个公开头文件逐个按官方 Git blob 校验;Linux 预处理路径未使用未公开的 Switch 平台 include。没有下载/构建/链接 SDK 二进制,未运行引擎或示例。

仓库根目录的实际命令(PHYSX_SOURCE 为包含 physx/include 的匹配固定源树或核验缓存):

git diff --check
python scripts/check_docs.py
python scripts/check_source_links.py --source-root "$PHYSX_SOURCE"
g++ -std=c++17 -DNDEBUG -fsyntax-only -Wall -Wextra \
  -I "$PHYSX_SOURCE/physx/include" examples/e2_control_robotics.cpp

结果:文档文件链接、源码 blob/链接/行范围、空白检查通过;C++ 语法/类型检查退出码 0、无诊断。新增示例为 C++,本项没有新增 Python 示例或修改检查脚本。新文档先纳入 staged diff 后再次检查空白;检查针对实际交付内容。

check_docs.py 不做远端 URL/锚点或浏览器渲染验收;源码检查证明身份和行范围,相关结论另由实际阅读支撑。CI 仍只执行其声明的文档检查,不能据 CI 绿灯推断 SDK 构建或物理运行成功。

未决与下一步#

候选 gain/限位只是原生字段示例,未通过任何机器人/硬件任务调参或验证。未执行控制循环、资产导入、IK、抓取、GPU、训练或基准;应用必须提供模型、正确 frame/DOF 映射、SDK 初始化与错误处理。状态机中的阈值与研究评分后续复用 DexLab,不在本章新造数值或宣称实验完成。

下一项建议 E3 接触/求解器/力观测,在 E2 已明确输入路径之后追踪结果的生成与读回;E4 仍为 E5 的未完成先修。下一次执行前应重新读取 main、Issue/PR 和依赖。本项不提前标记 E3 或完整物理课完成。

Course source · GitHub · License