Spaces:
Running
Running
Commit History
-
collector: 更新采集工程至 v1.3.11(手套链路整体换厂商 SDK v2.1.0,全栈因此锁 Python 3.10)
stouchinglhh +1: Claude Code【v1.3.11 手套 SDK 迁移】新增 core/glove_sdk_boot.py 作为**全进程唯一**的 sys.path 注入点(append 到末尾而非 insert 0 —— SDK 根下也有个 config/ 与仓库的 config/ 同名;注入后 _verify() 逐包复查解析结果,把静默错变成当场报错)。core/usb_glove_engine.py 的传输与触觉降噪整体改走 SDK 的 RawImuStream / TactilePreprocessor(引擎内不再 import sdk.*、不自己插 sys.path)。新增 core/glove_registry.py 作为 glove_devices.json 的唯一读入口:SDK 的 load_device_registry 对缺失的 channel_to_hand 抛的是**裸 ValueError**(不是 GloveDeviceError),会穿透 DeviceManagerEngine.list_devices 炸掉整个设备面板;而 SDK 的 _serialize_registry 只输出 schema_version + left/right 且 os.replace 整体覆盖 ⇒ 权威文件上**绝不允许**调 SDK 的写操作(绑定变更继续走我方写入路径)。glove_devices.json 升至 schema v2 复数数组(6 个序列号;v1 单数与 extra_usb_serials 仍按优先级回退)。core/device_detector.py 的 VID/PID 硬过滤移交 SDK(枚举面变宽到连蓝牙 dongle 一起列,故在 glove_registry 按 link_kind 收窄回有线);GLOVE_USB_BACKEND 留 sdk/fork 回退开关,验收后随 fork 一起删。 ★ **全栈锁 Python 3.10**:SDK 的解算核心按 3.10 ABI 加密,3.11+ 下 `import sdk.api` 直接失败 ⇒ 丢的是**整条手套链路**而不是「少个骨架」。四个分发壳的判据从「>= 3.10,推荐 3.12」改成**恰好 3.10**(3.12 的 venv 起得来但 SDK import 不了,「起得来却缺一块功能」最…0901daa
-
collector: 更新采集工程至 v1.3.10(夹爪 RGB 帧空洞可见化 6/6 全部落地;普通版一键部署自带实时骨架解算与 D435)
stouchinglhh +1: Claude Code【夹爪 RGB 帧空洞可见化 6/6】episode-099 录到第 45 帧丢了 4.68s,而当时所有计数器都是 0——相机侧没帧可读、emit 帧槽被覆盖、GUI 主线程卡顿这三条路在 parquet 里留下完全相同的空洞签名。本次让每条路各记各的账,只装仪表、不动录制通路行为。 1/6 指标底座 —— core/frame_gap.py::GapWatch(相邻两帧时间差超出标称帧间隔的部分记为空洞,只报「断了多久」不反推「丢了几帧」;录制侧与离线审计脚本共用这一个类,口径只此一份。两处防呆:首帧锁定时间基座、之后 source 不符的帧一律跳过——混源会把设备钟与宿主钟的基准差当成天文数字级假空洞;0 是「无时间戳」哨兵;时间倒退只重锚不报洞)。core/gripper/rgb_quality.py::RgbReadWatch + MaxLagWatch(去抖契约照抄 slam/process_controller.py 的 FaysRateAlarm:健康态静默、进入报一次、持续按 repeat 限频、恢复报一次;类内自锁、无 IO、不 emit)。core/pipeline.py::DropStats 加 note_max,并加 is_frame_drop_key / frame_drop_total 钉死「帧数 vs 时长」口径——ext:<slot>/sensor_queue 可加总,*_ms/*_ns/*_count 不可,新键混进 sum() 会虚增丢帧数并把用户指去调编码器。config/settings.py 四个新旋钮。 2/6 落盘侧空洞 —— front `_note_ext_gap` 在写线程取到帧之后、写进视频之前记一次,只统计「确实进了队列、确实写进了视频」的帧(队列满丢的帧由 ext: 计数认领,两边不重复也不互相掩盖,判据可互推)。基座每段首帧锁定:带 hardware_ns 的槽位走 hw、恒传 0 的 lite 槽位退化为宿主单调钟 mono,两者绝不混用。空洞闭合到 500ms 当场 emit recording_log。每段重置看门狗(不重置则第二段换基座,钟差会被记成一次天文数字级假空洞)。CameraPipeline.note_drop_stats() 让 UI 把采集侧计数并进来。 3/6 采集侧三层计数…330cf83