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

the_fly
Shuricus:

Вот именно, при чем тут телефон.
Я уже обьяснял. Для полета коптеру МИНИМУМ необходим контроллер с гироскопами по трем осям. Но никакого автолевела при этом не будет. Тем не менее, без акселя - он будет отлично летать!
Что бы было выравнивание в горизонт, необходимо добавить акселерометр.

Летать нужно было на Куках, что бы это знать, а не на мобильных телефонах.

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

С Вашего поста выше - четко сказано, что акселерометр помогает, а не является единственным кто это решает.

Shuricus:

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

techbv:

Зачем тогда гироскоп

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

techbv

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

alezz

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

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…