当前位置: 首页 > news >正文

DVMSLAM中的sim3变换

DVM-SLAM 中的 Sim(3) 变换:从地图合并到持续对齐

核心结论:Sim(3) 是 DVM-SLAM 解决“单目多机器人坐标系不一致”的几何工具,它负责把不同 agent 的地图从各自 world frame 对齐到同一个 group frame。


1. 一句话解释 Sim(3)

在 DVM-SLAM 中,每个机器人本地运行单目 ORB-SLAM,并独立建立自己的地图。由于是单目相机,每个机器人得到的地图尺度并不天然一致:robot A 认为走廊长 10 个单位,robot B 可能认为同一段走廊长 7 个单位。因此,两个地图不能只靠旋转和平移拼接,还需要估计一个尺度因子

Sim(3) 变换可以写成:

x′=sRx+t \mathbf{x}' = s\mathbf{R}\mathbf{x} + \mathbf{t}x=sRx+t

其中:

符号含义在 DVM-SLAM 中解决的问题
sssscale,尺度单目地图尺度不一致
R\mathbf{R}Rrotation,旋转两个 agent 坐标轴方向不同
t\mathbf{t}ttranslation,平移两个 agent 地图原点不同

齐次矩阵形式:

TSim(3)=[sRt0T1] T_{Sim(3)} = \begin{bmatrix} s\mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix}TSim(3)=[sR0Tt1]
总共 7 个自由度。

在 g2o 中用 g2o::Sim3 表示,通常记作 gScw(Sim3 from world to camera)。

单目 SLAM 每台机器人独立建图时,两张地图在 overlap 区域的真实几何关系就是 Sim3

世界坐标系原点和朝向 是任意的(arbitrary)。
绝对尺度 也是任意的(同一物理场景,A 机器人地图里 1m 可能在 B 机器人地图里是 0.7m 或 1.3m)。

符号,含义 gScw,当前相机在世界系下的 Sim3 位姿 gSiw,第 i 个 KeyFrame 在世界系下的 Sim3 gScm,Current KF 与 Matched KF(对端)之间的 Sim3 mg2oMergeScw,最重要:Merge 确认后,当前锚点 KF 在目标 Merge 世界系下的 Sim3

2. 为什么 DVM-SLAM 不能只用 SE(3)?

SE(3) 只包含旋转和平移:

x′=Rx+t \mathbf{x}' = \mathbf{R}\mathbf{x} + \mathbf{t}x=Rx+t

它默认两个地图的尺度已经相同。但 DVM-SLAM 是纯单目 decentralized C-SLAM,每个 agent 都可能在任意未知位置独立初始化,没有全局尺度先验。论文也强调,许多去中心化系统不用单目视觉的重要原因之一,就是单目会引入 arbitrary map scale 和更频繁的定位丢失问题。

SE3(刚体变换)只有 6 DoF,固定 s=1。
Sim3 允许整张地图整体缩放,但保持形状(角度和相对比例)不变。

因此,在 DVM-SLAM 里:

  • 机内局部跟踪 / 局部 BA:主要在本机地图尺度下工作;
  • 跨机地图合并:必须估计 Sim(3),否则不同尺度地图会被错误焊接;
  • 合并后的地图校准:仍需要周期性重新估计 Sim(3),防止早期合并误差逐渐放大。


3. Sim(3) 在 DVM-SLAM 中出现的两个关键位置

3.1 第一次地图合并:Map Merging

DVM-SLAM 的地图合并不是一开始就传整张地图,而是先通过 BoW 判断“是否可能看到了同一个地方”。流程可以理解为:

渲染错误:Mermaid 渲染失败: Parse error on line 8: ...--> H[估计 T_j→i ∈ Sim(3)] H --> I[agent -----------------------^ Expecting 'SQE', 'DOUBLECIRCLEEND', 'PE', '-)', 'STADIUMEND', 'SUBROUTINEEND', 'PIPE', 'CYLINDEREND', 'DIAMOND_STOP', 'TAGEND', 'TRAPEND', 'INVTRAPEND', 'UNICODE_TEXT', 'TEXT', 'TAGSTART', got 'PS'

关键点:

  1. BoW 阶段只负责找候选:它判断“两个关键帧看起来像不像同一地点”。
  2. 真正合并时需要完整地图信息:候选成立后才交换地图,执行几何验证和地图焊接。
  3. 合并成功后得到Tj→iT_{j\rightarrow i}Tji:如果i<ji<ji<j,论文描述为 agent j 将自己的坐标空间变换到 agent i 的地图中,并把这个变换传播给自己组内成员。
  4. 组内 agent 共享同一坐标系:只有这样,后续 keyframe / mappoint 才能无需再次变换地插入本地共享地图副本。


3.2 合并后的持续校准:Map Alignment Refiner

DVM-SLAM 使用“早期合并”策略:只要发现足够强的重叠证据,就会尽早合并地图。这样有利于快速建立 group,但也会带来一个问题:

刚合并时重叠区域很小,Sim(3) 估计可能有轻微尺度、旋转或平移误差。地图越长,这个误差越容易被放大,最终导致共享地图逐渐发散。

为了解决这个问题,DVM-SLAM 在合并后持续执行Map Alignment Refiner。其核心流程是:

渲染错误:Mermaid 渲染失败: Parse error on line 7: ...T_local→leader ∈ Sim(3)] G --> H[Apply -----------------------^ Expecting 'SQE', 'DOUBLECIRCLEEND', 'PE', '-)', 'STADIUMEND', 'SUBROUTINEEND', 'PIPE', 'CYLINDEREND', 'DIAMOND_STOP', 'TAGEND', 'TRAPEND', 'INVTRAPEND', 'UNICODE_TEXT', 'TEXT', 'TAGSTART', got 'PS'

这里的优化目标可以写成:

Tlocal→leader∗=arg⁡min⁡s,R,t∑k∈M∥pkleader−(sRpklocal+t)∥2 T^*_{local\rightarrow leader} = \arg\min_{s,R,t} \sum_{k \in \mathcal{M}} \left\| \mathbf{p}^{leader}_k - (sR\mathbf{p}^{local}_k+t) \right\|^2Tlocalleader=args,R,tminkMpkleader(sRpklocal+t)2

其中M\mathcal{M}M是通过 UUID 找到的共同 MapPoint 集合。RANSAC 用来剔除误匹配,Kabsch-Umeyama 用来求最小 RMSE 的 Sim(3)。


4. Sim(3) 与 UUID 的关系:为什么“同一个点”必须能被精确指认?

Sim(3) 的估计需要共同关键帧或共同地图点。如果 robot A 和 robot B 都有一个本地mnId = 5,这并不能说明它们是同一个物理对象,因为mnId只在本机内部有意义。

因此 DVM-SLAM 的通信与序列化地图中必须携带 UUID:

对象本机编号跨机身份
KeyFramemnIduuid
MapPoint本地对象指针 / iduuid

UUID 在 Sim(3) 相关流程中的作用:

  1. BoW 去重:对方发来的关键帧 BoW 是否已经处理过;
  2. merge 对齐merge_candidate_key_frame_uuids指明候选公共关键帧;
  3. 地图重连:serialized map 中的 KF / MP 按 UUID 在本地数据库中查找并重新连接;
  4. Map Alignment Refiner:按 UUID 找到双方共同观测到的 MapPoint,再求Tlocal→leaderT_{local\rightarrow leader}Tlocalleader

可以把它理解为:

Sim(3) 是“怎么对齐”,UUID 是“对齐谁和谁”。


5. Sim(3) 与去中心化 PGO 的关系

DVM-SLAM 的去中心化 PGO 不是传统意义上的全网分布式矩阵求解,而是通过增量、异步的关键帧和地图点共享完成的。

合并后,同一 group 内 agent 已经处在共同坐标系中,因此外部 keyframe 和 mappoint 可以直接移动到本地 map,无需再次做坐标变换。随后本地执行:

  1. 插入外部关键帧kextk_{ext}kext
  2. 重连共视关键帧和观测地图点;
  3. 合并重复 MapPoint;
  4. 围绕kextk_{ext}kext执行局部 PGO。

所以二者关系是:

模块作用是否直接做 PGO
BoW / Visual Word Set找 merge 候选
Sim(3) Map Merge建立共同坐标系否,主要是坐标系对齐与地图焊接
Map Alignment Refiner周期性修正尺度/旋转/平移误差否,主要是几何校准
External Keyframe Inserter + Local PGO插入外部 KF/MP 后优化本地共享图

一句话:

Sim(3) 先把地图放到同一个坐标系,PGO 再在这个共同坐标系内优化关键帧与地图点关系。


6. 和通信流程的对应关系

可以按三阶段解释 Sim(3):

阶段主要通信Sim(3) 角色
Merge 前new_key_frame_bows暂无 Sim(3),只找候选
Merge 中get_current_map/map_to_attempt_merge通过完整地图尝试求Tj→iT_{j\rightarrow i}Tji
Merge 后change_coordinate_frame/successfully_merged传播 Sim(3),让组内 agent 进入同一 reference frame
协作期new_key_frames/get_map_points同坐标系增量同步;必要时 refinement 重新估计 Sim(3)

7.总结

DVM-SLAM 是纯单目多机器人 SLAM,因此每个机器人独立建图时不仅坐标原点和朝向不同,地图尺度也可能不同。普通 SE(3) 只能处理旋转和平移,无法解决尺度不一致,所以 DVM-SLAM 在跨机器人地图合并时必须使用 Sim(3),也就是同时估计尺度、旋转和平移。

在系统流程中,Sim(3) 第一次出现在 map merging 阶段。机器人先通过 BoW 和 UUID 发现潜在重叠区域,候选成立后才交换完整地图并尝试几何合并。如果合并成功,系统会估计从高 ID 或待合并 agent 坐标系到 leader 坐标系的 Sim(3) 变换,并通过 ChangeCoordinateFrame 等消息传播给组内其他机器人,使整个 group 进入同一坐标系。

但是 DVM-SLAM 采用早期合并策略,初始重叠区域可能较小,因此 Sim(3) 会存在轻微误差。随着地图扩展,这种尺度、旋转和平移误差可能被放大。为此系统又设计了 Map Alignment Refiner:通过 UUID 找到双方共同 MapPoint,用 RANSAC 剔除错误匹配,再用 Kabsch-Umeyama 算法重新估计 Sim(3),周期性把本地地图重新对齐到 leader 的 reference frame。

因此,Sim(3) 可以理解为 DVM-SLAM 去中心化协同建图中的“坐标系胶水”:它不等同于 PGO,但它为后续外部关键帧插入、地图点重连和局部 PGO 提供了统一的几何基础。


8. 记忆版总结

单目多机为什么要 Sim(3)? 因为不同 agent 的地图尺度不一致。 Sim(3) 在哪里用? 1) 初次 map merge:估计 T_j→i,把 peer map 拉到 leader map。 2) map alignment refiner:用共同 MapPoint 周期性重估 T_local→leader。 UUID 为什么重要? UUID 决定“哪个 KF/MP 是同一个物理对象”;Sim(3) 决定“如何把它们对齐”。 和 PGO 什么关系? Sim(3) 负责统一坐标系,PGO 负责在统一坐标系内优化图。
http://www.jsqmd.com/news/988865/

相关文章:

  • 2026年6月国内权威中药材种植基地厂家排行盘点:当归中药材种子种苗/当归中药材种植/实力盘点 - 优质品牌商家
  • 解锁铁死亡PTGDS-HMOX1:分子对接复现+Co-IP等互作验证
  • 苹果发布 watchOS 27:支持 Siri AI、优化应用网格与健康追踪功能!
  • 五星制评分折线图工具
  • 2026年成都大宅设计专家及专业机构排行盘点 - 优质品牌商家
  • 数据的加密与解密(00:02)
  • 数据的加密与解密(00:09)
  • 2026年网店转让平台效率与可靠性实测对比分析:正规的跨境网店转让平台/淘宝店铺转让平台有哪些/优选推荐 - 优质品牌商家
  • 2026年SEO新趋势:揭秘行业领跑的优化服务商秘诀
  • 丁虢|GEO全链路归因与ROI测算|拆解转化全链数据,精算GEO投产比
  • 民科理解
  • RAE
  • 2026年6月1日-6月14日(业余进行UE独立游戏)
  • 文旅服务深度调研:张家界五大合规地接服务商综合实力测评 - 互联网科技品牌测评
  • 寄大件哪个物流最便宜?实测5折渠道对比 - 快递物流资讯
  • 为什么 AI 写得越快,项目反而越容易返工?我做了个交接 Gap 校对器
  • [智能体-332]:图解langgraph
  • 2026年近期,探寻性价比高的球场围网制造厂哪家好的行业深度观察 - 品牌鉴赏官2026
  • 数据的加密与解密(00:04)
  • 批量爆款复刻实现人效提升效率,同时极致拍摄降低成本
  • 数据的加密与解密(00:00)
  • 归环新手攻略 归环新手怎么玩
  • 2026年中药材种植厂家排行及选型核心参考 - 优质品牌商家
  • 四川长宁融顺生物质:竹粉颗粒燃料技术与联系方式解析 - 优质品牌商家
  • 3大模型翻译对决:第24周质量评测,passthrough 以 9 分领跑
  • 透镜建筑仓库 分层可视化+无死角全域一屏管控
  • 10.Redis实战-优惠劵秒杀
  • 电机的kv值
  • 云边云科技亮相 2026 WOD 制造业数智化博览会 云网融合赋能制造焕新
  • Django学习教程(十)Django Admin后台管理模块