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

UncleSam

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

Korogodsky
UncleSam:

работающую уже в апреле, только на машинку поставил.

Вот не получается у меня всегда выбирать правильный путь и концентрироваться на одном, да и вдохновение как говориться не всегда есть 😒

1 month later
Korogodsky

Чтобы реанимировать тему, выложу несколько картинок. Интерфейс сейчас в процессе разработки, высказывайте пожелания:




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

Korogodsky

OSD сейчас в процессе разработки. Как лучше реализовать настройку расположения элементов? Сделать перетаскивание мышкой в основном видео-окне с видом с камеры? Тогда можно будет перетаскивать надписи непосредственно в процессе управления моделью. Либо сделать отдельную закладку OSD Configuration и настраивать там? Вообще нужно во время управления моделью перетаскивать надписи OSD?

webconnector
Korogodsky:

Либо сделать отдельную закладку OSD Configuration и настраивать там?

по моему так лучше

Korogodsky:

Вообще нужно во время управления моделью перетаскивать надписи OSD?

нет

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:

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

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