строю свой автопилот, интересуют несколько вопросов

stalcer
kaveg:

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

Погоди-ка. Здесь ты не прав. Мое решение (в сообщении №53) не требует, чтобы самолет летел носом вперед. Главное - чтобы перемещался в координатах GPS.

Поправка: все, дошло. Таким образом мы можем компенсировать только ошибку акселерометров, а гироскопов - не можем. Чтобы компенсировать гироскопы - да, нужно чтобы модель летела носом вперед. Каюсь 😊

stalcer

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

kaveg

нет магнетометры нужны, зная модуль воздушной скорости и вектор(курс и модуль) с жпснельзя восстановить направление курсовой скорости(V1 V2 на картинке) а нет опорного курса незнаем куда смотрит нос в общем случае в часном случае модет чтото и получится сделать(модуль Vgps== модуль Vair) соотвественно куда направлен реально нос скзать не смогем, определённой последовательностью действий не меняя курс и решив систему уравнений сможем восстановить направление но это можно делать только не меняя курс чего мы сделать не сможем изза дрейфа курсовой гиры, мы просто не будем знать когда курс остается постоянным а когда нет

это было для

stalcer:

А впрочем нет

обалденно седня полетал до отсечки - 22 минуты, заодно понял что надо таки бросить свою последнюю вредную привычку курить - тестил дальность радива - 400-450 метров без косяков, дольше перестал различать махания помошника и решил забить ибо на таком растоянии помошника не видел нормально не то что самалёт

stalcer

Зная вектор Vgps (направление и модуль), мы фактически знаем расположение земли относительно модели, т.е. тот вектор который нам дает магнитометр - тоже можно вычислить. Значит магнитометр не нужен 😛.

Вот в pdf, ссылка на который лежит у тебя на сайте, написано:

An accelerometer and magnetometer will measure the earth’s gravitational and magnetic elds respectively and so provide an absolute reference of orientation.

Замени здесь “magnetometer” на “GPS sensor” - ниче не изменится.

Датчик, который дает Vair - тоже не нужен. Т.е. он может и нужен для чего-нибудь другого (например, для оценки скорости ветра и выбора стратегии управления), но для определения положения модели - не нужен (имхо).

Я рассматриваю систему из GPS, 3dof акселерометра и 3dof гироскопа. И пока все. Интуитивно кажется, что их должно быть достаточно для определения положения/направления модели.

ЗЫ: вчера с дочкой изучили проблему 😁

kaveg
stalcer:

Я рассматриваю систему из GPS, 3dof акселерометра и 3dof гироскопа. И пока все. Интуитивно кажется, что их должно быть достаточно для определения положения/направления модели.

ЗЫ: вчера с дочкой изучили проблему 😁

будет достаточно пока

  1. отсутствует ветер изменяющий направление вектора скорости относительно того куда смотрит самалёт
  2. нет скольжения - вчера только наблюдал когда попозже поднялся ветерок когда самолет летел фактически крылом впёрд))))
    те компенсация возможна только в определённые моменты, вопщемто для “только определённые” магнетометр подходит лучше, с компенсацией магнетометром фишка в том что если предположить что самаолёт летает примерно равномерног - одинаковое количество левых и правых виражей и других изменяющих показания акселерометров возмущений когда среднее значение вектора ускорения соотвествует G и направлено в низ
stalcer
kaveg:

отсутствует ветер изменяющий направление вектора скорости относительно того куда смотрит самалёт

Да не прав ты в этом. Мне все равно какой стороной вперед летит самолет. Более того, используя систему из трех датчиков (GPS, акселерометр и гироскоп) я могу это определить (а определив это, я могу даже аналитически вычислить, куда дует ветер (ну примерно)).

Тут придумалась такая метафора: немного жестоко, но, надеюсь, никто не обидится 😇:

Вот поймали тебя (ну ладно, пусть меня 😵) бандиты. Поставили посередине комнаты, завязали глаза. А потом пнули ногой в живот.
Вопрос: смогу ли я (с завязанными глазами) оценить:

  1. насколько я отлетел? Ну примерно смогу. Скажем, мне показалось, что метра на два.
  2. какой стороной я летел? Конечно смогу! Я же знаю, что меня пнули в живот, т.е. летел я задницей вперед.

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

Страшилки продолжаются: Далее, бандит по кличке “GPS” 😁 вдруг сообщает в эфир (другому бандиту, ну и я тоже слышу): “Ооо! Круто пошел 😈, прямо в направлении севера 😁”.

Все, блин! Получив эту информацию, я знаю что в конечной точке я стою лицом на юг.

kaveg
stalcer:

Далее, бандит по кличке “GPS” вдруг сообщает в эфир (другому бандиту, ну и я тоже слышу): "Ооо! Круто пошел , прямо в направлении севера ".

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

stalcer:

какой стороной я летел? Конечно смогу! Я же знаю, что меня пнули в живот,

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

blade
kaveg:

бандюган по кличьке жпс тебе этого не скажет

Ребяты, не парьтесь: всё давно украдено (до вас) 😃
Надо корректировать “0” гироскопов (или- горизонта, как нравится) по двум ориентирам :
3Д компасу (грубовато) и наличию-отсутствию скольжения (по ЖПС).
Только не раз в 10 сек, (как тут пИсали) а пять раз в секунду (т.е. с каждым приходом пачки координат с ЖПС модуля) .
И будет- Щастье.

msv

Может пора к формулкам перейти, а то что-то не врублюсь в все эти аналогии… кто и зачем пнул мой самолет… И как он почувствовал куда его пнули… И тем более как из этого или из определения наличия скольжения получить текущий крен… Правильно ли понял, что зреет аналитическое решение а не вероятностное? Это было бы действительно счастье…

stalcer
kaveg:

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

Дык, мне этого знать и не нужно.

kaveg:

а бандит жпс может выдать твой курс с погрешностью 180 градусов(случай когда сильный ветер в морду и ты летишь в потоке хвостом вперёд относитенльно земли и жпс показывает не туда куда ты собираешся лететь а совсем в обратную сторону)

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

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

пнули один раз от боли курс в мосгу сбился на градус, пнули второй ещё и так далее

Ну, и еще раз про тоже самое: Каждый раз, когда меня пинают, я, извините, заново чувствую куда мне попали (в пузо или в бок). И, следовательно, заново понимаю, каким боком я лечу туда, куда я лечу (я еще не знаю, куда я лечу, но каким боком я туда лечу - знаю). Заново - значит без накопления погрешности.

Только не раз в 10 сек, (как тут пИсали) а пять раз в секунду (т.е. с каждым приходом пачки координат с ЖПС модуля) .

Я просто хотел сказать, что интервал времени, удовлетворяющий двум следующим условиям, вполне существует:

  1. достаточно большой, чтобы фильтровать погрешность GPS.
  2. достаточно маленький, чтобы ошибка дрейфа была приемлема.
msv

Равномерный прямолинейный полет… Ветерок (пусть тоже равномерный) соизмеримый или больше скорости модели. Как по по GPS узнать каким боком я лечу? И тем более с каким креном? Может все-таки формулки?

blade
msv:

Как по по GPS узнать каким боком я лечу

По ЖПС- никак 😦
Именно за этим ставятся три гиры, три акселя и три компаса (ИМУ), которые в сумме (через фильтр Калмана) дают эту информацию.
А ЖПС- дополнительно показывает (если сравнивать с показаниями ИМУ)-есть ли в данный момент скольжение (т.е. изменение курса+высоты) И если скольжения нет, а ИМУ- показывает равномерно-прямолинейный полёт, значит ничего корректировать не надо, всё в норме 😃 А если показания расходятся- тут то и вступает в силу секретный алгоритм коррекции горизонта.
Формулок у меня нет- я математику с детства ненавижу.
А всё это- знаю от Н.В.Чистякова, начальника “Новик XXI”
Который автопилот сделал аж лет 10 назад.
Те же принципы использует и автопилот “Текнол”.
И- хоть обдрищ…э…что хочешь делай- нормальной гироплатформы без всего этого- не получится 😢
Пример- мучения народа с ФИ20-21.
Коррекции - нет, через 10 минут- летим на боку.

msv

имхо фильтр Калмана выдает оценочный результат и требует вероятностную модель объекта, а значит всегда могут появиться условия, при которой он не сработает… Мне показалось народ пытается найти именно аналитическое решение, выдающее однозначный результат…

Frr
msv:

Может все-таки формулки?

У Вас уже есть “железка”? (какие датчики и проц?)

kaveg
msv:

Мне показалось народ пытается найти именно аналитическое решение, выдающее однозначный результат…

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

kaveg

хех сижу вот привинчиваю жпс а оно чтото ну совсем никаких байтиков не шлёт))) часа три искалд баг в коде пока не выяснил что тупа smd разъемчик не пропаялся)))
И ведь зараза мелкосхемки с куда более мелким шагом безногии нормально прилепил, а эту фигнотень с кучей ног и не пропаял)))

1 month later
11 days later
kaveg

успехи - железка почти готова к первым испытаниям. заказал большой самолёт который ее поднимет. А пока на свою видавшую кучу аварий цесну поставил вот это и полетал в очках разок))) tamila.linux-rusnet.org/simple_osd
тяжко но летит))))

kaveg

эххх, когдаже большой самолёт привезут…
А пока вот - замонстрячил хедтрекер из того что дома нашёл)))
tamila.linux-rusnet.org/home/cam_tracker
Дороговатые детальки конечно использовал и крупный получился, но что же поделать если ничё другого дома не нашлось более подходящего)))

kaveg

возник вопрос с радиочастотной совместимостью. Опыты с мини-осд показали что FPV оборудование неплохо может тролить GPS - вопрос соответсвенно на каких частотах тролинг? из того что удалось выяснить - жпс находясь рядом с микросхемкой OSD даже в режиме внутренней синхронизации(передатчик и камера отключены, на видеовыход подается серая картинка с телеметрией) гасит жпс(практически не работает, спутников не ловит или ловит по полчаса). проблему решил выносом жпс на длинных проводках сантиметров на 30 от osd микросхемки и 3мя витками вокруг феррита непосредственно перед GPS модулем+ завернул OSD в алюминиевую фольгу. в результате получил - высота 200м удаление около 250±50 управление 2.4 работает, видео на развороте погасло, погасло резко как понос без снега - 900МГц 100мВ штатная китайская антенна(подозреваю скотч люминиевый закрыл антенну или на вираже антенна была неудачно ориентированна). управление 2.4 гасло один раз - заметил по остановившемуцся на экране пропеллеру секунды ена 2 при полете немного за спиной метрах на 70ти - скорее всего люминий закрыл антенку приемника.

Суть вопроса - на какой частоте OSD гасит GPS. кварц на OSD 27 МГц, сам по себе осд ложит свой 20мбит spi интерфейс если его подключить к контролеру проводками длиннее 10см. включенный передатчик с видео гпс вроде не давит или давит но не так сильно как OSD. Имел ли кто-то подобные проблемы и как решал?

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

blade
kaveg:

антенна активная подключается коаксиалом.

Скорее всего проблема в неправильной разводке питания, особенно- “земли”
Общий принцип: все “земли” и “плюсы” должны вестись к каждому потребителю отдельным проводом и объединяться- только в районе источника питания.
Следует избегать близкой и параллельной прокладки силовых и информационных проводов.
Фольга- не может “заслонить” антенну, если только она не обмотана вокруг неё (и заземлена при этом).
Про это- даже есть специальная теорема Остроградского-Гаусса.
Касательно активной антенны GPS (ИМХО)- она на летательном аппарате только вредит, поскольку летаем мы под открытым небом, и спутники- заведомо видны, а дополнительный усилитель- только лучше ловит помехи, которые рядом.