四元数球面线性插值

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

    插补过程不再赘述,可参考后面的链接。

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(1:3,1:3,1);

T = trinterp(Sele_A,B,20);%球面线性插值
R = ones(3,3,2);

for i = 1:20
    hold on
    trplot(T(:,:,i))
    R1 = T(1:3,1:3,i);
    R(:,:,i) = inv(Sele_A_R_Start) * R1;
end
grid on
title("旋转的过程");
%[angle, axis] = tr2angvec(T);

[angle, axis] = tr2angvec(R);

figure
plot(angle)
title("旋转的角度变化");

旋转过程:

角度变化:

     插补后的旋转是基于基坐标的轴角,需转为起始坐标系的表示,转换过程参考OROCOS中旋转插补的Pos计算。

转换后的角度变化:

 

 旋转轴的变化:

总结:

旋转过程是绕固定转轴,角度连续变化。

 参考:

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

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值