roboforum.ru

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

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

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

Radist » 15 июл 2011, 11:29

Для начала алгоритм "квадратная спираль + оверлок" в пустой прямоугольной комнате
Код: Выделить всёРазвернуть
фон = room.gif
переменная а
цвет 13
перо 1
опустить перо

переменная х
переменная шаг
переменная ширина_спирали
х = 1
ширина_спирали = 10
шаг = ширина_спирали
спираль:
поднять перо
вперед 1
если датчик <50 то
назад 1
опустить перо
перейти к конец_спираль
иначе
назад 1
опустить перо
вперед 1
конец условия
шаг = шаг-1
если шаг = 0 то
х = х+1
шаг = ширина_спирали*х
направо 90
конец условия
перейти к спираль

конец_спираль:
а = 10
повторять пока а > 1
{
     поднять перо
     вперед 3
     если датчик > 50 то
          назад 3
          опустить перо
          вперед 3
          направо а
а = а / 1.0002

     иначе
          назад 3
          налево 90 + случайный * 90

     конец условия
}
пиши "конец"

Вложения
room.gif
room.gif (3.31 КиБ) Просмотров: 10645
Последний раз редактировалось Radist 19 июл 2011, 12:25, всего редактировалось 2 раз(а).

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

=DeaD= » 15 июл 2011, 11:31

Я вас умоляю - не надо оценивать сферические алгоритмы в вакууме :)

Либо надо добавить препятствия, либо погрешность движения, а лучше и то и другое.

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

Radist » 15 июл 2011, 11:39

Это только для начала, чтоб отработать сам алгоритм. У меня спираль не сразу вышла - язык очень примитивный. А потом можно нарисовать свою мебель, поставить черепашку к стенке у зарядной станции, повернуть ее в нужную сторону. Тема создана для обмена программами/алгоритмами, а также планами комнат.

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

Vovan » 15 июл 2011, 11:41

Можно начинать убираться в комнате yak-40 :wink:
forum90/topic9506-795.html#p212133

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

Radist » 15 июл 2011, 12:18

Это можно
Код: Выделить всёРазвернуть
фон = yak-40.gif
поднять перо
место 50,50
переменная а
цвет 13
перо 1
опустить перо

переменная х
переменная шаг
переменная ширина_спирали
х = 1
ширина_спирали = 10
шаг = ширина_спирали
спираль:
поднять перо
вперед 1
если датчик <50 то
назад 1
опустить перо
перейти к конец_спираль
иначе
назад 1
опустить перо
вперед 1
конец условия
шаг = шаг-1
если шаг = 0 то
х = х+1
шаг = ширина_спирали*х
направо 90
конец условия
перейти к спираль

конец_спираль:
а = 10
повторять пока а > 1
{
     поднять перо
     вперед 1
     если датчик > 50 то
          назад 1
          опустить перо
          вперед 1
          направо а
а = а / 1.0002

     иначе
          назад 3
          налево 90 + случайный * 90

     конец условия
}
пиши "конец"

Вложения
yak-40.GIF
yak-40.GIF (4.28 КиБ) Просмотров: 10482

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

Vovan » 15 июл 2011, 12:25

:crazy:
Вложения
Room_yak_40.gif

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

Radist » 15 июл 2011, 12:45

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

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

=DeaD= » 15 июл 2011, 13:40

Надо сделать толщину окружности в радиус пылесоса :)

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

Michael_K » 15 июл 2011, 15:56

Да в этом лого, к сожалению, приходится извращаться, если делаешь широкую линию , то черепха подъезжая к стенке ее (стенку) закрашивает и едет сквозь стенку спокойно по своему только что нарисованному следу.
Последний раз редактировалось Michael_K 15 июл 2011, 19:47, всего редактировалось 1 раз.

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

Gelios » 15 июл 2011, 16:18

Отработка алгоритмов на компьютере хорошая идея :good:
Было бы хорошо рас , сформировали отдельную темку , и программу Game Logo выложить , а то как не искал так и не нашел :cry: . Хотелось бы тоже опробовать :)

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

Eruman » 15 июл 2011, 16:38


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

Michael_K » 15 июл 2011, 19:44

Алгоритм "газонокосилка"
Код: Выделить всёРазвернуть
фон = path.gif
переменная угол_поворота
переменная пройденный_путь
переменная флаг
цвет 14
перо 1
опустить перо

флаг = 1
пройденный_путь =0

повторять 10000
{
     поднять перо
     вперед 3
     если датчик > 50 то
          назад 3
          опустить перо
          вперед 3
          пройденный_путь = пройденный_путь+3
     иначе
          назад 3
          если пройденный_путь < 15 то
               угол_поворота = 90
              если флаг = 1 то
                  налево угол_поворота
                  флаг = 0
              иначе
                  направо угол_поворота
                  флаг = 1
              конец условия
          иначе
              угол_поворота = 180 - (15/пройденный_путь) * 180 / 3.14
              если флаг = 1 то
                  направо угол_поворота
                  флаг = 0
              иначе
                  налево угол_поворота
                  флаг = 1
              конец условия
          конец условия
          пройденный_путь = 0
     конец условия
}
пиши "конец"
lm1.jpg
lm2.JPG


Добавлено спустя 5 минут 16 секунд:
у оверлока нужно угол отскока уменьшить. А чтобы он круги не мотал, попав в чистое поле, ограничить движение по дуге разумной цифрой.

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

Vovan » 15 июл 2011, 22:14

ИМХО команду "поднять перо" употреблять не следует, т.к. применительно к пылесосу, пока, эта команда не подходит - у него всегда "перо опущено".
Про необходимость "поднятия пера" у пылесоса - в соседней теме.

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

Michael_K » 15 июл 2011, 22:26

разрешаю не употреблять :)

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

Radist » 15 июл 2011, 22:41

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


Rambler\'s Top100 Mail.ru counter