Кто есть кто в робототехнике. Выпуск I. Компоненты и решения для создания роботов и робототехнических систем. Александр Барсуков
Чтение книги онлайн.

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

СКАЧАТЬ style="font-size:15px;">      Каждая система позиционирования может точно измерить местоположение до некоторого минимума расстояния, но никак не меньше. Например, вы можете использовать линейку длиной в ярд, чтобы измерить расстояние всего в 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 не сможет достичь места назначения. Вместо этого, чем больше робот будет приближаться к цели, тем более растерянным он начнёт казаться.

      Пока он далёк от цели, физический робот ведет себя почти таким же образом, как его виртуальный собрат, перемещающийся целенаправленно к месту назначения. Но когда робот прибудет в зону в пределах 10–20 метров от цели, предел разрешения GPS системы вызовет хаос в системе управления поворотно/поступательным движением, описанной выражением Home_GPS.

      В какую-то секунду прибор GPS может сообщить роботу, что он находится именно в той самой ячейке таблицы, которая и есть место назначения. Но в следующую секунду прибор сообщит, что робот находится в ячейке слева и поэтому должен развернуться на 90° вправо, а еще в следующую секунду – что робот находится в ячейке справа СКАЧАТЬ