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 КиБ) Просмотров: 10630
Последний раз редактировалось Radist 19 июл 2011, 12:25, всего редактировалось 2 раз(а).
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

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

Сообщение =DeaD= » 15 июл 2011, 11:31

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

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

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

Сообщение Radist » 15 июл 2011, 11:39

Это только для начала, чтоб отработать сам алгоритм. У меня спираль не сразу вышла - язык очень примитивный. А потом можно нарисовать свою мебель, поставить черепашку к стенке у зарядной станции, повернуть ее в нужную сторону. Тема создана для обмена программами/алгоритмами, а также планами комнат.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

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

Сообщение Vovan » 15 июл 2011, 11:41

Можно начинать убираться в комнате yak-40 :wink:
forum90/topic9506-795.html#p212133
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

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 КиБ) Просмотров: 10467
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

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

Сообщение Vovan » 15 июл 2011, 12:25

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

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

Сообщение Radist » 15 июл 2011, 12:45

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

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

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

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

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

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

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

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

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

Отработка алгоритмов на компьютере хорошая идея :good:
Было бы хорошо рас , сформировали отдельную темку , и программу Game Logo выложить , а то как не искал так и не нашел :cry: . Хотелось бы тоже опробовать :)
Любая высокоразвитая технология похожа на волшебство
Gelios
 
Сообщения: 219
Зарегистрирован: 16 июл 2010, 16:25
Откуда: Беларусь , Минск

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

Сообщение Eruman » 15 июл 2011, 16:38

Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

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 секунд:
у оверлока нужно угол отскока уменьшить. А чтобы он круги не мотал, попав в чистое поле, ограничить движение по дуге разумной цифрой.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение Vovan » 15 июл 2011, 22:14

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

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

Сообщение Michael_K » 15 июл 2011, 22:26

разрешаю не употреблять :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение Radist » 15 июл 2011, 22:41

А я наоборот поддерживаю предварительную проверку стены. Реальный пылесос в стену заехать не может, а черепашка заезжает. И если она принесет туда след, то потом будут глюки с определением стены. Так что я за поднятие пера перед проверкой.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

След.

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

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

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