Activity
тоесть в результате получается поворот воронкой? Спасибо, то что и хотел узнать. Значит roll-pitch-yaw
У вас углы Эйлера используются? Кватернионам пофиг, они коммутативны.
Самолетные углы.
Я пишу адаптивный регулятор, его буду настраивать на модели, которую сейчас и тестирую на адекватность.
коптером в акро моде управлять умею
Спасибо, но я же не вижу положение ручек в этот момент.
если начальное положение в пространстве - тангаж 30 градусов и начинаем крутить рысканье, вокруг какой оси начнет вращаться аппарат? вокруг ортогональной земле или коптеру?
Именно в стаб моде!
Вот такое вращение будет?
А если без линейных перемещений вообще? Меня только вращения интересуют.
в градусах
Поясню, я умею управлять коптером и понимаю как он рулится в акро моде. Вопрос в том какое положение примет коптер с стаб моде при например заданных с пульта pitch=30 yaw=180
В симуляторе только акро мод
Пардон) Поясню - с пульта мы задаем углы - крен, тангаж и рысканье соответственно . Если на пульте задать тангаж 30 градусов,рысканье 180 , то в зависимости от последовательноси поворотов - получим разное положение. Возьмите в руки любой предмет и поверните его сначала на 180 градусов по рысканью, потом тангаж 30. Запомнили положение? Теперь сначала тангаж, а уже потом рысканье)
Я проверяю модель на корректность - очень нужна ваша подсказка)
Подскажите пожалуйста,какой порядок поворотов? roll-pitch-yaw или yaw-pitch-roll.
Мне проще свое написать, чем портировать чужое, да и разобраться подробно хочется
А я вот свою систему допилил. Пока в акро моде. Сейчас делаю инерциалку по этой статье gentlenav.googlecode.com/files/DCMDraft2.pdf пишу модель и адаптивный алгоритм.
Пилот из меня никакой(
У нас он вел себя скромно.
Ну да, так я и поверил)
Уважаемые господа, а вам не кажется , что вы строите слишком большую и сложную систему?Отдельно ЧР, отдельно КР, отдельно отбор сборной , рейтинги…пилотов то всего ничего. А на ЧМ потом едут два пилота. И я хорошо понимаю Андрея, который посещает балтик опен - там все просто, понятно и без выснений отношений.
Андрей ДОМИНИРУЕТ!
Мне кажется разумным следующий аглоритм.
1.Проверяем что сумма ускорений по всем осям=g.
2.Если так, то обнуляем ошибку интегрирования от гироскопов.
Вопрос лишь в вероятности ситуации, когда сумма ускорений будет g , но коптер будет ускоряться…надо посчитать…
а теперь представьте, что коптер резко начинает изменять высоту.Что будет с углом от акселя?
так а как у Вас реализована защита от наличия линейных ускорений?Они же будут “портить” угол.
А как реализуется определение углов от акселя при наличии линейных ускорений? Просто при сумме по всем осям = g ?
То есть Вы уже интегрируете и у изменения угла такая большая задержка?А чем меряли? У нас с Вами очень близкие проекты, меня всегда можно найти в
Skype : ivereninov
Показания и будут плыть.Это абсолютно нормально, супер результат - 1 градус в минуту.Почти не достижимо. Чуть улучшает ситуацию оверсэмплинг, то есть многократное повторное чтение ADC и последующее усреднение значений, можно увеличить таким образом разрешение. Но для нормальной стабилизации по углу нужно делать фьюжн нескольких сенсоров.
И не стоит делать так dtime/1000 , dtime/1000.0 позволит избежать трудновылавливаемых багов.
Попробуйте делить на 10.0 и использовать int. Курс без магнитометра никак(
А setup и loop можно глянуть? кстати, если в for одна строчка, {} можно не ставить. Мой коптер уже поднялся в воздух, пока стабилизация только по угловой скорости и настроена не очень.Калибровку можно дефайнить если не боитесь температурных дрифтов байеса, а они будут.
Ну так просто программно сделайте более плавное изменение длинны импульса.
Подключил сегодня гироскоп mlx90609 через ADC пины ардуины, уж очень не хочется с SPI возиться… Правда за удобство приходится платить заменой 11-ти битного АЦП на 10-ти( Написал удаление байеса, но при интегрировании уж очень быстро набегает ошибка - примерно градус в минуту.Видимо надо повышать разрешение и переходить не интегрирование Рунге-Кутом. Я все никак c SPI разобраться не могу, может поделитесь кодом и комментариями?
Ну так коэффициенты настраивать надо. Либо Циглер-Никольс, либо на глазок
если Вы на каждой итерации считаете Dt, а потом на него умножаете угловую скорость, то это и есть интегрирование.
под ардуино
void loop
{
time=micros();
Dt=time-oldtime;
angle+=omega*Dt;
oldtime=time;
}
Вот и все…
умножить
Вам нужен ПИДр
Тоесть можно взять показания с гироскопа и сказать что это угол, а не угловая скорость и работать с этим углом, в куке ведь работает только какойнибудь коэффициент придумать?
Можно - но это будет стабилизация по угловой скорости ,режим Акро. Для стабилизации по углу необходимо численно интегрировать угловую скорость.
Ура)
А переменная в которую пишется результат точно signed?
Просто в Вашем сообщение противоречие.
беззнаковое число максимум 255 при этом он его выдаёт в дополнительном коде тобиш от 0 до +177 и от -1 до -178 я же вижу числа от 0 до +255 сейчас решаю проблему как это считать…
То есть акселерометр должен отдавать знаковое, а Вы получаете беззнаковое?
С гироскопов снимаем угловую скорость, пересчитываем по формуле omega=U*gain+bias , интегрируем для получения угла. Трехосевой акселерометр позволяет определять положение с точностью до поворота вокруг вектора .Кладем на горизонтальную поверхность , по оси Z Датчик должен мерить g, по остальным нули.По степени вхождения g в оси x y можно определить крен и тангаж при отсутствии линейных ускорений.
Можно просто вырезать накладки и приклеить на смолу. Быстрее,проще и дешевле.
а есть технология,которая позволит отсканировать воздушный винт?
С такими птицами надо кросс-кантри развивать.
Мне тоже не очень нравится гнать кучу байт видео. Но в поле канал всё-равно пустой, а это решение уже готово и не требует более никакой разработки (т.е. самого дорого ресурса). Начнешь делать и начнуться проблемы, как синхронизировать со звуком, как разослать одинаковые файлы и.т.д. Как подмотать, если чего напутали. Тут - всё уже придумали до нас.
Дело в том,что с таким потоком на большой дальности непонятно что будет происходить.С учетом работы передатчиков на 2.4… Изучу вопрос на каникулах,может удастся софтину написать.
Очень нерациональной кажется передача такого огромного объема информации,когда на самом деле требуется 10байт\сек. Почему не передавать информацию о времени и режиме работы,а само видео и звук генерировать на месте?
Если фюз умещается в две резки(без центральной секции)я бы резал как на рисунке. Отрезали красным,сдвинули заготовку вперед,прошли по коричневому. Кстати,бесконечную подачу организовать не очень сложно,нужен лишь механизм зажима листа между двумя роликами,управлять как обычной осью Х.По части софта,могу порекомендовать изучить рекзу фюза в GMFC,сам еще там только крылья резал,но возможностей там гораздо больше чем в фоамворксе. При случае проверю.