Обсудим принципы определения задач для сложных роботов?

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

Сообщение =DeaD= » 25 дек 2004, 23:55

Так что-же никто не пишет дельных мыслей?

На затравку - есть следующие задачи:

1. Вопрос с порядком определения новых экземпляров объектов (например, "смотри, это - стол");

2. Вопрос с порядком определения для робота новых действий (например, "принеси объект - это определи месторасположение объекта, переместись в зону захвата этого объекта, возьми объект, переместись к командиру, поставь объект на поверхность рядом с ним");

В первом и втором вопросе важен формат хранения данных и способы обработки.

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

Сообщение =DeaD= » 27 дек 2004, 22:51

Поехали с философией :) (это на тему формата хранения объектов)

Объектом называется совокупность материи, по каким-то причинам, в какой-то степени, связанная воедино, т.е. физическое перемещение одной части объекта влечет перемещение другой...

Объект может быть разобран или разделен на компоненты, так же являющиеся объектами.

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

Сообщение Floksa » 28 дек 2004, 23:05

=DeaD= писал(а):На затравку - есть следующие задачи:

1. Вопрос с порядком определения новых экземпляров объектов (например, "смотри, это - стол").
Со столом, думаю, будет так же, как и с дверью. Например, можно показать роботу стол и сказать: "Смотри, это стол". Он запишет этот стол в память, а потом встретит другой стол, не похожий на этот, например, не на ножках, а на колесах. И потом определение стола на ножках ничем не отличается от определения табуретки. Как тут быть?
Floksa
 
Сообщения: 101
Зарегистрирован: 09 дек 2004, 23:49
Откуда: Санкт-Петербург

Сообщение =DeaD= » 28 дек 2004, 23:42

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

Сообщение Floksa » 29 дек 2004, 00:05

:idea:
Последний раз редактировалось Floksa 23 янв 2005, 02:58, всего редактировалось 1 раз.
Floksa
 
Сообщения: 101
Зарегистрирован: 09 дек 2004, 23:49
Откуда: Санкт-Петербург

Сообщение EdGull » 29 дек 2004, 02:05

Floksa писал(а):
=DeaD= писал(а):На затравку - есть следующие задачи:

1. Вопрос с порядком определения новых экземпляров объектов (например, "смотри, это - стол").
Со столом, думаю, будет так же, как и с дверью. Например, можно показать роботу стол и сказать: "Смотри, это стол". Он запишет этот стол в память, а потом встретит другой стол, не похожий на этот, например, не на ножках, а на колесах. И потом определение стола на ножках ничем не отличается от определения табуретки. Как тут быть?


Стол на колесах, это стол на ~96% стол без колес .
Т.е. из образов которым обучен робот этот ближе всего к столу.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Сообщение Floksa » 31 дек 2004, 23:05

У меня есть столы на ножках и на колёсах, и они совершенно не похожи друг на друга.
Floksa
 
Сообщения: 101
Зарегистрирован: 09 дек 2004, 23:49
Откуда: Санкт-Петербург

Сообщение EdGull » 01 янв 2005, 16:39

Это только Вам так кажется 8-)
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Сообщение =DeaD= » 05 янв 2005, 22:24

Пока никакие магазины типа ПромЭлектроники не работают (аж до 11-го января) - будем заниматься "мозгом" робота :)

В данный момент накидываю эмулятор для обкатки системы управления роботом высокого уровня - расстановки приоритетов, именования объектов, выполнения задач и т.п.

Исходный вариант - все вокруг считаем либо объектами/субъектами (мячик, стол, кресло, человек, сам робот, дверь), либо элементами карты (пол, стена, потолок, дверной проем). Изначально отбрасываем проблемы определения отдельных объектов и элементов карты и слежения за ними. Отрабатываем выполнение простых команд типа "Робот, ко мне!", "Робот, следуй за мной!", "Робот, это стол!", "Робот, принеси мяч!"

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

Сообщение =DeaD= » 06 янв 2005, 00:55

Эскиз запустил, сделал следующее:

Поле жизни эмулируемого робота:
На поле раскидывается несколько объектов/субъектов (у меня - 10);
Один из объектов - сам робот;
Он знает свое имя;
Названия других объектов/субъектов ему неизвестны;
Он одновременно видит всё поле;
Можно мышкой перетаскивать объекты, в одно время активен только один объект, он считается произносящим команды;

Выполняемые команды/воспринимаемые фразы:
1. Я <своёИмя>;
2. Это <названиеОбъекта/субъекта>;
3. За мной;
4. Отстань;
5. Иди к <объект/субъект>;
6. Принеси <объект> [к <объект/субъект>];

Особенности:
1. Определение указываемого объекта при команде №2 - по расстоянию до объектов за исключением самого робота и говорящего, если определение не однозначно (есть два и более объектов близких, но на почти одинаковом расстоянии) - пишем что не можем понять о чем именно речь.
2. Разумеется никакой контроль столкновений не присутствует;

Выявленные проблемы:
1. Не ясно как определять в реальной жизни кто говорит - хоть рукой маши "я это, я!".

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

Сообщение Виталий » 07 янв 2005, 03:17

А можно теперь вопрос, а в поставленной задачей где проблема-то?
Разве сложно научить виртуального робота по команде искать предмет, который он может _ОДНОЗНАЧНО_ идентифицировать?
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Сообщение =DeaD= » 07 янв 2005, 12:42

До проблем пока еще не дошел :)

Проблемы начинаются с унифицированного формата хранения команд, распределения их по приоритетам, унифицированного хранения способов выполнения этих команд, добавления новых команд в реальном времени и т.п.

Типичный пример проблемы - вы говорите роботу "следуй за мной", а потом "принеси мне предмет А" - во-первых команды противоречат друг-другу, а во-вторых что должен делать робот после возвращения с предметом - следовать за командером или стоять на месте? Должно ли это регулироваться какими-то другими правилами?

Кроме того даже на виртуальном макете который 100% легко построить начинаешь понимать некоторые проблемы, о которых раньше просто не задумывался... например - как определять кто дал ту или иную команду голосом, когда голос слышим первый раз?

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

Сообщение =DeaD= » 07 янв 2005, 21:37

Ну вот, дошел до проблем :)

Понял что скорее всего современное состояние этой ветви знания - почти никакое...

Пока получились следующие мысли по поводу "почти дерева" объектов (типов и экземпляров):

(прим. - поискал по таким ключевым словам в рунете, убил 3-4 часа, обнаружил что изобрел велосипед, однако почти в полной мере, т.е. больше этого почти ничего и нету :( - называется это по научному - семантическая сеть)

У всех без исключения объектов есть следующие характеристики:

1. Каждый объект является типом или экземпляром (или это просто стол, или это конкретный стол);

2. Между двумя объектами может существовать связь "А разновидность Б" - т.е. объект А это строгая разновидность объекта Б, эта связь не может зацикливаться. Если такая связь указывается между объектами являющимися типами, то она должна сопровождаться описанием, в каких случаях эта связь работает, например, принтер является струйным, если у него ездит печатающая головка, но нету ленты;

3. Между объектами можно запретить классы эквивалентности для упрощения структуры, т.е. просто для каждого объекта составить словарь синонимов;

4. Между объектами возможно соответствие декомпозиции - т.е. каждый объект может быть разложен на несколько других (при этом не обязательное нахождение их вместе в плане расположения в пространстве - проводка в квартире состоит из кучи проводов и приборов по всей квартире) - здесь есть существенный вопрос касающийся порядка определения вариантов декомпозиции для объектов не являющихся экземплярами.

5. В реальном времени экземпляр объекта может менять свои связи "является разновидностью", т.е. мы можем узнать, что угол непонятного предмета, при ближайшем рассмотрении оказался углом принтера Epson 43UX, т.е. это струйный принтер, или узнать что непонятная аббривеатура МФУ это на самом деле и принтер и сканер и факс;

6. У каждого объекта могут быть указаны характеристики, которые действуют на все дочерние объекты, например, у всех ЖКТ-мониторов есть размер матрицы, при этом характеристики могут быть заполнены или оставаться пустыми;

-------------------------------------------------------------------------------------

Остается под вопросом - насколько имеет смысл дублировать некоторые характеристики созданием соответствующего дерева типов объектов...

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

Сообщение =DeaD= » 08 янв 2005, 11:29

Отдельно про декомпозицию:

Для любых объектов просто записывается состав, при этом элементами объекта могут быть не экземпляры, а каждой связи "состоит из" соответствует свое название (которое может быть ?, а может быть конкретным числом или ограничением), количественная метка (которая может быть ?) и блок информации об этой связи (пусть пока в неизвестном формате), если такой связи "состоит из" для объекта нет, то это соответствует связи "состоит из неизвестных объектов в кол-ве ?, название связи ?, другой информации об этой составляющей нет".

Кроме того в дереве информации к каждому объекту привязывается блок знаний об этом объекте (пусть пока в неизвестном формате).
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.

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

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

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