日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【视觉SLAM14讲】ch3课后题答案

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【视觉SLAM14讲】ch3课后题答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.驗證旋轉矩陣是正交矩陣

感覺下面這篇博客寫的不錯

http://www.cnblogs.com/caster99/p/4703033.html?

總結一下:旋轉矩陣是一個完美的矩陣——正交矩陣。①行列式為1,②每個列向量都是單位向量且相互正交,③它的逆等于它的轉置。

?


?

2.羅德里格斯公式的簡單推導

http://blog.sina.com.cn/s/blog_ea828d2a0102wlk6.html

羅德里格斯旋轉公式是通過反對稱矩陣求旋轉矩陣的方法,起初我在看別人寫的姿態解算分析文章里看到,他的推導如下:

請注意我做標記的地方,我剛開始一直不明白這種推導,這樣會有誤差的推導,難道羅德里格斯公式是對旋轉矩陣R的近似?這樣做并不好,反而會使解算的姿態更不準確,后來在群里討論這個問題,有大神給我解惑了。
首先我們明白這是一個SO(3)到SO(3)的李群的映射。不要擔心自己不知道李群是什么,因為我們下面的推導會非常簡單!

?

我們先來看什么是反對稱矩陣,在這之前,先展示它和向量叉乘(內積)的關系:

紅色三個格子應該是i? j? k

?

下面看看我們的反對稱矩陣運算:

加一個小三角,就是將這個向量變成一個反對稱矩陣

?

?所以我們得出:

我們知道我們的旋轉矩陣R和我們的三角函數的關系,這里就不多說了,所以現在我們來看一個反對稱矩陣的性質,首先定義一個反對稱矩陣:

同時我們有如下的約束:

現在我們可以看到我們的反對稱陣有如下性質:

?

現在可以進行我們的羅德里格斯公式推導了:

?

?


?3.?驗證四元數旋轉某個點后,結果是一個虛四元數(實部為零),所以仍然對應 到一個三維空間點(式 3.34)。

?=.=? 看我干啥?下一題

?


?

4.旋轉矩陣? 軸角? 歐拉角? 四元數

書上都有

P42 軸角[n,α]與旋轉矩陣的關系

P52 軸角[n,α]與四元數的關系

歐拉角存在gimbal lock,不研究他的關系【其實我不會】


?

5.假設有一個大的eigen矩陣,想把他的左上角的3*3取出來,然后賦值為I3x3

?

?

?


?

6.Ax = b的Eigen實現

?


?

7.

機器人一號和二號,分別在世界坐標系中。?
一號的位姿q1=[0.35,0.2,0.3,0.1],?t1=[0.3,0.1,0.1]T。?
二號的位姿q2=[?0.5,0.4,?0.1,0.2],?t2=[?0.1,0.5,0.3]T。?
q的第一項是實部,且還未歸一化。?
已知一號機器人看到某個點,在他的坐標系下是p=[0.5,0,0.2]T, 求在二號機器人坐標系下該點的位置。

?

#include <iostream>
#include <cmath>// Eigen 部分
#include <Eigen/Core>
// 稠密矩陣的代數運算(逆,特征值等)
#include <Eigen/Dense>
//Eigen 幾何模塊
#include <Eigen/Geometry>using namespace std;int main(int argc, char **argv) {Eigen::Quaterniond q1(0.35, 0.2, 0.3, 0.1);Eigen::Quaterniond q2(-0.5, 0.4, -0.1, 0.2);Eigen::Vector3d t1(0.3, 0.1, 0.1);Eigen::Vector3d t2(-0.1, 0.5, 0.3);Eigen::Vector3d p1(0.5, 0, 0.2);Eigen::Quaterniond q1_one = q1.normalized();Eigen::Quaterniond q2_one = q2.normalized();//way1
    Eigen::Vector3d v = q1_one.inverse() * (p1 - t1);Eigen::Vector3d v2 = q2_one * v + t2;cout << "way1 v2 = " << endl << v2 << endl;//way2    Eigen::Matrix3d R1 = Eigen::Matrix3d(q1_one);Eigen::Matrix3d R2 = Eigen::Matrix3d(q2_one);Eigen::Vector3d v_2 = R1.inverse() * (p1 - t1);Eigen::Vector3d v_2_2 = R2 * v_2 + t2;cout << "way2 v2= " << endl << v_2_2 << endl;return 0;
}

?

way1 v2 = 
-0.03097310.734990.296108

way2 v2= -0.03097310.734990.296108 *** Exited normally ***

?

轉載于:https://www.cnblogs.com/-Mr-y/p/7737990.html

總結

以上是生活随笔為你收集整理的【视觉SLAM14讲】ch3课后题答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。