Научил платформу осознанно перемещаться

Собранную еще давно платформу таки научил осознанно передвигаться.
Теперь мы задаем ей координаты относительно точки включения и она сама туда едет. Управление моторами с помощью ПД-регулятора, не ПИД потому что за положением платформы следит отдельная подпрограмма, обрабатывающая сигналы с двух оптических квадратурных энкодеров. Разрешение 612 инпульсов на оборот колеса. Вот так вот оно умеет кататься(снималось опять же на телефон)


Притом она всегда знает где она, даже если толкнуть. Или если что-то попадется по пути и собъет курс, после прибытия и пересчета координат, если разница окажется более 2х сантиметров цикл разворота и езды повтирится.

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

уже лежит камера и 24й пик с 96К памяти под видео, скоро установим зрение…
  • +3
  • 08 апреля 2012, 12:21
  • kest

Комментарии (26)

RSS свернуть / развернуть
Черепашка из ЛОГО-миров завоёвывает мир. Зачёт)
+1
глянул что это за черепашка… ну да, типа того) и скриптовый язык с программами на флешке тоже будет, но это уже обязанность центрального контроллера, а тут вместо него щас макетка одна
0
Здорово! Надо оптимизировать код поворотов, чтобы не крутился больше чем на 180°.
0
это да, еще есть что поправить, т.к. ехать в направлении нуля градусов(тоесть просто направо) получается фигово. если ушли в правую сторону(-Х градусов, получается 360-Х) то начинается поворот на 360 градусов к нулю обратно. Если считать +-180 градусов то такая же фигня будет с ездой влево. Над этим я пока думаю как устроить чтоб и там и там нормально работало
0
Осталось нормально подобрать коэфициенты регулятора, чтобы ехало равномерно
— это вообще как понимать. Вы чем занимаетесь: гаданием на кофейной гуще или навигацией? Что за позор природы. Коэффициенты регуляторов не подбирают, а рассчитывают, дабы обеспечить замкнутой системе определённые динамические и точностные характеристики.
0
Есть такой маленький прикол… их после расчета нужно еще корректировать при проверке… ибо чтобы добиться необходимых параметров нужно иметь характеристическое уравнение этой системы свыше 4го порядка(хотябы)… а все влияющие факторы то при этом не учтешь!!!
0
для какой-нибудь идеальной системы конечно рассчитывается. А вот для реальной, да темболее при различных условиях(гладкий пол, ковер, а если что-то еще сверху поставить, батарейки разряжаются, моторы и ключи греются и тд) рассчитать будет очень проблематично из-за огромной кучи факторов, поэтому подбор. На робофоруме человек даже писал специальный алгоритм чтобы робот(следующий по линии) сам итерационно находил лучшие коэфициенты исходя из времени прохождения круга.
0
Советую использовать ПИ регуляторы с настройкой на модульный оптимум (с корректировкой коэффициентов)!
Почему то мне не сильно понятно использование в таких вещах ПИД и ПД…
0
а можете написать статейку по этому поводу(с корректировкой коэффицентов)? думаю сообществу будет интересно и полезно. Ибо в во всяких автономных системах эт будет очень интересно.
0
Да тут весь курс ТАУ запилить с нуля не помешало бы…
0
В scilab есть интеерсный пример управления телегами.



Теория легко ищется по имени автора(ов).

`Flatness, motion planning and trailer systems` anas.m.free.fr/tipe/Quanta/CDC93.pdf

Хотя похоже это open loop.
0
Подобная вещь есть и в MatLab на fuzzi logic…
0
Схему управления показать? если можно?
0
это вопрос или предложение? :D если предложение, то конечно показывайте

Регулятор я писал по статье с робовики
поэтому в тау разбираюсь неочень, а значит схемы нет.
И да, я наверное упустил написать, регулятор управляет только скоростью вращения моторов.
0
Меня интересует то, что этой платформой управляет (МОЗГ системы)!!!
А по поводу ТАУ:
Ключев В. И. Ограничение динамических нагрузок электропривода, М., «Энергия», 1971
Для начала неплохо там все расписано!!!
0
Круто!

(на правах бреда) а что если для определения позиции использовать сенсор от оптической мышки? он точно «восьмерить» не будет.
0
  • avatar
  • atd
  • 08 апреля 2012, 19:12
(ещё немного бреда) а поворот смотреть по компасу, а если не жалко денег то и с помощью mpu-9050
0
Я такой датчик к 5кВт ДПТшке лепил!!! Работает на ура!!!
0
Там стоят датчики из мыши, шариковой. и восьмерит не датчик а само колесо. отсюда при езде ему приходится на небольшую долю милиметра подниматься и опускаться…
Датчик через шестеренку просто прижимается к колесу сверху. Компас не нужен вроде, оно и так достаточно точно считается. правда только пока едет по ровной поверхности и не буксует.
глянул что это за mpu-9050. это магнитометр, акселерометр и гироском в одном, да? есть у меня акселерометр двухосевой… но даже его я не вижу в конструкции этой
0
ну датчик от оптической хорошо бы справился с поднятием/опусканием, хотя от модели завсит: некоторые мышки начинают медленнее двигаться, когда их сильно поднимаешь от стола.

в MPU фишка не в том, что там всё есть, а в том, что там есть уже готовый фильтр калмана, который на выход выдаёт уже кватернион положения, причём выдаёт очень ровно.
Сейчас пользуюсь 6050, так не могу нарадоваться, только магнетометр вручную приходится вмешивать…
0
да, датчиком от опт.мыши я имел в виду щупать сразу пол, а не колесо.
0
О! 6050! А можно чуть подробнее вот тут про него написать? Я как раз просто размышляю над FreeIMU для квадрика, а в нем как раз 6050. И там написано интересное: «The magnetometer is attached to the AUX I2C bus of the MPU6050 thus allowing it to be read directly by the MPU6050.» Значит ли это, что в данном случае не придется «магнетометр вручную вмешивать»? :) Подробности тут.
0
Когда я в последний раз смотрел FreeIMU, то там вручную смешивалось всё, даже акселерометр с гиро.
Для 6050 есть полноценный SDK, если его собрать под нужный контроллер, то смешивание будет, но оно уж очень раздутое.

Есть упрощённый семпл, но там нет настройки магентометра. Вообще, инвенсенс уже полгода как сиську мнёт по поводу подключения магнетометров (оправдываются какими-то юридическими ограничениями), так что все давно уже забили на это и поправки по компасу делают сами.
0
Да, вторичная шина I2C там есть, можно включать в двух режимах: сквозной (тут mpu будет выступать тупым согласователем уровней) либо mpu будет мастером и будет читать определённые ркгистры, например по прерыванию, и отдавать внутри своего пакета с данными.

Во втором режимен mpu у меня тупо вешается, видать где-то в настройках накосячил. А вот первый ничем не мешает, так что я подключаю компас через него. А как разберусь с SDK — можно будет и его смешивание отдать процессору mpu.
0
Спасибо! Дельное пояснение!
Ну а как вообще в целом машинка (mpu)? Все-таки для леталок как точность, так и скорость реакции — очень важны…
В общем-то это дело я сравниваю с более распространенным набором, который еще аллинуаном зовут (HMC5883L + BMA180 + ITG3205 + BMP085).
0
вв целом прикольно, но я пока на ней ещё не летал, нет времени. собирал на MPU6050 + HMC5883L + BMP085
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.