0 前言
PX4的模块是构成PX4飞控系统的重要组成部分,负责实现特定的功能,如飞控算法、传感器数据处理、通信协议等。
每个模块负责特定的任务,例如:
-
navigator 模块负责航线规划与任务执行。
-
commander模块负责处理飞行模式切换和系统状态监控。
-
sensors模块负责传感器数据的采集与处理。
PX4的设计允许用户添加自定义模块,从而扩展系统的功能。模块之间通过UORB(微ORB)进行数据交换,实现高效的信息传递
本篇文章在PX4-AutoPilot 1.14.0版本中,加入了一个自定义的模块,打印了一条消息,作为PX4源码添加自定义模块方法。
1 PX4模块的代码架构介绍
在PX4的代码里 src/modules 文件夹下,有很多的不同名字的文件夹,每个文件夹就是一个模块
如下:
例如多旋翼位置控制任务文件夹 mc_pos_control ,点进入可以看到有一个cpp和hpp文件
打开MulticopterPositionControl.hpp文件,这个是一个头文件,头文件里面一般是一个类
里面有个重要的函数Run
和这个位置控制模块一样,一般的某块需要包含: