Проект Мегапират на самик!
Хм… а то что сейчас у тебя реализовано не достаточно, уплывает на каких то режимах? Или чисто из спортивного интереса 😃?
Да, марг не нравится, что очень критичен к калибровке компаса. Чуть где железка - горизонт уплыл, на тангаже в осд это особо хорошо видно.
ДСМ на центробежке еще хуже, но у него хотя бы компас тангаж не сбивает.
Новый режим ТСС - то же, что ДСМ, но на кватернионах.
Вот донастрою калмана и сравню.
Нуач0, проц мощный, пить - так пить, е*ать - так королев… ОСД есть, звук есть, пусть теперь будет калман за компанию.
Гы, что верно то верно, эт из цикла: “… зачем? Потому что могу!” 😃
Я отрубил в твоем МАРГе компас, работает на много адекватней и держит лучше чем ДЦМ, правда в полете пока не тестил, не как не выберусь… 😃
Набор датчиков ограничивается только AllinOne и Vortex или можно пользовать более новый 6050 и высотомер MS561101BA?
Кто-нибудь пользует систему для мультироторных аппаратов?
Леонид. Чтобы совсем не лишаться компаса, вот тебе фрагмент кода для IMU.c - это недавно внедренный мной ТСС для МАРГ.
short TCC(float bx, float by, float bz, float phi, float theta)
{ float variation, Xh, Yh, angle;
Xh = bx * cosf(theta) + by * sinf(phi) * sinf(theta) + bz * cosf(phi) * sinf(theta);
Yh = by * cosf(phi) - bz * sinf(phi);
angle = 572.9578f*(atan2f(-Yh, Xh) /*+ declination*/);
return angle;
}
usage:
TCC(mx,-my,-mz,roll,pitch);
выход - курс *10 (число 15 = 1.5 град), приравнивай к нему yaw_sensor в марг.с в самом конце процедуры
mx my mz roll pitch это переменные из МАРГ.с
declination - склонение *10, по идее глобальная переменная где-то есть.
компас должен быть запрещен в дефайне: compass_enabled 0
ограничивается
На данный момент только вышеуказанные. МПУ-датчики не будут поддерживаться вообще. МС-ка у меня в планах есть, но отсутствует физически, поэтому отложена.
===
апдейт 2.0.1524
- Замена алгоритма ориентации с MARG на EKF. Алгоритм устойчив, сингулярности устранены, на движение с ускорением (по полу катал) почти не реагирует. Остается облетать. Прогноз положительный.
- устранены вопросы по высоте таргетов
- галка TCC больше смысла не несет в связи с устранением самого алгоритма
Уточнение по калибровке датчиков. Плату датчиков надо выставлять в LEVEL на ровной горизонтальной поверхности! Потом уже крепить на пепелац и, подкладывая что-то под края, добиваться желаемого угла атаки и т.п.
Создатели различных ардупилотов заигрывают с пользователем, пытаясь устанавливать LEVEL при произвольном положении платы. Это в корне неправильно. Не считая удобства настройки, это полностью испоганит алгоритм ориентации из-за паразитных составляющих по сдвинутым осям гироскопа.
На данный момент только вышеуказанные. МПУ-датчики не будут поддерживаться вообще
В принципе, сейчас набор датчиков взять не проблема, они практически копеечные. Но просто интересно узнать откуда такая нелюбовь к МПУ-хам?
И еще вопрос: есть ли смысл брать вортекс только ради датчиков?
Ради датчиков - нет, слишком дорого. разве что алинон, и то дорого.
Сейчас силами энтуазистов и потреотов делается “наша” родная плата икса, с бл-дж и шл. Жду вот…
про мпу я свое мнение писал на предыдущей странице.
Ура. У меня ЗАРАБОТАЛО.
Плата Дискавери + Шилда (компас, баро, гиро, аксель, мапять).
Есть проблема с ОСД. Кокое то эхо прёт. Хотя сделан полный КЛОн с кЕтайской.
Олег - куда подать бортовое напряжение - шоб видеть напряжение на ОСД ???
Ради датчиков - нет, слишком дорого. разве что алинон, и то дорого. Сейчас силами энтуазистов и потреотов делается “наша” родная плата икса, с бл-дж и шл. Жду вот…
Можно подробней? Или к кому обратиться?
Я так понял, датчики дешевле, чем у кетайцев не найдутся:
aliexpress.com/…/562055389-100-New-10DOF-ITG3200-I…
ха, алинон склонили! рассыпухой и то дороже… надо сравнить расположение датчиков.
Виктор, скриншот давай, что там у тебя фонит и глючит…
www.rcgroups.com/forums/showthread.php?t=1473207 По поводу ОСД думаю почти тоже самое (Если учесть, что в дневничке у Сибериана написано можно сгоревшее. Имеется ввиду схема получения кадра\строки), но судить конечно ему. Просто может кому поможет, что бы не заказывать спец Е-ОСД… Если подойдет схема, там же есть схема с LM1881 на ней имхо еще проще, стоит около 15руб…
Попозжа, немножко отдыхаю под автомобилем. У нас несколько жарковато 30-33 в тени. А климат в машиГе шалит. Трахаюсь с блЯдскими клипсами иППонскими. Какая гнида их придумала, снять не реально - тока ломать. а они стоят по 3 (ТРи) доллара за штучку. БЛЕАТЬ. уже баксов на 60 попал. Пол машины собрано на клипсах и защелках. ПИНДЕЦ.
А вообще нужно бвло продуть и промыть радиаторы. Но для этого, пришлось демонтировать кучу деталей. Уже пол мотора видно снаружи и вся морда лежит поДетально во дворе.
Поздравляю, видишь, ничего страшного!
Действительно - контрол ц, контрол в.
меня 25мкс
тыж хвалился 85 мкс.
25 мкс цикл настоящего фильтра калмана на ф4 быть не может. И у содранного вами роботиксного простейшего алгоритма тоже не может.
На днях ветку создам в теме фпв. Гарантирую - ты офигеешь.
ну-ка кыш троллить в свою НЕсозданную тему!
Уже месяц прошел, а он все “создает”…
Как проверить “настоящесть” фильтра калмана? Очень просто - в серьёзном фильтре, в состоянии покоя показания по всем углам колеблются в пределах 0.001 градуса на обычных гирах и акселях.
ну-ка кыш троллить в свою НЕсозданную тему!
Ждешь с нетерпением? Потерпи чуток. До моего отпуска. Офигеть должен вообщето не ты.
Syberian, AlexSneg, если не сложно, опишите в двух словах механизм вывода из массива пикселов на ногу проца.
Как зарядить дма и всяческие прерывания - это понятно. Как массив байт вы разворачиваете в биты 0-1 на ноге? В меге я делаю руками сдвиги и выводы в порт, а вы на арме как это делаете? Дма ж минимум по 1 байту дает на порт, меньше не может, или я что-то пропустил? Неужели на каждый пиксел по байту отдаете?
Почему не сделали выше разрешение на экране? Проц же формально позволяет, ногой можно дергать на 60МГц и выше, не то что мои 5.5 МГц (3 клока на бит на 16 МГц).
В исходники не отправляйте, пожалуйста 😃 Чужих исходников уже года 3 не смотрел, да и на словах понятнее будет.
хы хы канкурент лезет 😁
Опишу, как просил, в 2 словах: SPI Master (у меня), у Снега - Slave. Подходы в корне разные.
Разрешение такое, потому что прескалер фиксированный. А исходников никто и не покажет 😛
Сталобыть, SPI разворачивает. Спасибо, Олег.
Разрешение такое, потому что прескалер фиксированный.
В принципе мой метод позволяет, я SPI тактирую от таймера. Я ему могу любую частоту поставить. Но у меня самая главная проблема - подбор частот окна и битов и переходов строк. Я неделю убил только на подбор. При необходимости убью еще неделю, но это будет не сейчас. И у меня и у Олега разрешение в большей степени программно-ленное ограничение, а не аппаратное.
Syberian, AlexSneg, если не сложно, опишите в двух словах
Да, как Олег и сказал, у нас подходы кардинально разные. Но и так и так работает. У Олега софт каждую строку перезаряжает, а я только в начале кадра. Здесь вопрос филосовский больше.
тыж хвалился 85 мкс.
Это с пачкой вложенных прерываний, от USB, video, и прочей мутотени. Чистого времени там 25-30мкс.
роботиксного
Что за алгоритм, можно ссылку? Посмотрю на досуге.
Как проверить “настоящесть” фильтра калмана?
Мне не нужно настоящесть в твоем понимании. Мне нужна достаточность в зоне текущего практического применения. Для меня показаний покоя в пределах до 0.5 градуса, что сейчас имеется, вполне достаточно, думаю что и Олегу этого за глаза хватает.
Кто еще копает старый добрый арду на меге и хочет курс компасса юзать как дополнительную переменную для навигации 😃
Адаптированный код Олега для арду 😃
short TCC(float bx, float by, float bz, float phi, float theta)
{ float variation, Xh, Yh, angle;
Xh = bx * cos(theta) + by * sin(phi) * sin(theta) + bz * cos(phi) * sin(theta);
Yh = by * cos(phi) - bz * sin(phi);
angle = 572.9578f*(atan2(-Yh, Xh) / 10/*+ declination*/);
if (angle > 0) angle = 360 - angle;
angle = abs(angle);
return angle;
}
Использование:
TCC(compass.mag_x,-compass.mag_y,-compass.mag_z, dcm.roll , -dcm.pitch);
ха, алинон склонили! рассыпухой и то дороже…
Не совсем 😃 Адреса и расположение гиры и акселя как у FFIMU, ну и еще сюрпрайз по компасу x и y перепутаны местами 😃 В общем усе програмно решается, вот только задалбывает иногда менять библиотеки вливая паршивку то в вортекс то в аурдино 😃