Fail-Safe - Автопилот для полетов по камере
Мне кажется, что с учетом того что ГПС имеет погрешность ±10м то будь то 1 или 2 или пол секунды
огромной роли не сиграют.Ведь даже при большом количестве принимаемых спутников, около 5-6 спутников , сидя\стоя на месте , координата в 3D пространстве всёравно меняется !
Для повышения точности и получения непрерывного потока измерений используют экстраполяционные фильтры семейства фильтров Калмана. Есть даже открытые реализации для автопилотов вроде. Фильтры правда лучше связывать с еще доугими датчиками, чтобы предсказывать положение без GPS, а GPS использовать для коррекции дрейфа раз в секунду.
Возможно, прогу и можно прошить в GPS. Я видел всякие SDK вроде под проци в GPS. Возможно, опытный serj скажет более подробно 😃
Могу посоветовать зайти сюда www.uav-dpla.narod.ru и связаться с хозяином. Вся аппаратура самодельная и самолет тоже, может он подскажет чего… Я видел как это летает, любо дорого посмотреть. Уводят по дальше, задают на ноутбуке точку, выключают передатчик, и он сам возвращается в эту точку и кружит на одном месте пока не получит команду чё ему дальше делать.
Как называется приемникGPS, позволяющий программировать PWM - сигнал?
Приёмник фирмы Javad Navigation Systems с процессором Motorola MPC566.
Весь автопилот реализован непосредственно в GPS приёмнике.
Сначала работал на частоте 1Hz, но оказалось мало для ровной езды.
Сейчас позиция считается 10Hz по методу наименьших квадратов ( без Калмана )
Шум позизии около метра-двух
Фильтруется только направление скорости на интервале 0.5 сек
Машинка едет ровно и гладко.
Ввёл режим движения от одной точки до другой с заданным азимутом,
имитируя движение самолёта вдоль ВПП. Ездит туда - обратно пока батарейка не кончится.
Подключил GPS и RF приёмники к рулевым машинкам через мультиплексор.
Теперь одни каналы могу отдать на время GPSу (курс), а другими управляю с передатчика (тяга, высота). Легко отрабатывать посадку.
Приёмник фирмы Javad Navigation Systems с процессором Motorola MPC566.
Весь автопилот реализован непосредственно в GPS приёмнике.
Получается, что люди, способные понимать/модифицировать внутренности ГПС всё-таки есть в природе.
Сначала работал на частоте 1Hz, но оказалось мало для ровной езды.
Сейчас позиция считается 10Hz по методу наименьших квадратов ( без Калмана )
Об ентом Серж насколько я понимаю только мечтает - увеличить частоту принятия решений с 1 Гц до 10 Гц хотя бы.
Шум позизии около метра-двух
Фильтруется только направление скорости на интервале 0.5 сек
Ну про шум мне трудно сказать, но точность без ВААС минимум который пишет ГПС - 4 метра.
А ВААС вроде как только над Штатами работает.
Машинка едет ровно и гладко.
Ввёл режим движения от одной точки до другой с заданным азимутом,
имитируя движение самолёта вдоль ВПП. Ездит туда - обратно пока батарейка не кончится.
Хочу сказать простое и надоевшее слово “ДАЙ”. Можно в личку, можно здесь. Если вообще можно. Ну то есть тоже хочется попробовать на мини кваке ну и быть могет на электро планере ушастом в будущем.
Подключил GPS и RF приёмники к рулевым машинкам через мультиплексор.
Теперь одни каналы могу отдать на время GPSу (курс), а другими управляю с передатчика (тяга, высота). Легко отрабатывать посадку.
Ну енти детали реализации важны, если на “Дай” найдётся ответ " Возьми".
Желательно с исходниками естественно. Потому как самому изобретать ентот велосипед силёнок-то может и не хватить.
Однако всё-равно радует, что хоть кто-то могёт, хоть для какого-то частного случая проца в ГПС. Особенно про ненавистные 1 и 10 Гц расчета позиции/принятия управляющих решений.
В идеале (не бюджетном) мне кажется данные с нескольких ГПС антенн/модулей разнесенных/разноориентированных по квадрату крылья/фюз обсчитывать в одном процике с учетом разницы их пространственного положения.
Хотя лично я в ентой математике как детёныш.
Получается, что люди, способные понимать/модифицировать внутренности ГПС всё-таки есть в природе.
По-моему, не столь суть важно, где живет клиентская программа - во внешнем процессоре или подгружается к ядру в процессор GPS. Главное, чтобы сам приемник мог выдавать координаты чаще, чем раз в секунду. JavadNS, судя по мануалам, могут работать до 100Гц, но цены на их приемники измеряются в тысячах $$
Приёмник фирмы Javad Navigation Systems с процессором Motorola MPC566.
Весь автопилот реализован непосредственно в GPS приёмнике.
Мнда… Размерчик великоват. В таком формате и с таким весом есть готовые навигаторы с удобным вводом и отображением маршрута. Однако на борт планера такой девайс не поместить.
Скажем, вариант использования штатного дешевого eTrex с RCAP получается по габаритам меньше, а по весу - столько же. Так это с индикатором и многоточечным маршрутом.
Насчет частоты обновления - 4Гц запросто дают приемники u-blox, а больше оно и не нужно.
JavadNS, судя по мануалам, могут работать до 100Гц, но цены на их приемники измеряются в тысячах $$
Ну вот блин, а я то наивный полагал что ГПС до $100 стоимость. Какова же глубина моего заблуждения - цены ОТ $3 000 до $56 000. Ентот ценовый диапазон для модели Боинга 1:1 приемлемо наверное.
Хотя да, 100 Гц принятия решений ето конечно круто. Однако просто не по деньгам удовольствие. Ну то есть не игрушечное явно.
Так что моё “ДАЙ” снимается с обсуждения - не мой размерчик.
Зато судя по ценам и сложность исходной задачи вполне можно оценить.
Зато судя по ценам и сложность исходной задачи вполне можно оценить.
Если исходная задача - приведение устойчивого аппарата в заданную точку с точностью в несколько десятков метров, то вполне достаточно скорости и точности дешевого GPS приемника, как правильно заметил vovic.
Сам приёмник точно не бюджетный и преднозначен для другого сектора.
Поэтому и дал название фирмы.
Антенну поставил “ширпотребовскую” GlobalSat 4см. в диаметре
одночастотную с магнитиком.
Позиция считается без всяких WAAS дифференциальных систем.
Т.е. с точки зрения позиции всё по-честному.
Просто мне удобно с ним обращаться.
Хотел прежде всего поделиться моей реализацией.
В процессоре MPC565/566 есть модуль Modular Input/Output Subsystem
На нём и запрограммировал PWM сигнал
Позицию пишу во внутреннюю память.
Используется только “голая” плата весом 150грамм.
Данный приёмник используется чисто в хоббийных целях без всех его возможностей.
Математика простейшая, нацеленная на микроконтроллер.
Просто у меня нет отдельного микроконтроллера (хотя в дальнейшем перейду на дешёвый GPS и отдельный контроллер), а есть дорогой приёмник.
Мне сейчас удобней использовать такой вариант (всё в одном флаконе).
Наверняка в других приёмниках можно сделать похожее.
Испытывался не сам GPS приёмник, а его реализация и, собственно, алгоритм автонавигации с простой математикой.
Коммерческие варианты не интересууют. Хочу сделать весь комплекс сам и с “подручными”
материалами с нуля, с чисто хоббийными целями.
GPS приёмник дорогой, но он у меня есть, и ипользую его как маленький компьютер с позицией.
вес - 150г.
Возможности GPS приёмника для расчёта сверхточной позиции не используются.
Т.е. он у меня как дорогой макет для будущей дешёвой реализации.
А вот на любые вопросы связанные непосредственно с автоуправлением отвечу с радостью.
Реализация мультиплексора:
Поставил нашу отечественную микросхемку К555КП12, стоимостью 10р.
Она умеет в зависимости от уровня управляющего сигнала подключать выход к одному из 4х входных цифровых сикналов.
Таким образом на входе мультиплексора
с радиоприёмника
1й канал - курс
2й канал - управление
с GPS приёмника - курс
Ко 2му каналу RC прёмника подключил регулятор оборотов. Выдаёт либо высокий либо низкий уровень для мультиплексора
На выходе мультиплексора сигнал либо с RC приёмника, либо с GPS. Управление вторым каналом с RC передатчика.
Также и тяга и т.п.
Таким образом в любой момент с RC пульта можно управлять курсом самому, либо брать с GPS.
Давно ищу себе соучастника вот в таком деле. Есть готовый проект:
rcpilot.sourceforge.net/modules/rcap/index.php
С открытым софтом - исходники выложены на сайте.
Он хорош простотой и доступностью любому желающему. Мною испытан и отлажен. Но плох тем, что работает только с навигатором, задающим курс на цель. С обычными GPS- приемниками работать не может.
Цель замышляемого дела - модифицировать софт так, чтобы он смог работать с любой GPS-головкой.
Я заткнулся на том, что не смог написать расчет азимута на цель по известным координатам на Пикбейсике без библиотек функций. Ну, не программист я. 😊
Может кто возьмется помоч ?
Давно ищу себе соучастника вот в таком деле. Есть готовый проект:
rcpilot.sourceforge.net/modules/rcap/index.php
С открытым софтом - исходники выложены на сайте.
Он хорош простотой и доступностью любому желающему. Мною испытан и отлажен. Но плох тем, что работает только с навигатором, задающим курс на цель. С обычными GPS- приемниками работать не может.
Цель замышляемого дела - модифицировать софт так, чтобы он смог работать с любой GPS-головкой.
Я заткнулся на том, что не смог написать расчет азимута на цель по известным координатам на Пикбейсике без библиотек функций. Ну, не программист я. 😊
Может кто возьмется помоч ?
Синусы/косинусы и обратные функции в Пикбейсике есть?
Я заткнулся на том, что не смог написать расчет азимута на цель по известным координатам на Пикбейсике без библиотек функций. Ну, не программист я. 😊
Может кто возьмется помоч ?
Если это поможет, могу проконсультировать по численным алгоритмам. С Пикбейсиком я не работал и нет желания с ним разбираться.
Если исходная задача - приведение устойчивого аппарата в заданную точку
Мною имелась ввиду сложность/дороговизна реализации задачи принятия управляющих решений 10-100 раз в секунду.
А по численным алгоритмам - енто конечно круто, не вопрос.
Но мне кажется всё-таки, раз уж в (пик) бэйсике нету обратной тригонометрии, всё-таки (хотя бы)математику писать на Сях, поскольку в стд либ есть потребные арк функции, ну а Си есть условно бесплатный.
Ну а всякие обработчики входного текста NMEA - можно и на асме.
Ну а о платформе как обычно два лагеря - АВР супротив ПИК (пора уже хоть 18).
И там и там приверженцы/сторонники/противники.
P.S.
А в BU353 асинхронный NMEA выход нашёлся под антенной, естественно. Лень фотать, но выход нашёл.
Но ещё даже к своей макетке 18пик+20*4 лсд не подключал, обработчик NMEA текста не писал - как-то не с руки было.
Кстати, про сирф-3 вроде до 10 Гц пишут обновление позиции, или я чего-то путаю ?
Нет, не путаешь, так и пишут 😃
Как на нем антенну снять ? нужно пипку по центру в антенне распаять ?
А по численным алгоритмам - енто конечно круто, не вопрос.
Но мне кажется всё-таки, раз уж в (пик) бэйсике нету обратной тригонометрии, всё-таки (хотя бы)математику писать на Сях, поскольку в стд либ есть потребные арк функции, ну а Си есть условно бесплатный.
Да в том то и дело, что девайс готов и работает. Его только подправить надо.
А если Вас послушать - то нужно переписывать все заново, соответственно - все отлаживать заново. Именно на это, как правило, энтузиазма не хватает.
Отлаживать там есть что, потому что даже в готовой и работающей программе я нашел ошибки, приводящие к дрожанию сервомашинок.
Как всегда - недостатка в советах нет, но вот помоч - это всегда дифицит.
А никто кстати путных ссылочек на материалы по подобным рассчетам не подбросит?
Ладно, синусы/косинусы и обратные посчитаем по рядам Тейлора.
Просмотрел код rcap и не увидел там формата чисел с плавающей точкой.
В ПикБейсике только целочисленная математика?
Или всё-же плавучка есть?
Плавающую - это через подгружаемые библиотеки - там места может не хватить.
Было бы замечательно написать все в целочисленном варианте. У меня там возникла проблема с разрядностью. Дело в том, что формат координат по долготе, к примеру, таков: ГГГ.ММ,МММ - Это семь с половиной десятичных знаков, что в двоичном варианте составляет 24 разряда. Поэтому считать разницу текущей координаты и координаты цели уже непросто в целочисленной арифметике. Надо изголяться. А я - не умею. Отбрасывать младший разряд - нельзя.
Единственное допустимое упрощение - это ограничиться только северной широтой и восточной долготой.
Вторая проблема - есть готовый кусочек кода кусочно-линейной аппроксимации функции арктангенса -
www.dattalo.com/technical/software/…/arctan.asm
С нормальной точностью. Но он только для октета - 0-45 градусов. К нему еще надо дописать сведение 0-360 градусов через изменение знака и дополнение. Кроме того, чтобы избежать деления на ноль, надо написать отработку выколотых точек - их четыре - это когда цель и модель находятся точно на одной широте или долготе.
Почему я зациклился на этом? Да потому, что, если расчет азимута таки написать на пике, то дальше отлаженный на столе кусочек кода просто вставляется в готовый девайс - и можно лететь! 😃
Плавающую - это через подгружаемые библиотеки - там места может не хватить.
Было бы замечательно написать все в целочисленном варианте.
А этот Пикбейсик - бесплатный софт или как? Есть ли в нем симулятор? Где можно посмотреть описание?
Я брал бесплатно вот тут - это форум поклонников PIC:
www.microchip.ru/phorum/
Там дадут ссылочки и посоветуют.
Там отладочная оболочка неплохая есть. Но все равно - нужно соображать.
А этот Пикбейсик - бесплатный софт или как? Есть ли в нем симулятор? Где можно посмотреть описание?
Я может упустил что-то, но почему бы не написать на C ? Если отбросить извраты, но его базовая часть (логика, арифметика, простые типы) не сложнее Бейсика. К тому же есть тип double, библиотеки и нормальные комиляторы (PICC например). Контроллер лучше брать из серии PIC18, например PIC18F252 - у него 16k команд (32k bytes) и 1.5kb RAM, Serial, 5 ADC, Freq до 25 MHz или 40 Mhz с учетверителем такатовой. Цена около 250р. Программатор WinPic800, железо у меня Tait LPT.