roboforum.ru

Технический форум по робототехнике.

Алгоритм - обход пылесосом территории

Re: Алгоритм - обход пылесосом территории

EdGull » 03 апр 2008, 12:02

Посмотрим, но зато мне сейчас понятно в каком направлении мне двигаться.

Re: Алгоритм - обход пылесосом территории

magdanoz » 01 июн 2008, 00:36

Всем привет!
Попал в руки iRobot-пылесос. Разобрал, чтобы выучить его конструкцию. Очень прост - 2 датчика, следящие за лестницой. Датчик на колесиках - если робот перевернулся или поднят, он выключаеться. Какой-то сонар, следящий за припядствиями впереди (некруто работает). Контактный датчик для столкновения. Алгоритм - случайного прохождения комнаты (был дешевый вариант...При более дорогих вариантах - есть карта помещения).

А сейчас по теме: Решен ли алгоритм движения робота? Случайным ли будет, или в памети будет установлена карта? Или другой метод? Не все ясно еще. У меня сейчас самaя "живая" проблемма - устройство пылесоса и как его сделать в домашних условиях. :)
Пока все...
До встречи! :)

Re: Алгоритм - обход пылесосом территории

EdGull » 01 июн 2008, 19:00

я буду делать на локациях ИК-маяков, без карты как таковой.
Утюжить буду ковровым бомбометанием....

Re: Алгоритм - обход пылесосом территории

loid » 17 июн 2008, 14:39

EdGul, что значит "утюжить" - поясни.
У моего робота будет ориентация в пространстве на датчиках припятствия и энкодерах. ВЕрнее энкодеры и БАЗА, на которой будет запраывляться и заряжаться робот. Планирую сделать чтобы он не зависел от помещения, так сказать готов к уборке сразу же в любом новом помещении. Проблемка на данном этапе как запоминать куда ехал, где был, т.е. думаю нужно создавать файл и сохранять в него ранные в "путешествии" робота. ДУмаю не обойдётся без подключения карты памяти, чего пока не делал. ТАк же нужно обжумать формат карты местности (в файле) каким алгоритмом (или как ещё назвать) заносить информацию. Возможно это будут координаты векторов иил двумерный массив. В общем думать надо. Если у кого есть идуи - предлагайте.

Re: Алгоритм - обход пылесосом территории

EdGull » 17 июн 2008, 16:18

я уже объяснял
ствавим 4 шарпа на каждуую сторону пылесосу, и едем на одинаковом расстоянии от стены пока почти не упремся, потом "хитрый" разворот на 180 градусов и поехали обратно и так пока не проедем всю локацию

Re: Алгоритм - обход пылесосом территории

SkyStorm » 17 июн 2008, 17:10

EdGull писал(а):я уже объяснял
ствавим 4 шарпа на каждуую сторону пылесосу, и едем на одинаковом расстоянии от стены пока почти не упремся, потом "хитрый" разворот на 180 градусов и поехали обратно и так пока не проедем всю локацию

Дальность Шарпа 80 см, вывод комната в идеале должна быть шириной 160 см )))
потому как если оно будет 170 см и от пылесоса докаждой их стенок будет более 80 см ориентация будет потеряна.

Re: Алгоритм - обход пылесосом территории

EdGull » 17 июн 2008, 19:39

ну какие вы все настырные... УЗ же еще никто не отменял для дальних дистанций

Re: Алгоритм - обход пылесосом территории

Redallex » 17 июн 2008, 20:04

В доме где пылесос с УЗ нибудет ни собак, ни кошек, ни мышей, вообще одни глухие люди :D

Re: Алгоритм - обход пылесосом территории

EdGull » 17 июн 2008, 20:11

у меня нет ни собак, ни кошек, ни мышей один я старый и глухой... :D

Re: Алгоритм - обход пылесосом территории

loid » 18 июн 2008, 10:02

Что то не пойму, где тут умный обход территории, если тупо ездим до стены и поворачиваем на 180 градусов. :D

Re: Алгоритм - обход пылесосом территории

Myp » 18 июн 2008, 10:23

это для тебя тупо

а для куска пластика на колёсиках это достаточно интеллектуально :D

Re: Алгоритм - обход пылесосом территории

EdGull » 18 июн 2008, 11:13

loid писал(а):Что то не пойму, где тут умный обход территории, если тупо ездим до стены и поворачиваем на 180 градусов. :D

вот привяжи к своему боту кусок мокрой тряпки и покажи как протрет всю комнату, а потом буудем говорить умный у тебя обход или нет :wink:

Re: Алгоритм - обход пылесосом территории

omlin » 18 июн 2008, 12:10

А давайте все-таки предположим, что помещение представляет собой достаточно замысловатую систему коридоров, комнат, и препятствий любых размеров.
И все это нужно пропылесосить...


Этап №1

1. Едем вдоль стенки (стенка, предположим, слева), лучше - слегка касаясь ее.
2. Если обнаружили проем (поворот стены налево) - поворачиваем налево
3. Если обнаружили выемку (поворот стены направо, или препятствие) - поворачиваем направо
4. С помощью энкодеров запоминаем (ясное дело, примерно) пройденное расстояние, и направление движения.
Если линии на построенной таким образом виртуальной карте - сошлись, тогда переходим к этапу №2, иначе - см. п.1

Этап №2

1. Делим получившуюся карту на прямоугольные области.
Делается это достаточно просто: все линии продляются до ближайшего пересечения.
Пример:
cleaner_1.gif
Карта, сформированная роботом, с выделенными прямоугольными областями
cleaner_1.gif (4.32 КиБ) Просмотров: 8089


2. Те прямоугольники, которые не касаются "стен", соединяем с первыми прямоугольниками.
3. Продолжаем движение "по стеночке" до ближайшего угла любой из выделенных прямоугольных областей
4. Если прямоугольник очень маленький по длине или ширине - просто единожды проезжаем по нему. Иначе, начинаем объезжать прямоугольник: например, любимой здесь змейкой, тщательно отмечая на виртуальной карте виртуально пройденный путь.
5. В случае обнаружения препятствия на пути!!! Объезжаем это препятствие по кругу (см. этап 1), отмечая границу препятствия на карте.
Затем - достраиваем карту (т.е. по сути, идем в п. 1 этапа 2).
Вот пример движения робота в случае обнаружения препятствия:
cleaner_2.gif
Обработка препятствий сложной формы
cleaner_2.gif (7.56 КиБ) Просмотров: 8071

6. Начало и конец объезда будет в углу текущего прямоугольника, т.е. скорее всего около стеночки. Стеночка, кстати, и ее повороты - являются в данном алгоритме регулирующим и корректирующим фактором, заменяя маяки. В общем, после окончания обработки одного прямоугольника, по стеночке движемся до угла следующего необработанного прямоугольника, и переходим к п.4

Замечание: в случае наличия непрямых углов, вписываем непрямоугольные геометрические фигуры в прямоугольники.
Например:
cleaner_3.gif
Непрямые углы
cleaner_3.gif (5.15 КиБ) Просмотров: 8052

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

Преимущества подхода:
1. Чаще всего будут пылесоситься пространства около стен и в углах - т.е., как раз наиболее запыленные участки
2. С помощью такого алгоритма могут быть пропылесосены даже очень захламленные помещения, типа наших русских квартир :)

Недостатки:
1. В случае наличия непрямых углов, возможен пропуск препятствия, т.к. робот не начнет объезжать его, а продолжит змейку, если расстояние от края прямоугольника до препятствия будет небольшим и будет списано на погрешность измерения расстояния.


Требования к роботу:
1. Выставленный чуть влево датчик касания, фиксирующий движение вдоль плинтуса
2. Энкодеры
3. Бамперы для объезда препятствий
4. Возможность поворота на месте (!!!, это возможно, например, при использовании гусеничного хода) на строго заданный угол


P.S. Сильно не пинать, особенно ногами! Алгоритм придуман навскидку за 5 минут и нисколечко не протестирован.
Но если кто-то полагает, что написать такого рода программу будет очень сложно - могу только посоветовать отказаться от микроконтроллеров и заставить роботов "думать" чем-нибудь помощнее :)

Re: Алгоритм - обход пылесосом территории

EdGull » 18 июн 2008, 12:44

на сколько я помню это первое такое документированние обхода территории
респект! :Bravo:

Re: Алгоритм - обход пылесосом территории

=DeaD= » 18 июн 2008, 12:59

2omlin: Сейчас ваши хрустальные мечты разобьются о чугунную попу реальности -

Вы видели карту составленную по энкодерам в сложном помещении достаточно небольшим роботом (чтобы он мог вообще что-то пылесосить заезжая в углы) ?


Rambler\'s Top100 Mail.ru counter