omlin писал(а):красный квадрат, появляющийся при первом достижении стены - это маяк достигнув его во второй раз, делаем вывод, что обход контура завершен
Эк у вас всё красиво, это хорошо если контур всего один, а если в помещении их несколько - на каждый контур маяк перетаскивать, чтобы контур замкнуть?
С одним контуром всё будет ок, если только случайно не окажется, что погрешность перемещения больше минимальной ширины прохода в помещении. Иначе в этом случае замыкание по маяку не будет работать - в этом случае контур может быть замкнут до того, как мы обойдем всё помещение, и даже если мы попытаемся при замыкании учесть направление, всё равно может быть косяк:
=DeaD= писал(а):Эк у вас всё красиво, это хорошо если контур всего один, а если в помещении их несколько - на каждый контур маяк перетаскивать, чтобы контур замкнуть?
контуров много. про маяк я кстати расписал еще в самом первом сообщении...
задача обхода одного контура - решается именно выставлением маяка и потом его захватом обратно. в физическую природу маяков предлагаю пока что не вдаваться, с алгоритмом главное завершить :)
=DeaD= писал(а):контур может быть замкнут до того, как мы обойдем всё помещение
это я и имел в виду:
omlin писал(а):конечно, при наличии больших погрешностей возможны слишком серьезные искажения контура, вплоть до пересечения линий этого контура между собой, что весьма критично для завершения обхода...что делать с серьезными искажениями - пока, честно сказать не знаю (кроме как пройти контур еще раз, и усреднить полученные в результате первого и второго прохода линии)
omlin писал(а):задача обхода одного контура - решается именно выставлением маяка и потом его захватом обратно. в физическую природу маяков предлагаю пока что не вдаваться, с алгоритмом главное завершить
Ну совсем то абстрагироваться от реальных проблем не стоит наверное? Так ведь и допущение можно сделать, что ошибки не накапливаются?
Прочитал тему с начала. Можно придумывать кучу алгоритмов, но также было бы неплохо их проверить в симуляторе. Вот симулятор я и хочу предложить. Это графический язык Game Logo. Подробности тут: http://www.myrobot.ru/logo/tutorial.php Робот черепашка имеет датчик (датчик цвета, но для нас это будет датчик касания) и энкодеры (правда без погрешностей, но погрешности можно ввести искуственно, рандомно). Рисуем комнату, мебеля, вещи, пишем алгоритм - смотрим как черепашка закрашивает комнату. По результатам делаем вывод об эффективности алгоритма.
Добрый день! На счет алгоритма обхода подскажите, пожалуйста: есть ли уже описанные/отработанные/стандартные алгоритмы обхода помещения? например, змейкой? Я имею ввиду код на каком-нибудь языке или хоть блок-схему. В качестве параметра задается, например, многоугольник помещения и ширина робота. (в поисковиках по запросу "алгоритм змейка" и тп - выдаются ответы про игру змейка..)
Если карта помещения есть и положение робота известно точно в любой момент времени. Например, для карты в виде пустого прямоугольника, для прямоугольника с препятствиями внутри, для многоугольника с препятствиями внутри.
То есть, изначально есть карта обрабатываемой поверхности (для пылесоса или газонокосилки) и довольно точная система позиционирования робота. Как нарисовать оптимальный путь, по которому должен пройти агент, чтобы полностью "закрасить" площадь помещения или газона? Какие способы считаются "классическими"? по каким запросам найти их описания?
ни код, ни блок-схемы, ни какое-либо ещё обобщённое описание алгоритма вам не помогут. пока будете пытаться понять почему, тут https://blockly.games/turtle?lang=en&level=10 можно помедитировать над алгоритмом змейки.
Angel71 писал(а):ни код, ни блок-схемы, ни какое-либо ещё обобщённое описание алгоритма вам не помогут. пока будете пытаться понять почему, тут https://blockly.games/turtle?lang=en&level=10 можно помедитировать над алгоритмом змейки.