国内首款软硬件开源GNSSINS组合导航开发平台一
国内首款软、硬件开源GNSS/INS组合导航开发平台(一)
目录
前言
近年来,随着自动驾驶、无人机等新兴领域的快速发展,这些领域对于导航系统的依赖越来越强,并且伴随着这些领域对于系统可靠性的的要求越来越高,如何提高卫星导航的精度、完好性也成了各大接收机厂商纷纷关注的重点。其中RTK技术的应用,将卫星导航的精度从米级提高到了厘米级别;GNSS+INS组合导航技术的应用,弥补了卫星导航容易受遮挡、干扰从而无法连续提供可靠位置信息的缺点;双天线定向技术的应用,填补了电子罗盘易受电磁场干扰的缺陷。卫星导航加惯性导航的组合导航系统已经成为自动驾驶、无人机行业的标配,未来随着MEMS器件的进一步发展,组合导航系统的应用将会更加的广泛。
一、为什么开源?
众所周知,GNSS/INS的组合模式分为松耦合(LC),紧耦合(TC),深耦合(DC)。松耦合是直接利用GNSS输出的导航信息与INS进行组合,接收机本身保持独立,这种方式实现简单,目前绝大多数组合导航均采用该方式。紧耦合将GNSS输出的观测量(伪距、伪距率)与INS模块输出的惯性测量结果相互作用输出给卡尔曼滤波器,用于估计INS模块测量累计误差,经过一系列计算后,结合GNSS定位结果最终得到组合导航解。深耦合在紧耦合的基础上,将INS的惯性数据作为GNSS解算的一部分。通过INS准确的相对多普勒变化信息,辅助接收机信号环路跟踪,提高恶劣环境下多普勒的估计准确度,从而提高载波相位、伪距等观测量的精度和连续性,减少观测量中断和跳变的问题,从而有效提高组合导航精度和可靠性。不难发现,上述三种组合方式中,松耦合和紧耦合可以完全脱离接收机的基带信号处理独立进行解算,唯独第三种深耦合算法需要GNSS/INS相互作用才能发挥深耦合算法的最大能力。鉴于此,我们团队打算开源一款可以打通GNSS和INS之间技术壁垒的开源软硬件平台,帮助该领域工程师获得一款高效的开发工具,以期快速验证自己的组合导航算法,并最终实现量产以及商业化。
二、开源都包含什么?
1.硬件
团队计划将项目涉及的sch、pcb、bom均上传至百度网盘,开发者均可下载维护。
1.1 处理器平台
本工程的处理器平台将采用Xilinx公司的ZYNQ XC7Z020。
1.2 IMU惯性测量器件
本工程的IMU选用TDK的六轴姿态传感器IIM-46234。
1.3 基本硬件信息
(1)板载Xilinx ZYNQ XC7Z020-CLG400;
(2)板载32bit、1GByteDDR3大容量内存;
(3)板载256Mbit QSPI FLASH;
(4)板载TDK IIM-462346六轴姿态传感器;
(5)板载5片Max2771 GNSS射频套片;
(6)板载1片ADC3223 12bit模数转换器;
(7)板载TDK高精度6轴MEMS传感器ICM-46288-P;
(8)板载BOSCH高精度电子罗盘BMM-150;
(9)板载TDK高准确度气压传感器ICP-20100;
(10)板载Type-C接口的Xilinx下载线;
(11)板载8GByte SD卡存储器,存储GNSS观测量、IMU测量值,通过Type-C当U盘访问;
(12)板载100M以太网接口;
(13)双mmcx射频口,单板实现测向功能;
(14)硬件接口兼容Novtel、和芯星通等主流OEM板。
2.软件
本工程的开发平台采用Xilinx公司的ZYNQ XC7Z020,该芯片包含两个ARM Cortex-A9的软核(PS)以及可编程逻辑单元(PL)。接收机相关的捕获、跟踪算法均在PL中实现,最大可跟踪210个卫星通道。核0实现接收机相关的基带环路控制、PVT解算、RTK解算、定向解算,核1实现PVT解算、INS相关算法。出于商业保护,PL和核0的相关代码将以bit和elf的形式提供,核1的相关算法以源代码方式呈现,这些算法以学习交流为目的,主要包括PVT单点解算、INS解算,观测量等信息将以共享内存的方式通过核0提供。
下表将以直观的形式呈现不同版本开发者所能获取到的资源。
基础开发者 | 进阶开发者 | |
所有硬件资源 | √ | √ |
PL执行文件 | √ | √ |
核0执行文件 | √ | √ |
核1源代码 | √ | √ |
PL定制文件 | x | √ |
核0定制文件 | x | √ |
PL源代码 | x | x |
核0源代码 | x | x |
注 : 定制文件可按照用户要求对底层程序进行修改。
总结
接下来,我们将定期上传团队的工作进展,请大家及时关注,互相交流学习。