Urbi full day tutorial at Humanoids'09

 

Tutorial Humanoids 2009

REUSABLE BEHAVIOR PROGRAMMING USING THE
URBI ROBOTICS SOFTWARE PLATFORM

Jean‐Christophe Baillie, Gostai
baillie@gostai.com


Abstract

Urbi is a robotics middleware originally developed at the Cognitive Robotics Lab in ENSTA to facilitate the programming of the Sony Aibo robot. Urbi is based on a distributed C++ component architecture called UObject, coupled to urbiScript, a new parallel and event‐based script language that acts as an orchestrator to define behaviors through the interaction of the components. Some components are typically drivers for the hardware, while others handle image processing or various algorithms. Urbi includes also a graphical programming suite called urbiStudio, which facilitates the design of HFSM (Hierarchical Finite State Machines), generic graphical interfaces and remote controllers. This tutorial will cover the core aspects of Urbi and give a good introduction to interested researchers who can then freely download the SDK and use it with commercial or customized robots.

Robot programming tools, state of the art

There are several other efforts aimed at providing a universal software platform for robotics. Most are focused on providing a common C++ abstract layer to robot sensors/actuators, like Player/Stage or Marie. Some will come with an integrated simulator like Player/Stage or MSRS/Microsoft Robotics Studio (Urbi is compatible with Webots). There are also efforts to provide more than a middleware but also a structured architecture and associated algorithms, like in the Orocos project. Most platforms come with a component model, more or less inspired by Corba or similar decentralized architecture. Notably, only a few, among which MSRS and Urbi, address directly the important issues of handling events and parallel constructs, which are central to most robot applications. The key differentiation factor between these platforms usually lies in the size of the community, the number of associated tools and compatible robots, or the learning curve.

The Urbi platform

The Urbi platform is original in its approach of the issues of parallelism and event‐based programming by delegating these tasks to a script language. The language has built‐in abstractions to express parallel constructs or event handlers, together with a very strong C++ coupling through the UObject architecture. Since Urbi also rely on a client/server architecture, it is easy to interface it with existing languages like python, Java or Matlab, which is one of the strong point of Urbi in term of flexibility. It can also work on top of a Linux or Windows OS in a transparent way. The learning curve is progressive and simple interactions with the robot can be mastered in a very short time, while more advanced uses are available for complex development. Urbi has been successfully used in many academics programs, including the Robocup, and is now compatible with 15 robots including Aibo, Nao, iRobot Create, Lego Mindstorms, Bioloid, Pioneer or Spykee.

Tutorial Program and date

The tutorial will include demos and practical examples.

General principles

Learn about the Urbi architecture, its principal components and features. Discover what you will be able to achieve thanks to Urbi.

- Client/Server architecture
- Object oriented script language
- Bindings with common languages
- Distributed plugin system

Robot control with urbiScript

urbiScript is a powerful script language, specially made to ease parallel and event-based programming. Learn the new programming paradigm for urbiScript, and use Urbi advanced features.

- Basic features
- Object programming
- Time control
- Parallelism
- Concurrent access control
- Event-based programming
- Task control

Behavior development with Urbi Studio

Urbi Studio is a graphical tool suite especially made to allow quick and easy development. Graphically design your behaviors and animations, and fine tune the internals with urbiScript.

- Robot remote control
- Motion creation
- Hierarchical finite state machines
- Debugging
- Deployment

Plugin creation and integration

Extend your scripts and behavior with existing code in any language. Benefit from other products, reuse your previous work. Distribute your components transparently on many servers and devices.

- Algorithm integration
- Remote components
- Embeded components

Urbi in a simulated environment

Do not do twice what is needed once. Quickly prototype your components and behaviors, test them in a simulation, debug, and use real hardware only when needed. - Webots - Agile development - Infrastructure and behavior testing - Reduce development time and costs

This tutorial will be held on December 7, 2009
Registration before November 25,2009.
Session date confirmation on December 01, 2009.

Prerequisites

No previous knowledge of Urbi is necessary to attend the tutorial. A good understanding of C++ is required to follow the explanations on UObject, and the tutorial can be followed on Windows, Linux or Mac.

More information: www.gostai.com, see the Google Tech Talk here: www.gostai.com/video

limited number of participants for more information :

contact

Simply apply by filling the fields below, in order to preregister to the tutorial. Official registration can be performed on the Humanoids '09 registration form.
* are mandatory fields

Name *

Firstname *

Salutations

Company *

Country *

Function *

Telephone *

Email *

Session date *

number of attendees *

Comments

           

 

As requested by French law, Gostai SAS training activities are registered

to the Préfecture d'Ile de France under number 11 75 43288 75.