Several facial expressions
iCat Research Platform

Experimentation Platform for Human-Robot Interaction Research

The iCat Research Platform is a research platform for studying human-robot interaction. It consists of a user-interface robot called iCat, the Open Platform for Personal Robotics (‘OPPR’) software, and this website for supporting an iCat Research Community.


iCat is a plug & play desktop user-interface robot  that is capable of mechanically rendering facial expressions. This capability makes the robot ideal for studying human-robot interaction. The robot has been made available by Philips Research (Eindhoven, the Netherlands) to stimulate research in this area further and in particular to stimulate research topics such as social robotics, human-robot collaboration, joint-attention, gaming, and ambient intelligence.

  • 11 RC servos and 2 DC motors for facial expressions and body control. Each of the servos or motors is used to control an individual part of iCat:
    • 2 x eyebrow (RC servo)
    • 2 x eyelid (RC servo)
    • 3 x eyes (RC servo)
    • 4 x lips (RC servo)
    • 1 x body (DC motor)
    • 1 x head (DC motor)
  • 4 multi-colour RGBLEDs and capacitive touch sensors that are located in the feet and ears. The RGBLEDs can be used, for instance, to communicate iCat’s mode of operation (e.g. sleeping, awake, busy, and listening)
  • USB hub for bridging internal USB devices in iCat to the PC. 
  • USB webcam in the nose with a resolution of 640 x 480 pixels and 60fps. It is connected to the internal USB hub or via the external USB plug on the back of iCat to another computer. The USB webcam can be used for different computer vision capabilities, such as recognizing objects and faces.
  • USB stereo soundcard and loudspeaker in feet. The USB stereo soundcard is connected to the internal hub or via the external USB plug on the back of iCat to another computer. A mini jack plug for the speaker is available for connecting external microphones. The soundcard and speaker are for playing sounds and speech.
  • Stereo microphones in feet. A mini jack plug is available for connecting external microphones.

iCat is a user interface robot without an onboard processor which is controlled by a PC (laptop or desktop) via a USB cable. 

Open Platform for Personal Robotics (‘OPPR’)
The Open Platform for Personal Robots (‘OPPR’) software provides a development environment for creating applications for user-interface robots such as the iCat. It contains software libraries, tools and a software component model that allows OPPR users to develop software building blocks that can be reused easily or shared with other researchers. The OPPR system consists of four parts: Architecture, Animation, Connectivity, and Intelligence.

The Architecture part of the OPPR system contains the DML Middleware solution and the Console application.

  • The DML Middleware defines a software component model for developing modular applications. Every module is an executable software component, which is designed and implemented based on the DML component model. DML modules are runtime interactive, platform-independent, distributed, and object-oriented. The DML model also provides a set of DML API that allows OPPR users to create DML modules for their specific needs. For instance, OPPR users can write new DML modules for controlling iCat or another personal robot. 

  • The OPPR Console provides a framework in which the behaviour of the system can be probed and software modules can be added or removed while the system is running. DML modules that are executable and can be distributed to remote hosts are started or terminated dynamically by the Console.

The Animation part of OPPR consists of the Animation Editor and Animation Module, which are both optimized for the iCat user-interface robot. The Animation Editor is a graphical tool for easily creating animated motions for the iCat robot. The editor gives OPPR users precise control over every actuator (servos, motors, and multi-colour LEDs) of iCat. Once animations have been created, they can be used in an application via the Animation Module. The Animation Module is able to blend pre-scripted animations and control algorithms at runtime.

The Intelligence part of OPPR consists of the Scripting Module. The Scripting Module makes developing dialogues easy because it is based on the script language Lua. This means that OPPR users do not need to program in C++ to develop a functional DML module; they only need to write a Lua script and load it into the Scripting Module. Although specialized intelligence modules like vision and speech recognition components are not part of OPPR, these modules can be programmed in C++ by using the DML library so that they can be optimized for performance.

The Connectivity part of OPPR consists of the Email Module. The Email Module of the OPPR system can be used to read and answer emails.

iCat Research Community
This website provides the infrastructure for supporting an online research community: the iCat Research Community. This website provides up-to-date information about the iCat, software updates, and a discussion forum. The goal of the community is to exchange experiences with the iCat Research Platform, brainstorm on new iCat projects or modifications, track bugs, and benchmark applications. All support for the iCat Research Platform is given via the discussion forum.