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

SergDoc
Shuricus:

Единственный датчик, который будет помнить где у коптера горизонт - это Аксель. И хоть убейся, гироскоп тут совершенно не причем.

Влезу:
нужен - да при интегрировании показаний возникает ошибка, но в краткосрочной перспективе показания очень точны, акселерометр же наоборот шумный и медленный и не справился бы с этой задачей, и может дать правильные показания только в долгосрочной перспективе (задушеный фильтром)
расчёт угла ведётся и по ДУС-ам и по акселю потом “смешиваются” в нужных пропорциях:
например: 0.9 - расчёт угла из показаний ДУС и 0.1 - расчёт угла из показаний акселя (можете назвать это корректировкой)…
и на последок вспомните прибор такой - Флайментор (в принципе и сейчас продаётся) - ставится на модель верталёта для новичков. Так вот у него всего лишь 3 ДУС enc03 те же что и в КУКе, но горизонт он держит намного дольше чем КУК (напомню в КУКе нет вообще расчёта углов там просто пропорция составлена от показаний датчиков), а тут он рассчитывает “горизонт”…
так что ни без одного ни без другого горизонта у вас не получится…
это надо в вопросы новичка перенести…

Shuricus

Спасибо Сергей, спасибо, что наконец подробно объяснили.

Только мне кажется, флайментор не горизонт удерживал, а текущее положение. Но и кук может очень долго его сохранять, при хорошей настройке.

Видимо софтом еще многого можно добиться. Но по прежнему, без акселя - горизонт невозможен. И если он плывет, то это в первую очередь проблема акселя, а не гир. Я так думаю 😃

alezz:

Гироскоп увы определяет не абсолютные отклонения, а угловую скорость. Зная время измерения мы можем определить угол относительно горизонта.

Не можем. Гиры не знают где горизонт. Им вообще пофиг. ЖПС к горизонту вообще никаким боком.

SergDoc
Shuricus:

Только мне кажется, флайментор не горизонт удерживал, а текущее положение.

так я его в кавычки и засунул )))
А вообще, применительно к Арду: наращивание мощи проца: PX4/Pixhawk, vrbrain… борды под линуксом, а алгоритм то тот же…

alezz
Shuricus:

Не можем. Гиры не знают где горизонт. Им вообще пофиг. ЖПС к горизонту вообще никаким боком.

конечно гирам пофиг, не пофиг контроллеру 😃 Для того чтобы он знал где горизонт и нужна калибровка ground level при подключении батареи (и при первом арминге). А дальше контроллер постоянно считает угол основываясь на данных о угловой скорости от гирика (основная информация в определении угла наклона) и данных о векторе ускорения от акселерометра (информация для компенсации ошибки). Данные от GPS нужны для уточнения вектора скорости (ускорения), это особенно важно для больших скоростей

SergDoc
alezz:

Для того чтобы он знал где горизонт и нужна калибровка ground level при подключении батареи (и при первом арминге).

они калибруются не для этого, датчики тоже капризные и ноль у них не всегда на месте (температура например), и данная калибровка проводится для того, чтобы проц знал нулевые показания датчиков и от них считал и не важно в каком положении будет находиться мосх, хоть вверх ногами, лижбы не трясся…
а где верх где низ мозх знает от акселя, и для нашего визуального представления кажется что это всё быстро, но на самом деле в полёте, да и для алгоритма в целом показаний акселя не достаточно…
короче это уже флуд по полной пошел 😦

Shuricus
alezz:

Для того чтобы он знал где горизонт и нужна калибровка ground level при подключении батареи (и при первом арминге).

Алексей, ну вы вааще не в теме 😃

И вы вообще не читаете, что тут пишут, и вообще я тоже перестаю с вами спорить.

Калибровка левела в виде ВНИМАНИЕ - акселя! делается один раз и навеки, дома через гуи, (до следующей калибровки). И НИКОГДА при подключении батареи или арминге.

alezz:

Данные от GPS нужны для уточнения вектора скорости (ускорения), это особенно важно для больших скоростей

Покажите код в Арду который данные ЖПС использует для расчета горизонта?

alezz
SergDoc:

они калибруются не для этого, датчики тоже капризные и ноль у них не всегда на месте (температура например), и данная калибровка проводится для того, чтобы проц знал нулевые показания датчиков и от них считал и не важно в каком положении будет находиться мосх, хоть вверх ногами, лижбы не трясся…

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

Shuricus

Я так всегда и делаю, братан.

И как я и сказал - ты вообще не хочешь читать и понимать, что тебе пишут:

SergDoc:

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

Физкульт привет!

alezz
Shuricus:

Калибровка левела в виде ВНИМАНИЕ - акселя! делается один раз и навеки, дома через гуи, (до следующей калибровки). И НИКОГДА при подключении батареи или арминге

наконец то, зачатки трезвого мышления! Аксель, да калибруется в мишн планнере. Левел задается при подключении батареи и арминге. Проведи эксперимент о котором я сказал выше.

Shuricus:

Покажите код в Арду который данные ЖПС использует для расчета горизонта?

жпс используется не непосредственно для расчета горизонта а для определения вектора ускорения, читай внимательно. А уже вектор ускорения используется для компенсации погрешности в расчете горизонта. 😃

Shuricus
alezz:

Левел задается при подключении батареи и арминге. Проведи эксперимент о котором я сказал выше.

Пипец. Полный пипец. Аксель и левел - это одно и тоже. Твои зачатки трезвого мышления, даже не в перспективе.

Посмотри мои видео на всякий случай. Я экспериментов уже обэксперементировался.

alezz:

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

КОД?

the_fly
alezz:

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

мы сперва тогда сразу и не поняли чего его постоянно несло в одну сторону. при том, что откалиброван он был давно на ровном месте

SergDoc
alezz:

а ты попробуй поставить коптер криво, например две ноги выше а две ниже

Нет я каждый раз когда взлетать собираюсь выношу уровень строительный лазерный проверяю всю местность в радиусе 1.5км на предмет отклонений от горизонта - выбираю площадку, ставлю коптер, ещё раз проверяю не криво ли он стоит и тогда подключаю батарейку…
ладно это лирическое…
по поводу старта под большим углом: то что коптер сваливается это не заслуга датчиков, а заслуга воздушной подушки образующейся под коптером, т.е. реально ставя коптер криво вы делаете ему “горку” из воздуха - вот по ней он и “скатывается” но взлетев на 0.5-0.8 метра выравняется…

the_fly:

при том, что откалиброван он был давно на ровном месте

не факт…
тут и неравномерная развесовка и моторы не по одной оси (ну в смысле не параллельно друг другу) и куча всяких разных причин… от температуры внешней и датчиков и т.д…
к слову у меня участок с уклоном весь градусов 8-10 и что мне по вашему под ноги коптера подкладывать что-то чтобы взлететь? поставил батарейку подключил дождался спутников - взлетел тестить gps-режимы, не дождался - погода не лётная, просто для души полетал…

Shuricus

У меня любимое взлетное место - бетонная плита тоже лежащая под углом градусов 10-15. На ней “калибровались” и прекрасно взлетали любые контроллеры. Только газку нужно наподдать сразу. Либо в мануале взлетать, что бы не так колбасило.

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

SergDoc

Давайте лучше поговорим за Ардукоптер…
у кого PX4/Pixhawk как ведёт себя лоитер с влюченным EKF? у меня как без него так на месте висит, как включаю дрейфует довольно сильно метров до 5… хотя последнее время чёт спутников 6-8 на улице ловил (MTK3329) погода не ахти, то снег то дождь…
да и разленился что-то в сам фильтр так и не залез поковырять…
в 3.2 взлёт в альтхолде и лоитере стал намного приятнее…
из старого:

alezz
SergDoc:

по поводу старта под большим углом: то что коптер сваливается это не заслуга датчиков, а заслуга воздушной подушки образующейся под коптером, т.е. реально ставя коптер криво вы делаете ему “горку” из воздуха - вот по ней он и “скатывается” но взлетев на 0.5-0.8 метра выравняется…

да, согласен мое заблуждение, признаю ошибку

Shuricus:

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

ну что я могу сказать. Действительно в случае с калибровкой уровня я ошибался, по крайней мере касательно АРМ. Но не ошибается тот кто ничего не делает, признавать свои ошибки это не признак отсутствия мышления, а скорее наоборот. Если бы вы в свою очередь признали что наговорили кучу глупостей (типа: у назы нет прогрева или для определения горизонта нужен только акселерометр) наше общение шло бы в более плодотворном русле. Но в итоге все равно разобрались, что уже не плохо. Точка.

alexeykozin

В нашем форуме много услышать много удивительных теорий о том как работает код ардукоптра
мне несколько странным кажется выдавать свои теоретические домыслы и выдавать это за истину в последней инстанции
“что именно так работает код ардукопера”.
Александр, спасибо вам за то что вы очень красочно описываете ваши эксперементы из которых вы построили свою теорию.
но человеку посмотревшему код по ссылке которой я привел эта теория выглядит
как для рыбы “теории рыбаков - почему сегодня рыба не клюет”

SergDoc:

у кого PX4/Pixhawk как ведёт себя лоитер с влюченным EKF?

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

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

Shuricus
alezz:

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

По порядку:

  1. У меня две назы, и обе без вармапа. Это факт. Какие претензии? Да, есть в вармапом. Но к сути спора это ни как не относится, потому что вы в принципе не понимаете что такое вармап и зачем он нужен.

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

И кто продолжает говорить глупости и опять оскорблять собеседника? Прекратите троллинг и не провоцируйте меня на этот флуд.

alexeykozin:

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

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

alexeykozin
Shuricus:

Если ЖПС скорость используется в Ардукоптере - это совершенно прекрасно. Там есть такой алгоритм, вы его видели?

а не говорил про скорость. я говорил про радиус поворота и скорость. из этих параметров считается центростремительное ускорение.
это ускорение сумируется с показанием 3д акселя чтобы найти надир. к надиру идет корректировка уровня системы ахрс через коэфициент который можно менять
(и даже занулить для эксперимента чтобы понять как работает авиагоризонт вообще без акселя)
ссылку на код ардукоптра в котором вычисляется горизонт я привел несколькими постами ранее. тап процитирован параметр который задает интенсивность корекции гироскопного уровня к показаниям акселя. внутри по ссылке можете посмотреть реализацию как вычисляются ускорения по жпс

Shuricus:

Если ЖПС скорость используется в Ардукоптере - это совершенно прекрасно. Там есть такой алгоритм, вы его видели?

приведу ссылку непосредственно на процедуру в которой матрицу векторов (горизонт) медленно доворачивают
это и есть коррекция дрифтов гироскопов
github.com/diydrones/ardupilot/…/AP_AHRS_DCM.cpp#L…

SergDoc
alexeykozin:

у него же и в настольном тесте в екф высота при резкой смене высоты сначала снижается потом в ноль тихонько.

у меня есть один такой барометр, я его забраковал, хотя и на вие и в арду(без EKF) держал высоту отсюда могу предположить, что для EKF надо крутить матрицу ошибок под свой GPS, т.е. сидеть с бубном и подбирать коэффициенты под свой модуль…

alezz

Последнее мое сообщение на тему аксель и гирик vs горизонт. Напомню с чего все началось. Проблема была в следующем:
подключаю к квадрику батарею, делаю арминг (gps не используется), взлетаю. Примерно через 2 минуты квадрик начинает сильно тащить вперед, наклон рамы не менее 10 градусов. Посадка, дизарм, арм, взлет результата не дает - коптер все так же тянет вперед. Как выяснилось позже, перекалибровка акселя в MissionPlanner без отключения батареи тоже не дает ни какого результата - коптер все так же тянет вперед (т.е. виноват не аксель). Но если передернуть батарею все приходит в норму и квадрик висит замечательно. Ставлю вторую батарею подряд - летает без проблем. И так до тех пор пока коптер не постоит часок, тогда все начинается заново. Т.к. такая проблема возникла после прихода холодов, летом было все ок, я предположил, что причина в не особо удачном экземпляре MPU-6000 в моем коптере, который нуждается в прогреве, и тут началось…

Что было сделано сегодня. Т.к. в том что в АРМ для определения горизонта используется и гирик и аксель, в этом надеюсь уже ни у кого нет сомнения, решил посмотреть как ведут себя параметры связанные с их калибровкой:

То что плывет именно гирик по оси Y (квадрик тянет четко по одной оси - вперед) видно не вооруженным глазом. Теперь немножко подробней по скриншоту:

  1. Подключаю батарею к коптеру стоявшему без питания больше часа, GYROFFS_Y=-0.139
  2. Арминг, GYROFFS_Y=-0.118 Прекрасно видно что при первом арминге гирик перекалибровался (переписывались оффсеты), значение оффсета заметно упало (по абсолютной величине). Летаю примерно 3 минуты, коптер начинает заметно тянуть вперед.
  3. Передергиваю батарею. Перекалибровка GYROFFS_Y=-0.09 Заметно, что гирик ведет себя по другому чем при первом подключении на холодную (см п.1)
  4. Арминг GYROFFS_Y=-0.072 Снова произошла перекалибровка. Летаю примерно 3 минуты, коптер висит замечательно, ни куда не тянет
  5. Посадка, без передергивания батареи дизарм/арм, GYROFFS_Y=-0.072 Видно что ни какой перекалибровки не произошло т.к. значения ни по одной из осей не изменилось.
  6. Предергиваю батарею GYROFFS_Y=-0.09 снова видно что значение подросло (по абсолютной величине), но гирик ведет себя как прогретый

Итого. Бесспорно, гироскоп активно участвует в определении горизонта в АРМ. Передергивание батареи ни как не влияет на аксель т.к. он калибруется в MissionPlanner (нажимаем кнопку, горизонт, кладем на правый бок, кладем на левый и т.д.). Гироскоп перекалибровывается при каждом подключении батареи и при первом арминге, при этом насколько ровно установлен коптер значения не имеет (здесь было мое заблуждение). Поэтому всем у кого есть проблема с уплывом гироскопа рекомендую прогреть его, просто подождав перед взлетом пару минут. В принципе при полетах с gps это происходит само собой (т.к. мы ждем фиксацию какое-то время), а вот при полетах без gps нужно обратить внимание. Конечно, эта проблема касается далеко не всех плат, у меня есть второй АРМ на котором все четко без прогревов, но она существует.

Jade_Penetrate

Логично, мозги смотрят и на абсолютное ускорение (силу притяжения) и на угловую скорость которую можно получить из гироскопов. Если бы горизонт формировался только по акселерометру, квадрик бы дико кренило при боковых ускорениях, порывах ветра и так далее. Если бы использовались только гироскопы, не было бы абсолютного значения углов наклона, и горизонт бы не выравнивался, или со временем уплывал.
По этим данным в некоторых пропорциях и вычисляется положение, вот и получается что у вас контроллер видит что аппарат вращается, и делает крен, пытаясь его остановить, но этот крен ограничен показаниями акселерометра. Кстати, попробуйте быстрые маневры или акро без авто левелинга, с осторожностью, естественно.

Hopper

У меня такая же проблема с гироскопом на подвесе.
В холодную погоду он разогревается от камеры и даёт смещение.

Alex_from_Israel

Прошу помощи! Кто нибудь юзает X8? Запутался с порядком подключения моторов. Вернее, есть ли изменения в порядке подключения на последней прошивке? В инструкции против часовой стрелки верхние 4 начиная с правого переднего мотора 1-2-3-4, нижние начиная с левого переднего против часовой стрелки 5-6-7-8.
Это правильно? Контроллер АРМ 3.1 мини.

На самом контроллере приклеена бумажка с порядком моторов 1-2-3-4-5-6-7-8 ±. Почему то в реале получается, как у Х4 с чередованием. 1правый передний верхний, 2 левый задний нижний, 3 левый передний верхний, 4 правый задний нижний.
Под бумажкой порядок моторов 8-7-6-5-4-3-2-1 ±.

ssilk
Alex_from_Israel:

Под бумажкой порядок моторов 8-7-6-5-4-3-2-1 ±.

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

koder76

Вот за это спасибо! А то я ни как догнать не мог почему у меня моторы на 5 6 7 8 работают. Думал глюк, а это китайцы на коробочке перепутали оказывается 😃