Urbi is an open source cross-platform software platform in C++ used to develop applications for robotics and complex systems. Urbi is based on the UObject distributed C++ component architecture. It also includes the urbiscript orchestration language which is a parallel and event-driven script language. UObject components can be plugged into urbiscript and appear as native objects that can be scripted to specify their interactions and data exchanges.
Urbi development platform is used as the main tool for handling the robot's software modules. It integrates and provides communications between the two lowest levels of control architecture.
OpenCV is the main video and image processing library used by the following modules: UImageTool, UCamera, UObjectDetector, UColorDetector, UFacET, UMoveDetector, UKinect (OpenNI+NITE 1.x), UKinect (OpenNI+NITE 2.x), UKNearest, UEigenFaces.
Currently utilized version: 2.3.1.
Kinect sensor is the main robot perception device and provides information about the user's skeleton and facial features. The device also includes a microphone array. Microsoft Kinect SDK is required to use the sensor under Windows OS. It is used by the following software modules: UKinect (Kinect SDK), UKinect (OpenNI+NITE 2.x - drivers only).
Currently utilized version: 1.8.
OpenNI along with NITE plugin provides similar capablities to Kinect SDK with regard to user skeleton detection and facial features recognition. OpenNI requires Kinect SDK to be installed (only as a low level driver for Kinect). OpenNI is used by the following software modules: UKinect (OpenNI+NITE 2.x).
Currently utilized version: OpenNI2 - 18.104.22.168, NITE2 - 22.214.171.124
Speech synthesis and speech recognition utilize Microsoft Speech Platform or SAPI software. It is used by the following software modules: UKinect (Kinect SDK), URecog and USpeech. Microsoft Speech Platform is installed along with Microsoft Kinect SDK.
Currently utilized version: 11.
Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware. It is used by the following software modules UPlayer, UJoystick.
Currently utilized version: 1.2.15.
BASS is an audio library. Its purpose is to provide the robot with powerful and efficient sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via OS codecs and add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. It is used by UPlayerNext module.
Currently utilized version: 2.4.
LAME is a high quality MPEG Audio Layer III (MP3) encoder. It is used by UMP3 module.
Currently utilized version: 3.99.5.
MobileRobots' Advanced Robot Interface for Applications (ARIA) is a C++ library (software development toolkit or SDK) for all MobileRobots/ActivMedia platforms. ARIA can dynamically control your robot's velocity, heading, relative heading, and other motion parameters either through simple low-level commands or through its high-level Actions infrastructure. ARIA also receives position estimates, sonar readings, and all other current operating data sent by the robot platform. ARIA provides tools to integrate I/O with your own custom hardware—digital, analog, and serial—and includes comprehensive support for all MobileRobots/ActivMedia robot accessories, including the SICK LMS-200, SICK LMS-100, and Hokuyo URG 04-LX laser-range finders, control of the pan-tilt-zoom camera or pan-tilt unit, Pioneer Gripper and Arm, and more. This library is used with UAria.
Currently utilized version: 2.9.0-1.
cURL is a command line tool and library for transferring data with URL syntax, supporting FTP, HTTP, IMAP, POP3, SCP, SMTP, and Telnet and more. cURL supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication, file transfer resume, and proxy tunneling. It is used by the following software modules: UBrowser, UMail (CURL), UGCalendar, UFacebook, UPhilipsHue.
Currently utilized version: 7.37.1.
POCO includes powerful open source C++ libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. It is used by the following software modules: UBrowser, UMail (POCO). Modules based on POCO were compiled with a statically linked OpenSSL library (version 1.0.1i).
Currently utilized version: 1.4.7.
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and open source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS) protocols as well as a full-strength general purpose cryptography library. It is used by modules which utilize cURL library: UMail (CURL), UGCalendar, UFacebook.
Currently utilized version: 1.0.1i.
LibIconv converts from one character encoding to another through Unicode conversion. It is used by the following software modules: UTextTool, UBrowser, UMail (CURL), UMail (POCO), UGCalendar, UFacebook.
HTML Tidy is an open source utility for tidying up HTML. Tidy is composed of an HTML parser and an HTML pretty printer. The parser can be used to correct common markup errors. It is used by following modules UTextTool, UMail (CURL), UMail (POCO).