当前位置: 首页 > 编程日记 > 正文

【视觉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

相关文章:

【转载】邻接表表示法

图的邻接表表示法 图的邻接表表示法类似于树的孩子链表表示法。对于图G中的每个顶点v i &#xff0c;该方法把所有邻接于v i 的顶点v j 链成一个带头 结点的单链表&#xff0c;这个单链表就称为顶点v i 的邻接表(Adjacency List)。 1&#xff0e; 邻接表的结点结构 &#xff08…

宝塔的服务忽然挂掉解决方法

先登录宝塔看内存是否满了 如果满了就点击文件&#xff0c;找到大文件进行删除&#xff0c;然后清空回收站&#xff0c;重启服务器&#xff0c;就解决了。 清空回收站&#xff1a;点击首页&#xff0c;打开终端&#xff0c;输入下面命令&#xff0c; 清空回收站的命令是&#…

免费创办网站_足够好的工程来创办一家互联网公司

免费创办网站I gave a guest lecture in an undergraduate software engineering class (CSCE431) at Texas A&M University in March 2019. Now I’ve turned this lecture into a blog post here, and hopefully some people on the Internet will find this useful.我于…

centos7下安装docker(11容器操作总结)

这段时间主要是学习了对容器的操作&#xff0c;包括&#xff1a;容器的状态&#xff1a;start&#xff0c;stop&#xff0c;restart&#xff0c;rename&#xff0c;pause&#xff0c;unpause&#xff0c;rm&#xff0c;attach&#xff0c;exec&#xff0c;kill&#xff0c;logs…

Js插入元素到数组的头部和尾部 unshift push

我们经常会使用JS 数组插入数据&#xff0c;下面看一下常用的 1. 在数组头部插入元素 var arr [1,2,3]; arr.unshift(0);arr 输出结果&#xff1a; //arr [0,1,2,3] 2. 在数组尾部插入元素 var arr [1,2,3]; arr.push(4);arr 输出结果&#xff1a; //arr [1,2,3,4]

测试用例设计白皮书--正交实验设计方法

一.方法简介利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人&#xff0c;给软件测试带来沉重的负担&#xff0c;为了有效地,合理地减少测试的…

ios单应用模式_如何为iOS 13暗模式设置应用

ios单应用模式Apple launched the much-awaited iOS 13 updates globally on September 19 across all iPhones launched within the past 4 years (back to the iPhone 6s). 苹果于9月19日在全球发布了期待已久的iOS 13更新&#xff0c;该更新适用于过去4年内发布的所有iPhone…

BZOJ1965 [Ahoi2005]SHUFFLE 洗牌 快速幂

欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1965 题意概括 对于扑克牌的一次洗牌是这样定义的&#xff0c;将一叠N&#xff08;N为偶数&#xff09;张扑克牌平均分成上下两叠&#xff0c;取下面一叠的第一张作为新的一叠的第一张&#xff0c…

uniapp 长链接 socket 封装

App.vue <script>import socket from @/util/IM.jsexport default {watch: {$route: function() {var page = getCurrentPages();console.log(watch-监听路由, page);}},globalData: {ImAuth: socket.connect(),},onLaunch: function(e) {},onShow: function() {socket.…

react项目开发步骤_成为专业React开发人员的31个步骤

react项目开发步骤我为达到可雇用水平而进行的每个项目和课程。 (Every single project and course I took to reach a hireable level.) Before I learned how to code, I used to ask developers how much time it took them to learn their craft — and how they managed t…

P1979 [NOIP]华容道

【问题描述】 小 B 最近迷上了华容道&#xff0c;可是他总是要花很长的时间才能完成一次。于是&#xff0c;他想到用编程来完成华容道&#xff1a;给定一种局面&#xff0c; 华容道是否根本就无法完成&#xff0c;如果能完成&#xff0c; 最少需要多少时间。 小 B 玩的华容道与…

JS计算两个时间相差多久,相差年,月,日,小时,分钟

计算一个时间戳距离当前的时间&#xff0c;例如&#xff1a; 几年前&#xff0c;几个月前&#xff0c;几天前&#xff0c;几小时前&#xff0c;几分钟前&#xff0c;刚刚。 输出效果 代码&#xff1a; function getDistanceDay(time) {let stime new Date().getTime();let u…

replace 使用函数作为第二参数

var sToChange “The sky is red.”;var reRed /red/;var sResultText sToChange.replace(reRed, function(sMatch) { return “blue”;}); sMatch 指的是被匹配到到的对象&#xff0c; return 返回替换的对象 var reBadWords /badword|anotherbadword/gi;var sU…

如何在Visual Studio Code中编译C ++代码

PS: This was published on my Blog here. PS&#xff1a;这已发布在我的Blog 此处 。 C is a statically-typed, free-form, (usually) compiled, multi-paradigm, intermediate-level general-purpose middle-level programming language.C 是一种静态类型的&#xff0c;自由…

敏捷冲刺每日报告四(Java-Team)

第四天报告&#xff08;10.28 周六&#xff09; 团队&#xff1a;Java-Team 成员&#xff1a; 章辉宇&#xff08;284&#xff09; 吴政楠&#xff08;286&#xff09; 陈阳&#xff08;PM&#xff1a;288&#xff09; 韩华颂&#xff08;142&#xff09; 胡志权&#xff08;1…

终止forEach的循环

上代码&#xff1a; let list[1,2,3] try {list.forEach(item > {if (item1) {console.log(等于1就跳出循环)throw new Error("EndIterative");}}) } catch (e) {}

大学可以学前端开发_所有开发人员在大学中应该学习的东西

大学可以学前端开发忘记“代码行” (Forget About "Lines of Code") Source资源 As a developer, youll hear a lot of crazy, unbelievable theories about what "lines of code" signify. Believe none of them. Lines of code is a ridiculous metric …

20162325 金立清 S2 W8 C17

20162325 2017-2018-2 《程序设计与数据结构》第8周学习总结 教材学习内容概要 二叉查找树是一棵二叉树&#xff0c;对于其中的每个结点&#xff0c;左子树上的元素小于父结点的值&#xff0c;而右子树上的元素大于等于父结点的值。 最有效的二叉树是平衡的&#xff0c;所以每次…

H5画布不显示图片的问题解决

在onReady 执行 <template><view class""><canvas style"" canvas-id"myCanvas" id"myCanvas"></canvas><!-- <view class"container"><img :src"tempFilePath" /></…

javascript十六进制数字和ASCII字符之间转换

var hex"0x29";//十六进制 var charValue String.fromCharCode(hex);//生成Unicode字符 var charCode charValue.charCodeAt(0);//获取指定字符的十进制表示. var hexOri"0x"charCode.toString(16);;//将int值转换为十六进制 alert("hex:&q…

html5编写网页代码_freeCodeCamp.org的未来-从向世界传授语言到编写代码的5年经验...

html5编写网页代码freeCodeCamp went live in October 2014. In the five years since, weve done quite a bit.freeCodeCamp于2014年10月上线。在此之后的五年中&#xff0c;我们做了很多工作。 In this article, well explore:在本文中&#xff0c;我们将探讨&#xff1a; …

程序员眼中的英文单词是这样的

来源&#xff1a;Jackie Han英语中一个单词可能有很多不同的意思。很多中国开发者外语本来就不好&#xff0c;概念是往往先入为主。甚至在不清楚一般意义的情况下&#xff0c;先记住了特定环境中的意思。 转载于:https://www.cnblogs.com/agileai/p/5166982.html

linux系统无法挂载U盘

插上U盘 [ 2407.650440] usb 1-3.3: new high speed USB device number 7 using s5p-ehci [ 2407.887332] usb 1-3.3: New USB device found, idVendor0951, idProduct1666, bcdDevice0100 [ 2407.894249] usb 1-3.3: New USB device strings: Mfr1, Product2, SerialNumber3 […

小程序输入框上推页面不上推

样式问题&#xff0c;把样式去掉就行

面试:你了解中兴吗_HTTP简介:您需要了解的所有内容

面试:你了解中兴吗In this article, I will walk you through how the world wide web works at a fundamental level.在本文中&#xff0c;我将向您介绍基本的万维网工作原理。 The core technology is HTTP - Hypertext Transfer Protocol. Its the communication protocol …

img-responsive class图片响应式

在BootStrap中&#xff0c;给<img>添加 .img-responsive样式就可以实现图片响应式。1<img src"..." class"img-responsive">转载于:https://www.cnblogs.com/zouyun/p/7761393.html

小程序开发卡券

前期准备 小程序内领取卡券 1.开发者须有一个有卡券权限的公众号&#xff08;服务号&#xff09;和认证后的小程序账号&#xff1b; 2.开发者须申请一个开放平台账号&#xff0c;并将小程序和公众号绑定在同一个开放平台账号下&#xff0c;关于开放平台的介绍请参照&#xff1…

php学习之道:WSDL具体解释(三)

通过声明方式定义绑定&#xff08;binding&#xff09;属性 假设你在服务中採用SOAP binding。你能够使用JAX-WS来指定一定数量的属性binding。这些属性指定相应你在WSDL中指定的属性。某些设置。比方參数类型&#xff0c;能够约束你实现的方法。这些设置也影响声明的效用。 SO…

什么是棉绒,它如何节省您的时间?

One of the biggest challenges in software development is time. It’s something we can’t easily get more of, but linting can help us make the most out of the time we have.时间是软件开发中最大的挑战之一。 这是我们无法轻易获得的更多东西&#xff0c;但是棉绒可…

可持久化线段树(主席树)【舰娘系列】【自编题】

[pixiv] https://www.pixiv.net/member_illust.php?modemedium&illust_id60083619 向大(hei)佬(e)势力学(di)习(tou) 前段时间做了一套大佬自己出的题&#xff08;大佬竟然是个宅男2333&#xff09;&#xff0c;蒟蒻的我自然是只得了30分的暴力分:-( fleet 舰队 【题目描…