роботы робототехника микроконтроллеры


 Страниц (4): [1] 2 3 4 »   

> Описание: Объезд препятствий с помощью радара
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



Пролог -
Есть "радар" - ик-дальнометр на серве.Угол обзора сервы(180 градусов) пока разбит на 10 (потом 20-30) частей в которых происходит считывание с дальнометра
Таким образом имеем массив с полярными координатами(которые переводятся в декартовы и отправляются на экранчик)
Итак проблема - не могу придумать алгоритм РАЦИОНАЛЬНОГО объезда препятствий рёв в три ручья Смущение Ламер
Рационального - НЕ тупо в перёд назад пока не отедим а обходя припятствия
Ваши предложения господа Улыбка
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Увидев препятствие, остановиться и повертеть головой- это твое же предложение. Голливудская улыбка

Сразу поправка- оптимальность ограничивается дальностью действия дальномера.

Предположим, что цвет препятствия одинаков на всем его протяжении => погрешность измерений минимальна. С учетом того, что препятствие не всегда будет перпендикулярно первоначальной траектории движения, придется строить треугольник, вершинами которого станут бот и два края препятствия. Выбираем объезд с той стороны, путь с которой будет короче.
Можно извратиться и по достижении края препятствия при помощи того же дальномера следовать вдоль его боковой грани и по ее окончании вернуться к первоначальной траектории движения.

Я так себе это представляю. Улыбка
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



+ - обтимальный объезд
- - два припятствия близко расположенных не проходимы
но всё равно спасибо
(Добавление)
идея -
находить самое длинное и близкое припятствие отворачиваемся от него на заданный угол(определяется скажем 3 порогами в зависимости от растояния до Большого припятсятвия)
запоминаем поворот и снова сканировать
Жду конструктивную критику Улыбка
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Смотря насколько близко они расположены.

И потом не забывай, когда ты ищешь арку в длиннющем доме- ты тоже вынужден за каждый угол заглядывать, чтобы лично убедиться в наличии там именно арки, а не закутка- гадюшника. Это я про новостройки наши, ты понял о чем я.
То есть это вполне природное поведение- подойти и посмотреть в случае сомнения.
Сомнение- нелинейность показаний дальномера.
У тебя же дома нету круглых шкафов или стен? Улыбка
(Добавление)
Цитата:
находить самое длинное и близкое припятствие
В смысле- самое длинное И самое близкое, или же самое длинное ИЛИ самое близкое?
Цитата:
в зависимости от растояния до Большого припятсятвия
Откуда взялось Большое препятствие?
Прости, я не въехал.
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



1)САмое (длинное && близкое) Улыбка
Большое - см п.1
Если подозрение на арку далеко я как человек ленивый туда не пойду
Дальнометр по заявлению производителя(Sharp) до 80см(сомнительно но ладно)
а размер бота не больше 150*150 мм
(Добавление)
Вообще я мечтаю об алгоритме который бы находил оптимальный маршрут по двухмерному массиву в котором находятся декартовы координаты относительно бота
Ктонибудь пробовал "левую руку"
(Добавление)
Всем спокойной ночи пошёл спать
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



По поводу прохода между препятствиями- я, к сожалению, все забыл нафиг, но нужно посчитать исходя из того, что ты планируешь разделить 180* на 30 шагов- это получается 6*. На расстоянии 80 см это составит сколько сантиметров? Что-то около 8, если я ничего не перепутал.
Таким образом, в любом случае- есть там рядом препятствие или нет, придется дальномер еще на один шаг поворачивать, чтобы убедиться, что препятствие действительно закончилось / либо проход достаточно широк для агрегата 15*15 см.
Если же препятствие засечено на расстоянии, скажем, 40 см- один шаг будет уже 4 см. Т.е. минимум 4 шага должно быть пусто.
С учетом того, что направление измерения не всегда будет совпадать четко с краем препятствия, уменьшать количество шагов не целесообразно. Иначе вырастет погрешность.

Цитата:
Если подозрение на арку далеко я как человек ленивый туда не пойду

А если эта возможная арка ближе чем другой край дома, в котором ты уверен?

Цитата:
САмое (длинное && близкое)
Мы его по-любому меряем?

Цитата:
отворачиваемся от него на заданный угол(определяется скажем 3 порогами в зависимости от растояния
А в зависимости от размера?

Спокойной ночи!
(Добавление)
Я пробовал правую. Робот по кругу ездит. Скучно.
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



бот_м_16
Если у Вас есть двумерный массив в декартовых координатах, внутри которого находится, в каком-то смысле, лабиринт, где Вам нужно найти оптимальный маршрут (речь о минимальном расстоянии от текущей точки до точки назначения, которая должна быть известна), то можете использовать волновой алгоритм.
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



2 Белый Волк А можно поп побробней?
Да кстати господа лабиринта по сути дела нет - поле и перед ботом три берёзы Улыбка
2 Олег
1)Тогда придётся
2) В каком смысле мереем - оценить его длину можем
3)В смысле ?
(Добавление)
ОГРОМНОЕ СПАСИБО Белый Волк
Буду эксперементировать но видемо это то что мне нужно высший восторг высший восторг Одобряю
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



бот_м_16
Прошу прощения. Я неверно понял задачу. Волна не будет работать в поставленных условиях.

Есть ли у Вашего робота возможность ориентироваться в пространстве (знать свои текущие координаты на хранящейся карте)?
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



Карта динамическая положение бота 0 0
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Цитата:
2) В каком смысле мереем - оценить его длину можем

Цитата:
3)В смысле ?

Я не понял, зачем тогда выбирать самое длинное препятствие , если заданный угол будет определяться расстоянием?

В смысле, что края препятствия будут иметь относительно робота какие-то координаты, рассчитанные исходя из расстояния и угла поворота шарпа.
Так и угол должен выбираться исходя из этих координат.

Просто с твоих слов у меня рисуется картинка, что бот видит нечто большое и близкое перед собой и поворачивает, скажем, на 30* влево автоматически, не оценивая другие варианты. Повернув, снова шарит радаром и так далее.
Замешательство

Я себе представляю два варианта:
1. Повернуть направо на угол Бэта. Оптимальность определяется выбором наименьшего угла относительно оси движения.
2. Повернуть на 90 *вправо и ехать вдоль оси Х до отметки "2", которую мы высчитываем по формулам, затем поворачиваем на 90* влево и едем вдоль оси У до отметки 16, которую мы тоже посчитали. Оптимальность определяется минимальным выражением 2Х+У, то есть наиболее коротким путем.

Критикуйте.
Прикреплено изображение
Безымянный1.JPG

 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



интересно попробую Одобряю
// Мечты
Вариант осноавнный на волне (скорей всего будет реализововатся на компе) -
составляем полноценную карту (двух мерный массиив karta[n][m] ) где н - Х , м - У
значения ху 75 и 75
Угол обзора 180 градусов разбиваем на 20 зон , ставим фильтр на 75 см (то что дальше 80см дальнометр выдаёт за бесконечность)
снимаем показания (полярные координаты припятствия) с этих зон
переводим полярные в декартовы н и м и получаем карту(в элимент массива с нм вносится значение препятствия) начальная точка известна конечная тоже а дальше класическая волна .Прелесть всего этого в том что маштаб массива 1см(не считая погрешности показаний и расчётов)
// Мечты
Почему не оценивает ? Он всё обсматривает все 180
Но делает разворот от большого и близкого в зависимости от остальных показаний(они какраз и влияют на угол отворота)
(Добавление)
2 Олег Добавка
буфера не помешает те если припятствие слишком далеко не обращать на него внимание
всёже доезжать по У не стоит до шестнадцати
(Добавление)
если несколько припятствий близко находятся проверить влезит ли бот между ними
CODE:

/ \
/ \
/ \

бот

Олег Одобряю Одобряю МОЛОДЕЦ БУДУ ПРОБОВАТЬ Одобряю Одобряю
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



Правда сложные припятствия так не пройти Закатывать глаза
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



А сколько раз ты, уважаемый бот_м_16, весело прыгая по грязи, пытаясь обойти большую лужу, вдруг понимал, что ты в тупике и еще один прыжок- и, в принципе, можно уже идти так, потому что попытка не удалась и ноги мокрые? Голливудская улыбка

Цитата:
(Добавление)
если несколько припятствий близко находятся проверить влезит ли бот между ними

Бот не поймет, что несколько препятствий расположены близко.
Достигнув края препятствия радаром и получив бесконечность на дальномере, необходимо повернуть дальномер еще на несколько шагов в ту же сторону, чтобы убедиться что проход достаточно широк. Количество шагов выбираем исходя из расстояния до ранее обнаруженного препятствия, как я писал выше.

Да пребудет с тобой Сила! Улыбка
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



бот_м_16
Волна неоправданно требовательна к ресурсам в данном случае.
Если карта всё же есть - Вам лучше подойдёт алгоритм Дейкстры:
http://ru.wikipedia.org/wiki/Алгоритм_Дейкстры

При этом, вершинами графа необходимо считать крайние точки препятствий, точку нахождения робота в данный момент и точку назначения. После выполнения алгоритма (его можно несколько оптимизировать для данной задачи, также необходимо ставить метки, по каким именно вершинам найден данный путь), Вы будете иметь список точек, по которым необходимо проехать, чтобы попасть в пункт назначения по кратчайшему пути.
 
 Top
Страниц (4): [1] 2 3 4 »
« Алгоритмы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru