STorM32 BGC: 3-Axis STM32 Brushless Gimbal Controller

An_private

Господа, а напомните дефолтные пиды, плиз. Что-то настроил всё по инструкции, включаю все двигатели и подвес начинает колбасить. Причём и на дефолтных всё работало прилично. Хочу просто сравнить дефолт и то, что у меня получилось.
И еще - почему включение second imu так сильно ухудшает стабильность? То есть настраиваешь pid’ы, вроде всё работает по всем осям. Включаешь second imu и подвес начинает жестко колбасить. Можно с этим что-то сделать?

Jan=
An_private:

Включаешь second imu и подвес начинает жестко колбасить.

Мне помогло заново пройти “configure gimbal tool”

An_private
Jan=:

Мне помогло заново пройти “configure gimbal tool”

Ну, это видимо ориентация была неправильно определена. Ориентация сейчас правильная, это проверено.

UB0AAC

Коллеги, имею такой подвес.
Вроде все работает. Но есть один непонятный момент. По оси Yaw иногда может потерять центр. По-началу вообще стоило сдвинуть его рукой из центра и он дергался из стороны в сторону, долбился в ограничитель, иногда находил какое то другое в его понимании “нейтральное положение” которое отличалось от реального градусов на 100 и возвращался только в него. Потом включил IMU2 на Full и стало намного лучше. Теперь сбить нейтральное положение намного сложнее, но иногда все же удается.

Решил поразбираться. Посмотрел графики, а именно текущие углы. И заметил что при повороте по YAW в любую сторону (моторы отключены) показания градусов медленно уменьшают в сторону нуля. На двух других осях все четко какой стоит угол, такой и показывает.
И вот не пойму либо это так задумано, либо дело в самом датчике.

Прошу, кому не сложно, проведите такой же эксперимент. Можно даже не подавать питание, просто воткнуть штурок USB. И просто зайти в Data dysplay, повернуть подвес в какую нибудь сторону, оставить его в таком положении и посмотреть на показания угла по YAW, уменьшаются они или нет.
Буду очень благодарен 😃

An_private
UB0AAC:

показания градусов медленно уменьшают в сторону нуля.

Дело в том, что в отличии от pitch и roll по yaw нет привязки к полю тяготения. То есть pitch и roll всегда можно отцентровать по вертикали акселерометра (хорошо проинтегрировав). А по yaw никакой привязки нет - приходится работать по двум показателям - гироскопу (который всегда потихоньку плывёт) и положению мотора (которое определяется в предположении, что нет проскальзывания и он чётко отрабатывает все фазы, выдаваемые драйвером).
Так как на подвесе нет никакого датчика точки нуля, то в случае сбоя положения (дернули двигатель не по фазам, а гироскоп по какой-то причине этого не понял), будет принято новое нулевое положение.
У вас в полёте проблемы? Попробуйте vmax приподнять - может просто от порывов ветра двигатель проскальзывает?

UB0AAC

Спасибо за подробный ответ! Уже целый день экспериментирую, и действительно пришел к тому что этот момент проявляется только по оси YAW, как ни располагай датчики. По остальным осям все четко, графики никуда не плывут.
Но интересно то что это проявляется только когда ось YAW в режиме PAN. В режиме HOLD ничего никуда не плывет. Остальные оси в любых режимах не плывут.

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

p.s. А как тогда при включении подвес встает в правильное положение если есть еще несколько нулей?

Hyperion
An_private:

Дело в том, что в отличии от pitch и roll по yaw нет привязки к полю тяготения. То есть pitch и roll всегда можно отцентровать по вертикали акселерометра (хорошо проинтегрировав). А по yaw никакой привязки нет - приходится работать по двум показателям - гироскопу (который всегда потихоньку плывёт) и положению мотора (которое определяется в предположении, что нет проскальзывания и он чётко отрабатывает все фазы, выдаваемые драйвером).

да ладно. А как же тогда коптер по яву держится в режимах без магнетометра?

An_private
UB0AAC:

как тогда при включении подвес встает в правильное положение

Начальное положение при включении принимается за ноль. Ну, точнее ближайшее с заданным положением фаз/полюсов 😃
Попробуйте повернуть камеру на 90 градусов перед включением.

Hyperion:

А как же тогда коптер по яву держится в режимах

Плюс/минус. Дрейф гироскопов всегда присутствует.

UB0AAC

Андрей, прокомментируйте пожалуйста это

Но интересно то что это проявляется только когда ось YAW в режиме PAN. В режиме HOLD ничего никуда не плывет. Остальные оси в любых режимах не плывут.

Hyperion
An_private:

Плюс/минус. Дрейф гироскопов всегда присутствует.

да ладно. 0.4градуса и это точность ява при стабилизации квадрика а не более легкой задачи при стабилизации подвеса.
Если бы один только дрейф гироскопов был то яв бы уплывал.

An_private
UB0AAC:

прокомментируйте пожалуйста это

Тут мне сложно что-то сказать 😃 Я могу быть тотально неправ - это надо смотреть алгоритмы, а исходники не открыты. Возможно, что режимы pan/hold реализованы именно через коррекцию показания гироскопа. Хотя это и немного странно, но почему бы и нет.

Немного из мануала:
www.olliw.eu/…/Hold_versus_Pan_Mode
In contrast to pitch and roll, the gyro drift for yaw cannot be compensated for by the accelerometers. The STorM32 controller is capable of compensating the gyro yaw drift when in pan mode, but it’s impossible when in hold mode.

kaos

Замучили i2c ошибки. Кто нибудь заказывал imu nt?

An_private
kaos:

Замучили i2c ошибки

Провесил экранированный кабель - ошибки исчезли как класс. Но на всякий случай заказал CC3D Atom. Но пока жду.

KirS
kaos:

Замучили i2c ошибки

Не знаю, никогда не видел такого. На каждом кабеле (обычном) висит ферритовое кольцо.

An_private
KirS:

никогда не видел такого

У меня вначале даже первичный визард не проходил - сразу после включения моторов i2c вырубалось. Плетение косичек не помогло. Колечки помогли, но не радикально. Экранированный кабель на i2c просто снял проблему как класс.

kaos

Проблема плавающая, то сыпятся то не сыпятся. Визард удалось пройти успешно. Теперь при включении может успешно пройти инициализацию, а может зависнуть. Ферриты есть. Провод до IMU длинноват, но укорачивать не хочу.

An_private:

Экранированный кабель на i2c просто снял проблему как класс.

А где взять мягкий экранированный кабель? Наушники раздербанить?

An_private
kaos:

А где взять мягкий экранированный кабель?

Эээээ. У меня использован кабель от старой дохлой профессиональной петлички (микрофон такой). Где взять что-то подобное - даже не знаю 😇

Дока
kaos:

Замучили i2c ошибки.

Проверить контакты для начала. Возникла такая проблема когда чуть разъем отошел.

kaos
Дока:

Проверить контакты для начала. Возникла такая проблема когда чуть разъем отошел.

Разъемов нет, кабель припаян к контроллеру и иму. jst обжать нечем, поэтому пришлось поступить грубо.

Vladfva=

Подскажите, плиз, как правильно подключить приемник к storm32 по s.bus.
Продолбался уже три дня, ничего не выходит.
Подключаю землю и сигнальный провод на GND и RC-0. Выбираю в настройках s.bus. Задаю виртуальные каналы. Но ничего не двигается.
Если просто подключить выходы приемника к RC-0, RC-1 и RC-2 и включить их в настройках, то все двигается.

kaos

Заказал h t t p://www.ensys.lt/product/storm32-nt-imu-module-v2-0/
Посмотрим…