Для того, чтобы заставить робота двигаться плавно по черной линии, нужно заставить его самому считать скорость движения.
А чтобы заставить робота считать, необходимо сначала самим определиться, как это делается.
Человек видит черную линию и ее четкую границу. Датчик освещенности работает несколько иначе.
Именно это свойство датчика освещенности – невозможность четко различить границу белого и черного – мы и будем использовать для расчета скорости движения.
Во-первых, введем понятие “Идеальная точка траектории”.
Показания датчика освещенности колеблются в диапазоне от 20 до 80, чаще всего на белом цвете показания равны примерно 65, на черном порядка 40.
Идеальная точка – условная точка примерно посередине белого и черного цветов, следуя которой робот будет перемещаться вдоль черной линии.
Здесь принципиально расположение точки – между белым и черным. Задать ее точно на белом или черном не получится по математическим причинам, почему – будет ясно позднее.
Эмпирическим путем мы вычислили, что идеальную точку можно высчитать по следующей формуле:
Дальше происходит следующее.
Робот должен двигаться строго по идеальной точке. Если случается отклонение в какую-либо сторону, робот должен вернуться к этой точке.
Составим математическое описание задачи.
Рассчитать мощность вращения каждого из двигателей с учетом степени отклонения от идеальной точки.
Исходные данные.
Идеальная точка.
Текущие показания датчика освещенности.
Результат.
Мощность вращения мотора В.
Мощность вращения мотора С.
Решение.
Рассмотрим две ситуации. Первая: робот отклонился от черной линии в сторону белого.
В этом случае робот должен увеличить мощность вращение мотора В и уменьшить мощность мотора С.
В ситуации, когда робот заезжает на черную линию, все наоборот.
Чем сильнее робот отклоняется от идеальной точки, тем быстрее ему надо к ней вернуться.
Грамотно это называется ПИД-регулятор.
Но создание такого регулятора – задача довольно непростая, да и не всегда он требуется в целом виде.
Поэтому мы решили ограничиться только П-регулятором, адекватно реагирующем на отклонение от черной линии.
На языке математики это будет записано так:
где Hb и Hc – итоговые мощности моторов B и C соответственно,
Hбазовая – некая базовая мощность моторов, определяющая скорость движения робота. Подбирается экспериментально, в зависимости от конструкции робота и резкости поворотов.
Iтек – текущие показания датчика освещенности.
I ид – рассчитанная идеальная точка.
k – коэффициент пропорциональности, подбирается экспериментально.
В третьей части рассмотрим, как это запрограммировать в среде NXT-G.
При написании статьи использованы материалы сайтов: