Saturday, 20 August 2011



The Khepera is a small mobile robot developed at the EPFL (École polytechnique fédérale de Lausanne) by Prof. Jean-Daniel Nicoud and his team. The Khepera has been developed and manufactured as a commercial product by the K-Team Corporation, for use in education and research. 

In Egyptian mythology, Khepera is the name of a beetle looking god, symbolizing the forces moving the sun. Khepera is more widely associated with “rebirth”, “resurrection”, “renewal”, and the general idea of “coming into being”: it might have inspired the looks and the name of the robot!
The main purpose of the Khepera is to provide a platform allowing training and experiments, involving local navigation, artificial intelligence, collective behavior, and real time programming.

It is widely acknowledge that the Khepera played a non negligible part in the emergence of evolutionary robotics.


The original Khepera is a 55mm diameter and 3cm high robot, constructed around a 16 MHz Motorola 68331 processor. Its motion and steering is achieved via 2 DC brushed servo motors with incremental encoders, and obstacles are detected thanks to 8 infrared proximity and ambient light sensors. The robot can be remotely operated, as the previous Kheperas, via a Personal Computer. 
Released 10 years ago, it has received a significant processor and firmware update before been discontinued. Let’s note that the sensors work pretty much like contact switches: the mobile robot could only detect very close obstacles.


The Khepera II solved many shortcomings of the original, such as the reach of the distance sensors, swappable battery pack system for optimal autonomy, and a better differential drive odometry, allowing more precision on awkward surfaces. The khepera is now also capable of embarking additional modules increasing the versatility of the system. However, the most notable improvement is the added processing power improving the robot’s computing autonomy. 


The third iteration of the Khepera is almost a revolution from the hardware point of view. On top of an array of 9 infrared sensors, two ground oriented sensors allowing line following and edge detection, the Khepera also embarks five ultrasonic sensors. 

An additional module allows Linux support, Flash extension cards, Wi-Fi, Bluetooth, 2D cameras, and extra storage space to complete the Khepera’s arsenal. The mobile robot also provides the user with improved quality motors and odometers to work with.


Remote operation programs can be written with Matlab, LabView, or with any programming language supporting serial port communication. Here are the interesting ones; 

#.1. KiKS
KiKS means "KiKS is a Khepera Simulator", and runs under Matlab. It was developed by Theodor Storm as a Master’s degree year long project. KiKS emulates one or more Khepera robots connected to the computer by simulating motors, proximity/light sensor, and behaviours. 

Khepera Simulator is a freeware package allowing to develop controllers for the mobile robot Khepera using C or C++ languages. It includes an environment editor and a graphical user interface. Moreover, if you own a Khepera robot, you will be able to switch very easily between the simulated robot and the real one. It is mainly directed at teaching and research in autonomous agents.

Khepera can be simulated in Player/Stage;

Khepera in Webots simulator;

Sunday, 14 August 2011



The roomba series of robots were designed by iRobot Corporation, primarily for vacuum cleaning and floor washing purposes. However, they are excellent and inexpensive tools to study robotics.


In Player/Stage installation files, one can find the file at; Stage-3.2.2-Source/worlds/

Making the file work with the sick laser one can get simple simulations.


Roomba also has a  ROS package


Roomba icreate is  ready design in the the robot simulator webots. Though webots is not a free software, but it finds popularity in various universities. 


For some samples of Roomba simulation in Gazebo simulator see my post,

Tuesday, 2 August 2011



Emergent behaviour; the system behaves in a novel way, unlike the way it was designed to do. Such behaviours have always been viewed with a sense of mysticism. 

Here are some opinions expressed by AI researchers and system technologists;
  • Emergence is “the appearance of novel properties in whole systems” (Moravec 1988)
  • “Global functionality emerges from the parallel interaction of local behaviors” (Steels 1990)
  • “Intelligence emerges from the interaction of the components of the system” (Brooks 1991)
  • “Emergent functionality arises by virtue of interaction between components not themselves designed with the particular function in mind” (McFarland & Bosser 1993)
  • They are a consequence underlying the complexity of the world in which the robotic agent resides and the additional complexity of perceiving that world” (Arkin 1998)
  • ....the arising of novel and coherent structures, patterns and properties during the process of self-organization in complex systems(Goldstein 1999)
  • .... where the agent appears to do something fairly complex, but is really just the result of interaction between simple modules” (Murphy 2000)
  • Behaviors serve as the basic building blocks for robotic actions, and the overall behavior of the robot is emergent” (Murphy 2000)
  • “Emergence is ubiquitous” (de Haan 2007)
Steels mentions two advantages of emergent behavior when compared to directly programmed behavior;
  • No additional structure is needed inside an agent to get additional capabilities. Therefore, we do not need any special explanations on how the behavior may come about.
  • Emergent behavior tends to be more robust because it is less dependent on accurate sensing or action and because it makes less environmental assumptions.
Goldstein points out to the generic characteristics of emergence;
  • Radical novelty (features not previously observed in the system)
  • Coherence or correlation (meaning integrated wholes that maintain themselves over some period of time
  • A global or macro “level” (i.e., there is some property of “wholeness”)
  • It is the product of a dynamical process (it evolves)
  • It is “ostensive” - it can be perceived. 
Brooks demonstrates how walking can emerge from a network of rather simple reflexes with little central control. Murphy provides an excellent insight into the topic in her book, 'Introduction to AI Robotics'.
..... away from the apparent magic, such behaviours are observed due to interaction of the system components.


In mobile robotics, a well known emergent behaviour is seen when the agent  may exhibit 'wall following', when it is programmed to 'obstacle avoidance'. 

Simple experiments in Player/Stage demonstrate this;

It is also seen that other behaviours as, 'wander' and 'random walk' fails to have a 'wall following' emergence of behaviour. 

(1) Brooks, R.A. "Intelligence without reason", Computers and Thought, IJCAI-91 ; also MIT AI Lab Memo 1293, April 1991.
(2) Steels, L. "The Artificial Life Roots of Artificial Intelligence", Artificial Life, Volume 1 Issue 1-2, Fall 1993/Winter 1994.
(3) An entertaining discussion on 'Ant Bridge' by Pedro Bittencourt 
(4) de Haan, J. "How emergence arises", Ecological Complexity 3 (2006) 293 – 301
(5) Goldstein, Jeffrey (1999), "Emergence as a Construct: History and Issues", Emergence: Complexity and Organization 1 (1): 49–72
(6) Youtube videos, 'Emergence - Complexity from Simplicity, Order from Chaos'; Part-1 & Part-2
(7) Brooks, R.A. "A Robot that Walks; Emergent Behaviors from a Carefully Evolved Network",  MIT AI Lab Memo 1091, February 1989
(8) Ackerman, E. "Swarmanoid Robot Teams Up with Itself to Steal Your Book" - article in IEEE Spectrum, Aug 2011
(9) Wikipedia page on Emergence