【视频教程】PX4 MAVROS Topic 消息频率修改 提高飞控IMU数据输出频率
通过USB连接MicoAir743飞控至电脑
QGroundControl -> Analyze Tools -> MAVLink 检测
切换到QGroundControl -> Analyze Tools -> MAVLink 控制台 ,输入以下指令:
mavlink stream -d /dev/ttyACM0 -s HIGHRES_IMU -r 100
ttyACM0 表示 USB
HIGHRES_IMU 表示指定修改频率的 Mavros Topic
100 表示 指定发送频率;
代码表示设置 HIGHRES_IMU 发送到 USB 口的数据频率为 100Hz
注意:
飞控串口硬件序号参考飞控说明文档(如,MicoAir743 Telem1 为 ttyS0;NxtPX4 Telem1 为 ttyS0)
如果使用串口,该串口模式需设置为 Onboard
发送频率同时受飞控硬件条件和数据链路带宽限制,实际频率不一定能达到设定值
使用方法一在飞控重启后会恢复成默认速率,需要重新设置
设置指令要求指定端口已启动,未启动端口会导致该指令执行失败
根目录下创建 /etc/extras.txt
,编辑加入以下内容:
mavlink start -d /dev/ttyACM0 -b 921600
mavlink stream -d /dev/ttyACM0 -s HIGHRES_IMU -r 200
飞控启动后会执行一次该文件里的指令
QGroundControl -> Analyze Tools -> MAVLink 检测
可以看到,设置已经生效,但实际上由于飞控硬件条件限制, HIGHRES_IMU 数据发送频率只有 185Hz 左右;在实际使用中,应该把数据频率控制在能够达到的合适范围
注意:
飞控上电后,USB 口只有接入电脑或机载电脑后才启动,飞控先启动再接入 USB 口,将导致在执行该文件时指令执行失败,设置发送频率不成功;
飞控上电后,串口 (配置过参数的)无论是否接入设备会直接启动,并执行该指令;
MicoAir743 及 NxtPX4v2 飞控板配置文件已合并到 PX4-Autopilot 官方仓库,可自定义修改并编译固件
参考 PX4-Autppilot 官方教程:https://docs.px4.io/main/en/development/development.html
修改 /src/modules/mavlink
文件目录下 mavlink_main.cpp 文件
编译MicoAir743飞控的PX4固件
make micoair_h743_default
编译NxtPX4v2飞控的PX4固件
make hkust_nxt-dual_default
在代码中修改为了150Hz并在QGC中验证