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

LeonVS

Я в аурдине плату датчиков прямо к основной плате на термоклей прифигачил, вроде все тип топ, не считая уплыва в виражах…
Пытаюсь разобраться с твоим МАРГ, он библиотеку IMU вообще не юзает походу… Все идет напрямую с датчиков? Так как компас глючит пытаюсь вклячить курс с ГПС, чтот не въезжаю как сие реализовать… Пробовал зделать как в ДЦМ библиотеке:

yaw = -atan2(2*q1*q2+2*q0*q3,2*q0*q0+2*q1*q1-1);
cos_psi_err = cos(ToRad(g_gps->ground_course/100.0) - yaw);
sin_psi_err = sin(ToRad(g_gps->ground_course/100.0) - yaw);
rot_mat.a.x = cos_psi_err;
rot_mat.a.y = -sin_psi_err;
rot_mat.b.x = sin_psi_err;
rot_mat.b.y = cos_psi_err;
rot_mat.a.z = 0;
rot_mat.b.z = 0;
rot_mat.c.x = 0;
rot_mat.c.y = 0;
rot_mat.c.z = 1.0;
dcm_matrix = rot_mat * dcm_matrix; /// Не въеду на что мне умножить матрицу rot_mat в МАРГе???
Если есть мысли, наведи на путь истинный 😃?

Syberian

уууу матан!!! я пас 😃 у мене тройка в дипломе по вышке 😉
навскидку: матрица - это 3 трехмерных вектора, а кват - 1 четырехмерный. Втупую не перемножишь. Тем более, там какой-то алгоритм gradient decent применен, формулы на пол-страницы.
Попробуй лучше перевести курс в XYZ якобы от магнетометра, опираясь на текущие roll pitch, и потом его же и подай штатно в марг.
Примерно так: если roll-pitch равны 0, mX и mY - это синус и косинус жпс-курса. Если roll,допустим, 90 грд, вместо mX будет mZ.
Короче, куча синусов и косинусов.
А вообще, я бы зобил. Нормально компас работает, если калибровать нормально.

LeonVS
Syberian:

А вообще, я бы зобил. Нормально компас работает, если калибровать нормально.

Там даже проблема немного в другом… Допустим при боковом ветре самулю чтоб лететь на точку надо брать опережение и лететь под углом, если курс берем просто с ГПС никаких проблем самуль смотрит допустим на 30 градусов в сторону ветра, а летит четко по линии, если же АП ориентируется по компасу он будет плавать туды сюды пытаясь повернуть нос на точку его будет сносить и тд тп… В общем обработка курса с компасом гораздо запарней 😃

Syberian

Имея 4 параметра: жпс курс, жпс скорость, компас и аирспид ты вполне можешь вычислить куда тебя несет, с какой скоростью, каким боком и куда при этом нужно парировать, чтобы не сорваться и еще и по прямой линии к цели валить.

LeonVS

Вот как раз с ЖПС курсом и засадко выходит в МАРГе:) Хочу еще раз с твоим МАРГом поиграться, кручения в руке по сравнению с ДЦМ дают гораздо лучшие результаты по уплыву… Можно конечно извратиться подрубив еще и ДЦМ, что то таскать от туда что то от туда… и в общем то мега даже сие тянет, но как то через ж получается 😃

alex-ber

Вообщем сегодня перепаял ГПС (СПАСИБО Леониду…).
проверил пока на земле (у нас верер и дождь…) - походил с самиком вокруг домов. По логу точность позиции составила 2 метра… ГПС модуль работает на частоте 5 Гц (хотя может и 10…) и скорость передачи 9600 по умолчанию (с толчка может и 57600 давать…).
Вопрос: забить и так попробовать или мудрить с модулем?
если в коде (Ежеужа) при старте в модуль кинуть МТК - строчку, модуль переключится в нужный режим… тока как это сделать я не знаю… В смысле строчку я найду (гдето записана) но как сделать чтоб Вортекс посылку отправил…

LeonVS

Полетай так не парься, сперва в ручном режиме, садишься смотришь логи, самуль должен летать носом вперед, а не как у тебя он летал раньше, если все тип топ, пробуй РТЛ 😃
А по поводу дать пинка МТК… дык ублокс то же с пинка только запускался, надо поискать и заменить тот самый волшебный пендель на нужный для МТК 😃
Олег, а как ты меряешь перегрузку? Просто accel.z / 9.8 ? Или прогоняешь опять же через матрицу учитывающую наклоны и тд тп?

Syberian

длина вектора: корень из суммы квадратов. а плюс или минус рисовать спереди- по знаку aZ

Ustas69
alex-ber:

при старте в модуль кинуть МТК - строчку, модуль переключится в нужный режим…

Я тут вчера тоже парился с GPS. Есть программа miniGPS_1.4 от MTK позволяет выставить нужный бодрейт и частоту обновления и много других параметров, запоминает. Вроде работает.
code.google.com/p/ardupirates/downloads/detail?nam… в этом архиве есть

LeonVS
Syberian:

длина вектора: корень из суммы квадратов.

Олег, а можно поподробней для особо одаренных 😉? Корень из суммы квадратов всех осей акселя?

Усе получилось, спасиб 😃 Бум наблюдать что там на борту творится, а то не въеду в тему, на пене летает все тип топ, на графите горизонт уезжает в неизвестном направлении… даже если летать плавно и печально, не пойму пока в чем дело…

LeonVS

Правда при таком раскладе не известно по какому вектору перегрузка, ну да ладно, посмотрим вообще есть ли они, а дальше бум посмотреть оси по отдельности 😃
Слух еще вопросец по МАРГ, ты вроде этим заморачивался в свое время… Как компас оставить только для оси Z, а с тангажа и крена его внияние снять?

Syberian

Сегодня отлетал по точкам. В спешке забыл пульт от HDR-ки, поэтому кина не будет. Кому нужно, тот соберет и сам убедится, а общее представление можно получить из первого видео 😉
Полетная программа была такая:

  1. взлет
  2. лететь 500м на север относительно базы на высоте 100м
  3. лететь 500м на юг относительно базы на высоте 100м
  4. повторить с п.2 еще 2 раза
  5. === конец=== (вернуться домой)

Был легкий ветерок с востока порядка 2 м/с. Все действия, кроме посадки, в авторежиме. Крейсерская скорость выбрана экономичная: 50 кмч.
Взлет халявный. Щелкнул тумблером, поставил пульт на крышу тачки, самоль плавно навалил газа, отпустил и все, попер. Длина “впп” была выбрана 300м, поэтому самоль повалил по прямой на это расстояние, набрал “взлетные” 30м высоты и перешел к основной миссии.
Дальше не было ничего особенного: тупил в очки и периодически слышал “Waypoint reached!” и звук пролетающего над головой пепелаца 😃 Когда жужжание приблизилось и стало угрожающе снижаться (вернулся), снял с крыши пульт, вырубил миссию и плааавненько сел к ногам. В стаб-моде садиться - это сказка.

Выводы:

  1. авторежимы работают, в доработке не нуждается
  2. на ветер пох, летел бочком, но в точки попадал без сноса.
  3. FrSky гамно, на 500м уже пищать начал
  4. пульт от HDR надо привязывать цепочкой

Уточненные параметры для скайволкера:
гиро 0.4
RC 0.5
рол 0.8
пич 0.8
яв 0.8

  • и реверсы у меня по всем каналам отмечены.
    Вот типа и все 😃

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

LeonVS:

Корень из суммы квадратов всех осей акселя?

именно. Насколько я помню, в иксе норма 1G = 2048. В арду-хрени там вообще в попугаях. Перемудрили.

LeonVS
Syberian:

пульт от HDR надо привязывать цепочкой

😉)) Знакомо, я выставлял кнопками на самой писалке запись по таймеру когда пульт забыл 😃
Блин не ужели сложно было вывести кнопку врубающую запись…

Интересное наблюдение, если в МАРГ включить компас, уплывать при вращении в руке он начинает гораздо сильней 😃

alex-ber
LeonVS:

😉)) Знакомо, я выставлял кнопками на самой писалке запись по таймеру когда пульт забыл 😃
Блин не ужели сложно было вывести кнопку врубающую запись…

Интересное наблюдение, если в МАРГ включить компас, уплывать при вращении в руке он начинает гораздо сильней 😃

Леонид…
Есть вопросы по Ежеужу - если не против через Скайп завтра спишемся…
Коротко - поменял прошивку - залил из архива что ты дал, и сегодня даже полетать не получилось… Слови глюк… Хотя ГПС в ручном режиме (смотрел логи…) отработал на отлично…

[QUOTE=Syberian;3404642]Сегодня отлетал по точкам. В спешке забыл пульт от HDR-ки, поэтому кина не будет. Кому нужно, тот соберет и сам убедится, а общее представление можно получить из первого видео 😉
Полетная программа была такая:

  1. взлет
  2. лететь 500м на север относительно базы на высоте 100м
  3. лететь 500м на юг относительно базы на высоте 100м
  4. повторить с п.2 еще 2 раза
  5. === конец=== (вернуться домой)

Был легкий ветерок с востока порядка 2 м/с. Все действия, кроме посадки, в авторежиме. Крейсерская скорость выбрана экономичная: 50 кмч.
Взлет халявный. Щелкнул тумблером, поставил пульт на крышу тачки, самоль плавно навалил газа, отпустил и все, попер. Длина “впп” была выбрана 300м, поэтому самоль повалил по прямой на это расстояние, набрал “взлетные” 30м высоты и перешел к основной миссии.
Дальше не было ничего особенного: тупил в очки и периодически слышал “Waypoint reached!” и звук пролетающего над головой пепелаца 😃 Когда жужжание приблизилось и стало угрожающе снижаться (вернулся), снял с крыши пульт, вырубил миссию и плааавненько сел к ногам. В стаб-моде садиться - это сказка.

Выводы:

  1. авторежимы работают, в доработке не нуждается
  2. на ветер пох, летел бочком, но в точки попадал без сноса.
  3. FrSky гамно, на 500м уже пищать начал
  4. пульт от HDR надо привязывать цепочкой

Уточненные параметры для скайволкера:
гиро 0.4
RC 0.5
рол 0.8
пич 0.8
яв 0.8

  • и реверсы у меня по всем каналам отмечены.
    Вот типа и все 😃

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

Олег.
Есть вопросы - как лучше: сюда или в личку… (вопросы больше частного характера, но по теме…).

AlexSneg

Мне понравилось твое видео, тоже буду стремиться к таким же результатам. Голос - супер. Ты где-то нарезки взял? Не чиркнешь адресок источника, как время будет. Я себе потом такие же хочу сделать. Ты их в каком формате хранишь на флешке?

Syberian

Голос надерган из демонстрации: _http://www.naturalreaders.com/index.htm
Формат - PCM 8k моно
Только Пола не используй, я его занял 😉

AlexSneg
Syberian:

Только Пола не используй, я его занял

Афигенно! Так официально заявляю, Heather - моя, я ее занял. Никто ее не берет!

LeonVS

Гы, раз пошла такая пьянка может мне на перспективу то же чего нить занять 😄

Ustas69
Ustas69:

Есть программа miniGPS_1.4 от MTK позволяет выставить нужный бодрейт и частоту обновления и много других параметров, запоминает.

Нихрена не запоминает установки, чтобы по умолчанию заработал на 38400 пришлось перешивать модуль (правил .ini файл). Теперь работает с MPX STM32.
Теперь уже все работает, можно ставить на самолет.😃

alex-ber
Ustas69:

Нихрена не запоминает установки, чтобы по умолчанию заработал на 38400 пришлось перешивать модуль (правил .ini файл). Теперь работает с MPX STM32.
Теперь уже все работает, можно ставить на самолет.😃

Можно в лику подробней…
такая же байда… Не запоминает…