XLeRobot · 参考与路线 · 2026-08-27

两篇小红书 · 与我们接下来能做什么

head camerabacklashmobile bartendernext steps

刷到两篇同做 XLeRobot 的帖子。这一页把它们如实转述,逐条对照我们自己的现状(有来源、有 file:line),给出「有用/无用、以及具体该做什么」的判断 —— 不夸大、不照搬。

一句话:两篇都没打中我们当前的瓶颈。第一篇=便宜的锁头保险;第二篇=移动 bartender 的路线参照,排在抓取之后。

帖子一 · 头部相机外参标定(舵机回差 · 双向逼近 · 时间同步)

原帖大意:3D 打印的标定板 tag 太小,改用打印纸 + KT 板反而好用;舵机的回差和重复精度太差,靠「双向逼近 + 时间同步」才拿到稳定的标定结果。配图是仿真和 rviz 文件。

为什么本该跟我们相关

我们的头部相机 RGB 是策略的观测输入之一,而头是舵机驱动的 —— 正好落在帖子说的「回差大、重复精度差」范围里。更关键:头关节 head_motor_1/2.pos 同时在 state(输入)和 action(输出)里,策略既看它、也被训练去驱动它。

robots/xlerobot/xlerobot.py:181–182(head_motor_1/2.pos 在 _state_ft) · observation_features = state+cameras(:198) · action_features = state(:202)

回差是什么(为什么头位会飘)

舵机减速齿轮咬合处有间隙。同一个目标角度,从左边逼近和从右边逼近,输出轴最终停的物理位置不一样,差的就是这段间隙。廉价舵机尤其大。后果:编码器读数显示 50.0°,相机实际朝向可能差了零点几到一两度 —— 因为编码器量的是它自己那侧,输出轴那侧还隔着间隙。

为什么我们的单点排除没抓到它

失败分析里我们比过:训练 head_motor=(−4.31, 49.85) vs 实时 (−3.60, 50.02),差 <1°,判「头没变」。盲点有三:(1) 单点 vs 单点,回差的本质是逐次不重复,一次对上不代表 50 集每集都对上 —— 要的是方差不是快照;(2) 比的是编码器读数,不是相机实际朝向;(3) 若录制时按了 RIGHT B 进 VR_FOLLOW,头是动态跟随的,每集停位更是各不相同。

03-software/TRIALS-2026-08-23-miss-analysis.md 第 23 行(头部排除)· 第 100 行(相机/标定/时序已清白)

双向逼近怎么修 —— 但对我们有更省的办法

双向逼近:每次都从固定的一侧逼近目标角(先过 θ−3°、再单向走到 θ 停),间隙每次被吃到同一边,实际停位就可复现。对我们这种静态相机的抓取任务,有个更干净的做法:录制时把头设成 WORKSPACE_LOCK(代码注释原话『for manipulation』)—— 头位在 state 和 action 里变成常量,这两维零方差、零回差/同步问题,还顺手省下策略本要浪费在『预测头』上的容量。锁定的那个位姿再用双向逼近设一次即可。

scripts/head_modes.py(MANUAL / VR_FOLLOW / WORKSPACE_LOCK) · configs/teleop_safety.yaml:95 default_mode: MANUAL

诚实边界:这是保险,不是当前病根(回归均值才是)。默认 MANUAL + 我们没驱动头 → 现有数据风险低。

帖子二 · 半成品家庭服务机器人(LiDAR SLAM · 导航 · 找人)

原帖大意:目标是『被召唤 → 去取物 → 送到人身边』。已跑通:硬件组装、LiDAR 驱动、LiDAR SLAM 建图、SLAM 导航、D455+LiDAR 找人 demo。接下来要攻克最难的一环 —— 抓取,准备在传统控制 / 模仿学习 / 强化学习里都探索,按真机效果选一个稳的做演示。

对我们:是终极形态的路线图,不是当前一格

他做的是移动底盘那半条链路;我们现在是静态抓取,仓库里还没有 LiDAR/SLAM/导航。但我们的最终形态就是移动 bartender:从一处取杯 → 定位移动到另一处 → 按客人所在位置决定放在哪一侧桌面。这一串里的『移动 + 定位 + 找人』正是帖子二跑通的前半程,等抓取稳了要往移动扩,他那套导航/找人可直接参考。而且他也卡在抓取 —— 我们和他在同一个拦路石上,可互为参照。

当前别分心搭 SLAM/导航,先解决 3cm 抓取。

接下来能做什么(按代价/优先级排)

优先级 做什么 为什么 / 来源
现在 云端重训:用数据纪律教『极端修正』(左偏+下沉刻意夸张、每集都有、摆位多样到不偏就抓不到);增强用来堵捷径。 回归均值是当前最优假设;这是主页 Now 的第一优先。
miss-analysis §4–5
便宜保险 下轮补录前:头设 WORKSPACE_LOCK + 双向逼近固定头位,把头这两维在 state/action 里钉成常量。 堵住『只单点验过、没验过方差』的头位隐患(帖子一)。
head_modes.py · teleop_safety.yaml:95
中期 移动 bartender 扩展:底盘导航 / SLAM 建图 / 找人靠近 —— 参考帖子二的前半程。 排在抓取稳定之后;现在搭是分心。
帖子二

总结:钱花在『补数据教极端修正』上(现在);顺手把头锁死当一致性保险(下轮补录前);移动/导航/找人是终极 bartender 的路线图,等抓取稳了再照帖子二扩。