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
|