MPU6050中数据输出教程

时间:2024-03-17 08:30:31

硬件准备

  • MPU6050模块
  • Arduino UNO开发板
  • 杜邦线若干

第一部分:通过串口调试助手查看IMU输出值

第一步:接线

MPU6050中数据输出教程

第二步:烧录程序

  • 从网上下载已有程序
  • 解压缩
    • 将第一个文件解压缩得到的文件夹和第2个文件夹,复制到Arduino安装目录的libraries文件夹内,重启Arduino。
      注意:在ubuntu16.04中,将上面两个文件夹复制到~/sketchbook/libraries内
  • 烧录程序
    • 通过 文件 –> 示例 –> MPU6050 –> Examples –> MPU6050_DMP6 打开程序,上传。
      MPU6050中数据输出教程
  • 遇到的一些问题总结:
    • 上传的时候找不到I2Cdev.h文件。因为之前下载的I2Cdev没有找对,下载下来的文件失效,我已经给了正确的下载地址。
    • 无法选择串口
      • win7系统下:重新安装驱动。
        • 控制面板–> 设备管理器–> 端口(COM和LPT)–> Arduino UNO(COM3)–> 驱动程序–> 更新驱动程序–> 浏览我的计算机以查找驱动程序软件(R)–Arduino IDE安装路径/drives/x86(64位的操作系统选择这个文件夹)
      • ubuntu16.04系统下:卸载brltty程序,重启电脑。
        • 因为该程序与串口选择冲突,卸载brltty即可解决问题。通过sudo apt-get remove brltty。
  • 打开串口监控,设置波特率115200, 看到 “Send any character to begin DMP programming and demo: “ 时输入任意一个字符,然后发送。就能看到yaw, pitch 和roll的值,如下图所示。
    MPU6050中数据输出教程

第二部分:使用ROS可视化

第一步:烧录程序

  • 新建项目
    在arduino中,新建一个项目,复制文件 –> 示例 –> MPU6050 –> Examples –> MPU6050_DMP6的内容。
    注意:是复制MOU6050_DMP6整个文件夹的内容。
  • 修改程序
    加注释:”#define OUTPUT_READABLE_YAWPITCHROLL”
    去注释:“#define OUTPUT_TEAPOT”
  • 上传程序

第二步:创建ROS工作空间

  • 在ROS的工作目录下,下载和编译代码
    默认环境:ubuntu16.04,且已经安装了ROS-kinetic
sudo apt-get install ros-kinetic-serial  

cd ~catkin_ws/src/
git clone https://github.com/fsteinhardt/mpu6050_serial_to_imu
git clone https://github.com/ccny-ros-pkg/imu_tools

cd ~catkin_ws/
catkin_make 
source ~catkin_ws/devel/setup.bash
  • 运行如下命令,就可以把mpu6050的值转换为ROS的/imu 消息,同时通过rviz看到mpu6050朝向的变化。
 roslaunch mpu6050_serial_to_imu demo.launch 
  • 但是并不能够在viz看到IMU实时的变化,有哪位大声可以指点一下吗?
    MPU6050中数据输出教程

参考资料:

https://maker.pro/arduino/tutorial/how-to-interface-arduino-and-the-mpu-6050-sensor https://blog.csdn.net/EAIBOT/article/details/51398074