修正朝上判断、接触高度与过期姿态目标
朝上判断误用平台轴、接触高度报旋转前数值、多点对准复用缓存姿态,且多点会话被复核入口拒绝;
现按修正计划改正并接通 autocal-multipoint-1.0 只读复核,缺失帧源如实报告而不补零。
离线验证:新回归在 dc5a6f8 上失败、此处通过,panel_check 通过,两截图点接触高度复现
19.0510 / 21.5781 mm;实机项未做,详见 .scratch/autocal-motion-fix/verification.md。
This commit is contained in:
@@ -43,6 +43,13 @@
|
||||
"role_pitch": "pitch (tilt)",
|
||||
"role_axis": "Drive",
|
||||
"axes_duplicate": "One drive is claimed by more than one direction: {detail}",
|
||||
"tab_press": "Press zero",
|
||||
"press_hint": "The solver reports the contact's geometric height above the table's origin plane, in millimetres. The drive is commanded in its own coordinate, counted from its own mechanical zero. One bench measurement relates the two. Until it is entered, Execute holds the press axis rather than passing a geometric height to the controller as a target.",
|
||||
"press_zero": "Zero (reading with the tip on the origin plane)",
|
||||
"press_rising": "A larger coordinate lifts the tip",
|
||||
"press_calibrated": "Measured and confirmed on this machine",
|
||||
"press_set": "Calibrated: press target = zero ± contact height.",
|
||||
"press_unset": "Not calibrated: Execute holds the press axis.",
|
||||
"close": "Close",
|
||||
"chip_hint": "Open device setup — {name}"
|
||||
},
|
||||
@@ -56,7 +63,7 @@
|
||||
"confirm_title": "Confirm motion",
|
||||
"confirm_execute": "Will move these axes together:\n\n{steps}\n\nCheck this against the machine before continuing.",
|
||||
"confirm_return": "Will move these axes back to zero together:\n\n{steps}",
|
||||
"hold_note": "Not moved: {roles} (the press axis is P7's business — contact detection and press depth)",
|
||||
"hold_note": "Not moved: {roles} (these axes stay where they are and take no part in this move)",
|
||||
"cancelled": "Cancelled; nothing was commanded",
|
||||
"confirm_check": "Confirm before moving",
|
||||
"confirm_hint": "Unchecked, Execute and Return to zero are sent directly. Stop is never affected.",
|
||||
@@ -359,7 +366,11 @@
|
||||
"no_map": "Load a sensor bundle so Select point shows the surface.",
|
||||
"no_solver": "The pose solver is not connected.",
|
||||
"align_select": "Select the destination point in the table, then click Align normal.",
|
||||
"align_busy": "This run is still recording: wait for it to finish before aligning another point, because moving the platform now would invalidate it.",
|
||||
"pose_refused": "This pose cannot be commanded: {reason}",
|
||||
"point_moved": "This point's recorded position no longer matches the current map (off by {mm} mm). Pick it again on Select point and confirm it; do not move the platform to the old record.",
|
||||
"normal_moved": "This point's recorded normal no longer matches the current map (off by {deg}°). Pick it again on Select point and confirm it.",
|
||||
"point_unmapped": "This point has no usable source coordinate: no UV mapping and not a sensor-frame position. Pick it again on Select point.",
|
||||
"no_finger": "The finger page is not connected.",
|
||||
"no_finger_points": "The finger page has no picked points.",
|
||||
"branch_baseline": "baseline",
|
||||
@@ -401,9 +412,20 @@
|
||||
"row_sensor_normal": "Surface normal",
|
||||
"row_platform_point": "Platform point (mm)",
|
||||
"row_pose": "Pose X / Y / yaw / pitch",
|
||||
"row_branch": "Chosen pose and why",
|
||||
"row_table_move": "Table move X / Y",
|
||||
"row_press": "Press-axis target",
|
||||
"row_residual": "Alignment residual",
|
||||
"row_frames": "Frame mapping",
|
||||
"branch_none": "—",
|
||||
"branch_value": "{reason} (this pose {travel}° total, the other exact pose {other}°)",
|
||||
"branch_only": "only exact pose",
|
||||
"branch_alignment": "smallest residual",
|
||||
"branch_in_range": "inside travel",
|
||||
"branch_upright": "face still up",
|
||||
"branch_smallest": "smallest turn",
|
||||
"press_unset": "Zero not measured: this move holds the press axis (enter it in Device setup → Press zero)",
|
||||
"press_target": "{target} mm (geometric contact height {height} mm)",
|
||||
"tool_xy": "Tool X / Y",
|
||||
"tool_hint": "Where the tool is in the table frame. Each point's table move is measured from this position.",
|
||||
"sensor_xy": "Sensor X / Y",
|
||||
@@ -681,6 +703,8 @@
|
||||
"no_sites": "No sites in this session",
|
||||
"candidate": "Candidate window",
|
||||
"insufficient_samples": "Insufficient valid samples",
|
||||
"no_frame_source": "This repeat has no recorded frame source: the reference window exists, but no raw normal signal can be computed from it",
|
||||
"time_basis_not_comparable": "Time base is not comparable with the hold window (the recording is not live capture on this host); it was left out of the calculation",
|
||||
"replay": "Replay debug",
|
||||
"unverified": "Stability unverified",
|
||||
"fit": "Exploratory loading fit: sensitivity {sensitivity_raw_per_n:.6g} raw/N; gain {gain_n_per_raw:.6g} N/raw; offset {offset_n:.6g} N; fit RMSE {rmse_n:.4g} N (not independent validation error)",
|
||||
|
||||
@@ -43,6 +43,13 @@
|
||||
"role_pitch": "pitch(俯仰)",
|
||||
"role_axis": "驱动器",
|
||||
"axes_duplicate": "同一驱动器被分配给多个方向:{detail}",
|
||||
"tab_press": "压轴零位",
|
||||
"press_hint": "解算给出的是接触点在台面原点平面之上的几何高度(mm);驱动器收到的是它自己的坐标,从它自己的机械零位算起。两者只差一个实机测量值。没有标定之前,执行动作会保持压轴不动,而不会把几何高度当成控制器目标直接下发。",
|
||||
"press_zero": "零点(压头触到台面原点平面时的读数)",
|
||||
"press_rising": "坐标增大时压头上升",
|
||||
"press_calibrated": "已在本机测量并确认",
|
||||
"press_set": "已标定:压轴目标 = 零点 ± 接触高度。",
|
||||
"press_unset": "未标定:执行动作会保持压轴不动。",
|
||||
"close": "关闭",
|
||||
"chip_hint": "点击打开设备设置 — {name}"
|
||||
},
|
||||
@@ -56,7 +63,7 @@
|
||||
"confirm_title": "确认运动",
|
||||
"confirm_execute": "将同时移动:\n\n{steps}\n\n请确认仿真与机床一致。",
|
||||
"confirm_return": "将同时移回零点:\n\n{steps}\n\n请确认机床上没有干涉。",
|
||||
"hold_note": "不动作:{roles}(压轴由 P7 的接触检测与压深另外管)",
|
||||
"hold_note": "不动作:{roles}(这些轴保持现状,不参与本次动作)",
|
||||
"cancelled": "已取消,未发出任何运动",
|
||||
"confirm_check": "移动前确认",
|
||||
"confirm_hint": "取消勾选后,执行动作与回初始位将直接发出(停止不受影响)。",
|
||||
@@ -359,7 +366,11 @@
|
||||
"no_map": "请先载入传感器导出包,让「选择测点」出现曲面。",
|
||||
"no_solver": "姿态求解还没有接上。",
|
||||
"align_select": "请先在左边表里点中要去的测点,再点「对齐法向」。",
|
||||
"align_busy": "这一轮还在采集:等它结束再对准其它测点,中途移动平台会让这次记录作废。",
|
||||
"pose_refused": "这个点的姿态不能执行:{reason}",
|
||||
"point_moved": "这个点记录的坐标与当前映射不符(相差 {mm} mm)。请重新在「选择测点」里取这个点并确认,不要用旧记录移动平台。",
|
||||
"normal_moved": "这个点记录的法向与当前映射不符(相差 {deg}°)。请重新在「选择测点」里取这个点并确认。",
|
||||
"point_unmapped": "这个点没有可用的来源坐标(既没有 UV 映射,也不是传感器坐标)。请重新在「选择测点」里取这个点。",
|
||||
"no_finger": "手指调试页面还没有接上。",
|
||||
"no_finger_points": "手指调试里还没有选点。",
|
||||
"branch_baseline": "空载",
|
||||
@@ -401,9 +412,20 @@
|
||||
"row_sensor_normal": "曲面法向",
|
||||
"row_platform_point": "平台坐标 (mm)",
|
||||
"row_pose": "位姿 X / Y / yaw / pitch",
|
||||
"row_branch": "所选姿态与理由",
|
||||
"row_table_move": "工作台移动 X / Y",
|
||||
"row_press": "压轴目标",
|
||||
"row_residual": "对齐残差",
|
||||
"row_frames": "坐标映射",
|
||||
"branch_none": "—",
|
||||
"branch_value": "{reason}(本解合计 {travel}°,另一精确解 {other}°)",
|
||||
"branch_only": "唯一精确解",
|
||||
"branch_alignment": "残差最小",
|
||||
"branch_in_range": "行程内",
|
||||
"branch_upright": "传感面仍朝上",
|
||||
"branch_smallest": "转动量最小",
|
||||
"press_unset": "未标定零位:本动作保持压轴不动(在 设备设置 → 压轴零位 填入实测零位)",
|
||||
"press_target": "{target} mm(几何接触高度 {height} mm)",
|
||||
"tool_xy": "刀具 X / Y",
|
||||
"tool_hint": "刀具在工作台坐标系中的位置。每个测点的工作台移动都相对这个位置计算。",
|
||||
"sensor_xy": "传感器 X / Y",
|
||||
@@ -681,6 +703,8 @@
|
||||
"no_sites": "会话没有测点",
|
||||
"candidate": "候选窗口",
|
||||
"insufficient_samples": "有效样本不足",
|
||||
"no_frame_source": "本次循环没有录像帧来源:参考窗口已记录,但没有可用于计算的原始法向信号",
|
||||
"time_basis_not_comparable": "时间基准与保持窗口不可比(录像不是本机实时采集),未参与计算",
|
||||
"replay": "视频调试",
|
||||
"unverified": "稳定性未复核",
|
||||
"fit": "加载分支初步拟合:灵敏度 {sensitivity_raw_per_n:.6g} raw/N;增益 {gain_n_per_raw:.6g} N/raw;偏置 {offset_n:.6g} N;拟合 RMSE {rmse_n:.4g} N(不是独立验证误差)",
|
||||
|
||||
@@ -24,14 +24,20 @@
|
||||
"max_travel_mm": 100.0,
|
||||
"max_descent_mm": 10.0,
|
||||
"max_press_depth_mm": 1.0,
|
||||
"max_yaw_deg": 180.0,
|
||||
"max_pitch_deg": 90.0,
|
||||
"follow_error_mm": 0.5,
|
||||
"contact_search_mm": 3.0
|
||||
},
|
||||
"press_axis": {
|
||||
"zero_mm": 0.0,
|
||||
"rising": true,
|
||||
"calibrated": false
|
||||
},
|
||||
"sensor_setup": {
|
||||
"sensor_type": "box",
|
||||
"config_ref": "",
|
||||
"geometry_id": "",
|
||||
"press_axis": 2,
|
||||
"probe_tip_offset_mm": [0.0, 0.0, 0.0],
|
||||
"probe_tip_set": false,
|
||||
"sensor_to_platform": [],
|
||||
|
||||
Reference in New Issue
Block a user