Urbi SDK 2.0 Release Candidate 1 is Published!

March 30th, 2009

With Urbi 1 Gostai introduced a revolutionary means to program robots: a domain specific scripting language that brings together the efficiency of C++, and the flexibility of a dynamic language. Urbi 1 was designed pragmatically, based on user requests and feedback. That’s how Urbi 1 was made useful, and how it met its users expectations. Yet, because of this iterative design process, it suffers a number of limitations.

We are happy to announce the first release candidate of Urbi SDK 2.0, which addresses these issues. It is the result of several years of effort by Gostai. Urbi SDK 2.0 already runs on a large range of architectures which include the major PC architectures (GNU/Linux x86 and ARM, Windows, Mac OS X x86 and PPC). Technical previews have been made available for months to our partners who are working on providing Urbi SDK 2.0 support on their robots.

Read the rest of this entry »

Variables, visibility and the lobby

February 16th, 2009

One frequently asked question is what visibility do variables have in Urbi, especially when they are declared at the toplevel. In this session, we will see the mechanisms behind slots, local variables and scoping to fully explain this behavior and determine how to proceed to give the right visibility to variables.

Read the rest of this entry »

dlopening the cookie jar

January 19th, 2009

The Urbi platform features UObjects, an easy means to extend UrbiScript with new native objects. This is typically used to provide computation intensive structures or algorithms, such as computer-vision, Simultaneous localization and mapping (SLAM) support, etc.
Read the rest of this entry »

UObjects and thread-safeness.

December 2nd, 2008

We are receiving a lot of questions on thread-safeness issues in UObject code. So here comes a quick explanation on how things work in plugin and remote mode, with a focus on those questions.
Read the rest of this entry »

Urbi 2 Technical Preview

February 22nd, 2008

With Urbi 1 Gostai introduced a revolutionary means to program robots: a domain specific scripting language that brings together the efficiency of C++, and the flexibility of a dynamic language. Urbi 1 was designed pragmatically, based on user requests and feedback. That’s how Urbi 1 was made useful, and how it met its users expectations. Yet, because of this iterative design process, it suffers a number of limitations.

To address these issues, Gostai launched the Urbi 2 project months ago. We are happy to announce that Urbi 2 is up and running. It will be made available for technical preview in the near future. In the meanwhile, let us show you some of the changes we made in Urbi. For a start, we will focus on the changes of the Object-Orientation support in Urbi, later articles will cover other facets of the Urbi 2 system.
What follows is implemented, runs, and can be done at home in total safety.

Read the rest of this entry »

Generic pointer emulation in Urbi 1.x

February 22nd, 2008

There are no “pointers” available in Urbi 1.x, nor references like in C++ for example. This will change in Urbi 2, where everything is an object and references can be made with a simple assignment between objects. Meanwhile, it is possible to use the “map” type of Urbi 1.x to emulate pointers in various ways, and we give some simple examples here.

Read the rest of this entry »

How to interface UObjects with other Component Architectures (Corba, Microsoft Robotics Studio, etc)

January 14th, 2008

Thanks to the interpreted nature of the language, Urbi is very well suited for automatic mappings between interfaces, as it allow to create/delete object methods at run time. We will use this to give a few guidelines on how to design a generic UObject capable of creating a proxy to most distributed object architectures. We will take Corba as an illustration, but other component architectures like WebServices, Microsoft Robotics Studio or RT Middleware could in principle be interfaced using the same approach.

Read the rest of this entry »

How to use functions inside expressions

January 12th, 2008

Currently in Urbi 1.x there is no way to include a function inside an expression. This might sound shocking at first, but the deep reason for this is that Urbi 1.x took the (wrong) road of separating commands and expressions, and since functions can involve commands run in parallel and arbitrarily complex execution trees, it was basically impossible to do it without a hack. Urbi 2.x has unified commands and expressions (actually, everything is an object in Urbi 2.x) and the problem has disappeared. So it won’t be long until this problem is properly fixed.

Still, there is a very easy workaround in Urbi 1.x to include function calls inside expressions, and we describe it here.

Read the rest of this entry »

Urbiforge

January 12th, 2008

Forum

January 12th, 2008