查看“︁PX4子模块”︁的源代码
←
PX4子模块
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== PX4 的子模块 (Submodule) 设计 == PX4 飞控系统采用子模块(Submodule)的方式来管理其依赖的外部库和内部组件,这是其实现高度模块化、可维护性和可扩展性的关键。 === 子模块的作用 === * '''依赖管理''': 精确控制外部库的版本,确保构建可重复性[2](@ref)。 * '''模块化设计''': 将系统解耦为独立的功能单元(如传感器驱动、控制算法、通信协议),允许独立开发、测试和更新[1,3](@ref)。 * '''灵活配置''': 通过 Kconfig 系统选择性地启用或禁用功能模块,以适应不同的硬件和飞行器类型[3](@ref)。 === 比喻理解 === 想象 PX4 是一个庞大的'''乐高无人机模型'''。每个子模块就像一包特定功能的乐高积木(例如:马达包、传感器包、控制器包)。主项目(Firmware 仓库)是总组装说明书。 * 总说明书告诉你需要哪些积木包(子模块)以及如何组装它们(构建系统)。 * 每个积木包都是一个独立的产品(独立的 Git 仓库),有自己的说明书和更新版本。 * 你可以轻松升级一包积木(例如更新 GPS 驱动子模块)而无需替换所有零件,只要接口匹配即可。 === 代码中的示例 === 在 PX4 的 `mc_att_control` (多旋翼姿态控制模块) 中,其 CMakeLists.txt 文件通过 `add_subdirectory(AttitudeControl)` 和 `DEPENDS AttitudeControl mathlib ...` 来声明对其内部算法子模块和数学库的依赖[3](@ref)。 <syntaxhighlight lang="cmake"> # 添加 AttitudeControl 子模块 add_subdirectory(AttitudeControl) px4_add_module( MODULE modules__mc_att_control MAIN mc_att_control SRCS mc_att_control_main.cpp DEPENDS AttitudeControl # 依赖 AttitudeControl 子模块 mathlib # 依赖数学库 px4_work_queue ) </syntaxhighlight>
返回
PX4子模块
。
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
无人智胜
PX4 介绍
PX4与ArduPilot对比
PX4与Pixhawk关系
PX4与NuttX关系
PX4 官方镜像
发布日志
QGC地面站下载
新手上路
首次飞行
机架选择
传感器校准
遥控器连接
遥控器校准
电机电调测试
飞行模式
六段开关飞行模式
参数列表
任务规划
安全飞行
飞控硬件
Pixhawk飞控
电机与电调
传感器指南
GPS与罗盘
数传与遥控
PX4二次开发
PX4源码目录
PX4核心源码
PX4机型目录
4001_quad_x
编译PX4
模块开发
驱动程序
仿真教程
调试技巧
传感器与估计
EKF2状态估计
IMU校准
视觉定位
光流定位
日志分析
机架与平台
飞行器气动布局
多旋翼无人机
固定翼无人机
VTOL无人机
无人地面车辆
无人船
外围设备
相机与云台
任务载荷
避障与导航
RTK-GPS
编程与开发
Linux
ESP32
STM32
ArduPilot
修改侧边栏
社区讨论
贡献文档
PX4官网
开发文档
工具
链入页面
相关更改
页面信息
导航
特殊页面