修改PX4飞控的 IMU 频率

本文介绍如何通过QGroundControl连接飞控并调整IMU频率,包括使用MAVLinkInspector观察频率,修改SD卡或固件源码实现开机自定义IMU发布速率,以适应KakuteH7等无SD卡飞控的固件升级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QGroundControl 连接上飞控后,打开 Analyze Tools 下的 MAVLink Inspector 界面

可以看到当前的 IMU 频率为50 HZ,或者在终端启动 mavros,终端输入

sudo chmod 777 /dev/ttyACM0
roslaunch mavros px4.launch

然后查看频率

rostopic hz /mavros/imu/data_raw

可以看到终端输出

可以看到 IMU 频率收敛到 50HZ 左右。

在QGC的 MAVLink Console 中执行命令:

mavlink stream -d /dev/ttyACM0 -s HIGHRES_IMU -r 100
mavlink stream -d /dev/ttyACM0 -s ATTITUDE_QUATERNION -r 100

可以看到 IMU 频率提高到了 100 HZ 左右,但是这在飞控下电后还原为 50 HZ,因此有以下两种方法可以开机自动设置为 想要的 IMU 频率。

方法一:修改 SD 卡(适用于有 SD 的飞控,如果没有 SD 卡则用方法二)

在飞控的sd卡的根目录下创建`/etc/extras.txt`,写入

mavlink start -d /dev/ttyACM0 -b 921600
mavlink stream -d /dev/ttyACM0 -s ATTITUDE_QUATERNION -r 200
mavlink stream -d /dev/ttyACM0 -s HIGHRES_IMU -r 200

将 SD 卡重新插入飞控,然后查看飞控 IMU 频率

可以看到 IMU 频率提高到了 173 HZ 左右, 没有到 200 HZ 是因为我的飞控最高只能到 173 HZ。

这个具体的原理就是配置PX4的开机启动文件,通过设置 MAVLink 发布的速率达到更改 mavros IMU发布频率的目的。

mavros话题 /mavros/imu/data_raw 对应的是 HIGHRES_IMU
mavros话题 /mavros/imu/data 对应的是 ATTITUDE_QUATERNION

方法二:修改固件源码然后重新烧写固件(适用于没有 SD 卡槽的飞控)

下载指定版本的 px4 源码

git clone -b v1.13.0 --recursive https://github.com/PX4/PX4-Autopilot.git

在PX4固件内的 mavlink_main.cpp 文件下,修改源码

然后编译自己飞控对应的 px4 固件,我这里是 Kakute H7

make holybro_kakuteh7_default

 进入DFU模式,刷写 PX4 固件

make holybro_kakuteh7_default upload

最后会停在下面这个地方 Waiting for bootloader...

拔插飞控即可读取,如果一直读取不到 bootloader,这里我没有管他,挂在后台,(注意一定要挂着,如果终止的话 QGroundControl 会无法识别飞控)然后打开 QGroundControl,点左上角的 Q 进入 Vehicle Setup,然后进入 Firmware 界面,接下来拔插 USB 连接线,右边会弹出一个窗口,然后选择自定义文件

~/PX4-Autopilot/build/holybro_kakuteh7_default/holybro_kakuteh7_default.bin

然后刷写固件,这样就将 PX4 固件刷写进 Kakute H7 中了。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值