模板: 10 DOF IMU Sensor Introduction

来自Waveshare Wiki
跳转至: 导航搜索

简介

板载ICM20948芯片包含3轴加速度、3轴角速度、3轴磁力计传感器,下图为传感器的坐标轴定义:
10 DOF IMU Sensor coordinate axis.png

基本设置

加速度传感器

  • 加速度传感器输出的数据为运动加速度与重力加速度的合成值。
  • 当传感器静止放置时,运动加速度为0,此时传感器输出的3轴数值为重力加速度在各坐标轴上的分量。
  • 如果是水平放置,此时理论输出值为 X轴0g、Y轴0g、Z轴-1g。Z轴输出为负值是因为重力加速度方向是向下,而传感器Z轴方向是向上,所以为负值。这里正负仅表示加速度方向与坐标轴方向的关系。
  • 这里需要注意的是,即便传感器绝对水平放置,加速度传感器输出的值也不会等于理论值(0g,0g,-1g),这是因为每颗传感器都有自己独特的零偏存在。在实际使用过程中可以视情况适当去除零偏误差,一般可采集数据后做数据拟合等方法进行去除。

ICM20948加速度量程设置

  • ICM20948支持多种量程,包括±2g、±4g、±8g、±16g,在示例程序中采用的是±2g,如果需要更改量程,可以通过修改<ACCEL_CONFIG>寄存器,下图为datasheet中<ACCEL_CONFIG>寄存器取值与量程的对应关系:

10 DOF IMU Sensor Range.png

  • 以STM32示例代码为例,±2g在代码中设置方法如下:
I2C_WriteOneByte( I2C_ADD_ICM20948, REG_ADD_ACCEL_CONFIG,
                  REG_VAL_BIT_ACCEL_DLPCFG_6 | REG_VAL_BIT_ACCEL_FS_2g | REG_VAL_BIT_ACCEL_DLPF);
  • 如果需要修改为±8g,做如下修改即可:
 I2C_WriteOneByte( I2C_ADD_ICM20948, REG_ADD_ACCEL_CONFIG,
                  REG_VAL_BIT_ACCEL_DLPCFG_6 | REG_VAL_BIT_ACCEL_FS_8g | REG_VAL_BIT_ACCEL_DLPF);

ICM20948加速度单位转换

  • 不同量程时,从传感器寄存器读出的原始值,需要除以相应的转换系数,即可转换为单位为g的加速度,下表各量程对应的系数值:

10 DOF IMU Unit conversion.png

  • 当量程为±2g, 传感器原始值/16384即可得到单位为g的加速度值。

角速度传感器

  • 角速度传感器得到的数值为绕各坐标轴旋转的角速度,当旋转方向与坐标轴标注方向相同时为正,旋转方向与坐标轴标注方向相反时为负。角速度同样存在零偏误差,一般可采用静止放置取均值的方法进行去除。

ICM20948角速度量程设置

  • ICM20948支持多种量程,包括±250、±500、 ±1000、±2000°/sec,在示例程序中采用的是±1000°/sec,如果需要更改量程,可以通过修改<GYRO_CONFIG_1>寄存器,下图为datasheet中<GYRO_CONFIG_1>寄存器取值与量程的对应关系:

10 DOF IMU Angular velocity range.png

  • 以STM32示例代码为例,±1000°/sec在代码中设置方法如下:
I2C_WriteOneByte( I2C_ADD_ICM20948, REG_ADD_GYRO_CONFIG_1,   
                  REG_VAL_BIT_GYRO_DLPCFG_6 | REG_VAL_BIT_GYRO_FS_1000DPS | REG_VAL_BIT_GYRO_DLPF);
  • 如果需要修改为±2000°/sec,做如下修改即可:
I2C_WriteOneByte( I2C_ADD_ICM20948, REG_ADD_GYRO_CONFIG_1,   
                  REG_VAL_BIT_GYRO_DLPCFG_6 | REG_VAL_BIT_GYRO_FS_2000DPS | REG_VAL_BIT_GYRO_DLPF);

ICM20948角速度单位转换

  • 不同量程时,从传感器寄存器读出的原始值,需要除以相应的转换系数,即可转换为单位为°/sec的角速度,下表为各量程对应的系数值:

10 DOF IMU Angular velocity unit conversion.png
当量程为±1000°/sec, 传感器原始值/32.8即可得到单位为°/sec的角速度。

磁力计传感器

  • 磁力计传感器测量的是传感器周边磁场大小,当附近没有较强磁场(电机等)时,磁力计传感器输出的数值为地磁场在三个坐标轴的分量。

ICM20948磁力计

  • 从传感器寄存器读出的原始值,需要乘以转换系数,即可转换为单位为μT($10^-6$特斯拉)的磁场强度,下表为ICM20948中磁力计的转换系数:

10 DOF IMU Magnetometer conversion coefficient.png
既传感器原始值*0.15即可得到单位为μT的磁场强度。