打造自平衡无线电遥控远程呈现机器人的控制秘籍
1. 传感器数据处理与滤波
在机器人代码中,对 IMU(惯性测量单元)进行采样后,紧接着会对名为 pitchFilter 的 CompFilter 对象执行滤波更新操作,将最新的 IMU 测量值输入其中:
// 采样 IMU
imu.getEvent(&accel, &gyro, &temp);
pitchFilter.update(gyro.gyro.x, accel.acceleration.z, accel.acceleration.y, imu_task::kInterval * 1000);
这里需要注意的是,按照我们安装 IMU 的方式,俯仰轴为 x 轴,而两个相关的加速度计轴分别为 y 轴和 z 轴。缩放因子 1000 用于将 imu_task 的 kInterval 变量从毫秒转换为微秒,以匹配 CompFilter API 的要求。
由于这种方法仍然依赖于对陀螺仪速率进行积分,因此消除小尺寸 MEMS IMU 中不可避免的系统偏移是很有必要的。 CompFilter 库允许我们通过 setGyroOffset() 方法来设置偏移量。在复位后测量该偏移值( gyro_x_offset )时,我们会在 setup() 函数中计算连续多个样本的平均值
超级会员免费看
订阅专栏 解锁全文

1041

被折叠的 条评论
为什么被折叠?



