news 2026/6/23 20:08:15

SLAM中的非线性优-3D图优化之相对位姿g2o::EdgeSE3Expmap(十)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SLAM中的非线性优-3D图优化之相对位姿g2o::EdgeSE3Expmap(十)

本讲总结下g2o中实现的相对位姿约束,本节主要还是参考了“白巧克力亦唯心”的那篇博客,尊重下原创,当然个人对g2o的代码风格不太喜欢,并且时间有限,因此这里只是展示下,不做代码验证,依然沿用之前的图进行说明

一. 基础知识

Ethan Eade的《Lie Groups for 2D and 3D Transformations》,发现他的文档早已有相关推导。比如针对两个SO3乘积对其中一个求导:

上面这两个推导都利用了伴随矩阵(adjoint)的性质。这部分内容在Ethan Eade的文档中有阐述,也可参考Strasdat博士论文2.4.7节的定义:

以及

利用该性质可以交换二者的乘法顺序(左乘变为右乘),这在求导时非常有用。同理可得其变体形式:

二. EdgeSE3Expmap边分析

新版貌似不在那个文件下了,不过问题不大

void computeError() { const VertexSE3Expmap* v1 = static_cast<const VertexSE3Expmap*>(_vertices[0]); const VertexSE3Expmap* v2 = static_cast<const VertexSE3Expmap*>(_vertices[1]); SE3Quat C(_measurement); SE3Quat error_= v2->estimate().inverse()*C*v1->estimate(); _error = error_.log(); }

void EdgeSE3Expmap::linearizeOplus() { VertexSE3Expmap * vi = static_cast<VertexSE3Expmap *>(_vertices[0]); SE3Quat Ti(vi->estimate()); VertexSE3Expmap * vj = static_cast<VertexSE3Expmap *>(_vertices[1]); SE3Quat Tj(vj->estimate()); //注意这里把测量标记为Tij应该是标记错误了,应该是Tji,不然整个误差公式说不通了 //这个可以看orbslam EdgeSim3里添加测量时就是用的Sji const SE3Quat & Tij = _measurement; // shoulb be Tji SE3Quat invTij = Tij.inverse(); SE3Quat invTj_Tij = Tj.inverse()*Tij; SE3Quat infTi_invTij = Ti.inverse()*invTij; _jacobianOplusXi = invTj_Tij.adj(); _jacobianOplusXj = -infTi_invTij.adj(); }

总结

本节博客主要总结,收集相关理论,并非个人原创,因为本博客系列是以后端优化为背景介绍的,虽然个人不太愿意完全参考别人的博客,但出于完整性考虑,此处还是搬运下,也作为以后的工具可查询。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:18:10

COMSOL模拟锌离子电池锌负极电场模型教程:从零开始构建并详细解析源文件,适合初学者的电场建模教学

comsol模拟锌离子电池锌负极电场模源文件与详细教程&#xff08;适合初学者&#xff09; 资料包含电场模型制作详细过程教学&#xff0c;以及若干种模型源文件可供学习完模仿参考打开COMSOL时总有人被满屏的物理场接口劝退&#xff0c;今天咱们用锌离子电池负极电场模拟为例&am…

作者头像 李华
网站建设 2026/6/23 0:59:14

终极指南:如何用PIKE-RAG打造领域专属的智能问答系统

终极指南&#xff1a;如何用PIKE-RAG打造领域专属的智能问答系统 【免费下载链接】PIKE-RAG PIKE-RAG: sPecIalized KnowledgE and Rationale Augmented Generation 项目地址: https://gitcode.com/gh_mirrors/pi/PIKE-RAG 在现代人工智能应用中&#xff0c;领域特定知识…

作者头像 李华
网站建设 2026/6/23 18:17:42

RocketMQ如何防止消息丢失?

文章目录引言生产端&#xff1a;确保消息成功发出去存储端(Broker)&#xff1a;确保消息持久化且不丢失消费端&#xff1a;确保消息处理完再确认总结引言 大家好&#xff01;我们使用消息队列中间件的时候&#xff0c;一般都会涉及到消息丢失怎么兜底的问题。今天我们一起来探…

作者头像 李华
网站建设 2026/6/23 16:03:16

CSS尺寸、盒子模型、定位、浮动与布局(Flex/Grid)

尺寸单位: px,em,rem,frimg各单位定义px (像素): 相对固定的单位&#xff0c;代表屏幕上的一个物理点。在高分辨率屏幕上&#xff0c;1个CSS像素可能对应多个物理像素。em: 相对单位&#xff0c;相对于父元素的字体大小。如果父元素字体大小为16px&#xff0c;则1em 16px。rem…

作者头像 李华
网站建设 2026/6/23 11:21:12

《构建游戏实时流失预警模型的核心逻辑》

玩家流失预警的关键痛点从来不是捕捉显性的行为衰减,而是解码藏在时序流转里的隐性流失信号—那些散落在跨模块交互、行为节奏变化中的序列异动,往往比单纯的在线时长缩短、任务参与度下降更早暴露玩家的离开倾向,也是实时预警模型能否实现“提前干预、精准留客”的核心突破…

作者头像 李华