为什么四元数要用ESKF?什么时候用四元数什么时候用李代数?一篇解决所有问题

首先讲一下基础:



Q1:为什么四元数要用ESKF??

首先KF不能用四元数。这里稍微多解释一下,KF要求运动方程是线性的,观测方程线性和非线性无所谓,一般情况下观测方程都是非线性的,所以要用泰勒展开,求雅克比矩阵来做一个近似;而EKF连运动方程都不要求是线性,所以还要求一个运动方程的雅克比矩阵,如下图所示:


因为四元数肯定是非线性的,所以不能直接用KF。实际上可以用EKF,但是以四元数为状态变量的话其雅克比矩阵也比较复杂(有没有用四元数为状态量进行EKF的呢?其实是有的,是在无人机里常出现的,直接用全量而不是误差量进行建模的情况,比如直接用姿态的四元数做状态量)

最常用的是ESKF的形式。为什么要用errorState呢,errorState有很多优点,但我觉得最重要的是误差状态方程是近似线性的,所以可以直接用卡尔曼滤波(注意,eskf并不是EKF,而是KF),而且测量更新部分的雅克比矩阵的计算也非常简单计算,因为errorState总是很小的,所以高阶项可以忽略。





Q1:什么时候用李代数,什么时候用四元数?

1、非线性优化问题

一般使用李代数会好一些。这是因为优化问题最终就是求H,从而也就是要求雅克比矩阵J。在李代数下,J的扰动求导是很方便且现成的,而用四元数求导比较麻烦,在计算精度上李代数也更高。一般优化得到增量的估计(李代数)之后,先指数映射转到李群,然后在李群上做乘法。

为什么用四元数?

通常SLAM优化问题里解出来的增量是旋转向量  是一个R3

这不是真正意义的李代数  实际上还有一个做反对称的步骤  但是是一一对应的

而转到四元数的话更简单  除以2然后做三角函数运算就好了

那为什么不用旋转向量(以及其所代表的李代数) 而用四元数?

是因为,

1、 旋转向量虽然是最小表示,但真正在做向量旋转时候还是要用旋转矩阵,所以还是要把旋转向量通过罗德里格斯公式变为旋转矩阵(或者用指数映射转成李群),而四元数有现成的运算;

2. 求得增量之后四元数的更新也比李群表示的更新方便快捷很多,同时四元数仅仅存四个数就可以,比存储李群那样的矩阵要方便一些;

3. 从便于理解的角度来说,我们最容易感受的其实是欧拉角,而不是旋转向量表示的给你一个旋转轴和旋转角度,那么从这个角度出发,四元数依旧是直接的公式,而旋转向量依旧需要一步罗德里格斯公式;

个人认为两者皆可表示旋转,只不过四元数有更多现成的运算,不必像旋转向量(或者楼主所说的李代数)一样处处罗德里格斯

另一个解读:

2. 四元数无法直接用卡尔曼滤波器做最优估计。于是有聪明人想到了姿态的误差,可以用旋转向量表示,这是一个向量,可以用卡尔曼滤波器做最优估计。然后将误差向量转换回四元数再乘回姿态四元数,这样消除误差,姿态四元数就是最优估计。

为什么四元数不能直接用卡尔曼滤波? 按这个说法 eskf里的角度误差是旋转向量来表示的 也就是3维 这和那个代码实现是统一的,对这个旋转向量做最优估计,然后转换成四元数,然后再做四元数乘法

卡尔曼滤波是线性系统下的,但是四元数表示的状态模型是非线性的,可以用EKF,但是用四元数做状态变量的话需要求一个计算复杂的雅可比矩阵,在实际的高维问题中不实际

3. 近些年来流行的情况是,用李群重新推导上一步的公式。这是SLAM软件中流行的做法,因为有一位做SLAM的博士为自己的毕设写了一份很好的教材。于是用李群的方法就流行开来。

4. 用李群的方法可以得到更高阶的计算精度,但是更吃算力但是在SLAM世界里,这点算力要求比起后面算法的要求来说是九牛一毛。而传统的姿态估计,是要求在MCU上完成计算。

5. 不过精度这个问题,要从源头算起。如果传感器本身的数据精度就不咋的,用传统方法也是可以的。噪声本来就很大,何必算这么辛苦,把算力让给其它算法不好么。于是就有提问者说的,有些SLAM软件还是使用四元数做姿态估计

所以,用四元数和用李群肯定是等价的,只不过用李群的话就是用扰动来求导

一般优化用李代数  正常的旋转表示用四元数比较多。对于优化问题,最终要求H,也就是要求雅克比J,在李代数下,J的扰动求导是很方便的,而四元数的求导比较麻烦(或许);而在滤波问题下,首先KF肯定不能用四元数,因为四元数非线性,用EKF的话四元数的状态变量也需要雅克比比较复杂。而用ESKF的话,一方面es是零均值的高斯分布,KF工作在原点附近,保证了线性化的合理性和有效性,而且es总是很小,所以高阶项可以忽略,雅克比矩阵的计算非常简单迅速

所以我们得到了最终为什么四元数要用eskf,无论以四元数为状态变量来做ekf,还是以四元数的误差为状态量来做eskf,都需要计算雅克比矩阵,对于ekf,这个雅克比的计算非常复杂,而对于以误差为状态量的eskf,因为状态量在0附近,所以可以省略高阶项,使得雅克比矩阵的计算非常简单和快速

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容