基于RK3399+STM32+PID的四轴飞行器跟踪与控制系统设计
Posted 深圳信迈科技DSP+ARM+FPGA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于RK3399+STM32+PID的四轴飞行器跟踪与控制系统设计相关的知识,希望对你有一定的参考价值。
系统硬件的总体方案设计 要设计一款具有跟踪功能且飞行稳定的四轴飞行器跟踪系统,首先要保证系 统硬件平台的功能稳定。系统各模块具有不同功能,所以需要根据各模块功能与 性能,进行芯片的选取与硬件电路设计,使系统在经济性、生产工艺、功能需求 等工程指标上得到优化,在一定程度上提高系统的稳定性和可靠性。 本文将四轴飞行器跟踪系统的硬件平台根据功能和设计需求不同分成三个 单元进行设计,在确保各个单元在独立运行的前提下,完成互相之间任务合作。 第一部分为四轴飞行器控制单元,该部分硬件主要完成对四轴飞行器机体的稳定 控制、遥控信号接收和执行追踪目标指令并执行的工作,是四轴飞行器跟踪功能 的执行部分。第二部分是遥控管理单元,该部分主要完成对四轴飞行器发来的信 息接收、跟踪目标选取和发送遥控信号的工作,是四轴飞行器跟踪功能的管理部 分。第三部分为目标跟踪单元,该部分硬件主要完成搭载目标跟踪算法和嵌入式 操作系统,并将图像信息实时回传给遥控管理单元,完成四轴飞行器跟踪功能的 算法处理。系统的整体硬件框图如图 2-1 所示。![](https://image.cha138.com/20230303/f476accd3d594884a1bc09c826c6bc47.jpg)
![](https://image.cha138.com/20230303/c2835d04c1ad426abef878f49ec79b71.jpg)
![](https://image.cha138.com/20230303/effa858aa079435fa116838268843f37.jpg)
2.4 目标跟踪单元的硬件设计 本单元是跟踪算法的运行平台,同时还需要完成对目标信息的采集和数据传 输工作,对硬件的图像处理性能有较高的要求。一般的带有实时操作系统的嵌入 式平台很难适应该部分的需求,所以本文采用了搭载嵌入式 Ubuntu 的大型嵌入 式系统,通过移植 OpenCV 实现的目标跟踪算法,完成系统功能。 2.4.1 系统主控芯片的选择 通过上述描述,常规的智能芯片都已无法满足设计需求,而常用的 ARM9 和 ARM11 系列处理器过于陈旧且部分已停产也无法满足设计需求,选用性能更 好的处理器才是正确选择,例如以 ARM 公司的 CORTEX-A 系列为内核的微处理 器。此部分处理器通常是智能设备、个人 PDA 设备和手机的主控芯片。通常这 类芯片都被国外芯片厂商垄断,恰逢在本人毕业期间,某些中国企业购买国外芯 片的渠道被破坏,这让从事这一领域工作的工程师感觉,选取一款国内自主设计 的只能芯片就很有必要了。 目前,国内在这一领域比较突出的产品有,华为的海思系列、瑞芯的 RK3399 、 全志系列和联发科的一些型号芯片。其中华为的海思直接面向企业级用户,个人 开发难度较大。珠海全志科技 A64 系列资料较少,只有零星文档可以参考,也主 要面向企业级用户。而瑞芯的 RK3399 对待个人开发者较为友好,有自己的开源 社区,个人开发者可以在上面获取相应的芯片资料、 bootloader 资料、片内外设 驱动以及操作系统移植的相关资料。对高校的个人开发人员是一个很好的选择。 RK3399 内部采用 -Big.Little 架构,其内部包含双核 Cortex-A72 和四核 Cortex-A53 架构,是一款高性能低能耗的高性能 64 位处理器。通常被应用于电 脑、个人移动设备和数字媒体处理设备上。 RK3399 和许多具有高性能的嵌入式设备一样,内部集成了 H.264/H.265/VP9 的 4K 高清视频单元、高性能的 JPEG 编码器和特殊图像处理单元。其内部还集 成了完全匹配 OpenCL 和 DirectX 11.1 的 3D 高性能 GPU 处理器。同时在外接芯 片内存和存储芯片部分, RK3399 配有高性能双通道的外部存储器接口,包括 DDR3/DDR3L/LPDDR3/LPDDR4 类型的内存芯片,能够保证外接大容量存储芯 片。并且其外围接口资源丰富,可以为应用提供灵活的支持。其芯片内部的资源 相当的丰富。通过查阅福州瑞芯公司的官方 Design_Guide 手册,可以得到不同应 用场景的芯片设计结构图,其中根据本文描述系统的特性与技术需求,选用手册 中的 Tablet Apllication Block Diagtam 作为系统基础设计范例,在其中进行相应的 改进与扩展。 在目标跟踪单元中用到的主要有 DDR3\\EMMC\\WIFI\\USB\\display panel\\MIPI CAMERA 等模块的硬件设计。 RK3399 采用 BGA 封装,芯片底部共有 828 个引 脚,所以不可能一一介绍,所以,在本文对该部分硬件系统的描述上,选取重要 部分单独描述。下面就按以上模块分别对该系统进行简单介绍。 5.1 系统总体软件设计描述 本文将四轴飞行器跟踪与控制系统的软件设计分成三个单元,即飞行控制单 元的软件设计、目标跟踪单元的软件设计和飞行器遥控管理单元的软件设计。三 个部分各司其职,互相配合的完成对目标物体的跟踪与四轴飞行器控制工作。其 中飞行控制单元的软件设计选用 keil 编译器和 FreeRTOS 嵌入式实时操作系统为 基础,控制代码采用 C 语言编写,主要完成飞行器姿态控制的工作。目标跟踪单 元的软件设计选用 arm-linux-gcc 编译器和搭载 OpenCV 的 Ubuntu 操作系统为基 础,采用 C++ 语言和一些脚本语言对目标跟踪算法和进程进行编写,完成对跟踪 目标运动方向和距离的识别。遥控管理单元从功能上将其分为两部分进行软件设 计,一部分为下位机遥控通讯模块,该部分选用 Keil 编译器和 FreeRTOS 嵌入式 实时操作系统为基础,信息传输和遥控代码采用 C 语言编写,完成接收跟踪模块 发来的图像数据和与上位机通讯任务。另一部分为上位机显示和管理模块,该部 分选用 VS2013 和 Windows 操作系统为基础,显示与控制代码采用 MFC 下的 C++ 语言编写,主要完成跟踪目标的选择以及飞行器飞行相关信息的显示工作。 5.2 飞行控制单元的软件设计 飞行控制单元的软件设计主要集中在完成姿态解算和控制算法的工作,为了 建立算法运行平台和保证算法运行的稳定,还需要在该部分系统的硬件设计的基 础上,通过移植嵌入式实时操作系统 FreeRTOS 和编写相关硬件外设的驱动函数, 保证整个飞行控制单元的稳定运行。 5.2.1 飞行控制单元算法运行环境搭建 由于四轴飞行器自身传感器众多,而且需要处理的遥控数据也较多,所以一 般的裸机程序就无法满足飞行控制单元对稳定性的需求,移植实时嵌入式系统 FreeRTOS ,将飞行控制单元要完成的功能以 task() 函数方式编写,通过系统内部 任务调度器按优先级或时间片调度方式控制,保证整体单元的所有任务平稳运 行。 FreeRTOS 系统移植流程图如图 5-1 所示。
![](https://image.cha138.com/20230303/10a8575ee50f455092e9a9e14b9d9091.jpg)
5.5.2 四轴飞行器跟踪系统的测试 本文最后针对四轴飞行器的整体跟踪性能进行了测试,待追踪目标选为颜色 较实验室背景色差别较大的绿色写字板,通过旋转板面,将写字板绿色一面朝上 放置,通过拉动下方轮子使其移动,观察写字板上空飞行器的跟踪状况。四轴飞 行器跟踪性能测试过程如图 5-9 所示。
![](https://image.cha138.com/20230303/a985e50754a74ae180ffff942a232922.jpg)
![](https://image.cha138.com/20230303/f73ac7164a394fd493682529db1dcfab.jpg)
信迈提供RK3399+STM32软硬一体化方案。
以上是关于基于RK3399+STM32+PID的四轴飞行器跟踪与控制系统设计的主要内容,如果未能解决你的问题,请参考以下文章