基于DroneCAN实现GNSS模块无缝接入开源Ardupilot飞控
前言
近年来,随着无人机技术的快速迭代,开源飞控凭借技术民主化优势,打破了传统封闭飞控的垄断格局,成为科研探索、农业监测、创客开发等领域的核心支撑,其中Ardupilot飞控以其完善的文档支持、强大的社区生态和高度可定制性,成为全球开发者首选的开源飞控平台之一。GNSS模块作为无人机定位、导航与姿态解算的核心外设,其与飞控的接入稳定性、数据传输效率及兼容性,直接决定了无人机飞行的精度、可靠性与安全性,是实现无人机自主飞行、路径规划等核心功能的基础前提。
当前,开源Ardupilot飞控与GNSS模块的接入多依赖传统UART串口通信方式,这种接入模式虽实现了基础定位功能,却存在诸多难以突破的痛点,严重制约了无人机系统的性能提升与场景拓展。一方面,UART串口通信速率有限、抗干扰能力较弱,在复杂工业环境或远距离飞行场景中,易出现定位数据丢包、延迟等问题,影响飞控对无人机姿态的精准调控;另一方面,传统接入方式缺乏统一的标准化协议支撑,不同厂商、不同型号的GNSS模块(尤其是RTK高精度模块)接口定义、通信协议存在差异,接入时需进行繁琐的参数配置、驱动修改与兼容性调试,不仅增加了开发者的技术门槛和开发成本,也难以实现多模块冗余部署与即插即用,与开源飞控“模块化、标准化、易扩展”的设计理念相悖。
DroneCAN作为Ardupilot与PX4飞控主流的CAN总线通信协议,其前身为成熟的UAVCAN v0协议,具备去中心化架构、动态节点分配、高可靠性、低延迟等核心优势,可完美适配无人机这类对实时性和稳定性要求极高的航空航天场景。该协议不仅支持多节点同时通信、长有效载荷传输,还提供了标准化的设备接入规范和完善的诊断、配置工具,能够实现外设的热插拔与无缝兼容,且已在Ardupilot飞控中实现成熟部署,可通过简单的参数配置启用CAN端口与DroneCAN协议。此外,DroneCAN支持通过AP_Periph固件将传统串口、I2C接口的GNSS模块适配为CAN总线设备,进一步拓展了模块接入的灵活性。
一、硬件设计
1.1 GNSS模块设计
AJ20多频抗干扰定位定向模块作为核心定位单元,该模块专为高端无人装备场景设计,具备多频多系统接收、高性能抗干扰、高精度RTK定位定向等优势,且原生支持DroneCAN协议,可直接与Ardupilot飞控的CAN接口对接,无需额外协议转换模块。其核心硬件特性如下:
-
核心处理单元:采用Xilinx XC7Z020 FPGA作为信号处理与定位解算核心,支持固件深度定制,可根据应用场景选择标准RTK定位定向、单频抗窄带干扰定位、多系统多频融合定位三种固件版本,适配不同精度与抗干扰需求。
-
定位性能:支持GPS L1/L2/L5、BDS B1I/B2I/B3I、GLONASS G1/G2、Galileo E1/E5b等全星座多频点信号接收,RTK模式下水平与垂直定位精度均≤2cm+1ppm,单点定位精度≤2.5m(CEP);支持双天线测向,航向角精度≤0.2°(基线长度≥1m),数据输出刷新率最高可达20Hz,满足无人机高动态运动下的姿态控制需求。
-
抗干扰能力:内置自适应窄带干扰抑制算法与数字滤波架构,搭载专用抗干扰射频前端及14bit高速ADC,抗干扰能力≥75dB,可实时检测干扰信号并告警,保障复杂电磁环境下定位链路的稳定。
-
环境适应性:采用小型化贴片封装,尺寸为46mm×71mm×18mm,工作与存储温度范围均为-40℃~+85℃,满足工业级环境要求,适配无人机户外复杂作业场景。
-
国产化特性:所有元器件可实现100%国产化替代,兼顾安全性与经济性,适配国产化无人装备开发需求。
1.2 CAN总线接口设计
AJ20模块支持双路CAN接口(CAN0与CAN1),均支持DroneCAN协议,波特率固定为1000000 bps,与Ardupilot飞控的CAN总线波特率适配。本次设计选用AJ20模块的CAN0接口(4pin连接器或20pin连接器均可)与Ardupilot飞控的CAN1接口对接,具体接线方式如下:
-
AJ20模块CAN0_H(4pin连接器2脚或20pin连接器6脚)→ Ardupilot飞控CAN1_H接口;
-
AJ20模块CAN0_L(4pin连接器3脚或20pin连接器8脚)→ Ardupilot飞控CAN1_L接口;
-
AJ20模块GND(4pin连接器4脚或20pin连接器10脚)→ Ardupilot飞控GND接口,确保共地,避免信号干扰。
同时,在CAN总线两端(飞控CAN1接口与AJ20模块CAN0接口)各并联一个120Ω终端电阻,提升总线抗干扰能力与数据传输稳定性。
1.3 硬件连接

将AJ20模块的CAN接口通过1.25mm的3pin测试线与飞控的CAN1口相连,由于AJ20的功耗比较高,飞控CAN1口的5V带载能力不够,因此需要外接5V。
二 软件配置
打开Mission Planner,按照下图将飞控GPS的获取类型配置成为DroneCAN:
然后点击右侧的“写入参数”,再重新上电后重新连接到Mission Planner。
三 连接结果查看
如果硬件连接无误,并且飞控配置正确,打开Mission Planner会有如下显示: 
然后按照下面步骤查看CAN总线协议相关GNSS定位状态:

点击连接后,如下所示:

点击Inspector:

可以看到AJ20的定位结果、定向结果、DOP值等结果都以10Hz频率显示在控制台,说明AJ20已经和飞控通过CAN总线实现了互联。
总结
本次基于AJ20模块与Ardupilot开源飞控,有效解决了传统GNSS模块接入的核心痛点,构建了一套通用、高效、可靠的硬件接入架构,不仅实现了GNSS模块与飞控的稳定通信,还为后续软件参数配置、DroneCAN协议适配及功能测试提供了坚实的硬件保障,同时推动了开源无人机外设接入的标准化进程,为后续系统落地应用奠定基础。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)