Аппаратура потребителей спутниковых радионавигационных систем (дисциплина) — различия между версиями
Korogodin (обсуждение | вклад) (→Этап 1. Использование) |
Korogodin (обсуждение | вклад) (→Этап 3. Реализация) |
||
Строка 157: | Строка 157: | ||
'''Дедлайн''': 22.05.18 | '''Дедлайн''': 22.05.18 | ||
+ | Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале GPST, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. | ||
+ | Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных. | ||
+ | |||
+ | Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. | ||
+ | Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. | ||
+ | Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения уравнения Кеплера. | ||
+ | |||
+ | Программный модуль должен сопровождаться unit-тестами под check: | ||
+ | * Тесты функции решения уравнения Кеплера | ||
+ | * Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды. | ||
+ | |||
+ | Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. | ||
+ | |||
+ | Требуется провести проверку на утечки памяти с помощью утилиты valgrind. | ||
+ | |||
+ | Оформить отчет по результатам работы: | ||
+ | * Код реализация | ||
+ | * Вывод тестов | ||
+ | * Вывод valgrind | ||
+ | |||
+ | Во время теста допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (взять с середины). | ||
[[Категория:АП СРНС (дисциплина)]] | [[Категория:АП СРНС (дисциплина)]] |
Версия 17:30, 5 марта 2018
Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий учебного плана подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы".
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект.
По дисциплине подготовлен электронный учебно-методический комплекс.
Содержание |
Правила аттестации
Обязательным условием для получения допуска к экзамену является выполнение и защита 4 лабораторных работ.
Календарный план
Вопросы к экзамену
Экзамен проводится в устной форме и содержит два вопроса (экзаменационные вопросы). При подготовке рекомендуется использовать книги по тематике, конспекты лекций и презентации.
Курсовой проект
Курсовой проект по данной дисциплине проводится во втором семестре. В рамках проекта студенты знакомятся с рядом инструментов и техник, используемых при разработке АП СРНС:
- обработка измерений от приемника ГНСС в RTKLIB;
- обработка данных и моделирование в Matlab/Python;
- разработка программного модуля на С/С++, включая юнит-тестирование в Check.
Этап 1. Использование
Дедлайн: 06.03.18
На крыше корпуса А МЭИ установлена трехдиапазонная антенна Harxon HX-CSX601A. Она через 20-метровый кабель, сплиттер, bias-tee и усилитель подключена к трем навигационным приемникам:
- Javad Lexon LGDD,
- SwiftNavigation Piksi Multi,
- FPGA-based приемник на основе нашего ядра CoreZh.
Приемники формируют первичные измерения, которые логируются в файлах формата RINEX 2.11. Javad и Piksi - только файлы наблюдений (javad.obs и piksi.obs), CoreZh - и наблюдения (corezh.obs), и файл эфемерид (corezh.nav для GPS и corezh.gnav для ГЛОНАСС). Архив с файлами за 03.02.18 доступен для скачивания по ссылке.
Требуется произвести вторичную обработку измерений, например, с помощью программы RTKLIB. В Matlab или Python построить гистограммы отклонения навигационного решения от эталонного решения (в метрах). В качестве эталона взять средний результат для Javad.
Оформить отчёт по результатам этапа.
Этап 2. Моделирование
Дедлайн: 10.04.18
На предыдущем этапе получено решение навигационной задачи с помощью программы вторичной обработки измерений, например, RTKLIB. В процессе работы она рассчитывает положение спутников на соответствующий момент сигнального времени. При этом используются эфемериды - параметры некоторой модели движения спутника. В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.
Одна из самых простых и удобных моделей - в системе GPS.
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале GPST. В качестве источника эфемерид использовать предоставленный на предыдущем этапе файл с логами за 03.02.18.
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать временному интервалу с 00:00 03.02.18 до 12:00 03.02.18.
Построить SkyView за указанный временной интервал (напоминаю, антенна на крыше корпуса А) и сравнить результат с Trimble GNSS Planning Online.
Оформить отчет по результатам этапа.
Этап 3. Реализация
Дедлайн: 22.05.18
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале GPST, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения уравнения Кеплера.
Программный модуль должен сопровождаться unit-тестами под check:
- Тесты функции решения уравнения Кеплера
- Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды.
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции.
Требуется провести проверку на утечки памяти с помощью утилиты valgrind.
Оформить отчет по результатам работы:
- Код реализация
- Вывод тестов
- Вывод valgrind
Во время теста допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (взять с середины).