roboforum.ru

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

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

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

Scorpio » 16 дек 2016, 01:03

Т.е. в ROS "поехать на кухню" находится в одном месте, а "привет Вася" в другом? И изменить кухню на коридор, а Васю на Петю может только разработчик, знающий, как он там все устроил?
И причем тут обмен данными по сети? Это есть в любой ОС. И практически в любом роботе на любом языке.

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

=DeaD= » 16 дек 2016, 01:31

Так ROS в нынешнем виде это не средство для пользователя, и они никогда себя таким образом не позиционировали.

Их объявленная цель - дать максимум возможностей повторно использовать код в робототехнике.
То есть это инструмент разработчика по определению.

Разумеется, можно на основе ROS сделать продукт не для разработчика. Но сама по себе ROS таковым продуктом не является. Как не является...
...ну я не знаю, язык программирования / библиотека для работы с XML файлами / драйвер устройства конечным продуктом для обычного пользователя.

Добавлено спустя 19 минут 44 секунды:
Scorpio писал(а):Т.е. в ROS "поехать на кухню" находится в одном месте, а "привет Вася" в другом? И изменить кухню на коридор, а Васю на Петю может только разработчик, знающий, как он там все устроил?

Перечитал еще раз. Может не так понял, отвечу еще с одной стороны.

ROS это платформа. Для неё есть модули, которые реализуют различный функционал. В том числе тот же самый SLAM.

Никто не мешает создать модуль, для которого будут иметь смысл такие понятия, как "кухня" или "коридор", а также "Вася" и "Петя".
Определить способ задания этих понятий и способы использования - "поехать на/в помещение" или "сказать Привет кому-то".

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

Другой вопрос - будет ли это востребовано? ROS это не самая простая платформа. По крайней мере, если не брать готовый образ под готового робота.

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

Scorpio » 16 дек 2016, 02:20

Т.е. другими словами, что SLAM в ROS, является самоцелью, а не для того, чтобы куда то ехать. Конечно это не так. В ROS я не разбираюсь, но в ней вроде можно моделировать целые миры, а не какие-то примитивные сценарии. Раз под ROS работают такие умные роботы, как PR2. И что-то припоминаю Виктор говорил раньше про специальный модуль сценариев для ROS.

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

Angel71 » 16 дек 2016, 02:47

слам в рос такая же самоцель, как колесо или бортовой компьютер в автомобиле. рос это фреймворк, вокруг которого создана экосистема. намекаю, дотнеты это тоже фреймворки.
Последний раз редактировалось Angel71 16 дек 2016, 03:00, всего редактировалось 1 раз.

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

=DeaD= » 16 дек 2016, 03:01

Scorpio писал(а):Т.е. другими словами, что SLAM в ROS, является самоцелью, а не для того, чтобы куда то ехать.

Другими словами - ROS это изначально классный способ обмениваться такими классными штуками, как SLAM :)

А совсем даже не платформа для написания скриптов "поехать на кухню, сказать ПРИВЕТ, ВАСЯ!".
Хотя никто не мешает сделать для ROS такой модуль. Более того, может даже есть такой модуль.
Но с точки зрения ROS это будет именно один из модулей, а не какой-то особый "головной модуль".

Scorpio писал(а):В ROS я не разбираюсь, но в ней вроде можно моделировать целые миры, а не какие-то примитивные сценарии. Раз под ROS работают такие умные роботы, как PR2.

Миры - это симулятор конкретных физических тел. С конкретными физическими законами.

Сценарии типа "поехать на кухню, спросить Васю" - это абстракция на абстракции.
И нет в них ничего примитивного, если вдуматься.

Это только кажется, что "спросить васю" это очень просто :)

Добавлено спустя 51 секунду:
Angel71 писал(а):слам в рос такая же самоцель, как колесо или бортовой компьютер в автомобиле.

Некорректно. РОС не является продуктом как автомобиль. Скорее как колесо на складе запчастей, где одни запчасти можно соединять с другими.

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

Angel71 » 16 дек 2016, 03:59

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

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

Scorpio » 16 дек 2016, 04:15

Ну, может я не корректно задал вопрос. ROS все-таки операционная система. Правильнее было бы спросить: разработаны ли для ROS узлы/ пакеты, специально предназначенные для написания сценариев поведения?
А сценарий поехать на кухню, сказать "привет Вася" примитивный. Даже, если надо дождаться появления человека,распознать по лицу, что это именно Вася, сам сценарий останется примитивным - в несколько строчек. Он никак не разветвляется. Да, чтобы его реализовать нужен сложный робот. Но в том и прелесть сценария, что этим мы не озабочены. Это высокий уровень, работающий с API робота, у которого поехать на кухню, это один из методов. Это вроде всем очевидно.

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

Angel71 » 16 дек 2016, 04:26

бесперспективняк

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

Scorpio » 16 дек 2016, 05:10

В чем?
Хорошо. Специально для Angel71, который никак не может понять, чего я тут ко всем пристаю.
Предположим, что вам дали задание запрограммировать робота- актера. Который в прямом смысле должен воспроизводить загружаемые в него режиссером (человеком далеким от программирования, но близким к искусству) сценарии. Робот-актер не настолько продвинутый, чтобы напрямую схавать текст "Ромео и Джульеты", но может ходить, говорить, изображать эмоции. Как бы вы подошли к делу?
Вот smur, например, заставил бы режиссера изложить все в графах, а Виктор отправил бы его читать про онтогогии :)

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

Angel71 » 16 дек 2016, 06:28

:) да вся эта тема бесперспективняк
высокоуровневые сценарии хотел? :pardon: шутя специально для тебя переделал описание миссий для бота (хз сколько лет назад сделанный на простенькой fsm и уже давным дано отправленном в утиль)
Код: Выделить всёРазвернуть
<?xml version="1.0" encoding="utf-8"?>
<mission>
   <actions>
      <action name="Идти" />
         <parameter name="Цель" value="Сцена" />
      </action>
      <action name="ИгратьСцену" />
         <parameter name="Сцена" value="Ромео и Джульетта" />
         <parameter name="Роль" value="Ромео" />
      </action>
      <action name="Финита (улыбаемся и машем)" />
      <action name="Идти" />
         <parameter name="Цель" value="За сцену" />
      </action>
  </actions>
</mission>

вот к этому скриптику приделывается ещё скриптик(и) с описанием, как играть. знаком с вариантами, как делают файлы субтитров, подготавливают текст для синтезаторов речи, секвенсоры движений и т.д.? ну вот как-то так.
Последний раз редактировалось Angel71 16 дек 2016, 09:09, всего редактировалось 1 раз.

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

Scorpio » 16 дек 2016, 08:57

Ну вот! Можешь же, когда захочешь! Все, тему можно закрывать :)

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

Виктор Казаринов » 16 дек 2016, 12:08

Scorpio писал(а):Все, тему можно закрывать :)

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

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

smur » 16 дек 2016, 15:10

Я вот сейчас на работе на обеде в свободное время читаю как раз про семантические сети :)
Вроде это в другой ветке теперь?
Хозяйственный робот Robosonic RS A
post367817.html#p367817

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

Scorpio » 16 дек 2016, 17:53

Scorpio писал(а): Все, тему можно закрывать :)
Шутка :)

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

Angel71 » 11 янв 2017, 23:45

https://sourceforge.net/projects/qrobot/
qRobot is an adaptation of the QP/C active object (actor) framework for programming intelligent robots, such as the LEGO Mindstorms NXT, in standard ANSI C.
The behavior of the robot is specified in qRobot by means of event-driven active objects (actors), which are hierarchical state machines that communicate with one another asynchronously by exchanging events. Active objects are closely related to the concept of agents used in Artificial Intelligence (AI).
The qRobot framework supports manual coding of hierarchical state machines (UML statecharts) in C as well as fully *automatic* code generation by means of the free graphical QM modeling tool.
The qRobot project for the LEGO Mindstorms NXT provides replacement firmware for the NXT brick, the complete tooset for building C and C++ programs from a Windows PC, and an extensible set of drivers for the sensors and actuators for the NXT brick.

если интересно, глянь, что ещё есть в разделе robotics.


Rambler\'s Top100 Mail.ru counter