feat: 拼接偵測加入左右排除邊距,box 預設排除右側多出的一欄

錯位模組畫面有 6x3 共 18 格,原本只能靠過渡門檻碰巧湊到 15 格且選錯格。stitcher.exclude_x 只篩選格子,box 設定為 [0, 240],可依感測器改寫;合成畫面測試與實機連續開啟 6 次全數成功。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ykcheungab
2026-10-22 20:03:44 +08:00
parent f5738375fd
commit ad7b0d3e26
5 changed files with 71 additions and 1 deletions
+10
View File
@@ -107,6 +107,16 @@ selection.
| `single_camera` | `camera` config | frames only - no deformation field, so no force |
| `uv_unroll` | `camera` config, the mapped computational asset | unrolled frame, flow, force |
### Tile detection margin
`compound_eye` detects `n_boxes_target` tiles (15 by default) when it opens. A module mounted off
centre can show an extra column at one edge, and detection then never settles on 15.
`stitcher.exclude_x` is `[left, right]` in raw-frame pixels: a detected region whose centre lies
within that distance of the edge is not counted. It changes only which tiles are chosen; the frames
used afterwards are untouched. The `box` bundle ships `[0, 240]`, which drops an extra right column
(about 170 px from the edge) and keeps the outer column of an aligned module (about 320 px). A
module whose extra column is on the left needs `[240, 0]` in its own copy of `sensor.json`.
`known_backends()` and `spec_for(...)` are the registry. `uv_unroll` is not yet materialised from a
profile alone, because it needs geometry, a UV domain, a tactile processor and a capture object
assembled together - that is `orisys.finger.FingerRuntime.open`'s shape. `create_processor` says so