Да, все верно, запутался — акселерометр в покое всегла выдает 1G, а не 0. Угловые скорости он не меряет, но по направлению 1G можно определить, где земля, с поправками на линейные ускорения. Т.е. им можно мерять углы по двум осям (крен и тагнаж), но для точного измерения ориентации в любых ситуациях он не подходит.
Вы не учитываете, что фильтруется две величины, которые имеют разное поведение. Фильтруя показания акселерометра, мы не съедаем всплески, а наоборот пропускаем их абсолютно без изменений. Съедается только дрейф.
Вот удачная аналогия: комплементарный фильтр пропускает одну величину через High-Pass фильтр, вторую через Low-Pass, и степень фильтрации зависит от разности величин. Если они достаточно близки, влияние фильтра стремится к 0.
В смартфонах только недавно стали ставить гироскопы (и то в топовые модели, т.к. это дорогой датчик). Но даже наличия «всего набора» датчиков ИНС недостаточно для определеня положения без помощи GPS. Возможно определение только ориентации. И я даже не представляю какой датчик надо добавить, чтобы смартфон выдавал координаты без GPS (акселерометр это может в теории, но он должен быть сверхточный и малощумящий).
Есть решения (по карйней мере я видел публикации), где ИНС на транспортном или летательном средстве используется в связке с GPS, чтобы подменить его в туннелях, пролетах под мостами — когда кратковременно теряется сигнал GPS.
комплементарный фильтр — это не совсем Low-pass фильтр. Не знаю можно ли его сравнить с Калманом (я его так и не осилил), но он не режет ни фронты, ни фазу. При k = бесконечности, либо если A1 совпадат с A2 — он вообще не меняет сигнал A1 (проверьте это, подставив экстремалные значения в формулу выше). Если рассогласование A1 и A2 большое, то да — результат уже не идеален, но полезную работу фильтр все равно делает.
с КК не сталкивался, но вроде говорят что да — сложно в управлении. Как первый контроллер не посоветовал бы, даже несмотря на дешевизну. Стоимость крашей будет выше съэкономленной суммы.
Вообще я не сильный знаток AVR (ещё и ста строк кода не написал), я просто смотрю код проекта и пишу по аналогии. Ну и с датчиками так же — ищу в инете как их люди подключают… IR сенсоры вроде широко применяются в DIY-робототехнике, так что все реально. Посмотрите на ArduCopter — там больше всего датчиков уже навешано, и исходники открыты.
Да, ускореня по всем осям будут 0 — это ж акселерометр, он не меряет углы. По моему, вы путаете его с гироскопом — это совсем другой прибор, в вашем примере именно он начнет выдавать ненулевые показания.
Как это нет, без 3-х осей никуда :) Ведь система постоянно меняет ориентацию, и начинают рабоать все 3-оси акселерометра при наклонах. Да и линейные перемещения возвожны по всем трем осям. А при вычислении проекций нужны все три компонента вектора.
При поворотах — нет. Возможно есть сложные наводки на датчик из-за его неидеального расположения и центробежных сил, но это все не относится к «полезной» информации.
1. Речь идет в первую очередь о любительнском применении, а для него гироскопы из серии ITG3200 действительно очень хороши: я пробовал отключить коррекцию по акселеромтеру и посмореть динамику уплывания — даже при наличии вибраций от моторов она очень мала.
2. В в данном применении навигации СРЕДНЕЕ ускорение равно нулю: аппарат или движется с постояной скростью или висит. Комплементарный фильтр с достаточно высоким k практически не замечает кратковременные линейные ускорения, которые «смещают» 1G, и хорошо усредняет их в 0. Таким образом, на 99.9 процентов углы меряет гироскоп.
3. «Разьве что воткнете в Андрюшу уравнения моделирования БИНС» — для задач стабилизации по крену и тангажу высокая точность не сильно важна… Для задачи, которую я решаю в статье, уже важнее — но и тут алгоритма с комплементраный фильтром вполне хвататет. Если хочется ещё точнее — есть фильтр Калмана, но тут придется искать компромисс между малым временем цикла (и соответсвеннно точностью измерений и бытртой реакции) или более высокой точность вычислений и увеличением требуемого на них времени. Сейчас MultiWII в рекордсменах по времени цикла (порядка 3-4мс) и за это его ценят любители «акробатического» полета.
Вот удачная аналогия: комплементарный фильтр пропускает одну величину через High-Pass фильтр, вторую через Low-Pass, и степень фильтрации зависит от разности величин. Если они достаточно близки, влияние фильтра стремится к 0.
Есть решения (по карйней мере я видел публикации), где ИНС на транспортном или летательном средстве используется в связке с GPS, чтобы подменить его в туннелях, пролетах под мостами — когда кратковременно теряется сигнал GPS.
2. В в данном применении навигации СРЕДНЕЕ ускорение равно нулю: аппарат или движется с постояной скростью или висит. Комплементарный фильтр с достаточно высоким k практически не замечает кратковременные линейные ускорения, которые «смещают» 1G, и хорошо усредняет их в 0. Таким образом, на 99.9 процентов углы меряет гироскоп.
3. «Разьве что воткнете в Андрюшу уравнения моделирования БИНС» — для задач стабилизации по крену и тангажу высокая точность не сильно важна… Для задачи, которую я решаю в статье, уже важнее — но и тут алгоритма с комплементраный фильтром вполне хвататет. Если хочется ещё точнее — есть фильтр Калмана, но тут придется искать компромисс между малым временем цикла (и соответсвеннно точностью измерений и бытртой реакции) или более высокой точность вычислений и увеличением требуемого на них времени. Сейчас MultiWII в рекордсменах по времени цикла (порядка 3-4мс) и за это его ценят любители «акробатического» полета.