Урок 4. Дозревание и свежесть фикса
Урок 4. Дозревание и свежесть: почему первому фиксу нельзя верить
Паспорт урока
| Параметр | Значение |
|---|---|
| Место в модуле | BeaconRadio, модуль 2 «Физика и данные», урок 4 из 7 |
| Длительность | 45 мин |
| Возраст | 13–16 |
| Оборудование | GPS-модуль (холодный старт у окна), секундомер |
| Предварительные знания | Урок 3: NMEA, качество фикса |
| Предмет | Физика (измерения), информатика (работа с кэшем) |
Образовательные цели
| № | Цель | Блум | Миллер | Чем доказывается |
|---|---|---|---|---|
| 4.1 | Обосновывать правила дозревания и свежести измерения | оценивать | знает как | Ответ: почему порог тревоги жёстче |
| 4.2 | Проектировать политику работы с устаревшими данными | создавать | показывает как | Собственное правило валидности |
| 4.3 | Объяснять сходимость решения после холодного старта | понимать | знает как | Разбор графика ошибки от времени |
| 4.4 | Различать «данные есть» и «данным можно верить» | анализировать | знает как | Разбор флага gps_valid |
Сценарий занятия (45 минут)
| Время | Блок | Что делает педагог | Что делают ученики |
|---|---|---|---|
| 0–5 | Retrieval | Мини-квиз по уроку 3 | Пишут, разбор |
| 5–15 | Наблюдение | Холодный старт GPS у окна, замер | Следят за координатой и HDOP |
| 15–25 | Теория 1: дозревание | Почему первое решение врёт | Разбирают механизм |
| 25–33 | Теория 2: свежесть | Устаревание данных, флаг валидности | Разбирают правило |
| 33–42 | Практика | Задачи, компромисс тревоги | Решают |
| 42–45 | Итог и ДЗ | Фиксация | Записывают |
Блок 1. Наблюдение холодного старта (5–15 мин)
Организация
Включить GPS-модуль при детях, у окна, и вывести на экран монитор порта. Засечь время.
Что фиксировать
Ученики каждые 15 секунд записывают в таблицу:
| Время от включения | Спутников | HDOP | Координата |
|---|---|---|---|
| 0 с | 0 | — | нет |
| 15 с | 2 | — | нет |
| 30 с | 5 | 3,4 | появилась |
| 45 с | 7 | 1,8 | сдвинулась |
| 60 с | 9 | 1,1 | стабилизировалась |
Ключевое наблюдение
«Обратите внимание: первое решение появилось на 30-й секунде. Но координата после этого продолжала меняться ещё полминуты. Вопрос: можно ли было доверять самому первому решению?»
Реальный случай из отладки этого проекта. Первое валидное решение после холодного старта уходило более чем на 5 километров от истинного положения — при формально приличном показателе HDOP. Прошивка честно получала «фикс есть» и отправляла заведомо ложную координату.
Это не теоретический риск, а зафиксированная в журнале проекта ошибка, из-за которой и появилось правило дозревания.
Блок 2. Теория: дозревание (15–25 мин)
2.1. Базовый уровень (13–14 лет)
Через фотографию с автофокусом.
Наводишь камеру на объект — сначала картинка размытая, потом резкость «подтягивается». Если нажать спуск в первую же долю секунды, снимок выйдет нерезким. Нужно дать камере время сфокусироваться.
GPS ведёт себя так же: первое решение — «нерезкое». Приёмнику нужно время, чтобы собрать данные о спутниках и уточнить положение.
Правило:
Не брать первый фикс. Подождать 10–15 секунд после его появления и убедиться, что качество (HDOP) стало хорошим.
2.2. Углублённый уровень (14–16 лет)
Шаг 1. Почему первое решение неточно.
Три причины:
- Неполные эфемериды. Приёмнику нужны точные данные об орбитах спутников. Они передаются медленно (полный набор — до 12,5 минут). Первое решение строится на частичных данных.
- Плохая геометрия. Пока видно мало спутников, они могут располагаться неудачно (кучно в одной части неба), что резко ухудшает точность.
- Неоткалиброванные часы приёмника. Расхождение часов напрямую переводится в ошибку расстояния: свет проходит 300 метров за микросекунду.
Шаг 2. Что такое HDOP.
HDOP (Horizontal Dilution of Precision) — коэффициент, показывающий, насколько геометрия расположения спутников ухудшает точность.
| HDOP | Оценка геометрии |
|---|---|
| < 1 | идеальная |
| 1–2 | отличная |
| 2–5 | приемлемая |
| > 5 | плохая |
Итоговая ошибка ≈ HDOP × точность измерения дальности. То есть при HDOP = 5 та же аппаратная погрешность даёт в пять раз больший разброс.
Ограничение HDOP, которое надо понять. HDOP описывает только геометрию — как расставлены спутники. Он ничего не знает о том, правдивы ли сигналы. Именно поэтому при спуфинге (урок 5) HDOP может быть отличным при координате, ошибочной на 30 км: геометрия поддельных сигналов идеальна, ложь в их содержании.
HDOP — необходимое, но не достаточное условие доверия.
Шаг 3. Правило дозревания в нашей прошивке.
получен первый валидный фикс
→ НЕ отправлять
→ ждать GPS_SETTLE_MS = 12 секунд
→ в течение ожидания координата продолжает обновляться
→ на выходе требовать HDOP < 2,5
→ взять ПОСЛЕДНЕЕ решениеШаг 4. Правило свежести.
Вторая проблема: фикс мог быть получен давно, а потом GPS замолчал (ушёл в помещение, отвалилась антенна). Если хранить «последнюю известную координату» без отметки времени, устройство будет вечно отдавать старую точку как актуальную.
Правильное определение флага валидности:
То есть флаг означает «координата свежая», а не «координата когда-то была».
Шаг 5. Два разных порога.
| Режим | Порог свежести | Обоснование |
|---|---|---|
| Обычная телеметрия | 60 с | человек мог не двигаться, точность некритична |
| Тревога (SOS, падение) | 30 с | нужна актуальная точка: спасатели едут именно туда |
Что делать, если фикса нет вовсе: отправить последние известные координаты (или нули) с флагом gps_valid = 0. Получатель должен иметь возможность отличить подтверждённую координату от предположения.
Блок 3. Компромисс момента тревоги (25–33 мин)
Это ключевой методический блок урока.
Постановка дилеммы
«Человек нажал кнопку SOS. Прошивка проверяет: последний фикс получен 45 секунд назад, порог для тревоги — 30. Координата несвежая. Что делать?»
Два варианта, оба плохие:
| Вариант | Плюс | Минус |
|---|---|---|
| Отправить немедленно со старой координатой | помощь вызвана сразу | адрес может быть неточен |
| Ждать свежий фикс | точная координата | тревога задерживается на десятки секунд |
Решение в нашей прошивке
тревога
→ фикс свежий (< 30 с)? → отправить немедленно
→ несвежий? → БЫСТРАЯ попытка до-фикса, не более 10 секунд
→ успели: отправить свежую
→ не успели: отправить старую с флагом gps_valid = 0
→ тревога НЕ задерживается дольше 10 секунд ни при каких условияхИнженерная суть решения: ограниченная попытка улучшить данные, но жёсткий потолок на задержку. Тревога, пришедшая через минуту, может опоздать; тревога с пометкой «координата не подтверждена» всё равно полезна — диспетчер увидит район и статус.
Это типичный приём проектирования: не выбирать между двумя крайностями, а ограничить худший случай.
Блок 4. Практические задачи (33–42 мин)
Уровень A (13–14 лет)
A1. Почему нельзя отправлять самое первое решение GPS?
Ответ
Первое решение строится на неполных данных о спутниках и плохой геометрии, поэтому может ошибаться на километры. Координата продолжает уточняться ещё десятки секунд. Нужно подождать и взять более позднее решение.
A2. GPS работал, потом человек зашёл в подвал, и спутники пропали. Что должно показывать устройство?
Ответ
Оно может передать последнюю известную координату, но обязательно с флагом «координата несвежая» (gps_valid = 0). Иначе диспетчер решит, что человек до сих пор находится в той точке, хотя данные устарели.
A3. Что означает флаг gps_valid = 1?
Ответ
Что координата свежая — получена недавно, в пределах установленного порога. Это не просто «фикс когда-то был», а «фикс был только что».
Уровень B (14–15 лет)
B1. Почему для телеметрии порог свежести 60 секунд, а для тревоги — 30?
Ответ
Телеметрия — регулярный отчёт «всё в порядке»; человек за минуту уходит недалеко, и точность не критична.
Тревога означает, что к человеку выезжает помощь. Здесь координата должна быть максимально актуальной: за лишние 30 секунд человек может переместиться, а спасатели поедут по устаревшему адресу. Чем выше цена ошибки — тем жёстче требование к данным.
B2. Человек идёт со скоростью 1,4 м/с. На сколько метров устареет координата за 60 секунд? За 30?
Решение
За 60 с: 1,4 × 60 = 84 метра. За 30 с: 1,4 × 30 = 42 метра.
Интерпретация: 84 метра — это может быть другой подъезд, другая сторона дома или другая сторона дороги. Для спасателей, ищущих лежащего человека, разница существенна. Ужесточение порога вдвое сокращает неопределённость вдвое.
B3. Что важнее в момент SOS: успеть отправить или отправить точную координату? Обоснуйте.
Разбор
Оба важны, и выбор — компромисс. Аргументы:
За скорость: сам факт тревоги — главная информация. Диспетчер узнает, что случилась беда, и начнёт действовать. Приблизительный район лучше, чем ничего.
За точность: ошибка в сотню метров при поиске лежащего человека может стоить многих минут.
Реализованное решение: ограниченная попытка (до 10 секунд) улучшить координату, затем отправка в любом случае — со честным флагом валидности. Так мы получаем и приемлемую скорость, и максимально доступную точность, а получатель знает степень доверия.
Уровень C (15–16 лет)
C1. Спроектируйте политику валидности для устройства, где цена ошибки иная: датчик на грузовом контейнере, передающий положение раз в час. Обоснуйте пороги.
Разбор
Отличия от маячка человека:
| Параметр | Маячок человека | Контейнер |
|---|---|---|
| Скорость объекта | 1,4 м/с | до 25 м/с (транспорт) |
| Частота отчётов | 10 мин / тревога | 1 час |
| Цена задержки | жизнь | логистика |
| Цена энергии | средняя | высокая (автономность) |
Предлагаемая политика: порог свежести можно ослабить по времени (5 минут вместо 30 секунд), потому что отчёты редкие. Но из-за высокой скорости объекта стоит добавить проверку по пройденному расстоянию: если с последнего фикса объект мог сместиться более чем на N километров, координата помечается ненадёжной независимо от времени.
Ключевой вывод: пороги свежести определяются не «привычными» числами, а произведением скорости объекта на время устаревания и ценой ошибки в конкретном сценарии.
C2. HDOP отличный (1,1), спутников много, координата стабильна — но неверна. Возможно ли такое? Что это означает?
Разбор
Да, возможно. HDOP характеризует только геометрию расположения спутников, то есть насколько удачно они расставлены для вычисления. Он не проверяет правдивость сигналов.
Если приёмник получает поддельные сигналы с идеальной геометрией, он честно решит задачу — и получит уверенно неверный результат с отличным HDOP.
Это точная подводка к уроку 5 (GNSS-спуфинг). Ученик, дошедший до этого рассуждения сам, готов к следующей теме.
Обобщение: показатель качества измерения может подтверждать корректность процедуры, ничего не говоря о корректности входных данных. Это ловушка, встречающаяся далеко за пределами GPS.
C3. Прошивка получает NMEA, но между отправками не читает буфер UART. Какие проблемы возникнут?
Разбор
Проблемы, зафиксированные в реальной отладке проекта:
- Переполнение буфера. Приёмный буфер UART невелик (обычно 64 байта — это менее 100 мс потока NMEA). Всё, что не прочитано, теряется.
- Рваные строки. Из-за потерь строки приходят обрезанными, не проходят проверку контрольной суммы. Симптом выглядит как «помехи», хотя причина программная.
- Устаревший фикс. Пока буфер не читается, координата не обновляется. Устройство «думает», что фикс старый, хотя данные приходили — их просто не забрали.
Правило, выведенное из этой ошибки: данные из потока нужно вычитывать в каждом цикле ожидания, а не только в основном рабочем режиме. Завёл второй источник данных — обслуживай его везде.
Это одна из тех ошибок, которые невозможно найти рассуждением — только измерением и чтением логов.
Ответы на вопросы, которые прозвучат
| Вопрос ученика | Как отвечать |
|---|---|
| «Почему GPS так долго стартует?» | Ему нужны данные об орбитах спутников, которые передаются медленно. Холодный старт — до минуты и больше; тёплый (данные ещё актуальны) — 5–15 секунд |
| «Разве нельзя просто взять точку поточнее сразу?» | Нет: точность растёт по мере накопления данных. Это физика измерения, а не недоработка приёмника |
| «Зачем флаг валидности, если можно просто не слать плохую координату?» | Тогда диспетчер не узнает вообще ничего — ни где человек был, ни что тревога сработала. Лучше отправить всё, что есть, честно пометив степень доверия |
| «Что если человек в помещении и фикса не будет никогда?» | Устройство продолжит слать телеметрию с gps_valid = 0 и последней известной точкой. Диспетчер увидит, что связь есть, а координата не подтверждена |
| «HDOP хороший — значит, координата точная?» | Не обязательно. HDOP говорит только о геометрии спутников. Об этом — следующий урок, и он вас удивит |
Раздаточный лист (для печати)
Урок 4. Дозревание и свежесть фикса
Наблюдение холодного старта. Заполняйте каждые 15 секунд:
Время, с Спутников HDOP Координата (широта) Изменилась? 0 15 30 45 60 75 Через сколько секунд координата перестала заметно меняться? ______
Правило дозревания:
первый фикс → НЕ слать → ждать 12 с → требовать HDOP < 2,5 → взять последнееПравило свежести:
Режим Порог Почему такой Телеметрия 60 с Тревога 30 с Задача. Человек идёт 1,4 м/с. Устаревание координаты:
за 30 с → ____ м; за 60 с → ____ м
Компромисс тревоги. Мой ответ: что важнее — успеть или уточнить?
_____________________________________________________
Домашнее задание
Обязательная часть
Врайтап по рубрике А. Обязательный пункт: сколько времени в вашем наблюдении координата продолжала уточняться после первого фикса.
Уровень A
Найти три примера данных, которые «портятся со временем» (прогноз погоды, расписание, цена билета). Описать, как в каждом случае обозначают актуальность.
Уровень B
Рассчитать, какое устаревание координаты допустимо для трёх сценариев: пешеход (1,4 м/с), велосипедист (5 м/с), автомобиль (20 м/с), если требуется точность не хуже 50 метров.
Ответ для педагога
t = 50 / v: пешеход — 36 с; велосипедист — 10 с; автомобиль — 2,5 с.
Ключевой вывод: для быстро движущихся объектов требование свежести становится очень жёстким, и порог должен зависеть от скорости, а не быть константой.
Уровень C
Спроектировать алгоритм адаптивного порога свежести: устройство само определяет допустимое устаревание по измеренной скорости движения. Описать логику и граничные случаи.
Итог урока: что записать в журнал
Вывод урока 4
- Первое решение GPS после холодного старта может ошибаться на километры — при формально приличном HDOP.
- Правило дозревания: не брать первый фикс, подождать 10–15 с, требовать HDOP < 2,5.
- Правило свежести: флаг валидности означает «фикс свежий», а не «фикс когда-то был».
- Порог свежести определяется ценой ошибки: для тревоги он жёстче, чем для телеметрии.
- Устаревание координаты = скорость объекта × время: пешеход за минуту уходит на 84 метра.
- Тревога не задерживается сверх лимита: ограниченная попытка уточнить, затем отправка с честным флагом.
- HDOP оценивает геометрию, а не правдивость сигнала — это ловушка следующего урока.
Связь с курсом
| Что родилось на этом уроке | Где станет инструментом |
|---|---|
| Свежесть данных | PowerSentry (heartbeat: «молчит» ≠ «умер») |
| «Данные есть» ≠ «данным можно верить» | Урок 5 (спуфинг), весь курс |
| Ограничение худшего случая | Проектирование любых реактивных систем |
| Сходимость измерения | WarWalk (накопление данных о покрытии) |
Чек-лист педагога перед уроком
- GPS-модуль не включён заранее — нужен именно холодный старт при детях
- Место у окна с обзором неба; помнить: в глубине помещения фикса может не быть вовсе
- Секундомер и таблица наблюдений готовы
- Запасной вариант: записанный лог холодного старта, если фикса не будет
- Раздаточный лист распечатан