PX4之commander详解

Commander模块在PX4中负责处理各种事件,如遥控输入、用户指令和状态变更,通过一个while循环执行一系列检查和处理,包括参数更新、电源按钮状态、手动输入、离线控制、数据通道检测、飞行状态检查等。此外,它还涉及电机状态管理、安全检查、任务处理和遥控输入等,确保飞行控制系统按照预期模式运行。
摘要由CSDN通过智能技术生成

如前所述commander的作用主要处理各种事件,调度控制系统的运行,事件包括遥控输入、用户指令、状态变更等。调度的作用主要设置控制系统运行的变量和模式,以使控制系统按照用户期望的模式运行,实现不同的控制功能。控制系统主要由navigator,pos_control,att_control构成。这里引用的是PX4略早期的一个版本,不同版本的PX4处理流程略有不同,整体框架大致上应该是一样的。

commander的处理在commander.cpp中的Commander::run()函数中实现

在进行一系列的初始化程序之后,进入一个while循环,这个while循环为commander的工作流程。按照一定频率运行,每一个循环依次检查各种事件和信息,进行处理。每一个循环的主要处理流程如下所示。其中右边文字备注了对应的处理以及相关的状态和标志位。

进行的顺序为
1 参数更新(param update),检查已有的参数更新,如有更新则进行相应的处理
2 检查电源按钮状态(power button check),如果检测到按下状态,则执行关闭系统(shutdown)
3 更新手动输入(manual input),主要是用户通过遥控器(Radio Controller)的输入
4 离线控制检查(offboard control check),离线控制指通过上位机发送到飞控板的控制指令
5 数据通道检测(telemetry status check),检查所有的数据链通道
6 飞行检查(flight check),主要检查传感器(加速度计、陀螺仪、气压计等)的状态,设置对应的标志位(flag)
7 系统供电检查(system power check),这里主要是飞控板的供电检查
8 安全检查,这里主要检查ekf的输出安全性,如果通过则把arming state切换到standby
9 更新位置信息(position update)
10 位置准确性检查(position accuracy check)
11 着陆检查(land detect check)
12 CPU载荷检查(cpuload check)
13 电池状态检查(battery status check)

14 子系统检查(subsystem check),子系统包括传感器等
15 电机状态(arming state)从init切换到standby,standy状态允许电机启动
16 任务结果处理(mission result handle)
17 地理栅栏更新与处理(geofence update & handle)
18 摇杆拨动处理(stick move handle)
19 任务飞行结束检查(mission flight termination check)
 20 遥控输入处理(rc input check & handle)

21 数据链检查(datalink check)
22 电机故障检查(actuator failure detect)
23 起飞完成处理(takeoff complete handle),起飞完成后切换到auto mission或auto loiter状态
24 遥控失联处理(rc signal lost handle),飞行状态切换到loiter
25 命令检查和处理(command check&handle),处理用户指令
26 故障检查(failure check)
27 返航位置检查和更新(home position check & update)

28 设置导航模式(set nav_state)
29 设置控制模式(set control_state)
30 播放音调(play tunes),根据状态、发生的事件播放对应的音调
31 闪烁指示灯(blink LEDs),根据飞行器状态按对应模式闪烁指示灯

 

 

 

 

 

其中主要的处理任务用黄色的方框进行表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值