Crius Hobby MultiWii

SovGVD
Richard_Ferlow:

это скорость реакции на стики?

это скорость реакции системы на влияния (например завал на одну сторону)… вот тут годная инструкция по настройки

Richard_Ferlow
SovGVD:

. вот тут годная инструкция по настройки

Мне вот неясно - вот коптер в руках крутит все пропеллеры, как я увеличивайте значение коэффициента Р до тех пор, пока не ощутите, что довольно сложно противостоять реакции коптера. это делать буду ? это же его посадить нужно и подключиться к нему компом…а вообще диапазоны мин-макс как узнать какие там ?

Mihbay
skyrider:

Думал только у меня на гексе так, в руках при попытке отклонить по питчу при маленьком Р сопротивляется очень вяло, задрал Pitch P до 17, в безветренную погоду если завесить коптер передатчик можно на землю положить на пару минут спокойно, но если дует ветерок или спуск с высоты (даже не быстро) начинает немного колбасить. Для полетать нормально, для поснимать не пойдет, надо крутить пиды дальше, где можно подглядеть хорошо работающие пиды для гексы прошитой 2.0 ?

у меня ролл стоит P7 d40 и сопротивляется достаточно, старался подогнать питч под ролл так настроек не хватает, ну уже сопротивление становится похожим на ролл при P17-20 d40-60 но вот бы 25 попробовать так прога же не дает! только до 20 можно, такое ощущение что из за того что на питч работает по 2 луча а на ролл по три луча на сторону, в прошивки не выставили увлечение оборотов двигателя для питч, ну или что то типа того, получается что по питчу просто мощности не хватает, я не совсем понимаю как программа написана, но смысл должен быть такой, например если при зависании у нас двигатели работают на 1000 оборотов то при возмущении от внешних воздействий мозги поднимают мощность на движках в противоположном направлении к примеру на 10% на питч и ролл, но на ролл у нас работает 3 движка на сторону, получается что ему хватает а вот на питч нужно чтоб не на 10% поднимал а на 20%. и это делать не настройками пид а именно где то в программе прошивки, должны быть такие настройки, и если их изменить то потом уже можно будет уровнять пиды питч и ролл,
обратите внимание на видео там видно как по ролл сопротивляется просто отменно, а по питч далеко не сражу и это при P15 D60, а вот ставишь P20 уже практически перестает колбасить и начинает вести себя как ось ролл

www.youtube.com/watch?v=CoYzKpX29Gw

SovGVD
Mihbay:

где то в программе прошивки, должны быть такие настройки

в output миксы рам прописаны

  #ifdef HEX6
    motor[0] = PIDMIX(-1/2,+1/2,+1); //REAR_R
    motor[1] = PIDMIX(-1/2,-1/2,-1); //FRONT_R
    motor[2] = PIDMIX(+1/2,+1/2,+1); //REAR_L
    motor[3] = PIDMIX(+1/2,-1/2,-1); //FRONT_L
    motor[4] = PIDMIX(+0  ,-1  ,+1); //FRONT
    motor[5] = PIDMIX(+0  ,+1  ,-1); //REAR
  #endif
  #ifdef HEX6X
    motor[0] = PIDMIX(-1/2,+1/2,+1); //REAR_R
    motor[1] = PIDMIX(-1/2,-1/2,+1); //FRONT_R
    motor[2] = PIDMIX(+1/2,+1/2,-1); //REAR_L
    motor[3] = PIDMIX(+1/2,-1/2,-1); //FRONT_L
    motor[4] = PIDMIX(-1  ,+0  ,-1); //RIGHT
    motor[5] = PIDMIX(+1  ,+0  ,+1); //LEFT

PIDMIX(ROLL, PITCH, YAW);
теория микширования (англ полная версия)

кстатии реально по роллу 50% задано, хотя в теории должно быть 87% для обычной гексы (вперд и назад по одному лучу и по 2 в бока)

Mihbay

ну вот походу оно и есть мощность переднего левого и переднего правого движка делится на 2, может попробовать поставить делить на 1.5

SovGVD

а может поэтому у меня и крутит странно гексу =) надо будет померить и прикинуть реальные значения
чисто теоретически должно быть

#ifdef HEX6
    motor[0] = PIDMIX(-0.87,+1/2,+1); //REAR_R
    motor[1] = PIDMIX(-0.87,-1/2,-1); //FRONT_R
    motor[2] = PIDMIX(+0.87,+1/2,+1); //REAR_L
    motor[3] = PIDMIX(+0.87,-1/2,-1); //FRONT_L
    motor[4] = PIDMIX(+0   ,-1  ,+1); //FRONT
    motor[5] = PIDMIX(+0   ,+1  ,-1); //REAR
  #endif

… ну или моторы боковые ближе к центру сдвигать

Mihbay

если я не ошибаюсь то у вас гексу сейчас закручивает именно когда сопротивляется внешним воздействиям? может нужно так?
motor[0] = PIDMIX(-0.87,+0.87,+1); //REAR_R
или так
motor[0] = PIDMIX(-1/1.5,+1/1.5,+1); //REAR_R
просто получается что на понижение у вас стоит -0.87 а на увлечение +1\2 в итоге ерунда)) это только предположения

SovGVD

у меня она начинает крутиться как волчок на старте, если не инвертированно направление вращения YAW… как вариант я тупо моторы неправильно заставил вращаться
а вот про миксы вот тут готовая табличка с коэффициентами code.google.com/p/ardupirates/wiki/motormixing после Hexa classic mode
… и странная надпись “NOTE: The current NG code, is not using the 87% on roll, but 100%; in this case it is like the all four left and right motors were a bit farther away from center (13%).” - видимо чтобы моторы крутились на полном ходу и выдавали максимальную тягу, когда надо

VitaliyRU

Вчера наночь глядя мучал изделие. Нашел еще одну дыру в ВИИ, так никто не строит 😃)
Вий чувствителтеный к развесовке например, а аффтры даже предлагают триммировать в акром моде. А должно быть пох на постоянное возмущающие воздействие.
Попробую сегодня вечером “наскоком” исправить, должно в ветер намного луче работать начать.

SovGVD
Mihbay:

получается что на понижение у вас стоит -0.87 а на увлечение +1\2 в итоге ерунда

какой понижение/увеличение? это оси X, Y и Z и грубо говоря координаты расположения моторов

VitaliyRU:

Вий чувствителтеный к развесовке например

вроде бы нет… не раз видео видео, когда на multiwii навешивают на край груз и он продолжает ровно лететь

Mihbay
SovGVD:

какой понижение/увеличение?

точняк это я ступил, посмотрел сейчас таблицу, FrontRight CCW PIDMIX(-1/2 это питч, +1/2 это ролл,+1 яав) вот и получается что по питч у нас в стандарте идет 50% а по ролл стоит 100%

motor[4] = PIDMIX(+0 ,-1 ,+1); //FRONT
motor[5] = PIDMIX(+0 ,+1 ,-1); //REAR

SovGVD
Mihbay:

PIDMIX(-1/2 это питч, +1/2 это ролл,+1 яав)

нет
#define PIDMIX(X,Y,Z) rcCommand[THROTTLE] + axisPID[ROLL]*X + axisPID[PITCH]*Y + YAW_DIRECTION * axisPID[YAW]*Z
PIDMIX (roll, pitch, yaw) - оси вращения

VitaliyRU
SovGVD:

вроде бы нет… не раз видео видео, когда на multiwii навешивают на край груз и он продолжает ровно лететь

Вот как раз это вчера и изучал. Мой последнее время стабильно не висел в акром моде(висел как бы маятником, рывками) да и назад дрейфовал. Весь моск поломал в чем дело. Оказалось крепление аака на пару ММ назад сползло. Я еще в коде обратил внимание. Разность в тяге моторов может быть только тогда(DI не трогаем для простоты, только P) когда есть угловая скорость. Т.е. что-то превешивает(акк не ровно висит) начинается вращение назад, P исправило до 0й угловой скорости, но выровняло обороты винтов его опять перевешивает и все по новой. Ну а засчет I и появляется “маятник”, т.к. I возращает ошибку накопленную P. Просто для P больше нуу, 6 это слабо заметно, а у меня P 4 и масса 70 грамм всего - ой как заметно.

Mihbay

ну я это и имел ввиду только там есть еще команды {PITH} {ROLL} где по питч работают 2 движка на сторону а на ролл 3 именно поэтому и стоит 0
BackCCW = - ( 1 * Pitch) - ( 0 * Roll) + Yaw так как при питче нам не нужна компенсация по ролл

SovGVD
VitaliyRU:

Мой последнее время стабильно не висел в акром моде

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

VitaliyRU
SovGVD:

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

Он висеть должен ровно столько, сколько не удрейфовал по своим делам гирик 😃
И в LEVEL он тоже на гирике висит, а аксель компенсирует ошибку(в т.ч. и о которой я говорю) гирика, да еще и с задержкой огромной.
Сколько видео с вием не видел, мало у кого висит, обычно болтается кое как. И все жалюуться что вий очень капризный - ну дак еще бы. В одном моторе подшипник чуть устал - все вий больше не работает.
У меня есть blade mpcx весть 45 грамм. Так ему ветер ваще пофиг, только вверх вниз подбрасывает. Вот там следанно так как я описал. Если на хвост подвесить гирьку и приземлится, то тарелка автомата перекоса будет наклонена вперед. А с вием бы ровно стояла.
Впрочем я не спора для, а делюсь соображениями.

SovGVD

ну тогда хорошо бы патч увидеть, чтобы посмотреть как гекса станет летать

VitaliyRU
SovGVD:

ну тогда хорошо бы патч увидеть, чтобы посмотреть как гекса станет летать

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

Сергей_Вертолетов

Коллеги, на счет компаса хочу спросить. Кто нить использует его вплотную? Ничего, что он на плате, наводки не мешают? Я так понимаю, пока GPS толком не заработает, то компас не так важен, но вот с GPS… Просто в других системах с компасом все непросто, вот и хотел спросить, у кого и как с этим делом именно на криусе?

skyrider
Mihbay:

обратите внимание на видео там видно как по ролл сопротивляется просто отменно, а по питч далеко не сражу и это при P15 D60

Именно так ведет себя гекса и у меня, питч P-18 I-30 D-40 , рол Р не помню но меньше десяти, кажется P-8 I-30 D-40, моторки такие же, винты APC 11x4.7, сделайте скриншот своих пидов в гуи с которыми адекватней всего летает.

Сергей_Вертолетов:

Просто в других системах с компасом все непросто, вот и хотел спросить, у кого и как с этим делом именно на криусе?

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

mahowik
skyrider:

Именно так ведет себя гекса и у меня, питч P-18 I-30 D-40 , рол Р не помню но меньше десяти, кажется P-8 I-30 D-40, моторки такие же, винты APC 11x4.7, сделайте скриншот своих пидов в гуи с которыми адекватней всего летает.

надо будет миксы в прошивке посмотреть для гексы… можен там чего намудрили…

upd:

#ifdef HEX6X
    motor[0] = PIDMIX(-1/2,+1/2,+1); //REAR_R
    motor[1] = PIDMIX(-1/2,-1/2,+1); //FRONT_R
    motor[2] = PIDMIX(+1/2,+1/2,-1); //REAR_L
    motor[3] = PIDMIX(+1/2,-1/2,-1); //FRONT_L
    motor[4] = PIDMIX(-1  ,+0  ,-1); //RIGHT
    motor[5] = PIDMIX(+1  ,+0  ,+1); //LEFT

посчитал вес миксов учитывая угол плеча. для HEX6X получилось:
roll = cos(60)*1/2 + cos(60)*1/2 + 1 = 1.5
pitch = cos(30)*1/2 + cos(30)*1/2 = 0.86

можно пробовать так:

#ifdef HEX6X
    motor[0] = PIDMIX(-1/2,+1,+1); //REAR_R
    motor[1] = PIDMIX(-1/2,-1,+1); //FRONT_R
    motor[2] = PIDMIX(+1/2,+1,-1); //REAR_L
    motor[3] = PIDMIX(+1/2,-1,-1); //FRONT_L
    motor[4] = PIDMIX(-1  ,+0  ,-1); //RIGHT
    motor[5] = PIDMIX(+1  ,+0  ,+1); //LEFT

тогда соот-е станет 1.5 к 1.7

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