| ||||
: О проекте :: Устройство робота :: Фото и видео :: Демострационный софт :: О авторе : | ||||
Алгоритм формирования локальной карты местностиДля планирования движения робота в среде с препятствиями необходима информация о препятствиях не только в видимой с телекамеры зоне, но и за ее пределами (например, сбоку от робота). Поэтому возникает необходимость составления карты местности в некоторой небольшой окрестности вокруг робота. Размеры этой окрестности должны быть небольшими, во-первых, из-за ограниченного объема памяти для хранения карты местности, а во-вторых, из-за возможности возникновения на этой карте "препятствий-призраков". В вычислительном плане удобно организовать локальную карту местности в виде массива переменной длины (n). Каждый i-ый элемент этого массива содержит двухмерный вектор декартовых координат (Mi,X, Mi,Y) i-ой дискреты карты. Координаты Mi,X, Mi,Y заданы в связанной с роботом системе координат. Для формирования карты местности на каждом такте расчета необходимо применять следующий алгоритм: 1. Каждую i-ую дискрету локальной карты местности необходимо повернуть вокруг центра координат на величину азимутального поворота (Da) робота за такт расчета; далее учтем линейное перемещение (DL) робота за такт расчета. Тогда можно записать: Знак ":=" в этих выражениях следует понимать как оператор присвоения. При расчете данных выражений величины sin(Da) и cos(Da) необходимо вычислить перед началом цикла. x0, y0 - промежуточные переменные. 2. Удалить все дискреты, вышедшие за пределы локальной зоны: Здесь: Wmap - ширина локальной зоны (будем считать, что зона симметрична относительно курсовой оси робота) (Рис. 1, а); Lперед и Lзад - передняя и задняя граница локальной зоны (Рис. 1, а). 3. Удалить те дискреты карты, которые располагаются в видимой с телекамеры зоне (на их место будет наложена карта расположения препятствий в видимой зоне). Для этого определим границы видимой зоны. Вычислим величину "мертвой зоны" Ymin (Рис. 1. б). Из треугольника AOC выразим величину D: Тогда: Здесь: XС, YС, ZС - положение камеры относительно центра координат робота; FOVx, FOVy - углы обзора камеры по горизонтали и вертикали соответственно. Для каждой i-ой дискреты локальной карты местности совершим следующие действия: ЕСЛИ Mi,Y>Ymin, ТО:Рассчитаем для этой точки граничное значение Xm: 4. Удалить одну из двух дискрет карты, расстояние между которыми мало (удалить совпавшие дискреты). 5. На полную локальную карту местности следует наложить карту расположения препятствий в видимой зоне. Экспериментальные исследования алгортима формирования локальной карты местностиДля проведения экспериментальных исследований сформируем перед роботом какие-либо препятствия. После чего повернем робота. Можно заметить, что на локальной карте препятствия, которые были в видимой (белой) области до поворота (рис 6, а) повернулись и попали в невидимую (серую) зону (рис 6, б). Это показывает работоспособность описанных алгоритмов.
| ||||
Дизайн: DynSoft |