Интелектуальный , умный и независимый подвес камеры? Реально!

delfin000
crand:

…програмируем атмегу…

Как бы не совсем это просто как кажется на первый взгляд

Razek:

Для этого и нужна обратная

Этого никто не отвергал. Вопрос в том что все здесь нужно. Без обратной связи пока еще что вообще не что не работает, где ситуация развивается не по линейному закону. Но алгоритм, нюансы, и решение задачи в продуманности кода. Абратная связь - это лишь сигнал (ответ) алгоритму правильно ли он решает задачу.
А вот как это будет реализованно, во сколько деревянных это выльется скоро нарисуется конкретно. И стоять это решение на месте не будет 😉

С нуля пока что практически ничего не пишется (пока идет все по заготовкам и болванкам созданным ранее для других целей - как бы адаптация и аклиматизация)

crand
delfin000:

Как бы не совсем это просто как кажется на первый взгляд

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

delfin000

Андрей, здесь бы “Тима” подключить к решению задачи и не важно какой дорогой к цели…но он наверно почитывает;) хоть и идел у него за глаза

crand

Програмист знакомый у меня есть, хоть и занятый сильно. Вопрос именно в том, что стоит ли овчинка выделки? Может кто-то пробовал и уже понял, что - “не той дорогой идете, товарищи…”.
Ведь серва тупо работает, за нее мозги коптера думают. Надо именно конечный сигнал отработать. Ограничить скорость двигателя, ну и еще что-нибудь добавить.

delfin000
crand:

стоит ли овчинка выделки?

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

Moroz

Вечер добрый! А кто нибудь пробовал стабилизировать подвес камеры с помощью вертолетной системы стабилизации?

crand
Moroz:

А кто нибудь пробовал стабилизировать подвес камеры с помощью…

Ага, у меня то-же есть мысль - попробовать Гуардиан на платформу подвеса поставить. Все равно от Иглов нужна будет только информация на экране.

Moroz

У 3GX куча настроек, в принципе должно хорошо работать. И третья ось присутствует. Её можно настроить на сглаживания поворота или вращения коптера.
Есть еще круче системы стабилизации, микробист или в-бар. Ведь получается что подвес как тарелка автомата перекоса у вертолёта должна держать горизонт по двум осям.

alexmos
Gene:

И я тут вместо энкодера сам: пропущенный шаг прекрасно виден на мониторе. Таскать энкодер для того, чтобы он мне сообщил о том что я вижу сам? Зачем? А если Вы имеете в виду, что энкодер сам вернет мотор на место, так толку-то с того, видео все равно испорчено. Нужно сделать, чтобы шаги не пропускались, вот и все; и ведь никаких сложностей с этим нет!

Согласен с Евгением, енкодер только чтобы кнтролировал пропуски шагов, не нужен. Не должен шаговик пропускать шаги - иначе видео может быть испорчено в любой момент.

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

Gene

Вопрос программистам и математикам, с подковыркой: можно ли на основании только 6DOF-сенсора однозначно определить, горизонтален ли коптер в конкретный момент, или движется с ускорением и под наклоном? Вопрос не праздный…

milkseller

3 гиры 3 акселя достаточно.строго говоря гира по z вообще может не учавствовать.

Т.е. Аксель по z .оговорился…

Gene
milkseller:

3 гиры 3 акселя достаточно.строго говоря гира по z вообще может не учавствовать.
Т.е. Аксель по z .оговорился…

Можете объяснить, как? Я сколько ни бьюсь, не выходит. Акселерометрам все равно, вызван ли вектор силы притяжением или ускорением. Насколько я помню школьный курс физики, согласно ОТО ускорение принципиально неотличимо от гравитации. На гироскопы можно полагаться относительно недолго, пока они не уплыли (ведь они потихоньку подстраиваются под аксели, а аксели-то у нас и врут!) Когда маневр ограничивается парой секунд, ошибка не успевает накопиться. Но попробуйте, скажем, на полной скорости заложить длинный вираж, длящийся секунд 20 – вот тут-то вранье акселей и вылезет во всей красе! Согласен, ситуация нетипичная, но она бывает.

Я в принципе придумал способ сильно снизить эту ошибку, но решение не полное, и к тому же слишком сложное математически. Некрасивое, другими словами. Думал как раз об использовании оси Z акселей – может известны более простые способы использования этой информации для коррекции на долго действующих ускорениях. Можно было бы решить проблему используя дополнительные сенсоры, но без нужды не хочется усложнять.

botvoed
alexmos:

Согласен с Евгением, енкодер только чтобы кнтролировал пропуски шагов, не нужен. Не должен шаговик пропускать шаги - иначе видео может быть испорчено в любой момент.

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

Я еще раз повторюсь, что не советовал изобретать контролер шаговика, а предлагал управлять мотором как трехфазным на основе обратной связи!

По поводу горизонта акселей и гироскопов, есть несколько способов их практическое применение можно наглядно увидеть, в коде ардупилота, мультиви, и тд!
Если хотите понять как по трем осям понять куда наклон, почитайте здесь!
Не забудте, данные в радианах!
К сожалению все способы вычисления виртуального горизонта требуют коррекции гироскопов!
Так как дрейф приводит к значительной ошибке, для этого в основном используют данные акселерометров.
Что приводит всеравно к ошибке, но небольшой и динамичной, так как влияние линейных ускорений не избежать.

alexmos
Gene:

Я в принципе придумал способ сильно снизить эту ошибку, но решение не полное, и к тому же слишком сложное математически. Некрасивое, другими словами. Думал как раз об использовании оси Z акселей – может известны более простые способы использования этой информации для коррекции на долго действующих ускорениях. Можно было бы решить проблему используя дополнительные сенсоры, но без нужды не хочется усложнять.

Математически возможно, но на практике данные с обычных цифровых акселей очень шумные, аксель сложно откалибровать и сохранить калибровку с течением времени.

Gene

Если хотите понять как по трем осям понять куда наклон, почитайте здесь!

Спасибо, это я уже понял давно, но там вроде и об ускорениях-гравитации говорится. Постараюсь перечитать внимательно.

alexmos:

Математически возможно, но на практике данные с обычных цифровых акселей очень шумные, аксель сложно откалибровать и сохранить калибровку с течением времени.

Алексей, мы наверное о разном… или у нас разные акселерометры 😃 Я свои не калибровал (может только один раз за все время), только задал уровень точности, и они вроде бы никуда не уплывают, в отличие от гироскопов – хотя и шумят. Имел в виду, что они в принципе не понимают разницы между гравитацией и линейным/угловым ускорением.

milkseller

ну , во первых, какова величина ускорения при вираже в 20 с !? разгон торможение , а сколько это в g =)?

Gene

ну , во первых, какова величина ускорения при вираже в 20 с

Достаточная, чтобы горизонт завалился 😦 И вопрос сколько это в g, на самом деле, не очень насущный. Измерять это можно хоть в попугаях. Насущный вопрос в том, как отличить попугаев ускорения (линейного или радиального) от попугаев притяжения Земли, и можно ли это в принципе, используя только данные 6DOF.

botvoed

AX=AdcRead(0)-512;
AY=AdcRead(1)-512;
AZ=AdcRead(2)-512;

AX=((float)X/1.66)*57.324;
AY=((float)Y/1.66)*57.324;
AZ=((float)Z/1.66)*57.324;

roll =atan(AX/sqrt(AY*AY+AZ*AZ))/0.0174527);
pitch=atan(AY/sqrt(AX*AX+AZ*AZ))/0.0174527);

Вот пример кода, работает на LIS акселях без калибровки.
При условии что, Vref = Vcc , то есть 0 акселя 512 на 10 битном ацп.
У этих акселерометров при наклоне оси на 90град значение 150 отсюда имеем коэфициент 150/90=1.66

Функция арктангенса требует значения в радианах - никак не в “попугаях”.
То что я привел в пример, есть простой инклинометр.

alexmos
Gene:

Достаточная, чтобы горизонт завалился И вопрос сколько это в g, на самом деле, не очень насущный. Измерять это можно хоть в попугаях. Насущный вопрос в том, как отличить попугаев ускорения (линейного или радиального) от попугаев притяжения Земли, и можно ли это в принципе, используя только данные 6DOF.

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

Sodefi

а если добавить гпс и 3х осевой компас?

milkseller

а толку от них в этом применении !?

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

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

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

Sir_Alex
Gene:

Достаточная, чтобы горизонт завалился И вопрос сколько это в g, на самом деле, не очень насущный. Измерять это можно хоть в попугаях. Насущный вопрос в том, как отличить попугаев ускорения (линейного или радиального) от попугаев притяжения Земли, и можно ли это в принципе, используя только данные 6DOF.

В принципе, эта же задача решается в полетных контроллерах. Аксель там играет второстепенную роль. Когда происходит ускорение, больше доверия к гирам, со временем, аксель помогает увидеть горизонт (если конечно ускорение пропадет). Есть еще алгоритмы для компенсации постоянного ускорения (скажем если летаем по кругу), тут я правда не подскажу, как именно это делается. Попробуйте глянуть документ, может в нем есть описание: Direction Cosine Matrix IMU: Theory, авторы William Premerlani and Paul Bizard

alexmos
milkseller:

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

Не поделитесь рассчетами, как у вас получается мелкие значения? По моим прикидкам, при движении со скоростью 20км/ч по дуге 10м, получается 21 градус отклонения! Если скажете, что так никто не летает - хорошо, по дуге 100м (такие дуги даже не видно глазом), получаем 2.2 градуса отклонения - в кадре все равно это видно.
Рассчеты: a = v*v/R, angle = atan(a/g)*180/PI

Gene
Sir_Alex:

В принципе, эта же задача решается в полетных контроллерах.

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

Sir_Alex
Gene:

Я уже писал раньше в этой теме, разница между полетным контроллером и контроллером подвеса в том, что первому надо выравниваться перпендикулярно суммарному вектору сил (среди которых и притяжение Земли, и ускорение), а подвесу желательно выравниваться в горизонт, а ускорения игнорировать.

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