roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 20:38

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 352 ]  На страницу Пред.  1 ... 12, 13, 14, 15, 16, 17, 18 ... 24  След.
Автор Сообщение
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 30 дек 2009, 23:30 
Не в сети
Аватара пользователя

Зарегистрирован: 21 июн 2006, 11:22
Сообщения: 1387
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич
Системы, основанные на продукционных правилах - нечто среднее между истинной параллельностью и событийной системой. С ее помощью можно легко запрограммировать и чисто последовательные алгоритмы и параллельные и их сочетание. При этом набор загруженных в машину правил вообще не описывает никакую последовательность их выполнения.
Суть проста. Если в рабочем списке фактов появляется новый факт, система ищет применимые к этому факту правила с учетом уже имеющихся в этом списке фактов. Т.о. могут выполняться правила, относящиеся к разным процессам. Конечно, последовательно. Например, одно правило одного процесса, затем правило другого, потом опять первого. Такая последовательность определяется лишь фактами.
Кроме того, если воспользоваться языком CLIPS, то можно соспоставлять не только факты, но и слоты объектов. Это дает еще бОльшие возможности. Для того, чтобы все облечь в удобную для пользователей компьютеров форму, я соединил движок, основанный на правилах с формами Windows, сделав GUI надстройку в программе моей программе AIAssistant. Теперь нажав любую кнопочку на форме, получим изменение слота объекта и срабатывание правила, если есть такое, что следит за этим слотом.
Не хотел бы, чтобы вы считали это саморекламой. Но мне Rule Engine очень нравится, т.к. позволяет производить прямой и обратный логический вывод. И самое главное - это система, кот. управляется данными, а не алгоритмами, заранее заложенными в нее. А это как раз то, что нужно для роботов.
Ядро CLIPS написано на чистом С. Наверное под ARM можно скомпилировать. А отлаживать можно на PC с красивым интерфейсом.

_________________
Проект Robosonic RS http://www.aigod.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 00:17 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Виктор, какие еще продукционные системы? Мы же про пятиклассников!

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 00:25 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
Michael_K писал(а):
Гхм... Не понимаю, чего это вы испугались. Готовых многозадачных осей для даже маленьких АВРов - как грязи, в том числе и бесплатных и с открытым кодом... Да, в общем-то и пишутся они с полпинка без проблем...

:) пробовал давно эти микроОС на мегу ставить и работать, непомню точно что, но в общем воспоминания плохие. а в коде тогда точно не рылся и как можно просто реализовать простенькую псевдо парралельность. :oops: в общем я так понял, что таки ошибся и есть какие-то варианты. :) это хорошо.

Добавлено спустя 3 минуты 23 секунды:
:oops: какие эклипс, какие виндовые гуи? :) нааааа... кой ляд этот гимор? если арм с ММУ обычный линух и пошло всё в сад. :oops: или как другой вариант микрофрэмворк дот нэта (давно хочу, возможно скоро таки буду пробовать, нужные мне армы только после НГ закажу. в сети давно видел, кто-то даже графику и WPF прикрутил)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 00:41 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Виктор вы, практически, сейчас описали принцип работы программ на Лабвью.
Там очередной блок начинает работать тогда, когда на его входах появляются данные,
которые нужны для его работы. Эти данные могут появляться от внешних событий или быть
результатом действия другого блока.

Фактически это напоминает работу схемы, выполненной в железе (с некоторыми допущениями, конечно)

Такой подход тоже используется, однако есть довольно неприятные моменты, и они нетривиальны.
Например, как и в железных схемах не исключены "гонки", когда от последовательности срабатывания
не связанных друг с другом блоков, на которые приходит один и тот же сигнал, результат работы
кардинально меняется. Поскольку последовательность жестко не задается, то результат становится
непредсказуемым. Возможны и более хитроумные "неприятности". Как правило такие случаи плохо
поддаются отладке. И подчас далеко нетривиально установить, какая же именно связь или блок
в этом виноват, поскольку стабильность теряет схема в целом (хотя компилятор, конечно,
предупреждает о потенциальных опасностях и просто не позволяет сделать уж совсем "кривые" вещи,
например завести прямую обратную связь)

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

И... что-то мне кажется, что это совсем-совсем непросто для понимания :)
(Впрочем, я не скажу, что я крутой лабвьюшник - так "баловался" в основном для себя...)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 00:53 
Не в сети
Аватара пользователя

Зарегистрирован: 21 июн 2006, 11:22
Сообщения: 1387
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич
=DeaD= писал(а):
Виктор, какие еще продукционные системы? Мы же про пятиклассников!
А при чем здесь AVR и С? Продукционные системы - это нутро, а внешняя оболочка - в том виде, в каком удобнее.

_________________
Проект Robosonic RS http://www.aigod.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 00:54 
Не в сети
Аватара пользователя

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

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 00:55 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
Michael_K, а вы часом не описали работу обычного контроллера AVR?

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 01:00 
Не в сети
Аватара пользователя

Зарегистрирован: 21 июн 2006, 11:22
Сообщения: 1387
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич
Michael_K писал(а):
Поскольку последовательность жестко не задается, то результат становится непредсказуемым. Возможны и более хитроумные "неприятности". Как правило такие случаи плохо поддаются отладке. И подчас далеко нетривиально установить, какая же именно связь или блок в этом виноват, поскольку стабильность теряет схема в целом
В общем случае предсказуемость результата необязательна. Ведь невозможно проанализировать и протестировать всевозможные сочетания факторов. Если же нужны жесткие последовательности, то легко ввести синхронизирующие факты или их наборы.

Добавлено спустя 3 минуты 8 секунд:
=DeaD= писал(а):
Так вопрос не во внутренностях вроде пока? Надо для начала понять в чем всё это рисоваться будет, а уж там во что компилировать - вопрос десятый, скомпилируем как нибудь в си, а его уже на МК :)
Гораздо лучше, когда внутренности и внешности хорошо интегрированы и совместимы друг с другом.
Да и суть вот в чем. и это- самое главное. От жестких алгоритмов и простых событийных программных средств в робототехнике нужно уходить. а точнее перемещать их на нижние уровни. Непредсказуемый внешний мир, окружающий робота не позволяет запрограммировать заранее все возможные виды его поведения. Поэтому обычный алгоритмический подход - лишь частный случай и не очень адекватен задачам робототехники.

_________________
Проект Robosonic RS http://www.aigod.com


Последний раз редактировалось Виктор Казаринов 31 дек 2009, 01:03, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 01:01 
Не в сети
Аватара пользователя

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

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 01:07 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
Michael_K, а вы часом не описали работу обычного контроллера AVR?

Если говорить о железных внутренностях микроконтроллера - то да, описал (причем не только АВР).
А если говорить о выполнении программ, то нет конечно :)

Программа в авр исполняется последовательно. Сначала одна операция, потом другая...
Железо и "продукционные правила", о которых писал Виктор - основаны на путях прохождения сигналов
(данных). Если один и тот же сигнал идет на два разных транзистора, то они сработают одновременно,
если одно и то же условие (слот) тянет за собой два правила, то они выполняются одновременно.

При этом по мере роста системы все сложнее сформулировать правила, которые гарантированно
НИКОГДА не приведут, например, к взаимоисключающим выводам...
Точно так же - по мере роста сложности цифровой схемы все сложнее обходиться без синхронизации,
триггеров итд.

Добавлено спустя 17 секунд:
Цитата:
начинать надо с требований к тому что будет видеть пользователь и к языку. А потом уже смотреть на чем лучше внутренности делать.

Вот!


Последний раз редактировалось Michael_K 02 янв 2010, 06:16, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 01:12 
Не в сети
Аватара пользователя

Зарегистрирован: 21 июн 2006, 11:22
Сообщения: 1387
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич
2DeaD: Давайте и обсудим, что будет видеть пользователь и язык. Во - первых, для чего нужен какой-то язык включая графический?
Мне нравится язык Locos http://e-novosti.info/forumo/viewtopic.php?t=1534
Я даже одно время хотел создать свою пиктографическую надстройку над OWL.
По сути дела, нужен язык, однозначного (точного) описания некоторого мира и процессов, протекающих в нем. Частный случай - внутренности программ и железа. При этом сам язык и то, чем манипулирует человек на экране, должны довольно хорошо совпадать. т.е. экранные сущности должны хорошо ложиться на смысловые.
Удобно было бы, чтобы можно нажав на одну экранную сущность, она бы раскрывалась, показывая структуру вложенных. Тогда не перегружая экранный интерфейс, можно либо манипулировать самыми общими вершками, либо в нужном месте докопаться до самых глубин, не нарушая целостности картины

_________________
Проект Robosonic RS http://www.aigod.com


Последний раз редактировалось Виктор Казаринов 31 дек 2009, 01:20, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 01:20 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
В общем случае предсказуемость результата необязательна.


Имхо, в ОБЩЕМ случае, как раз она нужна,
и только в частных случаях иногда необязательна.

Цитата:
Если же нужны жесткие последовательности, то легко ввести синхронизирующие факты или их наборы.

Это как раз и приводит к тому, что увеличение набора правил-условий приводит
к непропорциональному росту сложности...
Ввести-то их легко, трудно понять, куда именно.

В общем, я бы не ориентировался на всякие "прологи", как на языки управления.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 01:23 
Не в сети
Аватара пользователя

Зарегистрирован: 21 июн 2006, 11:22
Сообщения: 1387
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич
2Michael_K: а вы знакомы с системой G2? Она спутниками и атомными реакторами управляет. Но основана на правилах. http://www.gensym.com/
G2 - занимает более половины рынка подобных систем в мире. Она - система реального времени и при этом имеет собственную очень навороченную графическую оболочку.
Как видите, правила используются в критических по времени и надежности системах.

Но я вот о чем хочу сказать. Бессмысленно пытаться описать все и вся хоть с пом. жестких алгоритмов, хоть с пом. правил. Нужно сделать так, чтобы эти алгоритмы и правила вырабатывал сам робот на основе небольшого набора базовых способностей (правил или др.) Тогда когда человек будет задавать новое задание роботу, то не будет описывать ему все подробности (в какое время какую серву включить), а даст ему глобальную команду, например, копать яму. А робот сам выстроит в своем воображении несколько вариантов решения задачи, выберет наиболее оптимальный и приступит к его выполнению. Вот такое программирование нам с вами светит.
Т.е. "мозг" робота должен заниматься динамическим самопрограммированием, а человек - метапрограммированием.
Основы такого метапрограммирования и нужно преподавать школьникам.

_________________
Проект Robosonic RS http://www.aigod.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 03:12 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
А давайте отучим пятиклассников есть еду ртом...
Все равно в будущем они будут лежать в креслах и питаться внутривенно.

Цитата:
Нужно сделать так, чтобы эти алгоритмы и правила вырабатывал
сам робот на основе небольшого набора базовых способностей

Да, нужно. Но обучение (детей, а не роботов имею в виду) должно основываться
на опыте - такое обучение может хоть чему-то научить и заинтересовать детей.
(я услышал и забыл, я увидел и запомнил, я сделал и понял).

А на опыте попрограммировать на метаязыке самообучающихся роботов сейчас
пятиклассники не могут (а легов с миниботами - могут), а через пять лет
им уже будет не до роботов...
Поэтому Сергей, (человек который непосредственно работает с детьми) высказал
достаточно конкретные и реальные пожелания, сказал что бы ему хотелось и чем не
устраивают существующие системы. И у меня нет причин не верить ему :)

А фантазировать можно много, да...

Добавлено спустя 50 минут 53 секунды:
В общем, я подумал, что в лего достаточно неплохая структура, можно ее взять за основу...
Примерно так:

На компе:
- Графический язык
- Си-образный код
- Байт-код

На роботе:
- Интерпретатор байт-кода
- Кооперативная многозадачная ось
- Реалтаймовая поддержка железа

Все это, несмотря на красивые слова, в очень упрощенной реализации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Робот - платформа для технического творчества
СообщениеДобавлено: 31 дек 2009, 09:16 
Не в сети
Аватара пользователя

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

Экспертные системы уже лет 30 существуют. А роботы всё еще не научились сами вырабатывать алгоритмы и правила на достаточном уровне, до сих пор индустрия программирования живет в старых принципах. Почему через 10-20 лет что-то поменяется? По-моему в продукционных системах пока никаких принципиально новых идей всё еще нету, которые могут продвинуть их вперед за ближайшие десятилетия.

Предлагаю не обсуждать в этой теме то, что еще совсем не факт. И не учить этому пятиклассников.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 352 ]  На страницу Пред.  1 ... 12, 13, 14, 15, 16, 17, 18 ... 24  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO