А давайте обсудим Arducopter - APM
В общем мучаю я очередной полетный контроллер. А именно контроллер от Валкеры X350 неПРО, который являлся программно урезанным Ардупилотом, на 25й Атмеге.
Теперь ближе к делу. У контроллера не было USB порта, USB порт добавили.
Бутлодер благополучно заливается, прошивка тоже нормально заливается и верифицируется.
Но вот подсоединиться ни в терминале, ни по мавлинку не хочет.
Будут какие-то предположения?
Будут какие-то предположения?
к примеру теоретически схема контроллера могла быть изменена. датчики на других пинах итд.
под другую схему должна быть другая прошивка.
если это так то результат логичен.
Сообщение от raefa
Гироскоп - фиксирует ускорение по осям, акселерометр - положение в пространстве.Наоборот…)
Сергей, ну вы то не первый день замужем, и пишите такие вещи.
Прибор который отвечает за горизонт - это АКСЕЛЬ, АКСЕЛЬ, и только АКСЕЛЬ.
Никаких наоборот.
Вы все забываете одну простую вещь - аксель имеет две функции, и не только измеряет ускорение, но и положение в пространстве.
Смишно, что это обсуждают уже пол страницы. Это действительно букварь.
Прибор который отвечает за горизонт - это АКСЕЛЬ, АКСЕЛЬ, и только АКСЕЛЬ.
в ардупилоте горизонт считают исходя из показаний следующих датчиков:
-гироскоп
-аксель
-жпс
подси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)
в частности этот параметр отвечает за скорость корректировки гиролевела по показаниям акселя. чем больше значение тем меньше верим гироскопам и больше акселю
крайне не советую его менять для пробы в полете. в дизарме корректировка работает быстрее за счет дополнительного множителя, в заармленном коптере работает только этот коэф.
у самолетов проблема в том что в виражах на вектор акселя действуют сильные центробежные ускорения
а во время пуска с катапульты вектор отклоняется в сторону хвоста
режим виража корректируют из расчета радиуса поворота и скорости по жпс
режим пуска с катапульты по продольной оси акселерометра
Прибор который отвечает за горизонт - это АКСЕЛЬ, АКСЕЛЬ, и только АКСЕЛЬ.
Никаких наоборот.
в теме коптеров я совсем недавно.
но телефоны с гироскопом - четко регистрируют положение устройства
телефоны с акселерометром - четко регистрируют шаги.
Если в телефоне нет гироскопа - поворот экрана срабатывает кривовато, не четко. Да, с акселерометром определяют положение устройства, но настолько плохо, что для создания сферических панорам 360 они не пригодны
пример - LG PhotoSphere, Google PanoSphere
да и сомневаюсь я, что устройство в названии которого стоит ускорение - не будет замерять ускорение
Более того, вопрос - каким образом первые камеры кэнон имея на борту лишь гироскоп могли отвечать за горизонт?
Друзья, подскажите, это нормально что дома при закрытых окнах и дверях (сквозняка нет) коптер сносит в сторону?
Для проверки подлетел немного над кроватью, поднял сантиметров на 20-30, коптер улетает вперед со скоростью меньше 1 м/с на глаз. Результат повторяется в 100% случаев, сносит всегда вперед, может, еще немного в сторону. При наборе высоты коптер по горизонтали не смещается. Аппаратура показывает, что стик в центре. Радио, регуляторы, акселерометр и компас калибровал.
APM 2.6, рама F450, моторы SunnySky 2212 всё с Банггуда, пропеллеры боле-менее отбалансированы изолентой, развесовка нормальная, никакая сторона не перевешивает. Прошивка 3.2.
В поле даже при довольно сильном ветре в лоитере позицию держит хорошо.
в теме коптеров я совсем недавно.
Вот именно, при чем тут телефон.
Я уже обьяснял. Для полета коптеру МИНИМУМ необходим контроллер с гироскопами по трем осям. Но никакого автолевела при этом не будет. Тем не менее, без акселя - он будет отлично летать!
Что бы было выравнивание в горизонт, необходимо добавить акселерометр.
Летать нужно было на Куках, что бы это знать, а не на мобильных телефонах.
в ардупилоте горизонт считают исходя из показаний следующих датчиков:
-гироскоп
-аксель
-жпс
Ну и Алексей, вы же понимаете, что для автолевела, ЖПС ну совершенно не нужен.
Единственный датчик, который будет помнить где у коптера горизонт - это Аксель. И хоть убейся, гироскоп тут совершенно не причем. Он нужен, для того что бы оставалась мгновенная стабильность коптера, которую аксель обеспечить не в состоянии в силу своей тормознутости.
Прекрасно, по акселю , если разложить ускорение свободного падения по векторам можно вычислить вертикаль. И я как понял из даташита это реализовано, напруга на выходах по осям при покое не нулевая, а зависит от положения акселя. Понятно. Зачем тогда гироскоп? Угол поворота всегда можно найти взяв вторую производную по ускорению вращательного движения.
Вот именно, при чем тут телефон.
Я уже обьяснял. Для полета коптеру МИНИМУМ необходим контроллер с гироскопами по трем осям. Но никакого автолевела при этом не будет. Тем не менее, без акселя - он будет отлично летать!
Что бы было выравнивание в горизонт, необходимо добавить акселерометр.Летать нужно было на Куках, что бы это знать, а не на мобильных телефонах.
при том, что принцип работы и задачи очень близкие. Более того, не удивлюсь, если чипы те же самые. каким образом, если он замеряет лишь ускорения?
С Вашего поста выше - четко сказано, что акселерометр помогает, а не является единственным кто это решает.
Единственный датчик, который будет помнить где у коптера горизонт - это Аксель.
Зачем тогда гироскоп
затем, что гир показывает абсолютные отклонения, а не относительные. Это как слух + зрения дают вам более полную картинку. Но ведь по зрению одному - можно многое понять, да не так точно, если издающий звук объект вне предела видимости
Гир показывает скорость поворота и ВСЁ. Взяв производную по времени получите угол. В покое гир ничего вам не даст. Только при изменении положения даст скорость с которой оно поменялось. Так что угол в любом случае вычисляется.
Еще в раз. Гироскоп увы определяет не абсолютные отклонения, а угловую скорость. Зная время измерения мы можем определить угол относительно горизонта. Единственная проблема - конечная точность расчетов, в расчетах всегда присутствует небольшая ошибка. Так как система относительная, то у нас постоянно будет накапливаться ошибка. Для компенсации этой ошибки и используется акселереометр (и жпс)
Акселерометр может достаточно точно определить угол относительно горизонта только если система в покое, в движении тоже есть погрешность, а в свободном падении акселерометр в плане определения угла вообще бесполезен
Единственный датчик, который будет помнить где у коптера горизонт - это Аксель. И хоть убейся, гироскоп тут совершенно не причем.
Влезу:
нужен - да при интегрировании показаний возникает ошибка, но в краткосрочной перспективе показания очень точны, акселерометр же наоборот шумный и медленный и не справился бы с этой задачей, и может дать правильные показания только в долгосрочной перспективе (задушеный фильтром)
расчёт угла ведётся и по ДУС-ам и по акселю потом “смешиваются” в нужных пропорциях:
например: 0.9 - расчёт угла из показаний ДУС и 0.1 - расчёт угла из показаний акселя (можете назвать это корректировкой)…
и на последок вспомните прибор такой - Флайментор (в принципе и сейчас продаётся) - ставится на модель верталёта для новичков. Так вот у него всего лишь 3 ДУС enc03 те же что и в КУКе, но горизонт он держит намного дольше чем КУК (напомню в КУКе нет вообще расчёта углов там просто пропорция составлена от показаний датчиков), а тут он рассчитывает “горизонт”…
так что ни без одного ни без другого горизонта у вас не получится…
это надо в вопросы новичка перенести…
Спасибо Сергей, спасибо, что наконец подробно объяснили.
Только мне кажется, флайментор не горизонт удерживал, а текущее положение. Но и кук может очень долго его сохранять, при хорошей настройке.
Видимо софтом еще многого можно добиться. Но по прежнему, без акселя - горизонт невозможен. И если он плывет, то это в первую очередь проблема акселя, а не гир. Я так думаю 😃
Гироскоп увы определяет не абсолютные отклонения, а угловую скорость. Зная время измерения мы можем определить угол относительно горизонта.
Не можем. Гиры не знают где горизонт. Им вообще пофиг. ЖПС к горизонту вообще никаким боком.
Только мне кажется, флайментор не горизонт удерживал, а текущее положение.
так я его в кавычки и засунул )))
А вообще, применительно к Арду: наращивание мощи проца: PX4/Pixhawk, vrbrain… борды под линуксом, а алгоритм то тот же…
Не можем. Гиры не знают где горизонт. Им вообще пофиг. ЖПС к горизонту вообще никаким боком.
конечно гирам пофиг, не пофиг контроллеру 😃 Для того чтобы он знал где горизонт и нужна калибровка ground level при подключении батареи (и при первом арминге). А дальше контроллер постоянно считает угол основываясь на данных о угловой скорости от гирика (основная информация в определении угла наклона) и данных о векторе ускорения от акселерометра (информация для компенсации ошибки). Данные от GPS нужны для уточнения вектора скорости (ускорения), это особенно важно для больших скоростей
Для того чтобы он знал где горизонт и нужна калибровка ground level при подключении батареи (и при первом арминге).
они калибруются не для этого, датчики тоже капризные и ноль у них не всегда на месте (температура например), и данная калибровка проводится для того, чтобы проц знал нулевые показания датчиков и от них считал и не важно в каком положении будет находиться мосх, хоть вверх ногами, лижбы не трясся…
а где верх где низ мозх знает от акселя, и для нашего визуального представления кажется что это всё быстро, но на самом деле в полёте, да и для алгоритма в целом показаний акселя не достаточно…
короче это уже флуд по полной пошел 😦
Для того чтобы он знал где горизонт и нужна калибровка ground level при подключении батареи (и при первом арминге).
Алексей, ну вы вааще не в теме 😃
И вы вообще не читаете, что тут пишут, и вообще я тоже перестаю с вами спорить.
Калибровка левела в виде ВНИМАНИЕ - акселя! делается один раз и навеки, дома через гуи, (до следующей калибровки). И НИКОГДА при подключении батареи или арминге.
Данные от GPS нужны для уточнения вектора скорости (ускорения), это особенно важно для больших скоростей
Покажите код в Арду который данные ЖПС использует для расчета горизонта?
они калибруются не для этого, датчики тоже капризные и ноль у них не всегда на месте (температура например), и данная калибровка проводится для того, чтобы проц знал нулевые показания датчиков и от них считал и не важно в каком положении будет находиться мосх, хоть вверх ногами, лижбы не трясся…
а ты попробуй поставить коптер криво, например две ноги выше а две ниже, подключить батарею, заармится и попытаться взлететь. Только подальше отойди 😃
Я так всегда и делаю, братан.
И как я и сказал - ты вообще не хочешь читать и понимать, что тебе пишут:
и не важно в каком положении будет находиться мосх, хоть вверх ногами, лижбы не трясся…
Физкульт привет!
Калибровка левела в виде ВНИМАНИЕ - акселя! делается один раз и навеки, дома через гуи, (до следующей калибровки). И НИКОГДА при подключении батареи или арминге
наконец то, зачатки трезвого мышления! Аксель, да калибруется в мишн планнере. Левел задается при подключении батареи и арминге. Проведи эксперимент о котором я сказал выше.
Покажите код в Арду который данные ЖПС использует для расчета горизонта?
жпс используется не непосредственно для расчета горизонта а для определения вектора ускорения, читай внимательно. А уже вектор ускорения используется для компенсации погрешности в расчете горизонта. 😃
Левел задается при подключении батареи и арминге. Проведи эксперимент о котором я сказал выше.
Пипец. Полный пипец. Аксель и левел - это одно и тоже. Твои зачатки трезвого мышления, даже не в перспективе.
Посмотри мои видео на всякий случай. Я экспериментов уже обэксперементировался.
жпс используется не непосредственно для расчета горизонта а для определения вектора ускорения, читай внимательно. А уже вектор ускорения используется для компенсации погрешности в расчете горизонта.
КОД?