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

alexeykozin
techbv:

Кстати , гироскоп горизонт не показывает, он показывает насколько вы отклонились от первоначального положения. Для того и проводится калибровка.

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

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

techbv
alexeykozin:

гироскоп не показывает угол отклонения. это другой прибор делает - энкодер

Ну извините, я не стал писать про скорость - первую производную и ускорение - вторую производную. Хотя, конечно, можно было углубиться. Я инженер электромеханик и теорию автоматического управления ещё до ЕГЭ изучал.

alextr

А теоретически одну ось в горизонте можно и компасом увидеть?

Alex_from_Israel
raefa:

Нуу, началось… Ну давайте расскажите, как электронным гироскопом найти горизонт.

Что то это напоминает… как космические корабли бороздят просторы Большого театра!

alexeykozin
alextr:

А теоретически одну ось в горизонте можно и компасом увидеть?

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

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

cTc

В общем мучаю я очередной полетный контроллер. А именно контроллер от Валкеры X350 неПРО, который являлся программно урезанным Ардупилотом, на 25й Атмеге.

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

alexeykozin
cTc:

Будут какие-то предположения?

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

Shuricus
ssilk:

Сообщение от raefa
Гироскоп - фиксирует ускорение по осям, акселерометр - положение в пространстве.

Наоборот…)

Сергей, ну вы то не первый день замужем, и пишите такие вещи.

Прибор который отвечает за горизонт - это АКСЕЛЬ, АКСЕЛЬ, и только АКСЕЛЬ.

Никаких наоборот.

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

Смишно, что это обсуждают уже пол страницы. Это действительно букварь.

alexeykozin
Shuricus:

Прибор который отвечает за горизонт - это АКСЕЛЬ, АКСЕЛЬ, и только АКСЕЛЬ.

в ардупилоте горизонт считают исходя из показаний следующих датчиков:
-гироскоп
-аксель
-жпс
подсиcтема одной из функций которой является вычисление горизонта и углов по крену и птчу называется AHRS
посмотреть можно тут github.com/diydrones/ardupilot/…/AP_AHRS.cpp

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

// @Param: RP_P
// @DisplayName: AHRS RP_P
// @Description: This controls how fast the accelerometers correct the attitude
// @Range: 0.1 0.4
// @Increment: .01 AP_GROUPINFO(“RP_P”, 5, AP_AHRS, _kp, 0.2f)

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

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

the_fly
Shuricus:

Прибор который отвечает за горизонт - это АКСЕЛЬ, АКСЕЛЬ, и только АКСЕЛЬ.

Никаких наоборот.

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

Если в телефоне нет гироскопа - поворот экрана срабатывает кривовато, не четко. Да, с акселерометром определяют положение устройства, но настолько плохо, что для создания сферических панорам 360 они не пригодны
пример - LG PhotoSphere, Google PanoSphere
да и сомневаюсь я, что устройство в названии которого стоит ускорение - не будет замерять ускорение

Более того, вопрос - каким образом первые камеры кэнон имея на борту лишь гироскоп могли отвечать за горизонт?

macrokernel

Друзья, подскажите, это нормально что дома при закрытых окнах и дверях (сквозняка нет) коптер сносит в сторону?

Для проверки подлетел немного над кроватью, поднял сантиметров на 20-30, коптер улетает вперед со скоростью меньше 1 м/с на глаз. Результат повторяется в 100% случаев, сносит всегда вперед, может, еще немного в сторону. При наборе высоты коптер по горизонтали не смещается. Аппаратура показывает, что стик в центре. Радио, регуляторы, акселерометр и компас калибровал.

APM 2.6, рама F450, моторы SunnySky 2212 всё с Банггуда, пропеллеры боле-менее отбалансированы изолентой, развесовка нормальная, никакая сторона не перевешивает. Прошивка 3.2.

В поле даже при довольно сильном ветре в лоитере позицию держит хорошо.

Shuricus
the_fly:

в теме коптеров я совсем недавно.

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

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

alexeykozin:

в ардупилоте горизонт считают исходя из показаний следующих датчиков:
-гироскоп
-аксель
-жпс

Ну и Алексей, вы же понимаете, что для автолевела, ЖПС ну совершенно не нужен.

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

techbv

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

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 нужны для уточнения вектора скорости (ускорения), это особенно важно для больших скоростей