Создание собственной системы стабилизации

SergDoc

Во ещё одно доказательство преимущества ARM, у меня цикл на усЁ максимум 1600 на F103 😃

rual
mataor:

кстати время расчета квантерионов ~2100мкс, углов ~2500мкс (это вкупе с чтением датчиков), проц хмега на 32МГц работает, вроде вполне норм время для калмана получилось… думаю если удастся внедрить в мультивий то время цикла не более 4000 будет.

У меня дополняющий (комплементарный) фильтр на СТМ32Ф103 72Мгц 250~300 мкс цикл ДУС с периодом 400Гц и также цикл акселя с компасом 270~325 мкс с периодом 50Гц, и того занятость проца ~14%.

mataor
SergDoc:

Во ещё одно доказательство преимущества ARM

ну во первых… то что у меня сейчас - портировано на скорую руку - вполне можно обеспечить меньшее время…
во вторых - никто не мешает множитель фапч поднять до 3-х и работать на 48МГц.

с комплементарным родным виевским у меня на хмеге цикл на все 2500

и вообще, как бы не большая часть этого времени - это чтение датчиков по и2с интерфейсу…

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

oleg70

По поводу многопроцессорности системы.
Пробовал связать два AVRa по SPI, но у обеих были аппаратные прерывания от периферии, ломал голову – ни как не выходит…
Т.е. если “мастер” начинает просить данные у “слейва” а тот в это время занят (прерыванием) происходит затык.
Есть у кого мысли на этот счет, наработки, идеи ?

mataor
mataor:

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

посмотрел… как я и думал опрос чисто датчиков занимает больше половины времени… чисто вычисления сейчас 980-1006 микросекунд -> опрос датчиков (аксель гира и компас) - 1100мкс

oleg70:

Есть у кого мысли на этот счет, наработки, идеи ?

хм… странно…
ну во первых… оптимизируйте прерывания
во вторых, опрос по спи насколько часто и объемно?
в третьих… какие авр и что за цель? просто например в хмеге можно организовать DMA канал SPI интерфейса с оперативкой или любой другой периферией + эвент система - проц не участвует вообще и занимается своими делами

oleg70

[QUOTE=

хм… странно…
ну во первых… оптимизируйте прерывания
[/QUOTE]

В том то и дело, что не Xmega, прерывания на обоих чипах не синхронизируешь, буферный регистр сдвига (SPI) сбрасывается у “слейва” как только с чипа снимается сигнал выборки кристалла CS.
Т.е. получается что один из пары процев должен тупо ждать второй…
Как то не срастается в голове, может чего туплю ???

mataor
oleg70:

Т.е. получается что один из пары процев должен тупо ждать второй…
Как то не срастается в голове, может чего туплю ???

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

также… если есть возможность и данная ф-ция необходима - почему бы не поменять процессор? конечно если это делать уже на готовом устройстве а не на прототипе - то такое непокатит

oleg70

Выгоду в увеличении числа корпусов вижу если они дешевые как mega.
Вообще здесь в ветке кто то уже поднимал эту тему,
заманчиво было бы сделать распределенную систему у которой каждая mega могла бы обрабатывать медленную периферию (GPS, PPM приемника, датчики наконец) а одна собирать данные в “кучу” о шустро с ними разбираться пр помощи всяких там кватернионов, DCM, и т.д.
Один из перспективных путей вообще использовать AVR, да чот пока не выходит…

SergDoc

Т.е. плодить кучу микросхем, увеличивая массу и габариты, глюки и т.п. при дешевых и более мощных STM-ах? уж лучше тогда 8-ми ядерный Propeller Parallax, но он дороже чем ARM, а фунционал сопоставим с атмегой…

oleg70

Это извечная делема многозадачности и параллеризма обработки процессов реального времени. (windows, CUDA, и т.д.). Хочется конечно сделать что то оригинальное, свое, улучшить так сказать… Но приходишь к выводу зачастую, что все давно уже придумано.
А параллельное вычисление на разных ядрах (для коптеров) всеж может дать выигрыш, но видать не на AVR, это уже философия…

Кстати 32-х разрядах, хорошо, но ! Если в перспективе захочется отойти от шумных и медленных MEMS в пользу скажем стабилизации по обработке видео с камеры (попытки в сети встречал где то) то их кажущаяся избыточная производительность растает как снег. Вот и встанет тогда вопрос о многоядерности…

SergDoc

Вот подмывает, развить одну идею, подсказанную Gapey, IMU соединить с основной платой мягким шлейфом(так сделано в NAZE если не ошибаюсь), а саму плату IMU посадить на основную на толстый двухсторонний скотч, по идее убьются ненужные вибрации и меньше места будет занимать разъём (разъёмы), но побаиваюсь соединений разъёмов со шлейфом, не хотелось бы в полёте “потерять” все датчики разом? пока пороюсь в загашнике что у меня на эту тему есть…

oleg70

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

Razek
SergDoc:

Вот подмывает, развить одну идею, подсказанную Gapey

То что уйдут вибрации на это надежды мало, масса то будет совсем маленькая, шлейфы конечно паять сразу к плате стремно, без какого-либо армирования, особенно если изоляция жесткая. Я припаивал к иму сразу разъем и втыкал в плату, так иму благополучно кочевал с шелда на шилд для меги. Сделал фиксирующую скобу для иму чтобы не вылетела из разъема и не потерялась в случае чего. Еще опасность шлейфа если плата не защищена боксом, то при краше летящие ошметки иногда их срывают, но это харкорынй варинт событий. Сейчас когда перешел на F104 проц и шлейфов стало больше буду думать над каким-то коробом.

Alexey_1811

Кто то работал с компасом HMC5883L который подключен через MPU6050 (через AUX)? Что то не выходит вычитать данные с компаса.

10 days later
rual

Полетал на бреющем полёте с удержанием высоты по шарповскому дальномеру

стабилизация исключительно по дальномеру БЕЗ акселя сонара и пр.
Видно как местами вихри снега попадают в луч дальномера, и квадра как бы подпрыгивает на них.
Прошу прощения за качество съёмки, у на -28 теплый воздух от капота немного искажает.

SergDoc

Создалось впечатление что аксель чудит(LSM-ка?), попробуй тоже самое в Акро чисто на гирах…

rual
SergDoc:

Создалось впечатление что аксель чудит(LSM-ка?), попробуй тоже самое в Акро чисто на гирах…

Да, ЛСМка, но аксель здесь не при чём, удержание чисто на шарпе. смешивание с акселем отключил иначе плывёт сильнее.

SergDoc

Не я имел ввиду аппарат по крену и тангажу дёрганый какой-то…

rual
SergDoc:

Не я имел ввиду аппарат по крену и тангажу дёрганый какой-то…

)))) Неее, Это я его так дёргаю чтоб показать каки он держит высоту.
Аксель бывает плавно уводит горизонт на несколько градусов, эта даа…((

rual
Alexey_1811:

Кто то работал с компасом HMC5883L который подключен через MPU6050 (через AUX)? Что то не выходит вычитать данные с компаса.

Тут вопрос: а зачем? компас и МПУ можно на одну и2ц прикрутить. А вот МПУ6000 через SPI и компас через МПУ - вот это была бы песня! Вы к МПУ6000 знаете как компас транзитом прикрутить?

moscow

Затрудняюсь выбрать тему, попробую в эту…

Есть такая дешёвая платка (multiwii lite на http://rctimer.com). На ней есть проц и MPU6050. То есть трёхосевой гироскоп и трёхосевой акселерометр.

Есть у меня э… телескоп 😃. Не важно, допустим есть у меня рука. На этот самый телескоп (на эту самую руку) я жёстко монтирую данную плату. Загружаю стандартную multiwii прошивку, калибрую акселерометр и получаю данные о наклоне телескопа (руки).

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

Подскажите пожалуйста, насколько “жива”, то есть осуществима моя идея использовать данную плату для определения положения телескопа. То есть понятно, что данные у меня будут, непонятно лишь с какой точностью при неизменной температуре и с какой точностью при изменении её на … 50° (принимаемое за максимум колебание температуры).