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

Gene

Маленький апдейт моего проекта стабилизатора на степ моторах… Механическая часть сделана на 95%, стабилизация по крену уже работает – и, кажется, прекрасно работает… Понятно, что без видео мне никто не поверит, но хочу уже до ума довести. Затык как всегда вылез в неожиданном месте – демфер степпера по тангажу. Этот степпер имеет 4мм ось, на которую у меня не нашлось подшипников. Всякие есть, а 4мм почему-то не нашлось 😦 но ничего, как-нибудь разрешу этот вопрос.

Второй затык в управляющем софте. Сейчас пытаюсь добиться, чтобы во время рысканья и одновременно крена по одной из стабилизируемых осей не наступало вырождения осей. Забавно, что во всех известных мне полетных контроллерах (со смежным управлением камерой) эта проблема вообще игнорируется, судя по поведению подвеса. Можно легко проверить: взять коптер и покрутить его вокруг главной оси со включенным стабилизатором. Стабилизатор будет держать камеру прямо только в том случае, если плоскось сенсора строго перпендикулярна оси вращения (по крайней мере до тех пор, пока вращение не остановится и к выравниванию не подмешается заметно акселерометр). Как только (не прерывая вращения) наклонить коптер, камера поползет – насколько сильно, зависит от доли акселерометров в вычислениях. В реальности вращение часто идет с перекосом относительно сенсора. Для правильной коррекции надо учитывать все три оси, а для скорости надо опираться в основном на гироскопы, а долю акселерометров надо оставить как можно меньше – только-только чтобы хватало для коррекции “ползущих” гироскопов. Над этим сейчас работаю.

Вообще должен сказать, что у меня в жизни не было такого интересного проекта – так, чтобы можно было целиком программировать поведение, от и до, а не догадываться, что там кто-то до меня намудрил и как с этим бороться. Совершенно новое, незнакомое ощущение 😃

Piranha

ээээх, ну пачиму я не программист?!?!

Gene
Piranha:

ээээх, ну пачиму я не программист?!?!

Дима, не поверишь – та же самая мысль посещает меня 100 раз в день 😃 Время от времени добавляется “почему я не математик” 😃

Piranha

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

cylllka
Piranha:

ээээх, ну пачиму я не программист?!?!

На работе сижу в окружении 11 программистов. Одному из них, 3 месяца назад показал коптер, полетал по офису. Теперь он летает ФПВ на самолях, Успел купить и продать АРДрон2, собирает большой самоль для дальних ФПВ… Вот бы ему подвес подсунуть…

Gene
cylllka:

Вот бы ему подвес подсунуть…

Спасение утопающих – дело рук понятно кого 😃 Берите пример с меня – еще месяц назад я даже не знал, что такое “ардуино” 😃

Lazy-bones
Gene:

Берите пример с меня – еще месяц назад я даже не знал, что такое “ардуино”

А почему тгда не с меня?
Я до сих пор не знаю что это такое.

Evguenis
Gene:

Всякие есть, а 4мм почему-то не нашлось

Посмотрите в негодных сервах на выходном валу- очень легкие.

Dynamitry
Gene:

Спасение утопающих – дело рук понятно кого

Cкажите, Вы намереваетесь выкладывать результаты своих трудов в сеть? Или хотя-бы описание железа, с которым работаете?

Dynamitry
Dynamitry:

Или хотя-бы описание железа, с которым работаете?

Все, нашел. Был невнимателен.

Gene
Lazy-bones:

А почему тгда не с меня?
Я до сих пор не знаю что это такое.

Наверное, Вы знаете что-то более продвинутое 😃 А для чайников вроде меня ардуино – то, что доктор прописал. Да, кстати я и с C++ по ходу познакомился.

Evguenis:

Посмотрите в негодных сервах на выходном валу- очень легкие.

Первым делом. К сожалению, не нашлось с нужными. Но эта проблема, на самом деле, совсем небольшая.

Dynamitry:

Cкажите, Вы намереваетесь выкладывать результаты своих трудов в сеть? Или хотя-бы описание железа, с которым работаете?

Если будет чем похвастаться – обязательно похвастаюсь 😃
Насчет электронного “железа” – могу сообщить прямо сейчас:

Степпер крена
Степпер тангажа
Драйвер степпера (либо этот)
Мозг (версия лайт тоже должна прокатить, ибо пока не использую ни компас, ни барометр. Впрочем, возможно в будущем они понадобятся тоже.)

Насчет управляющего софта – вопрос тонкий. Если действительно получится что-то путное, хотелось бы думать, что не даром тратил серое вещество и хотелось бы вынести из чащи квадратных косекансов хоть небольшую корзиночку бабла, тем или иным способом 😃 Впрочем, об этом говорить, мягко говоря, рановато.

Lazy-bones
Gene:

А для чайников вроде меня ардуино – то, что доктор прописал.

Не знаю что доктор прописывает чайникам в штатах, а в нашей деревне доктор для чайников прописывает “DJI WK-M”. 😒
Наверное разную траву у нас чаем называют. 😃
Ну а самоварам доктор прописывает стедикамы собирать. 😃

Gene
Lazy-bones:

Не знаю что доктор прописывает чайникам в штатах, а в нашей деревне доктор для чайников прописывает “DJI WK-M”. 😒

Наверное, имеется в виду DJI WK-M + z15?
О таких чудесах и не помышляем, наши пациенты тут на коленке свое пытаются собрать, по бедности.

Наверное разную траву у нас чаем называют.
Ну а самоварам доктор прописывает стедикамы собирать.

Очевидно, межконтинентальный врачебный консилиум не сложился 😃

Brandvik

Зря компасом не пользуетесь, пока, а так написали бы полноценный IMU, а на его основе можно и с вырождением осей бороться…

Gene
Brandvik:

Зря компасом не пользуетесь, пока, а так написали бы полноценный IMU, а на его основе можно и с вырождением осей бороться…

Не совсем понял что такое “написать полноценный IMU”, но насчет компаса две причины:

  1. Близко к степперу – дикие магнитные аномалии; далеко от степпера – связка получается нежесткой, либо растут масса и габариты. Думаю, компас пригодится для трехосевого подвеса, а пока попробую обойтись без него.

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

Piranha
Gene:

Сегодня кажется поборол математикой вырождение

This post sucks without images and video!!! 😃 😉

ziss_dm
Gene:

Можно легко проверить: взять коптер и покрутить его вокруг главной оси со включенным стабилизатором. Стабилизатор будет держать камеру прямо только в том случае, если плоскось сенсора строго перпендикулярна оси вращения (по крайней мере до тех пор, пока вращение не остановится и к выравниванию не подмешается заметно акселерометр). Как только (не прерывая вращения) наклонить коптер, камера поползет – насколько сильно, зависит от доли акселерометров в вычислениях.

Может я чего-то не понимаю, но помоему это результат потери степени свободы. Самое простое решение - датчики на подвесе + closed loop. 😃 Иначе всегда будут артефакты.

alexmos
ziss_dm:

Может я чего-то не понимаю, но помоему это результат потери степени свободы. Самое простое решение - датчики на подвесе + closed loop. Иначе всегда будут артефакты.

У меня датчик на платформе камеры и closed loop как ты пишешь. Но тоже есть проблема с вращением по YAW. Проявляется как гуляющий горизонт даже при незначительных поворотоах. До конца не разобрался, но предположительно - из-за неидеального расположение осей датчика гироскопа (несовмещение с осями подвеса) или из-за неидеальной калибровки акселерометра (т.к. по известному углу идет дальнейшее разбиение по осям). Так что вырождение - серьезная проблема, и математика не сильно помогает. Как вариант, надо ставить по гироскопу на каждую ось, как сделал Алексей в эцилопе. Но все же надеюсь пока победить калибровками и математикой и обойтись одним общим датчиком. Но для правильной калибровки нужен комп, т.к. ресурсов atmega явно недостаточно чтобы решать задачу апроксимации элипсоидом. А значит про калибровку в поле можно забыть. В общем, есть куча нюансов

Gene

Вот, сегодня ураган Сэнди наконец позволил полетать… Один из первых полетных тестов нового стабилизатора, абсолютно необработанное видео. (осторожно, почти 700 МБ).

Конечно, я бы мог долго рассусоливать о том какое все сейчас в стабилизаторе сырое (а оно все ОЧЕНЬ сырое, как железо, так и софт), но мне кажется общую ситуацию и перспективы разглядеть можно уже сейчас. Собираюсь в первую очередь работать по след. направлениям:

  1. поднять скорость опроса датчиков и ответной реакции. Сейчас в принципе скорости хватает для нормального полета, но если специально бросать коптер из стороны в сторону, скорости начинает не хватать. То же относится к резким порывам ветра.

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

  3. Покопаться еще немного в софт - регулировке. Судя по поведению коптера при быстрых вращениях по главной оси, с укорениями и наклонами, вырождение осей если не полностью побеждено, то по крайней мере ЗНАЧИТЕЛЬНО подавлено. Кажется, математический аппарат работает, остается тюнинг коэффициентов. Надо еще немного добавить к блюду акселерометров – к концу теста горизонт заметно окривел, предполагаю из-за недостаточной компенсации уплывания гироскопов. Кстати о птичках – сейчас роль акселей в стабилизации меньше 1/10 процента, все остальное за счет гироскопов.

4). Надо бы избавиться от излишней “прыгучести” степперов. Хочу попробовать масляные демферы. Убедился, что разрешения степперов в принципе хватает.

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

Ах да, картинка:

Gene
ziss_dm:

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

Вопрос интересный, и наверное мне следовало уточнить, что имеется в виду. Проблема скорее не столько в ВЫрождении, сколько в ПЕРЕрождении – скажем, при наклоне вперед ось крена постепенно “превращается” в ось Z, если сенсор неподвижен относительно коптера. Полное “превращение” наступит на 90 градусах. Но дело в том, что коптеры под таким наклоном не летают (или, если летают, никто в здравом уме не потребует от них держать камерой горизонт), поэтому мы говорим не о полном, а только о частичном перерождении. Т.е. датчик, скажем, крена ВСЕГДА, в практически применимом диапазоне, будут сообщать нам о крене, фокус лишь в том, чтобы связать его данные с данными двух других осей для положений, отличных от идеально горизонтального. Конечно, точность будет по мере увеличения наклона понижаться, но даже на 75 градусах ее будет еще вполне хватать для расчетов. А видеокоптеры и под углом 45 градусов летают крайне редко (тестовое видео не считаем 😃).

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