论文部分内容阅读
无人船是一种小型的水面自主航行载体,早期的时候主要应用于军事领域,能够代替人类完成一些作战任务,比如维护海上和港口安全、反恐保护、反雷、反潜等。后来,逐渐广泛应用于各种民用领域,包括探南极冰架,检查水下石油和天然气管道,调查原油泄露的影响,深海摄影调查,维护海底设施,进行海洋学研究等。如今,电子技术和导航控制技术发展地非常迅速,逐渐解决了一些无人船工程和理论上的难题,无人船已经成为国内外的研究热点,本文是设计一种完全自主、低成本、精度高的无人船用于环境监测领域,能够增加环境监测人员的安全系数,还能使环境监测部门及相关行业的工作效率得到显著的提高。首先,本文根据水域测量领域的设计需求,提出了一个完整的系统方案,包括船载系统的设计和地面站系统的设计。详细介绍了无人船船载系统的硬件模块的设计,包括了如下模块的选型:核心处理器模块、姿态传感器模块和GPS接收机模块等设备。无人船的软件平台选择使用得到广泛应用的嵌入式Linux,本文所有的算法和程序都是基于这个平台,使用c语言开发。其次,本文的一个研究重点是无人船导航系统的设计,为了获得无人船的姿态信息,读取姿态传感器中加速度、角速度、磁力强度的大小,使用两种方法来得出姿态信息,一种是使用基于欧拉角的离散卡尔曼滤波器算法,另一种是使用基于四元数的扩展卡尔曼滤波器算法,实验结果表明第二种滤波算法效果更好,当静止的时候,收敛速度更快,并且可以方便地进行全姿态的测量。为了获得无人船的实时速度还有位置信息,选择从GPS接收机读取卫星发送过来的数据,然后经过解析得到。然后,介绍了无人船的通信系统的设计,通信方式使用Wi-Fi,地面站和无人船之间的传输层协议使用UDP协议,应用层协议使用MAVLink协议。介绍了核心处理器和其它设备之间通信接口的实现,即串口通信和12C通信在Linux平台下的编程实现。最后,介绍了无人船整个船载系统的软件设计,使用硬件抽象层、模块层、配置层三层的软件结构,然后划分出不同的任务模块,使用Linux多线程来实现不同任务的并发执行,着重介绍了通信任务、姿态任务、GPS任务、控制任务的实现。使用c#编写了地面站软件的测试版本,并进行了下水实验,验证了整个系统的可行性。