Обсуждение алгоритмов движения пылесоса

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Michael_K » 15 июл 2011, 23:05

только поэтому так и сделано.
Если бы пылесос оставлял за собой след, где он уже убрался, и мог этот след разглядеть (как это делает черепашка), проблем было бы гораздо меньше :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Vovan » 16 июл 2011, 15:18

по моей субъективной оценке алгоритм газонокосилка - оптимален :roll:
Проверял на вирт. кухне (своей) - пылесосит (на глаз) 97%... 3% всё же пропущены, но это ИМХО лучший вариант.
у меня есть мааааленький робот (без встроенного пылесоса) с датчиком "стола" (типо датчик периметра на газонокосе), и бамперами.
На нем я проводил (достаточно давно) тесты применительно к газону и отрабатывал алгоритмы, типо что в этой теме и делается. По наитию (без компа) - точно такой алгоритм у меня и получился (в реале). Правда ещё и бамперы были задействованы для обхода препятстствий (деревьев и клумб), а датчик "стола" (периметра) работал точно также как в алгоритме от Michael_K.
Большинство своих роботов раздарил, продал, разобрал, но этот - уцелел - он не представляет, для обывателя, никакой ценности, но для меня очень удобен для обкатки разл. алгоритмов.
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Michael_K » 16 июл 2011, 16:39

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

Я бы совместил газонокосилку с движением по стенке, только в лого это не очень удобно делать - слишком ветвленая прога получается, а как там сделать функции - фиг знает. Если не поленюсь, напишу.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Vovan » 16 июл 2011, 17:27

Michael_K конечно! :) Это и понятно, кроме того у черепашки всего один датчик, да и погрешностей нет. Ветвление, например в асм не проблема, а вникать в лого чё-то не хочется, а вот результат уборки ИМХО всё же лучше при "типо-упорядоченном" алгоритме чем при своблу за то же время...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Radist » 17 июл 2011, 09:25

2 Vovan: в один проход пылесос пылесосит 97% На следующий день тоже 97% Но теория вероятности не даст совпасть 3% участкам, даже если робот стартует из одного места, так что все ОК.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Vovan » 17 июл 2011, 10:25

Ок то ок, но на самом деле все будет гораздо хуже... Это в идеальных условиях черепашка прямые линии рисует, а в реале их не будет. Кроме того, угол тоже очень не постоянен.
И ваще, я веду к тому, что никакого алгоритма траектории вообще не нужно :D . (здесь я не стану говорить об объезде препятствий и выходе из тупиковых ситуаций - эти алгоритмы простые и многие их осуществили, здесь только об алгоритме траекторий).
Наши роботы абсолютно безмозглы и неконтролируют ни одного параметра траектории, а значит и без алгоритма траектории получается своблу. Я даже не могу отстроить такой фактор как одинаковый разворот (поворот), т.к. если на полу я отстраиваю поворот на 60град, на паласе этот угол уже 45град, а на ковре 30! Конечно, можно выкинуть все ковры и паласы, сделать одинаковое покрытие под робота, но ИМХО не полы для робота нужно строить, а робота для полов - это ж робот, а не дубовый полотер! И вся механика, например моего робота, позволяет с одинаковым успехом чистить и пол и ковровые покрытия - и это соответствует первоначальному ТЗ и это удалось :) С такими муками и сроками получилось то о чем мечталось :) а в конечном итоге беспонтовое устройство которое только создает видимость уборки, а на самом деле, не смотря на возможности механизма, не использует эти возможности :(
Вывод: нужны дополнительные датчики, ну хотя бы энкодер-ы. Но даже энкодеры дают очень не хилую погрешность на разных поверхностях. Ну и навигация (конечно это громко сказано - навигация), но хотя бы какая-то привязка...
ЗЫ: то что мне теперь хочется бОльшего - ИМХО это нормально и характерно для людей - им всегда всего мало :D Кому-то водки вечно не хватает, а мне функциональности построек...
ЗЫЫ: хорошо иметь две темы, но это же и плохо - в одной из них всё равно наоффтопишь, хоть они и две стороны одной монеты...

Добавлено спустя 14 минут 39 секунд:
Забыл ещё вот что сказать (до кучи :wink: ). Производительность моего робота такова, что, например, кухню он должен пропылесосить за чуть больше 2,5мин!
(ширина заборника 0,20м*0,25м\сек=0,05кв.м\сек)
Если б он хотя бы за 5 мин всё сбацал - это было бы супер!
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Eruman » 17 июл 2011, 11:42

Интересный момент про развороты: это очень заметно, когда на разных поверхностях разворот получается по разному. Возможно выходом стало бы использование дополнительного колеса-хвоста (подруливающего колёсика): т.о. можно контролировать угол поворота аппарата (реостат на хвостовом рычажке) и пройденное расстояние (энкодер от мышки)?
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Vovan » 18 июл 2011, 20:12

Об этом варианте ужЕ много раз говОрено, но реально выполненного энкодера на подруливающем колесе пока не встречалось...
Сейчас как раз в раздумье над этим вариантом, но из-за сверхминимализации ентого узла на данном пылесосе, пока не удается осуществить - нужно всю конструкцию переделывать, возможно в скором времени, решусь на новый вариант робопылесоса с учетом всех преимуществ механики этого и с учетом недостатков электроники его же...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение =DeaD= » 18 июл 2011, 20:13

Зачем энкодер на подруливающем колесе, если можно поставить энкодеры на приводных колёсах?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Vovan » 18 июл 2011, 20:37

пробуксовывают они однако, и не слАбо! :(
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Radist » 18 июл 2011, 20:43

Не забывайте про один нюанс: энкодер позволяет узнать сколько прокрутилось колесо. Но нет никакой возможности узнать сколько при этом реально проехал робот, поскольку никак не учитывается проскальзывание колес. Узнать можно только осмотревшись вокруг: маяки, звезды и тому подобное. Но это все сильно усложняет. Допустим у нас есть хороший алгоритм, основанный на случайных числах. Случайные числа могут быть в некотором диапазоне, и то, что колеса ездят не так, как хотелось бы - тоже элемент случайности. То есть алгоритм не должен портиться. Опять же допустим в комнате с робопылесосом есть человек, и робот на него наехал - это не должно приводить к разрыву шаблона. Именно поэтому я и призывал найти такой алгоритм случайного/псевдослучайного движения, который мог бы работать при многих дестабилизирующих факторах. Наверное, такого универсального алгоритма нет, но можно придумать несколько не универсальных и переключаться между ними. Неидеальность алгоритма должна компенсироваться большим числом проходов робота.

Добавлено спустя 54 секунды:
Пробуксовывать может любое колесо, хоть ведущее, хоть пассивное.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Vovan » 18 июл 2011, 20:52

Наверное, такого универсального алгоритма нет, но можно придумать несколько не универсальных и переключаться между ними. Неидеальность алгоритма должна компенсироваться большим числом проходов робота.

Вот! Прям ТО о чём я и говорил :) С той лишь разницей, что "большое число проходов" - это и есть просто слублу(своблу)! Разве нет? :wink:
А я, как раз, не хочу слублу! :x Хочу осмысленной уборки территории, потому что ее можно убрать в несколько раз быстрее и экономнее, чем при своблу...

Пассивное пусть буксует, здесь речь не об этом, речь об углЕ поворота... Во всяком случае ИМХО это колесико (правильно выполненное) позволит намного уменьшить погрешность при поворотах...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение =DeaD= » 18 июл 2011, 21:05

Vovan писал(а):пробуксовывают они однако, и не слАбо! :(

Подруливающее еще хуже на любом повороте пробуксовывает :pardon:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение Vovan » 18 июл 2011, 21:26

Дык пусть буксует! (см. выше) главное чтобы оно на вертикальной оси не буксовало, а это можно снизить до минимума если правильно (правильно - это значит тщательно и скурпулезно отрегулировать легкое скольжение при минимальной площади соприкосновения самого колесика) выполнить конструкцию колесика и развесовку всего устройства. Кроме того, при всякого вида "ступенечках", колесико будет дезориентировано, поэтому нужно предусмотреть дополнительный датчик по вертикальному перемещению ентого узла и запрограмить сброс дезориентации. Этот узел (пассивное поворотное колесо с энкодером на УГОЛ поворота) ИМХО требует тщательной проработки и внимания.
ЗЫ: мождь я и усложняю напрасно всё :oops: потому что ЭТО, возможно, даст только более точно определять угол поворота, а это не панацея естесно :( , ну хоть что-то надо делать!? ну не нравится мне безмозглое брожение пылесоса по принципу случайного блуждания...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Отработка алгоритмов движения пылесоса в среде Game Logo

Сообщение =DeaD= » 18 июл 2011, 21:30

Можно поставить параллельно основным приводным колёсам подпружиненные колёса с резиновым ободом - чтобы движению не мешали, но при пробуксовке основных колёс - стояли на месте, и с них энкодерами показания снимать. ИМХО будет достаточно хорошая точность.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Роботы-пылесосы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0