cbb
|
9ed213417b
|
feat(monitor): 网页加 CPU 占用卡(总占用环 + 28 核逐核条),psutil 采样缓存 1 秒;顺便重启控制台让之前的补量进度口径与停止补杀生效
|
2026-10-18 13:57:48 +08:00 |
|
cbb
|
e6418da084
|
fix(monitor): 补量时进度条显示全量而不是从 0 开始;停止时补杀 Git Bash 逃掉的 node 孙进程
- gen 进度:分子改为统计全部分片(含之前轮次),分母仍是累计 target_tasks,补量时显示 50,008/79,688 并标注「本轮补 N 条」。此前只统计本轮开始后改过的文件,看起来像从零重跑。
- 停止:taskkill /T 在 Git Bash 下只杀到 bash,node 孙进程会逃(实测点了停止还有 28 个 gen_dataset 在跑)。按命令行补扫 gen_dataset.cjs / run_parallel.sh / teacher.cjs / policy_bench.cjs 并 Stop-Process;正则已验证命中 gen、不误伤普通 node。
|
2026-10-18 13:54:16 +08:00 |
|
cbb
|
241333c213
|
fix(pstate): 改 TARGET_SAMPLES 不再作废 gen 的已有分片——只重跑 gen 补量(run_parallel 跳过写完的 shard、按差额补量),prep 及之后仍作废;此前把它当"从 gen 作废"会让 5 小时生成的 5 万条分片被整体移进 archive,用户改目标样本量就得从头跑
|
2026-10-18 13:50:12 +08:00 |
|
cbb
|
c128288c1b
|
fix: gen 判定改按产物而不是 wait 退出码——实测 28 个种子跑 5 小时后全部 wait 报失败,但每个 .part 都是完整的 1786 行(node 打了 done、mv 没执行),Git Bash 长跑后 wait 返回码不可靠;现在只要 .part 行数达标就补改名并记成功,只有产物缺失/不全才算失败。另:监控页 1 秒轮询(并行取 status/job/runs + nvidia-smi 缓存),GPU 数字 2 秒缓存。
|
2026-10-18 13:48:30 +08:00 |
|
cbb
|
b25a7a8bfa
|
fix: pipeline.sh run() 回显改走 stderr——gate1 用 tee 把 stdout 存成 consistency.json,回显混入让 gen 读 CONSENSUS 时 JSONDecodeError 停在 gen(第一次真跑实测:kin/r4/gate1 rc=0、gen rc=1);文档记门 1 实测 0.838<0.9 → 自动走共识分支
|
2026-10-18 07:23:29 +08:00 |
|
cbb
|
c175357b72
|
docs: 训练定名「Transformer 多峰策略端到端训练与浏览器部署」——写入 ml/README 标题与控制台顶栏(含浏览器标签),长跑时打开网页即见;截图复核排版未挤坏控件
|
2026-10-18 06:40:26 +08:00 |
|
Hark
|
d03f34822c
|
第八轮:monitor 状态三项被注释吞掉的 bug;R9 改判稳态 planWarmP99 + 运动中饥饿 + 认证超时占比;APG steps 8000(batch 48 保持总任务量);r4 不再静默退回 CDN;自检副本含未跟踪文件;显存文案按 19–20 GB;审查文档精简为实测/判据/待数据/三段训练
|
2026-10-18 06:40:26 +08:00 |
|
cbb
|
8ad6b58fca
|
ml: 显存预算按 19–20 GB 落地 + ort 本地副本入库 + R4 复跑(feat_dyn)通过
- 显存:APG batch 128→48(实测 d=192 下 128 无论 plans 60/150 都 OOM,崩前已分配 17.85 GiB;48/plans150=13.08、48/60=7.67);新增 ml/common/vram.py 每进程硬帽 VRAM_FRAC=0.78 并把 vram 峰值写进 train/APG 日志、监控页加「显存峰值」卡与按 20 GB 预算的显存条;smoke.json 补 apg 段并让自检带 --config。
- 自检修复:find_bash 兼容便携版 git 的 mingw64 布局(本机原返回 None → 网页「开始训练」起不动);selftest_proc.alive 读中文 tasklist 的 GBK 崩溃;rec 值非法 JSON 时静默丢项;gen_resume 判据剔除 plan_ms/cert.ms 两个墙钟字段(旧判据恒 false)。整轮重跑 7/8 通过、3.5 分钟,仅 train_term 为 Windows 真实限制(TERM 送不到原生 python)。
- vendor: onnxruntime-web 1.20.1 本地副本入库(约 33 MB),查看器与 R4/R9 探针不再依赖 npm/CDN;.gitignore 同步移除该目录。
- docs: 第八节 R4 复跑(feat_dyn 新模型):部署口径 P99 12.67 通过;WebGPU 首次实测 27.09(有界面窗口,adapter nvidia ampere);viewer_ref 随机模型 planP99 131 / starve 32.7% / lookaheadP99 170 / certFailWhy time 948 / tickGapMax 736,三条判读留给实现方。
|
2026-10-18 06:40:25 +08:00 |
|
Hark
|
591678703a
|
第六、七轮:离线 ort/WebGPU、R9 查看器整周期、安全层截止下沉、enc_once 前瞻 bug(feat 动态轴)、UTF-8、断点 RNG 续跑与 --stop-at、R2 池无关性自检、R8 出题缓存、本机自检 selftest、冒烟 smoke;遗留清单并入审查文档第六节
|
2026-10-18 06:40:25 +08:00 |
|
cbb
|
b6141d237c
|
fix: R4 探针页 tensor 复用(proxy 下 buffer 被 detach)+ pipeline.sh 7 处 GBK 读取 + r4 分支返回码;r4 端到端 rc=0
- webapp/r4_probe.html:feat 移进 run() 每次新建。proxy=1 时 ORT 把输入 transfer 给 Worker,旧写法第二次 run 报 Tensor size(83) vs data length(0),两种 proxy 配置全挂、r4.json pass=null。
- ml/pipeline.sh:7 处 json.load(open(...)) 补 encoding='utf-8'(:90 :110 :118 :127 :136 :138 :144)。r4.json 以 ensure_ascii=False 写出,Windows GBK 下 :110 实测 UnicodeDecodeError,命令替换为空会让上层分支走错。
- ml/pipeline.sh r4:末行 `[ "$r" = null ] && echo` 在 r=pass 时整体返回 1,set -e + EXIT trap 把通过的 r4 记成 rc=1(all 会因此停)→ 改 if/fi。
- 实测复跑两次:pass=true,部署口径(16 线程+proxy+enc_once)P99 10.22 / 11.25 ms,4 线程 13.58/13.64,无 proxy 9.28/10.92,webgpu 仍 backend not found。
- 文档同步:A 组两处标记已修,仅留 A-3(ortLocal+proxy 离线路径)交实现方。
|
2026-10-18 06:40:25 +08:00 |
|
cbb
|
a1ee7d1a4d
|
docs: ml 审查精简版(763→85 行)——删去前五轮已解决条目,只留:R4 实测基线(部署口径 P99 11.07 通过、查看器 infer/safety 30.4/61.6+63.5/248.8)、A 组三处会断流程(r4_probe.html 复用 detached tensor、pipeline.sh 7 处 GBK json.load、ortLocal+proxy 离线路径失效)、B 组三项待判(R4 双口径、safetyMs Node vs 浏览器两把尺/R9 无数据、WebGPU 零数据)、C 组六项未实测(6–13 步、gapDrop、R2 池无关性、R8 出题耗时、Windows 生命周期、续跑本机复核)、D 组 webapp/models/README 过时
|
2026-10-18 06:40:25 +08:00 |
|
Hark
|
f40a40c56b
|
第五轮:锁/续跑/超时/自动分支/R4 探针与 encode-once/控制台加固;阶段内断点续跑(gen 按条、prep 按 shard、训练与 APG 定时原子存档+体面停止);分歧以实现方意见为准
|
2026-10-18 06:40:25 +08:00 |
|
cbb
|
3675fbbd9b
|
docs: ml 审查第四轮(对 14d72a9 与训练控制台)+ R4 实测——控制台 N-7 并发无锁(守卫只看 log.jsonl,gen/prep/m5/bench 阶段失灵,二次生成用同名 shard 互相截断)、N-8 开始/停止无 Origin 校验(本机网页即可停掉长跑)、N-9 每次刷新全量重读 shard、N-5 r4 与真模型同名同路径、N-10 console.bat 用 where python 判存在且不带 conda 环境、N-16 gen 节拍被重定向吞掉且 C 类采样 for(;;) 无上限;修法按完整流程分层(状态机可续跑/入口互斥且脱离控制台/门槛改自动分支/阶段超时心跳);R4 随机模型实测 batch=8:4 线程 P50 33.2 P99 37.0(要求 <15,差 2.4×),16 线程 13.7/19.5,24 线程反而劣化,闭环倍率未采到(主线程已挤到 CDP 取不到槽),故 K 与重复 encoder 是必改项;附 .gitignore 忽略 20 MB 级模型产物
|
2026-10-18 06:40:24 +08:00 |
|
Hark
|
5591adb39a
|
ml: 第二轮审查 B-1~B-8 处置 + 一键训练控制台
- B-1 运行时投影护栏恢复 5 mm;老师轨迹按认证最小间隙 < 3 mm 剔除(stats/build_dataset,gapDrop)
- B-2 APG 端点+中点 hinge 取均值;B-3 check_r2 空匹配保护、5000×50000、分块 256,pass=false 时 prep 停下
- B-4 R7 按全部 B/C 题统计;B-5 r8 起点贴柱;B-7 pipeline r4(export_onnx --random,训练前测延迟)
- B-8 起步失败 ≤0.2%、column_gap 分块、pipefail、门禁结果先写 .tmp
- 训练控制台:ml/console.bat|sh → ml/monitor.py(开始/停止/进度/日志接口)+ monitor.html;
pipeline.sh all 支持 FROM/TO,阶段状态写 ml/runs/pipeline.json(ml/pstate.py);训练/APG 日志加 total、t
- 文档:README 一键运行与训练控制台;审查文档追加第三轮处置;方案余量决策与 R4 时点
|
2026-10-18 06:40:24 +08:00 |
|
cbb
|
5348bc6f6f
|
docs: ml 运行手册审查追加第二轮(对修订版 d3b7c7b 的可行性评估,只读代码未跑):13 条处置表(R10 阈值/共识补量/头分目录/$PYTHON/三口径/exec_s 置 None/池只用本轮/fp32/验收汇总 已落地);新引入问题 B1~B8——3 mm 是靠放松运行时投影迁就数据分布(正解在认证侧过滤老师样本,属需拍板的安全决定)、APG 端点+中点 hinge 使碰撞项约 ×2 而 w_col 未重标且 plans 60→150 单步代价上界 ~4× 而 §8 估时未改、check_r2 空匹配取 quantile 会抛且默认 20万×2万 池峰值 2–3 GB 显存、gate R7 左右比例以到达为条件会漏报多模态被压缩、r8 集合起点未查贴柱「两侧都要绕远」名不副实、§2「实测 7.6 s」是 300 条口径而流程跑 2000 条、R4 wasm batch=8 P99 至今没测;结论:1–6 步可执行、7–13 步零证据,第 7 步前先结 R4 并单独拍板 margin
|
2026-10-18 06:40:24 +08:00 |
|
Hark
|
f8cdabb781
|
ml: 按运行手册审查修订——头分目录不互相覆盖(ml/runs/<CFG>、selected_ckpt/CKPT);统一 $PYTHON(Windows Git Bash 可跑);gen 按实测样本/任务自动补量;R10 改终态判据(≥5k 样本/s≈60k 步≤3.5h);m5 纯策略/仿真安全层双口径;无老师题定长 6 s 口径;APG 展开随批时长、端点+中点铰链、余量 3 mm(投影同步);挖错池只用本轮;门禁加 R7;bench 加 R8 对抗集与刹停率、--nc-n/--route-n/--r8-n;新增 check_r2 与 acceptance;export 默认 fp32;出题分块防 OOM;val 为空保护
|
2026-10-18 06:40:24 +08:00 |
|
cbb
|
8800a68cad
|
docs: ml 运行手册审查(本机 3090 实测):训练吞吐 6208 样本/s 与方案 R10「≥2万/s」冲突;共识过滤分支缺期望数字、WTA 回退覆盖 ml/runs/base 丢对比物、run_prep 用 python3 在 Windows 第5步末失败;仿真安全层≠ik-policy 运行时(M5 穿柱率与 bench collisionFrames 两把尺)、挖错题 exec_s 写死 3.0 致到达率不可比、APG 仅 3.6 s 定长且只查端点、老师 minGap p50 4.4 mm 压在 5 mm 训练余量下;含复现命令与按优先级改动清单
|
2026-10-18 06:40:23 +08:00 |
|
Hark
|
2a0a2e55ad
|
ml: 数据生成 + 可微运动学对拍 + MeanFlow/WTA 策略与闭环仿真 + APG/挖错/ONNX 导出与运行手册
- M1 数据生成器:采样/老师/距离下界认证/时间律/统计/一致性门禁;确定性老师(碰撞次数计时 + resetSession)、pos 任务冻结 J6、--consensus 邻域共识过滤、Dr 类。
- 全流程代码与运行手册:数据打包/可微运动学与对拍/MeanFlow+WTA 模型/闭环仿真/APG/挖错循环/ONNX 导出;webapp 策略运行时 ik-policy.js、?policy=1 接入、tests/policy_bench.cjs;ik-solver 增 pairList/clusterExport/criticalPairs/pairGap/leverTable。
|
2026-10-18 06:40:23 +08:00 |
|
Hark
|
cc43b3d3be
|
docs: Transformer 拟合避障轨迹规划训练方案(最终版):无老师闭环部署、MeanFlow 动作头(WTA K=8 回退)、距离下界安全认证、APG 后训练与挖错循环、里程碑 M1–M8;附 HTML 版
|
2026-10-18 06:40:22 +08:00 |
|
cbb
|
67964496be
|
fix(ik): 贴立柱目标不再误判为立柱区内:候选表分层保留 + 姿态放宽兜底 + 实时管线跨帧坏边/目标解优先/预算递增/半格复验;新增贴立柱基准 tests/near_column_bench.cjs
|
2026-10-18 06:40:22 +08:00 |
|
Hark
|
46bdb98dd8
|
feat(ik): 实时避障版:离线路网 PRM + 在线 Lazy A* + 终身增广 + 拖拽热启动;实时管线全程细验(拖拽穿模帧 430→0,重规划 P50 5 ms);前端每帧碰撞守护
|
2026-10-18 06:40:22 +08:00 |
|
Hark
|
318ad0e264
|
feat(ik): 避障路径改为多目标 Lazy RRT-Connect + 规划提速 32%
- 避障路径改为多目标 Lazy RRT-Connect + 捷径平滑;碰撞窄相位预测提速。
- 规划提速 32%:(2,4) 零件对类离线间隙表、撞点前移、判定记忆、routeFrom 惰性回退、平滑预算收紧。
|
2026-10-18 06:40:22 +08:00 |
|
cbb
|
1dfdd48792
|
refactor(viewer): 截图视图 107 砍到 31,docs/shots 改为纯生成落点并取消跟踪
根因:以前只删图没用,一次性机位还挂在 arm/viewer/shot.py 的 VIEWS 里,
关卡一跑就在 docs/ 里原地复活 104 张。
- 删 76 条历史排查视图:user_*(17)、boss_p04..p07、hollow_p0x、p03_light_*、
p03_mount_*、bay_p0x_inside(含重复键)、tie_probe/after_*、j3_前端压盖_*、
view_yz_*、svg_*、p04/p05/p06/p07_*_side、zoom_user、shot_p08_user 等
- 保留 31 条真正在验查看器本身的:13 个机位/爆炸/姿态 + 9 个工程图·向导·运动模式
+ 9 个线束(含 3 个 x-ray)
- docs/shots 从跟踪里摘掉并写进 .gitignore;docs/ 现在只剩 json/svg/md/html,没有位图
- 基线同步为 20 张逐字节 + 11 张容差,与视图集合一一对应(无孤立基线、无缺基线的视图)
- 修我自己在上一步改 shot.py 时误删的 os.makedirs(SHOTS, exist_ok=True)
—— 目录不存在时 Edge 写不出 PNG,31 个视图全报 FAIL 0 字节
未做:完整关卡复核(截图两遍 + IK + 数据 md5)尚未跑,这次提交只保证名单自洽。
|
2026-10-15 12:26:08 +08:00 |
|
cbb
|
11205f81c7
|
chore: 编辑器残留与脚本自动备份取消跟踪,文件全部留在磁盘
- .bak/ 12 个 *bak20261005*/20261007 旧备份:.gitignore 第15行早就写了 .bak/,
但跟踪优先于忽略,所以一直没生效——这次用 git rm --cached 摘掉才真正排除
- .trae/documents(2) / .workbuddy/memory(3) / .zcode/config.json / .zcodeignore:
别的编辑器与助手的本地配置、会话记录,不是工程产物
- 定位图/ 整目录改为忽略:它只是"给用户看的核验图落点",一次性且会被反复清空,
关卡比对的权威物在 tests/baselines/(md5 名单 + flaky 参考像素),不依赖这里
- .gitignore 里 "可用 src/ 下的脚本重新生成" 的注释同步改成 python -m arm.*
只动索引不动工作区:19 个文件仍在磁盘上(唯一不在的是已被外部删掉的屏幕录制 mp4,
现在取消跟踪后不再脏 status,历史里仍可取回)。
|
2026-10-15 12:10:27 +08:00 |
|
cbb
|
8cf830493e
|
chore(docs): 清掉过期核验图与一次性排查图,两份手写 HTML 移入 docs/
判据=既不是 arm/viewer/shot.py 当前视图、也不在 tests/baselines/ 关卡比对里、
且不被 README/docs/webapp/arm/tests 任何文本引用。
- docs/shots 删 133 张 + docs/section_p01_seam.svg,共 16.47 MB;剩 105 张
正好等于关卡覆盖面(92 稳定 + 13 容差),基线文件零缺失
- 定位图 删 63 张历史落点,共 9.12 MB;只保留用户录屏 mp4
- 线束走线与总线拓扑设计方案.html / 螺丝采购清单.html 从仓根移入 docs/(逐字节相同,按 rename 记录)
关卡:数据 10 项 md5 一致、IK exact 逐字节一致、92/92 逐字节 + 13/13 容差全过。
|
2026-10-15 12:07:50 +08:00 |
|
cbb
|
e79cfd8e8f
|
chore: 清掉本轮排查用的临时截图(关卡证据已在 tests/baselines/ 与 docs/shots/)
|
2026-10-15 05:21:21 +08:00 |
|
cbb
|
f713355351
|
refactor(viewer): app.js 按职责切成 8 个普通脚本(纯切片,零语义改动)
state / harness / camera / pick / ui / sheets / render / urlparams。
经典脚本的顶层 const/let 落在同一个全局词法作用域,所以切片本身不改变任何行为——
这一步先让"文件边界"与"模块语义"两件事分离:翻 ESM 时若出问题,责任清楚在
import/export,而不是切片切错了行。
切片踩到并修掉的:urlparams.js 被切掉了 IIFE 的收尾 })();(我按 len-2 收边界),
node --check 当场报 Unexpected end of input。
截图基线分级也在这一步收敛:工程图/装配向导视图带 feGaussianBlur 发光滤镜,
同一构建两轮就有 ±1 抖动(先前扫描那两轮碰巧逐字节相同,才漏进"稳定"清单,
于是随机假 FAIL)。把 8 张工程图/向导视图连同 3 张线束 x-ray、boss_p07、
p03_mount_loose 一起转像素容差(存参考像素,阈值 mean<=0.02、单像素<=32,
约实测 20x 余量),其余 92 张仍要求逐字节相同。
关卡:92 张逐字节一致 + 13 张在噪声阈内;数据哈希与 IK exact 段一致。
|
2026-10-15 04:45:56 +08:00 |
|
cbb
|
531a293688
|
refactor(viewer): 单文件查看器拆成 webapp/ 多文件,走本地 http;Worker 换成真文件
前端不再是"一个 16MB HTML + 一个 2955 行模板"。现在:
webapp/index.html 343 行 DOM 骨架,零内联数据
webapp/styles/*.css 811 行 CSS 按段切成 8 个文件
webapp/js/app.js 原内联主脚本逐字搬出(仍是普通脚本,S5 才改 ESM)
webapp/js/ik-solver.js / ik-glue.js / vendor/three.min.js(原 web/ 三个文件)
webapp/workers/ik.worker.js 真 Worker 文件
webapp/generated/00_data.js 生成物(网格/工程图/行程/碰撞/螺钉)
dist/机器人手臂3D查看器.html 分发用单文件,由 build_viewer 内联上面这些文件产出
入口:python -m arm.viewer.serve 后开 http://127.0.0.1:8123/
(serve 带 no-store,改完刷新即新构建,不再需要 Ctrl+F5;显式 MIME,
.js 被 Windows 注册表判成 text/plain 会让模块静默不执行)
删掉 src/viewer_tpl.html 与 web/ 目录(旧产物移入 backups/pre_split_20261015/)。
工程图不再维护第二份 sheets.jsdata —— 直接读 draw_sheet 写出的 4 个真 SVG。
实测中修掉的问题:
- serve 的 / 原先"内部映射"到 webapp/index.html,导致文档基址是 /、相对路径的
8 个 CSS 与 4 个 JS 全部 404(整页无样式无脚本)。改成 302 跳转。
- file:// 下 new Worker('workers/…') 构造阶段不抛错、错误以异步 onerror 到达,
所以"构造失败才试 Blob 兜底"永远不会触发;改为按协议选路。两条路径都已实测
backend=worker(http 走文件、file:// 走 Blob)。
- Worker 握手 3s 在 headless 并发下会误判"没起来"(截图里红徽标即此),放宽到 10s,
并把后端状态暴露成 window.__IK_BACKEND / __IK_BACKEND_LOG 供测试直读。
- 截图竞态:4 并发 × 每页 14MB 数据时,虚拟时间预算会在页面加载完成前到期,
拍到半初始化画面(且能"稳定地坏",旧基线里 m9_motion 就是这么混进来的)。
并发降到 2、预算 40s、serve 加 HTTP/1.1+大缓冲+字节缓存,并用"同一构建两轮"
重新界定稳定性:99 张逐字节一致、6 张属噪声改走像素容差(mean<=0.02、单像素<=32)。
- 关卡自身两处假通过已修:node 输出被 GBK 解码炸掉时不再算 PASS;
线束干涉测试读不到通道源码时会 exit 2,而不是"零通道=零穿透=通过"。
关卡结果:python -m arm.build_model 退出码 0;10 项数据哈希与基线一致;
IK exact 段逐字节一致;99 张截图逐字节一致 + 6 张在噪声阈内;线束干涉测试 1800 点 0 穿透。
|
2026-10-15 04:31:31 +08:00 |
|
cbb
|
649bd69810
|
refactor(layout): src/ 收成顶层包 arm/,入口统一 python -m;提升承担构建的 scratch 脚本
单文件约束取消后,Python 侧没必要再靠 16 处 sys.path.insert 维持扁平模块互认。
现在按职责分包:
arm/paths.py 路径唯一来源(含新增 CACHE、TPL)
arm/constants.py 实测接口数值(原 armcore 的 M/C/CLR/FIT/MOTOR_TOL 段)
arm/cad/{helpers,arm_build,part_tools,parts/} 几何与装配
arm/kinematics.py(原 human_layout.py,唯一运动学事实源)
arm/analysis/{sweep_v2,strength_check,torque_balance,finalize_travel,ws_sweep,gen_env_mesh}
arm/dataio/{screw_mesh,draw_sheet} arm/viewer/{build_viewer,shot}
arm/build_model.py(原 arm_model.py)
顺带修掉的既有缺陷(都是实测撞出来的,不是预防性改动):
- arm_model 第二次 sys.path 跳到 gitignore 的 scratch/ 去 import 构建必需的包络脚本:
ws_sweep/gen_env_mesh 提升进 arm/analysis/,缓存挪到 data/cache/(gitignore,可重生成)。
- finalize_travel / draw_sheet 顶层就是"算完写文件",一次 importlib 冒烟测试就把
docs/travel.json 重写了一遍;现在被 import 直接抛错。
- strength_check 用 OUT.replace("/out","/web") 靠字符串形状推路径,改成直接用 WEB。
- build_viewer 里 WORKSPACE 使用点漏改导致 NameError —— 已由构建关卡抓到并修掉。
os._exit 的处置与计划里的假设相反:实测光是 `python -c "import arm.cad.helpers"`
就会在解释器退出时段错误(exit 139,OCC 静态析构),全流程跑完也一样。所以入口
脚本尾部保留 flush + os._exit,并把原因写进注释;被 import 时不生效。
关卡(tests/):
- verify.py 一条命令跑三层:产物 md5、IK 数值 exact 段、截图。
- 截图基线重做并分级:同一构建连跑两轮实测 102 张逐字节可复现(要求 md5 相同),
3 张线束 x-ray 不可复现(mean<=0.0017、无像素差>8)改为与参考像素比容差;
这 3 张不再入库,免得每次跑关卡都脏 git。
- 新增 ?view=sheet / ?sheet=N / ?theme / ?guide=N 四个 URL 参数:工程图与装配向导
占了约一半 CSS 和 700 行 JS,原先没有任何截图覆盖,拆它们等于没有关卡。
- 关卡灵敏度已验:改坏 IK 基线一个数 -> FAIL;换旧版求解器 -> 5 处 exact 差异。
实测:python -m arm.build_model 退出码 0,全部产物 md5 与基线一致,
105 视图截图全过,IK exact 段逐字节一致。
|
2026-10-15 03:31:20 +08:00 |
|
cbb
|
b32d44efe0
|
test: 加 IK/数据/截图三重基线关卡,并刷新过期的截图基线
重构 2955 行的单文件查看器必须有"行为没变"的可判据,否则改到什么程度全靠感觉。
tests/ik_baseline.mjs 在 Node 里直接跑求解器(它本就是 UMD,带 module.exports 分支,
不需要浏览器),输出分两段:
exact —— 件数/顶点/三角、TCP 推断、限位、固定 FK/fkChain/orient、固定目标的
solveDyn 解向量、selfTest/poseSelfTest 的误差与命中数。selfTest 内部走
Math.random,这里锁成定 LCG,所以 exact 跨进程逐字节可复现。
timing —— solveDyn 中位耗时(9 次去头 3 次预热)。本机进程间抖动实测约 ±28%,
因此只按 ±10% 报 WARN,不当硬门。
关卡灵敏度已验:指向 scratch/arm-ik-solver_before.js 时报 5 处 exact 差异并 FAIL。
docs/shots/ 里 92 张是 10-09 生成的,早于 10-14 的重建,属过期基线;重跑 96 视图
全部 OK、0 FAIL。另发现既有非幂等问题:committed 的 mesh 是"端到端构建后再单跑一次
screw_mesh.py"的产物(螺钉 idx 118..214、ENV 件排在第 19 位),端到端构建则为
20..116、ENV 排在末尾,两者零件集合相同但顺序不同,导致 2 张线束透视图的透明排序
像素级不同。本提交以端到端构建为准。
|
2026-10-15 02:24:38 +08:00 |
|
cbb
|
7e040fc766
|
refactor(paths): 路径改由 __file__ 推导,不再写死 G:/Robot_v2
armcore.py 里 ROOT/WORKSPACE/OUT/WEB/DOCS 与三个外部 STEP 输入原本是硬编码
绝对路径,仓库换个盘符就全断。改成由本文件位置推出(REPO.parent 即原
G:/Robot_v2,行为逐字不变),并留 ARM_WORKSPACE / ARM_ROOT / ARM_MODEL_ROOT
三个覆盖入口。保持正斜杠输出,因为 strength_check.py:162 的
OUT.replace("/out", "/web") 依赖这个形状(该写法本身也在这次重构中清掉)。
实测关卡:连续两次 python src/arm_model.py 产物逐字节相同;
travel/collide/screws 三个 JSON 与基线 md5 一致。
同时加 pyproject.toml 声明元数据与运行依赖(不装包,入口用 python -m)。
|
2026-10-15 02:23:55 +08:00 |
|
cbb
|
b67d3ce56e
|
chore(repo): 停止跟踪 47MB 构建产物
单文件查看器不再是交付约束,就不必再把 14MB 网格与 3 份 16MB HTML
背在 git 里。取消跟踪(磁盘文件保留),重建产物不再脏 git status,
后续每步重构的关卡才能靠哈希比对而不是"看哪些文件又变了"。
|
2026-10-15 02:23:41 +08:00 |
|
cbb
|
b0efb44368
|
feat(arm): 建模代码拆成每件一模块,查看器新增工程图与装配步骤页
- src/parts/p01~p09 + src/part_tools.py:几何、件号/配色/说明与装配帧归属随各自件文件走,arm_model.py 只留装配流水线并对件级符号做只读转发;P04_CH / P07_CH / P06_WIN_XZ / FENCE_OPEN_CUT 这类开关必须写所在件文件,写 arm_model.X 不生效,A/B 判据为翻转后体积变化
- docs/sheet_{exploded,front,side,joint}.svg + draw_sheet.py:四张工程图进查看器页签,支持图层开关、件号高亮与 BOM/3D 联动跳转
- travel/travel_detail/collide/bom/screws 随最新几何重生成;补线束走线、拆卸定位点与 P04 承压面剖切验证图
- .gitignore 排除 .bak/ 与 *.bak_* 源码快照(旧版本 git 历史里已有)
|
2026-10-14 22:03:18 +08:00 |
|
cbb
|
c754521bde
|
feat(arm): 线束走线可视化落地,并修复承压面盒切误伤底壁
- 查看器新增线束/走线指示系统(4芯主干、电机出线分支、过关节缓冲环、T接小板),
配套《线束走线与总线拓扑设计方案》文档与 src/test_harness_collision.py 干涉校验
- 取消 P04/P06/P07/P08 的敞口侧定位环盒切(俯仰关节局部坐标使切刀上侵底壁 3mm,
平白造出 3x6.1mm 缺角),底壁补齐;盒切仅保留原本专用的 P05(M3),开关改名 M3_FENCE_OPEN_CUT
- 3MF 基准 profile(537 键)从手作原件抽出固化到 docs/bambu_profile_reference.json,
导出链路不再依赖 out/ 二进制;P01_A 也改由当前模型生成,原件备份进 .bak/
- strength.json、BOM、screws、截图与三份查看器 HTML 同步重生成
|
2026-10-07 19:08:47 +08:00 |
|
cbb
|
d8f6c69406
|
feat(arm): P04顶缘改R3圆角+竖直前壁消除刀刃状凸起,并带上承压面R35圆腔等未提交改动
用户截图圈的"非常尖的凸起"实测是顶面前沿一条刀刃:2026-10-04 把前脸改成与顶面
相切的 Hermite 弧面,但只有 9.0mm 的 Y 预算却要吸收 120.5mm 落差,90° 转弯全挤在
起点——离开顶面 0.28mm 就转到 45°,起始曲率半径 0.571mm,Y=164.32 处顶面与前脸之间
料厚只剩 0.027mm。2026-10-05 的起点加密又抹掉了第一段 57° 折线那层意外钝化。
且历次只碰前缘一条棱,顶面左缘(X=11.5)与后缘(Y=91.5)仍是 89° 直棱。
现改为常规形状:顶面 -> 前侧 R3 圆角 -> 竖直前壁 Y=164.5 直落到 Z=566 -> Hermite
(两端切线沿 -Z,G1) 顺收到 (155.5,526);顶面后缘对称再倒 R3,弧心切点按背面那条
0.24° 斜线取值以免露出台阶。crest 不再是独立最外凸点,尖从根上消失。
代价与核验:P04 体积 276.2 -> 296.2 cm3(+20.0,填掉原内凹腔);Y 最大仍 164.5,
与 P03 止脱环 R36.5/顶646.5 的齐平不变;13/13 单实体、静态干涉 8/8 零、97 颗螺钉。
J1 扫掠半径由 51.6 增至 57.2mm,动态行程数据(collide.json/travel.json)待重扫。
同时带上上一轮未提交的改动:承压面让位腔改 R35 圆腔、主腔统一 BAY_R=30.50、
M2/M3 前端压盖与围挡敞口侧切除、build_viewer 三副本逐个写盘(避免浏览器独占锁
导致"改了源码网页没变")。
|
2026-10-07 02:27:38 +08:00 |
|
cbb
|
e3b25452e1
|
feat(arm): 电机双向夹紧与2mm厚度公差让位,立柱减重槽及文档同步更新
|
2026-10-04 13:16:32 +08:00 |
|
cbb
|
b593e47c76
|
feat: 增加组合折叠姿态干涉扫描、力矩实测与结构强度复核数据
|
2026-10-02 12:06:23 +08:00 |
|
cbb
|
6fe97fc643
|
refactor(model): 重构P03为轻量化板式桁架并统一M4×16自攻螺钉连接方案
|
2026-10-02 04:39:12 +08:00 |
|
cbb
|
208b37048b
|
fix: IK 全面审查三处修复——NaN 防线、实时拖拽被入场动画覆写、滚转角miss突跳
- 求解器 inLimit/evalAt 容差比较改否定式:原写法在 NaN 下比较恒假,
NaN 目标/姿态曾产出 ok=true 且 q 含 NaN(UI 有 number 输入净化+isFinite
双保险触不到,但公开 API 与将来的 MCU 端口会中招)
- glue setJoints(q,false) 补 anim=null:直接写入不再被在飞的 620ms 入场动画
覆写、结尾不再跳回旧目标(实时追踪拖拽撞上入场动画的窗口期)
- glue rollAngleAt 射线错过平面改返回 null:原来返回 0 会让滚转角按 -a0 突跳,
现在该帧直接跳过
- 回归:node 六项全绿;NaN/Inf 目标三种注入均 ok=false 且 q=null;
40 组随机位形与 fast 副本仍逐位一致;浏览器冒烟已到达/零报错
|
2026-09-29 00:24:58 +08:00 |
|
cbb
|
4fdc37da9f
|
perf: IK求解器姿态路径提速1.41×——轴夹角预筛+Set去重+免hypot,并修正牛顿收口取错行的列下标bug
- 4.3牛顿收口 err2 原取 [M5[6..8]](行主序第2行)当"列2工具轴",正确应为列2
[M[2],M[5],M[8]];该节因此从未起作用。修复后 selfTest 姿态命中 5/6→6/6、
最差 oerr 0.602°→0.024°
- scoreBranch 轴夹角预筛:θ6 只滚转不改工具轴 ⇒ oerr≥轴夹角(20万样本零违反),
轴夹角就超 POSETOL 的候选免 orient 全矩阵+acos 直接拒
- keepBand.indexOf → Set.has(原 O(n²) 约6000×4000恒等比较/次);evalAt 误差范数
hypot→平方和
- A/B 40 组随机位形输出与合入前逐位一致(Δθ=0.000°、nSol 一致、oerr 零变差),
node 六项回归全绿,浏览器冒烟已到达/残差6.4e-14mm/零报错
|
2026-09-29 00:10:12 +08:00 |
|
cbb
|
a70724e8a9
|
feat: 查看器新增姿态控制算法与箭头拖拽交互(TCP位置+工具姿态6自由度联合IK),IK控制条改两行,补充定位图截图
- arm-ik-solver.js:位置闭式支附加 θ6 滚转解算(N=R5^T·R_des,工具轴与 θ6 无关的结构);达标带(e≤1°)按 e 升序取种子 + escalating(惩罚×100 重扫)+ (θ4,θ5) 二维牛顿收口,分层保证"姿态达标再谈省关节角";超可达空间走 6 维阻尼最小二乘(位置 mm+姿态 deg 联合)兜底;自检补姿态重构
- ik-glue.js:姿态控制开关 + 方位/仰角/滚转输入 + 取当前/垂直向下;目标点处方向箭头(弧球法调指向)与粉色侧球/箭杆(调滚转),就近仲裁不抢黄球拖拽;面板显示目标/实际姿态与残差(闭式/场景图双口径)
- 界面语义统一为工具朝外法向,入栈绕工具 x 翻 180° 换算求解器内部约定
|
2026-09-28 22:09:09 +08:00 |
|
cbb
|
c0c78251b5
|
feat: 新增IK实时求解与运动模拟功能,集成正逆运动学查看器,补充定位图截图
|
2026-09-28 12:08:41 +08:00 |
|
cbb
|
79c1265202
|
feat: 新增螺丝网格生成与强度校核功能,重建模型数据与查看器,补充定位图与BOM文档
新增 screw_mesh.py 螺丝网格划分模块与 strength_check.py 强度校核逻辑,arm_model.py 同步集成网格生成与校核流程;viewer_tpl.html、web/index.html 与 web/机器人手臂3D查看器.html 更新查看器模板以支持新数据展示;docs/bom.json 与 docs/travel_detail.json 调整 BOM 清单与行程参数;docs/print_settings.md 新增打印设置说明,新增螺丝采购清单 HTML;补充大量定位图与验证截图。
|
2026-09-28 03:33:27 +08:00 |
|
cbb
|
5518d12abb
|
feat: P07小臂骨架顶板整条加高19mm补强+前后外缘R3圆角,gusset弧R28->R14随顶板联动相切融入;重算全关节行程J4反向-121->-111,同步重建模型数据与查看器
|
2026-09-28 01:00:04 +08:00 |
|
cbb
|
85856e9821
|
feat: P04肩叉J1连接处圆盘鼓楞去除,接缝区与P03止脱环齐径齐高,同步重建模型数据与查看器
- 删除 disc_j1(J1 从动法兰圆盘):盘面在 column 前缘形成鼓楞,J1 连接由
boss(Ø35.6 贯通 P03 前盖中心孔)直连电机输出盘承担,螺钉走 boss 端面孔
- column 顶边降至 Z=646.5、宽度收至 Y±36.5,与 P03 前置止脱环齐平齐径
- M2 前后端安装件保持原状
- 13/13 构件单实体拓扑通过,8 组接触面碰撞零干涉
|
2026-09-28 00:02:01 +08:00 |
|
cbb
|
bdcc27d506
|
feat: P01/P02阶梯榫卯面承载+P03侧开式托架/P04加长避让重构,精简零件显示名并同步重建模型数据与查看器,清理历史文档
|
2026-09-27 21:08:28 +08:00 |
|
cbb
|
b11814410a
|
docs: 更新BOM清单与渲染图,适配200mm分段式立柱和防呆底座设计
|
2026-09-27 17:21:50 +08:00 |
|
cbb
|
38fd3e823c
|
feat: P02底座大幅扩展超长防倾翻力臂与前后双向大截面三角加强斜撑筋
|
2026-09-27 16:52:27 +08:00 |
|
cbb
|
0ed15f14f2
|
feat: P03肩吊臂增加前置止脱锁紧法兰与P04肩叉加长避让 (解决螺丝拉脱问题与零干涉)
|
2026-09-27 05:02:34 +08:00 |
|
cbb
|
afba1f13b1
|
feat: 后置高刚性防倾翻测试台架与J1电机镂空散热防拉脱托架整合 (P01/P02/P03重构)
|
2026-09-27 04:48:49 +08:00 |
|