飞行控制器移植指南
本主题面向希望将PX4移植到新飞行控制器硬件上的开发者。
PX4架构
PX4主要由两层构成:位于主机操作系统(NuttX、Linux或Mac OS等任何其他POSIX平台)之上的板级支持和中间件层,以及应用程序(位于src/modules中的飞行控制栈)。更多信息请参考PX4架构概述。
本指南仅关注主机操作系统和中间件,因为应用层/飞行控制栈可在任何目标平台上运行。
飞行控制器配置文件分布位置
板卡启动和配置文件位于每个板卡特定厂商目录下的/boards中(即boards/VENDOR/MODEL/ )。
例如,对于FMUv5飞控硬件平台:
- (所有)特定板卡文件:/boards/px4/fmu-v5。
- 构建配置:/boards/px4/fmu-v5/default.px4board。
- 特定板卡初始化文件:/boards/px4/fmu-v5/init/rc.board_defaults
- 如果在boards目录下的init/rc.board中找到特定板卡初始化文件,它会自动包含在启动脚本中。
- 该文件用于启动仅存在于特定主板上的传感器(和其他设备)。它也可用于设置板卡的默认参数、UART映射以及任何其他特殊情况。
- 对于FMUv5,你可以看到所有Pixhawk 4传感器的启动设置,并且它还设置了一个更大的LOGGER_BUF。
主机操作系统配置
本节介绍了移植每个受支持的主机操作系统到新的飞控板硬件平台上需要用到的配置文件的用途和所处位置。
NuttX
请参考NuttX板卡移植指南。
Linux
基于Linux的飞控板不包含任何操作系统和内核的配置。这些配置已经由适用于该板卡的Linux镜像提供(该镜像需要原生支持惯性传感器)。
- boards/px4/raspberrypi/default.px4board - RPi交叉编译。
中间件组件和配置
本节介绍各类中间件组件,以及将它们移植到新的飞行控制器硬件所需更新的配置文件。
QuRT / Hexagon
- 启动脚本位于posix-configs/。
- 操作系统配置是默认Linux镜像的一部分(TODO:需要提供LINUX镜像文件位置和程序烧写指南)。
- PX4中间件配置位于src/boards。 (TODO:添加总线配置)
RC UART接线建议
通常建议通过单独的RX和TX引脚将遥控器(RC)连接到微控制器。然而,如果RX和TX连接在一起,则必须将UART设置为单线模式以防止任何冲突。这可以通过板卡配置文件和清单文件完成。例如,px4fmu-v5 。
官方支持的硬件
PX4项目支持并维护FMU标准参考硬件以及任何与该标准兼容的板卡。这包括Pixhawk系列(完整的官方支持硬件列表请查看用户指南中的自动驾驶仪硬件 )。
每个受官方支持的飞控板平台都将受益于:
- PX4项目仓库中可用的PX4移植
- 可从_QGroundControl_访问的自动固件构建
- 与生态系统其余部分的兼容性
- 可通过CI进行自动检查 —— 安全仍是这个社区的重中之重
- 飞行测试
我们鼓励板卡制造商力求与FMU规范完全兼容。完全兼容意味着您可以从PX4的日常持续开发中受益,同时无需承担因支持偏离规范的部分而产生的维护成本。
TIP
制造商在偏离规范之前应仔细考虑维护成本(制造商的成本与偏离程度成正比)。
我们欢迎任何个人或公司提交他们的移植成果,以使他们的硬件被纳入我们支持的硬件列表,前提是他们愿意遵守我们的行为准则,并与开发团队合作,为他们的客户提供安全且满意的PX4使用体验。
如果你想让你的飞控板被PX4项目正式支持:
- 你的硬件必须在市场上可用(例如它可以被任何开发人员不受限制地购买到) 。
- 必须向PX4开发团队提供硬件,以便他们验证移植情况(联系lorenz@px4.io获取关于将硬件发送至何处进行测试的指导)。
- 板卡必须通过完整的测试套件和飞行测试。
PX4项目保留拒绝接受不符合项目设定要求的新移植(或移除当前移植)的权利。
你可以通过官方支持渠道联系核心开发团队和社区。