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

Автор: Александр Барсуков
Издательство:
Серия:
Жанр произведения: Техническая литература
Год издания: 0
isbn: 5-9706-0013-X
Скачать книгу
пределами своего разрешения ни одна система позиционирования не выдаст значащую информацию. Таким образом, первый вопрос к любой системе позиционирования – каково её разрешение?

      В зависимости от обстоятельств, предел разрешения обычного 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° вправо, а еще в следующую секунду – что робот находится в ячейке справа от цели и должен обернуться на 90° влево.

      Чтобы покончить с замешательством робота, мы должны сначала умерить нашу настойчивость в том, что робот сведёт свою ошибку позиционирования (или расстояние до цели) к нулю. То есть мы должны установить «мертвую зону» в системе управления вокруг Dist = 0. Мы заменим утверждение if (Dist ≠ 0)… на if (Dist > Thresh)…. Теперь робот будет сам решать: находится ли он достаточно близко от цели и может ли завершить самонаведение – когда прибудет в зону погрешности возле цели. Значение погрешности определяется пределом разрешения GPS системы. Как правило, определяется это значение экспериментально.