roboforum.ru

Технический форум по робототехнике.

ПИД контроллер для управления двухколёсным роботом

Re: ПИД контроллер для управления двухколёсным роботом

Пяткин » 01 мар 2016, 00:32

Не пойму что все уперлись в этот ПИД. Когда я тестировал прямолинейность движения с ПИД, то робота все равно уводит в сторону, хоть и не значительно. При использовании гироскопа с акселерометром, все гуд.
Последний раз редактировалось Пяткин 01 мар 2016, 00:36, всего редактировалось 1 раз.

Re: ПИД контроллер для управления двухколёсным роботом

elmot » 01 мар 2016, 00:36

в огороде бузина, в киеве дядька. что общего между пидом и датчиками?

Re: ПИД контроллер для управления двухколёсным роботом

Пяткин » 01 мар 2016, 00:37

что общего между пидом и датчиками?

Какими датчиками? Датчики бывают разными
Я так понимаю общее у них - это конечный результат.
А результат это движение по прямой

P.S.
Видать бузины у тебя в огороде много

Re: ПИД контроллер для управления двухколёсным роботом

Scorpio » 01 мар 2016, 00:41

Общее в том, что датчики, используемые для контроля движения, являются обратной связью для ПИД-регулятора. Для элементарного движения по черной полосе, уже по идее нужен ПИД. Ну маааленький хотя бы пидик. Иначе бот будет болтать, как пьяного матроса.

Re: ПИД контроллер для управления двухколёсным роботом

Пяткин » 01 мар 2016, 00:47

Код выложен по ссылке выше, найди в коде ПИД, я не нашел

Re: ПИД контроллер для управления двухколёсным роботом

lorry » 01 мар 2016, 00:55

Scorpio писал(а):ПИД вообще нужен для плавности регулирования. Чтобы какой-то процесс, так сказать, не дергался. В большинстве случаев достаточно П или ПД. Стабилизации вращения колес нужна вроде для езды по прямой, но, как тут уже говорилось, любая попавшая под колесо мусорина сбивает тележку с курса. Вывод - для данной задачи никакой ПИД вообще не нужен.

Да, это так. Вот краткая статья описывающая решение задачи движения робота по заданной траектории https://habrahabr.ru/post/277829/. И, как можно видеть из статьи, ПИД здесь действительно не причем, да он и не решит поставленной задачи, ПИД это дополнительное решение, предназначенное для улучшения общих характеристик движения робота. Но, надеюсь, все прекрасно понимают, что чем меньше внешних и внутренних паразитных воздействие будет в системе, тем более прецизионно будет работа последней, а как следствие более точным движение платформы, так почему бы не попытаться исключить, или минимизировать, хоть какие то воздействия для улучшения параметров движения роботизированной платформы? Ведь не бывает идеально одинаковых моторов, не бывает одинаковых редукторов. На практике, что бы вы не говорили, и это проверено нашей практикой, ПИД помогает стабилизировать движение двухколесной платформы по прямой, а применение алгоритма описанного мной выше, дополнительно решает проблему рассинхронизации моторов при разгоне платформы, проблему подсевших источников питания, а так же частично способна перекрыть сбивание с курса при попадании под колесо мусорин или других предметов.
Еще раз повторю, да, ПИД не решает задачу движения по траектории, но как дополнительный параметр значительно улучшающий характеристики системы, применение ПИД-регулятора полезно и оправдано.
Последний раз редактировалось lorry 01 мар 2016, 01:02, всего редактировалось 1 раз.

Re: ПИД контроллер для управления двухколёсным роботом

Scorpio » 01 мар 2016, 01:07

Пяткин писал(а):Код выложен по ссылке выше, найди в коде ПИД, я не нашел

Ну, интегратора в коде действительно не заметно, а фильтр - это и есть дифференциальная часть. Ну и пропорциональная никуда не делась. Едет вроде прямо, значит хватает. А про пид - это ТК замутил. Он из аж 3 захотел и мгновенно испарился.

Добавлено спустя 5 минут 47 секунд:
lori писал(а):ПИД помогает стабилизировать движение двухколесной платформы по прямой

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

Re: ПИД контроллер для управления двухколёсным роботом

lorry » 01 мар 2016, 01:19

Scorpio писал(а):Сам на "Ванессе" пользовался синхронизацией колес, когда надо было откатиться назад по прямой с зарядной станции. Но, дальше движение по прямой не имело уже никакого практического смысла. Надо двигаться по карте на длинные расстояния, поподать в двери и т.п.

А Ванесса перемещается автономно или под управлением оператора?

Re: ПИД контроллер для управления двухколёсным роботом

Scorpio » 01 мар 2016, 01:25

Обижаешь. Какой- такой оператор!? Ездит куда-то по своим делам. Правда уже года 4 как в пыльном углу покоится :(

Re: ПИД контроллер для управления двухколёсным роботом

linvinus » 01 мар 2016, 12:53

hax писал(а):Имеется двухколёсный двухмоторный робот с оптическими энкодерами на каждом колесе. Управление скоростью вращения - через PWM.

Я хочу указывать скорость каждого колеса, чтобы робот двигался по определённой траектории или делал разворот на месте.
В теории можно использовать 2 отдельных ПИД контроллера, для каждого колеса


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

ввиду многих факторов даже если сделать обратную связь между левым и правым колесом строго прямо ехать не будет.
Причины уже назывались
1) проскальзывание колёс
2) разные диаметры колёс
3) люфт в редукторе
4) неровный момент двигателя
5) погрешность измерения энкодерами
6) задержки в самом алгоритме управления
Бороться с этим можно только повышением качества каждого элемента а значит увеличение стоимости и всё равно 100% гарантии не будет.

2) можно постоянно корректировать движение на основе внешних данных, например инерциальный датчик (гиро аксель компас), ультразвуковой дальномер, Lidar, kinect и т.п.

Поэтому есть вопрос на на основе каких данных вы управляете роботом?
Т.е. что является входными данными и как проверяете достигнутый результат?

В общем случае работает такой алгоритм
1) на основе последних известных данных (энкодеры,инерциальные датчики, УЗ датчики и т.п.), вычисляется скорость V и угол Q необходимый вектор движения платформы робота
2) вектор преобразуется в скорость (обороты) для левого колеса и скорость для правого
3) для каждого колеса работает пид регулятор который удерживает заданную на шаге 2 скорость в течение всего периода пока не поступит новый вектор
4) goto 1

Re: ПИД контроллер для управления двухколёсным роботом

Пяткин » 01 мар 2016, 15:36

Scorpio писал(а):Сам на "Ванессе" пользовался синхронизацией колес, когда надо было откатиться назад по прямой с зарядной станции.

Дай ссылку на Ванессу, интересно глянуть

Re: ПИД контроллер для управления двухколёсным роботом

Scorpio » 01 мар 2016, 19:08

Она здесь.

Серва, со встроеным ПИД регулятором.


Rambler\'s Top100 Mail.ru counter