Немає пам'яті для бази рельєфу
Що пише ArduPilot:
- Terrain: Allocation failed
База рельєфу не змогла отримати пам'ять для свого робочого сховища: TERRAIN_CACHE_SZ блоків (типово 12) приблизно по 1.8 кБ кожен. Вона лишається вимкненою до наступного перезавантаження: висот рельєфу немає, тому точки маршруту з висотами над рельєфом і слідування рельєфу не працюють. Армування теж заборонено, з повідомленням «Terrain out of memory», незалежно від того, чи потребує політ рельєфу.
Що робити: найімовірніше спершу
Платі бракує пам'яті: скрипти, багато ввімкнених можливостей або збільшений
TERRAIN_CACHE_SZ.ПеревіртеПід час запуску з'являються інші повідомлення про брак пам'яті, а наземна станція показує мало вільної пам'яті.
ВиправтеПоверніть
TERRAIN_CACHE_SZдо 12, якщо його збільшували, звільніть пам'ять, вимкнувши можливості, якими не користуєтеся (найбільше зазвичай забирають скрипти), і перезавантажте.Рельєф увімкнено, хоча ніщо у ваших польотах ним не користується.
ВиправтеЯкщо жодна місія не використовує висот над рельєфом і слідування рельєфу не налаштовано, задайте
TERRAIN_ENABLE0 і перезавантажте: тоді цю пам'ять ніхто й не проситиме.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
TERRAIN_CACHE_SZ | Terrain cache size |
TERRAIN_ENABLE | Terrain data enable |
Де це зробити:Пояснення фейлсейфів
Код, який це надсилає
Terrain: Allocation failed
libraries/AP_Terrain/AP_Terrain.cpp AP_Terrain::allocate() · Відкрити в ArduPilot Copter-4.7.1