Калібрування оптичного потоку відхилило свій результат
Що пише ArduPilot:
- … scalar…:N.N too low (<N.N)
- … scalar…:N.N too high (>N.N)
- … scalar…:N.N fit:N.N too high (>N.N)
- … no better scalar…:N.N (fit:N.N > orig:N.N)
- FlowCal: failed to start
- … failed because of zero flow rate
Тут пояснено ще: 1
- … failed because no samples
Зразки зібрано, але результат не прийнято, і FLOW_FXSCALER та FLOW_FYSCALER лишаються, як були. «too low (<0.2)» або «too high (>4.0)»: знайдений множник поза межами 0.2–4.0, а це значно більше, ніж можна пояснити об'єктивом. «fit … too high (>0.5)»: зразки суперечать один одному. «no better scalar»: найкращий множник пасує гірше за теперішнє налаштування. Літера x чи y після «scalar» — вісь, на якій стався збій.
Що робити: найімовірніше спершу
Датчик встановлено повернутим відносно апарата, тож його осі чи знаки не збігаються.
ПеревіртеВід'ємний чи близький до нуля множник («too low») означає, що потік рухається не в той бік або по іншій осі. У лозі порівняйте OF.flowX з OF.bodyX під час крену: вони мають рухатися разом.
ВиправтеЗадайте
FLOW_ORIENT_YAWкут повороту датчика (у сотих градуса: 9000 для 90° за годинниковою стрілкою) і відкалібруйте знову.Розгойдування було надто слабким або змішаним із рисканням, тож зразки погані.
ВиправтеРозгойдуйте енергійно лише по крену, потім лише по тангажу, без поворотів, доки обидві осі не дійдуть до 100%.
Датчик погано бачить поверхню: мало світла, однотонна чи блискуча підлога або вона надто близько.
ВиправтеКалібруйте надворі при денному світлі над травою чи гравієм, на висоті з інструкції до датчика.
«FlowCal: failed to start»: польотному контролеру забракло вільної пам'яті для калібратора.
ВиправтеПерезавантажте і спробуйте знову; якщо повторюється, вимкніть те, чим не користуєтеся (скрипти, додаткове логування).
У рядку «fit … too high» перше число — не щойно знайдений множник: код друкує там попереднє значення. Дивіться лише на fit.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
FLOW_ORIENT_YAW | Flow sensor yaw alignment |
FLOW_FXSCALER | X axis optical flow scale factor correction |
FLOW_FYSCALER | Y axis optical flow scale factor correction |
FLOW_TYPE | Optical flow sensor type |
Код, який це надсилає
… scalar…:N.N too low (<N.N)
libraries/AP_OpticalFlow/AP_OpticalFlow_Calibrator.cpp AP_OpticalFlow_Calibrator::calc_scalars() · Відкрити в ArduPilot Copter-4.7.1
… scalar…:N.N too high (>N.N)
libraries/AP_OpticalFlow/AP_OpticalFlow_Calibrator.cpp AP_OpticalFlow_Calibrator::calc_scalars() · Відкрити в ArduPilot Copter-4.7.1
… scalar…:N.N fit:N.N too high (>N.N)
libraries/AP_OpticalFlow/AP_OpticalFlow_Calibrator.cpp AP_OpticalFlow_Calibrator::calc_scalars() · Відкрити в ArduPilot Copter-4.7.1
… no better scalar…:N.N (fit:N.N > orig:N.N)
libraries/AP_OpticalFlow/AP_OpticalFlow_Calibrator.cpp AP_OpticalFlow_Calibrator::calc_scalars() · Відкрити в ArduPilot Copter-4.7.1
І ще 3 повідомлень, що надсилаються з тих самих місць.