论文部分内容阅读
随着嵌入式技术的发展,不论是理论研究还是商业应用,无人船、无人车等一系列自主移动平台都有了很大的进步。从更高层次的功能需求上来看,都要求无人船具有在陌生水域进行自主避障和导航的能力,为了解决这一需求,本文设计了 一套模块化的自主导航系统。使得无人船以及其他形式的移动平台能够通过串口接收控制命令,完成了陌生环境中的地图构建与自主导航。在设计的过程中,层次化的思想贯穿始终,首先从功能的角度将整个平台划分为传感层、决策层和驱动层,由于驱动层属于运动控制范畴,作为自主导航系统的一个移动载体,在本设计中不予以考虑,从而将重点放在自主导航相关功能的实现上。其次引入了异构片上系统(SoC)平台作为系统的主要硬件构成,使得传统嵌入式系统中复杂的硬件结构可以在一块芯片中完成,不但缩小了系统的体积,还提高了整个系统的性能。同样采用层次化的设计思想,将系统划分为接口单元、算法单元和调度单元,其中接口单元和部分算法单元使用SoC中的可编程硬件设计完成,不但可以在整个环节中灵活配置,还充分发挥了可编程器件并行计算的特性,对整个系统有一定的加速作用;调度单元采用ARM软核部分来设计完成,使得整个系统中特定的功能都由特定的器件来完成,提升了系统的工作效率。然后移植了机器人操作系统(ROS)进行整个软件部分的整合,使得在进行应用层功能设计时,不需要考虑底层硬件的具体实现。同时,由于ROS是基于网络连接的分布式架构,所以设计中将与本设计无关的状态显示、人机交互界面等功能放到了 PC机上运行,为系统的主控芯片节省了资源。最后利用本文设计的自主导航系统搭建了实验平台,分别对即时地图构建和自主导航功能进行了实地测试,论证了本系统在用于无人船平台自主导航应用上的准确性。