项目简介
本项目是基于ROS(机器人操作系统)构建的MPU6050 IMU数据处理与可视化系统。系统可接收MPU6050 IMU传感器的原始数据,借助节点完成数据格式转换,并在RViz中进行可视化展示。项目包含两部分,一是用于从MPU6050传感器读取原始数据的Arduino代码,二是用于接收数据、转换为ROS消息格式并实现可视化的ROS节点。
项目的主要特性和功能
- Arduino代码提供与MPU6050传感器通信的库,可读取传感器数据、设置参数及进行校准。
- ROS节点接收Arduino节点发送的原始数据,转换为ROS消息格式,通过RViz实现可视化。
- 接收原始数据后,经回调函数处理,将四元数转换为
sensor_msgs/Quaternion
和geometry_msgs/Pose
等ROS消息格式。 - 利用RViz工具,通过自定义插件在3D环境中展示IMU数据,包括方向、加速度等。
- 支持动态配置参数,如是否启用磁力计、是否使用固定帧作为方向参考等。
- 具备错误处理机制,在通信或数据转换出现问题时给出警告或错误信息。
安装使用步骤
安装Arduino IDE
从[https://downloads.arduino.cc/arduino-ide/arduino-ide_2.2.1_Linux_64bit.AppImage?_gl=11f4iy9f_gaNDM5OTIwMzQzLjE2OTk3NTk1MzM._ga_NEXN8H46L5*MTcwMDMxMjA3NC4xMS4wLjE3MDAzMTIwNzQuMC4wLjA.]下载Arduino IDE 2 appimage文件。右键点击下载文件,选择“属性” - “权限”,勾选“允许作为程序执行文件”。
安装Arduino依赖
bash
sudo apt-get update
sudo apt-get install ros-noetic-rosserial-arduino
sudo apt-get install ros-noetic-rosserial
在Arduino文件夹内创建libraries文件夹,然后执行:
bash
cd ~/Arduino/libraries
rosrun rosserial_arduino make_libraries.py <path of arduino libraries>
下载并编译项目
bash
cd ~/<work space>/src
打开<work space>/src/ros_mpu6050_arduino/
,复制“ros.h”和“Arduinohardware.h”,粘贴到Arduino/libraries/ros_lib/
并删除该位置的原文件。
打开新终端:
bash
cd <work space>
catkin_make
gedit ~/.bashrc
在.bashrc
文件最后一行添加source ~/< work_space >/devel/setup.bash
。
上传Arduino代码
bash
sudo ls -l /dev/ttyACM*
sudo chmod 777 /dev/ttyACM0
或
bash
ls -l /dev |grep ttyUSB
sudo chmod 777 /dev/ttyUSB0
注意:代码中不要使用Serial.begin
或serial.print
。
运行项目
- 启动ROS主节点:
bash roscore
- 启动ROS中的串口通信:
bash rosrun rosserial_python serial_node.py /dev/ttyUSB0 _baud:=500000
或bash rosrun rosserial_python serial_node.py /dev/ttyACM0 _baud:=500000
- 运行启动文件:
bash roslaunch mpu6050_imu_driver mpu6050_imu.launch
运行过程中,可能需根据具体硬件连接和配置调整代码参数,以确保数据正确传输和显示。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】