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
可以是mpu6050
或mpu9250
,根据您使用的传感器而定。
IMU_DLP_CONFIG
允许更改IMU的数字低通滤波器设置。较低的频率设置(见下文)可以滤除高频噪声,但会增加IMU传感器数据的延迟。
有效的设置范围是0到6:
0
250Hz1
184Hz2
92Hz3
41Hz4
20Hz5
10Hz6
5Hz
关于MPU9250的注意事项
在启动时,MPU9250驱动程序会执行校准以将加速度计和陀螺仪偏置归零。通常这个过程不到10秒钟,在此期间请避免移动或触摸小车。 请在启动Donkey之前将小车放在地面上。