《视觉SLAM十四讲课后作业》第二讲

1.设线性⽅程 Ax = b,在 A 为⽅阵的前提下,请回答以下问题:
1. 在什么条件下,x 有解且唯⼀?

非齐次线性方程在A的秩与[A|B]的秩相同时方程有解,当R(A)=R(A,B)=n时方程有唯一解。

2. ⾼斯消元法的原理是什么?

原理:高斯消元法的作用是又来求解线性方程组的解,其原理是将方程组进行加减消元,然后求出未知数X。

3. QR 分解的原理是什么?

 

原理:将一个稀疏矩阵分解成一个正交矩阵和一个上三角矩阵A=QR, A左乘一个Householder反射矩阵Hj, Hn...H2H1A=QTA=[R 0]T

4. Cholesky 分解的原理是什么?

 

与SLAM问题相关的优化问题,可以很简洁的用稀疏线性代数的方式表达,要么将信息矩阵分解为平方根的形式,要么将观测雅可比矩阵A分解为平方根

原理:乔利斯基分解通过求解正规方程,然后分解信息矩阵得到一种对称正定矩阵(LU分解的百变种)得到一个n*n的上三角形矩阵。A=L*LT

5. 编程实现 A 为 100 × 100 随机矩阵时,⽤ QR 和 Cholesky 分解求 x 的程序。

 

#include<iostream>
#include<Eigen/Core>
#include<Eigen/Geometry>
const int SIZE=100;
using namespace std;
using namespace Eigen;
int main()
{
        //AX=B
        Matrix<double, Dynamic, Dynamic>A;//建立一个动态矩阵
        A=MatrixXd::Random(SIZE,SIZE);//建立一个100*100的随机矩阵
        A=A.transpose()*A;//乔利斯基分解需要正定矩阵
        Matrix<double, Dynamic,1>B;//建立一个动态矩阵B
        B=MatrixXd::Random(SIZE,1);//B为100*1的随机矩阵
        Matrix<double, Dynamic,1>X;//建立一个X
        X=MatrixXd::Random(SIZE,1);//X为100*1的随机矩阵
        X=A.llt().solve(B);//乔利斯基分解
        cout<<"LLT result:\n"<<X<<endl;//显示结果
        X=A.colPivHouseholderQr().solve(B);//QR分解
        cout<<"QR result:\n"<<X<<endl;//显示结果
        return 0;
}
                      

2.设有⼩萝⼘1⼀号和⼩萝⼘⼆号位于世界坐标系中。⼩萝⼘⼀号的位姿为:q1 = [0.55, 0.3, 0.2, 0.2], t1 =
[0.7, 1.1, 0.2]T(q 的第⼀项为实部)。这⾥的 q 和 t 表达的是 Tcw,也就是世界到相机的变换关系。⼩萝⼘
⼆号的位姿为 q2 = [−0.1, 0.3, −0.7, 0.2], t2 = [−0.1, 0.4, 0.8]T。现在,⼩萝⼘⼀号看到某个点在⾃⾝的坐
标系下,坐标为 p1 = [0.5, −0.1, 0.2]T,求该向量在⼩萝⼘⼆号坐标系下的坐标。请编程实现此事,并提交
你的程序。

#include<iostream>
#include<Eigen/Core>
#include<Eigen/Geometry>
using namespace std;
using namespace Eigen;
int main()
{
        Quaterniond q1(0.55,0.3,0.2,0.2);//定义四元数Q1
        Quaterniond q2(-0.1,0.3,-0.7,0.2);
        q1=q1.normalized();//四元素归一化
        q2=q2.normalized();
        Matrix<double,3,1> t1;//定义平移矩阵
        Matrix<double,3,1> t2;
        Matrix<double,3,1> p1;
        Matrix<double,3,1> p2;
        t1<<0.7,1.1,0.2;
        t2<<-0.1,0.4,0.8;
        p1<<0.5,-0.1,0.2;//Pcw相对于Tcw的位姿

        Isometry3d Tcw1=Isometry3d::Identity();//创建欧式群
        Tcw1.rotate(q1.toRotationMatrix());//四元数转化为旋转矩阵
        Tcw1.pretranslate(t1);//四元数转化为平移矩阵
        p1=Tcw1.inverse()*p1;//P1=Tcw1*Pw ==>Pw=P1*inverse(Tcw1)

        Isometry3d Tcw2=Isometry3d::Identity();//创建Tcw2的欧式群
        Tcw2.rotate(q2.toRotationMatrix());
        Tcw2.pretranslate(t2);
        p2=Tcw2*p1;//P2=Tcw2*Pw(Pw=P1*inverse(Tcw1))
        cout<<p2<<endl;
        return 0;

}

 

 

转载于:https://www.cnblogs.com/indulge-code/p/10492209.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
视觉SLAM十四第二版主要分为三个大部分:激光SLAM视觉SLAM和激光视觉等多传感器融合SLAM。在激光SLAM部分,书中介绍了激光传感器的原理、产品选型,以及开源激光SLAM系统的介绍、比较和分类。此外,书中还介绍了深度学习在激光SLAM中的应用以及激光SLAM面临的挑战和未来发展。在视觉SLAM部分,书中涵盖了视觉传感器的原理、产品选型,以及开源视觉SLAM系统和视觉惯性系统的介绍、比较和分类。同样地,书中还讨论了深度学习在视觉SLAM中的应用以及视觉SLAM的挑战和未来。最后,在多传感器SLAM系统部分,书中介绍了多传感器之间的内外参标定方法,并从硬件层、数据层和任务层介绍了现有的多传感器融合工具、融合技术和融合产品。书中还探讨了多传感器融合面临的挑战和未来发展。 总而言之,《视觉SLAM十四第二版主要介绍了激光SLAM视觉SLAM和激光视觉等多传感器融合SLAM原理、应用、挑战以及未来发展。这本书适合对SLAM感兴趣的读者,无论是从事相关研究还是工程应用的人员都会受益。阅读本书可以帮助读者了解SLAM的基本概念和方法,并深入探讨SLAM在不同传感器和多传感器融合下的应用和挑战。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [《视觉SLAM十四(高翔)》高清中文版PDF 1](https://download.csdn.net/download/weixin_35823755/86294534)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [视觉slam十四 第二版 pdf_第二SLAM上帝视角,它来啦!!!](https://blog.csdn.net/weixin_39620001/article/details/111384898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值