5 视觉SLAM十四讲读书笔记P40-P52( 二 )


Q:什么叫齐次坐标
在计算几何中 , 齐次坐标是一种向量表示方法 , 它在计算和描述点、直线、平面等几何对象的位置和运动时非常有用 。
齐次坐标是通过在原有的笛卡尔坐标系中增加一个维度 , 将二维或三维的笛卡尔坐标扩展为三维或四维的向量 , 从而实现点、直线、平面等几何对象的无限远点的表示 。
在齐次坐标中 , 如果一个点的坐标为
 , 则其齐次坐标为
 , 其中
为一个非零常数 。这个齐次坐标表示的实际上是一个与原来点相同的等价点 , 因为当
不等于 0 时 , 

表示的点相同 。
齐次坐标中的“齐次”一词源自于拉丁语“” , 表示“相似的、相同的、同种的” 。这是因为在齐次坐标中 , 点与向量之间的运算可以看作是“同种”对象之间的运算 , 即点与点之间的运算、向量与向量之间的运算 。
Q:什么是特殊欧氏群
特殊欧氏群(Group)是指在欧几里得空间中保持长度和角度不变的所有等距变换所组成的群 , 通常用SE(n)表示 。这个群包括旋转和平移两种基本变换 , 即旋转矩阵和平移向量构成的变换矩阵 , 满足矩阵的行列式为1 。在二维欧氏空间中 , 特殊欧氏群就是平面上所有旋转和平移的组合 。在三维欧氏空间中 , 特殊欧氏群则包括旋转和平移的组合 。这个群在计算机图形学和机器人学中应用广泛 , 例如用于描述和控制三维物体的运动和变换 。
Q:什么是运算符重载
运算符重载是指在编程中对原有运算符进行重新定义 , 以实现自定义类型的运算操作 。例如 , 对于内置类型的运算符如“+”、“-”、“*”、“/”等 , 它们可以被重载 , 使其能够适用于自定义类型 , 实现类似加减乘除等运算 。
通过运算符重载 , 可以让自定义类型的代码更加直观、易读和易用 , 提高代码的可读性和可维护性 。重载的运算符可以像内置运算符一样使用 , 使代码看起来更像自然语言的形式 。运算符重载在 C++、Java、、C#等编程语言中都得到了广泛应用 。
Q:什么是g2o
g2o是一种用于求解非线性最小二乘问题的C++库 。它广泛应用于机器人、计算机视觉、SLAM(and )等领域中 。g2o库提供了一种灵活的方式来描述问题的模型 , 可以使用它来优化包括位姿、相机参数、三维重建、图像匹配等方面的参数 。g2o库使用了稀疏矩阵和自动微分等技术 , 具有高效的计算速度和内存利用率 。由于其优秀的性能和广泛应用 , g2o已经成为了SLAM领域中最受欢迎的求解器之一 。
g2o的官网链接是: - /g2o: g2o: Afor Graph
Q:什么是
是一个用于计算机视觉和机器人领域的C++库 , 实现了李代数和李群相关的计算和优化 , 以及常见的位姿表示(例如四元数、欧拉角、转子) 。它主要被用于求解非线性优化问题 , 例如在视觉SLAM(and )和机器人导航中 。的优点之一是可以处理李代数和李群的数学特性 , 如非线性性和流形结构 , 从而提高了算法的数值稳定性和精度 。
的官网链接为: - /: C++of Lieusing Eigen.
cmake_minimum_required(VERSION 2.8)project(useEigen)set(CMAKE_BUILD_TYPE "Release")set(CMAKE_CXX_FLAGS "-O3")# 添加Eigen头文件include_directories("/usr/include/eigen3")add_executable(eigenMatrix eigenMatrix.cpp)