Next

Prev

Prev-tail

Tail

Up

Contents

1 Introduction
 1.1 Urbi and UObjects
 1.2 Urbi and urbiscript
 1.3 Genesis
 1.4 Outline
2 Getting Started
I  Urbi and UObjects User Manual
3 The UObject API
 3.1 Compiling UObjects
  3.1.1 Compiling by hand
  3.1.2 The umake-* family of tools
  3.1.3 Using the Visual C ++ Wizard
 3.2 Creating a class, binding variables and functions
 3.3 Creating new instances
 3.4 Binding functions
  3.4.1 Simple binding
  3.4.2 Asynchronous binding
 3.5 Notification of a variable change or access
 3.6 Data-flow based programming: exchanging UVars
 3.7 Timers
 3.8 The special case of sensor/effector variables
 3.9 Using Urbi variables
 3.10 Emitting events
 3.11 UObject and Threads
 3.12 Using binary types
  3.12.1 UVar conversion and memory management
  3.12.2 0-copy mode
 3.13 Using hubs to group objects
 3.14 Sending Urbi code
4 Use Cases
 4.1 Writing a Servomotor Device
  4.1.1 Caching
  4.1.2 Using Timers
 4.2 Using Hubs to Group Objects
  4.2.1 Alternate Implementation
 4.3 Writing a Camera Device
  4.3.1 Optimization in Plugin Mode
 4.4 Writing a Speaker or Microphone Device
 4.5 Writing a Softdevice: Ball Detection
II  urbiscript User Manual
5 First Steps
 5.1 Comments
 5.2 Literal values
 5.3 Function calls
 5.4 Variables
 5.5 Scopes
 5.6 Method calls
 5.7 Function definition
 5.8 Conclusion
6 Basic Objects, Value Model
 6.1 Objects in urbiscript
 6.2 Methods
 6.3 Everything is an object
 6.4 The urbiscript values model
 6.5 Conclusion
7 Flow Control Constructs
 7.1 if
 7.2 while
 7.3 for
 7.4 switch
 7.5 do
8 Advanced Functions and Scoping
 8.1 Scopes as expressions
 8.2 Advanced scoping
 8.3 Local functions
 8.4 Lexical closures
9 Objective Programming, urbiscript Object Model
 9.1 Prototype-based programing in urbiscript
 9.2 Prototypes and slot lookup
 9.3 Copy on write
 9.4 Defining pseudo-classes
 9.5 Constructors
 9.6 Operators
10 Functional Programming
 10.1 First class functions
 10.2 Lambda functions
 10.3 Lazy arguments
11 Parallelism, Concurrent Flow Control
 11.1 Parallelism operators
 11.2 Detach
 11.3 Tags for parallel control flows
 11.4 Advanced example with parallelism and tags
12 Event-based Programming
 12.1 Event related constructs
 12.2 Events
III  Guidelines and Cook Books
13 Installation
 13.1 Download
 13.2 Install & Check
  13.2.1 GNU/Linux and Mac OS X
  13.2.2 Windows
14 Frequently Asked Questions
 14.1 Build Issues
  14.1.1 Complaints about ‘+=
  14.1.2 error: ‘¡anonymous¿’ is used uninitialized in this function
  14.1.3 AM_LANGINFO_CODESET
  14.1.4 git: fatal: Needed a single revision
 14.2 Troubleshooting
  14.2.1 Error 1723: ”A DLL required for this install to complete could not be run.”
  14.2.2 When executing a program, the message “The system cannot execute the specified program.” is raised.
  14.2.3 When executing a program, the message “This application has failed to start” is raised.
  14.2.4 The server dies with “stack exhaustion”
  14.2.5 ’myuobject: file not found’. What can I do?
 14.3 urbiscript
  14.3.1 Objects lifetime
  14.3.2 Slots and variables
  14.3.3 Tags
  14.3.4 Events
  14.3.5 Standard Library
 14.4 UObjects
  14.4.1 Is the UObject API Thread-Safe?
 14.5 Miscellaneous
  14.5.1 What has changed since the latest release?
  14.5.2 How do I report a bug?
15 Migration from urbiscript 1 to urbiscript 2
 15.1 One to one translation
  15.1.1 $(Foo)
  15.1.2 delete Foo
  15.1.3 emit Foo
  15.1.4 eval(Foo)
  15.1.5 foreach
  15.1.6 group
  15.1.7 loopn
  15.1.8 new Foo
  15.1.9 self
  15.1.10 stop Foo
  15.1.11 # line
  15.1.12 tag+end
16 Building Urbi SDK
 16.1 Requirements
 16.2 Check out
 16.3 Bootstrap
 16.4 Configure
  16.4.1 configuration options
  16.4.2 Windows: Cygwin
  16.4.3 building For Windows
  16.4.4 Building for Windows using Cygwin
 16.5 Compile
 16.6 Run
 16.7 Check
  16.7.1 Lazy test suites
  16.7.2 Partial test suite runs
IV  Urbi SDK Reference Manual
17 Programs
 17.1 Environment Variables
  17.1.1 Search Path Variables
  17.1.2 Environment Variables
 17.2 Special Files
 17.3 urbi — Running an Urbi Server
  17.3.1 Options
 17.4 urbi-image — Querying Images from a Server
  17.4.1 Options
 17.5 urbi-launch — Running a UObject
  17.5.1 Invoking urbi-launch
  17.5.2 Examples
 17.6 urbi-send — Sending urbiscript Commands to a Server
 17.7 umake — Compiling UObject Components
  17.7.1 Invoking umake
  17.7.2 umake Wrappers
18 urbiscript Language Reference Manual
 18.1 Syntax
  18.1.1 Characters, encoding
  18.1.2 Comments
  18.1.3 Synclines
  18.1.4 Identifiers
  18.1.5 Keywords
  18.1.6 Literals
   18.1.6.1 Angles
   18.1.6.2 Dictionaries
   18.1.6.3 Durations
   18.1.6.4 Floats
   18.1.6.5 Lists
   18.1.6.6 Strings
   18.1.6.7 Tuples
  18.1.7 Statement Separators
   18.1.7.1 ;
   18.1.7.2 ,
   18.1.7.3 |
   18.1.7.4 &
  18.1.8 Operators
   18.1.8.1 Arithmetic operators
   18.1.8.2 Assignment operators
   18.1.8.3 Bitwise operators
   18.1.8.4 Logical operators
   18.1.8.5 Comparison operators
   18.1.8.6 Container operators
   18.1.8.7 Object operators
   18.1.8.8 All operators summary
 18.2 Scopes and local variables
  18.2.1 Scopes
  18.2.2 Local variables
 18.3 Functions
  18.3.1 Function Definition
  18.3.2 Arguments
  18.3.3 Return value
  18.3.4 Call messages
  18.3.5 Strictness
  18.3.6 Lexical closures
 18.4 Objects
  18.4.1 Slots
   18.4.1.1 Manipulation
   18.4.1.2 Syntactic Sugar
  18.4.2 Prototypes
   18.4.2.1 Manipulation
   18.4.2.2 Inheritance
   18.4.2.3 Copy on write
  18.4.3 Sending messages
 18.5 Imperative flow control
  18.5.1 break
  18.5.2 continue
  18.5.3 do
  18.5.4 if
  18.5.5 for
   18.5.5.1 C-like for
   18.5.5.2 Range-for
   18.5.5.3 for n-times
  18.5.6 if
  18.5.7 loop
  18.5.8 switch
  18.5.9 while
   18.5.9.1 while;
   18.5.9.2 while—
 18.6 Exceptions
  18.6.1 Throwing exceptions
  18.6.2 Catching exceptions
  18.6.3 Inspecting exceptions
 18.7 Assertions
 18.8 Parallel and event-based flow control
  18.8.1 at
   18.8.1.1 at on Events
   18.8.1.2 at on Boolean Expressions
   18.8.1.3 Scoping at at
  18.8.2 every
   18.8.2.1 every|
   18.8.2.2 every,
  18.8.3 for
   18.8.3.1 C-for,
   18.8.3.2 range-for& (:)
   18.8.3.3 for& (n)
  18.8.4 loop,
  18.8.5 waituntil
   18.8.5.1 waituntil on Events
   18.8.5.2 waituntil on Boolean Expressions
  18.8.6 whenever
   18.8.6.1 whenever on Events
   18.8.6.2 whenever on Boolean Expressions
  18.8.7 While
   18.8.7.1 while,
 18.9 Trajectories
19 urbiscript Standard Library
 19.1 Barrier
  19.1.1 Prototypes
  19.1.2 Construction
  19.1.3 Slots
 19.2 Binary
  19.2.1 Prototypes
  19.2.2 Construction
  19.2.3 Slots
 19.3 Boolean
  19.3.1 Prototypes
  19.3.2 Construction
  19.3.3 Truth Values
  19.3.4 Slots
 19.4 CallMessage
  19.4.1 Examples
   19.4.1.1 Evaluating an argument several times
   19.4.1.2 Strict Functions
  19.4.2 Slots
 19.5 Channel
  19.5.1 Prototypes
  19.5.2 Construction
  19.5.3 Slots
 19.6 Code
  19.6.1 Prototypes
  19.6.2 Construction
  19.6.3 Slots
 19.7 Comparable
 19.8 Control
  19.8.1 Prototypes
  19.8.2 Slots
 19.9 Date
  19.9.1 Prototypes
  19.9.2 Construction
  19.9.3 Slots
 19.10 Dictionary
  19.10.1 Example
  19.10.2 Prototypes
  19.10.3 Construction
  19.10.4 Slots
 19.11 Directory
  19.11.1 Prototypes
  19.11.2 Construction
  19.11.3 Slots
 19.12 Duration
  19.12.1 Prototypes
  19.12.2 Construction
  19.12.3 Slots
 19.13 Event
  19.13.1 Prototypes
  19.13.2 Examples
  19.13.3 Construction
  19.13.4 Slots
 19.14 Exception
  19.14.1 Prototypes
  19.14.2 Construction
  19.14.3 Slots
  19.14.4 Specific Exceptions
 19.15 Executable
  19.15.1 Prototypes
  19.15.2 Construction
  19.15.3 Slots
 19.16 File
  19.16.1 Prototypes
  19.16.2 Construction
  19.16.3 Slots
 19.17 Finalizable
  19.17.1 Example
  19.17.2 Prototypes
  19.17.3 Construction
  19.17.4 Slots
 19.18 Float
  19.18.1 Prototypes
  19.18.2 Construction
  19.18.3 Slots
 19.19 FormatInfo
  19.19.1 Prototypes
  19.19.2 Construction
  19.19.3 Slots
 19.20 Formatter
  19.20.1 Prototypes
  19.20.2 Construction
  19.20.3 Slots
 19.21 Global
  19.21.1 Prototypes
  19.21.2 Slots
 19.22 Group
  19.22.1 Example
  19.22.2 Prototypes
  19.22.3 Construction
  19.22.4 Slots
 19.23 InputStream
  19.23.1 Prototypes
  19.23.2 Construction
  19.23.3 Slots
 19.24 Job
 19.25 Kernel1
  19.25.1 Prototypes
  19.25.2 Construction
  19.25.3 Slots
 19.26 Lazy
  19.26.1 Examples
   19.26.1.1 Evaluating once
   19.26.1.2 Evaluating several times
  19.26.2 Caching
  19.26.3 Prototypes
  19.26.4 Construction
  19.26.5 Slots
 19.27 List
  19.27.1 Prototypes
  19.27.2 Construction
  19.27.3 Slots
 19.28 Loadable
  19.28.1 Prototypes
  19.28.2 Example
  19.28.3 Construction
  19.28.4 Slots
 19.29 Lobby
  19.29.1 Prototypes
  19.29.2 Construction
  19.29.3 Examples
  19.29.4 Slots
 19.30 Location
  19.30.1 Prototypes
  19.30.2 Construction
  19.30.3 Slots
 19.31 Math
  19.31.1 Prototypes
  19.31.2 Construction
  19.31.3 Slots
 19.32 Mutex
  19.32.1 Prototypes
  19.32.2 Construction
 19.33 nil
  19.33.1 Prototypes
  19.33.2 Construction
  19.33.3 Slots
 19.34 Object
  19.34.1 Prototypes
  19.34.2 Construction
  19.34.3 Slots
 19.35 Orderable
 19.36 OutputStream
  19.36.1 Prototypes
  19.36.2 Construction
  19.36.3 Slots
 19.37 Pair
  19.37.1 Prototype
  19.37.2 Construction
  19.37.3 Slots
 19.38 Path
  19.38.1 Prototypes
  19.38.2 Construction
  19.38.3 Slots
 19.39 Pattern
  19.39.1 Prototypes
  19.39.2 Construction
  19.39.3 Slots
 19.40 Position
  19.40.1 Prototypes
  19.40.2 Construction
  19.40.3 Slots
 19.41 Primitive
  19.41.1 Prototypes
  19.41.2 Construction
  19.41.3 Slots
 19.42 Process
  19.42.1 Prototypes
  19.42.2 Example
  19.42.3 Construction
  19.42.4 Slots
 19.43 Profiling
  19.43.1 Prototypes
  19.43.2 Construction
 19.44 PseudoLazy
 19.45 PubSub.Subscriber
  19.45.1 Prototypes
  19.45.2 Construction
  19.45.3 Slots
 19.46 PubSub
  19.46.1 Prototypes
  19.46.2 Construction
  19.46.3 Slots
 19.47 RangeIterable
  19.47.1 Prototypes
  19.47.2 Slots
 19.48 Regexp
  19.48.1 Prototypes
  19.48.2 Construction
  19.48.3 Slots
 19.49 Semaphore
  19.49.1 Prototypes
  19.49.2 Construction
  19.49.3 Slots
 19.50 Server
  19.50.1 Prototypes
  19.50.2 Construction
  19.50.3 Slots
 19.51 Singleton
  19.51.1 Prototypes
  19.51.2 Construction
  19.51.3 Slots
 19.52 Socket
  19.52.1 Example
  19.52.2 Prototypes
  19.52.3 Construction
  19.52.4 Slots
 19.53 String
  19.53.1 Prototypes
  19.53.2 Construction
  19.53.3 Slots
 19.54 System.Platform
 19.55 System
  19.55.1 Prototypes
  19.55.2 Slots
 19.56 Tag
  19.56.1 Examples
   19.56.1.1 Stop
   19.56.1.2 Block/unblock
   19.56.1.3 Freeze/unfreeze
   19.56.1.4 Scope tags
   19.56.1.5 Enter/leave events
   19.56.1.6 Begin/end
  19.56.2 Construction
  19.56.3 Slots
 19.57 Timeout
  19.57.1 Prototypes
  19.57.2 Construction
  19.57.3 Examples
  19.57.4 Slots
 19.58 TrajectoryGenerator
  19.58.1 Prototypes
  19.58.2 Examples
   19.58.2.1 Accel
   19.58.2.2 Cos
   19.58.2.3 Sin
   19.58.2.4 Smooth
   19.58.2.5 Speed
   19.58.2.6 Time
  19.58.3 Construction
  19.58.4 Slots
 19.59 Triplet
  19.59.1 Prototype
  19.59.2 Construction
  19.59.3 Slots
 19.60 Tuple
  19.60.1 Prototype
  19.60.2 Construction
  19.60.3 Slots
 19.61 UObject
  19.61.1 Prototypes
  19.61.2 Slots
 19.62 UValue
 19.63 UVar
  19.63.1 Construction
  19.63.2 Prototypes
  19.63.3 Slots
 19.64 void
  19.64.1 Prototypes
  19.64.2 Construction
  19.64.3 Slots
20 Gostai Standard Robotics API
 20.1 The Structure Tree
 20.2 Frame of Reference
 20.3 Component naming
 20.4 Localization
 20.5 Interface
  20.5.1 Identity
  20.5.2 Network
  20.5.3 Motor
  20.5.4 LinearMotor (subclass of Motor)
  20.5.5 LinearSpeedMotor (subclass of Motor)
  20.5.6 RotationalMotor (subclass of Motor)
  20.5.7 RotationalSpeedMotor (subclass of Motor)
  20.5.8 Sensor
  20.5.9 DistanceSensor (subclass of Sensor)
  20.5.10 TouchSensor (subclass of Sensor)
  20.5.11 AccelerationSensor (subclass of Sensor)
  20.5.12 GyroSensor (subclass of Sensor)
  20.5.13 TemperatureSensor (subclass of Sensor)
  20.5.14 Laser (subclass of Sensor)
  20.5.15 Mobile
  20.5.16 Tracker
  20.5.17 VideoIn
  20.5.18 AudioOut
  20.5.19 AudioIn
  20.5.20 BlobDetector
  20.5.21 TextToSpeech
  20.5.22 SpeechRecognizer
  20.5.23 Led
  20.5.24 RGBLed (subclass of Led)
  20.5.25 Battery
 20.6 Standard Components
  20.6.1 Yaw/Pitch/Roll orientation
  20.6.2 Standard Component List
 20.7 Compact notation
 20.8 Support classes
  20.8.1 Interface
  20.8.2 Component
  20.8.3 Localizer
V  Urbi Platforms
21 Nao
 21.1 Introduction
 21.2 Starting up
 21.3 Accessing joints
  21.3.1 Advanced parameters
   21.3.1.1 Trajectory generator period
   21.3.1.2 Motor back-end method
   21.3.1.3 Motor command debugging
 21.4 Leds
 21.5 Camera
  21.5.1 Slots
 21.6 Other sensors
 21.7 Interfacing with NaoQi
  21.7.1 Accessing the NaoQi shared memory region
  21.7.2 Accessing standard NaoQi modules
  21.7.3 Binding new NaoQi modules in Urbi
  21.7.4 Writing NaoQi modules in Urbi
22 Spykee
 22.1 Introduction
 22.2 Installing Urbi on the Spykee
 22.3 Device list
 22.4 Dynamically loaded modules
  22.4.1 Clapper
23 Webots
 23.1 Setup
  23.1.1 Installation
   23.1.1.1 Linux
   23.1.1.2 Mac OS X
   23.1.1.3 Windows
  23.1.2 License
   23.1.2.1 Evaluation mode
   23.1.2.2 Setting up a license
 23.2 Using Urbi as a controller in your Webots worlds
  23.2.1 Using the default urbi-2.0 controller
  23.2.2 Defining custom Urbi controllers
 23.3 Binding your own robots with Urbi for Webots
 23.4 Built-in robots and worlds
 23.5 Webots UObjects
  23.5.1 Robot devices UObjects
   23.5.1.1 Accelerometer
   23.5.1.2 Camera
   23.5.1.3 Differential Wheels
   23.5.1.4 Distance Sensor
   23.5.1.5 Led
   23.5.1.6 Servo
   23.5.1.7 Touch Sensor
  23.5.2 Supervisor API UObjects
   23.5.2.1 Label
   23.5.2.2 Manipulate Node
   23.5.2.3 Simulation Controller
VI  Tables and Indexes
24 Notations
 24.1 Words
 24.2 Frames
  24.2.1 Shell Sessions
  24.2.2 urbiscript Sessions
  24.2.3 urbiscript Assertions
  24.2.4 C ++ Code
25 Release Notes
 25.1 Urbi SDK 2.0.1
  25.1.1 urbiscript
  25.1.2 Documentation
 25.2 Urbi SDK 2.0
  25.2.1 urbiscript
   25.2.1.1 Changes
   25.2.1.2 New features
  25.2.2 UObjects
  25.2.3 Documentation
 25.3 Urbi SDK 2.0 RC 4
  25.3.1 urbiscript
   25.3.1.1 Changes
   25.3.1.2 New objects
   25.3.1.3 New features
  25.3.2 UObjects
 25.4 Urbi SDK 2.0 RC 3
  25.4.1 urbiscript
   25.4.1.1 Fixes
   25.4.1.2 Changes
  25.4.2 Documentation
 25.5 Urbi SDK 2.0 RC 2
  25.5.1 Optimization
  25.5.2 urbiscript
   25.5.2.1 New constructs
   25.5.2.2 New objects
   25.5.2.3 New features
   25.5.2.4 Fixes
   25.5.2.5 Deprecations
   25.5.2.6 Changes
  25.5.3 UObjects
  25.5.4 Documentation
  25.5.5 Various
 25.6 Urbi SDK 2.0 RC 1
  25.6.1 Auxiliary programs
  25.6.2 urbiscript
   25.6.2.1 Syntax of events
   25.6.2.2 Changes
   25.6.2.3 Fixes
  25.6.3 URBI Remote SDK
  25.6.4 Documentation
 25.7 Urbi SDK 2.0 beta 4
  25.7.1 Documentation
  25.7.2 urbiscript
   25.7.2.1 Bug fixes
   25.7.2.2 Changes
  25.7.3 Programs
   25.7.3.1 Environment variables
   25.7.3.2 Scripting
   25.7.3.3 urbi-console
   25.7.3.4 Auxiliary programs
 25.8 Urbi SDK 2.0 beta 3
  25.8.1 Documentation
  25.8.2 urbiscript
   25.8.2.1 Fixes
   25.8.2.2 Changes
  25.8.3 UObjects
  25.8.4 Auxiliary programs
 25.9 Urbi SDK 2.0 beta 2
  25.9.1 urbiscript
  25.9.2 Standard library
  25.9.3 UObjects
  25.9.4 Run-time
  25.9.5 Bug fixes
  25.9.6 Auxiliary programs
26 Licenses
 26.1 JPEG License
 26.2 OpenSSL License
27 Glossary