《DIY四轴飞行器》读书笔记1

内容整理于黄和悦的《DIY四轴飞行器》。


一、四轴飞行器概述

1、四轴飞行器的现状

(1)研究内容

  • 多级协作,自主飞行倾斜;
  • 最优控制理论,飞行器自主飞行和避障;
  • 主要是飞控部分。

(2)特点

  • 无刷电机(直流输入,三相电输出);
  • 惯性较小,运动状态极易改变,需要很高的控制频率。
  • 姿态检测和控制。


2、力学原理和控制框图

(1)力学原理

  • X模式,+模式。
  • 力的合成和分解,空气转动扭矩的反向性。
  • 相邻电机转动方向相反。

(2)坐标系

  • 机体坐标系,当四轴倾斜时,此坐标系和大地坐标系不再重合。
  • XYZ轴和各个旋转轴之间符合右手螺旋定则,XYZ坐标系上面的旋转方向命名为俯仰、横滚、偏航。用角度来表示。
  • 所谓四通道,即上下油门、左转右转、前后运动、左右运动。
  • 飞行器控制框图。


二、四轴飞行器的组成和各部分功能

1、结构框图


(1)遥控器和接收器

  • 接收器输出的是50Hz的PWM波,用占空比数值来表示遥控器摇杆的位置
  • 这些是由我们来控制,如果是视觉控制,自主导航类的四轴,目标姿态则又不同了。

(2)姿态检测单元

  • 陀螺仪:检测四轴绕着Pit,Rol,Yaw三个方向的旋转角速度的器件;
  • 加速度计:检测沿着XYZ三个轴的线性加速度的器件;
  • 磁强计:即电子罗盘,用于测定于地磁南北极的夹角,从而知道机体坐标系和大地坐标系的偏差。
  • 气压计:知道四轴周围的气压,从而知道绝对高度,起到稳定高度的作用。
  • 可见前三者各有三个轴向的数据采集,加上气压计采集的一个高度数据,包含以上单元的姿态检测单元称为10DOF,即10轴传感单元。

(3)处理器

  • 对姿态单元检测到的数据进行处理和计算,得到当前四轴的准确姿态;
  • 对预期姿态和当前的真实值进行对比,计算出误差,并输入到PID调节器,最终解算出四个电机的转速;
  • 而转速数据以四路PWM波的形式输送到电机驱动和电机中。

(4)调试器

  • 调试器将程序下载到处理器中;
  • 结合适当的PC程序,可以观测四轴算法计算出来的各种数据。

(5)电机驱动器和电机

  • 在较大四轴飞行器中,一般采用无刷电机,配合无刷电机驱动器(俗称电调),要求50Hz的PWM波,占空比为5%~10%。
  • 在微型四轴飞行器中,一般采用有刷电机,配合MOS管即可,无需按照电调的范围调节占空比、频率,而是可以自定义。

2、遥控器

(1)2.4G遥控器

  • 对码
  • 发射机通道和反向设计

(2)蓝牙/安卓遥控


3、电机和驱动

(1)无刷电机(属于外转子机)

(2)电压(将一节锂电池的3.7v称作1S)

(3)电调(MOS管配合单片机组成,将直流电转化为三相驱动电流)

(4)油门行程:当占空比变化1%时,电调控制电机转速对应多少变化。


4、机架

5、电池

(1)电池的C数(指的是最大放电倍率)

(2)电池的容量


6、飞控

接收遥控器信号

计算当前姿态,与预设姿态比较,输入PID调节器(这个是在处理器中?)

输出PWM(到电调?),用占空比控制电机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

脚本输出当前 “yyyy-MM-dd WeakDay Festval”

ylbtech-JavaScript: 脚本输出当前 “yyyy-MM-dd WeakDay Festval”脚本输出当前 “yyyy-MM-dd WeakDay Festval” 1.A,源代码(Source Code)-脚本输出当前 “yyyy-MM-dd WeakDay Festval”返回顶部 <SCRIPT languagejavascript> <!--calendar new Date();day cal…

SecureCRT密钥远程登录Linux

一&#xff1a;环境SecureCRT版本&#xff1a;SecureCRT_5.1.3linux版本&#xff1a;[rootangelT ~]# cat /etc/redhat-release CentOS release 6.4 (Final)[rootangelT ~]# uname -r2.6.32-358.el6.x86_64linux系统的sshd_config配置文件是默认的&#xff0c;没有任何的修改。…

源码安装mysql数据库_Linux下源码安装mysql数据库

1、 创建mysql安装目录&#xff1a;[rootlocalhost ~]#mkdir –pv /usr/local/mysql/2、 创建数据存放目录&#xff1a;[rootlocalhost ~]#mkdir –pv /data/mysql/3、 创建用户和用户组&#xff0c;并赋予数据存放目录权限&#xff1a;[rootlocalhost ~]#groupadd mysql[ro…

win10禁止数字签名

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 1、点击通知&#xff0c;找到并进入“所有设置”。 2、在所有设置中找到并进入“更新和安全”。 3、找到恢复&#xff0c;点击“高级启动”下的“立即重启”&#xff0c;重启电脑。 4、重启后选择“疑难解…

信息采集-火车采集器

最近一位同事提出要采集alibaba上的公司信息&#xff0c;关键词是工业加湿器。 主管把任务分配给我后&#xff0c;推荐了一款软件&#xff0c;火车采集器&#xff08;真心不是做广告&#xff09;。 研究了两天&#xff0c;还算简单&#xff0c;除了正则表达式似懂非懂&#xff…

在Linux系统安装Nginx及配置https加密访问

2019独角兽企业重金招聘Python工程师标准>>> 1、安装nginx ①、为了确保能在 nginx 中使用正则表达式进行更灵活的配置&#xff0c;安装之前需要确定系统是否安装有 PCRE&#xff08;Perl Compatible Regular Expressions&#xff09;包。您可以到 ftp://ftp.csx.c…

mysql cstmt_MySQL

创建一个以JDBC连接数据库的程序&#xff0c;包含7个步骤&#xff1a;1、加载JDBC驱动程序&#xff1a;在连接数据库之前&#xff0c;首先要加载想要连接的数据库的驱动到JVM(Java虚拟机)&#xff0c;这通过java.lang.Class类的静态方法forName(String className)实现。例如&am…

mkv210_image.c文件详解(为BL1添加校验头)

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、mkv210_image.c的使用演示 裸机程序中的Makefile是把程序的编译和链接过程分开的。实际上真正的项目的Makefile也是这样的&#xff0c;只是平时我们用gcc a.c -o exe这种方式编译时&#xff0c;把…

和菜鸟一起学linux之bluez学习记录2

这里主要摘取对于hci&#xff0c;l2cap&#xff0c;sdp和rfcomm的一些应用编程。 关于hci 一、HCI层协议概述 1、HCI Command Packets 详见bluez源码&#xff1a;lib/hci.h /* Link Control */ #define OGF_LINK_CTL 0x01 #define OCF_INQUIRY 0x0001 #define OCF_…

AppDelegate.h

2019独角兽企业重金招聘Python工程师标准>>> #ifndef __APP_DELEGATE_H__ #define __APP_DELEGATE_H__#include "CCApplication.h" //CCApplication.h能根据平台打开对应的平台头文件 /** brief The cocos2d Application.The reason for implement as …

wamp替换mysql_将wamp集成的mysql替换成安装版的

替换原因&#xff1a;wamp集成的mysql错误提示乱码。修改文件&#xff1a;路径C:\wamp下的wampmanager.conf&#xff0c;wampmanager.ini&#xff0c;uninstall_services.bat路径C:\wamp\bin\mysql\mysql5.6.17下的wampserver.conf步骤&#xff1a;1.安装wamp和mysql&#xff0…

关于uboot的简介——uboot的一些常识介绍

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、uboot的由来 1、uboot从哪里来的&#xff1f; uboot是SourceForge上的开源项目。uboot项目的作者&#xff1a;一个德国人最早发起的项目。uboot就是由一个人发起&#xff0c;然后由整个网络上所…

有目标

生活就是每一天都有一个目标&#xff0c;不管大或者小&#xff0c;只要很好的完成了&#xff0c;都会觉得很有成就感&#xff01;转载于:https://www.cnblogs.com/jackychua/archive/2013/04/01/2994434.html

虚拟机上网以及互ping问题

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 虚拟机设置静态IP和上网问题 &#xff08;1&#xff09;在“虚拟机——设置——网络适配器”中选择桥接模式&#xff1b; &#xff08;2&#xff09;在“编辑——虚拟网络编辑器”中&#xff0c;选择桥接到有…

php定时执行原理

即使关掉浏览器也能继续执行 ignore_user_abort(); //即使Client断开(如关掉浏览器)&#xff0c;PHP脚本也可以继续执行. set_time_limit(0); // 执行时间为无限制&#xff0c;php默认的执行时间是30秒&#xff0c;通过set_time_limit(0)可以让程序无限制的执行下去 转载于:htt…

php递归无限极分类

递归无限级分类有几种形式&#xff0c;我这里仅仅举例比較经常使用的三种&#xff1a; 第一种&#xff1a;返回有排序的数组&#xff1a; <?php$data array(1 > array(id > 1,pid > 0,user_name > one,),2 > array(id > 2,pid > 1,user_name > tw…

qt 飞扬青云_R语言学习——实例标识符

> patientID> age> diabetes> status> patientdata> #在上述创建的病例数据框中&#xff0c;病人编号(patientID)用于区分数据中的不同个体&#xff0c;在R中实例标识符(case identifier)可以通过数据框操作函数中的rowname选项指定&#xff0c;如下代码&…

Makefile中的赋值符号:=、:=、?=、+=

参考博客&#xff1a; Makefile赋值符号的使用——"" ":" "?" ""_秦伟H的博客-CSDN博客 1、“”&#xff0c;是最基本的赋值 make将整个Makefile展开后再决定变量的值&#xff0c;变量的值等于Makefile中最后给这个变量所指定的值&am…

fck java_FCkjava三种调用方法

测试FCK方法一:toolbarSet "Default" >默认内容测试方法二:FCKeditor oFCKeditor ;oFCKeditor new FCKeditor(request,"content") ;oFCKeditor.setBasePath( "/db/fckeditor/" ) ;oFCKeditor.setWidth("600");oFCKeditor.setHeig…

Spring 容器(Spring 的上下文)

为什么80%的码农都做不了架构师&#xff1f;>>> 最近在做项目时牵扯到有关父子上下文的概念。 何为父子上下文呢&#xff1f; 父上下文&#xff1a; 使用listener监听器来加载配置文件&#xff0c;如下&#xff1a; <listener> <listener-class>org.…