drake-atlas 固定版本源码入口#
阅读基线:1e1466ba466e7ce8fa9fcca4e086ce1383e5427d。以下入口已核对官方 Git 树与文件内容身份;不是全仓审查或运行验收记录。
本阶段先理解引擎架构、建模、步进、控制、接触/求解、传感器/渲染、性能与扩展。独立实验、基准、训练和评分暂不开展,后续复用 DexLab。
源码文件 |
阅读目的 |
|---|---|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
区分接触几何、接触律与数值近似 |
|
区分接触几何、接触律与数值近似 |
|
识别算法、输入状态、配置与限制 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
追踪构建、步进、数据更新与生命周期 |
|
追踪构建、步进、数据更新与生命周期 |
|
核对对象职责、数据布局、参数与版本约定 |
|
区分传感数据、可视化与物理状态 |
E1:模型、状态与时间的追踪入口#
专题:模型与坐标 → 状态与时间。下表补充本次实际引用的固定文件;对应行号在专题就近标注,Python 签名与源码核对范围见验收记录。
文件 |
E1 阅读重点 |
|---|---|
RigidTransform 平移构造与数学操作 |
|
SpatialVelocity 的 w/v 参数 |
|
Parser 原生 Python 重载与严格模式 |
|
构造器显式 time_step、getter 引用/副本、free-body 参数 |
|
Context.Clone Python 绑定 |
|
System.SetDefaultContext 与子 Context Python 入口 |
|
abstract value 的复制/Clone 语义与外部资源边界 |
|
X_AB、点/方向变换、RPY 与四元数入口 |
|
力矩/力排列与参考点 |
|
角/线速度排列、measured/expressed frame、参考点 Shift |
|
本地包映射、资源 URL 与远程资源边界 |
|
position_start 与 velocity_start 分别位于 q 和 v |
|
free-body setter 实际转交 mobilizer 的路径 |
|
q/v 布局、parent/child frame 与速度表达 |
|
中心惯量、UnitInertia、平行轴、有效性 |
|
连续误差控制、fixed-step 与事件边界 |
|
System 与 Context 树的一一对应、Clone 根条件 |
|
Build 的单次使用与系统所有权 |
|
SetDefaultContext 实际重置的字段 |
|
子 Context 获取、默认状态及输入复制 API |
E2:驱动、机器人与任务接口#
专题:驱动与机器人 → 任务接口。原生输入到输出/事件的引用范围见正文及E2 验证,本次新增以下固定文件。
文件 |
E2 阅读目的 |
|---|---|
Python IK Context 重载与位置约束参数 |
|
PID 的 Python 参数和端口名 |
|
BasicVector 副本与数值访问 |
|
Saturation 与 ZeroOrderHold Python 参数 |
|
multibody/inverse_kinematics/add_multibody_plant_constraints.h |
关节/四元数/闭链等约束及硬软距离区别 |
multibody/inverse_kinematics/differential_inverse_kinematics.h |
经典微分 IK 的 N(q)、速度/加速度限制和 stuck |
multibody/inverse_kinematics/differential_inverse_kinematics_system.h |
Systems 微分 IK 的端口与 v=qdot 限制 |
IK 模型约束装配与关闭 joint-limit 的实际范围 |
|
IK 约束、Context 所有权/修改与碰撞前置条件 |
|
URDF transmission 与 actuator 的创建 |
|
作用点在 B 表达、空间力在 world 表达 |
|
PD + 前馈联合限额、SAP 净驱动读回 |
|
增益有限性、非负约束与关闭 controller |
|
actuator 输入位置、限额、增益与公开适用模式 |
|
IK 二次代价、初值接口 |
|
优化结果成功状态、解与约束诊断 |
|
inverse dynamics 力项和重力补偿 |
|
加速度反馈、完全驱动假设和模型参数 Context |
|
PID 状态、维度、反馈与投影 |
|
Eval、FixValue 的覆盖与复制 |
|
离散 State、周期事件和输出依赖声明 |
|
逐元素限额与 direct feedthrough |
|
保持状态、首次采样及初始化 |
|
三次轨迹 Python 重载与参数 |
|
三次路径插值、样本列和端点导数 |
|
Context 时间求值、堆叠顺序及区间外导数 |
|
轨迹输出阶数与 System 所有权 |
E3:接触、求解与力观测#
阅读链:材料与几何 → 求解与时间 → 力与采样。已存在的 Plant/SapDriver/SAP 参数源码继续复用;新增入口如下。
固定源文件 |
本轮核对目的 |
|---|---|
Python surface/normal/inspector 字段 |
|
候选对、固有排除与模型/Context manager 生命周期 |
|
材料属性与 rigid/compliant hydroelastic 构造参数 |
|
hydro 支持对、网格、fallback 与 scalar 边界 |
|
surface 身份、world 网格与弹性压力场 |
|
见证点、穿透与 B→A 法向 |
|
内部力/速度/广义量,核对 ft 遗留注释 |
|
clique、cluster 和参与图的范围 |
|
线性化动量、A、v* 与 clique |
|
multibody/contact_solvers/sap/sap_friction_cone_constraint.cc |
R、near-rigid 下界及摩擦锥投影 |
multibody/contact_solvers/sap/sap_friction_cone_constraint.h |
线性柔顺、relaxation time 与正则化 |
multibody/contact_solvers/sap/sap_hunt_crossley_constraint.cc |
Similar/Lagged 的 n0、z、cost 与 impulse |
multibody/contact_solvers/sap/sap_hunt_crossley_constraint.h |
Hunt–Crossley 近似与参数量纲 |
cost/gradient/Hessian、负平方根缩放 |
|
Newton/线搜索、实际终止与 AutoDiff 隐函数路径 |
|
刚度/耗散/relaxation time/动态摩擦的实际组合 |
|
point/hydro/deformable 结果集合 |
|
静态与动态摩擦的调和平均 |
|
接触装配、面心求积、力读回与 q 更新 |
|
A 侧 centroid wrench 与 surface 所有权 |
|
连续 hydro traction、atan 摩擦与面积积分 |
|
B 侧力、点、分离与 slip speed |
|
Python 材料/geometry property 接口 |
|
Python hydroelastic 属性重载 |
E4:传感器、渲染与时间合同#
固定版本下的相机、图像绑定、时间事件、理想惯性和显示链;文档已交付、原生运行未执行。复用前期 QueryObject/SceneGraph、MultibodyPlant、SpatialForce 和 ZeroOrderHold 声明文件。新增引用如下:
固定文件 |
阅读目的 |
|---|---|
camera、VTK 参数和 factory Python 绑定 |
|
重力默认和缺失 AddToDiagram 绑定 |
|
gyro Python 端口与 helper 边界 |
|
HWC NumPy 视图和引用所有权 |
|
相机和内参 Python 重载 |
|
camera world pose、按 renderer_name 分派与 viewpoint 更新 |
|
服务、线程、Flush 和 StaticHtml 的边界 |
|
publish/初始化事件及录制实现 |
|
publish period、role、prefix 与 hydro 网格 |
|
渲染前更新 pose/configuration 和分派 |
|
光学 pose、clipping 与有效深度区间 |
|
渲染输出与 label 注册合同 |
|
label 语义、保留值与用户映射 |
|
平台默认与不支持 backend 回落 |
|
VTK backend 字段和显示限制 |
|
刚性安装点的空间加速度平移 |
|
反投影、列序、float32 和无效值实现 |
|
类型、scale、可选 pose 与无效点合同 |
|
向量/abstract 状态与更新事件 |
|
加速度平移、减重力及 C++ 接线 |
|
比力、body/frame 与默认重力 |
|
renderer 类型与配置身份 |
|
连续/Async 分支与 LCM publish offset |
|
内参验证与 FOV 转换 |
|
针孔、像素中心、光学坐标 |
|
旋转表达及端口依赖 |
|
角速度定义、安装方向和理想模型 |
|
32F/16U 单位、截断与无效值转换 |
|
像素存储、尺寸和 resize |
|
各像素类型与哨兵常量 |
|
参数、渲染调用、pose 与 image_time |
|
frame、图像端口及构造合同 |
|
worker 捕获、几何版本、future 和输出 |
|
capture/output 时序、参数和线程限制 |
|
ZOH 接线与 image_time 导出差异 |
|
离散相机声明与更新时间 |
|
offset、floor 量化与参数 |
|
rad、选择/量化、采样边界 |
|
连续 sensor 与消息发布原生接线 |
E5:环境隔离、随机化与数据所有权#
固定源码下从 Context/Simulator 到学习端口、随机事件、记录器与回放的完整链。复用既有 simulator.h、context.h、leaf_system.h、framework_py_semantics.cc、primitives_py.cc 等登记;只完成源码与静态验收,未运行批量、学习或数据回放。新增引用如下:
固定文件 |
阅读目的 |
|---|---|
double 引用与其他标量复制策略 |
|
原生学习端口、step 异常与 reset/handler/render 差异 |
|
Simulator Context 共享、GIL 与串行 MonteCarlo |
|
线程配置、默认串行和最大值锁存 |
|
MT19937 RNG、复制与原生分布单位 |
|
离散时刻定义域、容差和 ZOH 语义 |
|
原生关节角随机分布 |
|
Context 质量/COM/空间惯量参数 |
|
主线程初始化、worker 推进和索引结果 |
|
factory/output、RNG snapshot 与并行合同 |
|
时间回退校验、Context 替换与统计重置实现 |
|
根 Context clone 与依赖指针修复 |
|
离散/abstract RNG 状态、事件和随机输入接线 |
|
实例 seed、固定 seed 与采样保持 |
|
Reserve、扩容与样本追加 |
|
矩阵方向、容量、Clear 和时间值限制 |
|
nothing_ticket 缓存、发布事件与时间戳 |
|
logger trigger、根/子 Context 与日志非状态性 |
|
Python RNG 构造与分布枚举 |
|
ZOH 忽略末样本、value 时间 clamp 的实际实现 |
E6:原生扩展、标量与特色能力#
专题:System 扩展 → 标量与可微限制 → 优化/FEM/综合源码链。复用既有 Plant、SceneGraph/QueryObject、SAP、LeafSystem、System、Python Systems/Plant 绑定;下表为本轮新增固定文件。只有源码与静态验收,没有 AD、优化或柔性体运行。
固定文件 |
阅读目的 |
|---|---|
bindings/pydrake/autodiffutils/autodiffutils_py_everything.cc |
AD 播种、值与梯度提取的原生 Python 绑定 |
FEM 材料枚举与配置的实际 Python setter/getter |
|
TemplateSystem 构造、copy 和 converter 注册契约 |
|
当前 Drake AD 的数值、动态偏导和常量语义 |
|
AutoDiffXd 当前别名身份 |
|
GCS 凸松弛、rounding 及最优性边界 |
|
导数播种顺序和矩阵展开 |
|
下游 Rayleigh damping 实际入参非负检查 |
|
质量/刚度阻尼、单位和模态阻尼比 |
|
本构、默认参数及 damping setter 旧值检查差异 |
|
内部 MPM 目标可见性及尚待公开的集成边界 |
|
内部 MPM 状态、backward-Euler 能量与对象归属 |
|
free FEM、Schur complement 与接触后状态恢复 |
|
double/discrete/SAP 约束与柔性时间积分 |
|
注册、节点状态矩阵、约束与空模型标量转换 |
|
原生推力/反扭矩模型、端口与无状态边界 |
|
平板气水翼系数、空间力输入输出及单位 |
|
FEM 单元、本构和离散 q/v/a 状态装配 |
|
体积力场的 Context 资源及参考体积重力 |
|
刚体力、能量、功率与 scalar clone 扩展责任 |
|
连续状态和 abstract 输入的实际拒绝点 |
|
配点假设、AutoDiff 与 Context/输入生命周期 |
|
单周期离散或 Forward Euler 连续路径 |
|
planning/trajectory_optimization/kinematic_trajectory_optimization.h |
B-spline 路径、时长与 qdot 约定 |
优化程序对象与问题结构 |
|
MathematicalProgram 求解后端分派 |
|
available/enabled/问题属性与解成功的区别 |
|
整图 scalar converter 能力交集 |
|
有向转换支持和丢失标量信息的边界 |
|
System 转换、Context 复制和独立播种顺序 |
|
原生网络 Context 参数与解析 backprop |