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

rual
mahowik:

STMF3Discovery не такая уж и большая

Для коптера обычного размера вполне нормальная

mahowik:

OpenPilot уже походу пoртанули на STM32F3DISCOVERY

Вот блин, опередили ))) Еслиб проэлектроника неделю не протянула взлетел бы до НГ…

SergDoc:

для F4 думаю MPU6050 по i2c как-то не актуально?

Тут надо посчитать передаваемые битики, если 30%-ный запас будет, то вполне нормально.
Кста, отчитаюсь.
Сделал полную ИНС на Ф3, всё как люблю, т.е.:
-передача данных в ПДП (SPI) и перывании для И2Ц;
-получение данных по запросу самих датчиков через линии готовности данных;
-частоты получения данных 380 Гц-ДУС, 50 Гц - аксель и компас;
-время отработки одного отсчета: ДУС -1200\1400 мкСек, Аксель - 2100\2500 мкСек.
И2Ц интерфейс Ф3 произвёл на меня огромное впечатление. Почти весь конечный автомат протокола перефирия выполняяет САМА!!!
Я уже готов пересмотреть своё отношение к и2ц на борту.))) Если у Ф4 такой же, то смело можно делать на и2ц.

RusINS10F3.rar

Sir_Alex
rual:

Я уже готов пересмотреть своё отношение к и2ц на борту.))) Если у Ф4 такой же, то смело можно делать на и2ц.

Да вун Мегапират работает со всеми датчиками по I2C и ничо, справляется…

mahowik:

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

Понятия не имею, сам в исходниках свежих нашел драйвера HAL под эту плату…

igor_v_t
rual:

Тут надо посчитать передаваемые битики, если 30%-ный запас будет, то вполне нормально.
Кста, отчитаюсь.
Сделал полную ИНС на Ф3, всё как люблю, т.е.:
-передача данных в ПДП (SPI) и перывании для И2Ц;
-получение данных по запросу самих датчиков через линии готовности данных;
-частоты получения данных 380 Гц-ДУС, 50 Гц - аксель и компас;
-время отработки одного отсчета: ДУС -1200\1400 мкСек, Аксель - 2100\2500 мкСек.
И2Ц интерфейс Ф3 произвёл на меня огромное впечатление. Почти весь конечный автомат протокола перефирия выполняяет САМА!!!
Я уже готов пересмотреть своё отношение к и2ц на борту.))) Если у Ф4 такой же, то смело можно делать на и2ц.

Вот что-то интересное. Мегапират обновляет данные с частотой 100 Гц. На своей прошивке я получил почти 200 Гц но без сеовиса. Один цикл из 30 до 6,5 милисек. При этом чтение MS5611 (100 Гц) и HMC5883 (10 Гц) занимает около 2 милисек , чтение MPU6000 по SPI полный обсчет DCM-матрицы около 3 милисек на 2560. Чтение приемника тоже времени требует до 2 милисек. Остальное практически времени не занимает.
Переходя на более мощный процессор хотелось бы читать датчики чаще, но учитывая скорость И2С если все датчики повесить на нее это достигнуть не удастся. Зачем тогда переходить? Ну только для того чтобы познакомиться с ним?
Была у меня идея двинуться в сторону обработки видео для целей стабилизации, но необходимость зарабатывать что-то на жизнь не позволила. (Времени не хватило на все)
Пару лет назад задавал эти вопросы в том числе при обсуждении Оупенпилота. Но все закончилось как обычно - повздорили и разбежались.
Оупенпилот потихоньку загнулся, Ardu & MultiWii продолжают активно жить. Поэтому выбрав для себя эти два проекта вижу, что не ошибся.
Летая на коптере убедился, что в при управлении человеком результаты получше и была идея с ПИД регулятора перейти на нелинейное управление, но тоже времени не хватило.
За прошедшее время в алгоритмы, использованные в Ardu & MultiWii вник дотошно. Датчики исследовал тоже подробно. В принципе для меня нетрудно реализовать любой алгоритм обработки и вставить его в тот же Арду. Но нужны идеи.

Sir_Alex
igor_v_t:

Переходя на более мощный процессор хотелось бы читать датчики чаще, но учитывая скорость И2С если все датчики повесить на нее это достигнуть не удастся. Зачем тогда переходить? Ну только для того чтобы познакомиться с ним?

А есть ли смысл читать датчики быстрее? Все наверное видели как летают последние версии Арду, а ведь частоту опроса они не поднимали, все дело в управляющих алгоритмах. А вон Александр(mahowik) вообще всех порвал своей реализацией АльтХолда по акселю… и то же дело не в датчиках 😃

igor_v_t
Sir_Alex:

А есть ли смысл читать датчики быстрее? Все наверное видели как летают последние версии Арду, а ведь частоту опроса они не поднимали, все дело в управляющих алгоритмах. А вон Александр(mahowik) вообще всех порвал своей реализацией АльтХолда по акселю… и то же дело не в датчиках 😃

Да есть . Читая MS5611 с частотой 100 Гц получил результат практически тот же что и с сонаром. (Не в обиду Александру, проделавшему большую работу с ВМР085)

mahowik

обижаться не буду, т.к. все не так 😉
получилось как раз таки со связкой mpu6050 + ms5611, а потом уже коэф. подобрал и для bmp085, но все равно для bmp085 точность ограничена точностью по паспорту +/-1метр

далее сколько я просидел в графиках барометра (как ms5611 так и bmp085), там реальная задержка/лаги самих показаний сенсора, и частота опроса тут не поможет, а спасает только скорость сенсора (только аксель!)… и если на одном баро, то пиды будут как сопли еле-еле, а если выше, то дерготня… и демо с толкалками и резким остановом на одном баро ну ни как!
с сонаром таже фигня, без акселя толком ничего не держит, т.к. теже задержки/лаги…

п.с. сегодня хорошо так подрюкался с предсказанием высоты по акселю и получил результат практически как у арду 2.9RC1 на видива ниже…

в код арду пока не подсматривал 😃

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

rual:

Сделал полную ИНС на Ф3, всё как люблю

а сорсы и гуи можете выложить?

и тут же повторю вопрос… посоветуйте среду разработки под stm32… полезные тулы там всякие и т.д.

igor_v_t
mahowik:

обижаться не буду, т.к. все не так 😉
получилось как раз таки со связкой mpu6050 + ms5611, а потом уже коэф. подобрал и для bmp085, но все равно для bmp085 точность ограничена точностью по паспорту +/-1метр

далее сколько я просидел в графиках барометра (как ms5611 так и bmp085), там реальная задержка/лаги самих показаний сенсора, и частота опроса тут не поможет, а спасает только скорость сенсора (только аксель!)… и если на одном баро, то пиды будут как сопли еле-еле, а если выше, то дерготня… и демо с толкалками и резким остановом на одном баро ну ни как!
с сонаром таже фигня, без акселя толком ничего не держит, т.к. теже задержки/лаги…

п.с. сегодня хорошо так подрюкался с предсказанием высоты по акселю и получил результат практически как у арду 2.9RC1 на видива ниже…

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

а сорсы и гуи можете выложить?

и тут же повторю вопрос… посоветуйте среду разработки под stm32… полезные тулы там всякие и т.д.

Читая ms5611 с частотой 100 Гц и усредняя по 10 измерениям я получаю маленький шум и актуальные данные и поэтому никто не дергается, то же с сонаром , но использую дорогой сонар МВ1200 на котором пропусков нет. Конечно использование акселя это правильно, но для хорошего результата сначала лучше хорошие датчики. То же самое я писал год тому. Мимоходом посмотрел последнюю версию Арду - так акселерометр там используют. (z-damping !)

По STM изначально выберите среду разработки. Как по мне IAR предпочтительнее, но может быть и Keil и бесплатные.

rual
mahowik:

а сорсы и гуи можете выложить?

Сорсы полного ПО выкладывать не планирую, если смогу аккуратно подрезать уже привязанную свою “специфику”, то чистый ИНС выложу.
гуи как такового нет, в “большом” ПО есть лазейка в Вийский гуи, а так обычная терминалка putty + демо-отображалка (красный/синний “самолётики”).

mahowik:

и тут же повторю вопрос… посоветуйте среду разработки под stm32… полезные тулы там всякие и т.д.

пишу в кейле 460, или Эклипс+ГЦЦ. Под последнее проект пока не собирал, не знаю как там с отладкой Ф3 ( наверное никак), а про кейл уже писал, что перифирию F3 отлаживать нет возможности…

MinIMU-9-test.rar

DVE
mahowik:

и тут же повторю вопрос… посоветуйте среду разработки под stm32… полезные тулы там всякие и т.д.

Я все это шаманство командной строки так и не осилил - поставил CooCox IDE, она бесплатная, все что надо есть (сделано на базе Eclipse), и работает “из коробки”.

rual
DVE:

поставил CooCox IDE, она бесплатная, все что надо есть (сделано на базе Eclipse), и работает “из коробки”.

У меня один вопрос: перифирию Ф3 отлаживает?

DVE

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

Drinker

coocox рулит. А есть тут любители maple? В программировании та же ардуина, только на стм32

ребята сейчас maple II делают на ф4 точно бомба будет.

oleg70
igor_v_t:

Была у меня идея двинуться в сторону обработки видео для целей стабилизации, но необходимость зарабатывать что-то на жизнь не позволила. (Времени не хватило на все)
.

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

SergDoc
Drinker:

А есть тут любители maple?

Там бутлоадер заменять надо, если не ошибаюсь…

rual
oleg70:

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

crypteksusb.ru/…/108-navigacionnoe-pole-relefa-spo…

oleg70

Супер конечно…
Но я бы всеж начал с чего то попроще типа отслеживания перемещений по картинке (как в оптической “мыши”)

Drinker
SergDoc:

Там бутлоадер заменять надо, если не ошибаюсь…

Пардон, а зачем?

SergDoc

они свой собственный бутлоадер используют, да даже посмотреть - инициализация USB идёт через порт PD4 а не через PA9 как в родном бутлоадере, хотя он скорей всего вторичный, ещё не пробовал…

Drinker

Хотя есть подозрения о неких фоновых процессах внутри, вроде проц 72мгц, а мбед 96мгц быстрее в 6 раз выполняет один и тот же код. Но все же именно на мапле мини был сделан стаб у которого 250гц цикл включая гира аксель маг баро гпс. Над этим екф.

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

Зацени

Датчики внутри “домика”, все прижато поролоном, для баро самое то

А аот “домик” из мапле мини

И вот продукт эволюции - дом на стм32ф405

Дринкер стайл так сказать - дом и крутилки. Зато с отверточкой без ноутбука за пару минут в поле все до идеала тюненгуется.

rual

У меня есть маленькая мапл, немного возился с ней. Что не понравилось: ардуинское иде, тормозит и глючит; пробовал подключить к ней компас по и2ц стандартными ардуинскими методами - не получилось, возможно “не умею готовить”, либо это как раз о том что низкоуровневое программирование никуда не денешь.

Drinker:

Зато с отверточкой без ноутбука

Ноут и не нужен, есть телефон с голубым зубом.

Drinker

Алeксандр, у маплe вирe нeту надо и2ц.х юзать. на сцайтe подробно описано. вообщe проблeм нeту