Prolog и управление роботом

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

Re: Prolog и управление роботом

Сообщение =DeaD= » 15 окт 2009, 08:30

2espirit: Ну тут пролог использован, как я понял, для создания простого конечного автомата с условиями. Поэтому очень тяжело сказать - надо вообще пролог или не надо. К тому же четкая логика везде.

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

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

Re: Prolog и управление роботом

Сообщение Виталий » 15 окт 2009, 09:39

В Буране использовали Пролог.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Prolog и управление роботом

Сообщение =DeaD= » 15 окт 2009, 10:13

2Виталий: Ну вопрос же был - чем он лучше, относительно современных языков. Когда Буран начинали строить (в 1980 уже производство началось, я так понимаю) - какие языки были в СССР освоены? Ну и наконец - на тот момент ни Джавы, ни Си++ ни разумеется C# и в помине не было.

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

Re: Prolog и управление роботом

Сообщение Виктор Казаринов » 15 окт 2009, 11:42

Пролог хорош там, где существует замкнутый мир. В таком мире все объекты и их отношения имеют исчерпывающее описание относительно определенного уровня абстракции. Кроме того, т.к. в сам Пролог вмонтирован механизм обратного логического вывода, то с его помощью удобно решать задачи планирования и поведения сверху вниз (от общего к частному) или от цели к условиям. Упрощенный алгоритм - в правилах, описываемых с пом. Пролога берется следствие правила X, делается переход на его предпосылки и ищутся правила, у которых эти предпосылки X являются следствиями. И т.д. до того момента, когда не перестанут обнаруживаться правила, следствия кот. являются предпосылками текущего правила. Предпочтительный способ метод обхода списка правил - просмотр в глубину.
В системах непрерывного контроля и распознавания в незамкнутом мире более подходящим является механизм прямого вывода, который активирует правило при появлении фактов, являющимися предпосылками этого правила. Правило при этом активируется и выполняется следствие этого правила. Если следствием правила является выработка новых фактов, то от них могут сработать другие правила. И т.д. Если следствием правила является выполнение какого-нибудь действия, производится его выполнение. В частности, так работает система CLIPS, модернизированный вариант которой AIAssistant с языком ECLIPS я разрабатываю.
Существенным отличием работы, основанной на правилах от ООП и др. обычных видов программирования является то, что набором правил не задается заранее алгоритм выполнения программы. В каждый момент времени система отслеживает совокупность имеющихся фактов и "примеряет" их ко всем правилам, находящимся в системе. Для ускорения этого процесса обычно применяется RETE-алгоритм. При выполнении же обычного последовательного алгоритма IF сработает лишь тогда, когда дойдет очередь до данного оператора. В ООП начнется обработка события только при получении сообщения объектом.
Проект Robosonic RS http://www.aigod.com
Аватара пользователя
Виктор Казаринов
 
Сообщения: 1387
Зарегистрирован: 21 июн 2006, 11:22
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич

Re: Prolog и управление роботом

Сообщение Myp » 15 окт 2009, 12:59

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

любая работа хороша если интересно и голова/руки работают :Yahoo!:
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Prolog и управление роботом

Сообщение AndreiSk » 15 окт 2009, 16:03

Таня и Робот http://railab.ru/history/Eurobot2009-sp ... C_6972.jpg
для скептиков 8)
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Prolog и управление роботом

Сообщение galex1981 » 15 окт 2009, 16:29

Да мы верим ;)
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Prolog и управление роботом

Сообщение ALHIMIK » 15 окт 2009, 17:30

знакомые колёса...
:) только у меня по меньше
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: Prolog и управление роботом

Сообщение Татьяна Волкова » 16 окт 2009, 01:16

Здравствуйте!
Отвечаю всем.

Система управления мобильным роботом была мной создана как курсовой проект в ходе изучения Visual Prolog 7.1.
Робот исправно функционирует, на данный момент стоит на полке. На фестивалях и прочих крупных мероприятиях демонстрируется. Есть техническое описание: http://railab.ru/projects/behavior/mate ... nonDoc.doc.
Хорошая идея снять робота на камеру, постараюсь осуществить.

Меня интересует искусственный интеллект в робототехнике.
Я считаю, что декларативный (Prolog) стиль программирования имеет преимущество перед императивным (C++, Java):
1) Декларативный стиль более понятен и естественен для человека.
2) Как и в каком порядке выполнять правила - возлагается на Пролог-машину. Наша задача - описать задачу в правильных терминах, формализовать ее.
3) Унификация. Это значит, что нам не нужно рассматривать все частные случаи. Мы можем писать более общие, более универсальные программы.

Ответ тем, кто интересовался применением Пролога в робототехнике: вот единственный проект с Прологом в "железе", который мне удалось найти: http://www.ai.hccnet.nl/projectgroepen/B-AI-kar.html. Так что поле для исследований огромное. Если кто-то знает еще такие проекты - пишите в эту тему!

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

С уважением,
Татьяна Волкова,
Лаборатория робототехники и искусственного интеллекта Политехнического музея.
Татьяна Волкова
 
Сообщения: 2
Зарегистрирован: 30 мар 2008, 11:44
Откуда: Москва, лаборатория робототехники и искусственного интеллекта Политехнического музея
прог. языки: C, C++, C#, Prolog

Re: Prolog и управление роботом

Сообщение MegaBIZON » 16 окт 2009, 02:04

Спасибо, Татьяна, что не обратила внимания на все эти наши сарказмы и прочее, за что теперь неудобно.
Лично я ни в прологах, ни вообще в электронике нибумбум, но серъёзность дел распознать могу и уважаю :)
.............солнце светит, птички поют, я - зелёный бамбук меня тянет к солнцуЯ - зелёный бамбук, я - зелёный бамбук , меня тянет к солнцу. Я - не огурчик и не лягушка, я - зелёный бамбук. Меня курят...............
Аватара пользователя
MegaBIZON
 
Сообщения: 6285
Зарегистрирован: 12 янв 2007, 00:34
Откуда: Масква

Re: Prolog и управление роботом

Сообщение galex1981 » 16 окт 2009, 02:35

Меня интересует искусственный интеллект в робототехнике.

По какой области ИИ работаешь?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Prolog и управление роботом

Сообщение esprit » 16 окт 2009, 07:35

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

ехать_прямо(скорость) если (вращение_правого_колеса(n) или вращение_левого_колеса(m)) и координаты(х+скорость,у)

решение: значения n и m.

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

Конечно все это можно сделать на олгоритмических языках программирования (С, Паскаль и иже с ними) но в данных схемах есть возможность обучения (движение прямо независимо от рзамера колес, грунта и др факторов).

Вот такой у меня интерес.
Орфография и стилистика автора сохранены.
esprit
 
Сообщения: 70
Зарегистрирован: 06 июн 2008, 05:26
Откуда: Уссурийск

Re: Prolog и управление роботом

Сообщение =DeaD= » 16 окт 2009, 08:58

Татьяна Волкова писал(а):Я считаю, что декларативный (Prolog) стиль программирования имеет преимущество перед императивным (C++, Java)

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

Re: Prolog и управление роботом

Сообщение galex1981 » 16 окт 2009, 09:20

Да, для распознавания образов Пролог абсолютно не годится
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Prolog и управление роботом

Сообщение Виктор Казаринов » 16 окт 2009, 09:21

Пролог как и др. системы подобного рода (LISP, CLIPS) так просто напрямую использовать для распознавания изображений и др. образов, 3D реконструкции не получится.
Они очень медлительны, т.к. фактически происходит интерпретация правил, либо трехстековая работа со списками. На основе LISP фирма GenSym ( http://www.gensym.com/ ) создала реалтайм Rule-based Engine G2 на основе компиляции в С из LISP. Но это тот еще монстр. На данном форуме вряд ли нужно управлять ядерным реактором или полетом корабля к Марсу.
Распознавание образов - сложный процесс, сочетающий анализ и синтез. Но в основном он основан на анализе. А для этого необходим механизм прямого логического вывода. Поэтому Пролог вряд. ли именно для этого процесса предпочтителен. На нем хорошо планировать поведение.
Нужно определиться - идти ли к созданию "мозгов" подобного рода в виде мобильного бортового устройства робота или в принципе такое не нужно и всегда будет достаточно стационарного "мозга", соединенного с "тушкой" - телом робота каналом связи.
Проект Robosonic RS http://www.aigod.com
Аватара пользователя
Виктор Казаринов
 
Сообщения: 1387
Зарегистрирован: 21 июн 2006, 11:22
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич

Пред.След.

Вернуться в Идеи

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

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