Акселерометр vs гироскоп

promistrio

Возник другой вопрос. С вашего разрешения приведу цитату своего поста.

Расчет тяг двигателей в коптере

Это опять я. Короче реализовал такую программку. Она (на скрине не видно) в консоль выводит координаты штурвала, а в графическом интерфейсе - значение тяги на штурвале. Она же передает 4 x unsigned int значения по bluetooth на контроллер (На каждый двигатель). Это программная часть.

Теперь механика. Самый логичный для меня вариант - это полет коптера крестом. Т.е. чтобы полететь вперед, нужно замедлить передний двигатель и ускорить задний. Тут и возникает вопрос: в какой зависимости это делается?

Сейчас я опишу свой вариант, а вы поправите меня. Данный метод элементарный и основан на процентах. Рассмотрим ситуацию на скриншоте. Общая тяга установлена в 75%. Штурвал может двигаться в разных направлениях, выдавая координаты X и Y. Эти значения преобразуются в -100% до +100% по оси X и от -100% до +100% по оси Y. Если значения X:0 и Y:0, значит штурвал в покое и тяга каждого двигателя будет равна общей тяге(т.е. 75%). Теперь устанавливаем константу. Пусть максимальное отклонение штурвала (например 100% по оси X) будет равно изменению тяги двигателя на 13,3% от общей тяги(Я взял такое число, потому что 13,3% от 75% - это примерно 10%). Получается, что при полном упоре штурвала вперед, тяга переднего двигателя будет 65%, а заднего 85%. Меняя константу можно будет настраивать чувствительность тяги двигателей. Аналогично реализуется движение по оси Y. Кнопки на штурвале будут регулировать реактивное вращение коптера.

Будет ли работать такой прием? Как работать с двигателями, когда тяга близка к 100%?
Передний замедлить можно, а вот ускорить задний невозможно.

Заранее спасибо.

Миниатюры

rual
promistrio:

Она же передает 4 x unsigned int значения по bluetooth на контроллер (На каждый двигатель).

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

promistrio:

Сейчас я опишу свой вариант, а вы поправите меня.

в принципе всё верно, по сути сумма каналов управления на один мотор М= к1*крен+к2*тангаж+к3*рыск+к4*тяга
для Х рамы коэфиициенты такие

Крен Танг Рыск Тяга
KAH1: -625 -625 -500 1800
KAH2: -625 625 500 1800
KAH3: 625 -625 500 1800
KAH4: 625 625 -500 1800

SovGVD

какое дикое нежеление открыть старый код multiwii… поражен что тема еще жива

alextr

Вообще-то, в теории, достаточно 6 идеальных акселерометров что-бы все знать. 3 шт. расположить по осям и 3 шт. поперек осей.

promistrio
rual:

для Х рамы коэфиициенты такие

Спасибо за ответы. Они разве нужны для моего алгоритма? Хотя в крайнем случае подобрать можно.

SovGVD:

какое дикое нежеление открыть старый код multiwii… поражен что тема еще жива

Хочу велосипед.

Вообще-то, в теории, достаточно 6 идеальных акселерометров что-бы все знать. 3 шт. расположить по осям и 3 шт. поперек осей.

Шум все равно никуда не денешь. Хотя кто знает, может, на пару с Калманом и получится.

rual:

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

С контрольным значением буду отправлять. Если в течении секунды нет адекватной информации - все двигатели отключатся. В крайнем случае, если даже на десяти метрах будет худо, перейду на WiFi TCP/IP, ибо UDP - это риск.

rual
promistrio:

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

Контрольное значение не улучшит равномерность данных. За секунду можно далеко улететь.

promistrio:

перейду на WiFi TCP/IP, ибо UDP - это риск.

Тут вообще ерунда: ТЦП при потере пакета будет его перезапрашивать, а на кой ему нужен устаревший пакет? Лучше ловить новый и проверять на целостность, если нормально - обрабатываем, если битый - отбрасываем. ЮДП однозначно!

promistrio
rual:

Тут вообще ерунда: ТЦП при потере пакета будет его перезапрашивать, а на кой ему нужен устаревший пакет? Лучше ловить новый и проверять на целостность, если нормально - обрабатываем, если битый - отбрасываем. ЮДП однозначно!

Согласен. Сказал недумавши.

rual:

Контрольное значение не улучшит равномерность данных. За секунду можно далеко улететь

Не уверен, что на десяти метрах будет настолько плохая связь.

Memuro

Если управлять напрямую от штурвала в двигатели - то штурвалом постоянно трясти будете в разные стороны и совсем не факт, что равновесие долго удержать сможете.
Для того и ставят датчики, чтобы внутренний быстрый контур стабилизации на борту отрабатывал обратные связи.
А сигналы от пилота/оператора - это уже внешний контур управления, формирующий команды для внутреннего контура.

kostya-tin

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

Musgravehill

Вот что бывает, когда за дело берется программист =) без углубления в физику, математику и электронику.

  1. Пофиг, что акселерометр “медленный”, может корректировать положение только в состоянии равномерного движения, а при неравномерном - вектор G вращается как попало.
  2. И что при вибрации он дико врет, а иногда даже переполняется диапазон АЦП.
  3. Пофиг, что компас “медленный”, рядом с проводами (ток неравномерный, подгазовки) и металлическими частями.
  4. А еще вектор магнитного поля в России часто почти вертикально уходит в землю, оттого наиболее важные его проекции на оси ХУ стремятся к нулю и не позволяют точно отследить рысканье (которое, как раз, не покажет акселерометр).
promistrio
Musgravehill:

Вот что бывает, когда за дело берется программист =) без углубления в физику, математику и электронику. 1. Пофиг, что акселерометр “медленный”, может корректировать положение только в состоянии равномерного движения, а при неравномерном - вектор G вращается как попало. 2. И что при вибрации он дико врет, а иногда даже переполняется диапазон АЦП. 3. Пофиг, что компас “медленный”, рядом с проводами (ток неравномерный, подгазовки) и металлическими частями. 4. А еще вектор магнитного поля в России часто почти вертикально уходит в землю, оттого наиболее важные его проекции на оси ХУ стремятся к нулю и не позволяют точно отследить рысканье (которое, как раз, не покажет акселерометр).

Что-то вы долго спали:) Я уже уточнил эти вопросы. За красочные факты спасибо.

kostya-tin:

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

Значит не зря гиро с акселем заказывал.

Memuro:

А сигналы от пилота/оператора - это уже внешний контур управления, формирующий команды для внутреннего контура.

Люблю дельные советы. Спасибо.

P.S. Еше спасибо за напоминание о Мультивий.