(1) 三维空间刚体运动

1.点与坐标系

二维时:xy坐标和指向角度,例如扫地机器人,朝哪个方向运动 即 (x , y , θ )

向量的内积

向量的外积

a × b = a的反对称矩阵 点乘 b  =a ^ b   其中 a^ 为a的反对称矩阵

坐标系:世界坐标系,机器人坐标系,传感器坐标系

2.旋转矩阵

考虑旋转不考虑平移,一个固定点(坐标旋转否它就在那里),在两个坐标系的向量相等。

向量与坐标不能等同,当指定坐标系时,向量才有坐标,有实数对应。向量的坐标取值与向量和坐标系有关。

两边同时左乘一个向量,

使上式左边系数变成单位阵,即有

R为特殊正交群SO(3)。特殊正交群表示旋转,特殊欧式群SE(3) 表示变换即旋转+平移

性质:

有平移时

齐次形式

特殊欧式群

变换矩阵T的逆

3.旋转向量和欧拉角

旋转向量:

方向为旋转轴,长度为转过的角度

旋转向量到旋转矩阵的转换公式,罗德里格斯公式Rodrigues‘s Formula

旋转矩阵到旋转向量

关于转轴n,旋转轴上的向量在旋转后不变,说明Rn=n。转轴n是矩阵R特征值1对应的特征向量。

欧拉角

将旋转分解为三个方向的转动

例如RPY roll pitch yall

想象飞机的飞行

1 绕Z轴旋转,得到偏航角yaw

2 绕旋转后的Y轴旋转,得到俯仰角 pitch

3 绕旋转后的X轴旋转,得到滚转角roll

欧拉角存在万向锁问题

存在奇异性,消失一个自由度

不适合插值和迭代,多用于人机交互,slam中少用

原文地址:https://www.cnblogs.com/skyturtle/p/9696939.html

时间: 2024-10-29 13:47:57

(1) 三维空间刚体运动的相关文章

《视觉slam十四讲》-第3讲-三维空间刚体运动

<视觉slam十四讲>-第3讲-三维空间刚体运动 原文地址:https://www.cnblogs.com/tangyuanjie/p/12606386.html

《视觉slam十四讲》之第3讲-三维刚体运动

第三讲:三维空间刚体运动 旋转的几种表达方式 向量 关于向量: 注:其中e1,e2,e3为线性空间下的一组基. 向量的内积: 注:向量的内积表示向量间的投影关系. 向量的外积 注:可以使用外积表示向量的旋转. 注:^ 记成一个反对称符号. 旋转矩阵 假设某个单位正交基(e1; e2; e3) ,经过一次欧式变换,变成了(e′ 1; e′ 2; e′ 3),对于同一个向量 a (注意该向量并没有随着坐标系的旋转而发生运动),它在两个坐标系下的坐标为 [a1; a2; a3]T 和 [a′ 1; a

physx之刚体运动

[线性速度与角速度] PxRigidBody的速度由线性速度和角速度构成, 可以分别通过setLinearVelocity和setAngularVelocity进行设置.需要注意的是, 刚体的角速度总是基于以刚体的质心为原点的坐标系的. 假设刚体的起点和终点分别是pose1和pose2, 运动时间为t,则速度计算公式如下: 线性速度 lv = (pose2.p - pose1.p) / t 变换四元数 d = pose2.q * pose1.q.getConjugate -> 轴对(angle,

03-三维空间刚体运动-01-齐次坐标和一般坐标

不仅仅在SLAM中,计算机视觉中有很多约定俗成的假设,会给阅读者带来一定的理解困难. 以世界坐标到像素坐标的转化为例: (关于什么是世界坐标.像素坐标.图像坐标,可以参考我的视频:https://www.bilibili.com/video/av22842726) 一般坐标: P' 表示变换后的点坐标: P 表示原来的点坐标:R 是3X3旋转向量: t 是3X1平移矩阵 这里的P' 和 P 都是三维坐标. 齐次坐标: T 是4X4的外参矩阵: 所以,对应的P'和P应该是四维向量才可以计算.就是在

《SLAM十四讲》个人学习知识点梳理

0.引言 从六月末到八月初大概一个月时间一直在啃SLAM十四讲[1]这本书,这本书把SLAM中涉及的基本知识点都涵盖了,所以在这里做一个复习,对这本书自己学到的东西做一个梳理. 书本地址:http://www.broadview.com.cn/book/4938 书本代码:https://github.com/gaoxiang12/slambook 1.SLAM概述 SLAM:即时定位与地图构建(Simultaneous Localization and Mapping) 数学描述: 一个典型的

刚体的平面运动

利用矩阵乘法来实现刚体的平面运动,并绘制刚体运动前后的图形 用平面坐标系中的一个闭合图形来描述刚体,用一个矩阵X来描述它.X的一列表示刚体一个顶点的坐标.为了使图形闭合,X的最后一列和第一列相同: 为了实现刚体的平移运算,给矩阵X添加元素值为1的一行,使矩阵X的形状为3Xn 若有矩阵: 可以证明:矩阵Y1是刚体沿x轴正方向平移c1.沿y轴正方向平移c2后的结果:矩阵Y2是刚体X以坐标原点为中心逆时针转动t弧度的结果 例:用下列数据表示大写字母A,对图形A进行以下平面运动,并绘制移动前后的图形 x

Unity3D之碰撞体,刚体

一 概念介绍 刚体 Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动.任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对象添加了刚体组件. 碰撞体 碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体

【Unity】11.2 刚体(Rigidbody)

分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力,使游戏对象像在真实世界中那样进行运动. 任何游戏对象,只有对其添加了刚体组件,该对象才能受重力的影响. 通过脚本为游戏对象添加的作用力,以及通过NVIDlA物理引擎与其他的游戏对象发生互动的运算,都需要为游戏对象添加刚体组件. 二.如何为对象添加刚体 在Unity 5.x中为某个游戏对象添加刚体组件的办法是:选中要添加刚体的游

[原]Unity3D深入浅出 - 之刚体部件Rigidbody

在虚拟世界中,任何物体都是没有活力的,要想变的真实,Rigidbody是必不可少的组件,下面介绍Rigidbody的各个属性: Mass:质量 Drag:阻力,对象在运动时遇到的空气阻力,0表示没有空气阻力,好比丢一个东西出去,如果这个东西没有阻力的话,则会一直不停的向你丢的方向所运动. Angular Drag:角阻力也称扭矩力,扭矩力是使物体发生转动的一种特殊的力炬. Use Gravity:使用重力,开启后会受到重力影响. Is Kinematic:是否开启动力学,开启后不在受物理引擎的影