改变PX4飞控通过MAVLink发送IMU数据的频率
参考:https://docs.px4.io/master/en/middleware/mavlink.html
在QGC的MAVLink Console中执行命令:
mavlink stream -d /dev/ttyACM0 -s HIGHRES_IMU -r 100
然后可以看到:
- MAVLink Inspecter 中
HIGHRES_IMU
变成100Hz rostopic
中的/mavros/imu/data_raw
变成100Hz
重启后变回默认的50Hz。
以上方法可临时使用,下面方法可一劳永逸,亲测有效:
版权声明:本文为CSDN博主「dckwin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38649880/article/details/89419736
先把飞控的内存卡取出来,用读卡器插上,然后在根目录下面建立一个etc
的目录,然后在目录下面新建一个extras.txt
的文件。
然后把下面些内容复制进去保存退出过后,给飞控上电,之后测试频率就OK。
mavlink stream -d /dev/ttyS2 -s ATTITUDE_QUATERNION -r 100
mavlink stream -d /dev/ttyS2 -s HIGHRES_IMU -r 100
这个具体的原理就是配置PX4的开机启动文件,通过设置mavlink发布的速率达到更改mavrosIMU发布频率的目的。
里面的-d
选项后面的是指的mavlink的端口,我用的串口2所以是/dev/ttyS2
,如果是串口1就是/dev/ttyS1
,如果是USB连接的就是 /dev/ttyACM0
,-s
是发布的消息,-r
自然就是发布的速率了。
mavros话题 /mavros/imu/data_raw
对应的是HIGHRES_IMU
。
mavros话题 /mavros/imu/data
对应的是ATTITUDE_QUATERNION
。
这个命令可以直接在mavlink控制台里面输入,测试没问题了过后再写在SD卡里面。