普通高等教育“十三五”规划教材 机器人控制技术基础 基于Arduino的四旋翼飞行器设计与实现 徐振平编著 國防草名版社 北京
前言 机器人是新时期的一个经济增长点,让机器人技术深入人们的日常生活,当代大学生 和机器人爱好者责无旁贷.
本书将计算机技术、自动控制技术、电子制作技术和机械与材 料工程等相关知识结合起来.
只要懂C语言,就可以学习本书,进面开发出自已所需 要的机器人.
机器人控制技术是一门综合知识应用的学科.
首先在自动控制原理理论方面,涉及 Laplace变换与控制系统的稳定性、准确性和快速性的分析以及系统校正的知识,需要有 一套对这些知识加以系统理解和综合应用的代码;其次在机械与材料工程方面,涉及机械 零部件的制作和组合,需要加上智能化的单片机对机械系统进行控制;最后在电子制作技 术方面,不仅需要掌握电路的设计与布线以及传感器校准等知识,同时也需要进行计算机 语言的优化编程.
在计算机编程方面,需要将控制系统和各种硬件编程有机地结合起来 才能发挥优势.
Arduino系统集成了硬件和软件两个方面,可以输入/输出数字信号和模 拟信号,能与传感器、上位机通信方便,操作简单,采用独特的配置函数和循环函数进行编 .程,不需要操作系统支持,对深入理解控制理论的实现非常有益.
对于机器人系统,本书选用四旋翼飞行器,首先得益于该机器人不但已经应用于社会 生产的多个方面,而且也是广大青少年及航模爱好者之首选.
本书力图将这些零散的知 识集中起来,有机组合,让读者对机器人控制技术有一个综合、深入的理解,为进一步的创 新开发打好基础.
飞控代码更新日新月异,作者经历了1.8版~2.4版的更替,通过将所学的机器人技 术和计算机技术结合起来,写了这本书,与大家分享.
飞行机器人只是机器人的一个方 面,但机器人系统的基础开发是近似的,可以触类旁通有利于于其他机器人的开发.
本书分为十章,第一章对机器人的分类、组成、应用以及技术参数进行了简要的阐述, 因为主要针对四旋翼飞行器,所以对四旋翼的部件也进行了简介;第二章对Arduino单片 机的硬件和软件知识进行了详细的讲述,并对硬件和软件所结合的寄存器及中断进行列 表,方便读者查阅;第三章机器人的输入和输出讲解了遥控和电机的应用代码以及单片机 资源的运用;第四章是传感器数据的获取及其校准,涉及传感器通信的I2C协议和与飞控 有关的陀螺仪、加速度传感器、磁场传感器及气压测高仪等传感器;第五章主要对遥控、电 机以及传感器数据的滤波处理进行详细介绍,除了平滑滤波算法外,还讲解了Kalman滤 波和互补滤波器等;第六章对机器人的运动学、微分学、动力学理论进行了讲解,然后在飞 控的姿态计算中加以运用,为了改进算法,最后还对四元数进行了讲解;第七章是机器人 控制技术基础,讲述了Laplace变换、传递函数的建立过程以及控制系统的稳定性、准确 性和快速性的分析以及系统的PID校正的知识,并对飞控中的PID算法进行了详细注 解;第八章是机器人与计算机通信的串口协议的介绍,包含了串口协议的底层开发以及串 Ⅲ
口协议在单片机端和计算机端(采用Java编写)的应用;第九章对GPS模块的应用进行 系统介绍,包括GPS的原理,飞控中程序的介绍和其模块程序在飞控主函数中的作用;第 十章注解了机械臂和飞控的源代码以及介绍了相关的航模知识.
本书的编写参考了网上论坛的讨论,并得到了老师和学生大力支持.
徐雄和肖辉参 与了四旋翼飞行器制作,董瑞智参与了Arduino硬件和软件、传感器、GPS的编写,郭顺杰 参与了I2C协议、串口协议的编写,李泽文参与了绪论和航模知识介绍的编写,朱应成参 与了滤波算法列举和机械臂控制代码的编写.
同时,得到了长江大学机器人协会、文汉云 的国家自然科学基金面上项目“随钻测量井下网络化光纤传感器及信息传输关键技术研 801160010123)的大力支持,在此一并表示衷心的感谢!
本书主要是对四旋翼飞行器的代码进行解读和注释,注释的过程也是一个学习的过 程,作者在编写的过程中学到了很多知识,所以贡献出来与大家分享.
由于作者知识和语 言表达能力有限,不妥之处,敬请读者谅解,也欢迎大家来信提出宝贵意见,不胜感激.
联 系方式:Email:xzp18@sohu..
IV
目录 第一章绪论 第二章Arduino语言及单片机介绍 第一节Arduino简介 ..... 第二节Arduino的硬件部分 8 第三节Arduino的软件部分 16 第四节AVR寄存器介绍 21 第五节中断 35 第三章机器人的输入和输出 第一节存储器的读写 37 第二节遥控器PPM编码及其硬件介绍 49 第三节电动机及其驱动 52 第四节机器人其他I/O资源的输人和输出 61 第四章传感器及其校正 第一节I2C协议 79 第二节传感器介绍 94 第五章机器人数据的滤波算法 135 第一节滤波算法列举 135 第二节飞控中的滤波算法 147 第六章机器人位姿分析 167 第一节机器人运动学 167 第二节 机器人运动的微分变换 177 第三节 机器人动力学 179 第四节 飞控上姿态计算 181 第五节四元数和旋转矩阵 192 第七章机器人的控制技术基础 第一节机器人控制技术理论基础 200 V
第二节飞控中的控制代码 212 第八章串口通信及其数据处理 224 第一节串口通信的底层协议 224 第二节串口通信应用过程(单片机端) 233 第三节串口通信应用过程(上位机端) 247 第九章GPS应用 257 第一节GPS原理. 257 第二节飞控中的代码介绍 259 第三节GPS模块代码在飞控主函数中的作用 263 第十章实例分析 266 第一节机器人机械臂控制的代码开发 266 第二节四轴飞控的代码解读 269 参考文献 316 VI