??
平台支持
PX4飞控固件不针对特定的车辆/机体模型进行开发,所以支持的平台的数量是无限的。目前主要有多旋翼、固定翼、垂直起降三类机型的固件。
软件结构
可分为三大部分:实时操作系统、中间件和飞行控制栈。
1.Nuttx实时操作系统
2.中间件
3.飞行控制栈
飞控软件设计
飞行控制需要可靠的定时和清晰的优先级。通过使用多线程操作系统和运行高效的驱动程序与中断优先级的正确调度可以保证控制循环执行。如果一个运行较慢的循环,需要更长的时间来处理,飞控系统并没有丢失。新的控制应用程序也可以添加,而不需要把应用程序加在主循环中。
模块设计
在每一层,每个驱动程序或控制器/状态估计程序都是一个独立模块,能够在运行期间互相通信。 这种清晰和模块化的设计不仅有助于支持更多机型(因为不存在特定机型的主循环),同时使得代码具有高度的可移植性。
Publish / Subscribe设计模式ORB
飞控中每个进程都可以通过Publish/Subscribe模式与其他进程以及驱动进行连接。该模式允许进程在无锁模式下通信,或者简化添加一个新的进程/应用,有很显著的效果。
飞行器上应用程序列表
以下应用程序随着在系统运行启动,其他的应用程序可以通过NuttShell命令来启动。为了得到完整的应用程序列表,可以在shell终端中输入help指令。另外可以在终端中输入top或者ps 命令来确定哪个当前哪个应用程序正在运行。
应用程序随着在系统启动时自动运行,所有的程序都记录在系统启动记录页面上。
shell命令
下面的是部分nuttshell命令。
span>—显示帮助信息
free–显示内存的使用情况
kill–终止一个进程
LS–目录列表
系统命令程序
mavlink
sdlog2
tests
top
uORB
驱动
mkblctrl–blctrl电子模块驱动
esc_calib
fmu
gpio_led
gps
pwm
sensors
px4io
uavcan
飞行控制的程序
飞行安全和导航
commander
navigator
估计姿态和位置
attitude_estimator_ekf
ekf_att_pos_estimator
position_estimator_inav–惯性导航的位置估计
multirotor姿态和位置控制器
mc_att_control–multirotor姿态控制器
mc_pos_control
fixedwing姿态和位置控制器
fw_att_control
fw_pos_control_l1
垂直起降姿态控制器
vtol_att_control
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!