前言近年来随着无人机技术的快速迭代开源飞控凭借技术民主化优势打破了传统封闭飞控的垄断格局成为科研探索、农业监测、创客开发等领域的核心支撑其中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模式下水平与垂直定位精度均≤2cm1ppm单点定位精度≤2.5mCEP支持双天线测向航向角精度≤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_H4pin连接器2脚或20pin连接器6脚→ Ardupilot飞控CAN1_H接口AJ20模块CAN0_L4pin连接器3脚或20pin连接器8脚→ Ardupilot飞控CAN1_L接口AJ20模块GND4pin连接器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协议适配及功能测试提供了坚实的硬件保障同时推动了开源无人机外设接入的标准化进程为后续系统落地应用奠定基础。
基于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模式下水平与垂直定位精度均≤2cm1ppm单点定位精度≤2.5mCEP支持双天线测向航向角精度≤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_H4pin连接器2脚或20pin连接器6脚→ Ardupilot飞控CAN1_H接口AJ20模块CAN0_L4pin连接器3脚或20pin连接器8脚→ Ardupilot飞控CAN1_L接口AJ20模块GND4pin连接器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协议适配及功能测试提供了坚实的硬件保障同时推动了开源无人机外设接入的标准化进程为后续系统落地应用奠定基础。