roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 316 ]  На страницу Пред.  1 ... 15, 16, 17, 18, 19, 20, 21, 22  След.
Автор Сообщение
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 06 дек 2016, 19:07 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Я в курсе, но ты сказал:
dccharacter писал(а):
Ну производная - это просто математический аппарат. Математика сама никуда не пойдет и ничего не решит.


Я ответил:
Dmitry__ писал(а):
Да, щаз, можно не зная производных самому решить:


Т.е. надо без производных и квадратов, ибо это: "сама никуда не пойдет" и "итерации"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 06 дек 2016, 19:25 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Да эт тебе повезло :-)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 06 дек 2016, 19:28 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Ага, повезло, 2 страницы подводил вас к этому флуду, аж вспотел :)

Добавлено спустя 1 минуту 33 секунды:
У тя, кста, ошибка в расчетах, считал производную, считал, потом перешел на формулу площади квадрата и все - ответ :)
Это как у меня сначала: х=x


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 06 дек 2016, 19:32 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
нет ошибки, расписываю
p'(x) = 2 - 2s/x^2
2 - 2s/x^2 = 0
2 = 2s/x^2
1 = s/x^2
x^2 = s
s = x^2

Добавлено спустя 1 минуту:
Ну я неуч, конечно же:
Выше было сказано, что обе части уравнения можно умножать или делить на одно и то же количество. Говоря это, мы понимаем возможность этих действий в том смысле, что, производя их над данным уравнением, мы получаем новое уравнение, совместное с данным. Заметим теперь, что это указание верно только в том случае, когда множитель или делитель есть или явное количество, или хотя и неявное, но не содержит в себе той самой неизвестной буквы, которая входит в уравнение. Если дано выражение, содержащее то же неизвестное, как и в уравнении, то, вообще говоря, нельзя ни помножать уравнение на это выражение, ни делить на него.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 06 дек 2016, 20:06 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Ждал, пока вы натешитесь, но видимо придется призвать вас к порядку :)
Вернее хоть к какому-нибудь соответствию изначальной теме.
Виктор уже как-то упоминал, что программирование поведения роботов, не сильно отличается от программирования персонажей в компьютерных играх. Из и-нета:
"Особенности второй технологии — сценариев (обычно именуемых на англоязычный манер скриптами) — в том, что управление общим ходом событий и действиями персонажей не зашито жестко в само тело игры, а выполняется с помощью внешних модулей-скриптов, написанных на языке высокого уровня. Такой подход позволяет разработчикам, устанавливающим общую цель и методы ведения конкретной игры, работать как бы полунезависимо от программистов, занятых непосредственным воплощением игрового механизма, т.е. движка (engine) игры.

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

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

Вот не плохая статья, обобщающая наши беседы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 06 дек 2016, 20:41 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Scorpio писал(а):
Ждал, пока вы натешитесь, но видимо придется призвать вас к порядку

Можно последний разик флуднуть? :cry:

dccharacter, ошибка в том, что нет аналитического вывода, у тебя получилась просто формула площади квадрата. Тогда уж надо было довести до ИИ:

x = sqrt(s)
сторона а = sqrt(s)
сторона b = s/sqrt(s) = sqrt(s)
a=b :)
Нет квадратов и есть аналитический вывод: периметр прямоугольника, при постоянной площади, имеет минимальный размер при равности ее сторон, это говорит математика, ИИ отдыхает :)
Будем флудить как найти фигуру с еще меньшим периметром (относительно прямоугольника) при одинаковой площади? :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 07 дек 2016, 18:33 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Распугал всех чтоли?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 07 дек 2016, 18:49 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
А фиг знает :oops:
Или все выговорились.
Лично я для себя открыл RHVoice из этой темы. Задал пару вопросов в бложик linvinus, но он пропал. А так бы я с удовольствием конвертнул этот RHVoice на какую-нибудь маленькую плату с pic32 или stm32. А потом занялся бы опознавалкой голоса. После этих 2-х коробочек можно о чем-то говорить на тему роботов...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 07 дек 2016, 22:17 
Не в сети
Аватара пользователя

Зарегистрирован: 21 июн 2006, 11:22
Сообщения: 1387
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич
Вот следующая итерация программы лунохода для ОС Windows:
Вложение:
Комментарий к файлу: Программа Lunochod1 версии 1.0.1
Lunochod1_V_1_0_1201612080004.zip [487.97 КиБ]
Скачиваний: 0

В ней я произвел некоторые изменения, среди которых сделал мультиагентную среду, а также текстовое поле, где могут перемещаться роботы-агенты.
В данной программе сначала запускается агент Lunochod1, а спустя несколько тактов - Lunochod2. Луноходы выполнены в виде стрелочек разного цвета: Lunochod1 - зеленый, Lunochod2 - желтый. Агенты выполняют одинаковую миссию Mission1, которая заключается в движении вперед на 5 шагов, повороте вправо на 90 градусов, движении после поворота по прямой 3 шага, поворота налево на 90 градусов и движении по прямой 8 шагов.
В нижней части терминала имеется три статусных строки, верхняя из которых предназначена Lunochod1, ниже - Lunochod2.
На пути Lunochod2 встречается препятствие (символ 0), которое он обнаруживает своим сенсором препятствий и останавливается с выдачей сообщения об ошибке выполнения его миссии. Lunochod1 успешно выполняет свою миссию и останавливается после ее окончания. Через некоторое время работа программы завершается, о чем свидетельствует приглашение среды CLIPS в нижней строке терминала.
Подробности запуска программы читайте во вложенном файле README.txt


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 07 дек 2016, 23:57 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
У меня не запускается. :( CLIPS только отвечает введенной командой


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 08 дек 2016, 00:14 
Не в сети

Зарегистрирован: 22 ноя 2016, 22:00
Сообщения: 90
Да вроде запускается
и так (batch Lunochod1.bat)
и так CLIPSDOS32.exe -f Lunochod1.bat
Миссии работают :)

Добавлено спустя 7 минут 42 секунды:
Я пока в глубокой задумчивости над логикой всего этого и в какой мере это похоже на Пролог.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 08 дек 2016, 00:19 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
А я просто в глубокой задумчивости от этого тетриса :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 08 дек 2016, 02:17 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Ага, у меня тоже запустилось


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 08 дек 2016, 10:15 
Не в сети
Аватара пользователя

Зарегистрирован: 21 июн 2006, 11:22
Сообщения: 1387
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич
Надеюсь, вас не расстраивает тот факт, что выглядит данная программа пока слишком примитивно? Но без хотя бы простейшей визуализации двигаться дальше было бы трудно. А затевать мультяшки для малых деток я не стал. Надеюсь, что красоту дорисует ваше воображение, а вы с пониманием отнесетесь к такому примитивизму.
Мультиагентность нужна не только для создания нескольких роботов, взаимодействующих между собой, но и позволит создавать роботов, в которых будут копошиться разные мысли. В качестве мыслей будут агенты. Как их организовать - надеюсь, увидим позже.
Даже в таком простейшем виде можно путем простых правок в коде программы изменить поведение роботов.
Файл Simulator.ecl модуль SIMULATOR.
Код:
;;;======================================================
;;;     Lunochod V 1.0.1
;;;     SIMULATOR Module
;;;     For ECLIPS Version 6.3
;;;     2016.12.02 Victor Kazarinov
;;;======================================================
;;; Модуль симулятора внешней среды, сенсоров и пользователя.
;;;======================================================

(defmodule SIMULATOR (export deftemplate ?ALL) (import MAIN deftemplate ?ALL) (import MAIN deffunction ?ALL) (import MAIN defglobal ?ALL))


(defrule SIMULATOR::Mission1-Lunochod1-Start                  ; Правило старта Миссии1
?c <- (cycle 0)
  =>
(bind ?*gamefieldref* (sys-2darray-create ?*gamefieldDimX* ?*gamefieldDimY* 1 1 ?*backgroundSym*)) ; Создать игровое поле размером 20х20 символов.
(field-fill ?*gamefieldDimX* ?*gamefieldDimY* 1 ?*gamefieldref*)

; Создать агента lunochod1
(assert (agent-position (agent-name lunochod1) (posx 10) (posy 9)))
(assert (agent-direction (agent-name lunochod1) (direction right)))
(assert (agent-image (agent-name lunochod1) (sym 26) (color 10)))
(assert (mission-phase (agent-name lunochod1) (mission-name mission1) (phase forward1))) ; Назначить агенту миссию.
(agent-goto 26 10 9 10 9 10 ?*backgroundSymBackColor*)

(agent-goto ?*barrierSym* 24 10 28 13 15 ?*backgroundSymBackColor*)             ; Установить препятствие на пути lunochod2.
;(tui_status-print "SIMULATOR::Mission1:Start." 0)
)

(defrule SIMULATOR::Mission1-Lunochod2-Start                  ; Правило старта Миссии1
?c <- (cycle 3)
  =>
; Создать агента lunochod2
(assert (agent-position (agent-name lunochod2) (posx 20) (posy 10)))
(assert (agent-direction (agent-name lunochod2) (direction right)))
(assert (agent-image (agent-name lunochod2) (sym 26) (color 14)))
(assert (mission-phase (agent-name lunochod2) (mission-name mission1) (phase forward1))) ; Назначить агенту миссию.
(agent-goto 26 20 10 20 10 14 ?*backgroundSymBackColor*)
)

Как видно из кода симулятора, для создания нового робота достаточно всего несколько строк, создающих новые факты и описывающих его положение на экране, направление движения в начальный момент времени, внешний вид (символ, которым робот будет отображен и его цвет), и с какой фазы какой миссии нужно этого агента запускать:
Код:
; Создать агента lunochod1
(assert (agent-position (agent-name lunochod1) (posx 10) (posy 9)))
(assert (agent-direction (agent-name lunochod1) (direction right)))
(assert (agent-image (agent-name lunochod1) (sym 26) (color 10)))
(assert (mission-phase (agent-name lunochod1) (mission-name mission1) (phase forward1))) ; Назначить агенту миссию.
(agent-goto 26 10 9 10 9 10 ?*backgroundSymBackColor*)

Последняя строка этого кода фактически размещает на экране робота по созданному шаблону.
Все это означает, что роботов можно стартовать имеющейся миссией не только вправо, но и в любую другую сторону, написав вместо right слово up, left или down. Также видно, что можно стартовать не только с начала миссии, но и выполнить любой ее участок до окончания миссии. Для этого нужно заглянуть в файл Mission1.ecl и взять оттуда название других фаз. Если хотите, попробуйте сами, я этого всего еще сам не делал и поэтому не отладил код.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно писать сценарии поведения робота?
СообщениеДобавлено: 08 дек 2016, 19:23 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Изложение весьма доходчивое.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 316 ]  На страницу Пред.  1 ... 15, 16, 17, 18, 19, 20, 21, 22  След.

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


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

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


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

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