坐标旋转变换纪要

坐标旋转变换格则

坐标系旋转公式

坐标系旋转公式
坐标系的变换有一定的时序规则

全局(global)—>局部(local)

已知 全局坐标系A
局部坐标系B
局部坐标系B原点在全局坐标系A的位置(x,y)
待转换坐标点在全局坐标系A的位置(x0,y0)
请添加图片描述
实行坐标系 先平移 再旋转 的规则

局部(local)—> 全局(global)

已知 全局坐标系A
局部坐标系B
局部坐标系B原点在全局坐标系A的位置(x,y)
待转换坐标点在局部坐标系A的位置(x0,y0)
请添加图片描述
实行坐标系 先旋转 再平移 的规则
当然, 先平移 再旋转 的方法也行,就是相对麻烦些。
① 先将全局坐标系A的原点转换到局部坐标系B下,转换完成后的坐标值(x1,y1)就是我们需要平移的值
② 然后执行全局—>局部的规则 先平移再旋转 套用公式就好。

使用eigen库来进行坐标旋转平移

一些规则

     Eigen::Matrix3d A
     Eigen::Matrix3d B
     Eigen::Matrix3d R_new =  A * B

矩阵A * 矩阵B 是先进行B的旋转平移 再进行A的旋转平移

其中各个轴的旋转顺序可以提前定义

Eigen::Matrix3d R_initial = (Eigen::AngleAxisd(init.yaw.getRad(), Eigen::Vector3d::UnitZ()) *
                              Eigen::AngleAxisd(init.pitch.getRad(), Eigen::Vector3d::UnitY()) *
                              Eigen::AngleAxisd(init.roll.getRad(), Eigen::Vector3d::UnitX())).matrix();

注意定好旋转顺序后,欧拉角的提取也要按顺序来

Eigen::Matrix3d R_new =  A * B

矩阵A*矩阵B是局部坐标系转换到全局坐标系

Eigen::Matrix3d R_new =  A .transpose()* B

矩阵A的逆矩阵 乘 矩阵B 则是按A逆变换,即由全局坐标系转换到局部坐标系

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值