воскресенье, 25 ноября 2012 г.

Алгоритмы: черно-белое движение. Часть II с половиной

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


Т.е. здесь четко видно общая тенденция движения вперед, но периодически колесо откатывается назад, во время выполнения остановки.

Дело в том, что, скорее всего, для торможения колеса использовалась галочка Brake в панели настройки поведения мотора. Чтобы подробнее рассмотреть, что происходить с осью мотора при использовании этой функции, можно составить простую программу, состоящую из одного блока: мотор движется в течении 1-2 секунд вперед на максимальной скорости, а затем останавливается используя Brake.

В итоге финальная часть графика вращения оси мотора будет выглядеть следующим образом


Видно, что после того, как мотор отдается команда моторы остановиться он фактически продолжает двигаться, но самое неудобное, что он периодически двигается в обратную сторону.

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

Есть два способа избавиться от этого недостатка:
  • Первый - не выключать мотор полностью, просто выставить на нем очень маленькую скорость
  • Второй - использовать Coast вместо Brake. Это приводит к отключению питания на моторе, а не выполнению торможения.

Естественно, эти способы обладают недостатком, что на сильно искривленных трассах робот может сильно вылететь на линию и не смочь обратно на нее вернуться. Но с другой стороны тележка получает огромный прирост в скорости:


Видно, что ось мотора повернулась на те же 900 градусов, что и в первый раз, но уже практически за одну секунду, вместо т трех. При этом на графике видно, что движения мотора назад нет, вместо этого видно небольшие торможения, когда график откланяется от прямой линии.

Комментариев нет:

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...