雷迅Pixhawk V6X飞控实测

电子说

1.2w人已加入

描述

本文的数据对比以ArduPilot通用嵌入式平台软件为基础。参与对比的硬件是雷迅 Pixhawk V6X和上一代 STM32F4核芯的硬件平台(例如Pixhawk1、Pixhawk2.1)。

性能对比的基础有二:

其一,ArduPilot嵌入式软件跨STM32平台的特性。在不同的STM32平台上采用相同的RTOS、相同的 C++ 接口封装、相同的调度策略。

其二,Sugar用于对比的两架飞机,除电控系统外硬件无差别,且飞机足够大(内部电控系统的重量对飞机的影响可忽略)。

处理器

关注问题

Pixhawk V6X采用STM32H753IIK6双精度浮点运算单元处理器究竟能给飞控软件运行带来怎样的提升?

背景知识

飞控的实时日志里有微秒级时间戳,在日志里统一命名为 TimeUS。通过时间戳能够计算出各个任务的 调度频率,从而了解各任务调度的 稳定度 和 实时度。

数据表现

一、低频任务

C++

C++

右侧窄图是通过时间戳换算出的频率,纵轴单位是Hz。评价如下:

稳定度:Pixhawk V6X 的稳定度明显优于 STM32F4系列飞控。

10Hz的数据收敛度更高,5Hz的数据分散相对不频繁。

Pixhawk V6X 10Hz数据全程无降频,STM32F4系列飞控偶尔会发生降频(甚至低于5Hz)。

实时度:Pixhawk V6X与STM32F4系列飞控都可以保证大多数的调度频率符合设计要求。

二、中频任务

C++

C++

稳定度:Pixhawk V6X的稳定度明显优于STM32F4系列飞控。

实时度:Pixhawk V6X全程的调度频率符合设计要求,STM32F4系列有相当一部分数据与设计要求差距很大。

Sugar这些数据来源于VTOL的固定翼飞行过程,固定翼部分最高设计频率是50Hz。多旋翼部分的最高设计频率是400Hz,对多旋翼数据感兴趣的读者可以按Sugar提的这两点标准自行测试。

IMU

多重冗余

关注问题

多重冗余与保障飞行安全有什么关系?

背景知识

冗余的最大意义莫过于:在一组 IMU 发生故障时有其它备份可用。基于此点,IMU 数据的一致性就非常重要。如果各组 IMU 的一致性不好,那么切换动作的波动就会比较大,甚至由于滤波算法的整参数不同而不可预测。

若想要冗余对保障飞行安全有益,则需要对各个备份的数据一致性提出要求。

数据表现

一、Pixhawk V6X

C++

C++

依上 IMU0 和 IMU1 数据计算出的姿态角如下:

C++

Pitch 角的解算结果对比反映了 IMU0 和 IMU1 数据一致性是否可接受(在滤波参数一致的情况下)。

从 Pixhawk V6X 的解算结果看,IMU0 和 IMU1 的数据一致性表现非常不错。

通过 EK3_IMU_MASK 可以启用基于第 3 组 IMU 的姿态解算,通过 EK3_PRIMARY 可以指定姿态较好的一组解算结果作为默认优先使用的一组结果。

这里 Sugar 没有开启第 3 组姿态解算,就没有 IMU2 的解算数据,感兴趣的读者可以自行开启测试。

二、STM32F4 系列

C++

C++

对于STM32F4系列硬件,虽然看上去 IMU0 和 IMU1 的数据一致性还说得过去,但是在同样的滤波参数下 Pitch角的解算结果差异比较大。如果想要达到预想的备份效果则需要对两组EKF滤波分别调参,这无疑增大了工作量,算不上是好的备份。

减震

关注问题

能否通过一个数据指标评价各组IMU肉眼难以直观判断的震动情况?

背景知识

飞控软件里内置了一套实时的类方差算法,以25Hz频率运行,为各组IMU各轴的实时震动(离散程度)提供判断依据。但STM32F4系列因受内存大小限制,软件里只打开了一组计算,而Pixhawk V6X内存充足,打开了3组计算。

数据表现

C++

磁罗盘

关注问题

内置罗盘与外置罗盘数据表现是否一致?

背景知识

接入飞控系统的罗盘有“内置”和“外置”之分。外置罗盘通常与GPS在一起,安装在飞机外,与飞控不在一起。内置罗盘与飞控在一起。因为安装位置的差异,所以外置罗盘容易规避EMC问题。而内置罗盘因为与飞控一体,就要面对EMC问题。

数据表现

一、Pixhawk V6X

C++

二、STM32F4 系列

C++

明显Pixhawk V6X数据表现一致性更好,甚至内置罗盘(MAG2) 的数据相对于外置罗盘还更平滑一些。

Sugar猜测这与Pixhawk 2.1开始的Cube与底板分离的设计有关,因此也不能肯定 STM32F4系列就一定都不好。但Sugar手里没有Pixhawk 2.1硬件,因此没法去证实猜测。

双 GPS

关注问题

定位精度是否足够好?

背景知识

UBlox F9P支持差分定位。差分的使用方式有两种:一种是“地面端+飞机端”,另一种是都放在飞机上配置为“Base+Rover”。最明显能反映定位精度的是GPS的高度信息,如果不是差分,一个航线下来GPS高度与气压高度对比会有明显的差异变化。

数据表现

C++

Sugar的配置是“Base+Rover”的方式,全航线下来GPS高程变化与气压计高度变化一致,通过差值还能得知Sugar所在位置的GPS高程在130m左右。

最后给Pixhawk V6X 这个MicroSD卡稍凸出一点的设计和加工装配精度一个好评,对于 Sugar这样经常拔插卡读日志的人非常友好,用手上的肉一按就可以,不用像其他飞控一样要用指甲扣。

审核编辑 :李倩 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_10740089 2023-02-20
0 回复 举报
精彩的测评 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分