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 системы. Как правило, определяется это значение экспериментально. Практические значения могут оказаться больше, возможно в несколько раз, предела разрешения.
Чтобы надежно приблизиться к цели ближе, чем описано выше, надо купить систему позиционирования с лучшим разрешением. Но, к сожалению, абсолютные системы позиционирования с высоким разрешением, которые работают по большой области, имеют свойство быть очень дорогими. По этой причине маленькие роботы стараются быть умнее при своём позиционировании. Прямой подход просто стоит слишком дорого.
Примечание: можно одолеть проблему разрешения с помощью усреднения. Если робот остаётся неподвижным в некотором положении какое-то время, это положение составит среднее от изменяющихся позиций, сообщенных системой позиционирования. То есть будет получаться все более точное значение истинной позиции робота (при условии, что ошибки скорее носят случайный характер, чем систематический). Один стационарный приемник, который делает усреднение, чтобы определить истинное местоположение, посылает корректировки позиции мобильному GPS приемнику на роботе. Но решение путём усреднения не свободно от недостатков; его осуществление требует, либо чтобы робот двигался медленно, либо чтобы мы купили более дорогую систему, включающую два GPS приемника, вычислительные аппаратные средства и локальные передатчик/приемник, чтобы сообщать корректировки роботу.
Рис. 1.4. Пример GPS-приёмника, предлагаемого на российском рынке (еще один пример приёмника, встроенного в модуль GSM/GPRS будет в главе о беспроводной передаче данных): LS-40EB (рис. 1.4). Это 12-канальный GPS-приёмник.
Его характеристики:
• количество временных последовательностей поиска: 4000;
• чувствительность обнаружения сигнала, дБм: (-)137;
• чувствительность слежения, дБм: (-)145;
• точность определения СЕР, м: 5;
• рабочие пределы:
– высота, м: до 18000;
– скорость, м/с: до 515;
• питание, В: 3.3;
• потребляемый ток, мА: 67-90;
• размеры, мм: 43x31x6;
• вес, г: 10.
2. Примеры роботов, функционирование которых обусловлено наличием средств ориентирования в пространстве
На рис. 1.5 – авиаробот, который с помощью встроенных средств навигации совершает автономный полёт по запрограммированному маршруту с высокой точностью (подробнее см. журнал «Радиолюбитель» № 1–2 за 2005 г.).
Рис. 1.5
На рисунках 1.6, 1.7, 1.8 – роботы, также нуждающиеся в разнообразных системах навигации, которые могут быть построены на основе различных сенсоров, или датчиков (примеры некоторых датчиков приведены в таблице 1.1).
Рис. 1.6. «Танец» мобильных роботов, Россия
Рис. 1.7. Мобильный робот, Россия
Рис. 1.8. Робот-пылесос, Россия
Таблица 1.1
3. Датчики, реагирующие на воздействия окружающей робота среды
Датчики сведены в таблице 1.1. Примечание: на рис. 1.9 – частотная (кГц) характеристика датчиков MA40B8R и MA40B8S.
Рис. 1.9
Более подробно об универсальном многофункциональном датчике российского производства (рис. 1.10) – измерителе линейного ускорения и угловой скорости ИЛУС-03.
Рис. 1.10
Он осуществляет измерения и регистрацию проекций векторов линейного ускорения и угловой скорости подвижного объекта на его ортогональные направления (оси).
Предназначен для использования в системах:
• регистрации дорожно-транспортных происшествий (ДТП) с восстановлением траектории автомобиля на интервале 15 с до происшествия и 3 с после него;
• отработки и совершенствования техники спортсменов в таких видах спорта, как прыжки в воду, гимнастика, акробатика, фигурное катание;
• управления движением сказочных существ при их «оживлении» в кинематографе и аттракционах.
Технические характеристики:
• диапазон измерения углов поворота, угл. град: ± З60xn;
• скорость углового разворота, угл. град./с: 5-5000;
• диапазон измерения линейных ускорений, м/с
: 0-20 (0-400);