roboforum.ru

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

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

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

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

Сообщение Dmitry__ » 04 дек 2016, 00:12

smur писал(а):Это слишком категорично
Конечный автомат — абстрактный автомат, число возможных внутренних состояний которого конечно.

Вот именно этого я и ждал, не писал сразу доказательство: все пардигмы - конечный автомат. :)
Доказательство: Все программы исполняются на процессоре, который - конечный автомат.
Вывод: Если ИИ не является конечным автоматом, то его нельзя воспроизвести на существующих процессорах. Шах и мат :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Scorpio » 04 дек 2016, 00:28

И это правильно. ИИ, для меня во всяком случае, это возможость использовать полученный опыт для саморазвития. Это просто адаптивный алгоритм на конечных автоматах. Но возможности его безграничны. Я уверен, что, когда Виктор Казаринов допилит свой ИИ движок, окажется, что "да это же так просто, и как я сам не догадался". А ИИ будет поставляться в комплекте с конструктором лего.
Аватара пользователя
Scorpio
 
Сообщения: 2702
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение Dmitry__ » 04 дек 2016, 00:38

Scorpio писал(а):Это просто адаптивный алгоритм на конечных автоматах. Но возможности его безграничны.

Не совсем так.
Пример лунохода Виктора Казаринова - чрезмерно усложнен. Или, как я и говорил, нельзя проверять парадигмы на таком примитивном устройстве, или это доказательство того, что есть более понятные вещи.
Наблюдая разных топ лайн-трайсеров на конечных автоматах, иногда задаешь себе вопрос: "а я бы (ИИ) прошел так трассу?"
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение smur » 04 дек 2016, 10:16

Так Виктор сразу и написал:
>"Простейшим видом агента является простой рефлексный агент. Подобные агенты выбирают действия на основе текущего акта >восприятия, игнорируя всю остальную историю актов восприятия." Видимо, написание сценария для робота-лунохода в >качестве такого простейшего агента-робота можно обсуждать в данной теме. О других , более сложных видах >интеллектуальных агентов можно говорить после разбора этого простейшего вида.

Так что хотя бы с этим разобраться :) Те. в качестве "кошечек" рассматривается работа с автоматами I (Ну может и II рода), когда состояние системы определяется значениями входных воздействий в текущий (либо в предыдущий) такт. Тут ИИ и не применим, тк его зарезали по глубине предыстории :)

А лайн трейсеры, если нет замкнутых линий, можно построить на комбинационной логике, на 155ЛА3 :)
А если есть замкнутые участки, то без анализа предыстории будешь по кругу бегать.
smur
 
Сообщения: 97
Зарегистрирован: 22 ноя 2016, 22:00

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

Сообщение Angel71 » 04 дек 2016, 10:31

Dmitry__, в пень эту болтологию с частичками души и ии. простая задача и в реальной ситуации можно было проще реализовать на си или ещё чём. но он же ищет на чём делать для разных задач, так что немного усложнив для машинки можно посмотреть, на сколько этот вариант с клипсом подходит. то, что "луноход" простой как валенок это да, только для разных задач и выбор более подходящего подхода может отличаться. из полезного на практике может пригодится прерывание выполнения, параллельные задачи, прокладка маршрута, как организовывать работу с ресурсами у которых возможен только монопольный доступ, хранение и обработка данных об истории действий и/или окружающей среде.
некая простенькая платформа на колёсах или гусеницах, перемещение по клеткам. 3 светодиода (2 индикация поворота, третий для общей индикации). использовать или нет бамперы, дальномеры, энкодеры, датчики цвета,... то другой момент.
1) выполнения списка задач на подобии: из начальной клетки проехать вперёд 2, повернуть направо, проехать вперёд 1, повернуть налево, включить "общий" светодиод, проехать вперёд 4, включить "общий" светодиод. все повороты в этом режиме на 90 градусов и при поворотах мигать соответствующим сетодиодом.
2) из начальной клетки проехать в клетку с определёнными координатами. на пути могут быть клетки "препятствие", которые нужно объезжать. если есть путь, остаться в целевой клетке, если нет, вернться в изначальную.
3) при нажатии на кнопку или получении команды по проводам/радиоканалу начать мигать всеми тремя светодиодамим. при повторном нажатии или получении этой же команды (или команды отмены) прекратить мигать диодами. это будет допустим симуляцией поведения при разряде аккумулятора.
4) опять кнопка/радиоканал. получена команда вернуться в изначальную клетку. текущее выполнение других (всех или только определённых, допустим 1 отменить, а 3 нет) задач полностью прерываются, без дальнейшей возможности выполнения. пока не получена другая команда для отмены этого режима, никакие не отменяемые режимы/задачи не могут выполняться.
5) как и 4, только после получения команды отмены этого режима, прерванные задачи/режимы должны продолжить свою работу. с вариациями. 1 может начать выполняться с начала или проехав в точку в которой было прервано выполнение продолжить выполнение по списку. 2 может вернуться в клетку и продолжить движение в заданную клетку или по полученным данным (клетки в которых можно перемещаться и клетки "препятствие") проложить новый путь.
при прерывании два