机器人 / SLAM / 控制 / AI Coding 技术深度简报|2026-08-28

摘要

截至 2026-08-28 早间,arXiv Robotics 最新公开列表为 2026-08-27,共 43 条 new submissions;Software Engineering 同日为 18 条 new submissions。严格最近 24 小时内可完整核验、未进入历史覆盖索引且足够有工程价值的条目不足 5 条,因此本期按规范扩展到最近 7 天。最终 8 条主动态的 v1 主要提交于 8 月 25–26 日,均明确按“时间回补”处理;其中 Super Odometry 2.0 已发表于 Science Robotics 2025,本期属于其 2026-08-26 首次 arXiv 公开后的“补充回顾”,不把旧工作包装成新发表。(Robotics 最新列表Software Engineering 最新列表

今天最值得优先看的 SLAM / 状态估计方向有三条。第一条直接处理地面车辆 LiDAR-IMU 标定的可观测性缺口:新的连续时间标定方法不再假定地面法向与重力共线,而是增加地面距离与倾角残差,使车辆即使只做典型单轴转动,也可以在斜坡上约束原本弱可观的外参平移方向。第二条 Super Odometry 2.0 把退化处理拆成 feature、state direction、engine 和 learning-based inertial odometry 四层,在长走廊中主动识别 LiDAR 弱方向并引入其他里程计先验,在全部外感知失效时则退到学习式惯性里程计。第三条 RAEM 很接近真正的多楼层四足部署:局部 tomography + 轻量 3D grid 负责楼梯几何,全局只维护 elevation-aware topology;Go2 + 单 Mid-360S + Jetson Orin NX 完成五层楼梯连续探索。

控制侧两条工作代表两种不同方向。Viability Kernel MPC 把“预测时域末端是否仍有安全退路”作为硬终端约束,遇到连续不可行时可以沿最后一个可行解退到可安全悬停/平衡的状态;LAC 则让 Unitree G1 的整个上身同时拥有可调线性与角向柔顺,不把外力一律视为必须拒绝的扰动。前者强调可恢复域,后者强调交互时的可调机械行为。

VLA 侧,LM-X 把 task progress、下一事件与 action uncertainty 从隐藏 latent 里显式暴露成在线输出,并让这些量真正参与动作生成,而不是事后解释。它的价值不只是“更可解释”:如果 progress 回退、event 不稳定、局部方差升高,这些信号有机会成为接管、降速和重新规划的统一接口。

AI Coding 侧,两条工作继续把重点从“再做一个专用 Agent”转向模型外系统。OpsHarness 表明通用 Agent 加上可持续进化、双门验证的 RCA harness,可以显著超过从零构建的专用 RCA Agent;XRepoTest 则说明 repository-level 单元测试生成不能只看测试是否通过和覆盖率,必须验证测试是否真的直接调用并约束 focal function,同时结合 mutation score 判断语义质量。

1. 倾斜地形连续时间 LiDAR-IMU 标定:不再假设“地面法向 = 重力方向”

时间回补:arXiv v1 提交于 2026-08-25 20:35 UTC。论文代码

为什么重要

地面车辆做 LiDAR-IMU targetless calibration 时,一个长期难点是运动激励天然不完整。车辆通常主要绕竖直轴转动,缺少完整 6DoF 激励,因此 LiDAR 与 IMU 的某些外参平移方向会弱可观甚至不可观。现有 ground-constrained 方法通过地面约束补信息,但常假定地面法向与重力共线,这在坡道、矿区、越野路面上直接失效。

这篇工作把“地面”从“必须水平”改成“局部可拟合平面”。对斜坡场景,地面法向本身就提供额外几何信息,不应该被错误强制成重力方向。

算法模块

方法建立在 OA-Calib 的连续时间框架上,用 B-spline 表示 IMU 轨迹,因此可以直接使用所有 IMU 测量,而不是把高频 IMU 插值到较低频 LiDAR 时间戳。

新增两个关键残差:

  1. Distance residual:比较 LiDAR 与 IMU 到局部地面的高度差,并约束 LiDAR-IMU 外参平移在地面法向上的投影。它直接补典型地面车辆单轴运动中最弱的平移方向。
  2. Inclination residual:使用地面法向与重力之间的夹角,把原来只适用于平地的方向约束扩展到倾斜地面。

地面由 Patchwork++ 从 LiDAR 中提取,得到局部 normal 与 LiDAR-ground distance;整个外参、时间偏移、IMU bias 与连续时间轨迹仍在统一非线性最小二乘问题中估计。

传感器与假设

这套方法并不是“任意地形都能自动标定”。它仍要求局部地面足够接近平面,且需要知道 IMU 到地面的物理高度;倾角残差还需要地面 inclination 的外部信息,论文实现中通过一次已知平地序列获得 IMU 参考重力方向,因此这是一个需要明确记录的工程前置条件。

如果地面点分割错误、车辆跨越强非平面障碍、悬架姿态变化导致“IMU 离地高度”不再近似固定,ground residual 也可能变成强错误约束。

实时性、鲁棒性与可复现性

论文在 Clearpath Husky、M2DGR 和越野车辆数据上测试,并使用重复标定结果的离散程度评价 repeatability。斜坡场景相较仅支持平地约束的基线改善明显;平地上也因连续时间框架而获得更好的重复性。

代码已公开,可复现性较好。但论文自己也提醒,部分 repeatability 统计只来自 3–7 条序列,因此还不应把数值当成跨平台的绝对标定精度保证。

风险

在线/半在线标定最危险的情况不是“不收敛”,而是错误收敛后继续被下游 LIO 当成真值。工程上应同时保存外参 covariance、观测激励状态、ground-plane quality 与跨序列 repeatability;只有在这些指标同时满足条件后才允许新外参进入生产配置。

适合谁关注

适合 LiDAR-IMU 外参/时间标定、轮式/履带式机器人、矿山与坡道车辆、多 LiDAR 传感器架,以及无法让整车做完整 6DoF 标定动作的团队。

工程落地启发

对地面机器人,标定流程可以从“一次性手工测量 + 永久固定”改成:

机械设计给粗外参
    ↓
平地/坡地多段短序列
    ↓
连续时间 targetless calibration
    ↓
可观测性 + repeatability gate
    ↓
只在通过门禁时更新生产外参

尤其当 IMU 与 LiDAR 安装距离较大时,外参误差会在转弯和高角速度下被放大,这类自动化复核机制比单纯调 scan-matching 参数更值得优先建设。

2. Super Odometry 2.0:把退化从“一个阈值”升级成 feature → state direction → engine → inertial fallback

补充回顾:论文相关成果已发表于 Science Robotics 2025;2026-08-26 首次公开 arXiv 版本,本期不是首次发表。arXivScience Robotics DOI官方代码

为什么重要

很多多传感器里程计虽然同时接了相机、LiDAR 和 IMU,但实际结构仍然是“所有 factor 默认都打开,失败以后再靠 robust loss 顶住”。Super Odometry 2.0 更像一个分层故障管理系统:先判断哪一层信息变差,再决定应该换 feature、降某个状态方向、换 engine,还是进入纯惯性 fallback。

尤其值得注意的是它对长走廊退化方向的处理。系统不是简单判断“LiDAR 整体不可信”,而是识别沿走廊等 poorly constrained direction,再有方向地融合其他 odometry prior。这比给整帧 LiDAR factor 统一乘一个权重更合理。

算法模块

框架分四层:

  1. Adaptive feature selection:视觉质量下降时,根据 feature uncertainty 优先保留更有价值的观测。
  2. Adaptive state direction:几何退化时,估计 LiDAR 优化在哪些状态方向缺少约束,并沿这些方向引入其他 pose prior。
  3. Adaptive engine selection:视觉、LiDAR 等出现混合退化时,根据 factor/engine quality 动态重构图优化中的传感器组合。
  4. Learning-based inertial odometry:全部外感知失效时,使用在 100+ 小时、多平台真实 IMU 数据上训练的惯性模型作为短时 fallback。

作者强调 engine transition 不是简单硬切换,而可以按状态轴做软融合。

传感器与退化假设

这套系统最大的价值是承认不同退化拥有不同“空间结构”。长走廊通常不是 LiDAR 六个自由度全部失效,而是某些方向缺信息;黑暗更多是视觉 feature 退化;烟雾或遮挡可能让多个外感知同时失效。

但 learning-based inertial odometry 仍然会漂,只适合作为“让系统在极端退化中继续活几分钟”的桥接能力,而不是新的绝对定位源。

实时性、鲁棒性与可复现性

论文报告跨六年、200 km 与 800 operational hours 的 aerial / wheeled / legged / handheld 验证,并展示在全部外感知失效时继续运行数分钟。学习式惯性模块使用 100+ 小时、8 类异构平台相关数据。

官方仓库已经公开,但工程复现需要仔细确认公开版本与论文完整系统的模块覆盖度、传感器配置和数据依赖;不能仅因为 repo 存在就假设所有实验管线都能一键复现。

风险

真正难点会转移到 confidence calibration 与 mode transition。如果系统错误判断“LiDAR 只在 X 方向退化”,就可能沿错误轴注入别的先验;如果不同 engine 的 frame、时间或 covariance 语义不一致,动态切换反而会制造跳变。

适合谁关注

适合多传感器 SLAM、长走廊/矿井/烟雾环境、无人机与轮足机器人、需要长期无人值守定位的团队。

工程落地启发

最值得复制的不是整套代码,而是把 estimator 的健康度接口从一个 is_degenerate 布尔值升级为:

feature_quality
state_direction_information
sensor/factor_confidence
fallback_engine_status
time_sync_health

融合层按“方向”和“故障类型”处理,而不是整模态开/关。这也更容易把轮速、RTK、反光标志或第二 LiDAR 专门用来补弱方向。

3. RAEM:Go2 + 单 Mid-360S + Orin NX,连续探索五层楼梯

时间回补:arXiv v1 提交于 2026-08-26 04:40 UTC。论文

为什么重要

很多 exploration 框架的 3D 地图在平层很好用,一到楼梯就暴露两个问题:全局保持高分辨率 tomography/voxel 计算太重;楼梯处 LiDAR 点云又天然稀疏、碎片化,容易让局部 traversability 和 topology 暂时断裂。

RAEM 的价值在于没有用一张大而全的全局 3D 图解决所有问题,而是明确把局部高分辨率可通行性全局跨楼层连接关系分开。

算法模块

本地层由 GPU 构造 robot-centric tomography map,并继续生成显式分类为 occupied / free / traversable 的轻量 3D grid;全局只增量维护 elevation-aware topological graph。

楼梯上又增加两个专门机制:

  • Staircase center alignment:把同高度连通的 traversable grids 聚合后,将 viewpoint 拉向踏步几何中心,减少楼梯上突然大 yaw。
  • Dual path searching:优先走全局 topology;一旦楼梯稀疏点云让图临时断裂,就在局部 traversable 3D grid 上启用 A*,等机器人靠近并补扫后再恢复 topology。

在 corner staircase 消融中,dual path 20 次测试全部完成,纯 topology 只成功 12 次。

传感器与定位假设

真实平台是 Unitree Go2 + 单 Mid-360S + Jetson Orin NX 16GB,全部计算机载;底层状态估计和稠密点云由 Fast-LIO2 提供。

论文还有一个非常值得工程团队注意的负面细节:在一段长而缺特征的走廊实验中,作者主动加入物理路障,避免 Fast-LIO2 进入严重状态估计退化。换句话说,RAEM 解决了多楼层探索表示和规划,但并没有顺便解决 LIO 的走廊可观测性问题。

实时性与实体结果

仿真中使用 A1 + Mid-360;真实系统在 Orin NX 16GB 上运行,并展示了五层 stairwell 的连续自主探索。GPU 负责局部 tomography / grid / obstacle extraction,CPU 负责 frontier、topology 和后续规划,计算职责划分很清楚。

鲁棒性、可复现性与风险

风险首先来自底层定位:如果 LIO 已经沿走廊漂移,global topology 的高度和连接关系也会被污染。其次,楼梯可通行性与机器人本体能力强相关,换成轮式底盘、轮足机器人或不同步态后,现有 traversability 分类不能直接照搬。

当前论文没有给出成熟开源仓库入口,可复现性暂评中等偏低。

适合谁关注

适合四足/轮足多楼层巡检、楼梯探索、3D frontier、跨层拓扑导航,以及已经能稳定走楼梯但缺少自主跨楼层探索能力的团队。

工程落地启发

推荐把系统职责拆成:

LIO / 状态估计
    ↓
局部 3D Traversability(高分辨率、短寿命)
    ↓
跨楼层 Topology(低分辨率、长寿命)
    ↓
楼梯专用 Viewpoint / Fallback Path

并给状态估计单独增加 corridor degeneracy watchdog。探索规划器不应该假设 SLAM 永远健康。

4. Viability Kernel MPC:MPC 不只问“这一段能不能走”,还要问“时域末端还有没有安全退路”

时间回补:arXiv v1 提交于 2026-08-26 07:26 UTC。论文

为什么重要

普通 MPC 在当前预测时域内可能完全无碰撞,但末端状态已经把机器人送进一个“再也刹不住/停不下来”的区域。下一周期一旦因为新障碍或数值问题不可行,控制器可能没有安全 fallback。

这篇工作把 viability theory 加到 fully-actuated tilted hexarotor 的 MPC:要求每次可行解的终端状态落在一个保守 viability set 内,也就是从该状态仍存在控制序列能回到安全 equilibrium。

算法模块

作者使用 Viability-Boundary Optimal Control(VBOC)离线近似 viability kernel,再训练神经网络编码该集合以便在线快速查询。障碍物不是直接进入高维 reachability,而是在当前 UAV 周围动态构造 collision-free Axis-Aligned Bounding Box(AABB)。

MPC 每次都把 x_N ∈ viability set 作为硬终端约束。如果之后连续若干周期求解不可行,系统继续执行最后一次可行序列,直到到达已经认证的 viable terminal state,再触发 safe-abort maneuver。

动力学与安全假设

这里的“安全保证”必须放在论文假设内理解:动力学模型、执行器上界、AABB 障碍表示和 viability approximation 都必须正确。神经网络只是高效编码离线计算出的集合,不应该被理解成“网络自己学会了安全”。

AABB 也会引入保守性,复杂窄通道和非轴对齐障碍可能损失可行空间。

实时性

论文设置预测长度 N=60、采样周期 20 ms。数值仿真平均每次 MPC iteration 约 1.00 ms,最大 11.72 ms、最小 0.12 ms,低于 20 ms 控制周期。

当前验证仍是 simulation,没有实体飞行器实验,因此这个实时结果首先证明求解结构有潜力,而不是直接证明真机安全。

风险

最大工程风险是 viability set 与真实硬件的 mismatch。推力饱和、螺旋桨动态、姿态估计延迟、负载变化如果没被建模,所谓“从终端状态可以安全停住”可能只在模型里成立。

适合谁关注

适合高机动多旋翼、fully actuated UAV、MPC、安全可达性和需要明确 abort state 的自主系统。

工程落地启发

即使不实现完整 viability kernel,也建议给现有 MPC 增加一个 terminal recoverability 检查:时域末端不只检查 clearance,还检查从该状态是否有足够制动距离、姿态裕量和推力余量进入 hover/stop set。这样“最后一个可行计划”才能真正成为应急资产。

5. LAC:人形机器人柔顺控制不应只调“位置软硬”,还要独立调角向柔顺

时间回补:arXiv v1 提交于 2026-08-26 06:07 UTC。论文项目页

为什么重要

人在搬软物体、推门、被他人拉手时,不只是手的位置会被动偏移,手掌和整个上身的姿态也需要“让”。很多 humanoid controller 要么把外力都当 disturbance 抵消,要么只有线性 compliance,没有独立的 angular compliance。

LAC 给左右臂分别提供线性+角向 stiffness,再给 torso 一条线性 stiffness,总计 5 维 compliance command,让同一个 whole-body policy 在“软”和“硬”交互之间连续切换。

算法模块

作者从 human-object / human-human interaction 中提取 contact frame,再合成外部 force 与 couple event。对每个接触点,虚拟 admittance 在给定 stiffness 下产生目标柔顺响应;whole-body IK 把它转成全身可执行姿态;最后使用 teacher-student RL 训练统一策略跟踪这些 compliant motions。

真实 policy 在 Unitree G1 23-DoF 上以 50 Hz 输出 23 个 joint target,由底层 joint PD 跟踪。线性 stiffness 训练范围为 10–500 N/m,角向 stiffness 为 10–100 N·m/rad

实体结果

真实 G1 上,人的强力扭腕在 angular stiffness=10 时可以让手掌转约 84°,提高到 100 后只转约 15°。4 kg 物体放在双臂上时,低角向刚度会使手臂倾斜、物体掉落,高刚度则能稳定承载。系统还展示了低刚度搬瑜伽球、高刚度搬重箱和推弹簧门。

传感器与动力学假设

一个关键点是:策略并不直接观测外部 wrench,而是学习在外力作用下呈现期望的 whole-body response。因此它更像“学习到的可调顺应行为”,并不是传统力传感器闭环 impedance controller 的等价替代。

鲁棒性、可复现性与风险

真实实验很有价值,但 learned compliance 不等于形式化 passivity。极端碰撞、地面摩擦变化、关节限位和执行器饱和仍需低层保护。外部交互分布如果超出合成 wrench 数据,也可能出现不符合预期的柔顺模式。

适合谁关注

适合人形 loco-manipulation、人机协作、遥操作、接触任务以及希望统一 locomotion 与 compliant manipulation 的团队。

工程落地启发

控制接口最好从单一 motion target 扩展成:

motion target
+ linear compliance
+ angular compliance
+ safety envelope

高层 VLA/遥操作器决定“任务应该多软”,低层控制器仍负责关节限位、稳定性和急停。这比让高层模型直接输出力矩更容易做产品分层。

6. LM-X:把“进度、下一事件、动作不确定度”变成 VLA 的原生控制输出

时间回补:arXiv v1 提交于 2026-08-26 13:05 UTC。论文

为什么重要

一般 VLA 只输出 action。机器人执行失败时,外部系统很难知道它究竟是:

  • 根本没理解当前任务进度;
  • 知道目标,但下一子事件判断错;
  • 高层判断都对,只是当前局部动作不可靠。

LM-X 把这些尺度明确拆开:Return-to-Go(RTG)描述当前可见状态是否在向任务成功推进;Event-to-Go(ETG)描述下一段语义事件/动作转移;heteroscedastic action-flow variance 描述局部 motor command 的可靠度。

更关键的是,这些不是事后挂在旁边的 explainability head。RTG 条件化 ETG,二者继续条件化最终 action expert,因此解释信号是控制计算图的一部分。

模型与数据

论文先用五任务 gate 验证三类 predictive state 的互补性,完整设计相对 action-only backbone 提升 16.0 个百分点,相对最强 single-head 提升 10.8 个百分点,再进行大规模预训练。

最终使用 20,000+ 小时真实机器人轨迹,其中包含 1,000+ 小时失败 rollout;大规模预训练报告为 64 张 NVIDIA B200、约 20 天。

结果

RoboTwin2.0 50 个 randomized-hard task 上,LM-X 平均 74.1%,GR00T N1.7 为 55.4%。七个真实机器人任务平均 68.6%,对比 50.7%,绝对提升 17.9 个百分点;去掉最大单项提升任务后仍保持明显领先。

论文还展示 RTG 能跟踪可见的 progress/regression,而 action variance 在 hesitation、oscillatory control 等不稳定阶段升高。

实时性与可复现性

论文重点是模型结构和大规模结果,没有给出一个可直接迁移到不同机器人平台的统一控制延迟数字。20,000+ 小时数据与 B200 训练成本也意味着完整复现门槛很高,中小团队更适合复现“predictive state interface”,而不是基础模型本身。

风险

heteroscedastic variance 是模型内部学习到的条件残差分散度,不能自动当成已校准的碰撞概率或安全概率。真正用于自动接管前,需要单独做 reliability diagram、OOD 分桶、真实失败率标定。

RTG/ETG 的监督构造也会影响它们是否真正对应可执行进度,而不是学成数据集偏置。

适合谁关注

适合 VLA、长时域操作、运行时健康监控、自动接管和希望让机器人基础模型输出可结构化解释状态的团队。

工程落地启发

即使不用 LM-X,也可以让现有技能/VLA 统一输出:

task_progress
next_event
action_confidence

然后把这三个量写进日志和运行时状态机。只有 action confidence 连续低、progress 回退或 next_event 反复抖动时才触发降速/重观测/接管,会比单纯依赖模型一句自然语言解释更容易量化。

7. OpsHarness:通用 Agent + 可进化 Harness,可能比从零训练“专用 RCA Agent”更有效

时间回补:arXiv v1 提交于 2026-08-26 11:43 UTC。论文

为什么重要

SRE / Root Cause Analysis 很适合观察 Agent 工程的真实瓶颈:任务同时需要读指标、日志、调用链、部署状态、历史故障和工具返回。论文发现,现代通用 Agent 本身已经有很强的诊断能力,专门重新造一个 RCA Agent 反而可能丢掉通用模型的工具与推理能力。

OpsHarness 的思路是保留通用 Agent,把领域能力做在外部 harness。

系统结构

系统一方面提供分层 operational knowledge 和工具/idea-card 库,让 Agent 更快建立系统上下文;另一方面建立 setup → diagnose → evolve → verify 的控制平面。

自进化不是把一次成功对话直接塞进长期 memory。系统同时分析成功和失败 diagnosis trajectory,把证据提炼成 atomic proposal,再在干净环境中验证;只有通过 dual-gate verification 的更新才允许进入 live harness,以降低过拟合和回归。

结果

跨两个公开 benchmark、四个 backbone 和工业部署,完整 OpsHarness 平均 Final A@1 为 59.0%,no-evolve 为 41.4%,ICL 为 38.4%,bare Direct 为 36.1%;专用 RCA-Agent 与 mABC 分别只有 17.9% 和 5.6%。

论文将完整系统相对 bare general agent 的提升报告为 63.4%,相对 baseline RCA agents 为 4.02×。其中 cold-start harness 贡献约 +5.3 点,自进化再贡献 +17.6 点。

突破性工程价值

这条路线对 Coding Agent 同样适用:项目技能、故障模式、诊断查询、验证命令可以在 harness 中不断积累,而底模可以独立升级。系统资产不必锁死在某个模型 checkpoint。

权限、安全与可验证性风险

自进化 harness 本质上也是供应链。一次错误诊断如果被提炼成“最佳实践”,会持续影响未来任务。因此每条 proposal 都应有 source trajectory、revision、evidence、适用范围、验证集和 rollback;写操作与高权限观测仍应由独立策略层控制。

适合谁关注

适合企业 Coding Agent、SRE Agent、机器人云平台运维、长期项目 skill/harness 管理,以及底模频繁升级但希望工程知识可持续积累的团队。

工程落地启发

内部 Agent 的“记忆”不要只做向量库,可以做成可发布的软件资产:

atomic skill / rule
source evidence
applicable scope
verification cases
version
rollback

模型可以提出更新,但生产 harness 只接收通过冻结 regression gate 的版本。

8. XRepoTest:测试“跑过了”还不够,先确认它真的测试了那个函数

时间回补:arXiv v1 提交于 2026-08-26 15:53 UTC;EMNLP Main 2026。论文代码与数据

为什么重要

很多 LLM unit-test benchmark 以 standalone Python 函数为主,真实仓库却有 package layout、language toolchain、dependency、build config、类型解析和已有测试惯例。更隐蔽的问题是:生成测试可能通过 wrapper 间接触发 focal function,从 coverage 看起来“覆盖了”,却从未真正针对该函数的行为做断言。

XRepoTest 把评测放回真实 repository context,并专门增加 Invocation Rate(IR)判断生成测试是否直接调用 focal function。

数据与评测结构

benchmark 包含 3,642 个 focal functions/methods,覆盖 Rust、Go、Julia、PHP、Ruby 五种语言。执行环境容器化,并比较 file-level、LSP-based、retrieval-based 等不同上下文增强方式。

评测不只看 pass:

  • Compilation Success Rate;
  • Test Pass Rate;
  • Line Coverage;
  • Mutation Score;
  • Invocation Rate。

IR 使用 AST 检查生成测试是否直接调用目标 function,专门捕捉“覆盖率看起来很好、测试意图却错了”的情况。

结果与工程意义

论文评估 14 个模型,包括 Claude 4.5、GPT-5.2、DeepSeek V4-Pro 与 Qwen 系列,显示 standalone 能力迁到 repository-level 后有明显性能落差,而且增加上下文并不总是单调提高可靠性。

对真实 Coding Agent,最重要的结论是测试生成本身也需要独立验证。Agent 写了一堆通过的测试,不代表这些测试真的对目标行为形成约束。

风险

IR 也不能单独证明语义质量:测试可以直接调用 focal function,却只写非常弱的 assertion。因此 IR 应与 mutation score、边界输入、失败前后差分结合使用。

生成测试必须在隔离环境运行,并禁止为了让测试通过而同时修改产品实现、删除现有断言或放宽配置。

适合谁关注

适合 Codex/Claude Code/OpenHands、自建测试生成 Agent、多语言 monorepo、自动 code review 与 repair verification。

工程落地启发

建议把自动测试验收升级成:

编译
→ 直接调用目标代码
→ 行为断言通过
→ Mutation 能杀死缺陷变体
→ 修复前失败 / 修复后通过

尤其 C++/Rust/Go 项目,不要把“LLM 生成的测试能跑”当成已经增加了有效回归保护。

经典论文回顾

M-LOAM:多 LiDAR 不是“先拼成一帧再跑单雷达 SLAM”,外参与可观测性本身就是状态估计问题

发表时间与历史位置:《Robust Odometry and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration》于 2020 年首次公开,正式发表于 IEEE Transactions on Robotics 2022,38(1):351–371,DOI 10.1109/TRO.2021.3078287。它代表了多 LiDAR 系统从“静态标好外参再拼点”走向在线外参 refinement + 多雷达联合 odometry/mapping的一条重要工程路线。(论文官方代码DOI

核心问题

多 LiDAR 能扩大 FoV、补遮挡、增加近远场几何,但它同时引入三个新问题:

  1. 每个 LiDAR 都有独立外参误差;
  2. 运动时不同雷达的测量并不是天然在同一时刻;
  3. 某些安装和运动轨迹下,部分外参本身弱可观。

如果只是把多个 PointCloud2 用一个固定 TF 拼起来再丢给单雷达 odometry,下游会把外参误差错误解释成环境几何和机器人运动。

算法模块

M-LOAM 先对各 LiDAR 原始数据提取 edge / planar features,随后执行 motion 与 extrinsic initialization。进入正常运行后,sliding-window multi-LiDAR odometry 联合估计机器人 pose 与外参 refinement,并维护 calibration convergence identification;后端 mapping 再利用足够特征构建全局地图和优化 pose,同时建模/降低多雷达数据不确定性。

论文在 10 条序列、总长约 4.60 km 上验证 calibration 与 SLAM,并公开代码、数据与演示。

传感器与可观测性假设

在线外参不是“有优化器就一定能标出来”。如果多 LiDAR 长时间只经历单一运动模式、重叠区域结构太少、某个雷达只看到重复平面,外参某些方向仍可能不可观。

因此真正重要的是convergence identification:系统需要知道什么时候外参已经有足够证据可以信,而不是让 calibration state 永久无约束地漂。

当年为什么重要

M-LOAM 把多雷达系统几个经常被分散处理的问题放到一条完整链路里:初始化、在线外参、多 LiDAR odometry、全局 mapping、数据不确定性与工程数据集。这对后来多 LiDAR SLAM 的系统设计影响比某个单独 feature residual 更持久。

今天仍然有效的思想

  • 多 LiDAR 的外参应该有健康度与收敛状态,而不是只存在一份静态 YAML。
  • 不同 LiDAR 的信息质量、FoV 和退化方向并不一样,融合前应保留传感器身份。
  • 在线 calibration 与 robot pose 强耦合,必须一起考虑可观测性。
  • 地图构建前要先处理多雷达数据的不确定性和时间/运动补偿。

已被后续替代的部分

M-LOAM 属于 LOAM 风格 edge/plane feature + sliding window 体系。今天更常见的是 IMU 高频传播、point-wise deskew、直接 point-to-plane/GICP/voxel/surfel residual、ESKF 或 factor graph,以及更强的 degeneracy detection。

因此不建议把现代多 LiDAR LIO 换回 M-LOAM;更适合继承的是外参初始化、在线 refinement、收敛 gate 和多传感器身份保留

公开代码、数据与可复现性

官方 gogojjh/M-LOAM 仓库仍公开,采用 GPLv3,代码依赖老版本 ROS/PCL/Ceres,工程环境明显偏旧,但算法结构和多 LiDAR calibration 思路仍很适合阅读与离线复现。

对当前工程的重新解读

现代多 LiDAR 系统更推荐:

LiDAR A / B / C 独立时间与去畸变
          ↓
每传感器 Geometry Quality / Degeneracy
          ↓
共同 Body State Estimator
          ↓
Extrinsic State + Confidence / Convergence
          ↓
Voxel / Surfel / Factor Graph
          ↓
RTK / Wheel / Loop / Reflector 全局与弱方向约束

不要第一步就把所有点云永久融合成“一个超级雷达”。保留各传感器来源,才能在某一只雷达退化、外参异常或时间同步漂移时知道问题来自哪里。

今日结论

今天最清晰的 SLAM 信号是:可观测性与退化管理正在前移到系统设计层。 倾斜地形标定直接处理地面车辆外参的运动退化;Super Odometry 2.0 按状态方向而不是整模态处理退化;RAEM 则用自己的真实实验提醒我们,多楼层探索做得再好,长直走廊里的 Fast-LIO2 退化仍然是独立问题。

这三条放在一起,说明长期可靠定位不应该继续寄希望于“换一个更强 LIO 就全部解决”。更可验证的路线是:

标定健康
→ 时间同步
→ 每模态信息方向
→ 局部几何质量
→ 状态估计
→ 跨模态补弱方向
→ 全局回环/绝对约束

每一层都有自己的健康度与 fallback。

控制侧同样在强调“失败前仍要有退路”。Viability Kernel MPC 把 recoverability 写进终端状态;LAC 则不要求机器人永远刚性抵抗外界,而是让机械响应本身成为任务可调变量。一个处理动态安全边界,一个处理物理交互边界,本质上都是在把真实执行器能力显式放回高级规划中。

VLA 和 AI Coding 方向也出现类似收敛:LM-X 把隐藏的 progress/event/uncertainty 变成可观测接口;OpsHarness 把项目经验放到可验证、可回滚的 harness;XRepoTest 则要求“测试通过”继续向“测试真的约束了目标行为”升级。模型越强,系统越需要结构化状态和独立验收。

最值得深入研究或尝试复现的方向

  1. 多 LiDAR / LiDAR-IMU 标定健康度链:把外参从静态参数升级成带 source / covariance / observability / last_verified 的工程状态。用平地、坡地、转弯和长走廊数据分别测试外参重复性,再决定什么时候允许自动更新生产配置。

  2. RAEM-lite 多楼层地图结构:保留现有 LIO,只实现 robot-centric local tomography / traversable 3D grid + elevation topology;楼梯上加入 center-aligned viewpoint 和 topology→grid A* fallback。重点同时记录 exploration 成功率与 LIO degeneracy,避免把定位失败误算成规划失败。

  3. Estimator 的方向级降级管理:参考 Super Odometry 的 adaptive state direction,给 LiDAR、轮速、RTK、其他 LiDAR 输出统一的方向信息矩阵/投影器,而不是每个传感器只有一个可信/不可信布尔值。

  4. Coding Agent 测试验证链:生成测试后强制做 focal invocation、mutation、修复前后差分三项验证;只有真正对目标行为形成约束的测试才允许进入仓库。

参考资料

  1. Extending Ground-Constraint LiDAR-IMU Calibration to Tilted Surfaces in a Continuous-Time Framework · 代码
  2. SUPER ODOMETRY 2.0 · Science Robotics DOI · 代码
  3. RAEM
  4. Towards safe and optimal flight: Viability Kernel MPC for Fully Actuated Multirotor
  5. LAC · 项目页
  6. LM-X
  7. From General Agents to RCA Experts / OpsHarness
  8. XRepoTest · 代码与数据
  9. M-LOAM · 代码 · DOI
  10. arXiv Robotics 最新列表 · arXiv Software Engineering 最新列表