Как сделать так чтобы робот ев3 двигался по линии

Как сделать так чтобы робот ев3 двигался по линии
Как сделать так чтобы робот ев3 двигался по линии
Как сделать так чтобы робот ев3 двигался по линии

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

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

В нашем примере будет разобрано три примера робота на основе основной учебной модели Robot Educator.

Для начала, собираем базовую модель учебного робота Robot Educator, для этого можно использовать инструкцию в программном обеспечении MINDSTORMS EV3.

Так же, для примеров нам понадобятся, датчики света-цвета EV3. Эти датчики света, как никакие другие, наилучшим образом подходят для нашей задачи, при работе с ними, нам не придётся забоится о интенсивности окружающего света. Для этого датчика, в программах мы будем использовать режим отражённого света, при котором оценивается количество отражённого света красной подсветки датчика. Границы показаний датчика 0 - 100 единиц, для «отсутствия отражения» и «полного отражения» соответственно.

Для примера мы разберём 3 примера программ для движения по чёрной траектории изображённой на ровном, светлом фоне:

·        Один датчик, с П регулятором.

·        Один датчик, с ПK регулятором.

·        Два датчика.

Пример 1. Один датчик, с П регулятором. Конструкция

 

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

Алгоритм

Действие алгоритма основано на том, что в зависимости от степени перекрытия, пучка подсветки датчика чёрной линией, возвращаемые датчиком показания градиентно варьируются. Робот сохраняет положение датчика света на границе чёрной линии. Преобразовывая входные данные от датчика света, система управления формирует значение скорости поворота робота.

Так как на реальной траектории датчик формирует значения во всём своём рабочем диапазоне (0-100), то значением к которому стремиться робот, выбрано 50. В этом случае значения передаваемые функции поворота формируются в диапазоне -50 - 50, но этих значений недостаточно для крутого поворота траектории. По этому следует расширить  диапазон в полтора раза до -75 - 75.

В итоге, в программе, функция калькулятора является простым пропорциональным регулятором. Функция которого ( (a-50)1.5 ) в рабочем диапазоне датчика света формирует значения поворота в соответствии с графиком:

Пример работы алгоритма

 

Пример 2. Один датчик, с ПK регулятором.

Этот пример составлен на той же конструкции. 

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

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

Если использовать настройку регулятора из примера, Пропорциональный коэффицнт 0.4 и Кубический коэффицент 0.0006 ( 0.4(a-50)+0.0006((a-50)^3) ) то мы получим вот такую зависимость:

Пример работы алгоритма

 

 

 

 

 

 

Как сделать так чтобы робот ев3 двигался по линии Как сделать так чтобы робот ев3 двигался по линии Как сделать так чтобы робот ев3 двигался по линии Как сделать так чтобы робот ев3 двигался по линии Как сделать так чтобы робот ев3 двигался по линии

Статьи по теме:



Как сделать из меда маску для живота

Как сшить перчатки без своими руками

Как сделать цветок из остаток штор

Схема монтажа конденсатоотводчиков

Как сделать дробилку для керамзита