视觉SLAM十四讲 Chapter3 课后练习

Abaqus滞回问题求解—浆锚连接装配式剪力墙滞回模拟 当下土木工程研究生,多数都在从事装配式混凝土构件安全或装配式混凝土构件连接节点力学性能的研究。研究这类问题,几乎脱离不开对有限元软件的使用,Abaqus求解能力非常强大,但模型处理能力相对较弱。装配式混凝土结构的有限元计算与传统现浇结构相比,其节点处理起来相对复杂,计算结果往往需要凸显出连接节点力学特性,所以对建模精程度的要求较高。所以向大家介绍一款工具—HyperMesh软件(一下简称Hm),它是专业的有限元前处理工具,用于处理装配式混凝土构件或连接节点有限元模型比较合适。这篇文章主要介绍如何利用Hm处理 阅读详情

1. 验证旋转矩阵是正交矩阵

在这里插入图片描述

2.验证四元数旋转某个点后,结果仍然是一个虚四元数(实部为0),所以仍然对应一个三维空间点

在这里插入图片描述

3.画表总结旋转矩阵、旋转向量(轴角)、欧拉角、四元数的转换关系

在这里插入图片描述

4.假设有一个大的Eigen矩阵,想把它的左上角3*3的块取出来,然后赋值为I3*3,编程实现。

assignment5.cpp

//2019.08.05
#include <iostream>
#include <ctime>
using namespace std;

//Eigen部分
#include <Eigen/Core>
//稠密矩阵的代数运算(逆、特征值等)
#include <Eigen/Dense>

#define MATRIX_SIZE 15

int main()
{
	//用随机数填充一个double类型的N*N矩阵
	Eigen::Matrix<double,MATRIX_SIZE ,MATRIX_SIZE > matrix_NN = Eigen::MatrixXd::Random(MATRIX_SIZE,MATRIX_SIZE);
	cout <<"matrix_NN:"<<endl<<matrix_NN<<endl;

	//定义一个3*3的double矩阵,用于盛放matrix_NN左上角3*3的内容
	Eigen::Matrix3d matrix_33;	
	
	//初始化为3*3的单位阵,用于对matrix_NN左上角进行赋值
	Eigen::Matrix3d matrix_I33 = Eigen::Matrix3d::Identity();

	//将matrix_NN左上角3*3的块取出来,放到matrix_33中
	matrix_33 = matrix_NN.topLeftCorner(3,3);
	cout <<"matrix_33:"<<endl<<matrix_33<<endl;

	//将matrix_I33 赋值到matrix_NN左上角3*3的块中
	matrix_NN.topLeftCorner(3,3) = matrix_I33;
	cout <<"matrix_NN:"<<endl<<matrix_NN<<endl;
	
	return 0;
}

CMakeLists.txt

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

#添加一个可执行程序
add_executable( assignment5 assignment5.cpp )

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

5.设有机器人一号和机器人二号位于世界坐标系中。机器人一号的位姿为q1=[0.35,0.2,0.3,0.1],t1=[0.3,0.1,0.1]T(q的第一项为实部。请把q归一化后再进行计算)。这里的q和t表达的是Tcw,是世界坐标系到相机坐标系的变换关系。机器人二号的位姿q2=[-0.5,0.4,-0.1,0.2],t2=[-0.1,0.5,0.3]T.现在,机器人一号看到某个点在自身的坐标系下坐标为p=[0.5,0,0.2]T.求该向量在机器人二号坐标系下的坐标,编程实现。

assignment7.cpp

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

#include <Eigen/Core>
//Eigen几何模块
#include <Eigen/Geometry>

//先根据q1和t1,将pc1转换到世界坐标系pw中,然后根据q2和t2,将pw转换到pc2
int main()
{
	Eigen::Quaterniond q1(0.35,0.2,0.3,0.1);
	q1.normalize();//对q1进行归一化
	Eigen::Vector3d t1(0.3,0.1,0.1);
	Eigen::Quaterniond q2(-0.5,0.4,-0.1,0.2);
	q2.normalize();//对q2进行归一化
	Eigen::Vector3d t2(-0.1,0.5,0.3);
	Eigen::Vector3d pc1(0.5,0,0.2);
	Eigen::Vector3d pc2,pw;

	//将pc1转换成pw
	pw = q1.inverse()*(pc1 - t1);
	cout<<"pw:"<<pw.transpose()<<endl;

	//将pw转换成pc2
	pc2 = q2*pw + t2;
	cout<<"pc2:"<<pc2.transpose()<<endl;

	return 0;
}

CMakeLists.txt

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

#添加一个可执行程序
add_executable( assignment7 assignment7.cpp )

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

YOLOv11知识蒸馏实战:让小模型拥有大模型90%精度,速度提升3倍的终极教程 在self.alpha = alpha # 蒸馏损失权重self.temperature = temperature # 温度系数,控制分布平滑度# 输出分布蒸馏(KL散度损失)# 中间特征蒸馏(MSE损失,对齐中间层特征)# 总蒸馏损失知识蒸馏是YOLOv11在“小模型高性能部署”场景的“破局之法”——它让小模型能“站在大模型的肩膀上”,兼具速度与精度。从损失函数定义到多阶段训练,再到实战落地,本教程已为你铺就了一条清晰的路径。 阅读详情

相关推荐

Pytorch版deeplabv3+环境配置训练自己的数据集

参考:https://blog.youkuaiyun.com/qq_36766560/article/details/110009622?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161594607816780266214828%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161594607816780266214828

Ring__Rain的博客 1万+

机器人坐标系

机器人坐标系 机器人坐标系主要分4类,关节坐标系(joint)、世界坐标系(world)、工具坐标系(tool)、用户坐标系(user)。 机器人在空间的位置坐标由其末端所处的位置及姿态来决定。 机器人坐标系主要分4类,关节坐标系(joint)、世界坐标系(world)、工具坐标系(tool)、用户坐标系(user)。 关节坐标系最为直观,它是组成机器人所有关节的电机位置或角度。 世界坐标系是以机...

CodeSyslearner的博客 9007

AOSP Android14 Launcher3——动画核心类QuickstepTransitionManager详解

是一个复杂但核心的动画管理器。它利用 Android 的远程动画机制,拦截系统默认的窗口切换,并替换为高度定制、与 Launcher UI 深度集成的平滑过渡动画。当用户从一个应用程序通过手势或按键返回到 Launcher (桌面) 时,它负责创建和运行动画,使得应用程序窗口能够平滑地过渡(通常是缩小)到 Launcher 上的对应目标(图标、小部件或屏幕中心),同时 Launcher 界面元素(工作区、背景等)恢复显示。计算动画所需的各种参数,如窗口的起始/结束位置、缩放比例、透明度、圆角、裁剪区域等。

Micheal_Yang's Blog 2673

【SLAM14讲CH3】习题

CH3 习题 1.验证旋转矩阵是正交矩阵 正交矩阵: 1.行列式为1 2.每个向量都是单位向量且相互正交 3.其逆等于其转置 简单理解:先说一下什么是旋转矩阵?如图1所示,我们假设最开始空间的坐标系$X_A Y_A Z_A 就是笛卡尔坐标系,这样我们得到空间A的矩阵其实也可以看做是单位阵∗∗E∗∗。进过旋转后,空间A的三个坐标系变成了图1中红色的三个坐标系就是笛卡尔坐标系,这样我们得到空间A的矩阵其实也可以看做是单位阵**E**。进过旋转后,空间A的三个坐标系变成了图1中红色的三个坐标系就是笛卡尔坐标系,这

qq_44319285的博客 540

基于dify平台批量分析excel格式信息

如何以表格形式批量输入一些信息,然后让大模型以对话应用形式逐条进行推理分析?请逐行分析以下数据,给出推理结果:{{input}}这里提供一个分步解决方案,结合。

knightissocool的博客 8012

局放起始电压(PDIV)与击穿电压(BDV):绝缘系统设计的核心参数 [特殊字符]

在电力设备绝缘系统设计中,**局放起始电压(Partial Discharge Inception Voltage, PDIV)和击穿电压(Breakdown Voltage, BDV)**是两个至关重要的参数。它们直接反映了绝缘材料的性能和绝缘系统的可靠性,对变压器的设计、制造和运行具有重要指导意义。本文将深入探讨这两项参数的定义、测试方法及其与绝缘设计制造的关系,帮助读者全面理解其在电力设备中的核心作用。

mubiao05的博客 2639

四元数旋转表达(Hamilton notation & JPL notation)

1. 四元数介绍 此处链接讲述了四元数的概念和旋转相关的知识。

L_Y_Fei的博客 3916

ARM芯片内部的高速公路:手把手教你用AMBA Designer配置NIC-400互连控制器

本文详细介绍了如何使用AMBA Designer工具配置ARM芯片中的NIC-400互连控制器,涵盖从基础拓扑构建到高级QoS设置的完整流程。通过实际案例演示,帮助开发者掌握AXI协议下的高效片上网络设计,提升SoC性能与能效比。

weixin_26750481的博客 314

视觉SLAM十四讲第三章作业

slambook2的课后作业(第三章)

m0_73688118的博客 205

GEE:连续变化检测 CCD 第一步(导出ee.Algorithms.TemporalSegmentation.Ccdc函数的结果)

连续变化检测与分类(Continuous Change Detection and Classification, CCDC)主要有两个组件,一个连续变化检测 CCD,另外一个分类。在 Google Earth Engine (GEE)平台上进行 CCD 时间序列变化检测的时候,为了防止内存超限问题,将代码分为2阶段执行。第一阶段是运行 `ee.Algorithms.TemporalSegmentation.Ccdc` 函数,本文将详细介绍 CCD 的第一阶段的代码。

养乐多的博客 2497

SMOKE 3D:从 Python 到 C++ 实现车辆与行人单目 3D 视觉识别在 RK3588 上的深度部署

SMOKE的网络结构通常基于高性能的骨干网络(如DLA-34,您使用的模型就是基于此),通过编码器-解码器架构来提取特征。输入:RGB图像(本项目为骨干网络:用于特征提取。检测头热力图分支:预测关键点热力图。通常在热力图上进行NMS来找到局部最大值,即潜在的关键点位置。回归分支:对于每个关键点位置,预测上述的8维3D属性向量。分类分支:预测每个关键点对应的物体类别。置信度分支:预测每个关键点的置信度。本教程详细介绍了SMOKE单目3D目标检测模型在RK3588上的部署。我们从SMOKE的。

LXY_LOVE36的博客 439

视觉SLAM十四讲笔记-- 第三讲

第三讲课后题 1、验证旋转矩阵是正交矩阵。 (1)正交矩阵 定义:设A为n阶方阵,如果ATA=IA^TA=IATA=I 或者 AAT=IAA^T=IAAT=I,就称A为正交矩阵 性质: 正交矩阵的每一个列向量都是单位向量,且向量之间两两正交。 正交矩阵的行列式为1 或者 -1 A−1=ATA^{-1}=A^TA−1=AT(充要条件) (2)旋转矩阵 旋转矩阵描述了坐标系之间的旋转变换,由3 × 3 的矩阵描述。 验证思路是利用 正交矩阵的充要条件 (A−1=ATA^{-1}=A^TA−1=AT)来验证

野生C猿的专栏 513

Qt实现思维导图功能5『纵向分布模式』

思维导图纵向分布模式:模式一

浮生流年的博客 1062

视觉SLAM十四讲 Chapter4 课后练习

视觉SLAM十四讲 Chapter4 课后练习1.验证SO(3)、SE(3)关于乘法成群2.验证(R^2^,R,×)构成李代数3.验证so(3)和se(3)满足李代数要求的性质4.验证书中性质5.证明等式6.证明等式7.仿照左扰动的推导,推导SO(3)和SE(3)在右扰动下的导数 1.验证SO(3)、SE(3)关于乘法成群 2.验证(R2,R,×)构成李代数 3.验证so(3)和se(3)满...

wolfcsharp的博客 828

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

视觉SLAM十四讲 读书编程笔记 Chapter 1&2

视觉SLAM十四讲 读书编程笔记 Chapter 1&21.有线性方程组Ax=b,若已知A,b,需要求解x,该如何求解?这对A和b有哪些要求?2.单目SLAM有哪些特性?3.双目相机有哪些特性?4.整体视觉SLAM流程图5.视觉SLAM流程图的一些理解6.SLAM问题的数学表达 1.有线性方程组Ax=b,若已知A,b,需要求解x,该如何求解?这对A和b有哪些要求? 答:x=A-1b,其中A...

wolfcsharp的博客 899

IEM模型,地表粗糙度模拟

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

视觉SLAM十四讲:从理论到实践(Chapter1)

学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可当前部分:Chapter 1: 预备知识。

努力学习 648

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

视觉SLAM十四讲 读书编程笔记 Chapter10 后端1

Chapter10 后端1概述概率估计的概率解释线性系统和KF非线性系统和EKFEKF的讨论BA与图优化投影模型与代价函数BA的求解稀疏性和边缘化鲁棒核函数实践:g2o实践:Ceres 概述 概率估计的概率解释 线性系统和KF 经典线性卡尔曼滤波的概率推导: 非线性系统和EKF 对于非线性系统,扩展卡尔曼滤波的推导: EKF的讨论 假设了马尔科夫性。 EKF由于在局部点处进行泰勒展开,非...

wolfcsharp的博客 617

视觉SLAM十四讲:从理论到实践(Chapter6:非线性优化)

非线性优化是个很大的主题,研究者们为之奋斗多年;主要方法:最速下降、牛顿、G-N、L-M、DogLeg等;与线性规划不同,非线性需要针对具体问题具体分析;问题非凸时,对初值敏感,会陷入局部最优,目前没有非凸问题的通用最优值的寻找办法;问题凸时,二阶方法通常一两步就能收敛。

努力学习 1036

视觉SLAM十四讲:从理论到实践(Chapter7:视觉里程计1)

学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可1.理解图像特征点的意义,并掌握在单幅图像中提取特征点及多幅图像中匹配特征点的方法。 2.理解对极几何的原理,利用对极几何的约束,恢复图像之间的摄像机的三维运动。 3.理解PNP问题,以及利用已知三维结构与图像的对应关系求解摄像机的三维运动。 4.理解ICP问题,以及利用点云的匹配关系求解摄像机的三维运动。 5.理解如何通过三角化获得二维图像上对应点的三维结构。 视觉里程(Visual Odometry):计算前后两帧位姿的变化量VO主要有两个大类:特

努力学习 1219

视觉SLAM十四讲 读书编程笔记 Chapter11 后端2

Chapter11 后端2位姿图位姿图的意义位姿图的优化 位姿图 位姿图的意义 随着时间的流逝,空间点和相机位姿数据不断增多,BA的计算效率会不断下降。 实际上,经过若干次优化迭代之后,空间位置估计会收敛至一个值保持不动。因此,我们更倾向于在优化几次之后就把特征点固定住,只把它们看作位姿估计的约束,而不再实际地优化它们的空间位置。 我们可以构建一个只有轨迹的图优化,而位姿节点之间的边,可以由两个关...

wolfcsharp的博客 607

视觉SLAM十四讲 读书编程笔记 Chapter7 视觉里程计1

Chapter7 视觉里程计1特征点法ORB特征特征匹配实践:特征提取与匹配2D-2D:对极几何对极约束的推导本质矩阵E的求解 特征点法 ORB特征 ORB(Oriented FAST and Rotated BRIEF)特征的关键点是"Oriented FAST",这是一种带有方向信息的FAST角点 ORB的描述子称为BRIEF(Binary Robust Independent Elemen...

wolfcsharp的博客 946

视觉SLAM十四讲:从理论到实践(Chapter4:李群与李代数)

学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可1. 理解李群与李代数的概念,掌握SO(3)、 SE(3)与对应李代数的表示方式。 2. 理解BCH近似的意义。 3. 学会在李代数上的扰动模型。 4. 使用Sophus对李代数进行运算。旋转矩阵自身带约束(正交且行列式为1),当它作为优化变量时,会引入额外的约束,使优化变得困难。通过李群-李代数间的转换关系,可以把位姿估计变成无约束的优化问题。群(Group)是一种集合加上一种运算的代数结构,集合记作A,运算记作·,那么群可以计算G=(A,·)。群运算

努力学习 729

视觉SLAM十四讲 读书编程笔记 Chapter12 回环检测

Chapter12 回环检测词袋模型(BoW)字典字典的结构实践:创建字典相似度的计算理论部分实践:相似度计算相似性评分的处理关键帧的处理检测之后的验证 词袋模型(BoW) 确定BoW的单词,从而组成字典。 确定一副图像中出现了哪些在字典中定义的概念,从而把一副图像转换成了一个向量的描述。 比较上一步中描述的相似程度。 字典 字典的结构 字典生成问题类似于一个聚类问题,聚类问题常用K-mea...

wolfcsharp的博客 934

视觉SLAM十四讲 读书编程笔记 Chapter13 建图

Chapter13 建图单目稠密重建极线搜索与块匹配高斯分布的深度滤波器实践:单目稠密重建实验分析与讨论像素梯度问题逆深度图像间的变换完整代码:RGB-D稠密建图实践:点云地图实践:八叉树地图 单目稠密重建 极线搜索与块匹配 如图所示,左边的相机观测到了某个像素p1,由于这是一个单目相机,我们无从知道它的深度。 图 就像对极几何中描述的一样,p1对应的空间点会落在右边相机拍摄的图像的极线l2上。 ...

wolfcsharp的博客 1583

视觉SLAM十四讲:从理论到实践(Chapter9:后端1)

学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可1.理解后端的概念。 2.理解以EKF为代表的滤波器后端的工作原理。 3.理解非线性优化的后端,明白稀疏性是如何利用的。 4.使用g2o和Ceres实际操作后端优化 BA:Bundle Adjustment,是一种批量式的优化方法,给定很多个相机位姿、路标与观测数据,计 算最优的状态估计;定义每个运动/观测方程的误差,并从初始估 计开始寻找梯度下降;BA代价函数:待优化变量:相机的位姿和Landmark的三维空间坐标把自变量定义成所有待优化的变量:,Δ

努力学习 772

视觉SLAM十四讲:从理论到实践(Chapter3:三维空间刚体运动)

一个四元数有一个实部和三个虚部。本书把实部写在前面:aa%7B%7D%27aa_1%2Ca_2R_%7B12%7Dt_%7B12%7DT_%7B12%7Dq_1i&plus;q_2j&plus;q_3kp%27。

努力学习 785
上一篇: 视觉SLAM十四讲 读书编程笔记 Chapte3 三维空间刚体运动
下一篇: 视觉SLAM十四讲 读书编程笔记 Chapter4 李群与李代数
Leo-Ma
博客等级 码龄11年 1701粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值