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

Geniok
oleg70:

CMD41 шлю, а ответа нужного нет… Сам интерфейс работает, т.к. CMD0, CMD8, CMD55 проходят. Перепробовал всё что можно: и с резисторами и без, и разные карточки, и питание от 2.7 до 3.3 в менял, и частоту CLK менял (даже по частотомеру замерял), короче похоже что карта при CMD41 не шлёт CRC (для microSD это нормально), а проц. её очень ждёт и зависает…

Хм…
Странно…
Я посмотрю у себя как и что, напишу по поводу CMD41.
Если по памяти, то проблемы были только когда на карте не было резисторов, как только резисторы повесил, проблем с чтением/записью не было.

rual
mahowik:

В тему самоделок похвастаюсь

Саш, очень круто! Интересно как он у тебя за местность цепляется при удержании позиции?

mahowik

Робот на шаговиках. И на скоростях менее 60% проскоков практически нет. Т.е. там обычный интегратор (сорсы на гит, если интересно)… 😃
Я сперва тож думал, что понадобится ИНС и т.д… на земле все проще однако 😃

rual
mahowik:

И на скоростях менее 60% проскоков практически нет. Т.е. там обычный интегратор (сорсы на гит, если интересно)…

Неее… Я немного про другое. У тебя написано

  • удержание позиции

, и на видео где ты его рукой толкаешь до стены, он откатывается и возвращается обратно.

mahowik
rual:

Неее… Я немного про другое. У тебя написано

Так я и писал про удержание позиции. Там обычная колесная одометрия, только вместо снятия тактов с оптопары-сенсора, берется кол-во тактов/шагов которое идет на шаговик.
Один такт в конфигурации 1/8 для nema17 это 360*/(200*8) = ~0.2 град т.е.

/**** position hold mode ****/
  static float positionError = 0.0f;
  if(f.POSHOLD_MODE && abs(targetSpeed) < 15 && abs(steering) < 15) {
    positionError += actualSpeed * (float)cycleTime * 0.000001f;
  } else {
    positionError = 0.0f;
  }

....

error = targetSpeed - actualAveragedSpeed -(positionError * conf.pid[PIDPOS].P8 * 0.01f);

В обшем, когда стики в центре, то интегрируем такты/шаги на моторы и подаем их на вход пид регуля…

8 days later
pitman

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

Немного опишу состав и текущее состояние дел:

  • Захват 8 каналов PPM от приемника радиоуправления (работает 4 из 8)
  • Выдача управляющего PWM сигнала 12 каналов, 4 аппаратных и 8 программных (работает 11 из 12)
  • PID регуляторы на крен и тангаж (работает)
  • Датчики МЕМС 3D акселерометр, магнитометр, гироскоп (работает, данные обновляются с частотой 100Гц)
  • Барометрический высотомер (работает)
  • Последовательный порт для подключения радиомодуля и передачи телеметрии протокол MAVLink(работает)
  • Последовательный порт для GPS/GLONASS приемника (еще не работает)
  • Последовательный порт для доп.устройств (еще не работает)
  • 13 каналов для УЗ и ИК дальномеров (еще не работает)
  • Локальное хранилище “черный ящик” на базе microSD карты (еще не работает)
  • Габариты 80х55мм
  • Питание +5В от USB, +5В от внешнего источника, +8…+22 от внешнего источника

Описание и тех. информация по проекту живет здесь

www.oshec.org/projects/pi-pilot/wiki

Персонально Drinker-у полностью свой проект автопилота на своем железе.

rual
pitman:

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

ПИК мы вроде уже начали обсуждать. МИПС это конечно хорошо , но плавучий вычислитель на борту ИМЕННО экспериментальной платформы нужен обязательно, ибо пока ещё не известен объём вычислений, да и было бы не правильно, если хорошая идея (но тяжелая вычислительно) не сможет быть опробована сразу. Такие затыки дюже остужают пыл исследователя, знаю по себе ))) Это потом когда всё получилось, “на трезвую голову” (в смысле азарта), можно спокойно, в плановой рутине, всё заоптимизировать и впихать мелкий проц. ЯТД.
Про датчики СергДок уже писал, аксель в ЛСМ гмо-шный, лучше ставить MPU6xxx или 9xxx. Как только будут первые полёты убедитесь сами.

HikeR
pitman:

т.е. передвижение без участия человека.

а где в описании самое главное, на чем основано “без участия человека”? уже имеется скриптовый язык, набор жестко заданных состояний, полный искусственный интеллект или что-то еще?

SergDoc

Главное что тема жива))))) смотрю у всех (производителей и пользователей) тенденция идёт к мелколётам и мелкоплатам… надо этот вопрос продумать, а тут ещё Дед Мороз сыну моему самолётик мелкий с аппой послал (где-то едет), надо чего-нибудь туда поставить… а то не ровен час будут лишние запчасти ))))) тут главное жабу задушить - 8 выходов хватит!!! не надо больше, и мааленькое компактненькое…
rual ты 9250 не покупал? у меня есть наброски мелкоплаты на ней с извращённым входом (3 в 1)…

pitman
rual:

ПИК мы вроде уже начали обсуждать. МИПС это конечно хорошо , но плавучий вычислитель на борту ИМЕННО экспериментальной платформы нужен обязательно, ибо пока ещё не известен объём вычислений, да и было бы не правильно, если хорошая идея (но тяжелая вычислительно) не сможет быть опробована сразу.

Из тяжелых задач именно полетного контроллера пока есть только Калман, думаю что для этого текущего МК хватит. Если не хватит ничего не мешает перейти на новую серию PIC32MZ, там уже 200МГц проц.

rual:

Про датчики СергДок уже писал, аксель в ЛСМ гмо-шный, лучше ставить MPU6xxx или 9xxx. Как только будут первые полёты убедитесь сами.

Текущий вариант будет на том что есть, новый вариант с новым процом датчики буду выбирать, может MPU будет, может MAX.

HikeR:

а где в описании самое главное, на чем основано “без участия человека”? уже имеется скриптовый язык, набор жестко заданных состояний, полный искусственный интеллект или что-то еще?

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

SergDoc
pitman:

Текущий вариант будет на том что есть, новый вариант с новым процом датчики буду выбирать, может MPU будет, может MAX.

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

rual
SergDoc:

Главное что тема жива))))) смотрю у всех (производителей и пользователей) тенденция идёт к мелколётам и мелкоплатам…

Это да, я вот давно уже жду объёмную стеклотканевую раму. Но вот пока не пришла, в голове ещё требования к мелкому мозгу ещё не сложились.

SergDoc:

Мороз сыну моему самолётик мелкий с аппой послал (где-то едет), надо чего-нибудь туда поставить… а то не ровен час будут лишние запчасти ))))) тут главное жабу задушить - 8 выходов хватит!!! не надо больше, и мааленькое компактненькое…

Вот-вот! У меня уже второй год жёлтый пенолет Як-52 (вроде) лежит, поставить в него нечего (

SergDoc:

rual ты 9250 не покупал?

не, не покупал. Мне религия не позволяет )) Оно же вроде только и2ц? Вот будет 3х ногий интерфейс тада поглядим.

SergDoc:

у меня есть наброски мелкоплаты на ней с извращённым входом (3 в 1)…

ты имеешь ввиду SPPM/SBUS/DSM?

Вообще мысли скочут в двух направлениях:

  1. Плата мозга отдельно от датчиков, от компоакселя особенно. Так как большую плату трудно правильно соорентировать, да и компас в клубке проводов нехорошо. Барик можно ставить на плате с мозгом.
  2. И всё в одном. Вход Р/У только композитный, выход ШИМ 6-8 шт.
Drinker
pitman:

Персонально Drinker-у

Ога, польщен.

pitman:

пока есть только Калман

Где есть?

За фриртос респект. Однако код местами кажется очень знакомым. Ну и ладно.

Да, и еще, чем обусловлен выбор пик32? Неужто он сделает стм32ф4?

SergDoc
rual:

Мне религия не позволяет )) Оно же вроде только и2ц?

SPI

rual:

Вообще мысли скочут в двух направлениях:

вот у меня тоже, хочу imu отдельно, но со своим процем…

rual:

ты имеешь ввиду SPPM/SBUS/DSM?

да с инвертерами на XOR переключаемый…

rual:

выход ШИМ 6-8 шт.

если 6 то карточка по SDIO, но и 8, как оказалось, не всегда достаточно 😦
как для себя то 6 вполне…

Drinker:

Где есть?

он везде, мы просто его не замечаем)))
Это слово такое магическое…
и вообще как можно этого человека в плату впаять?

Drinker
SergDoc:

Это слово такое магическое…

Упоминание о нем где надо и где не надо - это +4 к респекту и +2 к харизьме. А если напесать это слово на плате поделки, то это минимум +5 к стабильности.

strizhmax
Drinker:

А если напесать это слово на плате поделки, то это минимум +5 к стабильности.

Эх, Дринкер, где ты раньше был. Минуту назад опустил плату в хлорное железо.

Drinker
strizhmax:

Эх, Дринкер, где ты раньше был. Минуту назад опустил плату в хлорное железо.

Значит не постичь тебе магию огня и таинства сакральных знаний. Твоя аура повреждена. 😃

rual
SergDoc:

SPI

Будем посмотреть.

SergDoc:

вот у меня тоже, хочу imu отдельно, но со своим процем…

Эта будет аля ПХ4, а у меня третий вариант родился. Всё в одном на мелкой плате с мелкими разъёмами. УАРТы и ППМ отдельно, ШИМы на общий широкий. Кому надо переходник под сервы из макетки напильником выпилит.

SergDoc:

если 6 то карточка по SDIO, но и 8, как оказалось, не всегда достаточно

Вообще карточку лесом отправить, на мелкоплате она как корове седло. Лучше на борт ещё одну ФРАМ поставить, и в неё логи лить.

Надо подумать как это в 64ноги втиснуть.

SergDoc
rual:

Лучше на борт ещё одну ФРАМ поставить, и в неё логи лить.

фрам большая - дорого, пусть мелкая будет для настроек, логи можно и в крайний сектор флеши отправить? или ту же P16-ю… по spi sd лезет в плату (32Х32), не помню только 2 или 4 слоя получалось…
у меня один фиг два проца и две МПУ - получится и ИМУ и мелкая…
imu надо по 2-м причинам и отдельная (на полигоне обязательно вытравить EKF) и для нового проекта…

strizhmax:

Эх, Дринкер, где ты раньше был. Минуту назад опустил плату в хлорное железо.

фломастером синим:) +5 к карме…

О вспомнил логи с SD если по одному дёргать ещё ничего, но вот скопом (я её ой как давно не чистил) - опа…

rual:

Эта будет аля ПХ4

не будет… это не как в твиксе вертикально или сверху вниз, иму со своим процем отдаёт основному полётнику всё по запросу/готовности, а уже полётник решает ИНС и овнопиды…

rual:

Надо подумать как это в 64ноги втиснуть.

да я уже втискивал пока не переехал ))) теперь до весны надо всё успеть…

strizhmax
Drinker:

Твоя аура повреждена.

Нет. Все получилось. EKF с обратной стороны маркером намалевал.

CAN - наш путь к минимизации выводов.