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

未完待续。。。

相关推荐
大泽泽的小可爱4 小时前
NeurIPS24 | 多无人机协作精确预测车辆等目标移动轨迹, Drones Help Drones
无人机
顶呱呱程序4 小时前
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
算法·matlab·音视频·matlab-gui·音频滤波·脉冲响应不变法
简简单单做算法7 小时前
基于Retinex算法的图像去雾matlab仿真
算法·matlab·图像去雾·retinex
knighthood20017 小时前
解决:ros进行gazebo仿真,rviz没有显示传感器数据
c++·ubuntu·ros
其实吧317 小时前
基于Matlab的图像融合研究设计
人工智能·计算机视觉·matlab
梦想科研社20 小时前
【无人机设计与控制】基于Q-learning三次样条曲线求解三维无人机路径规划问题
无人机
安徽京准20 小时前
京准时钟:无人机卫星信号安全防护隔离装置
安全·无人机·信号安全防护装置·卫星安全隔离装置·北斗授时安全隔离·北斗对时防护隔离装置
Matlab程序猿小助手1 天前
【MATLAB源码-第208期】基于matlab的改进A*算法和传统A*算法对比仿真;改进点:1.无斜穿障碍物顶点2.删除中间多余节点,减少转折。
开发语言·嵌入式硬件·算法·matlab·机器人
IT猿手1 天前
基于卷积神经网络(CNN)的时间序列预测,15个输入1个输出,可以更改数据集,MATLAB代码
人工智能·深度学习·神经网络·算法·matlab·cnn
其实吧31 天前
基于MATLAB的运动车辆跟踪检测系统
开发语言·matlab