Делаю OSD, автопилот и инерциалку...

Diman_Y
SGordon:

не жизненные какие то изменения

Почему?
Вот была связь, потом пропала, а потом снова появилась… 😃
Для цифровой связи, которая сейчас, вполне жизненные. 😃

SGordon

не жизненные - в том смысле что самолет так не полетит … А про пропадание связи - да пожалуйста, обычное дело серва должна отрабатывать конечно …

blade
Diman_Y:

В итоге сервы начинала глючить и отрабатывать операцию с задержкой.

А что, серва должна глючить, если к примеру канал управляется не джойстиком (плавно меняющим длительность) а тумблером? И импульс при этом- меняется как раз “вдруг”- время переключения контакта- меньше миллисекунды 😃
А РРМ , кроме того- и сам по себе 50 раз в секунду “меняется” 😦 ?
Что то ни у кого- не глючит?

Иван

думаю, автор имел виду что за секунду ппм мог поменяться в диапазоне раз 50, а если так то за счёт определюнной скорости самой сервы она и отрабатывала среденее “арифметическое” пощёлкайте тумблером раз 10 быстро - серва вообще может не двинуться:)

Панкратов_Сергей
Diman_Y:

В итоге мне пришлось поставить что-то типа ФНЧ на обновление значений серв, чтобы сервы не сходили с ума.

Проблема точно не в этом. Обычные сервы не задумаются при сколь угодно резком изменении длительности управляющего импульса в пределах допустимых длительностей.
Какой то баг в коде - генерирует не те длительности импульсов.

blade
Панкратов_Сергей:

Какой то баг в коде

По моему, дело не в коде 😦
Не удивлюсь, если автор нам поведает, что он не читал, как устроена РРМ кодировка 😂

msv

А зачем ему PPM? А то, что не знает о PWM для сервы, признался в первом сообщении, ну так разобрался вроде… Но глючить серва при резких изменений управляющего сигнала конечно не должна…

10 days later
Diman_Y

Всем привет!

Данная версия еще не доделана, но есть вопросы по следующей. 😃

Короче, насколько будет востребована связь с моделью по средствам сотовой связи.

Поясню.

Все что нужно будет делать, это вставить симку в автопилот и вставить симку в наземную станцию (нодбук + коробочка, пульт или джойстик и еще что-то, или коробочка и пульт). Тариф желательно должен быть с GPRS, но можно и без него. 😃
В полете можно будет как управлять, так и менять параметры полета, т.е. waypoints и т.д.
Если самолет упадет, то на выбранный телефон (или на наземку), с помощью СМС будет слать свои координаты.

По деньгам, это будет стоить дешевле чем xBee и всякие там чайналинки, т.е. дешевле чем 50 баксов один девайс (их надо 2) но зато это будет даже дешевле чем брелок треккер (а может удасться и за 30 баксов сделать). 😃
Приимущество очивидно: область покрытия определяется областью оператора.

Недостатков два:

  1. Надо платить оператору
  2. Можно будет летать только с автопилотом, так как в GSM при переходе от станции к станции, или потере связи самолет не должен впадать в прострацию.

Идеи, предложения и пожелания с удовольствием выслушаю. 😃

PS. Текущее состояние такое. На этих выходных были запланированны полеты с целью сбора необработанной информации с сенсоров, но из-за того что я забыл флешку на работе и из-за дождя, полетов небыло. 😃
Сейчас сенсоры работают стабильно, плата грузится из файла с флешки, данные сенсоров записываются на флешку. Обработки я пока не вставлял, так как надо еше помоделировать.

Aleksey710
Diman_Y:

Всем привет!

Данная версия еще не доделана, но есть вопросы по следующей. 😃

Короче, насколько будет востребована связь с моделью по средствам сотовой связи.

Я думаю будет очень постребовано. Тем более если подключение будет опциональным. т.е. без модуля сотовой связи все остальное работатает по прежнему.

И я бы взглянул не на GSM-GPRS - а на 3G (USB модем).
выше скорость - т.е. можно даже какое-нибудь видео с телеметрией передавать, и если с задержкой - слать картинки в высоком разрешении(было б очень удобно).
из минусов - наверно сложнее будет прицепить к вашей плате.

PS: Это желание, возможно не до конца хорошо продуманое в плане реализации.

Diman_Y
Aleksey710:

Я думаю будет очень постребовано. Тем более если подключение будет опциональным. т.е. без модуля сотовой связи все остальное работатает по прежнему.

Спасибо.
Восприму это как требование: опциональное наличие канала управления через GSM.

Aleksey710:

И я бы взглянул не на GSM-GPRS - а на 3G (USB модем).

3G это точно не в этой версии. Это просто другой уровень сложности разработки. Скайп вон до сих пор с видео мучается. А скайп это не один разработчик, даже не средняя фирма. 😃
Канал передачи видео это отдельная тема.
Но, возможность летать по приборам и иметь отображение самолета на 3D карте - будет. 😃

2 months later
Diman_Y

Всем привет!

Давно меня небыло.
Вот тут математикой занимаюсь, решил спросить. 😃

Сейчас пытаюсь определить положение самолета по датчикам. Все датчики 3D. Есть аксель (вектор А), компас (вектор С) и гироскоп (скорости поворота G).
Q - положение самолета в пространстве.
Компас это вектор. Гироскоп - это матрица поворота.

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

Пока все выглядет вот как: есть значение положения самолета полученные после интегрирования гироскопа. Из-за наличия постоянной составляющей в сигнале гироскопа, значение после интегрирования постоянно “плывет”, причем с разной скоростью.
Задача сейчас стоит в том, чтобы скорректировать этот уплыв.

Вот так сейчас выглядет процесс моделирования:

Итак, с гироскопа е меня есть данные положения самолета (вектора xyz). Эти данные надо как-то спроецировать на вектор компаса и скорректировать уплыв. Здесь не надо окорректоровать константу. Надо скорректировать только динамическую ошибку.
Итак, как это сделать? 😃

Musgravehill
Diman_Y:

Итак, как это сделать?

Я бы сначала начал корректировать положение по акселям в моменты, когда перегрузки ~ G. А потом уже проецировать вектор магнитного поля на полученную повернутую плоскость.
Посмотрите DCM.cpp в АрдуКоптере.

Diman_Y:

Из-за наличия постоянной составляющей в сигнале гироскопа, значение после интегрирования постоянно “плывет”

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

Diman_Y
Musgravehill:

Я бы сначала начал корректировать положение по акселям в моменты, когда перегрузки ~ G. А потом уже проецировать вектор магнитного поля на полученную повернутую плоскость.

Думал я про аксель. Не годится он. Использовать аксель можно только как второй контур коррекции.
Вектор, который выдает аксель: А = g + а; g - векторо силы тяжести, a - комбинированный вектор дополнительной силы ( маневр, ветер, двигатель и т.д.), |g| - 9.8.
Из этих данный положение самолета определить невозможно. Простой пример:
Вектор A в покое будет равно А когда самолет делает петлю с перегрузкой 2g.
Короче, аксель использовать можно, но только как вспомогательный инструмент.

Musgravehill:

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

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

Вообще, задача с коррекцией гироскопа мне очень напоминает задачу АПЧ на основе коррекции честоты (есть еще на основе коррекции фазы).

Musgravehill
Diman_Y:

Думал я про аксель. Не годится он. Использовать аксель можно только как второй контур коррекции.
Вектор, который выдает аксель: А = g + а; g - векторо силы тяжести, a - комбинированный вектор дополнительной силы ( маневр, ветер, двигатель и т.д.), |g| - 9.8.

В АрдуКоптере корректировка по акселю происходит, когда а = достаточно мал (по мнению эксперта). Не всегда же летим быстро и по дуге. При полете блинчиком коррекция срабатывает постоянно.

Diman_Y
Musgravehill:

В АрдуКоптере корректировка по акселю происходит, когда а = достаточно мал (по мнению эксперта). Не всегда же летим быстро и по дуге. При полете блинчиком коррекция срабатывает постоянно.

Все верно. Это и есть второй контур коррекции. Аксель будет использоваться потом, для коррекции как компаса так и гироскопа.
Т.е. аксель будет использоваться для маневров как аксель, и для корреции в прямолинейном полете.

Тут только что придумал как делать коррекцию гироскопа по компасу.

  1. Измеряем компас.
  2. Измеряем положение по гироскопу D’
  3. Проецируем положение на вектор
  4. Корректируем проекции
  5. На основе корреций, корректируем вектор.

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

Musgravehill
Diman_Y:
  1. Измеряем компас.
  2. Измеряем положение по гироскопу D’
  3. Проецируем положение на вектор
  4. Корректируем проекции
  5. На основе корреций, корректируем вектор.

вы хотите корректировать гиры при помощи магнетометра? У mag точность +_ 2…4 градуса. Как первичная корректировка - может, и подойдет.
Обычно гиры корректируют по акселям. А YAW гиры (у акселя нет такого) по компасу.
У нас вектор магнитного поля под 70 градусов в землю, проекция на горизонт очень мала…

blade
Diman_Y:

Итак, как это сделать?

Не просто, а очень просто: почитать #121.
Ещё, Вы как то совсем игнорируете в своих выводах силу Кориолиса 😦
А она - один из важнейших источников ошибки в ИМУ.
Причём, её вектор и величина- сильно меняются в зависимости от широты места и курса самолёта.
То есть, скомпенсировать её простым введением коэффициента - нельзя.

Musgravehill:

У mag точность +_ 2…4 градуса. Как первичная корректировка - может, и подойдет.

И Ето- прАвильно.
А в сумме с коррекцией по ЖПС- и получится то, что надо.

Diman_Y
Musgravehill:

вы хотите корректировать гиры при помощи магнетометра? У mag точность +_ 2…4 градуса. Как первичная корректировка - может, и подойдет.

Это постоянная ошибка. Она не плывет во времени. Поэтому подойдет для коррекции скорости вращения. Да и точность 2 градуса это совсем не плохо. Остальное нужно будет ГПС корректировать.

Musgravehill:

У нас вектор магнитного поля под 70 градусов в землю, проекция на горизонт очень мала…

Главное что у нас есть вектор, и этот вектор не меняется во времени. По нему и будет проводиться коррекция.

blade:

Не просто, а очень просто: почитать #121.

ГПС оставим пока. Надо выжать максимум из того что есть.

blade:

То есть, скомпенсировать её простым введением коэффициента - нельзя.

Это понятно, что одним коэффициентом не обойтись. Поэтому и делается динамическая автоподстройка.

Musgravehill
blade:

Ещё, Вы как то совсем игнорируете в своих выводах силу Кориолиса
А она - один из важнейших источников ошибки в ИМУ.

Она на акселерометры влияет. А по ним коррекцию проводить, если A ~ g. Хотя если коптер летит вниз и по дуге, то итоговая векторная сумма может дать длину вектора ~ g…А у нас нифига не прямолинейное движение.

Вообще, для коптера и так сойдет! Блинчиком полетали, пару кульбитов - и хватит!

SGordon

по моему в начале темы был тезис что типа - большой комп и нет проблем? Чтобы не было проблем нужна крутая математика и прочие финтифлюшки …