新書推薦:
《
思考的框架3:风靡华尔街的思维训练法
》
售價:HK$
64.9
《
被记忆的西周史(中山大学中珠学术译丛)
》
售價:HK$
151.8
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:HK$
74.8
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:HK$
185.9
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:HK$
76.8
《
世界巨变:严复的角色(王中江著作系列)
》
售價:HK$
110.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:HK$
396.0
《
(棱镜精装人文译丛)思想的假死
》
售價:HK$
63.8
|
編輯推薦: |
本书从嵌入式的基础知识开始,深入浅出地介绍了多旋翼无人飞行器(无人机)的基本设计方法。书中全面论述了无人机的硬件构成、飞控系统原理和开发流程,针对飞行器系统的状态解算给出了几种不同的解算方法,并给出了相应的实际代码。全书从各方面对无人机系统的设计进行了阐述,提供了*前沿的信息,既包括初学者希望熟悉的基础知识,也有研究者希望深入了解的算法分析,以及室内定位SLAM原理等,满足不同层次的读者的学习需求。教学课件(PPT)与相关案例代码可以到清华大学出版社网站本书页面下载。
|
內容簡介: |
随着集成电路、微控制器以及微机电技术的发展,多旋翼无人飞行器的控制技术得到了蓬勃的发展。随着大疆、派诺特、3DR等国内外一系列无人机公司推出针对普通大众的消费级无人机产品,无人机作为一个普通消费应用也得到了大众的认可和接受,越来越多的工程技术人员将多旋翼无人飞行器作为一个经典的控制系统来进行学习和研究。本书主要围绕多旋翼无人机的飞控系统设计,从嵌入式的基础知识开始,深入浅出地介绍了无人机的基本知识和硬件构成,重点介绍了无人机的飞控系统原理、基础和开发流程,针对飞行器系统的状态解算介绍了几种不同的解算方法,并给出相应的实际代码例程。本书从各方面对无人机系统的设计进行阐述,并提供了*前沿的知识和信息,既有初学者希望了解的基础知识,也有行业研究者所希望深入了解的算法分析,以及室内定位SLAM原理等。 除了正文部分,本书还提供了丰富的附录,包括四旋翼无人机的组装、无刷电机与电调的相关知识、无人机实验室的相关研发调试设备,以及业界流行的开源飞控的相关知识,甚至包括无人机的相关应用,让读者能够更全面地熟悉和了解整个无人机行业的生态系统。 本书特别适合作为高等院校自动化、计算机、电子工程等相关专业多旋翼无人飞行器设计课程的教材,也可供从事嵌入式系统开发与应用的工程技术人员参考。
|
關於作者: |
作者简介林庆峰 吉林大学交通学院博士毕业,清华大学汽车工程系博士后,密歇根大学访问学者,现任教于北京航空航天大学交通科学与工程学院。主要研究方向为智能汽车、驾驶辅助系统。出版、参编专著与教材多部。谌利 北京航空航天大学电子信息工程学院硕士毕业,现任职于武汉飞航科技有限公司副总经理,负责领导公司研发团队。主要研究方向为嵌入式微处理器,通信与信息系统。出版《深入浅出Coldfire系列 32位嵌入式微处理器》、《ARM 认证工程师应试指南》等专著与教材多部。奚海蛟 北京航空航天大学电子信息工程学院博士毕业、博士后,武汉飞航科技有限公司创始人。主要研究方向为飞行器仿真、嵌入式与物联网技术。曾获首届中国航空创业大赛一等奖、中国航空创新创业大会优秀奖等多项奖励,出版物联网、嵌入式技术等等专著与教材10余部。
|
目錄:
|
目录
第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 CortexM4架构
2.1.1ARM内核
2.1.2CortexM4内核
2.1.3以ARM CortexM4为核心的微控制器
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任务和协程Coroutines
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高级控制定时器Advancedcontrol Timers
4.2.2通用定时器Generalpurpose 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.5SINSGPS组合导航的模型和算法
9.5.1SINS和GPS接收机的误差模型
9.5.2SINSGPS松组合的状态方程和量测方程
9.5.3SINSGPS紧组合的状态方程和量测方程
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电子罗盘椭球校准算法代码实例
参考文献
|
內容試閱:
|
前言莱特兄弟发明飞机的17年后(即1920年),多旋翼无人飞行器诞生,此后便经历了漫长的沉默期和酝酿期。随着现代控制理论和技术的发展,以及集成电路、嵌入式微处理器和微机电技术的成功应用,在多旋翼飞行器软硬件和算法两方面均发展成熟的情况下,众多和无人机产业相关的公司如雨后春笋般涌现,同时风险投资等各类资本也都纷纷涌入无人机产业。随着多旋翼无人飞行器在民用及消费类市场的普及和应用,整个行业对无人机相关专业领域的人才需求也呈爆发式增长。无人机系统作为一个先进复杂的现代控制系统,涵盖了材料、通信、电子、控制、数字信号处理和传感器技术等各方面的专业技术应用,因此也需要各个专业领域的技术人才,很多高校也同时开设了相关专业。现在,国内外与多旋翼无人飞行器相关的研究论文尤其是针对飞控系统的论文非常丰富,但是国内针对飞控系统的教材和书籍以介绍理论知识居多,偏向应用的资料不够丰富,而应用级别的教材书籍正是广大无人飞行器爱好者和基础研究人员迫切需要的资料。正是在这个背景下,北京航空航天大学的林庆峰老师与武汉飞航科技有限公司共同合作推出了这本开发指南,希望能够结合国内外的研究成果和各自的研究技术及产品,为业界提供一个基础学习和入门的资料。本书为读者提供了可以从零基础开始学习的多旋翼无人飞行器的基础知识,包括无人机所涉及的机架、动力系统、飞控系统、遥控遥测系统、传感器、卫星导航定位系统、光流定位系统、无线图传系统和地面测控站等方面的基础知识,这些内容主要在第1章介绍,是针对航模爱好者与初学者的入门参考资料。需要了解飞控系统硬件设计的读者可以重点阅读第2章,该章深入浅出地介绍无人机飞控系统的硬件设计,处理器的选型和应用。在此基础上,读者可以进一步学习无人机飞控系统软件开发的详细流程与方法,包括嵌入式实时操作系统的相关知识、飞控系统的各种传感器的数据采集和处理、自动控制的核心(即控制系统的状态估计在无人机系统中的应用和开发),以及PID线性控制规律的设计核心方案,这些内容主要在第6章、第7章和第8章中介绍,这一部分也是本书的重点内容。此外,通过本书,读者还能够了解到无人机的自主导航的相关知识,包括室内导航和室外导航的一些核心知识,以及避障系统的相关介绍。本书还介绍了针对无人机地面测控站设计的核心技术、遥测数据链路的通信原理设计、飞控参数存储加载与更新以及其他一些辅助功能的相关介绍。此外,本书还对无人机飞控系统的应用调试与检测设备进行了详细的介绍,因此对于希望学习了解无人机飞控软件算法并且需要进行深入研究的读者和爱好者,本书都是一种非常有价值的参考书籍。本书主要由北京航空航天大学林庆峰老师及武汉飞航科技有限公司研发人员编写而成,所有作者均有多年从事无人机设计研发及应用方面的经验。除三位主要作者的工作之外,本书还凝聚了武汉飞航科技有限公司技术团队的众多工程师的辛勤劳动,他们是徐凡、郑森林、徐仕斌、吴志雄、雷航、王飞、魏德明、毕野、杨金星、奚天麒、张玮和张伟,在此对他们一一表示感谢。此外,本书还得到了郑州航空工业管理学院电子通信工程学院的陈宇老师的支持和指导。本书所介绍和阐述的飞控系统和其他各部分无人机设备及检测设备均由武汉飞航科技有限公司提供,所介绍的实验案例均可在该公司的光标系列飞控设备上运行。由于编者水平所限,并且时间仓促,书中难免存在不妥之处,恳请广大读者批评指正。编者2017年3月
第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,如图31所示,现在已经支持35种处理器
图31FreeRTOS Logo
架构。2015年,FreeRTOS的下载量超过12万次,平均每4.2分钟就有一次下载,而且商业使用不需要用户公开源代码,也不存在任何版权问题,开源免费。FreeRTOS读作"freearrtoss"是一个嵌入式系统使用的开源实时操作系统。FreeRTOS设计小巧、简单和易用,能支持许多不同硬件架构以及交叉编译器。就像所有操作系统一样,FreeRTOS的主要工作是执行任务,大部分FreeRTOS的代码都涉及优先权、调度以及执行用户自定义任务; 但又与所有其他操作系统不同,FreeRTOS是一款运行在嵌入式系统上的实时操作系统。3.3.2FreeRTOS的特点FreeRTOS的主要特点如下:1 支持抢占式调度、合作式调度和时间片调度。2 SafeRTOS作为FreeRTOS的衍生品大大提高了FreeRTOS在代码完整性方面的能力。3 用于低功耗的Tickless模式。4 支持35种系统架构。5 FreeRTOSMPU支持M3M4M7内核的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内核与硬件相关的代码间扮演着垫片的角色。表31为FreeRTOS的软件层。
|
|