Кто есть кто в робототехнике. Выпуск I. Компоненты и решения для создания роботов и робототехнических систем - страница 6

Шрифт
Интервал



Каждая система позиционирования может точно измерить местоположение до некоторого минимума расстояния, но никак не меньше. Например, вы можете использовать линейку длиной в ярд, чтобы измерить расстояние всего в 1/16 дюйма. Но вы не можете использовать эту линейку, чтобы измерить толщину листа бумаги. Такие маленькие расстояния меньше предела разрешения данной линейки. Аналогично, вы не можете использовать одометр вашего автомобиля, чтобы измерить диаметр баскетбольного мяча. И так же за пределами своего разрешения ни одна система позиционирования не выдаст значащую информацию. Таким образом, первый вопрос к любой системе позиционирования – каково её разрешение?

В зависимости от обстоятельств, предел разрешения обычного GPS приемника часто не лучше порядка 10 метров. (Хотя прибор может сообщать о своём местоположении до милиметра, цифры на дисплее есть ложная точность, так как они не последовательны во времени.) Предположим, что мы пытаемся использовать такой приемник (наряду с электронным компасом), чтобы указать роботу путь в соответствии с безотносительным местоположением. Мы используем следующую программу «нацеливания» на требуемое XY-местоположение, выраженное как Dest_vec.


Поведение Home_GPS

Loc_vec = get_GPS_xy () // GPS выдаёт текущий вектор местоположения

Disp_vec = Dest_vec – Loc_vec // Вектор смещения (displacement) к месту назначения (destination)

Dist = magnitude(Disp_vec) // Расстояние (distance) до места назначения

Theta = arctan_vec (Disp_vec) // Вектор смещения определяет требуемый курс

Heading = Get_compass_heading () // Получите от компаса фактический курс робота

If (Dist ≠ 0) // Мы достигли места назначения?

Rotation = gl * (heading – theta) // Рассчитайте параметры поворота

Translation = g2 * Dist // Рассчитайте скорость перемещения

end if

end Home_GPS


Что случится, когда робот поведёт себя именно так? Если его движение моделировать на компьютере, Home_GPS заставит виртуального робота повернуться к точке назначения, движение пойдёт гладко, и всё закончится, когда робот достигнет точного места, указанного Dest_vec. Но, управляющий физическим роботом в реальном мире, Home_GPS не сможет достичь места назначения. Вместо этого, чем больше робот будет приближаться к цели, тем более растерянным он начнёт казаться.