按关节槽位驱动 13 个五轴案例的三维模型
关节契约扩为槽位制:以 LinuxCNC 联合号标识关节,轴字母降为槽位属性, 重复轴(bridge-mill 的两个 Y)、并联杆长(hexapod/pentapod)和被动槽位 (max5 第 6 关节)都能表达。v1 规则保持不变并合成 jointOrder,已保存 GLB 与既有测试不受影响。 13 个结构 GLB 由 scripts/generate_physical_case_glbs.mjs 统一重建, 可动关节均为按槽位命名的 Group 并写 userData.linuxcncJoint,共 71 个 关节,槽位数与运行目录的 joint_count 逐条一致。 新增 machine-visual-bindings.json 与纯函数模块,以 machine id 为键: 坐标字母不能作键,因为三个案例共用 XYZAB、三个共用 XYZABC。主界面切换 案例时自动装载对应模型,失败时保留内置模型并显式提示。 消除前端五关节截断:visual 适配器的 joints 改为数组并新增 jointsAuthoritative;allHomed 按 joint_count 判断;面板按 worker 断言的 machine id 查找机型。 管理器解锁:坐标与案例下拉以"存在完整视觉绑定"为启用条件,13 案例全部 可选;machine-urdf.ts 新增 generic-wasm/1 profile,AC/BC 严格校验路径 不变;新增 machine-kinematics-specs.json 保存逐关节限位,INI 未声明的 限位保持 null 而不编造。 修复三个真实缺陷:构建漏发 woodpecker/gmoccapy/qtdragon 配置目录( DEFECT-02 根因);案例切换沿用"装载需要已上电"的门控,导致关机状态下 第二次切换被静默拒绝;重复轴机型上 React 列表键冲突。 验收:13 案例逐个切换装载成功、槽位键与绑定定义逐一一致、浏览器错误 0; typecheck 与生产构建通过;视觉绑定、GLB 命名、关节契约、投影、store、 双画布、运动学规格漂移、11 案例 Worker 闭环、管理器浏览器回归全部通过。 证据在 coverage/glb-machine-manager/physical-drive/。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
13
web/react/public/machine-cases/bridge-mill-5axiskins.ngc
Normal file
13
web/react/public/machine-cases/bridge-mill-5axiskins.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: bridge-mill-5axiskins)
|
||||
(CONTROL_PROFILE: XYZBCWY)
|
||||
(KINEMATICS: 5axiskins)
|
||||
(STATUS: adapter-required)
|
||||
(NOTE: W 沿刀具方向;配置含重复 Y 关节。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X5 Y5 Z-2 B3 C8 W1 F120
|
||||
G1 X15 Y-5 Z-4 B-3 C-8 W-1 F120
|
||||
G1 X5 Y5 Z-2 B3 C8 W1 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
9
web/react/public/machine-cases/hexapod-genhexkins.ngc
Normal file
9
web/react/public/machine-cases/hexapod-genhexkins.ngc
Normal file
@@ -0,0 +1,9 @@
|
||||
(CASE_ID: hexapod-genhexkins)
|
||||
(CONTROL_PROFILE: XYZABC)
|
||||
(KINEMATICS: genhexkins)
|
||||
(STATUS: adapter-required)
|
||||
(NOTE: 六支链并联平台;XYZABC 六自由度。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
; HOME-POSE VALIDATION: runtime initializes and validates the native WASM inverse at its configured home pose.
|
||||
M30
|
||||
13
web/react/public/machine-cases/max5-maxkins.ngc
Normal file
13
web/react/public/machine-cases/max5-maxkins.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: max5-maxkins)
|
||||
(CONTROL_PROFILE: XYZBC)
|
||||
(KINEMATICS: maxkins)
|
||||
(STATUS: adapter-required)
|
||||
(NOTE: B/C 非恒等旋转映射;不是 TRT 替代。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X5 Y5 Z-2 B3 C8 F120
|
||||
G1 X15 Y-5 Z-4 B-3 C-8 F120
|
||||
G1 X5 Y5 Z-2 B3 C8 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
9
web/react/public/machine-cases/pentapod-pentakins.ngc
Normal file
9
web/react/public/machine-cases/pentapod-pentakins.ngc
Normal file
@@ -0,0 +1,9 @@
|
||||
(CASE_ID: pentapod-pentakins)
|
||||
(CONTROL_PROFILE: XYZAB)
|
||||
(KINEMATICS: pentakins)
|
||||
(STATUS: adapter-required)
|
||||
(NOTE: 五支链并联平台;XYZAB 五轴。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
; HOME-POSE VALIDATION: runtime initializes and validates the native WASM inverse at its configured home pose.
|
||||
M30
|
||||
2
web/react/public/machine-cases/physical/LICENSE.txt
Normal file
2
web/react/public/machine-cases/physical/LICENSE.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Procedural design-reference assets for linuxcncWebWASM. CC0-1.0.
|
||||
No manufacturer affiliation or dimensional calibration is implied.
|
||||
Binary file not shown.
BIN
web/react/public/machine-cases/physical/hexapod-genhexkins.glb
Normal file
BIN
web/react/public/machine-cases/physical/hexapod-genhexkins.glb
Normal file
Binary file not shown.
1199
web/react/public/machine-cases/physical/manifest.json
Normal file
1199
web/react/public/machine-cases/physical/manifest.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
web/react/public/machine-cases/physical/max5-maxkins.glb
Normal file
BIN
web/react/public/machine-cases/physical/max5-maxkins.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/pentapod-pentakins.glb
Normal file
BIN
web/react/public/machine-cases/physical/pentapod-pentakins.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/puma-genserkins.glb
Normal file
BIN
web/react/public/machine-cases/physical/puma-genserkins.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/puma-pumakins.glb
Normal file
BIN
web/react/public/machine-cases/physical/puma-pumakins.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/scorbot-kins.glb
Normal file
BIN
web/react/public/machine-cases/physical/scorbot-kins.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/trivkins-xyzab.glb
Normal file
BIN
web/react/public/machine-cases/physical/trivkins-xyzab.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/trivkins-xyzcw.glb
Normal file
BIN
web/react/public/machine-cases/physical/trivkins-xyzcw.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/trivkins-xyzya.glb
Normal file
BIN
web/react/public/machine-cases/physical/trivkins-xyzya.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/xyzab-tdr.glb
Normal file
BIN
web/react/public/machine-cases/physical/xyzab-tdr.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/xyzac-trt.glb
Normal file
BIN
web/react/public/machine-cases/physical/xyzac-trt.glb
Normal file
Binary file not shown.
BIN
web/react/public/machine-cases/physical/xyzbc-trt.glb
Normal file
BIN
web/react/public/machine-cases/physical/xyzbc-trt.glb
Normal file
Binary file not shown.
13
web/react/public/machine-cases/puma-genserkins.ngc
Normal file
13
web/react/public/machine-cases/puma-genserkins.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: puma-genserkins)
|
||||
(CONTROL_PROFILE: XYZABC)
|
||||
(KINEMATICS: genserkins)
|
||||
(STATUS: adapter-required)
|
||||
(NOTE: DH 参数驱动的六轴串联机器人。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X0 Y0 Z0 A0 B0 C0 F120
|
||||
G1 X0 Y0 Z0 A0 B0 C0 F120
|
||||
G1 X0 Y0 Z0 A0 B0 C0 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
9
web/react/public/machine-cases/puma-pumakins.ngc
Normal file
9
web/react/public/machine-cases/puma-pumakins.ngc
Normal file
@@ -0,0 +1,9 @@
|
||||
(CASE_ID: puma-pumakins)
|
||||
(CONTROL_PROFILE: XYZABC)
|
||||
(KINEMATICS: pumakins)
|
||||
(STATUS: adapter-required)
|
||||
(NOTE: PUMA 六关节串联机器人。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
; HOME-POSE VALIDATION: runtime initializes and validates the native WASM inverse at its configured home pose.
|
||||
M30
|
||||
9
web/react/public/machine-cases/scorbot-kins.ngc
Normal file
9
web/react/public/machine-cases/scorbot-kins.ngc
Normal file
@@ -0,0 +1,9 @@
|
||||
(CASE_ID: scorbot-kins)
|
||||
(CONTROL_PROFILE: XYZAB)
|
||||
(KINEMATICS: scorbot-kins)
|
||||
(STATUS: adapter-required)
|
||||
(NOTE: 五关节串联机器人;不是五轴铣床 TRT。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
; HOME-POSE VALIDATION: runtime initializes and validates the native WASM inverse at its configured home pose.
|
||||
M30
|
||||
13
web/react/public/machine-cases/trivkins-xyzab.ngc
Normal file
13
web/react/public/machine-cases/trivkins-xyzab.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: trivkins-xyzab)
|
||||
(CONTROL_PROFILE: XYZAB)
|
||||
(KINEMATICS: trivkins)
|
||||
(STATUS: identity-only)
|
||||
(NOTE: 五轴一一映射基线;不提供 RTCP。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X5 Y5 Z-2 A3 B3 F120
|
||||
G1 X15 Y-5 Z-4 A-3 B-3 F120
|
||||
G1 X5 Y5 Z-2 A3 B3 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
13
web/react/public/machine-cases/trivkins-xyzcw.ngc
Normal file
13
web/react/public/machine-cases/trivkins-xyzcw.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: trivkins-xyzcw)
|
||||
(CONTROL_PROFILE: XYZCW)
|
||||
(KINEMATICS: trivkins)
|
||||
(STATUS: identity-only)
|
||||
(NOTE: C/W 轴字母映射基线;不提供 RTCP。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X5 Y5 Z-2 C8 W1 F120
|
||||
G1 X15 Y-5 Z-4 C-8 W-1 F120
|
||||
G1 X5 Y5 Z-2 C8 W1 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
13
web/react/public/machine-cases/trivkins-xyzya.ngc
Normal file
13
web/react/public/machine-cases/trivkins-xyzya.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: trivkins-xyzya)
|
||||
(CONTROL_PROFILE: XYZYA)
|
||||
(KINEMATICS: trivkins)
|
||||
(STATUS: identity-only)
|
||||
(NOTE: Y 轴重复映射与旋转 A 基线;不提供 RTCP。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X5 Y5 Z-2 A3 F120
|
||||
G1 X15 Y-5 Z-4 A-3 F120
|
||||
G1 X5 Y5 Z-2 A3 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
13
web/react/public/machine-cases/xyzab-tdr.ngc
Normal file
13
web/react/public/machine-cases/xyzab-tdr.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: xyzab-tdr)
|
||||
(CONTROL_PROFILE: XYZAB)
|
||||
(KINEMATICS: xyzab_tdr_kins)
|
||||
(STATUS: adapter-required)
|
||||
(NOTE: LinuxCNC xyzab_tdr_kins;当前 Web 尚未接入该求解器。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X5 Y5 Z-2 A3 B3 F120
|
||||
G1 X15 Y-5 Z-4 A-3 B-3 F120
|
||||
G1 X5 Y5 Z-2 A3 B3 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
13
web/react/public/machine-cases/xyzac-trt.ngc
Normal file
13
web/react/public/machine-cases/xyzac-trt.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: xyzac-trt)
|
||||
(CONTROL_PROFILE: XYZAC)
|
||||
(KINEMATICS: xyzac-trt-kins)
|
||||
(STATUS: supported)
|
||||
(NOTE: A 绕 X、C 绕 Z;Web LinuxCNC WASM 原生可运行。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X5 Y5 Z-2 A3 C8 F120
|
||||
G1 X15 Y-5 Z-4 A-3 C-8 F120
|
||||
G1 X5 Y5 Z-2 A3 C8 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
13
web/react/public/machine-cases/xyzbc-trt.ngc
Normal file
13
web/react/public/machine-cases/xyzbc-trt.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
(CASE_ID: xyzbc-trt)
|
||||
(CONTROL_PROFILE: XYZBC)
|
||||
(KINEMATICS: xyzbc-trt-kins)
|
||||
(STATUS: supported)
|
||||
(NOTE: B 绕 Y、C 绕 Z;Web LinuxCNC WASM 原生可运行。)
|
||||
(DRY RUN ONLY - NO SPINDLE, TOOL CHANGE, OR CUTTING)
|
||||
G21 G90 G94 G17 G40 G49 G80
|
||||
G54
|
||||
G1 X5 Y5 Z-2 B3 C8 F120
|
||||
G1 X15 Y-5 Z-4 B-3 C-8 F120
|
||||
G1 X5 Y5 Z-2 B3 C8 F120
|
||||
G1 X0 Y0 Z0 F120
|
||||
M30
|
||||
Reference in New Issue
Block a user