【无人机】四轴无人机的轨迹进行可视化和动画处理(Matlab代码实现)

2023-05-16

📋📋📋本文目录如下:⛳️⛳️⛳️

目录

1 概述

2 运行结果

3 参考文献

4 Matlab代码实现

1 概述

随着传感器检测技术、智能控制技术和材料技术的快速发展,四轴无人机及其配套系统的发展越来越成熟。无人机遥感系统具有成本低、易维护、效率高、时效性强及对环境要求低等特点。

2 运行结果

 

部分代码:

function animation = drone_Animation(x,y,z,roll,pitch,yaw)
% This Animation code is for QuadCopter. Written by Jitendra Singh 

%% Define design parameters
D2R = pi/180;
R2D = 180/pi;
b   = 0.6;   % the length of total square cover by whole body of quadcopter in meter
a   = b/3;   % the legth of small square base of quadcopter(b/4)
H   = 0.06;  % hight of drone in Z direction (4cm)
H_m = H+H/2; % hight of motor in z direction (5 cm)
r_p = b/4;   % radius of propeller
%% Conversions
ro = 45*D2R;                   % angle by which rotate the base of quadcopter
Ri = [cos(ro) -sin(ro) 0;
      sin(ro) cos(ro)  0;
       0       0       1];     % rotation matrix to rotate the coordinates of base 
base_co = [-a/2  a/2 a/2 -a/2; % Coordinates of Base 
           -a/2 -a/2 a/2 a/2;
             0    0   0   0];
base = Ri*base_co;             % rotate base Coordinates by 45 degree 

to = linspace(0, 2*pi);
xp = r_p*cos(to);
yp = r_p*sin(to);
zp = zeros(1,length(to));
%% Define Figure plot
 fig1 = figure('pos', [0 50 800 600]);
 hg   = gca;
 view(68,53);
 grid on;
 axis equal;
 xlim([-1.5 1.5]); ylim([-1.5 1.5]); zlim([0 3.5]);
 title('(JITENDRA) Drone Animation')
 xlabel('X[m]');
 ylabel('Y[m]');
 zlabel('Z[m]');
 hold(gca, 'on');
 
%% Design Different parts
% design the base square
 drone(1) = patch([base(1,:)],[base(2,:)],[base(3,:)],'r');
 drone(2) = patch([base(1,:)],[base(2,:)],[base(3,:)+H],'r');
 alpha(drone(1:2),0.7);
% design 2 parpendiculer legs of quadcopter 
 [xcylinder ycylinder zcylinder] = cylinder([H/2 H/2]);
 drone(3) =  surface(b*zcylinder-b/2,ycylinder,xcylinder+H/2,'facecolor','b');
 drone(4) =  surface(ycylinder,b*zcylinder-b/2,xcylinder+H/2,'facecolor','b') ; 
 alpha(drone(3:4),0.6);
% design 4 cylindrical motors 
 drone(5) = surface(xcylinder+b/2,ycylinder,H_m*zcylinder+H/2,'facecolor','r');
 drone(6) = surface(xcylinder-b/2,ycylinder,H_m*zcylinder+H/2,'facecolor','r');
 drone(7) = surface(xcylinder,ycylinder+b/2,H_m*zcylinder+H/2,'facecolor','r');
 drone(8) = surface(xcylinder,ycylinder-b/2,H_m*zcylinder+H/2,'facecolor','r');
 alpha(drone(5:8),0.7);
% design 4 propellers
 drone(9)  = patch(xp+b/2,yp,zp+(H_m+H/2),'c','LineWidth',0.5);
 drone(10) = patch(xp-b/2,yp,zp+(H_m+H/2),'c','LineWidth',0.5);
 drone(11) = patch(xp,yp+b/2,zp+(H_m+H/2),'p','LineWidth',0.5);
 drone(12) = patch(xp,yp-b/2,zp+(H_m+H/2),'p','LineWidth',0.5);
 alpha(drone(9:12),0.3);

%% create a group object and parent surface
  combinedobject = hgtransform('parent',hg );
  set(drone,'parent',combinedobject)
%  drawnow
 
 for i = 1:length(x)
  
     ba = plot3(x(1:i),y(1:i),z(1:i), 'b:','LineWidth',1.5);
   
     translation = makehgtform('translate',...
                               [x(i) y(i) z(i)]);
     %set(combinedobject, 'matrix',translation);
     rotation1 = makehgtform('xrotate',(pi/180)*(roll(i)));
     rotation2 = makehgtform('yrotate',(pi/180)*(pitch(i)));
     rotation3 = makehgtform('zrotate',yaw(i));
     %scaling = makehgtform('scale',1-i/20);
     set(combinedobject,'matrix',...
          translation*rotation3*rotation2*rotation1);
      
      %movieVector(i) =  getframe(fig1);
        %delete(b);
     drawnow
   % pause(0.2);
 end

 


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者,博主专门做了一个专栏目录,整个专栏只放了一篇文章,做到极度细致,方便大家进行学习!亲民!!!还有我开了一个专栏给女朋友的,很浪漫的喔,代码学累的时候去瞧一瞧,看一看:女朋友的浪漫邂逅。有问题可以私密博主,博主看到会在第一时间回复。
 

                          👨‍🎓博主课外兴趣:中西方哲学,送予读者:

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

3 参考文献

部分理论引用网络文献,如有侵权请联系删除。

[1]李想,李阳.四轴无人机在林业管理中的应用[J].广西林业科学,2020,49(02):296-299.DOI:10.19692/j.cnki.gfs.2020.02.028.

4 Matlab代码实现

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【无人机】四轴无人机的轨迹进行可视化和动画处理(Matlab代码实现) 的相关文章

  • vscode配置clang-tidy插件

    先拥有一个 clang tidy文件 首先确保系统已经安装clang tidy xff0c 在项目的目录下新建一个 clang tidy文件 xff0c 具体如何配置在网上搜索 xff0c 或者用已有的 也可以在vscode的文件中配置 x
  • 4、linux初级——Linux在开发板中的使用

    目录 一 用CRT连接开发板 1 安装CRT调试工具 2 连接开发板 3 开机后ctrl 43 c关闭登录程序可以进入命令行 二 开发板和电脑文件之间的传输 xff08 串口 xff09 1 rx xff08 从电脑下载文件到开发板 xff
  • FreeRtos--中断

    采用二值信号量同步 二值信号量可以在某个特殊的中断发生时 xff0c 让任务解除阻塞 xff0c 相当于让任务与中断同步 这样就可以让中断事件处理量大的工作在同步任务中完成 xff0c 中断服务例程 ISR 中只是快速处理少部份工作 如此
  • FreeRTOS--资源管理

    函数重入 如果一个函数可以安全地被多个任务调用 xff0c 或是在任务与中断中均可调用 xff0c 则这个函数是可重入的 每个任务都单独维护自己的栈空间及其自身在的内存寄存器组中的值 如果一个函数除了访问自己栈空间上分配的数据或是内核寄存器
  • vscode代码提交到gittee码云 第一次提交方法

    学习3 xff1a 今天是第一次将vscode代码提交到gittee xff0c 废话不多说 xff0c 直接上方法 xff1a 查看git仓库 gt git status 将当前项目文件初始化为仓库 如果当前文件夹不是git仓库 xff0
  • 明火烟雾目标检测项目部署(YoloV5+Flask)

    明火烟雾目标检测项目部署 文章目录 明火烟雾目标检测项目部署1 拉取Docker PyToch镜像2 配置系统环境2 1 更换软件源2 2 下载vim2 3 解决vim中文乱码问题 3 运行项目3 1 拷贝项目到容器中3 2 安装项目所需的
  • 操作系统实践课作业(南航)

    操作系统实践课作业 xff08 南航 xff09 文章目录 操作系统实践课作业 xff08 南航 xff09 1 job21 1 main c1 2 math c1 3 Makefile 2 job32 1 myecho c2 2 myca
  • 在Linux系统下安装Neo4j图数据库

    在Linux系统下安装Neo4j图数据库 文章目录 在Linux系统下安装Neo4j图数据库1 Java JDK1 1 安装1 2 查看安装路径 2 Neo4j2 1 下载2 2 拷贝到容器中2 3 修改neo4j conf配置文件2 4
  • 大数定律 与 中心极限定理 的理解

    目录 1 大数定律 2 中心极限定理 1 大数定律 当样本的数量足够大时 xff0c 样本的统计特性就可以近似代表总体的统计特性 大数 是指样本的数量足够大或者试验的次数足够多 2 中心极限定理 设总体为 为总体的 N 个样本集 xff0c
  • 操作系统实践05—文件描述符和系统调用

    操作系统实践05 文件描述符和系统调用 文章目录 操作系统实践05 文件描述符和系统调用1 概念1 1 文件描述符1 2 系统调用1 3 例子 2 内核实现2 1 file结构体2 2 文件描述符表2 3 进程控制块2 4 私有的文件描述符
  • 医疗问答机器人项目部署

    医疗问答机器人项目部署 文章目录 医疗问答机器人项目部署1 拉取TensorFlow镜像2 配置系统环境2 1 更换软件源2 2 下载vim2 3 解决vim中文乱码问题2 4 安装Neo4J图数据库2 5 安装网络工具包 3 运行项目3
  • SimpleITK学习

    SimpleITK学习 文章目录 SimpleITK学习1 SimpleITK ReadImage path 2 SimpleITK GetArrayFromImage itk img 3 itk img GetOrigin 4 itk i
  • 【Docker】服务器部署项目

    服务器部署项目 文章目录 服务器部署项目1 远程连接服务器2 在Linux系统上安装Docker2 1 卸载旧版本2 2 使用 APT 安装2 3 安装Docker2 4 使用脚本自动安装2 5 启动Docker2 6 测试 Docker
  • 计算机网络04—网络层

    网络层 学习参考资料 xff1a 湖南科技大学 计算机网络谢希仁 计算机网络 xff08 第7版 xff09 文章目录 网络层1 概述1 1 IP协议及配套协议 2 两种服务2 1 面向连接的虚电路服务2 2 无连接的数据报服务2 3 对比
  • torch.nn学习

    torch nn学习 文章目录 torch nn学习1 卷积层1 1 Conv2d 2 池化层2 1 MaxPool2d2 2 MaxUnpool2d2 3 AvgPool2d 3 代码实践3 1 Inception Module3 2 R
  • 深度学习基础知识点【更新中】

    深度学习基础知识点 文章目录 深度学习基础知识点1 数据归一化2 数据集划分3 混淆矩阵4 模型文件5 权重矩阵初始化6 激活函数7 模型拟合8 卷积操作9 池化操作10 深度可分离卷积11 转置卷积 1 数据归一化 过大的输入数据未归一化
  • VS Code配置C/C++环境

    VS Code配置C C 43 43 环境 文章目录 VS Code配置C C 43 43 环境1 下载Visual Studio Code2 下载MinGW3 VS Code设置3 1 下载插件3 2 新建工作区3 3 C 43 43 环
  • 计算机网络05—运输层

    运输层 学习参考资料 xff1a 湖南科技大学 计算机网络谢希仁 计算机网络 xff08 第7版 xff09 文章目录 运输层1 概述1 1 两个主要协议1 2 端口 2 用户数据报协议UDP3 传输控制协议TCP3 1 概述3 2 可靠运
  • 【2022春招研发】字节笔试记录(测试方向)

    20220410字节笔试 测试方向 文章目录 20220410字节笔试 测试方向一 编程题2道 xff08 50分 xff09 二 单选题10道 xff08 20分 xff09 三 多选题10道 xff08 30分 xff09 一 编程题2
  • 浏览器主页被劫持篡改了怎么办

    就想下载个驱动 xff0c 结果一通操作把我的 Edge 浏览器主页篡改成了 桔梗网 xff0c 就下面这个网站 算了不喷它了 xff0c 来说说怎么改回去吧 其他浏览器的修改方式相同 找到 Microsoft Edge 浏览器的桌面快捷方

随机推荐

  • 【2022春实习】百度笔试记录(机器学习/数据挖掘/自然语言)

    20220412百度笔试 机器学习 数据挖掘 自然语言 文章目录 20220412百度笔试 机器学习 数据挖掘 自然语言一 选择题30道 xff08 60分 xff09 二 问答题1道 xff08 20分 xff09 三 系统设计题1道 x
  • 【算法工程师】华为技术面面试记录

    20220419华为技术面 面试岗位是算法工程师 文章目录 20220419华为技术面1 自我介绍 2 算法题3 专业知识3 1 数据结构3 2 计算机网络3 3 操作系统3 4 设计模式3 5 机器学习3 6 其他 4 提问环节 1 自我
  • 操作系统实践06—线程

    操作系统实践06 线程 文章目录 操作系统实践06 线程1 创建线程1 1 原型1 2 线程参数1 3 参数类型1 4 例子一1 5 例子二 2 等待线程2 1 原型2 2 线程返回值2 3 例子一2 4 例子二 3 线程互斥3 1 初始化
  • VS Code指定扩展安装位置

    VS Code指定扩展安装位置 默认情况下 xff0c Windows vscode的安装路径为C Users 用户名 vscode extensions 如果想要自定义扩展的安装路径 xff0c 无法直接在vscode中修改 但是 xff
  • Ubuntu 网络配置顺序:(Ubuntu 16.4)

    网络配置顺序 xff1a xff08 Ubuntu 16 4 xff09 1 xff0c 网卡硬件 xff08 硬件 vm DHCP用NAT直接到物理网 xff0c 静态用桥接通过本地网络链接转发 xff09 xff0c 2 xff0c 系
  • C语言实现汉诺塔问题

    目录 一 程序 1 实现代码 2 程序执行结果 二 背景 1 汉诺塔问题描述 2 直观理解 3 思考过程 三 函数执行过程 举例 n 61 2 四 总结 递归问题 一 程序 1 实现代码 include lt stdio h gt 函数名
  • ubuntu 系统下运行DQN Flappy bird

    github链接 xff1a xff08 两个项目均可运行成功 xff0c 推荐第二个 xff0c 只有200多行 xff0c 好入门 xff09 https github com songrotek DRL FlappyBird http
  • eclipse中如何查看程序源码

    在eclipse中如何查看程序源码 1 查看方法 xff0c 按下Ctrl键同时 xff0c 用鼠标指向自己想要查看源码的关键字 xff0c 该字会出现下划线 xff0c 单击左键 xff0c 就可以进入源码查看了 2 在此前 xff0c
  • 基于51单片机的智能窗帘proteus仿真数码管显示

    硬件设计 该硬件设计是基于51单片机为MCU xff0c ADC采用ADC0804 xff0c 电机驱动芯片是L298 xff0c 显示部分采用的是4位数码管 ADC0804芯片的简介 xff1a 工作电压 xff1a 43 5V xff0
  • Mac VSCode 配置Gitee |使用Sourcetree关联Gitee仓库

    目录 一 使用Git的基本操作 xff08 如果只是想看如何上传到gitee的直接跳过这个 xff09 xff1a 1 安装插件GitLens 2 初始化 3 git文件 4 创建一个示例文件 5 操作日志 6 操作日志查看 7 版本回退
  • 马尔可夫链 以及 隐马尔可夫模型(HMM)

    背景 xff1a 马尔可夫过程 xff08 Markov process xff09 是一类随机过程 它的原始模型马尔科夫链 xff0c 由俄国数学家A A Markov于1907年提出 马尔可夫过程是研究离散时间动态系统状态空间的重要方法
  • AIOps探索:基于VAE模型的周期性KPI异常检测方法——VAE异常检测

    AIOps探索 xff1a 基于VAE模型的周期性KPI异常检测方法 VAE异常检测 参考文章 xff1a xff08 1 xff09 AIOps探索 xff1a 基于VAE模型的周期性KPI异常检测方法 VAE异常检测 xff08 2 x
  • 51单片机系列--蜂鸣器

    工作原理 蜂鸣器发声原理是电流通过电磁线圈 xff0c 使电磁线圈产生磁场来驱动振动膜发声的 xff0c 因此需要一定的电流才能驱动它 51单片机IO口输出的TTl电流无法驱动蜂鸣器 xff0c 故而蜂鸣器内部需要一个三极管来进行电流放大
  • debian9.8安装网卡驱动

    一 挂载本地镜像源 xff08 参考下面博客 xff09 debian9 8添加iso为本地源 weixin 46027366的博客 CSDN博客 二 配置安装所需环境 1 xff09 安装gcc和cmake xff0c 命令行输入如下命令
  • 浮点型数据的输入和输出(C语言)

    目录 1 浮点型数据的输入 1 1 单精度输入 1 2 双精度和长双精度 2 浮点型数据的输出 2 1 浮点数的默认输出 2 2 指定输出格式 m n f 2 3 输出示例 3 案例 3 1 案例 1 浮点型数据的输入 1 1 单精度输入
  • 开学送给她的礼物(Python实现)

    目录 1 卿为朝朝暮暮 2 情感起伏 3 礼物赠送 4 Python之实现turtle 1 卿为朝朝暮暮 先手抄一遍 xff0c 然后再键盘敲出来 xff1a 飞鸟集中的一句话 xff0c 改编的一首诗是过样的 浮世万千 xff0c 吾爱有
  • 最详细matlab 2018a安装教程步骤.

    链接 xff1a https pan baidu com s 1XjfAKeFY otNy7HfGhYQCw 提取码 xff1a cmzv 来自百度网盘超级会员V3的分享 1 鼠标右击 Matlab R2018a Win64 压缩包 xff
  • 牵着她——表白不成功算我输(Python实现)

    目录 1 牵着她的手一直走下去 2 一首小情诗送给甜甜的她 3 历史总结的哲学想法 4 表白不成功算我输 xff08 Python代码 xff09 1 牵着她的手一直走下去 今天牵着她的手 xff0c 她很贴心 一起并肩赏樱花 x1f338
  • Python|十五个超级炫酷代码

    x1f96c x1f96c x1f96c 欢迎来到本博客 x1f60a x1f60a x1f60a 本次博客内容将分享几个超级炫酷的Python代码和前端 x1f4dd 目前更新 xff1a x1f31f x1f31f x1f31f 炫酷炫
  • 【无人机】四轴无人机的轨迹进行可视化和动画处理(Matlab代码实现)

    x1f4cb x1f4cb x1f4cb 本文目录如下 xff1a 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 随着传感器检测技术 智能控制技术和材料技术的快速发展 四轴无人机及其配套系统的发展越来越成熟