首页 > 编程知识 正文

四元数求导,双线性插值算法

时间:2023-05-06 03:03:47 阅读:152736 作者:4061

验证四元数球面线性插值的过程,观察旋转过程中旋转轴和角度的变化,与轴角插补对比。

省略插值步骤,请参考后面的链接。

matlab代码:

%%四元数球面线性插值,验证插值角度和旋转轴变化% 1.从基础坐标系Base_A到B % 2.从任意选择的Sele_A坐标系到B close all; base _ a=transl (0,0,0 ) RPy2tr ) 0,0,0 ); sele _ a=transl (1,2,3 ) RPy2tr ) pi/1,pi/2,pi/2; sele _ a _ r _ start=sele _ a (1:3,1:3,1 ); b=transl (2,3,4 ) RPy2tr ) pi/3,pi/3,pi/3 ); start_end_r=inv(sele_a_r_start ) b (133603,1:3,1 ); t=trinterp(sele_a,b,20 ); %球面线性插值r=ones (3,3,2 ); fori=1:20 holdontrplot (t 65:I ) ) R1=t ) 1:3,1:3,I ); r (:I )=inv(sele_a_r_start ) R1; 结束网格('旋转过程'); %[angle,axis]=tr2angvec(t; [angle,Axis]=tr2angvec(r ); 图形输出(angle title ) )旋转角度变化); 旋转过程:

角度变化:

插值后的旋转是基于基本坐标的轴角,必须转换为起始坐标系的显示。 转换过程请参考OROCOS中旋转插值的Pos计算。

转换后的角度变化:

旋转轴变化:

总结:

旋转过程以固定旋转轴为中心角度连续变化。

参考:

1 .计算物体姿态旋转_基于单位四元数的姿态插值(Matlab ) _集合菌博客-CSDN博客

2 .运动规划——空间圆弧和直线插补及姿态平滑-古月居

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。