roboforum.ru

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

 

Нечеткое управление

Автомат, адаптивный автомат ... разум

Сообщение Vovan » 01 мар 2006, 23:43

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

Сообщение Антон » 02 мар 2006, 12:19

А что можно взять для определения координат, или как это сделать впринципе?  А если отслеживать расстояние и угол на которые перемещается машина или, погрешность все равно будет слишком велика?
К сожалению связь с внешним миром не предусмотрена, а вычислительная система не позволит в рил тайм обрабатывать видео и строить картину окружающего мира(для этого надо делать распределенные вычисления на метричных нейропроцессорах и попутно кучу железа для видеозахвата..)
Антон
 
Сообщения: 11
Зарегистрирован: 28 фев 2006, 12:02
Откуда: Питер

Сообщение Антон » 02 мар 2006, 12:23

Привязка к двум точкам - это когда робот двигается относительно двух неподвижных маяков? Нечеткое управление необходимо для обхода препятствий, но тогда все координаты то же должны быть нечеткими...
Антон
 
Сообщения: 11
Зарегистрирован: 28 фев 2006, 12:02
Откуда: Питер

Сообщение Vovan » 02 мар 2006, 13:04

Если говорить о принципе (алгоритме) то мне енто видится так (пока очччень грубо, в первом приближении): у робота имеется дальномер (1 или 2) которы(й)е постоянно "сканиру(е)ют" удаление робота от обоих "привязнЫх" точек и сверяют полученное значение с заданым, а когда оно совпадёт - приехали! :D А какие либо другие датчики, в соответствии с преоритетами (преимуществами) управляют роботом касательно препятствий. Вот тут и можно применить нечёткое управление, описанное в приведённой выше ссылке.
Есть другой вариант (точно совпадающий с описанием того терминатора) если в конечную точку поставить маяк... Но это слишком просто и в таком случае и движение на маяк и объезд препятствий совершаются обычным методом ваще на простеньком контроллере с очень простенькой программой, неоднократно описанной и на страницах форума и на сайтах по робототехнике.  
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение Антон » 02 мар 2006, 13:19

Если взять первый вариант, то выходит что робот может определять координаты только в непосредственной близости от маяков( в зоне прямой видимости и на расстоянии работы дальномера). И надо еще как то отделить маяки от посторонних предметов, только с одним дальномером это сложновато.
Антон
 
Сообщения: 11
Зарегистрирован: 28 фев 2006, 12:02
Откуда: Питер

Сообщение Vovan » 02 мар 2006, 14:12

Да, конечно, речь идёт о работе в зоне прямой видимости точки (точек) осчёта, или конечной. А иначе нужно делать либо, как говорил  =Dead=, с энкодерами на колёсах (что естесно даёт большую погрешность), либо делать систему "зрения" с распознаванием, либо строить сложнейшую систему навигации робота с, уже заложенной, картой местности... А как иначе? Тут ведь задача - прийти в заданную точку - это значит, что точка задана каким-то из трёх вариантов - 1.образ (точки) его надо найти и распознать, 2.удаление от исходной (точки, точек) измеренное колёсами робота, 3. координаты точки относительно мгновеных координат робота. На основании выбранного варианта определяемся с "датчиками" и только тогда можно говорить об алгоритме. Но во всех трёх случаях (согласен с =Dead=) о нечётком управлении можно забыть...
В случае же, если нужны просто эксперементы по нечёткому управлению тележкой с предложенными Вами датчиками, мне кажется (ИМХО) ставить такую ёмкую задачу нереально... Проработать же нечёткое управление можно (ИМХО) и на простых моделях и, как обычно, от простого к сложному.... :D
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение =DeaD= » 02 мар 2006, 14:17

Vovan писал(а):Если говорить о принципе (алгоритме) то мне енто видится так (пока очччень грубо, в первом приближении): у робота имеется дальномер (1 или 2) которы(й)е постоянно "сканиру(е)ют" удаление робота от обоих "привязнЫх" точек и сверяют полученное значение с заданым, а когда оно совпадёт - приехали!

Как это вы интересно собираетесь наводить дальномер на "привязные точки"? У вас же неизвестно где они :)

Vovan писал(а):Есть другой вариант (точно совпадающий с описанием того терминатора) если в конечную точку поставить маяк... Но это слишком просто и в таком случае и движение на маяк и объезд препятствий совершаются обычным методом ваще на простеньком контроллере с очень простенькой программой, неоднократно описанной и на страницах форума и на сайтах по робототехнике.  

Маяк в точке финиша скорее всего полностью решит проблему, если мало препятствий не много, если же их много, то нужно или хитрый маяк, или несколько их, чтобы можно было примерно свое место знать в абсолютных координатах.
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 02 мар 2006, 14:18

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

Зависит от массы факторов, как то поверхность, качество и типы двигателей, шасси, энкодеров и т.п.

А также естественно от количества поворотов и расстояния, которое нужно пройти до финиша.
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 02 мар 2006, 14:19

А нечеткое управление впихнуть можно много куда, в том числе и в навигацию, только смысл в этом не всегда есть.
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение setar » 09 мар 2006, 13:32

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

Я писал (переписывая по чужим исходникам) бота управления персонажем MMORG, очень правильная и чёткая структура логики программы, самообучение, гибкая настройка, выбор оптимального маршрута и прочее.

Я работая с этим ботом добился 80% эмуляции действий реального игрока.
Аватара пользователя
setar
Site Admin
 
Сообщения: 9230
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение lebaon » 09 мар 2006, 19:53

сетар, а можно и мне прислать(очень интересно) :?:
Аватара пользователя
lebaon
Безбашенный Теоретик
 
Сообщения: 1137
Зарегистрирован: 07 янв 2006, 18:30
Откуда: Подмосковье

Сообщение Digit » 09 мар 2006, 20:54

Сетар, а насколько применимы алгоритмы и идеи, реализованные в боте, для роботостроительства? (На Ваш взгляд :))
И если применимы, может устроим публичное обсасывание бота на страницах форума?  :roll:
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Сообщение lebaon » 09 мар 2006, 21:21

да, точно, может на сервер выложишь :?:
Аватара пользователя
lebaon
Безбашенный Теоретик
 
Сообщения: 1137
Зарегистрирован: 07 янв 2006, 18:30
Откуда: Подмосковье

Сообщение Vovan » 09 мар 2006, 21:57

To Setar:
Очень интересно ознакомиться бы было!
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение setar » 10 мар 2006, 15:57

lebaon писал(а):сетар, а можно и мне прислать(очень интересно) :?:

Выкладываю то что послал Антону:

Код: Выделить всёРазвернуть
Я думаю разберёшься.

собственно тебе нужна будет логика формирования линии поведения.
Я сбросил тебе исходники и мануал по управлению (он тебе понадобиться
просто чтобы отслеживать команды управления и как они обрабатываются)

Чтобы ты понимал, я тебе раскажу общий смысл:
Есть Игрушка Ragnarock Online - этакая фентези бродилка,
многопользовательский мир.
у игрока есть клиенская часть а сервер (с платным доступом) общий.

Этот бот представляет собой интелектуальную прослойку между клиентом и
сервером, работает на уровне пакетов.

Так как бот тебе всё равно не запустить в действие т.к. нужна
клиенская часть и доступ на сервер, то рекомендую сразу разбирать по
полочкам модуль aiModule.pl в нём основная логика.
остальные части имеют вспомогательное предназначение.
так же для запуска бота нужны конфигурационные файлы управления и
специально преобразованные карты месности, если они тебе понадобятся -
скажи, вышлю.


Рассказывать как оно действует не могу - во первых много всего, во
вторых некоторые штуки и сам забыл, давно занимался.
но основная мысль в том что ведётся два пула задач - планируемые и
выполненные.
пул планируемых задач периодически перетосовывается в зависимости
от внешнего окружения ,приоритетов,настроек конфигураци, реакции
на предыдущие действия и т.д.

Код большой, рекомендую разгрызать постепенно - выдели блоки, разбей
на куски, выброси неважное.
Скромные комментарии могут слегка помочь.
Вложения
manual.rar
(19.38 КиБ) Скачиваний: 147
new_src.rar
(1.64 МиБ) Скачиваний: 628
Аватара пользователя
setar
Site Admin
 
Сообщения: 9230
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Пред.След.

Вернуться в Алгоритмы

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

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

Mail.ru counter