А давайте обсудим Arducopter - APM

igor_v_t
Alex-13:

У меня рама вот такого вида, разместил плату АП вперед 8-10 см от пересечения лучей На сколько это критично?

Скорее всего не очень, так как по акселю реакция медленная и должно усреднится., но просто пробовать надо. Так сложно сразу посчитать. И влияет вращение, а там скорости небольшие и больших ускорений по оси Z не ожидается.

Alex-13

Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу

igor_v_t
Alex-13:

Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу

Может быть. Пид подкрутить можно(уменьшить который STAB, если экстремальная реакция не нужна. А так по теории лучше по центру. Правда может и дифф. составляющая помочь. Если да то больше ничего делать не надо.

Alex-13

Форма рамы нравится не хочется крест делать Попробую подкрутить PID если не получится то поставлю на центр

igor_v_t
Alex-13:

Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу

Вообще эту асиметрию можно учесть в алгоритме, но сначала нужно проверить симметричный ли сам коптер. У меня такая проблема с разными Пидами по осям возникала, когда писал свой микшер на 6-ку. Один регуль барахлил и долго возился с проблемой.

Alex-13

К сожалению я в програмировании полный “дуб”

igor_v_t
Alex-13:

К сожалению я в програмировании полный “дуб”

Вы же используете исходник для программирования микросхемы. Написан он простым языком. Далее Ваша проблема связана с изменением составляющей ускорения по оси Z, измеренная акселерометром. От вращения с угловым ускорением (величина пропорциональная производной от угловой скорости) изменяется составляющая ускорения по оси Z на величину углового ускорения умноженную на радиус. Если это понятно то ищите соответствующие переменные в программе и вычитаете Вашу добавку. И никакого програмирования.

Syberian
Sir_Alex:

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

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

Просто замечал такую фишку, когда зимой летаешь, 3.3В стаб греется, и когда треха стоит на земле, температуру показывает +15, винты включил - постепенно до -6 доплывает, в результате баровысота становится -30. После посадки все повторяется.

Еще всякие вукенги используют акселерометр для вертикальной стабилизации - тот самый трюк на видео, когда пихают квад снизу или сверху, а он как мячик назад отскакивает.
Насколько я помню, в 2.0 эта стабилизация вообще отключена.

alexeykozin

без термокоррекции баровысоту вообще нельзя будет использовать,
возможно ошибка при портировании функции термокоррекции? у производителя есть даташит по апи, там сишный код
я даже навсякий случай проверил правильно ли запрс давления осуществляется, чтоб с ультравысокой точностью - оказалось верно, непонятно зачем вычисления перед запросом, можно было бы тупо константу посылать

наверное я другую версию смотрел, сейчас смотрю библиотеки 2.1 там константы

ступил, в пятницу проверял код бошевского бмп085,
тут константы

igor_v_t
Syberian:

Может, вообще температуру выбросить? Т.е. для навигации применять высоту ЖПС, а для удержания высоты, как более быструю величину - барометр? Тупо его сырые показания, безо всяких вычислений.
Еще всякие вукенги используют акселерометр для вертикальной стабилизации - тот самый трюк на видео, когда пихают квад снизу или сверху, а он как мячик назад отскакивает.
Насколько я помню, в 2.0 эта стабилизация вообще отключена.

Высота ЖПС имеет большую ошибку. Вообще с 085 барометром точность порядка 2-х метров, а + сонар и летает нормально. Проблема только на переходе на уровне 8 метров. Пытался я использовать акселерометр для вертикальной стабилизации около земли, но не получилось, поэтому при ручном газе на малых высотах добавил в газ вертикальную скорость с коэффициентом из данных сонара с ограничением +40 -20 и перестал проваливаться при маневрах около земли.
Вообще для плавного полета ПИДы снижать нужно и тогда летает плавненько. Я свой настраивал на предельные режимы для полетов при ветре , но при этом немного дерганный становится.

alexeykozin
igor_v_t:

…Пытался я использовать акселерометр для вертикальной стабилизации около земли, но не получилось…

…Вообще для плавного полета ПИДы снижать нужно и тогда летает плавненько. Я свой настраивал на предельные режимы для полетов при ветре , но при этом немного дерганный становится…

я много думал как “наза” так лихо может стабилизировать любую модель не делая ее дерганной и четко стабилизируя,
однозначно при толчках используется акселорометр. Но брать разницу проекции на перпендикуляр к земле текущего ускорения ( сумма вектора ускорения + вектора силы тяжести) не так просто. это не проекция на ось z акселя потомучто вертоль всегда в наклоне, нужно вычислять перпендикуляр земли по гироскопам, и брать на него проекцию векторов ускорения акселя (x^2 + Y^2 + Z^2) = ускорение_силытяжести^2 + ускорение_модели^2.
в результате получаем значение ускорения к перпендикуляру земли, дальше просто иходя из ускорения и времени получаем вертикальную скорость, исходя из скорости и времени вертикальный путь.
что касается второго пункта назы и недерганность и четкость в любой модели - тут наверное еще автокалибровка пидов, видимо отслеживает как модель отреагировала на предыдущее действо и если неадекват прибавляет почутьчуть воздействие

igor_v_t
alexeykozin:

я много думал как “наза” так лихо может стабилизировать любую модель не делая ее дерганной и четко стабилизируя,
однозначно при толчках используется акселорометр. Но брать разницу проекции на перпендикуляр к земле текущего ускорения ( сумма вектора ускорения + вектора силы тяжести) не так просто. это не проекция на ось z акселя потомучто вертоль всегда в наклоне, нужно вычислять перпендикуляр земли по гироскопам, и брать на него проекцию векторов ускорения акселя (x^2 + Y^2 + Z^2) = ускорение_силытяжести^2 + ускорение_модели^2.
в результате получаем значение ускорения к перпендикуляру земли, дальше просто иходя из ускорения и времени получаем вертикальную скорость, исходя из скорости и времени вертикальный путь.
что касается второго пункта назы и недерганность и четкость в любой модели - тут наверное еще автокалибровка пидов, видимо отслеживает как модель отреагировала на предыдущее действо и если неадекват прибавляет почутьчуть воздействие

DCM[2][2] это косинус между вертикалью и вертикальной осью. Когда предельный угол по GPS у меня стоял 10 град летал плавно, а при 45 срывается с места и летит в новую точку как чумной. Поэтому может не ПИДы а ограничения подстраивать надо и тогда будет плавность, а с ограничениями проще получится так как если ПИД сильно снизить (в 2 раза) стабилизироваться плохо будет. По высоте на малых высотах сонар держит ±10 см. Если ПИД уменьшить точность уменьшится плавность повысится и с интегральной составляющей поиграться надо, но до этого руки не дошли.

Sir_Alex

Прикольно. Кстати, вроде в последних прошивках Арду, что то допиливали, что бы лучше вел себя в Windy погоду. (Еще были видео, когда батарейку подвешивали к одному лучу).

И еще, я тут подумал, раз уж можно использовать аксель для льт холда… то почему нельзя использовать его для Лоитер режима? Ведь с его помощью можно детектить, сместился в реальности коптер или нет (когда показания GPS скачут)

alexeykozin

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

Timmy

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

alexeykozin
Timmy:

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

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

Dokz

На лодках для этой цели штурманов возют, а не только аппаратуру. И невязку штурмана выбирают по конкретным ориентирам- по глубене или стуку о берег, а не в начале и в конце боевой, всплыв не у того конца причала. Да и оружие позволяет чуть ошибиться (кстати и оно сверялось по светилам). Это ещё один ответ на- нафига козе ARM с его избыточной возможностью. Чтоб ошибки позиционирования своими силами исправлять по окружающей среде.

alexeykozin

вот какие мысли поповоду почему у ардукоптера (и ардупланера тоже) если сильные пиды - осцилирует слабые не обеспечивает четкий горизонт.
есть пиды которые определяют усиление того или иного сигнала, возьмем стабилизацию по крену
допустим пид стабилизации крена P определяет пропорцию при каком отклонении от нормы насколько сильное должно быть воздействие на баланс моторов в пропорции к имеющемуся крену,
есть есть еще два пида по крену - как я понимаю которые определяют кривую где выше усиление в верхней части или при близости к нулевой отметке. Тоесть вся завязка на отклонении от горизонта и некотором значении передаваемом на регули / сервы
совершенно не учитывается момент инерции.
вот ситуация если
квадрокоптер уклонился на 1 градус по крену то надо дать газку одному мотору и чуть сбавить на другом
этаже ситуация, уклон составляет тот же 1 градус но модель имеет вращательный момент по крену в нужном для стабилизации направлении - в этой ситуации пора бы сделать обратную отработку на парирование инерции
этого пид-система не предусматривает,
собственно пока модель уклонена влево стабилизация будет давать сигнал правее, чем ближе к нормали тем меньше но все равно в этом же направлении, а парировать надо начинать раньше, учитывая скорость исправления ошибки рассчитывая противодействующее усилие.

видимо это есть в назе и нет в ардупилоте

igor_v_t

Вывел на порт барометр и посмотрел АРМ 1 и АРМ 2 на столе. Практически 085 и 5611 шумят одинаково и меряют одинаково. Изменение высоты на 0,5 м (длина кабеля) видно при усреднении по 10 измерениям. Так что улучшений при переходе на новую плату в части баро не предвидится. Где то народ уже писал об этом.

igor_v_t

Еще немного повозился. Вписал чтение баро в быстрый цикл. То есть пытаемся читать быстро (200 Гц) усредняем по 10 измерениям. Результат таков, что баро не успевает, но порядка 50 Гц получить может удастся. В результате размах шумов 50 см. Подъем на высоту 70см четко виден, но с течением времени данные ползут