High end Low cost Quatrocopter

alexmos
igor_v_t:

Компас почти у всех 5883L. А к нему у меня вопросы. Если взять DCM матрицу, то с нормальными датчиками при повороте коптера с допустимой угловой скоростью по любой оси матрица мгновенно выдает текущее состояние (углы по осям). С магнетометром если вращать в горизонтальной плоскости, то более менее, а по другим осям смотреть на результаты грустно

В мултиви сейчас компас работает удовлетворительно, гляньте как там сделано. Я с компасом не разбирался ещё детально, т.к. GPS пока не планирую, а удержание ориентации по YAW он выполняет с незначительным дрейфом, что не сильно страшно. На форуме multiwii.com есть тема, где человек добился существенно более высокой точности при калибровке, говорит что достаточно для GPS. Может появится в следующей прошивке.

igor_v_t:

А по углу вращения вокруг вертикальной оси других данных нет. И гироскопы подстраивать не по чему.

По другим осям он и не нужен, есть акселерометр. Компасс только для YAW.

igor_v_t:

По барометрам- ВМР085 дает большие шумы и высота, рассчитанная по баро гоняет коптер по вертикали и точного удержания не получить. Усреднение (медианный фильтр) не очень здорово, так как сигнал идет с запозданием. Полгода тому, я возился с этой проблемой , но бросил потому что в конечном итоге за 10-20 минут высота измеренная по баро уползала на 2 метра. Поэтому поставил сонар - сначала МВ 1200, а потом МВ1260 и до восьми метров от земли начал мерять с точностью до нескольких сантиметров. С появлением 5661 к этой проблеме вернулся.

Да, на прошлой неделе тоже с ним возился - выдает ужасные результаты, но у меня плавает с выключенными двигателями не так страшно, ± 0.5м. Я написал PID-регулируемый фильтр с подключением гир и акселерометра для опеределния точного ускорения, скорости и смещения по Z, а также PID-регулятор высоты. Но пока опробовать на практике не могу, только в теории + понаблюдать в GUI. Если то, что показывает GUI, правда, и оно сохранится с включенем моторов, то барометр будет работать очень неплохо, даже такой хреновый как BMP085. А с хорошим барометром и сонар не нужен. Если вкратце, то что я делаю, позволит:

  • держать высоту с любым углом наклона коптера (до 60гр.) и с любыми горизонталными ускорениями и перемещениями
  • агрессивно держать нулевую скорость (то, что так любфт демострировать, резко пихая коптер вниз. Хотя в полете такие возмущения крайне маловероятны)
  • маневрировать по высоте, не выключая режим удержания высоты.
  • автоматически подстраиваться под “уплывания” акселя по оси Z (я такого у себя не видел, но многие жалуются)

Сонар я тоже планирую пркрутить, правда недорой за 4$. (он меряет до 4 метров и довольно глючный, плохо ведет себя когда теряет сигнал - так что не знаю, будет ли от него польза). Напишите подробней по своему опыту и результатм - насколько сонар чувствителен к наклонам, к поверхности, и есть ли видео его работы на удержание высоты?

igor_v_t:

Последнее решение линеаризовать характеристику регулятора

Поясните подробней суть проблемы и ваше решение.

У вас коптер летает по программе. Программа зашита в мозги или удаленно передается? Если зашита то как обновляется? И я так понял у вас GPS? Иначе отследить положение невозможно

Вот ролик полугодичной давности от разработчика multiwii:

Так что у нее со стабилностью тоже все в порядке 😃

igor_v_t

Почитаю даташит на альтернативу ВМР085, но там может быть ньюанс со скоростью реагирования на изменение высоты. За подсказку спасибо.
По сонару - в матрице DCM [2][2] косинус углла отклонения от вертикали. На него умножается результат измерения.
Программа автопилота в памяти. Точки записываются в ЕЕРROM в виде смещения от точки старта по горизонтали и вертикали, высоты и скорости полета (чтобы не носился как угорелый).
Вот тут полетали при ветре и под дождиком. Полет сначала в полуавтомате- высота по сонару, по горизонтали держит ЖПС, а стиками изменяем точку удержания. С 45 сек пытаемся лететь в автомате. (газ в автомате 1450 мкс) При полете к первой точке коптер должен был подняться на 5 метров. Ветром его швырнуло вверх, коптер сбросил газ на -60 мкс и интегральная составляющая чего-то добавила и в результате регулятор начал работать в нелинейной области. Коптер остался цел. Один винтик пострадал. При более слабом ветре не падал, хотя раскачивался.

Магнетометр в МультиВии посмотрю и отпишусь.

igor_v_t

Оказалось увлекательное занятие 9 осей правильно взаимно расположить. В результате магнетометр начал работать с ошибкой меньше 15 град при наклонах. А при хороших гироскопах и акселерометр не очень нужен.😃

ArduIMU_V3_8.rar

mahowik
igor_v_t:

интегральная составляющая чего-то добавила и в результате регулятор начал работать в нелинейной области

takie kosyaki bivayut iz za perepolneniy peremennih… po krayney mere v multiwii v PID regulyatorah mnogo gde ispolzuetsya int16_t… potomu nado ostorozhno i vnimatel’no…

odin v odin poluchil kuvirok imenno iz-za perepolneniya peremennoy v PID regule…

igor_v_t
mahowik:

takie kosyaki bivayut iz za perepolneniy peremennih… po krayney mere v multiwii v PID regulyatorah mnogo gde ispolzuetsya int16_t… potomu nado ostorozhno i vnimatel’no…

На этом коптере стоят у меня перемотанные DT750 с 1000 об/вольт, поэтому регуляторы работают на начале характеристики (газ висения 1450). До этого с этой же электроникой летал на другом коптере , где газ висения был 1560 мкс и проблем не было. После линеаризации проблемы исчезли. К тому же поставил ограничение снизу, чтобы моторы не останавливались

alexmos
igor_v_t:

По сонару - в матрице DCM [2][2] косинус углла отклонения от вертикали. На него умножается результат измерения

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

А полет по точкам - это уже очень сложно, думаю тут десяток крашей при отладке гарантирован. Но я пока не понимаю какя польза от того что коптер научится летать по программе?

mahowik
alexmos:

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

tut da, vse pravilno… rashodyaschiysya luch… ya eto tozhe zametil, cho nakloni do ~20-ti gradusov ne vliyaut na pokazaniya sonara… + videl podobnuyu korrektirovky v arducopterNG, no po defoltu ona otkluchena vidimo po etoy zhe prichine

alexmos:

А полет по точкам - это уже очень сложно, думаю тут десяток крашей при отладке гарантирован. Но я пока не понимаю какя польза от того что коптер научится летать по программе?

dlya menya aktualen rezhim ALYARM! GO HOME! 😃
potomu GPS budu brat’ kak min dlya etogo…

igor_v_t
alexmos:

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

А полет по точкам - это уже очень сложно, думаю тут десяток крашей при отладке гарантирован. Но я пока не понимаю какя польза от того что коптер научится летать по программе?

Дотошно как меряет сонар не исследовал. Но при полетах над асфальтом с лежащим полицейским на полицейским подпрыгивает. При наклонах не подпрыгивает. Второе 20 градусов наклона для полета в автомате мало. У меня один раз коптер сдуло несильным ветром и час на поле искал. У меня разрешенный угол для управления автоматом ± 45 градусов и до 50 по диагонали.
При отработке автомата падал не меньше сотни раз, но с маленькой высоты. Поломано десяток винтов и несколько лучей.

mahowik:

dlya menya aktualen rezhim ALYARM! GO HOME! 😃
potomu GPS budu brat’ kak min dlya etogo…

Между нормальным возвратом домой и полетом в автомате практически нет разницы. Вместо дома подставляете путевые точки. Одно из применений автомата - видеосъемка. Коптер летит по заданной программе, а пилот может немного подруливать и сосредоточиться на видеосъемке.

alexmos

Ого, если для видеосъемки - то тут надо делать среьезно а это как минимум продвинутый интерфейс, чтобы в полевых условиях с 3D привязкой к местности заводить программу… Да и контроль с земли нужен цифровой. У меня в далекой перспективе есть такая цель, но для нее ардуино даже не планировал, как минимум Android (его можно “посадить” на борт пассажирром, там нормальный язык программирования, цифровые беспроводные интерфейсы, камера, GPS, мощный проц - в общем все что надо за смешные деньги).

igor_v_t
alexmos:

Ого, если для видеосъемки - то тут надо делать среьезно а это как минимум продвинутый интерфейс, чтобы в полевых условиях с 3D привязкой к местности заводить программу… Да и контроль с земли нужен цифровой. У меня в далекой перспективе есть такая цель, но для нее ардуино даже не планировал, как минимум Android (его можно “посадить” на борт пассажирром, там нормальный язык программирования, цифровые беспроводные интерфейсы, камера, GPS, мощный проц - в общем все что надо за смешные деньги).

В конечном итоге и нормальный сервис должен быть.
Но сначала коптер должен хорошо летать. Для этого планирую пока использовать платформу Arducopter (APM 1, APM 2). Пока что на АРМ 1 это выглядит так kitka-ua.blogspot.com . То есть управление коптером из спорта превращается в обычную рутину. Следующий шаг - улучшение поведения аппарата - плавные реакции и не в ущерб скорости (пока будет АРМ 2). А потом действительно процессор помощнее и какой нибудь Линукс и алгоритмы посерьезнее и уже к этому удобный интерфейс. Но самому зто сделать нереально, успеть бы освоить то что народ делает.

А на текущем проектике разбираюсь с новыми датчиками.
Вчера смотрел акселерометр. Шумит он сильно. Но с учетом фильтрации на конечный результат это влияет слабо. Использовать данные акселя для фильтрации барометра наверно получится, но простых решений не видно.
Хотелось бы акселерометр и магнетометр получше.

alexmos

Вот именно - все делать самому времени не хватит. Ещё и основаня работа за компом, если бы на заводе работал - было бы проще, так как смена деятельности. А тут вроде и время свободного много после работы - но за компом его не проведешь 😦

7 days later
igor_v_t
igor_v_t:

Барометр нашелся.
www.ebay.com/itm/260891831092

Приехал в четверг барометр MS5611. Сегодня уже прилепил . Вроде уже и меряем давление , температуру и высоту. Пока немного глючит, но с этим потихоньку разберемся.
Допишу еще один вход от приемника для переключения режимов, чуть потестирую и выложу. Высота шумит в пределах ± 0,3 метра. Считывание с частотой 100 Гц. Так что есть перспектива удержания по высоте в пределах 10 см с баро. Повозимся еще с акселерометром и на этом наверно с этой железкой закончим. Потеплеет, полетаем.

igor_v_t

Настройка передатчика Turnigy 9X
В результате настройки на 6 выходе приемника получаете 6 значений при манипуляции переключателями ГИРО и трехпозиционным
выход 5 не используется.

Настройки переключателя Turnigy 9X
Режим
0- 1000
1- 1400
2- 1800
3- 1200
4- 1600
5- 2000

PIT/CU
**** N- 20%
IDE1- 60%
IDE2- 100%

THRO HOLD
STATE – IHH
HOLD POS – 000

CH5 – HOV THRO
CH6 – NULL
CH7 – PIT TRIM
CH8 – THRO HOLD

GYRO
STATE - ACT
UPRATE – 000
DNRATE - +40
MODEL – STD

MIX1
STATE – ACT
MASTER –GEAR
SLAVE – PIT
UPRATE – -100
DNRATE - +100
SW - ON

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

ArduIMU_V3_10.rar

mahowik
igor_v_t:

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

в мультивии вроде как рабочий драйвер MS5611… посмотрите там…

rcopen.com/forum/f123/topic265409/24

igor_v_t
mahowik:

в мультивии вроде как рабочий драйвер MS5611… посмотрите там…

rcopen.com/forum/f123/topic265409/24

Да у меня тоже рабочий. поменял во втором слагаемом int на long " D = ((((long)buff1[0]) << 16) | (((long)buff1[1])<< 8) | buff1[2] ); " и вроде нормализовалось. Я взял из Арду алгоритм обработки и переписал под И2С. Там он точно работает. Осталось еще дописать коррекцию на температуры ниже 20 град. Но это не к спеху.
За Вашей темой слежу, но пока не понимаю до конца, обработку данных акселерометра при наклонах.

igor_v_t

Вписал стабилизацию по высоте от бародатчика и режим удержания высоты.
Правильно наконец вписал вертикальную составляющую ускорения по данным акселерометра.
// Ac_0 = - (float) accel_Y*DCM_Matrix[0][0] + (float)accel_X*DCM_Matrix[0][1] + (float)accel_Z*DCM_Matrix[0][2];
// Ac_1 = - (float) accel_Y*DCM_Matrix[1][0] + (float)accel_X*DCM_Matrix[1][1] + (float)accel_Z*DCM_Matrix[1][2];
Ac_2 = (- (float) accel_Y*DCM_Matrix[2][0] + (float)accel_X*DCM_Matrix[2][1] + (float)accel_Z*DCM_Matrix[2][2])*0.204035; // см/сек*сек
Заодно есть составляющие горизонтального ускорения и можно пытаться стабилизироваться при порывах ветра. Вот график - изменение высоты в сантиметрах- красная изменение газа - синяя в микросекундах

ArduIMU_V3_14.rar

igor_v_t

Этот проект начат как путь перехода на АРМ 2. При переходе на АРМ 2 возникло ряд вопросов.
Вопрос к Mission Planner . Нужен ли он мне?
Есть альтернатива:

  1. Перейти на Arducopter 2.3-2.4 и доводить его.
  2. Продолжать развивать собственный проект на ArducopterNG, реально летающий, с нормальным функционалом, но с интерфейсом командной строки.
    В первом случае получаю продвинутый интерфейс, но в ущерб скорости расчета и как результат в ущерб качеству полета. Основные алгоритмы полета считаются за 3-4 мсек. Добавленный интерфейс увеличивает время до 9 мсек.
    Во втором случае имею интерфейс в виде командной строки, гемморой по описанию новой платформы АРМ 2, адаптацию ПО под нее.
    (При полете по точкам мне как то спокойнее задавать относительные координаты, с точки зрения возможной ошибки и считаю, что удобство ткнуть в карту для экономии времени при програмировании не стоит усилий в поисках коптера залетевшего не туда.)
    Поэтому вопросы :
  3. Для чего нужен Mission Planner и кто использует его возможности? И какие возможности имеют ценность для Вас?
  4. Кто пользуется возможностью настройки Пидов в полете?
  5. Кто летает с автопилотом и как на Ваш взгляд удобнее программировать путевые точки.