roboforum.ru

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


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

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

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

Сообщение Пяткин » 01 мар 2016, 00:32

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

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

Сообщение elmot » 01 мар 2016, 00:36

в огороде бузина, в киеве дядька. что общего между пидом и датчиками?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

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

Сообщение Пяткин » 01 мар 2016, 00:37

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

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

P.S.
Видать бузины у тебя в огороде много
Пяткин
 
Сообщения: 163
Зарегистрирован: 27 ноя 2013, 15:09

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

Сообщение Scorpio » 01 мар 2016, 00:41

Общее в том, что датчики, используемые для контроля движения, являются обратной связью для ПИД-регулятора. Для элементарного движения по черной полосе, уже по идее нужен ПИД. Ну маааленький хотя бы пидик. Иначе бот будет болтать, как пьяного матроса.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение Пяткин » 01 мар 2016, 00:47

Код выложен по ссылке выше, найди в коде ПИД, я не нашел
Пяткин
 
Сообщения: 163
Зарегистрирован: 27 ноя 2013, 15:09

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

Сообщение lorry » 01 мар 2016, 00:55

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

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

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

Сообщение Scorpio » 01 мар 2016, 01:07

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

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

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

Да, я вам верю. Сам на "Ванессе" пользовался синхронизацией колес, когда надо было откатиться назад по прямой с зарядной станции. Но, дальше движение по прямой не имело уже никакого практического смысла. Надо двигаться по карте на длинные расстояния, поподать в двери и т.п.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение lorry » 01 мар 2016, 01:19

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

А Ванесса перемещается автономно или под управлением оператора?
Аватара пользователя
lorry
 
Сообщения: 448
Зарегистрирован: 04 фев 2014, 13:53
Откуда: Комсомольск-на-Амуре
прог. языки: машинные коды
ФИО: Иван Иваныч

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

Сообщение Scorpio » 01 мар 2016, 01:25

Обижаешь. Какой- такой оператор!? Ездит куда-то по своим делам. Правда уже года 4 как в пыльном углу покоится :(
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение Пяткин » 01 мар 2016, 15:36

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

Дай ссылку на Ванессу, интересно глянуть
Пяткин
 
Сообщения: 163
Зарегистрирован: 27 ноя 2013, 15:09

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

Сообщение Scorpio » 01 мар 2016, 19:08

Она здесь.

Серва, со встроеным ПИД регулятором.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Пред.

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4