* 新增 J519 实发采样器,按 8ms 周期生成 timing/jerk 诊断行并完成 rad->deg 转换 * 兼容层产物导出补充 speedRatio,规划编排补齐 smoothStartStopTiming 与日志透传 * 配置与机型加载切换到运行目录 JSON 模型,并补齐 7L 展开模型与相关单元测试
3.1 KiB
3.1 KiB
UTTC_MS11 Legacy Fit 计划
目标
把 Rvbust/前两个点正常 飞拍失败的运行 中的旧 1x 轨迹拟合逻辑收敛到当前 replacement 实现里,让 UTTC_MS11 在新系统中尽量复现旧系统的轨迹时间轴和中间点形状。
当前已确认的事实:
Config/RobotConfig.json里的UTTC_MS11示教点与旧样本一致。- 旧
1倍速度 角度坐标点/waypoint.txt已给出 20 个示教点的 legacy 时间节点。 - 旧 1x 的节点时间与当前规划时间存在稳定比例,约为
0.742277。 - 当前运行时
ApplySmoothStartStopTiming会再次改写时间轴,这会破坏旧 waypoint time 的拟合结果。
拟合策略
优先分两层处理,不把不同问题混成一个旋钮:
-
时间轴拟合
- 先把
UTTC_MS11的规划时间拉回旧 1x 的节点时间。 - 通过
planning_speed_scale复现旧waypoint.txt的时间比例。 - 对 legacy-fit 轨迹,禁止运行时二次平滑起停时间重映射。
- 先把
-
空间曲线拟合
- 保持原始示教点不变。
- 先用当前插补器 + legacy 时间轴做第一版对齐。
- 如果中间点仍和旧轨迹差异明显,再用旧
JointDetialTraj.txt在 knot 附近反推速度/加速度,升级为 Hermite 拟合。
计划分解
1. 配置层
- 为
RobotConfig.json增加明确的 legacy-fit 运行开关。 - 当前现场的
UTTC_MS11显式启用:planning_speed_scale = 0.742277smooth_start_stop_timing = false
- 保留默认行为为兼容旧实现,以免影响其他轨迹。
2. 编排层
ControllerClientTrajectoryOrchestrator读取运行配置后,按开关决定是否调用ApplySmoothStartStopTiming。- 缓存键必须包含该开关,避免 legacy-fit 和普通飞拍共用一份结果。
saveTrajectory/IsFlyshotTrajectoryValid仍然输出规划结果,只是 legacy-fit 轨迹不再被二次改写时间轴。
3. 运行层
FanucControllerRuntime继续使用 8ms 物理发送周期。- DenseSend 实发点数仍按
duration / (8ms * speedRatio)计算。 - 终点要保留完整落点,不因为非整周期而丢掉最后一个点。
4. 测试层
- 增加配置测试,确认新开关可解析,默认值不破坏旧行为。
- 增加编排测试,确认 UTTC_MS11 的规划时刻与旧
waypoint.txt一致。 - 增加运行测试,确认 legacy-fit 目录能写出稳定的 DenseSend 诊断文件。
- 继续保留原有平滑起停测试,作为“显式开启平滑时”的回归保护。
验收标准
UTTC_MS11的 waypoint time 与旧waypoint.txt对齐。UTTC_MS11运行时不再额外套一层平滑重映射。- DenseSend 输出稳定,且不再受旧 bin 目录残留影响。
- 现有默认轨迹和非 UTTC 场景不被破坏。
后续可能的第二阶段
如果时间轴对齐后,中间点仍和旧轨迹有明显偏差,再做第二阶段:
- 从旧
JointDetialTraj.txt提取 knot 附近速度/加速度。 - 用 Hermite / quintic Hermite 继续逼近旧曲线形状。
- 将空间曲线拟合与时间轴拟合分开验收。