Пишем программу для вывода логов формата CSV
К численному представлению ветра добавил анимированную картинку колдуна, нарисовал как смог))
Выкладываю обнову.
*Добавлены два маркера, между которыми показывается дельта (маркер Б - маркер А), между ними считается средний аэродинамический коэффициент, средняя эффективность набора, средняя путевая эффективность. Они считаются, только при условиях набора/ спуска.
*Так же эти все коэффициенты можно вывести, как графики “моментальных значений”, специально взял в скобки, так как могут придраться и сказать, что они усреднённые по времени дискретизации (одна секунда). Графики АК и эффективность набора выводится не весь, а только в подходящих этапах полёта.
*Oчередной раз потерпел изменения измеритель ветра. Как писал выше, теперь он работает в точности, как на ОСД Питлаб. При этом, если замерочных круга было несколько, то скорость и направление ветра пропорционально распространяются по всем высотам. То есть, на каждой высоте свои показания. Помимо числовых значений, добавил анимированный “колдун”, для наглядного представления ветра.
*Полностью переписал алгоритм фильтра (сглаживание графика), теперь он работает моментально + так же моментально сплайн Акима.
Исправлены небольшие недочёты: числа на временной шкале больше не залазят на окошко данных, исправлен ране не замеченный косяк управления колёсиком, добавил контур числам моментальных значений- если цвет светлый, то контур чёрный, если тёмный, то контур белый. Ну и по мелочи.
Не то выложил. Вот правильный архив.
drive.google.com/open?id=0B-tFJd0x5X5xelNZS2ZUcEhS…
Продолжаем… Изменил управление, то есть менюшки. Меню убрал полностью, в место него поставил “тулл-бар”. Теперь все органы управления на виду. Добавил график угла атаки. Добавил управление с клавиатуры, всплывающее меню по клику правой кнопкой - в нём можно устанавливать маркеры и откатывать увеличение. Ну и по мелочи всякие курсоры, рамку при выделении правой кнопкой и тд… Ещё не выкладываю, хочу дополнить текст HELPа клавишами управления клавиатуры и весь новый функционал.
Занялся вторым этапом… потихоньку пилю элементы осд. То есть по файлу CSV анимирую псевдо OSD. Прям во время анимации, все элементы можно передвигать мышкой и менять их размер. С Этой анимации можно собрать *.mov.
Так же под анимацию можно вложить гугл карту.
Пока что всё работает без какого ли то управления
Теперь прошу помощь… если кто знает как на Java осуществить связь с ком портом, а ещё лучше с USB-HUD? В нете полно информации, но конкретики никакой.
Ещё один нюанс, выводить карту под анимацию это хорошо, но конечно же хочется вывести “как то” гугл ерз. Только представьте: На компе в реальном времени вид от первого лица в роле 3д гугл ерз + анимация всех параметров полёта.
Вот по идее куда стремлюсь.
Печалька только одна: гугл не даёт использовать гугл ерз не в проводнике, но это так же решаемо, так как в Java этот проводник можно обеспечить.
Так же если у кого, есть нароботки по вопросу с гуглом, поделитесь информацией…
Вот примерное представление анимации ОСД. Как и говорил, вывожу на зелёном экране для рендера (могу рендерить только в mov формат).
Так же в роли задника можно вставлять гугл карту.
Устроил отображение “базы”, для вывода других точек или анимации ИЛС, мне собственно нужна их инфа в файле. Попросил Збигнева, может и добавит.
Ещё раз прошу о помощи, в частности 3д земли. Пока что для меня это главный затык.
С помощью лома и какой то матери, удалось превратить гугл карты в подобие 3Д.
Теперь на это дело наложить анимацию ОСД и допилить команды гуглу на координаты и поворот.
С Яндексом хочу ещё попробовать , он мне кажется побыстрее чутка и карты по детальнее.
Как оказалось гугл не позволяет поворачивать карту.
Решил делать по другому.
Гугл в день пузволяет скачивать до 1000 статических карт рамером до 640 на 640 точек.
Вобщем мысль закчивать нужные участки и выводить их на общую карту, которую уже смогу крутить как душе угодно.
Главная заковыка, я не знаю как точно считать сколько градусов в одной картинке .
Я думал что меняется только по широте. Но по долготе масштаб тоже меняется…
То есть нужно расчитать коардинаты так, чтоб все карты четко подошли друг к другу.
Мне не понятно как гугл их искажает…
Если что в этом понимает, буду рад помощи.
Такс. .Нашёл полностью готовое решение, даже лучше чем был бы гугл ерз. Штуковина называется ArcGIS. Мощьная и почти бесплатная. Есть всё что нужно. Позволяет строить трёхмерные сцены Земли, накладывать разные данные, трёхмерные объекты и тд…
Вернусь с командировки, займусь конкретней…
Самое сложное позади, стальное за мелочами.
В бесплатной версии ArcGIS у камеры нет крена. Пришлось крутить всю сцену и немного её увеличить, чтоб не было серой подложки на больших кренах. Так же устроил просчёт промежуточных координат, что бы получить плавную анимацию.
На выбор будет две опции: вид от первого лица и вид от третьего лица, где камера будет следовать за 3д моделькой самолётика. Конечно мысли, устроить несколько режимов камеры, как то следовать или перемещать камеру свободно мышкой. Не уверен, смогу ли я в бесплатной версии рисовать трэк в трёхмерной сцене…
Так же будет окошко - вид сверху, где уже будет рисоваться маршрут.
Слои карт, так же на выбор.
Ну и на последок, нужно разобраться с кэшем. Если в перспективе, данные брать напрямую с наземки в поле, кэш просто необходим.
Маньяк!
www.youtube.com/watch?v=0-REiSOHTLI
Вот пример с кренами и пересчётом промежуточных коoрдинат…
по моему получается очень не плохо!
Добавил 3д модель самолётика. Несколько режимов камеры (все с управлением мышкой): от первого лица (с горизонтом типа ф16), камера следящая на модельку самолёта (горизонт типа русский, но пока только набросок), камера на модельку, но её можно вращать и камера свободная от всего.
В видосе в конце посадка “ака взгляд с вышки…”.
по моему получается очень не плохо!
Спасибо!
Если есть какие то пожелания, пишите.
Я так понимаю, Збигнев не спешит открыть протокол, как получить данные на лету. Так, что если кто завладеет инфой по этому поводу, поделитесь.
Пилим дальше… Добавил рисование 3д линии - пройденного маршрута. Могу добавить возможность изменения цвета в зависимости от параметров полёта. Каких? На ум приходит только скорость и вертикальная скорость.
Сергей, что тебе нужно было от SeeYou? Могу высотный профиль поверхности добавить… Чё ещё добавить?
Низкий фрэйм рэйт только при записи видео, так всё норм…
Да и надпись “Licensed For Developer Use Only”, естественно не уберётся. Денег на это тратить, я не буду…
Такс, всё же удалось убрать водный знак версии разработчика АркГИС.
Всех с прошедшим Праздником!
Давно ничего не выкладывал и не обновлял… Уже длительное время нахожусь в командировке… И скорее всего останусь на долго…
К сожалению у меня с собой только рабочий ноутбук и все нужные программы для выпуска обновлений я записать не могу… Спасибо хоть, что разрешили установить жава машину.
За последнее время товарищи из Польши радуют нас новыми функциями к нашему любимому АП.
С новой прошивкой немного оброс и новый лог. В нём добавились такие параметры, как входящие сигналы рулей, выходящие сигналы на рули с автопилота, частота обновления гпс-глонас.
Естественно они добавятся и у меня, только пока обмазговую, как правильнее это сделать. Скидывать всё в одну кучу не хочется. И так уже небольшой бардак изза множества параметров.
Думаю нужно будет сгрупировать все параметры на подгруппы, для удобства и восприятия. Для последних помимо обычного изображения на графике, планирую анимацию ПУ и Модели с углами рулей. Благо немного места в правом углу панели статистики ещё много.
Что касается 3д отображения, всё готово, косяков пока не обнаруженно.
Остаются два пункта:
Режим “онлайн” через сом порт.
В принципе, нашёл уже классную библиотеку для работы с сом портами. Написал уже код для анимации не с лога, а с ком порта. Дело за малым - прилететь домой и разобрать данные с наземной станции Питлаба.
Новая моя хотелка: планировщик для автопилота на выходе которого будут три файла - впп, точки, маршруты.
При этом в автомате будут просчитываться энергозатраты, скорости и подъём. Данные будут браться с загруженного ранее лога и если нужно корректироваться в ручную. Так же будет учитываться погода. К сожалению не нашёл источника для погоды по высотам, есть только на уровне земли (окно в 5 дней). Оставлю поля для ручного ввода ветра по высотам.
Помимо рисования на карте, второстепенным окном будет профиль полёта наложенный на профиль поверхности. На профиле будут видны все точки и данные о энергозатратах и времени. Дополнительный фукционал ещё обдумывается.
Только после этого , расчёт будет адекватным.
На этом всё. Получилось малость голословно, но пока вроде как, что обещал, делал.
Если кто хочет помочь и малость ускорить процесс, не откажусь от помощи. Две вещи: записать что выдаёт наземка по ком порту, и если кто подскажет где брать пoгоду по высотам.
Как интересно развивается проект… Казалось бы из простенького логера вырастает уже серьёзный продукт… Молодец!
Начал делать модуль полётной мисии. Дошёл до реализации рисования роутов. Возможных алоритна два: один как в менеджере на данный момент, второй, как в гугл-земле.
Второй цпособ мне нравится больше… Начну с него, если кто привык к оригинальному менеджеру и так прям сильно его хотите, сообщите.
Доделал рисования маршрутов, точек и взлёных полос. Все данные параллельно отбражаются в таблице, всё синхронно. Окно с таблицей с тремя вкладками: таблица с точками, с маршрутами и с ВВП.
Для просчёта пути, нужно указать последовательность. То есть, будет появляться окно с двумя списками: слева все точки/маршруты, справа создаём последовательность, которая потом и считается.
Так как у точек и маршрутов есть ограничение по высоте, добавлю “оперативные” точки, которые можно добавить в список для просчёта, но они не будут загружаться в файл.
Теперь нужно забацать сам просчёт и отображения на карте и панели с профилем высоты.
Маразм крепчал, и я задумался, что раз уже заморочился, то почему не сообразить псевдо ПИД.
То бишь грубо говоря, определяем шаг (ну скажем 3 метра), знаем куда нужно, знаем ошибку, пид выдаёт направление. По этому направлению рисуем прямую длиной 3 метра и всё по кругу. Можно будет добиться похоже на то, как модель пролетит на самом деле.
Набор высоты, только по готовым числам из лога или вручную.
Доделал главные функции в программе расчёта полёта, выложил на гугл диск.
drive.google.com/open?id=1PPlifIIH-31tuhYEVSwjKuMo…
Архив нужно просто распоковать и запустить екзэшник.
Лень писать мануал, тем более переводить его на английский, так что в кратце всё опишу тут.
В общем программа по большому счёту пока что для польователей ПитЛаб и для тех кто хочет заморочится и подробно и самое главное правдоподобно хочет расчитать предстоящий полёт.
Первое, что нужно сделать, загрузить в программу лог с полёта. Желательно лог выбирать с спокойго полёта с выраженными фазами: подъёмы, спуски, полёт в круизе. Так же желательно, что бы в этом полёте был сделан “круг почёта” для расчёта ветра.
При загрузки лога программа спросит у вас ёмкость батареи (вводить в мили ампер/часах) и минимальное напряжение (одной банки). Ёмкость вводить не с этикетки батареи, а ту, при достижении которой, напряжение станет минимально допустимым (как раз то напряжение, которое вы так же ввели).
При этом программа расчитает функцию разряда по напряжению и по внутренему сопротивлению. Пользовател эти данные не увидит, они нужны для расчёта на маршруте.
Далее собственно сам интерфейс: карта - главное окно, на нём рисуется точки, маршруты, посадочные полосы, а так же уже посчитанный путь модели.
Справа вверху панель параметров, расчитанных программой при загрузке лога. Их можно корректировать.
Ниже спраава, панель “упрощёной” погоды: программа скачивает прогноз ветра на 5 дней в точке “Дом”. Ползунком после загрузки погоды, можно менять время с шагом в три часа.
Ниже панели с ветром, панель с двумя окошками: в левом все точки/ маршруты/ посадочные полосы, которые отображаются на карте. В правое окошко добавляем нужные пункты в нужной вам последовательности. Например: точка А, маршрут хххх, посадочная ПОС44. Маршрут будет строится именно по этому списку.
Ещё ниже панель с тремя вкладками точки/маршруты/впп. На каждой вкладке таблица с детальной информацией соответствующих данных.
В таблице все данные можно корректировать.
И наконец последняя панель с профилем посчитанного пути. Собственно изображается сам профиль, маркирован по подъёму, круизу и спуску цветами красный, зелёный и синий соответственно. Так же нанесён график ёмкости батареи (в ампер часах). Снизу профиль возвышения земли (AMSL).
При наведении мыши на профиль появляются вертикальный и горизонтальный маркер, при этом параметры полёта в данной точке пути отображаются сверху(над картой).
Oтображается маркер модели самолёта на карте в виде синего треугольника. По нему можно определить “снос на ветер”. И визуально увидеть соответствие положения модели на карте и на профиле по высоте.
Логика навигации идентична таковой в Питлабе на автоматических режимах: полёт к точке - держим азимут на точку, полёт по маршруту - держимся маршрута, полёт на впп - расчитываем точку входа в глисаду и снижения, долетаем до нее и садимся. Запуск только с “дома” и пока только строго на север (добавлю чтоб можно было крутить направление запуска). Минимальный радиус поворота считается из лога, но его можно править.
Все новые точки создаются с помощью клика правой кнопкой мыши и там выбирается что именно вы хотите. Путь рисуется не как в питлабе, а поочерёдно добавляя точки, при этом уже добавленые точки маршрута можно коректировать. Маршрутов одновременно можно нарисовать 8 штук, все будут разного цвета для лучшей читаимости. В конце создания маршрута, кликаем правой кнопкой и выбираем “закончить маршрут”
При добавлении впп, она добавляется с ореинтированием на 0 градусов - правый шелчёк мышью и выбираем настрить азимут, правой кнопкой крутим впп.
Все созданные точки можно сохранить и потом выбрать из списка. Это находится в “меню” сверху.
Так же там можно экспортировать в файлы самого питлаба для дальнейшей загрузки в автопилот.
Ещё в меню находится пункты погода. Простая погода: после установки базы, по нажатию на пункт, загружаем погоду на 5 дней (на уровне 100 метров, но программа эту погоду применяет по всем высотам), её можно корректировать в панели погода.
Так же в меню есть пункт “детальная погода”. Её можно выбрать после нанесения минимум двух точек на карту (допустим база и ещё одна точка). Программа предоставит пользователю заполнить таблицу параметра ветра по высотам и на двух точках.
Программа сама выбирает самые крайнии точки которые нанесены на карту. Так же просчитываются промежуточные значения ветра по всей длине между этими точками, и промежуточные значения по высоте (опорных высот около 6-7 штук, не помню).
Грубо говоря: летите из “Москвы” в “Питер”. Забиваете ветер повысотно в Москве и повысотно ветер в Питере, надеетесь что ветер не менял своё направление на 360 градусов)) - шучу.
В итоге, когда есть база и какието точки, вы составили их в список на просчёт, нажимаете кнопку Калк сим и смотрим результат.
Теперь о неприятном: возвышение земли… Её беру у гугла, максимум он разрешает около 2500 точек в день с одного ип адресса. Точки грузятся медленно. Есть буферизация: то есть загруженные точки остаются у вас на компе. Так же можно заранее буферизировать участок на карте: с меню правой кнопки мыши выбираем нужный пункт и выбираем нужную площадь.
Резолюция примерно 90 метров.
Я пользовался ВПН программой и за день выкачал нужный мне участок.
Так же уже буферезированные точки можно визуализировать, через меню сверху.
Сейчас ищу ВПН программу с открытым АПИ, чтобы программа могла автоматом менять ип адресса при бане-лимита от гугла, такие программы есть.
В общем как то так… сорри много букф.
Скорей всего заметите ошибки, как в орфографии, так и самой логике. Пишите, исправлю.
Ах да, по ошибке залил папку с выкаченными точками куска Израиля(amslBuff), рекомендую удалить - все не нужнуе точки только тормозят при визуализации и жрут оперативку.
Так же удалите файлы:
batGrOm
batGrV
dirPID
lastView
simParam
savedPoints
Все они в корневой папке.
С цветовой гаммой и шрифтами особо не играля, так что ещё буду править.
Свою программу минимум выполнил.
Молодец маньяк! По описанию как то все сложно и непонятно…(сижу с телефона) Надо будет качнуть, посмотреть что ты там намутил…
Не не, всё норм. Мой косяк. По ошибке выгрузил не то… ничего педустанавливать не нужно, просто запустить екзешник…
Вечером залью нормально.