Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

URBI (англ. universal real-time behavior interface — кросс-платформенное приложение, на языке программирования C++ [прояснить], используемое для разработки приложений, робототехники и сложных вычислений и задач. Платформа включает в себя параллельный и событийный скриптовый языкUrbiScript.

Лицензия

URBI распространяется под лицензией BSD, доступной на GitHub.

Подключение

UObject кросс-платформы можно использовать в сценариях для взаимодействия и обмена данными. Они подключаются к UrbiScript и взаимодействуют как «родные».

Компоненты могут быть связаны с интерпретатором UrbiScript, либо работать, как автономный процесс в «удаленном» режиме.

UrbiScript

UrbiScript — это скриптовый язык в видеоиграх. Он может использоваться с языком программирования C++ для создания компонентов в единую функциональную структуру.

Создание

Язык UrbiScript разрабатывается с 2003 года Жаном-Кристофом Бейли в когнитивной Лаборатории робототехники ENSTA, в Париже.

В настоящее время скрипт активно развивается совместно с компанией Gostai.

Основные возможности

  • Параллельность и программирования на основе событий
  • Прототипное программирование (Prototype-based programming)
  • Синтаксис в стиле C++
  • C++ архитектура компонентов (UObject) с возможностью линковки объектов или их удалённого запуска
  • Архитектура Клиент-Сервер
  • Клиентские интерфейсы для Java и Matlab (Urbi SDK)
  • Кроссплатфоменность: Linux, Mac, Windows и другие. Являясь встраиваемым, URBI может работать на различных процессорах: x86, ARM, MIPS, PowerPC и т. д.
  • Теговые команды (taggable commands) для контроля выполнения потока
  • С мая 2010 года Urbi является продуктом с открытым исходным кодом (лицензия GNU AGPL v3) .
  • Urbi может взаимодействовать с ROS от компании Willow Garage.
  • Urbi может использоваться в качестве промежуточного слоя C++, без urbiscript. Однако, использование urbiscript требует изучения сравнительно нового языка, не столько с точки зрения синтаксиса (который, похож на С/C++), а в терминах параллельной /событийной парадигмы.
  • Webots — профессиональный симулятор роботов, который может работать с Urbi.
  • Программное обеспечение для визуального управления роботом от Gostai Studio и Gostai Lab, но оно является проприетарным и стоит дорого.

Примеры

Примеры показывают, как на UrbiScript реализуется цикл отслеживания «мяча» — объекты моторов головы, объекты для детектирования «мяча» (x и y в диапазоне от −1/2 до 1/2):

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

Whenever — цикл, который используется для выполнения связанного кода до тех пор, пока значение условий истинно.

«&» — указание для обеих команд, которые должны начинаться в одно и то же время, выполняясь тем самым параллельно.

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

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

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

myTag — тег который даёт возможность приостановить этот код в случае необходимости:

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

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

Компонентная архитектура UObject основывается на C++-библиотеке UObject, позволяя разработчикам взаимодействовать с любым C++-объектом в Urbi, предоставляя отображение выбранных методов и параметров в скриптовом языке, оставаясь C++ кодом. Оповещение C++ можно установить на любой из атрибутов объекта для уведомления кода о каких-либо изменениях этих атрибутов со стороны UrbiScript/Urbi.

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

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

Существующие UObject

Поддерживаемые скрипты

Ссылки

Эта страница в последний раз была отредактирована 2 марта 2024 в 21:19.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).