PX6C mini IMU发送速率修改
- 提高波特率
- 1、命令行方式
- 1.1 原始IMU数据
- 1.2 飞控计算过后的IMU数据
- 2、更改启动文件
提高波特率
提高发布频率过后数据的传送量一下变的大起来了,首先需要提高波特率。
我使用的PX4 6C mini。更改参数SER_TEL2_BAUD设置和上位机接的串口波特率为最大值。
1、命令行方式
mavros可以对飞控发送mavlink消息从而实现发布频率的更改。
启动mavros过后,输入下面的命令就可以更改相应的频率。
1.1 原始IMU数据
下面我们rostopic hz来前后对比一下IMU的频率。
rostopic hz /mavros/imu/data_raw
这个时候我们可以发现发布频率为50hz。
接下来新开一个终端输入下面命令。
rosrun mavros mavcmd long 511 105 4000 0 0 0 0 0
我们再次用rostopic hz查看频率发现频率提高到了200hz。
如果想要提到更高的频率只需要减小10000这个参数,这个就是设置时间间隔的现在间隔为10000us所以是100hz。
1.2 飞控计算过后的IMU数据
对于飞控计算过后的IMU数据类似的,不过命令不太一样。
rosrun mavros mavcmd long 511 31 4000 0 0 0 0 0
下面我们rostopic hz来看一下IMU的频率是否真的提高了
rostopic hz /mavros/imu/data
此时实际频率到达了100hz。
虽然通过这种方式简单,之后也可以加入launch文件,但是还是比较麻烦,每次都需要单独设置。下面通过设置开机启动文件的方式来解决这个问题。
2、更改启动文件
先把飞控的内存卡取出来,用读卡器插上,然后在根目录下面建立一个etc的目录,然后在目录下面新建一个extras.txt的文件。
然后把下面些内容复制进去保存退出过后,给飞控上电,之后测试频率就OK。
mavlink stream -d /dev/ttyACM0 -s ATTITUDE_QUATERNION -r 100
mavlink stream -d /dev/ttyACM0 -s HIGHRES_IMU -r 100
这个具体的原理就是配置PX4的开机启动文件,通过设置mavlink发布的速率达到更改mavrosIMU发布频率的目的。
- -d 选项后面的是指的mavlink的端口,我用的USB连接所以是/dev/ttyACM0 ,如果是串口1就是/dev/ttyS
- -s是发布的消息
- -r自然就是发布的速率
mavros话题 /mavros/imu/data_raw对应的是HIGHRES_IMU。
mavros话题 /mavros/imu/data对应的是ATTITUDE_QUATERNION。
这个命令可以直接在mavlink控制台里面输入,测试没问题了过后再写在SD卡里面。