roboforum.ru

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

Как правильно писать сценарии поведения робота?

Ответить

Re: Как правильно писать сценарии поведения робота?

Dmitry__ » 30 ноя 2016, 23:03

Scorpio писал(а):Раньше ты помнится говорил, что надо плясать от события и никаких циклов ожидания.

В данном случае ожидание оправдано, тем более у тебя есть "DoEvents". Что никак не приведет к "вам в смазку подсыпали алмазную пыль". DoEvents как раз и должен отдать ресурс цпу или в нагрев неба или в экономию энергии. Т.е. менеджер ресурса таки присутствует.
Я себе слабо представляю событийное программирование для чайников, которые будут программировать игрушку луноход. А вообще, все смешалось в кучу, кони, люди. Я так и не вьехал в вопрос.
Наметилось 3 вопроса:
1. Как людям далеким от программирования писать сценарии поведения.
2. Как в сценарии засунуть события.
3. Как правильно писать программы, чтоб через 10 лет легко понять алгоритм.

Добавлено спустя 3 минуты 46 секунд:
Scorpio писал(а):Сценарий - это основной стержень программы, вокруг которого все и крутится. типа g-code, только более гибкий.
Совершенно не обязательно, чтобы он был отдельно от программы и не на языке программы. Дело не в грамматике, а мыслях и последовательности их изложения.

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

Scorpio писал(а):Нарисуйте лучше граф про луноход, раз они такие удобные.

Я слабо разбираюсь в названиях методов программирования. Я просто пишу программы, а к какой парадигме они относятся - хз. :)

Re: Как правильно писать сценарии поведения робота?

dccharacter » 30 ноя 2016, 23:06

Эээээ. Вот сейчас озадачил. Я ж тебе нарисовал граф

Re: Как правильно писать сценарии поведения робота?

Dmitry__ » 30 ноя 2016, 23:14

Мне, чтоб нарисовать граф для лунохода, нужно изучить предмет. Т.е. я должен принять определенные правила игры. Вот прямо с ходу я этого не сделаю, я не знаю всех правил. Но в 100% случаев граф решает абсолютно все те же задачи как и другие парадигмы.

Кста, о картинках. В свое время был графический ассемблер для avr - Algorithm Builder. Потрясная вещь, такие были надежды, но не взлетело :(

Изображение

http://www.gaw.ru/html.cgi/txt/soft/avr/Algorithm_Builder.htm

Re: Как правильно писать сценарии поведения робота?

dccharacter » 30 ноя 2016, 23:17

Вот тебе ушастик
Вложения
Untitled.jpg

Re: Как правильно писать сценарии поведения робота?

Dmitry__ » 30 ноя 2016, 23:21

dccharacter писал(а):Вот тебе ушастик

Я не понимаю, чего сюда не может засунуть Scorpio. Конечные автоматы?

Re: Как правильно писать сценарии поведения робота?

dccharacter » 30 ноя 2016, 23:36

МОжет, вот этого ему не хватает?
Вложения
Untitled.jpg

Re: Как правильно писать сценарии поведения робота?

esisl » 30 ноя 2016, 23:52

Как только начинаешь плясать от событий - валишься в пролог :D

Re: Как правильно писать сценарии поведения робота?

Виктор Казаринов » 01 дек 2016, 00:05

Существует программирование, управляемое данными:
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5,_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC%D0%BE%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8
В качестве примера википедия приводит: https://ru.wikipedia.org/wiki/AWK
Есть описание простенького варианта такого программирования на языке C:
http://www.drdobbs.com/rule-based-programming-in-c/199702471
http://www.drdobbs.com/rule-based-programming-in-c/184405245?pgno=4

Суть его в том, что имеется некий программмный движок, который интерпретирует поступающие извне данные (факты) на основе набора правил. Правила составляют основу сценария, образуют скрипт, в котором не обязательно прописываются строгие переходы между состояниями.
Отличие такого подхода от автоматного программирования в том, срабатывание правил может происходить в произвольном порядке, определяемом только последовательностью приходящих событий (фактов).
Последний раз редактировалось Виктор Казаринов 01 дек 2016, 00:17, всего редактировалось 1 раз.

Re: Как правильно писать сценарии поведения робота?

Scorpio » 01 дек 2016, 00:13

dccharacter писал(а):МОжет, вот этого ему не хватает?

Уже не плохо. Не хватает (или, как у нас говорят, "фальта") самого тела, где мы визуализируем процесс (вперед, вправо, влево, звук).
Про пролог не очень понял.
А ссылки Виктора стоит почитать. Он всегда интересное советует.

Re: Как правильно писать сценарии поведения робота?

dccharacter » 01 дек 2016, 00:18

А тело - это просто функциональное программирование
Т.е. все происходит в воркере
Ну или простой вложенный автомат

Re: Как правильно писать сценарии поведения робота?

SkyStorm » 01 дек 2016, 00:23

Или вот так ...
WvThrFwdjjOVXrLR.png

Re: Как правильно писать сценарии поведения робота?

Scorpio » 01 дек 2016, 00:46

Появляются варианты, что радует.
Dmitry__ писал(а): Сценарии (как я понял) не должны менять код программы.

Конечно же должны,т.к. они определяют основную идею программы, в которой мы выражаем суть проекта. "Хочу, чтобы мой робот мог ездить на заданные расстояния в заданных направлениях и уметь издавать звуки." Под это пишется сценарий поведения, учитывающий пожелания. Под него пишутся все основные уровни: как крутить колеса и т.д. В самом простом случае - это один единственный сценарий, в сложном - робот может сам генерировать сценарии, в зависимости от обстоятельств или полученного опыта. Сценарное поведение свойственно и человеку. проводя недели и года в цикле завтрак - работа - обед - работа - ужин - отдых -сон, мы выполняем жизненный сценарий изредка нарушаемый событиями типа Новый Год. Думаю всем это понятно.
Последний раз редактировалось Scorpio 01 дек 2016, 00:50, всего редактировалось 1 раз.

Re: Как правильно писать сценарии поведения робота?

dccharacter » 01 дек 2016, 00:48

Ребята, вы чо
НГ начался что ли?

Re: Как правильно писать сценарии поведения робота?

Scorpio » 01 дек 2016, 00:51

Просто мы " за долго до конца встретили Новый Год"

Re: Как правильно писать сценарии поведения робота?

Dmitry__ » 01 дек 2016, 01:07

Да, пора всем в пьятницу :D

Scorpio писал(а):Конечно же должны,т.к. они определяют основную идею программы


Я почему-то подумал, что сценарии должны исполняться каким-то интерпретатором, упоминался луноход и g код. Такие сценарии не меняют код программы (интерпретатора). Если сценарии представляют из себя основную идею программы, то надо сильно уточнить вопрос, ибо мух накопилось на 3 тарелки котлет. :)

Добавлено спустя 6 минут 38 секунд:
Чую надо перечитать первое сообщение раз десять :)


Rambler\'s Top100 Mail.ru counter