Проект Мегапират на самик!
А где видео-то?
Вечером приду домой - закачаю…
Вечером приду домой - закачаю…
Вобщем вот видео посадки и проверки после первого полета - качество сильно пострадало от сжатия (двойного - мной и Ютубом…) но надеюсь видно как горизонт поплыл…
:blink:
ПС вторую посадку выкладывать нет смысла - там уже все в порядке: и горизонт на месте и при вращении не плывет… впринципе видно (хоть и плохо-пожалось засильно) что уплыв горизонта начался не в полете а после приземления (примерно через 2 сек) и зависел от положения самика относительно сторон света - когда я крутился вместе с самиком…😮
Причем потом самик просто полежал (я отключал компас - как окозалось зря - на управление не влияет…), я даже питание не передергивал…
Ндя косяк… крен то еще туда сюда, а вот тангаж плавает очень сильно…
Алекс, может у тебя до сих пор МАРГ залит 😉))?
Алекс, может у тебя до сих пор МАРГ залит ))?
Да не… Перепрошивался на новую прошивку… да и старая вообще горизонт не держала (2.24) а 2.26 перезагружала плату.
Так самое интересное то, что во втором полете это не вылазило!
У меня теперь шальная мысля проскачила - может в вортексе что-то там оставалось, а потом стерлось… надо еще раз проверить - спецом больше ничего менять не буду… Как есть так и полечу…
типо - для подтверждения или опровержения…
про миксы прокомментируй плиз.
Как проверю - прокомментирую
потом самик просто полежал
Ни фига. Я, конечно, весь глаз сломал, но видел, что садился ты с сильно заниженным питчем. Сижу вот, голову ломаю.
А с В1, говоришь, все было отлично?
Может, ее DCM попробовать…
Я уже шальным делом попробовал процедуру переделаить - вообще не работает 😦
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, не факт что вкурю, но попытаюсь.
Жаль что нет отладчика 😦
А с В1, говоришь, все было отлично? Может, ее DCM попробовать…
Да - с В1 все пучком! Если небыло сильных порывов ветра передатчик можно было просто положить на землю и стоять и смотреть как самик сам летает (проделывал такой фокус пару раз - выпендривался перед зрителями…). При порывах ветра (особенно боковых) подруливал только РН - для коррекции курса… Крен и тангаж - идеально держал АП (впрочем я уже раньше писал, что на В1 достаточно выключить двигло и самик сам садился…). В В1 все было хорошо, кроме авторежимов - что-то у меня с ними не сраслось сразу, а потом уже и не проверил - новые прошивки пошли…
Грубо говоря - если не получится с этими - вернусь на В1 (авторежимы тестировать…).
Может, ее DCM попробовать…
Идея не плохая! ДЦМ в Б1 работал вполне не плохо 😃
А это так просто? переменные все те же остались?
Там DCM сильно переколбасили, но зависимости остались те же.
У В1 растут ноги от ардупилота 2.12, а 2.24 - ясно откуда, и разрыв между ними - полгода.
попробовал процедуру переделаить
отсыл обратно в radio_out - это погоня за собственным хвостом. В APM_RC тоже ковырять нечего - это конечная точка, где уже на сервы передается.
===
Вот, скопируйте в библиотеки AP_DCM из этого архива В1 …googlecode.com/…/MegaPiratePlaneB1.zip
Работает сразу, ничего перестраивать не нужно.
Алекс, а у тебя GPS вообще работал? почему-то на осд не видно было стрелки домой.
++Ага, нашел косяк.
В _EOSD.pde надо заменить
hom=get_bearing(¤t_loc,&home);
на
hom=get_bearing(¤t_loc,&home)-dcm.yaw_sensor;
отсыл обратно в radio_out - это погоня за собственным хвостом
Была надежда, что протокол обмена по ЮЭСБИ подхватит обновленные величины и пульнет их в комп.
Не найду никак вызов set_servos(), и flight_mixer() походу только из нее запускается ?
Не найду никак вызов set_servos()
вызывается из megapirateplane.pde, строка 520
Серво пуляются в комп из mavlink_common.h, строка 202 и далее, каналы с 5 по 8 вообще забиты нулями
Поставь себе что-то типа FAR manager, там есть полнотекстовый поиск по файлам.
Я разобрался в проблеме
Миксер работает, но есть НО
Ща пообмозгую и изложу СУТЬ
Похоже НО обмозговыванию не поддалось 😃
Похоже НО обмозговыванию не поддалось 😃
Поделись с народом - может мозговой штурм поможет…
Я сейчас сидел с самиком разбирался (хочу завтра с работы смотаться на поле…) - целый час гонял его на всех режимах - глюк не вылазит. В самике ничего не менял (в смысле прошивку и т.д.).
Всетаки хочу попробовать так как есть - для того чтоб или подтвердить или опровергнуть наличие косяков в данной прошивке.
Надеюсь завтра получится…
Леонид как разберешься с миксами - отпишись. Очень интересно так как собираюсь Вортекс на другой носитель переставить, а там миксы будут нужны…
Спасибо.
Подмозговыванию поддаётся, только если б еще и работать было не надо - процесс был бы побыстрее.
Пока моделирую разные варианты миксов, если меня удовлетворит то что задумано, представлю свой вариант микса на опробовывание.
Олег, подскажите как включить режим CLI , хочу в терминал отправлять значения переменных для посмотреть и отладки.
config.h стр 734 заменить на enabled
ну что - вырвался я в поле (начальство было в отъезеде а на улите почти штиль…).
правда не на долго - полчаса…
Один полет:
стабилизация держит отлично!
Глюк не проявлялся (компас я включил обратно)!
Проверил (чуток) режим РТЛ - при включении на высоте 70 метров (показания ОСД) самик врубил двигло на полную и начал кругами набирать высоту! Самое главное что он уже не хочет к шахтерам!!!
При наборе высоты (до 98 метров я выдержал и отключил режим - стало сцыкотно - туман и самика почти не видно а я летал визуально…) около заданной самик снизил обороты!
Так как самик я от базы далеко не отводил то и возврата как такового почти небыло - самик просто летал кругами…
Далеко отводить не стал по двум причинам - туман на поле и то, что ждал звонка (могли бы вызвать на работу и надо было бы быстро свернуться…).
Так же проверил работу режима Лойтер (только в ОСД оно почемуто пишется Холд).
вобщем самик летит сам и пытается держать заданную высоту - слышно как движком отрабатывает.
ВЫВОД:
Для второго полета - очень даже неплохо! (надо побольше потестить…).
Стабилизация работает отлично (а если еще и ПИДами поиграть…) - садил самик только РН (менял курс) элероны и РВ вообще не трогал!
ПС почемуто у меня стали спутники в полете пропадать… старт - 9, в полете 4… Странно - раньше наоборот было. Конфигурацию видео не менял, может изза тумана…
ну пока вот так… Кто еще отлетается - напишите как у вас.
т.е. от В1 функцию DCM ты не втыкал?
Там еще прикол есть, в акселе стоит диапазон 3G. По идее, для такой злой штуки как глайдер надо ставить все 8, а то и 16. Тогда оно просто не сможет выбить алгоритм и повредить горизонт.
т.е. от В1 функцию DCM ты не втыкал?
Там еще прикол есть, в акселе стоит диапазон 3G. По идее, для такой злой штуки как глайдер надо ставить все 8, а то и 16. Тогда оно просто не сможет выбить алгоритм и повредить горизонт.
Нет от В1 ничего не втыкал (ибо не умею…) - летал на последней прошивке 2.24.
А еще после детального изучения видео с сегодняшнего полета увидел (и возможно понял ) в чем была засада в прошлый раз…
вообщем ты опять прав. Когда самик долго нарезает круги (причем чем меньше радиус тем больше это заметно) горизонт немного уплывает в сторону крена! В прошлый раз был сильный ветер и как результат крены были более глубокие, сегодня ветра почти небыло (3-4 м) и самик летал более повольно - уход горизонта после посадки (по показанию ОСД) был на одно деление (это когда на ОСД крылья самика ровно а хвост уже сломало…).
Но стоило самику пару секунд полежать в спокое и все встало на место! (кстати у меня на самике такое отклонение даже не отрабатывалось машинкой - элероны стояли на месте.)
Так что возможно что предел акселя в 3G для моего самика и стиля полетов и маловат…
Кстати как его можно поменять? (если не трудно напиши где на что поменять…).
А в остальном все нормально, разберусь с ГПС и буду тестить авторежимы…
прошивка имеет право на жизнь!
Спасибо.
Когда самик долго нарезает круги (причем чем меньше радиус тем больше это заметно) горизонт немного уплывает в сторону крена!
Вот из-за этого я и заморочился с MARG: у него такого нет.
Еще есть вариант усилить треугольную функцию в DCM, чтобы еще больше ослаблять компенсацию при поворотах, но это может сказаться на общем уходе горизонта из-за дрифта гиры.
предел акселя в 3G для моего самика и стиля полетов и маловат
это относилось к тому, что у тебя было раньше: когда после расколбаса в ветреный день горизонт набекрень встал.
Поменять гораздо сложнее, чем вставить DCM-библиотеку из B1.