多旋翼无人飞行器嵌入式飞控开发指南

副标题:无

作   者:林庆峰

分类号:

ISBN:9787302472568

微信扫一扫,移动浏览光盘

简介


随着集成电路、微控制器以及微机电技术的发展,多旋翼无人飞行器的控制技术得到了蓬勃的发展。随着大疆、派诺特、3DR等国内外一系列无人机公司推出针对普通大众的消费级无人机产品,无人机作为一个普通消费应用也得到了大众的认可和接受,越来越多的工程技术人员将多旋翼无人飞行器作为一个经典的控制系统来进行学习和研究。本书主要围绕多旋翼无人机的飞控系统设计,从嵌入式的基础知识开始,深入浅出地介绍了无人机的基本知识和硬件构成,重点介绍了无人机的飞控系统原理、基础和开发流程,针对飞行器系统的状态解算介绍了几种不同的解算方法,并给出相应的实际代码例程。本书从各方面对无人机系统的设计进行阐述,并提供了*前沿的知识和信息,既有初学者希望了解的基础知识,也有行业研究者所希望深入了解的算法分析,以及室内定位SLAM原理等。除了正文部分,本书还提供了丰富的附录,包括四旋翼无人机的组装、无刷电机与电调的相关知识、无人机实验室的相关研发调试设备,以及业界流行的开源飞控的相关知识,甚至包括无人机的相关应用,让读者能够更全面地熟悉和了解整个无人机行业的生态系统。本书特别适合作为高等院校自动化、计算机、电子工程等相关专业“多旋翼无人飞行器设计”课程的教材,也可供从事嵌入式系统开发与应用的工程技术人员参考。
【目录】

目录

第1章多旋翼无人机基础知识
1.1无人机的介绍
1.2无人机的分类与管理
1.3无人机与航空模型的区别
1.4多旋翼无人机的发展历史
1.5多旋翼无人机的组成
1.5.1机架系统
1.5.2动力系统
1.5.3动力电源与充电系统
1.5.4电子调速器
1.5.5飞行控制系统
1.5.6遥控器和遥控接收机
1.5.7遥测链路数传系统
1.5.8光流定位系统
1.5.9全球卫星导航系统
1.5.10高度计
1.5.11导航系统
1.5.12无线图传系统
1.5.13地面站控制系统
1.5.14任务载荷云台和摄像头
1.5.15避障系统
1.5.16虚拟现实和增强现实系统
1.6多旋翼飞行器的结构和飞行原理
1.6.1多旋翼飞行器的机身布局
1.6.2多旋翼飞行器的旋翼结构
1.6.3多旋翼飞行器的飞行原理
1.6.4多旋翼的优缺点
1.7开源飞控简介
第2章飞行控制系统核心硬件
2.1ARM Cortex?M4架构
2.1.1ARM内核
2.1.2Cortex?M4内核
2.1.3以ARM Cortex?M4为核心的微控制器
2.2STM32F4系列微控制器
2.3飞行控制系统硬件架构设计与原理
2.3.1遥控接收机接口
2.3.2电调输出接口
2.3.3传感器接口
2.3.4GNSS接口
2.3.5SWD调试口
2.3.6超声波接口
2.3.7系统供电
2.3.8遥测数传
2.3.9其他功能和扩展接口
2.4“光标”飞控PCB的布局设计
2.5飞控系统硬件设计注意事项
第3章嵌入式实时操作系统和FreeRTOS
3.1实时操作系统简介
3.1.1实时操作系统的定义
3.1.2实时操作系统的特征
3.2实时操作系统在飞控系统中的重要性
3.3FreeRTOS实时操作系统
3.3.1FreeRTOS简介
3.3.2FreeRTOS的特点
3.3.3FreeRTOS架构概述
3.4调度策略
3.4.1FreeRTOS支持的调度方式
3.4.2调度器简介
3.4.3抢占式调度器
3.4.4时间片调度器
3.5任务及任务优先级
3.5.1任务和协程(Co?routines)
3.5.2任务状态
3.5.3任务优先级
3.5.4任务优先级分配方案
3.6任务间通信——信号量
3.6.1信号量的概念及其作用
3.6.2FreeRTOS任务间计数信号量的实现
3.6.3FreeRTOS中断方式计数信号量的实现
3.6.4计数信号量API函数
3.7任务间通信—消息队列
3.7.1消息队列的概念及其作用
3.7.2FreeRTOS任务间消息队列的实现
3.7.3FreeRTOS中断方式消息队列的实现
3.7.4消息队列API函数
3.8任务间通信——互斥信号量
3.8.1互斥信号量的概念及其作用
3.8.2优先级翻转问题
3.8.3FreeRTOS互斥信号量的实现
3.8.4互斥信号量API函数
3.9飞控系统的任务规划与5环控制
第4章飞行控制系统的定时器
4.1STM32F407的系统时钟配置
4.1.1STM32F4的系统时钟树
4.1.2STM32F4的系统时钟初始化
4.1.3STM32F4的系统时钟使能和配置
4.2ST微控制器的定时器模块
4.2.1高级控制定时器(Advanced?control Timers)
4.2.2通用定时器(General?purpose Timers)
4.2.3基本定时器(Basic Timers)
4.3任务调度定时器
4.4遥控器PWM编码和定时器输入捕获
4.5电子调试器的输出控制PWM和定时器输出比较模式
第5章飞控系统的传感器
5.1飞控系统的传感器
5.2ST微控制器的I2C驱动
5.2.1I2C简介
5.2.2I2C驱动在STM32中的硬件实现
5.2.3I2C驱动在STM32中的软件实现
5.3加速度计的原理和测量信息
5.3.1加速度计的原理
5.3.2加速度计的测量信息
5.4加速度计原始数据采集、校准和滤波
5.4.1加速度计原始数据采集
5.4.2加速度计校准
5.5陀螺仪的原理和测量信息
5.5.1陀螺仪的原理
5.5.2陀螺仪的测量信息
5.6陀螺仪的原始数据采集、校准和滤波
5.6.1陀螺仪原始数据采集
5.6.2陀螺仪校准
5.6.3加速度计与陀螺仪的滤波
5.7磁力计的工作原理和测量信息
5.7.1磁力计的原理
5.7.2磁力计的测量信息
5.8磁力计的原始数据采集、校准和滤波
5.8.1磁力计原始数据采集
5.8.2磁力计校准
5.8.3磁力计的滤波
5.9超声波传感器简介
5.9.1超声波传感器原理
5.9.2超声波传感器简介
5.10超声波传感器的数据采集驱动和滤波
5.10.1超声波传感器数据采集驱动
5.10.2超声波传感器的滤波
5.11气压传感器简介
5.12气压传感器的数据采集驱动
5.13激光测距测高传感器
5.14视觉传感器
5.14.1光流
5.14.2视觉里程计
第6章状态估计
6.1组合导航
6.2飞行器的坐标系
6.3方向余弦矩阵和欧拉角
6.3.1方向余弦矩阵
6.3.2姿态与欧拉角
6.3.3欧拉角的定轴转动表示矩阵
6.4四元数
6.4.1四元数的定义
6.4.2四元数与旋转的关系
6.5四元数的姿态估计
6.6卡尔曼滤波
6.7扩展卡尔曼滤波
6.8几种算法的总结比较
第7章线性控制系统PID控制算法
7.1控制理论与PID线性控制系统原理
7.1.1比例控制
7.1.2积分控制
7.1.3微分控制
7.2飞控算法PID框架设计
7.3飞控算法外环PID实现
7.4飞控算法内环PID实现
7.5信号滤波
7.5.1移动平滑滤波
7.5.2FIR滤波
7.5.3IIR滤波
7.6PID参数的调试
7.6.1飞控的PID参数
7.6.2调试步骤
第8章油门和高度控制
8.1油门输入曲线
8.2油门解锁功能
8.3油门权重分配和电调输出
8.4高度控制
第9章自主导航系统
9.1自主导航概述
9.2室内定位
9.2.1室内定位技术
9.2.2视觉导航
9.2.3SLAM简介
9.2.4视觉SLAM闭环检测与后端优化
9.3室外GPS定位和NEMA实现
9.3.1GPS定位系统的基本工作原理
9.3.2单点定位
9.3.3相对定位
9.3.4差分定位
9.3.5GPS标准协议NEMA
9.4航路规划
9.4.1航线规划
9.4.2轨迹规划
9.5SINS/GPS组合导航的模型和算法
9.5.1SINS和GPS接收机的误差模型
9.5.2SINS/GPS松组合的状态方程和量测方程
9.5.3SINS/GPS紧组合的状态方程和量测方程
9.5.4方程离散化和卡尔曼滤波
9.6避障系统
9.6.1避障使用的传感器
9.6.2避障算法
9.6.3避障过程中存在的问题
第10章遥测数传通信链路
10.1通用数传模块分类及其性能
10.1.1无人机数传模块简介
10.1.2调制方式的划分
10.1.3传输距离及其影响因素
10.2ST微控制器的串口通信和数传模块硬件接口
10.2.1ST微控制器的串口通信
10.2.2数传模块的硬件接口
10.3简单通信信源编码协议及其实现
10.3.1信源编码
10.3.2串口通信协议
10.4MAVLink协议实现
10.4.1MAVLink协议简介
10.4.2MAVLink数据包结构
10.4.3MAVLink消息帧讲解
10.4.4MAVLink消息帧发送与解析
10.5地面站数据接收与数据解析
10.5.1PC端地面站数据采集与存储
10.5.2Android地面站数据接收
10.5.3Android地面站数据存储与分析
第11章其他辅助功能
11.1参数存储、在线更新与加载
11.2调试LED
11.3失控保护功能
11.4手机WiFi控制
11.5手机蓝牙控制
11.6*人称视角FPV控制
11.6.1FPV的定义
11.6.2FPV的设备组成
11.6.3FPV眼镜与VR眼镜的区别
11.7无人机应用领域
11.7.1拍照摄影
11.7.2植保无人机
11.7.3电力巡检
11.7.4环保领域的应用
第12章基于STM32F4的基础程序开发
12.1处理器STM32F4简介
12.1.1系统总线
12.1.2系统接口
12.2开发环境简介
12.2.1软件安装
12.2.2工程创建
12.2.3软件介绍
12.2.4程序调试
12.3STM32固件库
12.3.1固件库介绍
12.3.2固件库移植
12.4LED显示
12.4.1硬件设计
12.4.2软件设计
12.4.3实验现象
12.5USART串口的使用
12.5.1硬件设计
12.5.2软件设计
12.5.3实验现象
12.6ADC模数转换器
12.6.1软件设计
12.6.2实验现象
12.7定时器中断
12.7.1定时器中断的原理
12.7.2软件设计
12.7.3实验现象
12.8FreeRTOS实时操作系统简介
12.8.1FreeRTOS基础应用
12.8.2FreeRTOS实例
12.8.3实验现象
12.9FreeRTOS操作EEPROM
12.9.1程序设计
12.9.2实验现象
12.10FreeRTOS操作MPU6050
12.10.1软件设计
12.10.2实验现象
12.11FreeRTOS操作磁力计
12.11.1软件设计
12.11.2实验现象
12.12FreeRTOS操作气压计
12.12.1软件设计
12.12.2实验现象
附录AF450四旋翼飞行器DIY组装流程
A.1材料清单
A.2焊接电机
A.3机架的安装
A.4飞控模块安装
A.5电调行程校准
A.6电调、遥控接收机、数传模块与飞控的连接
A.7遥控操作说明
A.8图传系统连接
附录B无刷电机与电子调速器介绍
B.1无刷直流电机
B.2电子调速器换相的相关知识
B.3电调启动频率
附录C无人机实验室研发调试设备
C.1FH550四旋翼无人机研发系统
C.2应用级无人机系统
C.3高级航拍数字图传系统
C.4便携式地面测控站系统
C.5高级飞行器3自由度姿态算法验证系统
C.6高级飞行器动力系统扭矩测量系统
C.7高级飞行器动力系统拉力测量系统
C.8微机电传感器测量校准平台
C.9工业级数据处理中心
附录D电子罗盘椭球校准算法代码实例
参考文献



【免费在线读】
第3章CHAPTER 3嵌入式实时操作系统和FreeRTOS
3.1实时操作系统简介3.1.1实时操作系统的定义
实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受该事件或数据并以足够快的速度予以处理,其处理的结果又能在规定的时间之内控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。实时操作系统是保证在一定时间限制内完成特定功能的操作系统。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的; 软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。3.1.2实时操作系统的特征1. 高精度计时
系统计时精度是影响实时性的一个重要因素。在实时应用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确地计算一个时间函数,这不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。2. 多级中断机制一个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分,有的必须立即作出反应,有的则可以延后处理,因此需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的事件及时进行响应和处理。3. 实时调度机制实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。但是,处理机调度并不能随心所欲地进行,因为涉及两个进程之间的切换,只能在确保“安全切换”的时间点上进行。实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务; 二是建立更多“安全切换”时间点,保证及时调度实时任务。实时操作系统的特点: ①异步的事件响应; ②切换时间和中断延迟时间确定; ③优先级中断和调度; ④抢占式调度。3.2实时操作系统在飞控系统中的重要性飞行控制系统是无人机的重要组成部分,是飞行控制算法的运行平台,其性能好坏直接关系着无人机能否安全可靠地飞行。随着航空技术的发展,无人机飞行控制系统正向着多功能、高精度、小型化和可复用的方向发展。高精度要求无人机控制系统的精度高,稳定性好,能够适应复杂的外界环境,因此控制算法比较复杂,计算速度快,精度高; 小型化则对控制系统的重量和体积提出了更高的要求,要求控制系统的性能越高越好,体积越小越好。此外,无人机飞行控制系统还要具有实时、可靠、低成本和低功耗的特点。近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制和交通控制等各个领域得到了广泛的应用。并且,实时操作系统将实时多任务机制以功能(函数)调用的方式提供给用户,它的系统调用是标准化、规格化的,这使得开发人员不必再考虑多个实时任务的同步问题,从而将更多的精力致力于应用程序的开发。3.3FreeRTOS实时操作系统3.3.1FreeRTOS简介
FreeRTOS是一款由Real Time Engineers Ltd出品的市场领先的RTOS,如图3?1所示,现在已经支持35种处理器

图3?1FreeRTOS Logo

架构。2015年,FreeRTOS的下载量超过12万次,平均每4.2分钟就有一次下载,而且商业使用不需要用户公开源代码,也不存在任何版权问题,开源免费。FreeRTOS(读作"free?arr?toss")是一个嵌入式系统使用的开源实时操作系统。FreeRTOS设计小巧、简单和易用,能支持许多不同硬件架构以及交叉编译器。就像所有操作系统一样,FreeRTOS的主要工作是执行任务,大部分FreeRTOS的代码都涉及优先权、调度以及执行用户自定义任务; 但又与所有其他操作系统不同,FreeRTOS是一款运行在嵌入式系统上的实时操作系统。3.3.2FreeRTOS的特点FreeRTOS的主要特点如下: (1) 支持抢占式调度、合作式调度和时间片调度。(2) SafeRTOS作为FreeRTOS的衍生品大大提高了FreeRTOS在代码完整性方面的能力。(3) 用于低功耗的Tickless模式。(4) 支持35种系统架构。(5) FreeRTOS?MPU支持M3/M4/M7内核的MPU(内存保护单元)。(6) 设计简单易用,典型的内核使用大小范围为4~9K。(7) 移植非常简单,主要用C语言编写。(8) 同时支持合作式和抢占式任务。(9) 支持消息队列、二值信号量、计数信号量、递归信号量和互斥信号量,可用于任务与任务间的消息传递和同步,以及任务与中断间的消息传递和同步。(10) 支持优先级继承方式的互斥信号量。(11) 拥有高效的软件定时器。(12) 拥有强大的跟踪执行函数。(13) 拥有堆栈溢出检查。(14) 提供丰富的、配置完整的工程例子。(15) 提供论坛技术支持,有可选的商业支持和许可版本。(16) 任务的数量不限。(17) 任务优先级数量不限。(18) 多个任务可以分配相同优先级,即支持时间片调度。(19) 具有免费的开发工具。(20) 具有免费的嵌入式软件源码。(21) 免版权费。3.3.3FreeRTOS架构概述FreeRTOS是一个相对较小的应用程序。*小化的FreeRTOS内核仅包括3个(.c)文件和少数头文件,共不到9000行代码,还包括了注释和空行。一个典型的编译后(二进制)代码映像小于10KB。FreeRTOS的代码可以分解为三个主要区块: 任务、通信和硬件接口。1) 任务大约有一半的FreeRTOS的核心代码用来处理多数操作系统首要关注的问题,即任务。任务是给定优先级的用户定义的C函数。task.c和task.h完成了所有有关创建、调度和维护任务的繁重工作。2) 通信任务很重要,不过任务间的互相通信更为重要!大约40%的FreeRTOS核心代码是用来处理通信的,queue.c和queue.h就是负责处理FreeRTOS的通信的。任务和中断使用队列互相发送数据,并且使用信号灯和互斥来发送临界资源的使用情况。3) 硬件接口接近9000行的代码拼凑起基本的FreeRTOS,是硬件无关的,不论FreeRTOS是运行在不起眼的8051,还是*、*炫的ARM内核上。大约有6%的FreeRTOS的核心代码,在硬件无关的FreeRTOS内核与硬件相关的代码间扮演着垫片的角色。表3?1为FreeRTOS的软件层。

目录



目录

第1章多旋翼无人机基础知识
1.1无人机的介绍
1.2无人机的分类与管理
1.3无人机与航空模型的区别
1.4多旋翼无人机的发展历史
1.5多旋翼无人机的组成
1.5.1机架系统
1.5.2动力系统
1.5.3动力电源与充电系统
1.5.4电子调速器
1.5.5飞行控制系统
1.5.6遥控器和遥控接收机
1.5.7遥测链路数传系统
1.5.8光流定位系统
1.5.9全球卫星导航系统
1.5.10高度计
1.5.11导航系统
1.5.12无线图传系统
1.5.13地面站控制系统
1.5.14任务载荷云台和摄像头
1.5.15避障系统
1.5.16虚拟现实和增强现实系统
1.6多旋翼飞行器的结构和飞行原理
1.6.1多旋翼飞行器的机身布局
1.6.2多旋翼飞行器的旋翼结构
1.6.3多旋翼飞行器的飞行原理
1.6.4多旋翼的优缺点
1.7开源飞控简介
第2章飞行控制系统核心硬件
2.1ARM Cortex?M4架构
2.1.1ARM内核
2.1.2Cortex?M4内核
2.1.3以ARM Cortex?M4为核心的微控制器
2.2STM32F4系列微控制器
2.3飞行控制系统硬件架构设计与原理
2.3.1遥控接收机接口
2.3.2电调输出接口
2.3.3传感器接口
2.3.4GNSS接口
2.3.5SWD调试口
2.3.6超声波接口
2.3.7系统供电
2.3.8遥测数传
2.3.9其他功能和扩展接口
2.4“光标”飞控PCB的布局设计
2.5飞控系统硬件设计注意事项
第3章嵌入式实时操作系统和FreeRTOS
3.1实时操作系统简介
3.1.1实时操作系统的定义
3.1.2实时操作系统的特征
3.2实时操作系统在飞控系统中的重要性
3.3FreeRTOS实时操作系统
3.3.1FreeRTOS简介
3.3.2FreeRTOS的特点
3.3.3FreeRTOS架构概述
3.4调度策略
3.4.1FreeRTOS支持的调度方式
3.4.2调度器简介
3.4.3抢占式调度器
3.4.4时间片调度器
3.5任务及任务优先级
3.5.1任务和协程(Co?routines)
3.5.2任务状态
3.5.3任务优先级
3.5.4任务优先级分配方案
3.6任务间通信——信号量
3.6.1信号量的概念及其作用
3.6.2FreeRTOS任务间计数信号量的实现
3.6.3FreeRTOS中断方式计数信号量的实现
3.6.4计数信号量API函数
3.7任务间通信—消息队列
3.7.1消息队列的概念及其作用
3.7.2FreeRTOS任务间消息队列的实现
3.7.3FreeRTOS中断方式消息队列的实现
3.7.4消息队列API函数
3.8任务间通信——互斥信号量
3.8.1互斥信号量的概念及其作用
3.8.2优先级翻转问题
3.8.3FreeRTOS互斥信号量的实现
3.8.4互斥信号量API函数
3.9飞控系统的任务规划与5环控制
第4章飞行控制系统的定时器
4.1STM32F407的系统时钟配置
4.1.1STM32F4的系统时钟树
4.1.2STM32F4的系统时钟初始化
4.1.3STM32F4的系统时钟使能和配置
4.2ST微控制器的定时器模块
4.2.1高级控制定时器(Advanced?control Timers)
4.2.2通用定时器(General?purpose Timers)
4.2.3基本定时器(Basic Timers)
4.3任务调度定时器
4.4遥控器PWM编码和定时器输入捕获
4.5电子调试器的输出控制PWM和定时器输出比较模式
第5章飞控系统的传感器
5.1飞控系统的传感器
5.2ST微控制器的I2C驱动
5.2.1I2C简介
5.2.2I2C驱动在STM32中的硬件实现
5.2.3I2C驱动在STM32中的软件实现
5.3加速度计的原理和测量信息
5.3.1加速度计的原理
5.3.2加速度计的测量信息
5.4加速度计原始数据采集、校准和滤波
5.4.1加速度计原始数据采集
5.4.2加速度计校准
5.5陀螺仪的原理和测量信息
5.5.1陀螺仪的原理
5.5.2陀螺仪的测量信息
5.6陀螺仪的原始数据采集、校准和滤波
5.6.1陀螺仪原始数据采集
5.6.2陀螺仪校准
5.6.3加速度计与陀螺仪的滤波
5.7磁力计的工作原理和测量信息
5.7.1磁力计的原理
5.7.2磁力计的测量信息
5.8磁力计的原始数据采集、校准和滤波
5.8.1磁力计原始数据采集
5.8.2磁力计校准
5.8.3磁力计的滤波
5.9超声波传感器简介
5.9.1超声波传感器原理
5.9.2超声波传感器简介
5.10超声波传感器的数据采集驱动和滤波
5.10.1超声波传感器数据采集驱动
5.10.2超声波传感器的滤波
5.11气压传感器简介
5.12气压传感器的数据采集驱动
5.13激光测距测高传感器
5.14视觉传感器
5.14.1光流
5.14.2视觉里程计
第6章状态估计
6.1组合导航
6.2飞行器的坐标系
6.3方向余弦矩阵和欧拉角
6.3.1方向余弦矩阵
6.3.2姿态与欧拉角
6.3.3欧拉角的定轴转动表示矩阵
6.4四元数
6.4.1四元数的定义
6.4.2四元数与旋转的关系
6.5四元数的姿态估计
6.6卡尔曼滤波
6.7扩展卡尔曼滤波
6.8几种算法的总结比较
第7章线性控制系统PID控制算法
7.1控制理论与PID线性控制系统原理
7.1.1比例控制
7.1.2积分控制
7.1.3微分控制
7.2飞控算法PID框架设计
7.3飞控算法外环PID实现
7.4飞控算法内环PID实现
7.5信号滤波
7.5.1移动平滑滤波
7.5.2FIR滤波
7.5.3IIR滤波
7.6PID参数的调试
7.6.1飞控的PID参数
7.6.2调试步骤
第8章油门和高度控制
8.1油门输入曲线
8.2油门解锁功能
8.3油门权重分配和电调输出
8.4高度控制
第9章自主导航系统
9.1自主导航概述
9.2室内定位
9.2.1室内定位技术
9.2.2视觉导航
9.2.3SLAM简介
9.2.4视觉SLAM闭环检测与后端优化
9.3室外GPS定位和NEMA实现
9.3.1GPS定位系统的基本工作原理
9.3.2单点定位
9.3.3相对定位
9.3.4差分定位
9.3.5GPS标准协议NEMA
9.4航路规划
9.4.1航线规划
9.4.2轨迹规划
9.5SINS/GPS组合导航的模型和算法
9.5.1SINS和GPS接收机的误差模型
9.5.2SINS/GPS松组合的状态方程和量测方程
9.5.3SINS/GPS紧组合的状态方程和量测方程
9.5.4方程离散化和卡尔曼滤波
9.6避障系统
9.6.1避障使用的传感器
9.6.2避障算法
9.6.3避障过程中存在的问题
第10章遥测数传通信链路
10.1通用数传模块分类及其性能
10.1.1无人机数传模块简介
10.1.2调制方式的划分
10.1.3传输距离及其影响因素
10.2ST微控制器的串口通信和数传模块硬件接口
10.2.1ST微控制器的串口通信
10.2.2数传模块的硬件接口
10.3简单通信信源编码协议及其实现
10.3.1信源编码
10.3.2串口通信协议
10.4MAVLink协议实现
10.4.1MAVLink协议简介
10.4.2MAVLink数据包结构
10.4.3MAVLink消息帧讲解
10.4.4MAVLink消息帧发送与解析
10.5地面站数据接收与数据解析
10.5.1PC端地面站数据采集与存储
10.5.2Android地面站数据接收
10.5.3Android地面站数据存储与分析
第11章其他辅助功能
11.1参数存储、在线更新与加载
11.2调试LED
11.3失控保护功能
11.4手机WiFi控制
11.5手机蓝牙控制
11.6*人称视角FPV控制
11.6.1FPV的定义
11.6.2FPV的设备组成
11.6.3FPV眼镜与VR眼镜的区别
11.7无人机应用领域
11.7.1拍照摄影
11.7.2植保无人机
11.7.3电力巡检
11.7.4环保领域的应用
第12章基于STM32F4的基础程序开发
12.1处理器STM32F4简介
12.1.1系统总线
12.1.2系统接口
12.2开发环境简介
12.2.1软件安装
12.2.2工程创建
12.2.3软件介绍
12.2.4程序调试
12.3STM32固件库
12.3.1固件库介绍
12.3.2固件库移植
12.4LED显示
12.4.1硬件设计
12.4.2软件设计
12.4.3实验现象
12.5USART串口的使用
12.5.1硬件设计
12.5.2软件设计
12.5.3实验现象
12.6ADC模数转换器
12.6.1软件设计
12.6.2实验现象
12.7定时器中断
12.7.1定时器中断的原理
12.7.2软件设计
12.7.3实验现象
12.8FreeRTOS实时操作系统简介
12.8.1FreeRTOS基础应用
12.8.2FreeRTOS实例
12.8.3实验现象
12.9FreeRTOS操作EEPROM
12.9.1程序设计
12.9.2实验现象
12.10FreeRTOS操作MPU6050
12.10.1软件设计
12.10.2实验现象
12.11FreeRTOS操作磁力计
12.11.1软件设计
12.11.2实验现象
12.12FreeRTOS操作气压计
12.12.1软件设计
12.12.2实验现象
附录AF450四旋翼飞行器DIY组装流程
A.1材料清单
A.2焊接电机
A.3机架的安装
A.4飞控模块安装
A.5电调行程校准
A.6电调、遥控接收机、数传模块与飞控的连接
A.7遥控操作说明
A.8图传系统连接
附录B无刷电机与电子调速器介绍
B.1无刷直流电机
B.2电子调速器换相的相关知识
B.3电调启动频率
附录C无人机实验室研发调试设备
C.1FH550四旋翼无人机研发系统
C.2应用级无人机系统
C.3高级航拍数字图传系统
C.4便携式地面测控站系统
C.5高级飞行器3自由度姿态算法验证系统
C.6高级飞行器动力系统扭矩测量系统
C.7高级飞行器动力系统拉力测量系统
C.8微机电传感器测量校准平台
C.9工业级数据处理中心
附录D电子罗盘椭球校准算法代码实例
参考文献



【免费在线读】
第3章CHAPTER 3嵌入式实时操作系统和FreeRTOS
3.1实时操作系统简介3.1.1实时操作系统的定义
实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受该事件或数据并以足够快的速度予以处理,其处理的结果又能在规定的时间之内控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。实时操作系统是保证在一定时间限制内完成特定功能的操作系统。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的; 软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。3.1.2实时操作系统的特征1. 高精度计时
系统计时精度是影响实时性的一个重要因素。在实时应用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确地计算一个时间函数,这不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。2. 多级中断机制一个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分,有的必须立即作出反应,有的则可以延后处理,因此需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的事件及时进行响应和处理。3. 实时调度机制实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。但是,处理机调度并不能随心所欲地进行,因为涉及两个进程之间的切换,只能在确保“安全切换”的时间点上进行。实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务; 二是建立更多“安全切换”时间点,保证及时调度实时任务。实时操作系统的特点: ①异步的事件响应; ②切换时间和中断延迟时间确定; ③优先级中断和调度; ④抢占式调度。3.2实时操作系统在飞控系统中的重要性飞行控制系统是无人机的重要组成部分,是飞行控制算法的运行平台,其性能好坏直接关系着无人机能否安全可靠地飞行。随着航空技术的发展,无人机飞行控制系统正向着多功能、高精度、小型化和可复用的方向发展。高精度要求无人机控制系统的精度高,稳定性好,能够适应复杂的外界环境,因此控制算法比较复杂,计算速度快,精度高; 小型化则对控制系统的重量和体积提出了更高的要求,要求控制系统的性能越高越好,体积越小越好。此外,无人机飞行控制系统还要具有实时、可靠、低成本和低功耗的特点。近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制和交通控制等各个领域得到了广泛的应用。并且,实时操作系统将实时多任务机制以功能(函数)调用的方式提供给用户,它的系统调用是标准化、规格化的,这使得开发人员不必再考虑多个实时任务的同步问题,从而将更多的精力致力于应用程序的开发。3.3FreeRTOS实时操作系统3.3.1FreeRTOS简介
FreeRTOS是一款由Real Time Engineers Ltd出品的市场领先的RTOS,如图3?1所示,现在已经支持35种处理器

图3?1FreeRTOS Logo

架构。2015年,FreeRTOS的下载量超过12万次,平均每4.2分钟就有一次下载,而且商业使用不需要用户公开源代码,也不存在任何版权问题,开源免费。FreeRTOS(读作"free?arr?toss")是一个嵌入式系统使用的开源实时操作系统。FreeRTOS设计小巧、简单和易用,能支持许多不同硬件架构以及交叉编译器。就像所有操作系统一样,FreeRTOS的主要工作是执行任务,大部分FreeRTOS的代码都涉及优先权、调度以及执行用户自定义任务; 但又与所有其他操作系统不同,FreeRTOS是一款运行在嵌入式系统上的实时操作系统。3.3.2FreeRTOS的特点FreeRTOS的主要特点如下: (1) 支持抢占式调度、合作式调度和时间片调度。(2) SafeRTOS作为FreeRTOS的衍生品大大提高了FreeRTOS在代码完整性方面的能力。(3) 用于低功耗的Tickless模式。(4) 支持35种系统架构。(5) FreeRTOS?MPU支持M3/M4/M7内核的MPU(内存保护单元)。(6) 设计简单易用,典型的内核使用大小范围为4~9K。(7) 移植非常简单,主要用C语言编写。(8) 同时支持合作式和抢占式任务。(9) 支持消息队列、二值信号量、计数信号量、递归信号量和互斥信号量,可用于任务与任务间的消息传递和同步,以及任务与中断间的消息传递和同步。(10) 支持优先级继承方式的互斥信号量。(11) 拥有高效的软件定时器。(12) 拥有强大的跟踪执行函数。(13) 拥有堆栈溢出检查。(14) 提供丰富的、配置完整的工程例子。(15) 提供论坛技术支持,有可选的商业支持和许可版本。(16) 任务的数量不限。(17) 任务优先级数量不限。(18) 多个任务可以分配相同优先级,即支持时间片调度。(19) 具有免费的开发工具。(20) 具有免费的嵌入式软件源码。(21) 免版权费。3.3.3FreeRTOS架构概述FreeRTOS是一个相对较小的应用程序。*小化的FreeRTOS内核仅包括3个(.c)文件和少数头文件,共不到9000行代码,还包括了注释和空行。一个典型的编译后(二进制)代码映像小于10KB。FreeRTOS的代码可以分解为三个主要区块: 任务、通信和硬件接口。1) 任务大约有一半的FreeRTOS的核心代码用来处理多数操作系统首要关注的问题,即任务。任务是给定优先级的用户定义的C函数。task.c和task.h完成了所有有关创建、调度和维护任务的繁重工作。2) 通信任务很重要,不过任务间的互相通信更为重要!大约40%的FreeRTOS核心代码是用来处理通信的,queue.c和queue.h就是负责处理FreeRTOS的通信的。任务和中断使用队列互相发送数据,并且使用信号灯和互斥来发送临界资源的使用情况。3) 硬件接口接近9000行的代码拼凑起基本的FreeRTOS,是硬件无关的,不论FreeRTOS是运行在不起眼的8051,还是*、*炫的ARM内核上。大约有6%的FreeRTOS的核心代码,在硬件无关的FreeRTOS内核与硬件相关的代码间扮演着垫片的角色。表3?1为FreeRTOS的软件层。
【作者简介】
作者简介林庆峰 吉林大学交通学院博士毕业,清华大学汽车工程系博士后,密歇根大学访问学者,现任教于北京航空航天大学交通科学与工程学院。主要研究方向为智能汽车、驾驶辅助系统。出版、参编专著与教材多部。谌利 北京航空航天大学电子信息工程学院硕士毕业,现任职于武汉飞航科技有限公司副总经理,负责领导公司研发团队。主要研究方向为嵌入式微处理器,通信与信息系统。出版《深入浅出Coldfire系列 32位嵌入式微处理器》、《ARM 认证工程师应试指南》等专著与教材多部。奚海蛟 北京航空航天大学电子信息工程学院博士毕业、博士后,武汉飞航科技有限公司创始人。主要研究方向为飞行器仿真、嵌入式与物联网技术。曾获首届中国航空创业大赛一等奖、中国航空创新创业大会优秀奖等多项奖励,出版物联网、嵌入式技术等等专著与教材10余部。

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

多旋翼无人飞行器嵌入式飞控开发指南
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon