视觉SLAM十四讲 读书编程笔记 Chapter4 李群与李代数

《视觉SLAM十四讲 第二版》笔记及课后习题(第三讲) 读书笔记:三维空间刚体运动 本讲介绍视觉 SLAM 的基本问题之一:一个刚体在三维空间中的运动是如何描述的。我们当然知道这由一次旋转加一次平移组成。平移确实没有太大问题,但旋转的处理是件麻烦事。我们将介绍旋转矩阵、四元数、欧拉角的意义,以及它们是如何运算和转换的。 旋转矩阵 一些线性代数的基本知识。 坐标系: 坐标变化: 变换矩阵: 这是一个数学技巧:我们把一个三维向量的末尾添加 1,变成了... 阅读详情

李群与李代数基础

1.群是一种集合加上一种运算的代数结构,满足封闭性、结合律、幺元、逆四个条件。
在这里插入图片描述
2.李群是指具有连续(光滑)性质的群
3.李代数的定义
李代数由一个集合V,一个数域F和一个二元运算[,]组成,其中二元运算被称为李括号。如果它们满足如下四条性质,则称(V,F,[,])为一个李代数:
在这里插入图片描述
4.李代数so(3)
SO(3)对应的李代数so(3)是定义在R3空间上的向量
在这里插入图片描述
在这里插入图片描述
李代数so(3)的李括号为:
在这里插入图片描述
5.李代数se(3)
SE(3)对应的李代数se(3)是定义在R6空间上的向量
在这里插入图片描述
李代数se(3)的李括号为:
在这里插入图片描述

指数与对数映射

  1. so(3)实质上就是由所谓的旋转向量组成的空间,而指数映射即罗德里格斯公式。
    推导证明如下:
    在这里插入图片描述
  2. so(3)对数映射
    在这里插入图片描述
  3. se(3)指数映射
    在这里插入图片描述
    在这里插入图片描述
  4. se(3)对数映射
    显然,可以先用so(3)的对数映射,得到so(3)李代数,然后根据so(3)李代数求解出J,然后根据下式求出rou
    在这里插入图片描述
  5. 指数和对数映射相互转换关系
    在这里插入图片描述

李代数求导与扰动模型

  1. BCH公式与近似形式
    在这里插入图片描述
    在SE(3)上则有:
    在这里插入图片描述
    这里的雅克比是6*6的矩阵,形式比较复杂。

  2. SO(3)李代数上的求导
    在这里插入图片描述

  3. 左乘扰动模型求导
    在这里插入图片描述

  4. SE(3)李代数上的求导
    在这里插入图片描述

实践:Sophus

  1. Sophus库支持SO(3)、SE(3)以及二维运动SO(2)、SE(2)和相似变换Sim(3)等内容。
  2. Sophus早期版本只提供了双精度的李群、李代数类。后续版本改写成了模板类,但增加了使用难度。书中使用的是非模板类的Sophus库
    在github上获取非模板类的Sophus:
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build
cd build
cmake ..
make
sudo make install
  1. Sophus是一个cmake工程,编译后还需安装
  2. Sophus库头文件
#include "sophus/so3.h"
#include "sophus/se3.h"
  1. 从旋转矩阵R构造SO3
	Sophus::SO3 SO3_R(R);
  1. 从旋转向量构造SO3
Sophus::SO3 SO3_v(0,0,M_PI/2);
  1. 从四元数q构造SO3
Sophus::SO3 SO3_q(q);
  1. 输出SO(3)时,以so(3)的形式输出
  2. 使用对数映射获得SO(3)的李代数so(3)
Eigen::Vector3d so3 = SO3_R.log();
  1. 用hat将李代数(so(3)向量)转换成反对称矩阵(SO(3)矩阵)
Sophus::SO3::hat(so3)
  1. 用vee将反对称矩阵(SO(3)矩阵)转换到向量(so(3)向量)
Sophus::SO3::vee(SO3_R)
  1. SO3左乘增量扰动模型的更新
//增量扰动模型的更新
Eigen::Vector3d update_so3(1e-4,0,0);//假设一个小的李代数扰动更新量
Sophus::SO3 SO3_updated = Sophus::SO3::exp(update_so3)*SO3_R;//左乘更新
  1. 由R和t构造SE(3)
Sophus::SE3 SE3_Rt(R,t);
  1. 由q和t构造SE(3)
Sophus::SE3 SE3_qt(q,t);
  1. 使用对数映射获得SE(3)的李代数se(3)
//李代数se(3)是一个六维向量,方便起见,先typedef一下
typedef Eigen::Matrix<double,6,1> Vector6d;
Vector6d se3 = SE3_Rt.log();
cout<<"se3 = "<<se3.transpose()<<endl;//观察输出,发现在Sophus中平移在前,旋转在后,与书中理论是一致的
  1. 用hat将李代数(se(3)向量)转换成反对称矩阵(SE(3)矩阵)
Sophus::SE3::hat(se3)
  1. 用vee将反对称矩阵(SE(3)矩阵)转换到向量(se(3)向量)
Sophus::SE3::vee(SE3_Rt)
  1. SE3左乘增量扰动模型的更新
//增量扰动模型的更新
Vector6d update_se3;//更新量
update_se3.setZero();
update_se3(0,0)=1e-4;
Sophus::SE3 SE3_updated = Sophus::SE3::exp(update_se3)*SE3_Rt;
cout<<"SE3 updated = "<<endl<<SE3_updated.matrix()<<endl;
  1. CMakeLists.txt中为使用sophus,需要使用find_package命令找到它
find_package(Sophus REQUIRED)
#添加Sophus头文件
include_directories(${Sophus_INCLUDE_DIRS})
#添加链接地址
target_link_libraries(useSophus ${Sophus_LIBRARIES})

完整代码:
useSophus.cpp

//2019.08.06
#include <iostream>
#include <cmath>
using namespace std;

//Eigen部分
#include <Eigen/Core>
#include <Eigen/Geometry>

//Sohpus部分
#include "sophus/so3.h"
#include "sophus/se3.h"



int main()
{

	///////////////////对SO(3)的一些操作//////////////////////////
	cout<<"----------------对SO(3)的一些操作---------------"<<endl;
	//定义一个沿Z轴旋转90度的旋转矩阵R
	Eigen::Matrix3d R = Eigen::AngleAxisd(M_PI/2, Eigen::Vector3d(0,0,1)).toRotationMatrix();//由旋转向量转换到旋转矩阵
	Sophus::SO3 SO3_R(R);//Sophus::SO(3)可以直接从旋转矩阵构造
	Sophus::SO3 SO3_v(0,0,M_PI/2);//Sophus::SO(3)也可以直接从旋转向量构造	
	//Sophus::SO(3)亦可以从四元数构造
	Eigen::Quaterniond q(R);//由旋转矩阵转换到四元数
	Sophus::SO3 SO3_q(q);
	//以上构造方式都是等价的

	//输出SO(3)时,以so(3)的形式输出
	cout <<"SO(3) from matrix: "<<SO3_R<<endl;
	cout <<"SO(3) from vector: "<<SO3_v<<endl;
	cout <<"SO(3) from quaternion:"<<SO3_q<<endl;

	//使用对数映射获得它的李代数
	Eigen::Vector3d so3 = SO3_R.log();
	cout<<"so3 = "<<so3.transpose()<<endl;
	//用hat将向量转换成反对称矩阵
	cout<<"so3 hat = "<<endl<<Sophus::SO3::hat(so3).transpose()<<endl;
	//相对的,用vee将反对称矩阵转换到向量
	cout<<"so3 hat vee = "<<Sophus::SO3::vee(Sophus::SO3::hat(so3)).transpose()<<endl;
	
	//增量扰动模型的更新
	Eigen::Vector3d update_so3(1e-4,0,0);//假设一个小的李代数更新量
	Sophus::SO3 SO3_updated = Sophus::SO3::exp(update_so3)*SO3_R;//左乘更新
	cout<<"SO3 updated = "<<SO3_updated<<endl;

	///////////////////下面是对SE(3)的操作//////////////////////
	cout<<"----------------对SE(3)的一些操作---------------"<<endl;
	Eigen::Vector3d t(1,0,0);//定义平移向量t,沿X轴平移1
	Sophus::SE3 SE3_Rt(R,t);//由R和t构造SE(3)
	Sophus::SE3 SE3_qt(q,t);//由q和t构造SE(3)
	cout<<"SE3 from R,t="<<endl<<SE3_Rt<<endl;
	cout<<"SE3 from q,t="<<endl<<SE3_qt<<endl;

	//李代数se(3)是一个六维向量,方便起见,先typedef一下
	typedef Eigen::Matrix<double,6,1> Vector6d;
	
	Vector6d se3 = SE3_Rt.log();
	cout<<"se3 = "<<se3.transpose()<<endl;//观察输出,发现在Sophus中平移在前,旋转在后,与书中理论是一致的

	//hat运算
	cout<<"se3 hat = "<<endl<<Sophus::SE3::hat(se3).transpose()<<endl;
	//vee运算
	cout<<"SE3 vee = "<<endl<<Sophus::SE3::vee(Sophus::SE3::hat(se3)).transpose()<<endl;

	//增量扰动模型的更新
	Vector6d update_se3;//更新量
	update_se3.setZero();
	update_se3(0,0)=1e-4;
	Sophus::SE3 SE3_updated = Sophus::SE3::exp(update_se3)*SE3_Rt;
	cout<<"SE3 updated = "<<endl<<SE3_updated.matrix()<<endl;

	return 0;	
}

CMakeLists.txt

#2019.08.06

#添加Eigen的头文件
include_directories("/usr/include/eigen3")

#为使用sophus,需要使用find_package命令找到它
find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})

#添加一个可执行程序
add_executable( useSophus useSophus.cpp )
#添加链接地址
target_link_libraries(useSophus ${Sophus_LIBRARIES})

运行结果:
在这里插入图片描述

视觉SLAM十四讲 读书 笔记 此为视觉SLAM十四讲第二章的读书笔记 1、P24 第二章对于SLAM问题的由来以及建模的发展演化过程有一个比较清晰的介绍(想吐槽一下的就是:在一个研究领域刚兴起的时候,真的就是百花齐放啊,行业内对于同一个东西会有各种各样的描述,虽然每个作者的描述都没有错,但是对于初学者而言,今天在文章中看到一个“状态估计的不确定性研究”,明天看到一个“CML”或者“SLAM”,但是其实描述的是同一个东西,徒增了一些困惑),特别是对于初学者,对于SLAM问题到底是个啥?描述的很通俗易懂。 2、Ubuntu的安装 为了减少不 阅读详情

相关推荐

知识星球《SLAM从零开始学习》课时1——课时8 读书笔记

文章目录课时一: 总体谋划课时二: 学习SLAM到底需要学哪些?课时三 : SLAM的使用场景课时四:C++新特性课时五:使用齐次坐标课时六: 三维空间刚体的旋转课时七:为啥需要李群与李代数?背景:SO(n) 与 SE(n)背景:群和李群李群和李代数课时八:相机成像模型针孔相机成像原理相机畸变 课时一: 总体谋划 如果我们想要了解一个领域,最好的方法就是先看该领域比较著名的综述论文,先从宏观上把握该领域的整体面貌。 1、请列举几篇最近几年SLAM领域经典的综述论文。 2、阅读综述,并列举至少

shuttworth的博客 1387

李群与李代数一(定义与映射)

为什要使用? SLAM中,位姿是未知的,需要求出最符合当前状态的位姿! 因为旋转矩阵本身具有约束的(正交且行列式的值为1),需要通过李群代数把位姿估计变成无约束问题 群 特殊正交群(对乘法是封闭的[即乘法的结果仍属于该集合])SO(3)={R∈R3×3∣RRT=I,det(R)=1}SO(3)=\{R\in R^{3×3}|RR^T=I,det(R)=1\}SO(3)={R∈R3×3∣RRT=I,det(R)=1} 特殊欧氏群(对乘法是封闭的[即乘法的结果仍属于该集合])SO(3)={T=[Rt0T1]T

weixin_37781153的博客 550

【Godot】实现对话系统

在 Godot 中实现对话系统(Dialogue System)是游戏开发中的常见需求。Godot本身自带的的灵活性和轻量级脚本语言 GDScript 使得实现对话系统变得相对简单。以下是实现一个基础对话系统的示例。(语言为GDScript但高亮选择Python因为类似)通过 Godot 和 GDScript,我们可以给我们的游戏实现一个对话系统。从简单的文本显示到复杂的分支对话,Godot 提供了足够的灵活性来满足我们的需求。如果需要更高级的功能,可以尝试使用现成的插件如 Dialogic。

Octopus2077的博客 2523

第4讲 李群和李代数2

第一部分:SO(3)和so(3) 1、SO(3)对应的李代数       SO(3)对应的李代数是定义在上向量,我们记作。根据上一篇博客中的推导,可以知道,每个都可以生成一个反对称矩阵: 在此定义下,两个向量的李括号(运算)为: 由于和反对称矩阵关系很紧密,在不引起歧义的情况下,可以说的元素是三维向量或者三维反对称矩阵,即: 到此,我们已经清楚了SO(3)对应的李代数的内容,...

llfjcmx的博客 1645

vivado2020.1使用vitis生成QSPI启动文件报错

在使用vivado2020.1使用vitis,生成QSPI启动文件时会报错,data2mem命令无法识别,这是因为data2mem是xilinx7series芯片的命令,当使用ultrascale/ultrascale+芯片时则需要使用updatemem命令,这或许是vitis的一个bug吧,明明选择的是ultrascale的芯片,却一直调用打她mem命令,挺麻烦的,需要手动执行,在XSCT console窗口执行的命令如下: updatemem -force -meminfo \ F:/xc7z35t/x

qq_32134427的博客 2336

重装系统后,恢复Oracle的.ORA文件

前几天,系统莫名奇妙产生很多宏病毒,进而感染整个C盘,不得已,格式化后重装了系统。 重装系统之后,突然想到D盘中的oracle中很多数据没导出来备份,安装文件下有很多有用的.ORA文件,抱着死马当活马医的态度,居然成功了。 1、将原来D盘(D:\oracle\product\10.2.0\oradata\orcl)下的数据文件备份下其他盘,将D盘的oracle目录名改成oracle1。安装数据

zhanggnol的blog 5551

《视觉SLAM十四讲》学习笔记:第4讲 李群与李代数

《视觉SLAM十四讲》学习笔记:第4讲 李群与李代数 前言:本学习笔记将记录《视觉SLAM十四将》中一些重要的知识点,并对书中一些比较难的知识点添加上一些笔者个人的理解,以供笔者本人复习并与各位同学一起交流学习。本笔记结构将与原书结构一致,如果某一目录下面没有任何笔记,则代表笔者认为该小节内容相对来说没有过多重点知识。 本讲主要解决问题 理论: 1.理解李群与李代数的概念,掌握 SO(3),SE(3)SO(3),SE(3)SO(3),SE(3) 与对应李代数的表示方式 2. 理解 BCH 近似的意义。 3.

themarshal的博客 767

万达电影 com.wandafilm.app headers check

万达电影 安卓逆向 抓包 逆向 check

weixin_43786514的博客 1438

视觉SLAM学习:Sophus库中 SO(3)和SE(3)的使用方法

视觉SLAM学习:Sophus库中 SO3和SE3的使用方法视觉SLAM学习:Sophus库中 SO(3)和SE(3)的使用方法一、SO(3)的使用方法1.1 构造1.2 李代数用法1.3 增量扰动模型的更新二、SE(3)的使用方法2.1 构造2.2 李代数用法2.3 增量扰动模型的更新 视觉SLAM学习:Sophus库中 SO(3)和SE(3)的使用方法 一、SO(3)的使用方法 1.1 构造 首先可以构造旋转矩阵或四元数: Matrix3d R=AngleAxisd(M_PI/2,Vector3d(0,

hhz_999的博客 1万+

数据分享】中国12.5m数字高程模型(DEM)数据(分省)

数据名称:ALOS 12.5m DEM 数据。数据名称:ALOS 12.5m DEM 数据。数据大小:61.5GB。空间分辨率:12.5m。数据大小:61.5GB。空间分辨率:12.5m。

JData_Engineer的博客 5392

AWR2243的等效相位中心与虚拟通道

在俯仰维方向上,不重合的虚拟通道有8个,排序为1:4,9:12。每个虚拟阵元之间的间隔为lambda/2。实际y轴方向虚拟阵列只跨越了8*lambda/2的距离。等效相位中心与虚拟通道类似,只是每个相位中心之间间隔为lambda/4,实际y轴方向等效相位中心只跨越了8*lambda/4=7.59mm的距离

qq_50974341的博客 1983

se(3)与so(3)左乘、右乘扰动模型雅克比推导

分别详细推导了se(3)与 so(3)的左乘、右乘扰动模型的雅克比矩阵,特别提供了se(3)左乘扰动模型优化特征点的重投影误差的例子。

weixin_43196818的博客 4238

matlab 点云按高程进行赋色【2024最新版】

首先按照Z轴方向求取所在点云的高程极值(包括高程最大值与最小值),然后将高程归一化到0~255范围内,最后采用matlab中的colormap颜色渲染函数进行赋色并保存渲染结果到点云。

点云侠的博客 3342

《视觉SLAM十四讲 第二版》笔记及课后习题(第四讲)

读书笔记:李群与李代数 上一讲,我们介绍了三维世界中刚体运动的描述方式,包括旋转矩阵、旋转向量、欧拉角、四元数等若干种方式。我们重点介绍了旋转的表示,但是在SLAM 中,除了表示之外,我们还要对它们进行估计和优化。因为在SLAM 中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的R; t,使得误差最小化。 如前所言,旋转矩...

weixin_43619346的博客 2679

MOS管基础知识及应用电路Multisim仿真

本文系统介绍了MOS管的基础知识及其在电子电路中的典型应用。首先详细解析了MOS管的基本结构、分类和工作原理,包括NMOS、PMOS及CMOS的特性差异。重点阐述了MOS管的三种放大组态电路(共源、共漏、共栅)及其小信号模型分析。随后通过Multisim仿真验证了MOS管在防反接电路、开关电路、放大电路、逻辑门电路、电平转换电路和开关电源(BUCK、BOOST、BUCK-BOOST)等应用中的实际表现。文章还深入探讨了自给偏压和分压式偏置电路的设计要点。全文通过理论分析与仿真实验相结合的方式,全面展示了MO

XU157303764的博客 1491

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

《视觉SLAM十四讲 第二版》笔记及课后习题(第一讲)

前言 之所以想要写这个系列的博客,是因为想要总结一下高博的《SLAM视觉十四讲第二版》的各章内容以及自己对书后习题的一些做法,也算是对自己学习过程的一个总结和回顾。那么,正式开始! 第一讲、预备知识 SLAM 是Simultaneous Localization and Mapping 的缩写,中文译作“同时定位与地图构建”。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建...

weixin_43619346的博客 4459

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

《第4讲 李群和李代数 》读书笔记

本文是《视觉SLAM十四讲》第4讲的个人读书笔记,为防止后期记忆遗忘写的。 本节目标 总结李群与李代数的概念,知道为什么要引出它们。掌握 SO(3), SE(3) 与对应李代数的表示方式。 回忆 BCH 公式以及近似的意义。总结在李代数上的扰动模型。 使用 Sophus 对李代数进行运算。 这一节的知识点串联思路 在 SLAM 中,除了表示位姿之外,我们还要对它们进行估计和优化。因为在 ...

LWHGMAN的博客 1200

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

视觉SLAM理论到实践系列(三)——李群与李代数(1)

李群与李代数

YangtseJin的博客 1083

【读书笔记】《视觉SLAM十四讲(高翔著)》 第4讲

文章目录PART1 读书笔记PART2 实践部分 PART1 读书笔记 PART2 实践部分 P76 4.4 实践:Sophus

dahailuoa6的博客 561

《视觉SLAM十四讲》读书笔记--前八讲

一.初识SLAM 1.单目相机局限性:平移之后才能计算深度以及无法确定真实尺度。 双目相机测量原理:由两个单目相机构成,由两个相机之间的距离-基线估计每个像素的空间位置。基线距离越大测量的越远。 局限性:深度量程和精度受基线和分辨率限制,视差计算量大非常耗资源(主要问题),需GPU和FPGA加速才能实时输出 图像距离信息。 深度...

zhang__shuang_的博客 6560

视觉slam学习|基础篇01

SLAM基础篇01 SLAM基础篇02最近在看高翔和张涛写的《视觉SLAM十四讲》,记录一下学习的内容,方便以后复习。这一系列文章更像是这本书的读书笔记,所以结构脉络都与该书相似;更推荐有时间的同学去看原书,写的更加详细易懂。欢迎大家一起探讨学习视觉SLAM相关的知识。SLAM(simultaneous localization and mapping)全称即时定位与地图构建或并发建图与定位),顾名思义可以解决“定位”和“建图“两件事情。 SLAM 问题的本质:对运动主体自身和周围环境空间不确定性的估计。主

JeSuisDavid的博客 2904

SLAM算法与工程实践——SLAM基本库的安装与使用(4):Sophus库

Sophus库

YangtseJin的博客 3449

《视觉SLAM十四讲》读书笔记(二)

李群与李代数 引入李群与李代数的原因:旋转矩阵自身是带有约束的(正交且行列式为1).它们作为优化变量时,会引入额外的约束,使优化变得困难。通过李群——李代数间的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式。 4.1 李群与李代数基础 三维旋转矩阵构成了特殊正交群SO(3) 变换矩阵构成了特殊欧式群SE(3) SO(3)={R∈R3×3∣RRT=I,det⁡(R)=1}SE(3)={T=[Rt0T1]∈R4×4∣R∈SO(3),t∈R3} \begin{array}{l} \mathrm{S

m0_38144614的博客 657

《视觉slam十四讲》阅读笔记及课后习题详解——第一讲

前言 今天开始,开启这一系列博客,记录自己的学习过程。博客大致分为阅读笔记和课后习题。 更新计划: 2020.08.19——2020.08.31:更新第一、二、三、四讲 2020.09.01——2020.09.31:更新第五、六、七讲 2020.10.01——2020.10.31:更新第八、九、十、十一讲 2020.11.01——2020.11.31:更新第十二、十三、十四讲 读书笔记 1.1 主要内容 SLAM: SLAM,全称是Simultaneous Localization and Mapping,

qq_42910179的博客 480

视觉Slam十四讲读书笔记

视觉Slam十四讲读书笔记 文章目录视觉Slam十四讲读书笔记@[toc]2 初识SLAM2.4 编程基础2.4.2 hello slam2.4.3 cmake编译2.4.4 使用库2.3 SLAM问题的数学表达3 三维空间刚体运动3.1 旋转矩阵3.3 旋转向量和欧拉角3.3.1 旋转向量3.3.2 欧拉角3.4 四元数3.5 相似、仿射、射影4 李群与李代数6 非线性优化6.1 状态估计问题6.1.1 最大后验与最大似然6.1.2 最小二乘法引入6.2 非线性最小二乘6.2.1 一阶二阶梯度6.2.2

weixin_43521275的博客 250

SLAM学习笔记

SLAM学习笔记Chapter1Chapter2Chapter3合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 Chapter1 旋转矩阵、变换矩阵、欧式变换 Chapter2 四元数 Chapter3 旋转矩阵、变换矩阵,李群(Lie G

Cloudy_to_sunny的博客 735
上一篇: 视觉SLAM十四讲 Chapter3 课后练习
下一篇: 视觉SLAM十四讲 Chapter4 课后练习
Leo-Ma
博客等级 码龄11年 1701粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值