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

未完待续。。。

相关推荐
Evand J1 小时前
matlab绘图——彩色螺旋图
开发语言·matlab·信息可视化
wenxin-3 小时前
NS3网络模拟器中如何利用Gnuplot工具像MATLAB一样绘制各类图形?
开发语言·matlab·画图·ns3·lr-wpan
硬汉嵌入式9 小时前
《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压
vscode·matlab·开源
小熊科研路(同名GZH)19 小时前
【Matlab高端绘图SCI绘图模板】第002期 绘制面积图
开发语言·matlab
陈傻鱼1 天前
ROS2测试仿真
机器人·ros·slam
肖田变强不变秃1 天前
C++实现矩阵Matrix类 实现基本运算
开发语言·c++·matlab·矩阵·有限元·ansys
白嫖叫上我2 天前
Ceisum无人机巡检直播视频投射
无人机·cesium·webgis
jk_1012 天前
MATLAB中characterListPattern函数用法
开发语言·matlab
Mr.Winter`2 天前
轨迹优化 | 基于ESDF的非线性最小二乘法路径平滑(附ROS C++仿真)
人工智能·科技·机器人·自动驾驶·ros·最小二乘法·ros2
创小董2 天前
无人机+无人车+无人船+机器狼:无人装备技术优势详解
无人机