MPU6050在ROS中应用

arduino下读取MPU6050数据

参考:http://diyhacking.com/arduino-mpu-6050-imu-sensor-tutorial/

硬件

  • arduino uno或arduino mega2560
  • mpu6050传感器(GY-521或GY-9150)
  • 杜邦线若干

连线

这里写图片描述

注意:如果使用arduino mega2560, mpu6050的SCL和SDA连线到arduino mega2560的pin21和pin20引脚。

程序

下载 http://diyhacking.com/projects/MPU6050.ziphttp://diyhacking.com/projects/I2Cdev.zip,解压后放到Arduino的libraries目录下,重启Arduino.

通过 File –> Examples –> MPU6050 –> Examples –> MPU6050_DMP6 打开程序并上传。
这里写图片描述

打开串口监控,设置波特率115200, 看到 “Send any character to begin DMP programming and demo: “ 时输入任意一个字符,然后发送。就能看到yaw, pitch 和roll的值,如下图所示。
这里写图片描述

注意: 最初10秒的数据是不准确的。

如果要修正mpu6050的偏移,请参考:
http://www.i2cdevlib.com/forums/topic/96-arduino-sketch-to-automatically-calculate-mpu6050-offsets/
该脚本计算出的偏移如下:

Sensor readings with offsets:   -3  -3  16375   -1  1   -1
Your offsets:   -2341   -1472    1260   181 -22 7

Data is printed as: acelX acelY acelZ giroX giroY giroZ
Check that your sensor readings are close to 0 0 16384 0 0 0

把该偏移带入mpu6050替换下面的值:

// supply your own gyro offsets here, scaled for min sensitivity
mpu.setXGyroOffset(220);
mpu.setYGyroOffset(76);
mpu.setZGyroOffset(-85);
mpu.setZAccelOffset(1788); // 1688 factory default for my test chip

替换后结果如下:


// supply your own gyro offsets here, scaled for min sensitivity
mpu.setXGyroOffset(181);
mpu.setYGyroOffset(-22);
mpu.setZGyroOffset(7);
mpu.setZAccelOffset(1260); // 1688 factory default for my test chip

在ROS中应用

参考:https://gi

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值