由上述三部分硬件组成了旋翼无人机跟踪系统的硬件平台,一个完整的稳定的旋 翼跟踪系统将通过它们搭建而成,具体的构建在第五章中介绍。
2。2 系统环境
在上一节中介绍了旋翼无人机跟踪系统的硬件组成,其中微型版超级计算机 Jetson TK1 作为旋翼无人机跟踪检测系统的核心器件,所搭载的系统环境是完成此次 系统设计的关键和主要程序开发平台之一。
在 Jetson TK1 平台上装载了 Ubuntu 14。04 LTS 操作系统,应用了 NVIDIA 开发的
用于 Tegra 上 Linux 内核。在介绍程序编写、调试开发平台之前,将先简要介绍下
Linux 内核和 Ubuntu 操作系统。
Linux 是一种开放源代码而且免费的类似 Unix 的操作系统,目前成千上万的爱好 者在对其进行开发与维护,因此也存在着许多不同 Linux 版本的操作系统(如 Ubuntu、 Redhat、Fedora 等),但它们都是基于 Linux 内核。当下流行的 Android 系统也是基于 Linux 内核发展而来的,作为可靠性、稳定性和适应性都非常高的系统内核,还可以 根据需要裁剪以便友好的嵌入到不同的硬件环境中。作为时下最流行的 Linux 发行版 之一的 Ubuntu 操作系统,它为一般的用户提供了一个最新的 、免费的同时又相当稳 定的系统环境和自由软件。
随着 Linux 系统越来越广泛的应用,在该系统平台上的软件开发、调试环境也逐 渐成为相关研究和开发人员讨论的热点[12]。Qt creator、 Eclipse 等集成开发环境(IDE, Integrated Development Environment)相继推出 Linux 操作系统下的版本。在网络上流 传着这样一种说法,“世界上的程序员分为三种,一种是使用 Emacs,一种是使用 VIM, 剩余的是其他”。在本课题的研究和设计中并没有使用到那些 IDE,而是使用了 Linux 下强悍的 VIM 编辑器,通过脚本的配置使其成为高效的代码编辑环境。文献综述
程序的开发除了编辑,还需要编译、连接和调试,得利于 GNU(GNU is Not Unix) 免费提供的一整套工具链,不仅拥有了 VIM 编辑器,还提供本次课题研究使用的 GCC
(GNU Compiler Collection)编译器、GDB(GNU Project Debugger)调试器。GCC 可 以很好的实现程序编译、链接的工作[13][14]。通过预处理(Preprocess)、编译(Compile)、汇编(Assemble)和链接(Link)生成可执行的运行文件,进而实现需要的功能。而 GDB 很好的完成了代码的调试任务,虽然是一款开源的调试器,但是它包含了非常 完备的调试功能。甚至,几乎涵盖了商用调试器的全部功能[15]。
上面段落阐述了跟踪系统核心器件的系统环境和程序编辑、编译、调试的工具, 在下一小节中,将粗略的介绍视觉跟踪算法基于的底层链接库——CUDA 和 OpenCV, 作为无人机跟踪检测系统的得力开发工具。
2。3 CUDA 与 OpenCV
在 2。1 小节中,提到的 Jetson TK1 嵌入式开发板上搭载了一颗具有 192 个 NVIDIA KeplerTM 架构运算核心的 Tegra K1 GPU。GPU 的英文名称为:Graphic Processing Unit, 中文翻译为“图形处理器”或者“图形处理单元”,有时候它也被称为视觉处理单元
(Visual Processing Unit)。它是一个专门用于二维或者三维图形渲染的微型处理器[16]。 在 GPU 通用计算领域,NVIDIA 公司提出了通用的计算方案——CUDA(全称为: Compute Unified Device Architecture,中文翻译为“统一计算架构”)。该架构能够使得 英伟达公司的 GPU 决解复杂的通用计算问题,利用并行计算引擎提高了运算速度, 提高了整体运算效率。
在课题设计中并没有直接使用 CUDA 进行编写跟踪检测算法程序,而是利用英 伟达为 Jetson TK1 嵌入式开发板提供的加载 CUDA 调用 GPU 加速的 OpenCV 库间 接使用了 CUDA 链接库。 OpenCV旋翼无人机的跟踪检测系统设计(4):http://www.youerw.com/zidonghua/lunwen_94012.html