【画图】读取无人机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分析数据

未完待续。。。

相关推荐
茗创科技26 分钟前
Nature Mental Health | 基于皮层相似性网络分析,揭示神经性厌食症的神经机制
matlab·数据分析·脑网络
李日华大战鸡红5 小时前
滑膜观测器(学习记录)
stm32·单片机·学习·matlab·机器人
YOLO数据集集合6 小时前
江西九江地区洪涝无人机高分辨率影像数据集 | 洪涝监测 语义分割 无人机遥感 淹没识别 灾害评估9157期
人工智能·yolo·目标检测·无人机·洪涝·洪水灾害
沈阳昊天环宇无人机小编辑6 小时前
实战外业实训|10 月中旬,沈阳周边无人机巡检 + 测绘项目实操,跟着项目练真本事
无人机
沈阳昊天环宇无人机小编辑6 小时前
沈阳无人机巡检不止电力,风电巡检实战要点分享
无人机
菜鸟~noob2338 小时前
【电子战】第21篇:扩展卡尔曼滤波(EKF)与动态跟踪【含matlab代码】
matlab·电子战
Zootopia6269 小时前
论文复现|五机编队任务链
c语言·c++·考研·无人机·创业创新·学习方法·高考
菜鸟~noob23320 小时前
【电子战】第三季预告—波武器与电子系统强力毁伤
开发语言·数据库·matlab·电子战
不悔哥21 小时前
无人机技术栈拆解:怎么才能做一台出来
无人机
菜鸟~noob2331 天前
【电子战】第20篇:凸优化与对数障碍法【含matlab代码】
开发语言·matlab