Управление через интернет

Korogodsky

ok

А на сколько информативны шкалы высоты и скорости по GPS? Цифровых показаний не достаточно?

webconnector
Korogodsky:

Цифровых показаний не достаточно?

для скорости достаточно ! а висту если есть возможность лучше сделать по шкале (Если не трудно ) но и это не критично

просто по шкале быстрее понимаешь опускаешься или поднимаешься вверх

Korogodsky
webconnector:

лучше сделать по шкале (Если не трудно )

Буду делать, просто думал что толку от них мало.

UncleSam
Korogodsky:

Не за горами уже тот день когда можно будет начать делать автопилот. И, т.к. я пока весьма смутно представляю себе алгоритм автопилота, хотелось бы на эту тему тоже что-то услышать, прям по пунктам - как это работает.

Для начала вот это.
www.airwar.ru/breo/pnk/pnk4.html
и это =)

www.google.ru/search?aq=f&sourceid=chrome&ie=UTF-8…

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

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

Вроде все просто, но тут есть несколько засад. Если коэффициент можно не подбирать для каждой модели, а динамически вычислять отслеживая реакцию модели на изменение положения управляющих плоскостей, то что делать с остальным не ясно.

Знать свое положение в пространстве жизненно необходимо, причем не только конкретную точку в небе, но и вектор движения, (тангаж, рысканье), крен ты при всем желании из GPS не вытянешь. Нужна гироплатформа, а те что есть в доступном ценовом сегменте сильно дрейфуют, и что с этим делать не совсем понятно, пытаться корректировать гироскопы через акселерометры и магнитный компас разве что. Либо обойтись пироголовами. имхо зная только GPS не вытянешь даже самостабилизирующийся самик.

Korogodsky
UncleSam:

и это =) смотрите, что умеет поиск…

Это понятно 😃
Невозможно одновременно и про автопилот читать и все остальное делать, поэтому расчитывал пока у меня там что-то делается народ набросает тут самое основное про автопилот.
За информацию, краткое описание и мысли по поводу алгоритма спасибо!

Вот набросок OSD, элементы можно двигать:

webconnector
Korogodsky:

Вот здесь smalltim-у был предложен интересный вариант автопилота:
Smalltim OSD and autopilot (часть 1)
Реально ли его реализовать?

не стоит заморачиваться (портит этот классный проект ненужными вещами )

Korogodsky
webconnector:

не стоит заморачиваться

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

Я думаю уделить еще достаточно много времени интерфейсу, когда интерфейс будет в общем готов, попробую реализовать что-то типа AI. Может это и будет тупиковый путь, но стоит попробовать. Сделаю так: если через месяц после начала работ по созданию ИИ будет 0 результата, вернусь к созданию автопилота на основе испытанных алгоритмов. А пока пишите идеи как это сделать, только не надо ссылок 😃

webconnector
Korogodsky:

Я думаю уделить еще достаточно много времени интерфейсу

+1

Korogodsky:

попробую реализовать что-то типа AI

не хочется расстраивать но искусственного интеллекта не получится !

он научится и марковить и летать (не возможно сделать так чтобы это учил это нет )

Korogodsky:

А пока пишите идеи как это сделать, только не надо ссылок

к сожалению от программирования очень далек 😦

Korogodsky
webconnector:

к сожалению от программирования очень далек

при создании механизмов ИИ похоже главное - это руководствоваться здравым смыслом…

webconnector:

он научится и марковить и летать (не возможно сделать так чтобы это учил это нет )

Должны быть заложены базовые навыки, не позволяющие причинить себе ущерб, что-то типа инстинкта самовыживания.
Получив положительный или отрицательный опыт, откладываем его в нейронах - записях “базы данных” которые являются сами объектами (подпрограммами). И постепенно обрастаем этими нейронами. Наверное каждая ситуация должна сравниваться со всем полученным опытом, только смущает что весь “полученный опыт” будет проверяться очень долго, но поскольку нам нужно только летать, его может будет не очень много 😃

webconnector
Korogodsky:

Должны быть заложены базовые навыки, не позволяющие причинить себе ущерб, что-то типа инстинкта самовыживания.
Получив положительный или отрицательный опыт, откладываем его в нейронах - записях “базы данных” которые являются сами объектами (подпрограммами). И постепенно обрастаем этими нейронами. Наверное каждая ситуация должна сравниваться со всем полученным опытом, только смущает что весь “полученный опыт” будет проверяться очень долго, но поскольку нам нужно только летать, его может будет не очень много

фантастика блин ! 😁😁 кстати у вас хорошо получается может книжку написать 😉 лучше стандартный автопилот контролирующий висоту и курс

Korogodsky
webconnector:

лучше стандартный автопилот контролирующий висоту и курс

Посмотрим… +/- месяц ничего не решит 😃

UncleSam

Максим, я бы пока на вашем месте не стал заморачиваться на искусственный интеллект.
У нас конечно простейший случай для нейронной сети
входов будет штук 10 - 3 координаты текущие, 3 координаты конечные, текущие скорость, крен, тангаж, рысканье (возможно стоит еще добавить последнюю корректировку курса чтобы ввести обратную связь избегая ухода системы в колебания)
выходов четыре - руль высоты, руль направления, элероны, тяга двигателя.
Реализуется на стандартных библиотеках на раз.

Это единственный плюс, теперь минусы.
Главное отличие нейронной сети от алгоритмов в том, что система не дает 100% результат. Ты никогда не сможешь сказать почему система сделала так или иначе, допустим обучил ты систему (что уже маловероятно не угробив самолет), будет она у тебя нормально летать 99 полетов из 100. В этом одном случае выявить какую либо ошибку ты не сможешь никак. Целые научные коллективы бьются над технологиями обучения нейронных сетей 😦
Под каждый новый самолет систему придется переучивать, тут нельзя просто коэффициенты на рулевые плоскости подобрать и в небо.

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

Хотя если подумать действительно можно снять а затем скормить сети логи пары тройки собственных полетов из точки в точку, лучше прохождение по нескольким точкам. Это будет проще реализации обычного автопилота, научит сеть нормальным режимам полета, но что она будет делать в ситуации которой ее не учили - непредсказуемо.

Вобщем мое личное мнение. не стоит распыляться это все можно сделать потом.

KIR2142

Автопилот на нейронных сетях, искусственный интеллект для управления моделью и т.п. - все это интересно обсуждать на форуме, да ))) Жаль что не доведенный до хоть сколько-нибудь практической реализации проект ставит перед собой еще более фантастические цели.

Musgravehill
KIR2142:

на нейронных сетях

как замена скучным формулам. Это же просто универсальный аппроксиматор.

Korogodsky
KIR2142:

Жаль что не доведенный до хоть сколько-нибудь практической реализации проект ставит перед собой еще более фантастические цели.

Я же объясняю, что попытка сделать самообучающийся автопилот будет предпринята только после того, как в целом будет готов интерфейс программы (без автопилота), а на это нужно потратить еще много времени. Сейчас мечты об искуственном интеллекте практически не отнимают ресурсов и ни чему не мешают. Автопилотом все равно заниматься еще рано, так что можно пока помечтать. Когда прийдет время, на попытку я отведу только месяц, и если за это время не получится создать зачатки саморазвивающейся сети, реагирующей на входные данные, вернусь к класике. 😃

KIR2142

Тема начиналась с ЛА с вертикальным взлетом и посадкой, дошли до полетов на универсальных аппроксиматорах и саморазвивающихся сетей. Спорить не буду - КРУТО! То что мечты ресурсов не отнимают согласен. Жду нового.

ЗЫ. Как насчет нанотоплива кстати? Тоже вроде нужная штука для полетов на дальний расстояния.

Korogodsky
KIR2142:

Тема начиналась с ЛА с вертикальным взлетом и посадкой

а я еще не передумал 😃 естественно это опять еще только мечты и к практической реализации даже прогнозировать сложно когда приступлю, но создать такой аппарат точно возможно - F35 и ему подобные же как-то летают.

UncleSam
KIR2142:

ЗЫ. Как насчет нанотоплива кстати? Тоже вроде нужная штука для полетов на дальний расстояния.

Зря иронизируете 😃 нейронная сеть действительно способна довольно эффективно рулить самолетом даже используя в качестве железа ПК. И это гораздо проще чем научить ее ходить используя 6 ног.

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

Korogodsky
UncleSam:

Не стоит углубляться в фантазии не имея синицы в руках.

Ок, нейронную сеть пока отложим 😃 Сначала сделаю автопилот рулящий только по GPS, вроде бы как это будет уже нечто законченное.

KIR2142:

Как насчет нанотоплива кстати?

Это начиная с версии 2.0.

Korogodsky

Чтобы развернуть самолет на требуемый курс, достаточно ли с заданным интервалом вычислять угол между текущим направлением движения и прямой между текущим положением и заданной точкой, и отклонять, например, руль направления на этот угол, ограничивая отклонение руля заданной максимальной величиной?