IMU(惯性测量单元)

IMU,或称惯性测量单元,是一种用于感知机器人上的惯性力的装置。根据传感器的不同,IMU可以包括线性和旋转加速度等信息。有时,它们还可以包含磁力计以提供全局指南针朝向方向。由于温度会影响其灵敏度,因此通常可以从IMU中获取温度信息。

MPU6050/MPU9250

这是一种廉价、小巧且适度精确的IMU。通常可以在淘宝上购买到。

MPU9250还提供了集成的磁力计。

  • 通常使用I2C接口,并可以连接到默认的PWM PCA9685板上。这种配置也会提供电源。
  • MPU6050:输出X、Y、Z轴的加速度、陀螺仪和温度。
  • MPU6250:输出X、Y、Z轴的加速度、陀螺仪、磁力计和温度。
  • 芯片内置16位AD转换器,输出16位数据。
  • 陀螺仪范围:+/- 250、500、1000、2000度/秒。
  • 加速度范围:±2、±4、±8、±16g。

软件设置

安装smbus

  • 从软件包安装:
 sudo apt install python3-smbus
  • 或从源代码安装:
sudo apt-get install i2c-tools libi2c-dev python-dev python3-dev
git clone https://github.com/pimoroni/py-smbus.git
cd py-smbus/library
python setup.py build
sudo python setup.py install

对于MPU6050:

安装mpu6050的pip库:

pip install mpu6050-raspberrypi

对于MPU9250:

安装mpu9250-jmdev的pip库:

pip install mpu9250-jmdev

配置

将以下配置添加到myconfig.py文件中:

#IMU
HAVE_IMU = True
IMU_SENSOR = 'mpu9250'          # (mpu6050|mpu9250)
IMU_DLP_CONFIG = 3

IMU_SENSOR可以是mpu6050mpu9250,根据您使用的传感器而定。

IMU_DLP_CONFIG允许更改IMU的数字低通滤波器设置。较低的频率设置(见下文)可以滤除高频噪声,但会增加IMU传感器数据的延迟。 有效的设置范围是0到6:

  • 0 250Hz
  • 1 184Hz
  • 2 92Hz
  • 3 41Hz
  • 4 20Hz
  • 5 10Hz
  • 6 5Hz

关于MPU9250的注意事项

在启动时,MPU9250驱动程序会执行校准以将加速度计和陀螺仪偏置归零。通常这个过程不到10秒钟,在此期间请避免移动或触摸小车。 请在启动Donkey之前将小车放在地面上。