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

Korogodsky
KIR2142:

Нет, необходимости в этом конечно нет.

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

KIR2142

Давайте договоримся Максим, я ведь не предлагаю ограничивать ваши посты в этой ветке лишь здравыми и реалистичными идеями, имеющими хоть небольшой, но все-таки шанс на реализацию (поверьте, их тут намного меньше 150 символов на всю ветку), а вы не ограничивайте меня. Толковых советов я вам дал, причем не один. Вот хотя бы двумя постами выше: "Может для начала книжек что-ли купить?". Однако если вы считаете, что чтение спец. литературы по программированию автопилотов для БПЛА (есть такая книга) или по ПИД-ам является бестолковой затеей для реализации столь масштабных (sic!) проектов, то и правда тут уже добавить нечего.

DVE
Korogodsky:

> немаловажное участие принимают различные ПИДы
Собственно меня вот этот момент интересует. Это необходимо?

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

Про PID с картинками хорошо написано тут: logic-bratsk.ru/radio/pid/irt/main1_10.htm

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

KIR2142:

Ну вы пишите, пишите автопилот… Главное что элементы OSD в вашей концепции можно мышкой перетаскивать на экране - это очень важно, поверьте!

Хобби тем и отличается от работы, что можно делать что угодно 😃

Korogodsky

Пошел читать и тд. и тп. Так что не скоро новости будут.

UncleSam
KIR2142:

Слежу за это замечательно темой, столько идей здесь собрано - от управления по интернету к моделям с вертикальным взлетом, RC машинкам, нейронным сетям, искусственному интеллекту и даже собственному автопилоту.

осталось всего ничего, спросить на форуме равняется ли угол отклонения РУ углу между курсом и целевым направлением

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

Да, порой автора немного несет, вертикальный взлет, искусственный интеллект, явно за областью объявленной задачи, да и автопилот пока рано.
Пусть модель для начала полетит. Но говорить об этом так как вы - губить идею. А здравые идеи тут все таки проскакивают.

msv

2Максим. Ваш алгоритм может как-то сработать при управлении самолета с очень высокой самостабилизацией. По сути это эквивалентно ручному управлению вслепую… Попробуйте полетать на симуляторе с закрытыми глазами и подсказками ассистента:

  • так… теперь правее…
  • немного влево…
  • выше! выше!
    итп…
    Сможете так пролететь по определенному курсу?
    Для управления реальными моделями автопилот должен давать управляющее воздействие подсистеме стабилизации, которая уже будет поворачивать сервы в зависимости от целевых и текущих крене/тангаже.
Korogodsky
msv:

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

Я думаю, я вас понял. Т.е. допустим, автопилот дает команду отклонить элероны, а самолет при этом делает бочку вместо крена. Вообще следуя даваемым тут советам, я предполагал немного снизить планку и сделать сначала автопилот без системы стабилизации, а систему стабилизации взять готовую.

15 days later
Korogodsky

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

Закладка еще в процессе разработки, мудрые советы приветствуются.

Musgravehill
Korogodsky:

Усложняем задачу, угол равен 180 градусов. Самолет может отклонить руль на 15 градусов (на 180 не умеет). Значит выбираем меньшее, т.е. 15. Далее, через некоторое время после начала маневрирования , у нас угол становится равным 2 градуса

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

rcopen.com/forum/f8/topic216494 ваш коллега, тема интересная

Korogodsky
Musgravehill:

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

Да, я слежу за этой темой.
Инфу уже накачал, буду читать.

Korogodsky

Небольшая обновка - уведомление о доставке отправленных данных. Для проверки корректности полученных данных используется функция
GetHashCode()

Korogodsky

Уведомление о доставке сделал двумя разными способами:

  1. Для путевых точек: отправляем с базы строку; на бору получаем и вычисляем хэш-код; отправляем на базу хэш-код полученной строки; на базе сравниваем хэш-коды, если не равны повторяем отправку/если равны отправляем OK; если получаем на борту OK, отправляем на базу ACCEPTED и загружаем полученную строку в таблицу последовательностей; если получили на базе ACCEPTED, останавливаем таймер отправки.

  2. Для последовательностей: отправляем с базы строку; на борту получаем строку и вычисляем хэш-код и сразу загружаем полученную строку в таблицу последовательностей; отправляем на базу хэш-код полученной строки; на базе сравниваем хэш-коды, если не равны повторяем отправку/если равны останавливаем таймер отправки.

Какой вариант оставить?

Володимир
Korogodsky:

Какой вариант оставить?

Третий 😉,

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

Korogodsky
Володимир:

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

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

Есть еще вопрос!
Сейчас обновление значений каналов сделано так:
В настройках задается частота опроса стиков джойстика. Это максимальная частота с которой отправляются значения каналов. Если значение канала изменилось, отправляется текущее значение. В дополнение к этому есть 1 Гц таймер, который 1 раз в секунду отправляет текущее значение каждого канала. Т.е. если например в настройках задано, что используется 10 каналов, то через каждые 100мс отправляется текущее значение каждого следующего канала. Если же используется 24 канала, обновление происходит каждые 1000/24=41мс.

Что думаете по-поводу такого алгоритма?

23 days later
Korogodsky

На этих выходных планирую выложить программку для скачивания. Если остались еще интересующиеся и сочувствующие, у кого имеется 3G модем, хотелось бы получить помощь в тестировании. Потребуется подключить услугу (или ее аналог у других провайдеров): moscow.megafon.ru/…/dinamicheskijo_ip-adres.html
У Мегафона услугу публичный IP адрес можно подключить только к голосовым тарифным планам, на тарифных планах Мегафон-Логин эта услуга не работает. Или потребуется настроить VPN соединение.

PS
Автопилота еще нет! 😃

8 days later
Korogodsky

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

Korogodsky

Выложил обновленную версию на:
ipfpv.com

Появилась возможнось настраивать размер видео пакетов, а также размеры входящих и исходящих буферов, для видео 640х480 100% качества ставьте размер буфера по-больше, начните с 640K. Если видео кадры отображаются не полностью, скорее всего нужно увеличить размер буфера, т.к. то что пришло и не поместилось - пропадает. Максимальный размер пакета - 64К. Для джойстика добавлены все возможные оси и 20 кнопок.