10 DOF ROS IMU (A)
来自Waveshare Wiki
| ||||||||||||||||||||
| ||||||||||||||||||||
产品简介
10 DOF ROS IMU (A) 是一款10轴imu传感器, 集成ARM32位DSP处理器、BLE5.3蓝牙、高精度加速计、陀螺仪、磁力计、温度气压计, 搭配使用,可以采集周围加速度,陀螺仪,磁力计等数据,检测机器人运动姿态。
产品特性
- 采用自主研发的姿态解算算法,强实时、高精度、稳定不漂移。
- 利用串口、BLE5.3蓝牙通信,辅助机器人运动姿态和方位检测。
- 支持 Android、IOS、Windows、Linux 系统以及其它 BLE 蓝牙设备连接使用。
产品参数
产品 | 10 DOF ROS IMU (A) |
供电范围 | 3.3V~5V |
波特率 | 115200 |
接口封装 | ZH1.5-4A |
通讯格式 | 8数据位,1停止位,无校验位 |
数据包格式 | 前导码+起始码+地址+长度+数据体+校验码+结束码 |
数据输出 | 加速度、角速度、磁场向量温度、大气压、欧拉角、四元数 |
加速度计特性 | 量程:±16g 分辨率:0.00048g |
陀螺仪特性 | 量程:±2000°/s 分辨率:0.061°/s |
磁力计特性 | 量程:±8Guass 分辨率:0.12uT |
温度计特性 | 量程:-45℃~85℃ 分辨率:0.01℃(板上温度) |
气压计特性 | 量程:300~1200hPa 分辨率:0.006hPa |
接口说明
引脚号 | 标识 | 描述 |
1 | 5V | 3.3V~5.0v电源 |
2 | G | 接GND,地引脚 |
3 | Rx | 串行数据接收引脚 |
4 | Tx | 串行数据发送引脚 |
硬件连接
1. 串口端连接,红线VCC 黑线GND 蓝线TXD 黄线RXD
2. 本产品不含 USB 转 UART 串口模块
轴向说明
10 DOF ROS IMU (A)轴向如上图所示,符合右手坐标系
产品尺寸
例程使用
串口通信
-
安装串口驱动,查找设备端口号
根据串口转换模块芯片类型安装对应驱动 以Windows为例.端口号如下图所示
-
安装所需依赖
Windows、Linux:pip install pyserial numpy pygame PyOpenGL
-
初始化
修改第8行 ser_port = "COM13" 替换成对应的串口,十秒内,把模块Z轴垂直于水平面和Z轴平衡于水平面分别在水平面上旋转一圈以上
Windows、Linux:python3 imu_init.py
- 执行数据解析代码
修改第7行 ser_port = "COM13" 替换成对应的串口
- Windows:通常是COMx.
python3 imu_uart.py
- Linux:系统不同端口不同, 比如 /dev/ttyUSBx、/dev/ttySx,可以通过热插拔设备查询设备来确认新增加的设备
ls /dev/tty*
python3 imu_uart.py
-
GUI可视化界面
需要停止上一步的数据解析程序,执行以下程序python3 imu_uart_gui.py
蓝牙通信
-
安装蓝牙调试软件,查找设备MAC地址
- 安卓端安装nRF Connect
- 苹果端安装LightBlue
- 安卓端安装nRF Connect
-
安装所需依赖
- Windows:
pip install bleak numpy
- Linux:
sudo apt-get install bluez libbluetooth-dev
pip install gatt
-
执行代码
使用前,建议先执行串口通信中的初始化步骤
- Windows:修改第14行 par_device_addr="70:53:B2:02:20:02" 替换为第一步查到的MAC地址
python3 imu_ble.py
- Linux:替换为第一步查到的MAC地址
python3 imu_ble.py 70:53:B2:02:20:02
ROS串口通信
以串口“/dev/ttyUSB0”为例
-
查找设备端口号
- 通过热插拔设备查询设备来确认新增加的设备
ls /dev/tty*
- 赋予串口权限:
sudo chmod 666 /dev/ttyUSB0
-
安装所需依赖
- ROS1 noetic:
sudo apt update && sudo apt install ros-noetic-serial ros-noetic-imu-tools
- ROS2 humble:
安装串口库
cd serial && mkdir build && cd build cmake .. && make sudo make install
安装其他依赖
sudo apt update && sudo apt install libserial-dev ros-humble-imu-tools
- ROS1 noetic:
-
编译
- ROS1 noetic:
catkin_make -DCATKIN_WHITELIST_PACKAGES="imu"
更新环境变量
source devel/setup.bash
- ROS2 humble:
进到工作空间的根目录,编译
colcon build --packages-select imu
更新环境变量
source install/setup.bash
- ROS1 noetic:
-
执行数据解析代码
- ROS1 noetic:
roscore
新开窗口解析数据
rosrun imu imu_node _port_name:=/dev/ttyUSB0
新开窗口查看数据
rostopic echo /imu/data
- ROS2 humble:
新开窗口解析数据
ros2 run imu imu_node --ros-args --param port_name:=/dev/ttyUSB0
新开窗口查看数据
ros2 topic echo /imu/data
- ROS1 noetic:
-
RVIZ可视化界面
需要停止上一步的数据解析程序,执行以下程序
- ROS1 noetic:
roslaunch imu imu_view.launch port_name:=/dev/ttyUSB0
- ROS2 humble:
ros2 launch imu imu_view.launch.py port_name:=/dev/ttyUSB0
程序下载
1. 点击下载文件:10 DOF ROS IMU (A) Code.rar
2. 请安装相关库,再运行示例程序, ROS示例程序请在ROS系统上编译使用
FAQ