Jump to content

ГОРОД

Город
Оригинальный автор(ы) Жан-Кристоф Бэйли
Разработчик(и) Гостай, Альдебаран Робототехника
Первоначальный выпуск 2003 год ; 21 год назад ( 2003 )
Стабильная версия
2.7.4 / 17 ноября 2011 г .; 12 лет назад ( 17.11.2011 )
Репозиторий
Написано в урбискрипт , C++
Операционная система Windows NT , MacOS , Linux
Тип Пакет робототехники , операционная система , библиотека.
Лицензия БСД [1]

Urbi — это с открытым исходным кодом кроссплатформенная программная вычислительная платформа , написанная на C++ и используемая для разработки приложений для робототехники и сложных систем. [2] Urbi основан на архитектуре распределенных компонентов C++ UObject. Он также включает urbiscript язык оркестровки , который является параллельным и управляемым событиями языком сценариев. Компоненты UObject могут быть подключены к urbiscript и отображаться как собственные объекты, которые можно запрограммировать для указания их взаимодействия и обмена данными. UObjects могут быть связаны с интерпретатором urbiscript или выполняться как автономные процессы в «удаленном» режиме.

Городской язык

[ редактировать ]

Урбискриптный язык был создан в 2003 году Жаном-Кристофом Бэйли в лаборатории когнитивной робототехники ENSTA , Париж. Он активно и далее развивается в отрасли благодаря компании Gostai, основанной в 2006 году. Сейчас это проект с открытым исходным кодом и лицензией BSD, доступный на GitHub. [3]

Язык urbiscript лучше всего можно охарактеризовать как язык сценариев оркестрации: подобно Lua в видеоиграх, urbiscript можно использовать для склеивания компонентов C++ в функциональное поведение, при этом алгоритмическая часть с интенсивным использованием ЦП остается на C++, а часть сценариев поведения остается. к языку сценариев, который является более гибким, простым в обслуживании и допускает динамическое взаимодействие во время выполнения программы. Будучи языком оркестровки, urbiscript также привносит в программу некоторые полезные абстракции, используя параллелизм и программирование на основе событий как часть семантики языка. Сценарии параллельного поведения и реакции на события являются основными требованиями большинства роботизированных и сложных приложений искусственного интеллекта, поэтому urbiscript (и вся платформа Urbi) хорошо подходит для таких приложений.

Языковые атрибуты

[ редактировать ]

В приведенном ниже примере показано, как написать цикл действия/восприятия отслеживания мяча в urbiscript: headYaw/headPitch — это два моторных объекта, а мяч — это объект обнаружения мяча (диапазон x и y от -1/2 до 1/2):

  whenever (ball.visible)
  {
      headYaw.val   += camera.xfov * ball.x
    &
      headPitch.val += camera.yfov * ball.y
  };

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

Другие известные конструкции, управляемые событиями, включают at , который запускает связанный код один раз при возникновении события:

  at (speech.hear?("hello"))
  {
    voice.say("How are you?") &
    robot.standup();
  }

Каждую команду или группу команд можно пометить, что дает возможность остановить ее позже, если это необходимо:

  myTag:
    while (true)
      echo("This is a never ending loop"),
  at (button.pressed)
    myTag.stop;

Обратите внимание на запятую в конце команды в примере выше. Это поместит предыдущую команду в фоновый режим, позволяя продолжить выполнение потока, в частности, выполнение следующей команды «at».

Архитектура компонента UObject

[ редактировать ]

Архитектура компонентов UObject позволяет разработчикам взаимодействовать с любым объектом Java/C++ внутри Urbi, делая выбранные методы и атрибуты видимыми в urbiscript, хотя фактически они представляют собой скомпилированный код. Для любого атрибута объекта можно установить специальные уведомители, чтобы уведомлять сторону C++ о любых изменениях этих атрибутов на стороне urbiscript/Urbi.

UObject использует шаблоны C++ для прозрачного сопоставления любого запрошенного метода с механизмом интерфейса, который отвечает за проверку типов.

UObject можно использовать в подключенном режиме, если он напрямую связан с Urbi во время компиляции или при динамической загрузке. В этом случае объект C++ напрямую использует память Urbi, что обеспечивает эффективную интеграцию. Обычно это используется для компонентов, критичных ко времени, таких как драйверы двигателей или датчиков. Тот же UObject без изменений можно использовать и в качестве удаленного компонента. В этом случае он станет автономной программой, которая будет выполняться с IP-адресом сервера Urbi в качестве параметра. В обоих случаях объект будет прозрачно отображаться в urbiscript как собственный объект urbiscript.

Экосистема

[ редактировать ]

Симуляторы робототехники, совместимые с Urbi

[ редактировать ]

Урби- роботы

[ редактировать ]

Выпущенный:

Объявлено:

См. также

[ редактировать ]
  1. ^ «Urbi, операционная система с открытым исходным кодом для роботов» . Проверено 27 октября 2012 г.
  2. ^ Бэйли, Жан-Кристоф. «Urbi: новый параллельный и управляемый событиями язык сценариев для робототехники, игр и многого другого» . Ютуб. Архивировано из оригинала 21 декабря 2021 г. Проверено 6 октября 2011 г.
  3. ^ "Город " GitHub
  4. ^ Бэйли, Жан-Кристоф; Демайль, аким; Ноттале, Матье; Хоке, Квентин; Тардье, Самуэль (2008). «Универсальная платформа Urbi для робототехники» (PDF) . Проверено 6 октября 2011 г.
  5. ^ Бэйли, Жан-Кристоф; Демайль, аким; Ноттале, Матье; Хоке, Квентин (2010). «Тег: Управление заданиями в городских условиях» (PDF) . Проверено 6 октября 2011 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dbcf39a3dcc9e1fe7549987d54c378bd__1720187760
URL1:https://arc.ask3.ru/arc/aa/db/bd/dbcf39a3dcc9e1fe7549987d54c378bd.html
Заголовок, (Title) документа по адресу, URL1:
URBI - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)