模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

665查看 | 0回复

命令响应与状态切换(下) 来自知乎沈阳无距科技

[复制链接]
发表于 2022-10-23 19:08:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
无人机中级篇:第十三讲:命令响应与状态切换(下) 命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 9190
沈阳无距科技

工业级无人机的中国名片





​关注
在本节我们来学习Commander中的3种状态切换过程,其中包括无人机的解锁状态处理、主状态处理和导航状态处理。这3种状态是无人机中非常重要的状态,直接影响飞机的控制导航逻辑和控制逻辑,进而影响飞机的实际飞行效果。下面我们就来分别对这3种飞行状态的处理过程进行分析:
一、arming_state解锁/锁定状态
解锁状态在PX4飞控程序中的定义名称为Arming state表示飞机当前的解锁和锁定状态,它被定义成vehicle_status.msg这个uORB中的uint8 arming_state属性,实际上arming_state并不仅仅用于表示“锁定”和“解锁”这两个状态,它一共有6个状态也定义在vehicle_status.msg这个UORB当中,其内容如下:

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 8491
实际上,Arming state是为了表示无人机在整个飞行过程中可能出现的基本状态,其中只有Arming state为ARMING_STATE_ARMED时,才表示飞控解锁,也就是电机解锁。用于表示飞控实际对电机“锁定”和“解锁”状态的变量并非Arming state,而是actuator_armed.msg这个uORB的bool armed属性。注意这个变量是一个布尔型变量,它只表示无人机系统“解锁”和“锁定”这两个状态。
上述的6个状态切换图如下:


命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 9689
在PX4程序中使用了一个二位数组来表示此状态机的切换关系,如下:

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 2456
在这个表示Arming state的二位数组中,每一行表示无人机需要切换的新的状态,每一列表示当前状态。从当前状态切换到新状态时的限制条件就是arming_transitions这个二位数组的值,如果为true表示允许切换,如果为false表示不允许切换。

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 6683
二、main_state主状态
主状态就是我们之前所介绍的无人机的飞行模式。切换主状态就是切换飞行模式,使无人机进入不同的飞行控制逻辑当中。当然,飞控的主状态不可以任意切换,切换到不同的主状态需要不同的前提条件。每一种状态的条件前提我们可以按下表进行判断:

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 8638
用于表示主状态的变量被定义为commander_state.msg这个uORB中的uint8 main_state属性。其实际值与所表示的状态对应关系如下:

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 2672
在主状态切换函数main_state_transition()处理了主状态的切换逻辑,具体代码如下:

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 209
以上代码中所处理的逻辑与上述表格中的内容一致,不再赘述。
三、导航状态
导航状态被定义在vehicle_status.msg这个uORB的uint8 nav_state属性,其实际值与导航状态的对应关系如下:

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 8615
与主状态切换不同,无人机会根据当前状态与不同的条件对导航状态进行降级评估,也就是说如果当前飞行模式的必要条件如果不满足,则会切入到一个较为安全的导航状态。在正常情况下,导航状态值会被保持与主状态一致。

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 2989
但是,在实际飞行中,会遇到很多异常情况,飞控程序会根据预先对相关保护参数的设定值修改导航状态,例如,当数传信号丢失后的处理方法如下:

命令响应与状态切换(下)   来自知乎沈阳无距科技 无人机,飞控,电机,导航,AI 作者:15519743871 7707







您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!