【画图】读取无人机IMU数据并打印成log用matlab分析

一、修改IMU频率

原来的imu没有加速度信息,查看加速度信息的指令为:

复制代码
rostopic echo /mavros/imu/data

修改imu频率,分别修改的是

  1. 原始IMU数据话题 /mavros/imu/data_raw

  2. 飞控计算过后的IMU数据 /mavros/imu/data

    rosrun mavros mavcmd long 511 105 10000 0 0 0 0 0
    rosrun mavros mavcmd long 511 31 10000 0 0 0 0 0

但是这个每次都要启动执行这句话,很麻烦,把他添加到脚本里,这样每次就不用手动输入了。

二、订阅话题信息

1.回调函数

定义一个回调函数,回调函数是当新消息到达主题时被调用的函数。它应该接收一个参数,即到达的消息,常见格式:

复制代码
def imu_data(data):  
    ...

我们需要的信息:

样例:

复制代码
def imu_data(msg):
    global imu_acc
    imu_acc=msg.linear_acceleration

2.创建一个订阅者

常见格式:

复制代码
rospy.Subscriber('my_topic', String, callback)

在这里,'my_topic' 是你要订阅的主题名,String 是你期望接收的消息类型,callback 是上面定义的回调函数。

为了查看消息类型,可以这样执行:

复制代码
rostopic type /mavros/imu/data

返回值:
sensor_msgs/Imu

所以,可以这样写订阅:

复制代码
rospy.Subscriber("mavros/imu/data", Imu, imu_data)#yhl

但是在此之前,还要安装一个包,让ros能识别Imu消息类型

复制代码
from sensor_msgs.msg import Imu  # 导入sensor_msgs包中的Imu消息类型 

3.打印log数据

复制代码
print("imu_acc:{}".format(imu_acc))#yhl

可以看到,打印了加速度数据

三、MATLAB分析数据

未完待续。。。

相关推荐
jghhh014 分钟前
基于MATLAB的分块压缩感知程序实现与解析
开发语言·算法·matlab
忆锦紫21 分钟前
图像增强算法:对比度增强算法以及MATLAB实现
开发语言·图像处理·matlab
Evand J22 分钟前
【MATLAB例程】二维平面中,基于MUSIC解算角度的DOA定位,对未知点确定XY坐标,传感器数量自适应。附代码下载链接
matlab·定位·导航·doa·到达角·测角定位
轻微的风格艾丝凡1 小时前
数织求解脚本技术文档
算法·matlab
shejizuopin15 小时前
基于强化学习的多无人机对抗决策生成与优化方法研究(开题报告+答辩PPT)
无人机·开题报告·答辩ppt·基于强化学习的·多无人机·对抗决策生成·与优化方法研究
fie888915 小时前
钢结构件制造车间生产调度实例:MATLAB实现(基于遗传算法)
开发语言·matlab·制造
Bigemap15 小时前
如何保存WAsp软件需要的 map格式(.map)的文件
人工智能·无人机·政务·bigemappro添加地图
foundbug99918 小时前
MATLAB中实现信号迭代解卷积功能
开发语言·深度学习·matlab
fengfuyao98521 小时前
基于Matlab的压缩感知梯度投影重构算法实现方案
算法·matlab·重构
e***985721 小时前
MATLAB高效算法实战:从基础到进阶优化
开发语言·算法·matlab