Делаю OSD, автопилот и инерциалку...
В итоге сервы начинала глючить и отрабатывать операцию с задержкой.
А что, серва должна глючить, если к примеру канал управляется не джойстиком (плавно меняющим длительность) а тумблером? И импульс при этом- меняется как раз “вдруг”- время переключения контакта- меньше миллисекунды 😃
А РРМ , кроме того- и сам по себе 50 раз в секунду “меняется” 😦 ?
Что то ни у кого- не глючит?
думаю, автор имел виду что за секунду ппм мог поменяться в диапазоне раз 50, а если так то за счёт определюнной скорости самой сервы она и отрабатывала среденее “арифметическое” пощёлкайте тумблером раз 10 быстро - серва вообще может не двинуться:)
В итоге мне пришлось поставить что-то типа ФНЧ на обновление значений серв, чтобы сервы не сходили с ума.
Проблема точно не в этом. Обычные сервы не задумаются при сколь угодно резком изменении длительности управляющего импульса в пределах допустимых длительностей.
Какой то баг в коде - генерирует не те длительности импульсов.
Какой то баг в коде
По моему, дело не в коде 😦
Не удивлюсь, если автор нам поведает, что он не читал, как устроена РРМ кодировка 😂
А зачем ему PPM? А то, что не знает о PWM для сервы, признался в первом сообщении, ну так разобрался вроде… Но глючить серва при резких изменений управляющего сигнала конечно не должна…
Всем привет!
Данная версия еще не доделана, но есть вопросы по следующей. 😃
Короче, насколько будет востребована связь с моделью по средствам сотовой связи.
Поясню.
Все что нужно будет делать, это вставить симку в автопилот и вставить симку в наземную станцию (нодбук + коробочка, пульт или джойстик и еще что-то, или коробочка и пульт). Тариф желательно должен быть с GPRS, но можно и без него. 😃
В полете можно будет как управлять, так и менять параметры полета, т.е. waypoints и т.д.
Если самолет упадет, то на выбранный телефон (или на наземку), с помощью СМС будет слать свои координаты.
По деньгам, это будет стоить дешевле чем xBee и всякие там чайналинки, т.е. дешевле чем 50 баксов один девайс (их надо 2) но зато это будет даже дешевле чем брелок треккер (а может удасться и за 30 баксов сделать). 😃
Приимущество очивидно: область покрытия определяется областью оператора.
Недостатков два:
- Надо платить оператору
- Можно будет летать только с автопилотом, так как в GSM при переходе от станции к станции, или потере связи самолет не должен впадать в прострацию.
Идеи, предложения и пожелания с удовольствием выслушаю. 😃
PS. Текущее состояние такое. На этих выходных были запланированны полеты с целью сбора необработанной информации с сенсоров, но из-за того что я забыл флешку на работе и из-за дождя, полетов небыло. 😃
Сейчас сенсоры работают стабильно, плата грузится из файла с флешки, данные сенсоров записываются на флешку. Обработки я пока не вставлял, так как надо еше помоделировать.
Всем привет!
Данная версия еще не доделана, но есть вопросы по следующей. 😃
Короче, насколько будет востребована связь с моделью по средствам сотовой связи.
Я думаю будет очень постребовано. Тем более если подключение будет опциональным. т.е. без модуля сотовой связи все остальное работатает по прежнему.
И я бы взглянул не на GSM-GPRS - а на 3G (USB модем).
выше скорость - т.е. можно даже какое-нибудь видео с телеметрией передавать, и если с задержкой - слать картинки в высоком разрешении(было б очень удобно).
из минусов - наверно сложнее будет прицепить к вашей плате.
PS: Это желание, возможно не до конца хорошо продуманое в плане реализации.
Я думаю будет очень постребовано. Тем более если подключение будет опциональным. т.е. без модуля сотовой связи все остальное работатает по прежнему.
Спасибо.
Восприму это как требование: опциональное наличие канала управления через GSM.
И я бы взглянул не на GSM-GPRS - а на 3G (USB модем).
3G это точно не в этой версии. Это просто другой уровень сложности разработки. Скайп вон до сих пор с видео мучается. А скайп это не один разработчик, даже не средняя фирма. 😃
Канал передачи видео это отдельная тема.
Но, возможность летать по приборам и иметь отображение самолета на 3D карте - будет. 😃
Всем привет!
Давно меня небыло.
Вот тут математикой занимаюсь, решил спросить. 😃
Сейчас пытаюсь определить положение самолета по датчикам. Все датчики 3D. Есть аксель (вектор А), компас (вектор С) и гироскоп (скорости поворота G).
Q - положение самолета в пространстве.
Компас это вектор. Гироскоп - это матрица поворота.
Сейчас надо определить положение самолета по значениям гироскопа и компаса. Основная задача, это скорректировать ошибку показаний гироскопа с помощью компаса.
Пока все выглядет вот как: есть значение положения самолета полученные после интегрирования гироскопа. Из-за наличия постоянной составляющей в сигнале гироскопа, значение после интегрирования постоянно “плывет”, причем с разной скоростью.
Задача сейчас стоит в том, чтобы скорректировать этот уплыв.
Вот так сейчас выглядет процесс моделирования:
Итак, с гироскопа е меня есть данные положения самолета (вектора xyz). Эти данные надо как-то спроецировать на вектор компаса и скорректировать уплыв. Здесь не надо окорректоровать константу. Надо скорректировать только динамическую ошибку.
Итак, как это сделать? 😃
Итак, как это сделать?
Я бы сначала начал корректировать положение по акселям в моменты, когда перегрузки ~ G. А потом уже проецировать вектор магнитного поля на полученную повернутую плоскость.
Посмотрите DCM.cpp в АрдуКоптере.
Из-за наличия постоянной составляющей в сигнале гироскопа, значение после интегрирования постоянно “плывет”
Я думал, что это накапливается ошибка во время интегрирования… Постоянную составляющую нужно вычитать.
Я бы сначала начал корректировать положение по акселям в моменты, когда перегрузки ~ G. А потом уже проецировать вектор магнитного поля на полученную повернутую плоскость.
Думал я про аксель. Не годится он. Использовать аксель можно только как второй контур коррекции.
Вектор, который выдает аксель: А = g + а; g - векторо силы тяжести, a - комбинированный вектор дополнительной силы ( маневр, ветер, двигатель и т.д.), |g| - 9.8.
Из этих данный положение самолета определить невозможно. Простой пример:
Вектор A в покое будет равно А когда самолет делает петлю с перегрузкой 2g.
Короче, аксель использовать можно, но только как вспомогательный инструмент.
Я думал, что это накапливается ошибка во время интегрирования… Постоянную составляющую нужно вычитать.
Проблема в том, что эта постоянная составляющая не такая уж и постоянная. 😃 Она плывает сама по себе. В определенном диапазоне конечно, но все равно плывет. Понятное дело что я вычитаю ее до интегрирования, но этого недостаточно.
Вообще, задача с коррекцией гироскопа мне очень напоминает задачу АПЧ на основе коррекции честоты (есть еще на основе коррекции фазы).
Думал я про аксель. Не годится он. Использовать аксель можно только как второй контур коррекции.
Вектор, который выдает аксель: А = g + а; g - векторо силы тяжести, a - комбинированный вектор дополнительной силы ( маневр, ветер, двигатель и т.д.), |g| - 9.8.
В АрдуКоптере корректировка по акселю происходит, когда а = достаточно мал (по мнению эксперта). Не всегда же летим быстро и по дуге. При полете блинчиком коррекция срабатывает постоянно.
В АрдуКоптере корректировка по акселю происходит, когда а = достаточно мал (по мнению эксперта). Не всегда же летим быстро и по дуге. При полете блинчиком коррекция срабатывает постоянно.
Все верно. Это и есть второй контур коррекции. Аксель будет использоваться потом, для коррекции как компаса так и гироскопа.
Т.е. аксель будет использоваться для маневров как аксель, и для корреции в прямолинейном полете.
Тут только что придумал как делать коррекцию гироскопа по компасу.
- Измеряем компас.
- Измеряем положение по гироскопу D’
- Проецируем положение на вектор
- Корректируем проекции
- На основе корреций, корректируем вектор.
В худшем случае мы не сможем корректировать один из векторов положения, когда вектор изменение положения будет в плоскости перпендикулярной вектору компаса.
- Измеряем компас.
- Измеряем положение по гироскопу D’
- Проецируем положение на вектор
- Корректируем проекции
- На основе корреций, корректируем вектор.
вы хотите корректировать гиры при помощи магнетометра? У mag точность +_ 2…4 градуса. Как первичная корректировка - может, и подойдет.
Обычно гиры корректируют по акселям. А YAW гиры (у акселя нет такого) по компасу.
У нас вектор магнитного поля под 70 градусов в землю, проекция на горизонт очень мала…
Итак, как это сделать?
Не просто, а очень просто: почитать #121.
Ещё, Вы как то совсем игнорируете в своих выводах силу Кориолиса 😦
А она - один из важнейших источников ошибки в ИМУ.
Причём, её вектор и величина- сильно меняются в зависимости от широты места и курса самолёта.
То есть, скомпенсировать её простым введением коэффициента - нельзя.
У mag точность +_ 2…4 градуса. Как первичная корректировка - может, и подойдет.
И Ето- прАвильно.
А в сумме с коррекцией по ЖПС- и получится то, что надо.
вы хотите корректировать гиры при помощи магнетометра? У mag точность +_ 2…4 градуса. Как первичная корректировка - может, и подойдет.
Это постоянная ошибка. Она не плывет во времени. Поэтому подойдет для коррекции скорости вращения. Да и точность 2 градуса это совсем не плохо. Остальное нужно будет ГПС корректировать.
У нас вектор магнитного поля под 70 градусов в землю, проекция на горизонт очень мала…
Главное что у нас есть вектор, и этот вектор не меняется во времени. По нему и будет проводиться коррекция.
Не просто, а очень просто: почитать #121.
ГПС оставим пока. Надо выжать максимум из того что есть.
То есть, скомпенсировать её простым введением коэффициента - нельзя.
Это понятно, что одним коэффициентом не обойтись. Поэтому и делается динамическая автоподстройка.
Ещё, Вы как то совсем игнорируете в своих выводах силу Кориолиса
А она - один из важнейших источников ошибки в ИМУ.
Она на акселерометры влияет. А по ним коррекцию проводить, если A ~ g. Хотя если коптер летит вниз и по дуге, то итоговая векторная сумма может дать длину вектора ~ g…А у нас нифига не прямолинейное движение.
Вообще, для коптера и так сойдет! Блинчиком полетали, пару кульбитов - и хватит!
по моему в начале темы был тезис что типа - большой комп и нет проблем? Чтобы не было проблем нужна крутая математика и прочие финтифлюшки …
по моему в начале темы был тезис что типа - большой комп и нет проблем? Чтобы не было проблем нужна крутая математика и прочие финтифлюшки …
А это Вы к чему?
Поэтому и делается динамическая автоподстройка.
Так а что мешает сделать сразу- по уму?
Просто из разговоров с отцами русского ДПЛА строения Чистяковым (“Новик XXI”) и Дроновым (“Текнол”)- я уяснил, что магнетометр и ЖПС- вполне достаточные условия для долгого и счастливого летания ИМУ по горизонтали, а не на боку или ещё каким извращённым образом 😃
Тем более, что из ЖПС данных надо знать всего два параметра: курс и высоту.
И сравнивать их изменение (ли отсутствие такового ) с тем, что идёт со связки гиры- аксели.
Так а что мешает сделать сразу- по уму?
Ничего не мешает. Просто до этого еще не дошло. 😃
По моим представлениям это будет выглядеть так:
Первый контур: гиро + компас
Второй контур: скорость + аксель + высота
Третий контур: ГПС курс + высота + скорость
Четвертый контур: координаты и т.д.
Аксель еще будет использоваться для определения начального положения.
Я не вижу смысла переходить к ГПС пока я не смог выжать все параметры из инерциалки.
В идеале все должно управляться инерциалкой без ГПС, или хотя бы ГПС но с частотой обновления раз в минуту. 😃
Это не просто прихоть. Для нормального руления самолетом нужна именно инерциалка, так как ГПС идет с большой задержкой и использоваться для руления не может.
Короче, как только будет определено положения самолета в пространстве на основе компаса и гироскопа, так сразу можно будет переходить к следующему контуру. 😃