python 无人机、飞机轨迹(含姿态角)可视化方法

这篇具有很好参考价值的文章主要介绍了python 无人机、飞机轨迹(含姿态角)可视化方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

无人机、飞机轨迹(含姿态角)可视化方法

​ 目标:在三维直角坐标系中画出包含无人机位置pos、偏航角yaw、俯仰角pitch、滚转角roll等姿态的飞行轨迹。

思路:同时建立机体坐标系和直角坐标系,飞机的所有点在机体坐标系中的坐标是不变的,而通过俯仰角pitch、偏航角yaw以及滚转角pitch就可以完成从机体坐标系到直角坐标系的转换。因此,在可视化飞行轨迹时,只需要把pos作为机体坐标系的原点,然后根据三个角度进行转换(旋转)即可。

1.原始飞机图像点位

python 无人机、飞机轨迹(含姿态角)可视化方法
(以下为生成该飞机的matlab代码)

%% 148*3 三角连接矩阵
TR=[1 50 41;1 51 50;2 51 1;3 51 2;3 53 51;3 43 53;3 4 43;4 3 52;5 4 52;5 47 4;5 49 47;6 49 5;6 54 49;7 54 6;8 54 7;9 54 8;9 16 54;9 10 16;10 9 28;11 10 28;11 14 10;11 13 14;12 13 11;13 12 24;13 24 14;14 24 20;15 14 20;15 10 14;16 10 15;15 48 16;17 48 15;17 37 48;17 36 37;18 36 17;18 8 36;19 8 18;9 8 19;9 19 28;19 55 28;19 35 55;19 18 35;18 20 35;18 17 20;17 15 20;20 24 35;21 35 24;22 35 21;22 34 35;22 28 34;22 29 28;22 23 29;23 22 21;23 21 56;21 33 56;21 24 33;24 25 33;12 25 24;25 12 11;25 11 26;26 32 25;26 27 32;27 26 30;26 29 30;11 29 26;28 29 11;29 23 30;30 23 56;27 30 56;31 27 56;32 27 31;33 32 31;25 32 33;33 31 56;34 28 55;35 34 55;36 8 7;36 7 38;37 36 38;38 46 37;38 39 46;39 38 7;40 39 7;39 40 1;1 45 39;1 41 45;41 42 45;42 41 43;43 4 42;42 4 44;42 44 45;44 47 45;4 47 44;45 47 46;45 46 39;46 47 37;37 47 48;47 49 48;48 49 16;49 54 16;41 50 43;50 53 43;51 53 50;1 40 2;2 40 3;3 40 52;52 40 7;6 52 7;6 5 52;57 60 59;57 58 60;58 57 61;57 62 61;57 59 62;59 58 62;60 58 59;61 62 58;63 64 66;64 63 68;64 68 67;65 64 67;66 64 65;63 66 65;63 65 67;67 68 63;69 71 73;70 71 69;71 70 74;70 73 74;70 69 73;72 74 73;72 71 74;71 72 73;75 76 79;76 75 77;77 75 80;75 79 80;78 80 79;78 76 80;76 78 79;76 77 80;81 82 85;82 81 83;83 81 86;81 85 86;84 86 85;84 82 86;82 84 85;82 83 86];
%% 86*3 三维坐标矩阵(表示86个点在三维空间中的坐标)
X=[[0.4 0.025 -0.0433012701892219;0.4 0.05 0;0.4 0.025 0.0433012701892219;0.4 -0.025 0.0433012701892219;0.3 -0.035 0.0606217782649107;0.2 0.035 0.0606217782649107;0.2 0.07 0;0 0.065 0;-0.1 0.03 0.0519615242270663;-0.1 -0.03 0.0519615242270663;-0.2 -0.025 0.0433012701892219;-0.3 -0.04 0;-0.2 -0.05 0;-0.1 -0.06 0;0 -0.065 0;0 -0.0325 0.0562916512459885;0 -0.0325 -0.0562916512459885;-0.1 0.03 -0.0519615242270663;-0.1 0.06 0;-0.1 -0.03 -0.0519615242270663;-0.4 0.015 -0.0259807621135332;-0.4 0.03 0;-0.5 0.02 0;-0.2 -0.025 -0.0433012701892219;-0.4 -0.03 0;-0.4 -0.015 0.0259807621135332;-0.5 -0.01 0.0173205080756888;-0.2 0.025 0.0433012701892219;-0.4 0.015 0.0259807621135332;-0.5 0.01 0.0173205080756888;-0.5 -0.01 -0.0173205080756888;-0.5 -0.02 0;-0.4 -0.015 -0.0259807621135332;-0.3 0.04 0;-0.2 0.025 -0.0433012701892219;0 0.0325 -0.0562916512459885;0.2 -0.035 -0.0606217782649107;0.2 0.035 -0.0606217782649107;0.3 0.035 -0.0606217782649107;0.3 0.07 0;0.5 -0.01 -0.0173205080756888;0.5 -0.02 0;0.5 -0.01 0.0173205080756888;0.4 -0.05 0;0.4 -0.025 -0.0433012701892219;0.3 -0.035 -0.0606217782649107;0.3 -0.07 0;0.2 -0.07 0;0.2 -0.035 0.0606217782649107;0.5 0.01 -0.0173205080756888;0.5 0.02 0;0.3 0.035 0.0606217782649107;0.5 0.01 0.0173205080756888;0 0.0325 0.0562916512459885;-0.2 0.05 0;-0.5 0.01 -0.0173205080756888;0.2 0.0657784834550136 0.0239414100327968;0 0.0562916512459885 -0.0325;0.05 0.5 0;0.2 0.07 -0;0 0.061080020351084 0.0222313093161685;-0.05 0.5 0;0 -0.0562916512459885 -0.0325;0.2 -0.0657784834550136 0.0239414100327968;0.05 -0.5 0;0.2 -0.07 -0;-0.05 -0.5 0;0 -0.061080020351084 0.0222313093161685;-0.45 0.2 0;-0.4 0.0259807621135332 0.015;-0.4 0.0259807621135332 -0.015;-0.5 0.0173205080756888 -0.01;-0.5 0.2 0;-0.5 0.0173205080756888 0.01;-0.4 -0.0259807621135332 0.015;-0.4 -0.0259807621135332 -0.015;-0.45 -0.2 0;-0.5 -0.0173205080756888 -0.01;-0.5 -0.0173205080756888 0.01;-0.5 -0.2 0;-0.4 0.012678547852221 0.0271892336110995;-0.4 -0.012678547852221 0.0271892336110995;-0.45 0 0.15;-0.5 -0.00845236523481399 0.018126155740733;-0.5 0.00845236523481399 0.018126155740733;-0.5 0 0.15]];
%% 绘制三角曲面
trisurf(TR, X(:,2),X(:,1),X(:,3), 'FaceColor','cyan','edgecolor','blue');
axis equal;
axis([-0.5 0.5 -0.5 0.5 -0.5 0.5]);

2.建立机体坐标系

python 无人机、飞机轨迹(含姿态角)可视化方法
​ 上述机体坐标系的原点为飞机质心, x b x_b xb轴平行于机身轴线,指向机头; y b y_b yb轴垂直于飞机纵向对称面,指向右侧机翼; z b z_b zb轴垂直于 x b x_b xb轴和 y b y_b yb轴构成的屏幕,指向座舱上方;三个坐标轴的方向满足右手螺旋定则。

​ 下面看飞机的质心在直角坐标系中的坐标 ( O x t , O y t , O z t ) (Ox_t,Oy_t,Oz_t) (Oxt,Oyt,Ozt)

python 无人机、飞机轨迹(含姿态角)可视化方法
​ 上图表明: O z t = 0 Oz_t=0 Ozt=0

python 无人机、飞机轨迹(含姿态角)可视化方法

​ 上图表明: O x t = 0 Ox_t=0 Oxt=0
python 无人机、飞机轨迹(含姿态角)可视化方法
​ 上图表明: O y t = 0 Oy_t=0 Oyt=0
​ 由此可知,在当前状态下,直角坐标系(0,0,0)与机体坐标系(质心)的原点是一致的,并且在上面的图中可以看出各个坐标轴的方向也一致,因此当前飞机在直角坐标系中的坐标恰可以作为其在该机体坐标系的坐标。

PS:而飞机在机体坐标系中的坐标不会发生变化,因此只需要将质心移动到pos处,再根据三个角度进行旋转,即可在直角坐标系中画出包含Pos、俯仰角、偏航角以及滚转角的飞行轨迹。

3.坐标系转换

​ 假设得到一组飞行参数(pos,pitch,yaw,roll),用以下步骤完成飞机的可视化:

  1. 根据旋转矩阵对原来的机体坐标系坐标进行旋转(旋转方向为z,y,x)

    python 无人机、飞机轨迹(含姿态角)可视化方法
    python 无人机、飞机轨迹(含姿态角)可视化方法

​ 以上矩阵为由直角坐标系到机体坐标系的转换矩阵,记作 R t 2 b R_{t2b} Rt2b;另外设无人机在机体坐标系和直角坐标系的坐标分别为 I b I_b Ib I t I_t It,故有:(旋转要左乘)
I b = R t 2 b I t I_b=R_{t2b}I_t Ib=Rt2bIt
​ 故有:
I t = R t 2 b − 1 I b I_t=R_{t2b}^{-1}I_b It=Rt2b1Ib
​ 最后再将整个无人机平移Pos向量,即可得到可以表示无人机位姿的直角坐标:
I t = R t 2 b − 1 I b + P o s I_t=R_{t2b}^{-1}I_b+Pos It=Rt2b1Ib+Pos

4.代码实现效果(matlba)

pos=[500,1000,500];pitch=pi/6;yaw=pi/6;roll=pi/2;
Draw3DTraj(pos,pitch,yaw,roll);

python 无人机、飞机轨迹(含姿态角)可视化方法

5.飞行轨迹效果(改为python实现)

python 无人机、飞机轨迹(含姿态角)可视化方法文章来源地址https://www.toymoban.com/news/detail-424850.html

到了这里,关于python 无人机、飞机轨迹(含姿态角)可视化方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【无人机】基于 ode45实现四旋翼无人机姿态仿真附Matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年02月03日
    浏览(105)
  • 基于simulink的无人机姿态飞行控制仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB         无人机是无人驾驶飞机的简称(Unmanned Aerial Vehicle),是利用无线电遥控设备和自备的程序控制装置的不载人飞机,包括无人直升机、固定翼机、多旋翼飞行器、无人飞艇、无人伞翼机。广义地看也包括临近

    2024年02月02日
    浏览(63)
  • 【无人机控制】基于模型预测控制MPC无人机实现轨迹跟踪附Matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信       无

    2024年04月28日
    浏览(37)
  • 基于人工蜂群算法多无人机轨迹规划

    # 生物背景 蜜蜂是一种群居生物,生物学家研究发现蜜蜂以跳舞的方式来交换蜜源信息。根据分工的不同,蜜蜂被分为三个工种: 引领峰、跟随蜂、侦察蜂 。 侦察蜂 的职责是侦察蜜源(即蜜蜂的食物),一旦某一个侦察蜂找到蜜源后,实际上它的角色就切换为 引领蜂 了。

    2024年01月19日
    浏览(41)
  • 【轨迹跟踪】MPC模型无人机轨迹跟踪【含Matlab源码 3500期】

    1 模型预测控制原理 模型预测控制(MPC)的最核心思想就是利用三维的空间模型加上时间构成四维时空模型,然后在这个时空模型的基础上,求解最优控制器。MPC控制器基于一段时间的时空模型,因此得到的控制输出也是系统在未来有限时间步的控制序列。 由于,理论构建的

    2024年02月02日
    浏览(46)
  • 基于EKF的四旋翼无人机姿态估计matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB        卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。这种滤波方法以它的发明者鲁道夫·E·卡尔曼(Rudolf E. Kalman)命名。卡尔曼最初提

    2023年04月23日
    浏览(90)
  • 【rotors】多旋翼无人机仿真(二)——设置飞行轨迹

    【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境 【rotors】多旋翼无人机仿真(二)——设置飞行轨迹 【rotors】多旋翼无人机仿真(三)——SE3控制 【rotors】多旋翼无人机仿真(四)——参数补偿和PID控制 【rotors】多旋翼无人机仿真(五)——多无人机仿真 本贴内

    2024年02月02日
    浏览(70)
  • 无人机中的坐标系、旋转矩阵与相机姿态计算

    球坐标系 球坐标系是三维坐标系中的一种,在无人机中一般使用球坐标系来表示相机姿态,相机姿态的坐标是相对于无人机的,而无人机的飞行姿态则是相对于大地坐标系的。这里我们使用的相机是2自由度的相机,即可以水平 ϕ phi ϕ 和垂直 θ theta θ 两个方向转动,其中

    2024年02月12日
    浏览(41)
  • 【轨迹跟踪】模型预测控制MPC无人机轨迹跟踪【含Matlab源码 3958期】

    获取代码方式1: 完整代码已上传我的资源:【轨迹跟踪】基于matlab模型预测控制MPC无人机轨迹跟踪【含Matlab源码 3958期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏Matlab物理应用(初级版) 备注: 点击上面蓝色字体 付费专栏Matlab物理应用(初级

    2024年02月21日
    浏览(48)
  • 【轨迹跟踪】基于matlab LQR无人机轨迹跟踪【含Matlab源码 3501期】

    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包