Создание собственной системы стабилизации

Samer

Я тоже перешел из градусов в метры. У меня на ардуине крутится софт который считывает протокол GPS.
Она все обрабатывает и по I2C передает на другую . Для контроллера полета ,GPS такой же датчик как и аксель , в готовом виде принимает X,Y, высоту,скорость,курс,число спутников. И в протоколе идет только GGA. Чтоб передать дробную часть метров я умножаю расстояния на 10, (растояние тип long ) а контроллер делит на 10.

rual
ИльяПРо:

Запилил новые 2 режима для фана.

Отлично! Центр круга, относительно которого берется направление, фиксируется при включении режима?
Илья, я тебе пару вопросов в скайп написал.

14 days later
ИльяПРо

Всем привет, кто читает эту тему.
Кто-нибудь пробовал команды от микшера к ESC прогонять через подобную зависимость? только по оси Х не обороты а коэффициент заполнения ШИМа

Или она уже встроена в регулятор оборотов?

SitulaAqua
ИльяПРо:

Всем привет, кто читает эту тему.
Кто-нибудь пробовал команды от микшера к ESC прогонять через подобную зависимость? только по оси Х не обороты а коэффициент заполнения ШИМа

Или она уже встроена в регулятор оборотов?

Вряд ли в ESC такое есть, это было бы заметно.

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

ИльяПРо

Спасибо за ценное замечание. Может в этом есть смысл.
Есть идея получить такую зависимость для своей ВМГ при среднем полетном напряжении аккума. Загнать ее после выхода микшера, перед таймерами с ШИМом.
Возможно получится более линейная отзывчивость. Плюс не надо крутить ПИДы на новом кваде, а достаточно загнать зависимость для нового ВМГ. У кого какие мысли?

SitulaAqua
ИльяПРо:

Спасибо за ценное замечание. Может в этом есть смысл.
Есть идея получить такую зависимость для своей ВМГ при среднем полетном напряжении аккума. Загнать ее после выхода микшера, перед таймерами с ШИМом.
Возможно получится более линейная отзывчивость. Плюс не надо крутить ПИДы на новом кваде, а достаточно загнать зависимость для нового ВМГ. У кого какие мысли?

Посмотрел замеры тяги двигателя на стационарном стенде (бутылкостенд), зависимость тяги от положения стика. Характристика вполне себе линейная. Мотор EMAX 2205 2300KV с регулем ZTW spider 30A. Так что может и есть в регулях некоторая кривая линеризации. Так как теоретически эффективность пропеллера с увеличением оборотов должна падать, (вентиляторная нагрузочная характеристика пропеллера)
Но тут конечно может оказаться что пропеллер особенно в стационарном положении работает в начальном диапазоне, когда нагрузочная характеристика еще линейна, а вот в движении, на скорости, эта нелинейность может себя уже проявить. Если бы был график (положение стика/обороты) тогда бы можно было бы точнее разобраться.

А в дрон рейсинге эксопнента может быть и не только для линеризации характеристики двигателей, но и для удобства управления на разных углах наклона ну и для резкости управления.
Так что вопрос есть такая характеристика в регулях или нет, еще остается открытым 😃

Надо тупо найти открытую прошивку на регуль и посмотреть 😃

jShadow
SitulaAqua:

Надо тупо найти открытую прошивку на регуль и посмотреть

BLHeli - вполне себе открытая, для тех кто умеет читать ассемблер для 8051

oleg70
ИльяПРо:

да я тоже проделал тест

Вопрос не в тему - на каком винте dt-750 полтора килограмма тяги дает?(жесть)

ИльяПРо

Всем привет.
Записал интересное видео. Хотел проверить качество ориентации, полученной с UKF. А именно как она уплывает на виражах и ускорениях.
Суть такая - ориентация, записанная в логах синхронизируется с видео с камеры. Получаем своеобразную софтовую стабилизацию.
Горизонт не идеально ровный, ибо помимо качества самой ориентации UKF повлияла рассинхронизация видео и логов, искажение линзы, переменный центр вращения, вибрации. Поэтому на резких поворотах горизонт не ровный. Также как выяснилось частота записи логов плавает, из-за чего на видео такие скачки и дергания.
Но суть вроде понятна, что с помощью UKF можно получить абсолютную, привязанную к глобальным осям ориентацию, для использования коррекции подвесов.

jShadow
ИльяПРо:

Суть такая - ориентация, записанная в логах синхронизируется с видео с камеры. Получаем своеобразную софтовую стабилизацию.

Чем монтировалось видео? Очень интересный метод.

rual
ИльяПРо:

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

Да, отличный результат!

ИльяПРо

Провел тест на отключенном GPS, то есть как работает удержание высоты по барометру

Лог высоты

Еще тест оказания ускорений на ориентацию.

И еще очередной тест новой фичи со стабилизацией.

Есть код, могу скинуть, кому надо.

kasmirov

Да, очень интересно посмотреть алгоритм.
Можно скинуть на мой ник @yandex.ru

jShadow
ИльяПРо:

Есть код, могу скинуть, кому надо.

Очень интересно! Можно в личку.

ИльяПРо

www.dropbox.com/s/…/opencv_test3.zip?dl=0 проект
к нему еще нужно установить опенсв 3.2,
дополнительно нужны последовательности кадров с бортовой камеры в формате 640 на 360 opencv_test3\opencv_test2\seq2
файл .csv где прописаны имена кадров и время opencv_test3\opencv_test2\frames2.csv
и файл с углами и временем opencv_test3\opencv_test2\angles2.csv

oleg70
ИльяПРо:

Еще тест оказания ускорений на ориентацию.

Как реализована компенсация линейных ускорений ? (в общих словах, сама идея, так сказать) или просто коэффициент влияния акселя сильно мал ?

ИльяПРо

norm = __sqrtf(accX*accX + accY*accY + accZ*accZ);

noise = UKF_ACC_N + fabsf(9.81 - norm) * UKF_DIST_N;

Увеличиваю дисперсию шума в модели датчика, и UKF меньше доверяет акселю.

Ориентация ведь из GPS корректируется в том числе, но на самом деле по видео сложно сказать о качестве ориентации. Искажения линзы и подобранные коэффициенты перемщения картинки от угла все портят.

rual
oleg70:

Как реализована компенсация линейных ускорений ? (в общих словах, сама идея, так сказать) или просто коэффициент влияния акселя сильно мал ?

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