Проект Мегапират на самик!

Lazy

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

Syberian
LeonVS:

Реально замутить ?

Реально. Давай только еще потестим 24 маленько, чтобы другие возможные бока выявить, и можно будет модифицировать.

LeonVS

Эт можно, правда эт не квадрик, в поля если только в выходные…

alex-ber

Полностью поддерживаю Олега - вначале надо довести прошивку до полной стабильной готовности, а потом можно и “рюшечки” вешать…
Два полета по пять-семь минут ничего не показали (кроме того, что стабилизация работает…). Еще никто уверено не проверил авторежимы…
Вот когда все полетит как задумано - можно и про остальное подумать.
Я вообще всегда при проверке режимов и прочих настройках стараюсь самик держать так, чтоб не попасть в плоскость винта (а после разрывов лопастей - раньше писал… - даже со снятым винтом нос самика держу подальше от лица…). Включение (активация) двигла при авторежимах - досада, но не смертельно!
ВОПРОС: Олег, в прошивке 2.24 компас влияет на калибровки гир, акселя или нет? Хочу разобраться - это был глюк или моя ошибка… Посмотрел видео первого полета - видно как после приземления (самик уже лежит спокойно на земле) горизонт потихоньку уплывает вправо (крен на правое крыло градусов 10-15), после того как я замерил это я стал проверять самик в горизонтальной плоскости - при проходе носа самолета через Юг (примерно) элероны отклонялись… Потом я положил самик около машины на землю и пока подключал ЮСБ видео не писал… после манипуляций с компасом в планере (в закладке конфиг- устройства снял галочку напротив компаса) и включении записи для второго полета горизонт не плыл и элероны не отклонялись при поворотах самика вокруг оси в горизонте (специально перед полетом проверил пару раз…) второй полет прошел нормально (впринципе как и первый), но после посадки с горизонтом все было нормально.

LeonVS
alex-ber:

“рюшечки” вешать…

Ну тут не совсем соглашусь. ТБ эт не совсем “рюшечки” 😃 Хотя конечно и не смертельно 😃 Лишь бы полетело как следует 😃

Syberian
alex-ber:

ВОПРОС: Олег, в прошивке 2.24 компас влияет на калибровки гир, акселя или нет?

Нет. А вот другое дело, когда плата стоит под углом, и я уже предупреждал об этом. Смотри: поставили плату под углом (допустим, крен 5 градусов). Акселерометр вывели в “0”, чтобы не брыкался. Вращаем самолет в горизонтальной плоскости. По идее, должен меняться только yaw, однако, в гироскопе появляются паразитные составляющие по X и Y т.к. мы крутим его микросхему вне горизонтали. Их даже можно рассчитать:
Xp= Z*sin(alpha)/cos(alpha)
где
Z - выход гироскопа по Z
Xp - паразитная наводка на X
alpha - угол наклона платы

По Y ситуация аналогичная, только знак будет отрицательный.

В результате, IMU воспринимает это как изменение и крена, и тангажа. После прекращения поворота в дело вступает аксель и выравнивает горизонт.

Аналогичная ситуация возникает при изменении тангажа или крена: попутно меняется YAW, хотя потом выправляется компасом или GPS-курсом.

Вот почему плату надо все-таки ставить РОВНО. Точнее, соосно с направлением движения самолета (учитывая угол атаки) и горизонтально в плоскости крыльев.

ViktorDoma
Syberian:

в конфиге отключить reduced_protocol и будет показывать

Не нашел в планере Mission Planner 1.1.2 этот параметр. Подскажите где его искать.

С миксами ТРАБЛА

Сделал так:
// The Mixer Table
// R2, R3, R1, R4, R7, R8
// Roll Pitch Throttle Rudder Ch_7 Ch_8

/* M3 */ -100, 0, 0, 0, 0, 0,
/* M4 */ 0, -100, 0, 0, 0, 0,
/* M1 */ 0, 0, 100, 0, 0, 0,
/* M2 */ 0, 0, 0, 100, 0, 0,
/* M5 */ 0, 0, 0, 0, 100, 0,
/* M6 */ 0, 0, 100, 0, 0, 100

};
До калибровки РАДИО
Микс получился дискретный - как выключатель. Поясню - канал М1 работает нормально - т.е. пропорционально стику газа, а канал М6 - работает только в крайние положения (До середины стоит в обном крайнем положениеи, а потом перекидывает в другое крайнее).
После калибровки РАДИО - микс вообще умер (серва на М6 вообще не реагирует никак).

Еще момент - или я где то пропустил или что то не так работает.
Плата БВ лежит на столе с уклоном в 2-3 градуса.
Горизонт автоматом не выравнивается. Так и должно быть ? Или нужно где то что то нажать ?

По МИКСАМ если надо могу сделать мини ролик (реакция на стики) - делать ?

Сделал другой микс - тоже хрень какая то.

// R2, R3, R1, R4, R7, R8
// Roll Pitch Throttle Rudder Ch_7 Ch_8

/* M3 */ -100, 0, 0, 0, 0, 0,
/* M4 */ 0, -100, 0, 0, 0, 0,
/* M1 */ 0, 0, 100, 0, 0, 0,
/* M2 */ 0, 0, 0, 100, 0, 0,
/* M5 */ 0, 100, 0, 0, 100, 0,
/* M6 */ 0, 0, 100, 0, 0, 100

Соединил R3 с М5 и М4 - реакция другая. Канал М4 - норма. Канал М5 -если ручка стика в середине - убегает в крайнее положение и там сидит, при движении стика одну сторону не реагирует в другую, после середины перекидывает в противоположную крайнюю точку. Подозреваю что центр канала R3 смещен слегка и получается часное от первой траблы по миксу R1 к М1 и М6.

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

Олег - если побороть миксо-траблу нет возможности, маякните.

Я тогда пойду другой путёй с Миксами.

Lazy
Syberian:

Точнее, соосно с направлением движения самолета (учитывая угол атаки) и горизонтально в плоскости крыльев.

А что, кто то додумался ставить иначе? 😃

alex-ber
Lazy:

Сообщение от Syberian Точнее, соосно с направлением движения самолета (учитывая угол атаки) и горизонтально в плоскости крыльев. А что, кто то додумался ставить иначе?

А иногда просто не получается по другому…
В прошивке В1 угол наклона платы можно было скомпенсировать в настройках, теперь нет.

А плата уже установлена и закреплена в фюзе - неохота было переделывать, вот и попробовал так как было…
теперь переделаю и попробую сново (на то и существует тестирование - методом проб и ошибок настраивается продукт…).
Олег.
Тогда я всеравно не понимаю что это было - в видео явно видно как горизонт заваливается после первого полета и отлично держит после второго…
Может в мозгах какие хвосты от предыдущей прошивки (2.26) остались?
Может стоит все почистить, ресетнуться и залить по-новой? как сделать полный сброс?
Спасибо.

Syberian
alex-ber:

можно было скомпенсировать в настройках, теперь нет.

В Б1 было то же самое.
А где видео-то?

alex-ber
alex-ber:

Вечером приду домой - закачаю…

Вобщем вот видео посадки и проверки после первого полета - качество сильно пострадало от сжатия (двойного - мной и Ютубом…) но надеюсь видно как горизонт поплыл…

:blink:

ПС вторую посадку выкладывать нет смысла - там уже все в порядке: и горизонт на месте и при вращении не плывет… впринципе видно (хоть и плохо-пожалось засильно) что уплыв горизонта начался не в полете а после приземления (примерно через 2 сек) и зависел от положения самика относительно сторон света - когда я крутился вместе с самиком…😮
Причем потом самик просто полежал (я отключал компас - как окозалось зря - на управление не влияет…), я даже питание не передергивал…

LeonVS

Ндя косяк… крен то еще туда сюда, а вот тангаж плавает очень сильно…

Алекс, может у тебя до сих пор МАРГ залит 😉))?

alex-ber
LeonVS:

Алекс, может у тебя до сих пор МАРГ залит ))?

Да не… Перепрошивался на новую прошивку… да и старая вообще горизонт не держала (2.24) а 2.26 перезагружала плату.
Так самое интересное то, что во втором полете это не вылазило!
У меня теперь шальная мысля проскачила - может в вортексе что-то там оставалось, а потом стерлось… надо еще раз проверить - спецом больше ничего менять не буду… Как есть так и полечу…
типо - для подтверждения или опровержения…

Syberian
ViktorDoma:

про миксы прокомментируй плиз.

Как проверю - прокомментирую

alex-ber:

потом самик просто полежал

Ни фига. Я, конечно, весь глаз сломал, но видел, что садился ты с сильно заниженным питчем. Сижу вот, голову ломаю.

А с В1, говоришь, все было отлично?
Может, ее DCM попробовать…

ViktorDoma

Я уже шальным делом попробовал процедуру переделаить - вообще не работает 😦

void flight_mixer(void)
{ // debias the channels
static long chm_in[6];
byte i,j;
long chm_out[6];

chm_in[0]= g.channel_roll.radio_out-1500;
chm_in[1]= g.channel_pitch.radio_out-1500;
chm_in[2]= g.channel_throttle.radio_out-g.channel_throttle.radio_min;
chm_in[3]= g.channel_rudder.radio_out-1500;
chm_in[4]= g.rc_7.radio_out-1500;
chm_in[5]= g.rc_8.radio_out-1500;

for(i=0;i<6;i++)
{chm_out[i]=0;
for(j=0;j<6;j++)
chm_out[i]+=mxt[6*i+j]*chm_in[j];
chm_out[i]/=100;
}
g.channel_roll.radio_out=chm_in[0]+1500;
g.channel_pitch.radio_out=chm_in[1]+1500;
g.channel_throttle.radio_out=chm_in[2]+g.channel_throttle.radio_min;
g.channel_rudder.radio_out=chm_in[3]+1500;
g.rc_7.radio_out=chm_in[4]+1500;
g.rc_8.radio_out=chm_in[5]+1500;

APM_RC.OutputCh(CH_1, g.channel_roll.radio_out); // send to Servos
APM_RC.OutputCh(CH_2, g.channel_pitch.radio_out); // send to Servos
APM_RC.OutputCh(CH_3, g.channel_throttle.radio_out); // send to Servos
APM_RC.OutputCh(CH_4, g.channel_rudder.radio_out); // send to Servos
APM_RC.OutputCh(CH_7, g.rc_7.radio_out); // send to Servos
APM_RC.OutputCh(CH_8, g.rc_8.radio_out); // send to Servos
}

Дабы посмотреть чЁ в Ардуплан по каналам серв летит.

после переделки кода - микс вообще перестал работать, как после калибровки.

Такое ощущение, что после вызова flight_mixer() есть еще какая то обработка сигналов.

Ща буду копатЦо в APM_RC.OutputCh, не факт что вкурю, но попытаюсь.

Жаль что нет отладчика 😦

alex-ber
Syberian:

А с В1, говоришь, все было отлично? Может, ее DCM попробовать…

Да - с В1 все пучком! Если небыло сильных порывов ветра передатчик можно было просто положить на землю и стоять и смотреть как самик сам летает (проделывал такой фокус пару раз - выпендривался перед зрителями…). При порывах ветра (особенно боковых) подруливал только РН - для коррекции курса… Крен и тангаж - идеально держал АП (впрочем я уже раньше писал, что на В1 достаточно выключить двигло и самик сам садился…). В В1 все было хорошо, кроме авторежимов - что-то у меня с ними не сраслось сразу, а потом уже и не проверил - новые прошивки пошли…
Грубо говоря - если не получится с этими - вернусь на В1 (авторежимы тестировать…).

LeonVS
Syberian:

Может, ее DCM попробовать…

Идея не плохая! ДЦМ в Б1 работал вполне не плохо 😃

А это так просто? переменные все те же остались?

Syberian

Там DCM сильно переколбасили, но зависимости остались те же.
У В1 растут ноги от ардупилота 2.12, а 2.24 - ясно откуда, и разрыв между ними - полгода.

ViktorDoma:

попробовал процедуру переделаить

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

===
Вот, скопируйте в библиотеки AP_DCM из этого архива В1 …googlecode.com/…/MegaPiratePlaneB1.zip
Работает сразу, ничего перестраивать не нужно.

Алекс, а у тебя GPS вообще работал? почему-то на осд не видно было стрелки домой.
++Ага, нашел косяк.
В _EOSD.pde надо заменить
hom=get_bearing(&current_loc,&home);
на
hom=get_bearing(&current_loc,&home)-dcm.yaw_sensor;

ViktorDoma
Syberian:

отсыл обратно в radio_out - это погоня за собственным хвостом

Была надежда, что протокол обмена по ЮЭСБИ подхватит обновленные величины и пульнет их в комп.

Не найду никак вызов set_servos(), и flight_mixer() походу только из нее запускается ?