Гіроскоп читається надто повільно для частоти головного циклу
Що пише ArduPilot:
- Gyro N rate NHz < loop ratex1.8 NHz
- Gyro N rate NHz < loop rate*1.8 NHz
IMU має видавати відліки гіроскопа щонайменше в 1.8 раза швидше, ніж працює головний цикл (SCHED_LOOP_RATE). Повідомлення називає гіроскоп (відлік від 0), частоту, яку він справді видає, і потрібну частоту. З повільнішим гіроскопом регулятор орієнтації отримував би той самий відлік двічі.
Що робити: найімовірніше спершу
SCHED_LOOP_RATEпідняли вище, ніж цей IMU здатний забезпечити.ПеревіртеПоділіть останнє число в повідомленні на 1.8: це ваша частота циклу. Порівняйте з нею середнє число.
ВиправтеПоверніть
SCHED_LOOP_RATEдо типового значення для апарата й перезавантажте.IMU здатний працювати швидше, але швидке семплювання для нього не ввімкнено.
ПеревіртеВ
INS_FAST_SAMPLEнемає біта для цього IMU, абоINS_GYRO_RATEдорівнює 0 (1 кГц).ВиправтеВстановіть біт цього IMU в
INS_FAST_SAMPLEі піднімітьINS_GYRO_RATEна один крок, потім перезавантажте. Це забирає час процесора: на малій платі краще знизьте частоту циклу.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
SCHED_LOOP_RATE | Scheduling main loop rate |
INS_FAST_SAMPLE | Fast sampling mask |
INS_GYRO_RATE | Gyro rate for IMUs with Fast Sampling enabled |
Де це зробити:Порівняння й міграція параметрів
Код, який це надсилає
Gyro N rate NHz < loop ratex1.8 NHz
libraries/AP_InertialSensor/AP_InertialSensor.cpp AP_InertialSensor::pre_arm_check_gyro_backend_rate_hz() · Відкрити в ArduPilot Copter-4.6.3
Gyro N rate NHz < loop rate*1.8 NHz
libraries/AP_InertialSensor/AP_InertialSensor.cpp AP_InertialSensor::pre_arm_check_gyro_backend_rate_hz() · Відкрити в ArduPilot Copter-4.7.1