点云向量 旋转 罗德里格斯(Rodrigues)变换Matlab

代码

旋转向量要求

步骤

已知点云的两个平面方程(即法向量),来进行点云的旋转平移变换,步骤如下:
1.通过法向量,来求旋转向量和旋转角
2.通过罗德里格斯(Rodrigues)法,将旋转向量变换为旋转矩阵,PS:旋转向量要满足:为单位向量,模为 θ(theta);Rodrigues是定义的一个函数,matlab里没有,要自己生成,其代码在第一个链接里:代码链接
3.将点云左乘旋转矩阵:RX
下面的代码为旋转向量转旋转矩阵的代码,在点云坐标系转换中:A,B即为已知的两个平面的法向量,RV为所求的符合Rodrigues要求的旋转向量,R为所求的变换矩阵

% 求向量A和向量B的旋转矩阵
 clear
 A = [-0.9772    0.0953   -0.1896]';
 B = [-0.9937    0.0999    0.0501]';
 C = cross(B, A);
 theta = acos((A'*B) / ( norm(A)*norm(B) ));
 Rv = C / norm(C) * theta;
 R = rodrigues(Rv);
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值