Алгоритмы тяжелого борта

Serafimus
blade:

Или Вы уже дошли до создания искусственного интеллекта? 😍

Нет, это не AI, это ближе к мозгам насекомых, если вы так хотите искусственного интеллекта.

Хотя, судя по темпам (если с 2005 г- ещё нет ничего реального), я до триумфа Вашей мысли-не доживу 😦

Буду краток. 20 тыс долл. 😃

Более длинный ответ: А что вам нужно то реальнее этого? Борт полетит в ближайшие полгода, если вы сейчас выделите мне штат программистов (2 чел), конструкторов (2 чел) и бюджет см выше только на постройку железа. 😃

Вы бы и такого не сделали, простите мне мой цинизм.

Dimon11:

Как все сложно и запущено…

Не верьте им! Все просто 😃

Dimon11:

А что за ОС планируете использовать?
Неужели виндовс? Или неужели Линукс?

на мощном вычислителе по умолчанию стоит линукс… пока она сгодится на первый этап, це не ОСРВ в чистом виде, но у меня требования не велики. алгоритм изначально проектируется с учетом того что он будет в виде процесса… если найдется компилятор под микрокоды этого железа, то можно будет просто его скомпилировать, не заморачиваясь линуксом, но это дело поздних этапов. Например, драйвер видеокамеры там под линукс, и без исходного кода вроде… а без нее никак…

на микроэвм обслуживающей IMU никаких ос конечно не будет, туда просто микрокод соответствующий.

макет алгоритма сейчас под виндой, т.к. среда разработки Builder С++ под винду… но там по минимуму аппаратных функций, все через вставки, что бы их легко заменить, и чистый С, никаких С++, что бы упростить портирование и увеличить эффективность кода…

msv:

А что тут можно упустить… Аппарат должен взлететь, пролететь по маршруту и сделать посадку. Если все это уже реализовано и работает…

Эх, ну может чтото конструктивное… 😦 Что ни будь из практики! 😃 Свежий взгляд от сообщества моделистов!

blade
Serafimus:

Буду краток. 20 тыс долл.

Будете смеяться- я всё это уже сделал: есть и самолёт серийный и АП рабочий.
Вот 16 выставлю на МАКС- глядишь и клиенты найдутся: у меня цены то не Иркутовские 😃

Serafimus:

Вы бы и такого не сделали, простите мне мой цинизм.

Ой, я щаз помру со смеху, теоретик Вы наш 😂

Lazy
blade:

есть и самолёт серийный и АП рабочий.

Ой. 😃 А можно вличку показать? Очень интересно.

Иван

а почему в личку то? 😉 В ветку:) а вообще - все на МАКС! 😃 алгоритмы - это круто, рабочие - просто мега круто… кстати - наш космический челнок в его первом и последнем полёте кто сажал?

Serafimus
Иван:

кстати - наш космический челнок в его первом и последнем полёте кто сажал?

Собственно опыт Молнии (КБ Молния) и вдохновил на решение задачи этой. Но там немного другое решение. Буран шел на терминальном алгоритме с решением запаса по энергетике, это слишком комплексное решение, и нуждается оно в очень точной летной модели борта. у меня конечно все проще.

blade:

Будете смеяться- я всё это уже сделал: есть и самолёт серийный и АП рабочий.

Не могли бы вы показать ваш сайт с представленным вами сабжем? 😃 Или иной PR материал позволяющий проникнуться величиной ваших достижений? (а то сча БПЛА пруд пруди на разных сайта, как то не могу вас признать без грима 😃 ) Заранее скромное спасибо.

blade:

Ой, я щаз помру со смеху, теоретик Вы наш

Эй, стоп, не помирать! Отставить смех в строю! Кто на максе вместо вас выставлять то будет? Одни иркуты что ли? 😃

Продолжаем диалог. По задачам ничего не сказали, жаль. Вторая часть - проблемы в полете. Не менее важная между прочим.

Отрабатываемые некритические аварийные ситуации на борту.

Неуборка шасси.

Борт выпускает все стойки шасси и производит нормальную посадку на аэродроме взлета или ином указанном для этой ситуации в ПЗ.

Невыпуск шасси.

Не вышли боковые стойки шасси. Борт может выполнять аварийную посадку «на брюхо» предварительно убрав вышедшие стойки шасси. Или (по указанию) садится на оставшиеся стойки по возможности парируя крен.
Не вышла носовая стойка. Борт садится нормально с выпущенными стойками, задирая нос, по мере снижения скорости пробега, до последнего.
Вышла только носовая стойка. Борт садится только с носовой стойкой.

Невыпуск-неуборка секции закрылок. (секция: сторона по крыльям)

Борт устанавливает положение закрылок в «равное» и осуществляет нормальную посадку на указанную ВПП.

Отказ ПВД.

Борт использует для расчета опорные данные GPS скорости с учетом запаса безопасности на ветер.

Отказ IMU.

Борт использует для расчета опорные данные GPS с учетом поправок оптогоризонта. При отсутствии данных с оптического горизонта (туман, сплошная облачность), борт немедленно следует к ближайшей допускаемой точке посадки используя резервную схему коррекции горизонта по магнетометрам. Посадка по данным GPS/магнетометров.

Отказ GPS.

Борт использует для расчета опорные данные IMU с учетом поправок оптогоризонта. При отсутствии данных с оптического горизонта (туман, сплошная облачность), борт немедленно следует к ближайшей допускаемой точке посадки используя резервную схему коррекции горизонта по магнетометрам. Посадка по данным IMU/магнетометров.

Отказ оптогоризонта (не туман и т.п., а именно отказ).

Борт немедленно следует к ближайшей допускаемой точке посадки используя резервную схему коррекции горизонта по магнетометрам. Посадка по данным GPS/IMU.

Отрабатываемые критические аварийные ситуации на борту.

Отказ двигателя.

Отказ двигателя рассматривается в двух ситуациях. При частичной потере мощности - будет выполнен уход к ближайшей точке посадке из перечисленных в плане полета. При полной потери мощности - с выполнением аварийной посадки (против ветра) с опциональной возможностью (т.е. при наличии достаточной высоты и путевой дальности) дотянуть до ближайшей посадочной точки из заложенных в план полета. (В качестве опциональных, борт также рассматривает точку взлета.) Если имеется переизбыток энергетики полета, БПЛА выполнит соответствующие пространственные предпосадочные маневры с целью рассеяния избыточной энергии и безопасной посадки.

Мало топлива.

При наступлении условия “Бинго” по последней достижимой из остающихся точек посадки (перечисленных в плане полета) БПЛА осуществит полет к ближайшей остающейся точке и выполнит посадку там.

Разряд батарей / отказ генератора.

БПЛА осуществляет полет к ближайшей точке посадки и садится там. В случае если значения напряжения упадет до опасно малого значения, БПЛА осуществит стандартную процедуру аварийной посадки против ветра. Неуправляемый полет БПЛА не допускается.

Пожар.

БПЛА направляется к ближайшей точке посадке из перечисленных в полетном задании. Также активируется автоматический огнетушитель. Если датчики показывают что возгорание в силе после попытки тушения, полет продолжается на малых высотах до наступления иных критических ситуаций (отказ двигателя и т.д.) Далее ситуация отрабатывается в соответствии с отказом. Уничтожение проводки управления огнем и последующая потеря управляемости в полете в настоящий момент не регламентируется.

paratozor

еще один! До осени еще ОЧЕНЬ далеко, то, что погода испортилось, не означает, что осень пришла, гыгыгы 😃

Serafimus

Джойнт, это ты чтоль? я в вас все время путаюсь… 😃

paratozor
Serafimus:

Джойнт, это ты чтоль? я в вас все время путаюсь…

Я не узнаю вас в гриме, бугагага 😃

blade

Serafimus:

Не могли бы

Не считаю нужным 😍
Да и нельзя на чужом ресурсе свой сайт рекламировать-модераторы замодерируют 😢

Иван

Симпатичный самолётик:)

И ещё по теме - всё круто - алгоритм написан. Но вот думаю - если делать Беспилотник типа - взлетел-забыл… то смысл от него особый? оператор всё равно должен быть - задачи типа - от точки до точки можно и машине отдать с постоянным отчётом на базу, соответственно всё критичные решения о топливе и прочем примет человек… это проще и надёжней. Это с моей точки зрения моделиста:)

Serafimus
paratozor:

Я не узнаю вас в гриме, бугагага 😃

Энви это 😃
Не так конечно как в ГТ но благодарю за удивление 😃

blade:

Очень интересный вопрос: реализация детектора горизонта. Камеру в носу борт использует для детекции горизонта и углов или это только видеоканал для наземки?

Алгоритмы корректно садят борт при полном отказе двигателя?

Иван:

если делать Беспилотник типа - взлетел-забыл… то смысл от него особый?

Ниша есть под них, но это не столь важно, все равно этот проект никто никогда не будет финансировать (реакция здесь индикатор достаточно яркий), тут задача другая стоит: крайне интересно решить эту задачу “под ключ”.

Иван:

оператор всё равно должен быть - задачи типа - от точки до точки можно и машине отдать с постоянным отчётом на базу

Борт дает телеметрию и подчинится командам наземки, если оператор решит их отдать…

Иван:

, соответственно всё критичные решения о топливе и прочем примет человек… это проще и надёжней.

Гм, все критические решения принимает борт. Это условие автономного полета. Человеку дана возможность вмешиваться до тех пор пока не встает вопрос о безопасности. Т.е. носом в землю его не получится направить. Лететь при опасно малом запасе топлива борт тоже не даст, развернется на посадку. и т.п.

Иван

ТОесть в итоге максимально автономноый борт… думаю оно у вас точно полетит - в общем задача не сильно сложная, учитывая существующие вычислительные мощности, прогу автомат “довести до ума” тривиальная задачка для програмиста. Жду видео с полётов (а сам потихоньку крапаю свои бортовые мозги)

paratozor
Serafimus:

но благодарю за удивление

да какое там удивление, и при чем тут ГТ, я там с 2007 года не был 😃

Serafimus
Иван:

Жду видео с полётов

Да, конечно! Вот только до тестовых полетов в железе еще реально далеко. Проекту уделяется всего лишь по 4-5 часов в неделю… это оч мало. Пока только симулятор.

Иван:

(а сам потихоньку крапаю свои бортовые мозги)

А можете чуть подробнее рассказать о вашем варианте?

Serafimus

Вообще, до начала переноса логики на конкретное железо вычислителя осталось две основных задачи нерешенных. (Все остальное более-менее вменяемо работает) Первая - самая простая - реализовать нормальную безмоторную посадку. Весь необходимый инструментарий есть. Т.е. борт нормально управляется, и отлично ведет себя, выдерживает безопасную схему снижения с запасами по скорости. После отказа двигателя он выбирает ближайшую полосу и планирует туда. Загвоздка в логике высокого уровня. Алгоритм должен рассчитать какой у него избыток энергетики, т.е. куда он может дотянуть с текущими параметрами полета. Там два исхода. Если энергетики меньше чем надо - ну тут без вариантов, он поздоровается с землей где то по трассе. Если энергетики больше чем надо, необходимо ее рассеять, что бы к порогу глиссады он вышел с совершенно конкретными высотами и скоростями. Нужен маневр рассеяния энергии, лишний кусок траектории. И вот здесь пока как то странно получается расчет этого самого избытка энергетики, но это решаемо, собственно это текущая задача в решении…

Вторая, и куда более серьезная проблема - оптический горизонт. Для нулевой сборки алгоритма конечно не стоит никаких глобальных задач. Всего лишь определять положение линии горизонта в кадре. По умолчанию, проблем нет. Проблемы начнутся в ситуациях “летим над заснеженной поверхностью”, “летим в кучевых облаках”, “летим в горах”, и наверняка еще в туче странных комбинаций темного закатного неба и ярко освещенной подстилающей поверхности…

SGordon

а если не парится с оптогоризонтом а поставить IMU для начала? И вот про энергию не понял - счас ветер попутный , через километр встречный, как, рассчет справится с этим, когда гасить когда беречь?

Serafimus

IMU есть и он активно используется алгоритмом… задача возлагаемая на оптику - коррекция уводов горизонта при долгих полетах и определение малых высот при посадке… тут без вариантов, если рассматривать среднюю серьезность (без ультразвука с одной стороны и радиовысотомера с другой 😉 )

Ветер не поменяет направление через километр на 180 град… на высотах выше 100м он примерно одинаков по направления в наших равнинных местностях на большой площади… а в горах конечно всякое может быть. но там и аварийная посадка спорна.

Ветер принимается примерно равным. Когда вы идете на безмоторном планировании, всегда видна точка куда вас несет, безотносительно турбулентности, это один из важных навыков которому обучается пилот. Да, довольно приблизительно, особенно чем дальше от земли, но вы же за ручкой, значит можете подрулить, куда надо! 😃

Алгоритм также повторяет логику работы пилота, он прогнозирует точку куда несет борт и соответственно выбирает траекторию. Но там сейчас “плохая” математика. Работаю над ней.

blade
Serafimus:

определение малых высот при посадке…

А вот с этого места-нельзя подробнее?
Это-как?
В классической геометрии всё, связанное с малыми углами вызывает проблемы (в таблице Брадиса есть даже специальный раздел “Тангенсы малых углов”)…
А Вы хотите самый ответственный момент полёта- отдать оптике, которая именно в этих условиях будет давать наименьшую точность?
“Орригинальный Вы человек” (С),“Иван Васильевич меняет профессию”) 😃

Serafimus:

Но там сейчас “плохая” математика

Тут-тоже 😦

Иван

а если для оптогоризонта взять тепловизор? либо нужна качественная камера и хороший алгоритм обработки…(для тепловизора наверное тоже нужен хороший алгоритм:)) есть варианты в сети когда ставят на законцовки консолей ультразвуковые датчики - при посадке борт очень стабилен будет… лучше на все четыре крайние точки по такому влепить.на дальних перелётах камеру можно вращать для точного определения горизонта - выж не на бреющем на дальняка поворотом камеры можно спаралелить плоскости подвеса камеры и горизонта и точность снизится.

blade
Иван:

а если для оптогоризонта взять тепловизор?

То получится FMA-Direct CO-Pilot, который стОит 65 $ и уже лет 10, как продаётся 😃

Иван:

консолей ультразвуковые датчики

А вот это- правильное решение, только не на законцовки, а просто под брюхо, поскольку ему надо не крен отслеживать, а высоту.
Креном- ИМУ заведует.

Иван

тепловизор так то рубликов тыщ 30 наверное стоит - камера такая которая в ик спектре видит;)