18/10/2021 10:24pm
RT @petitegeek: “If we could understand what information the predictive models were using, we could ask for feedback that improved our whol…
16/10/2021 6:43am
This week ends with a finished design for a prototype electric car website. What do you think? Would you buy the ca… [LINK]
05/10/2021 4:14am
RT @vitotrianni: Two PhD positions in collaboration between @cnr_istc and @SapienzaRoma will open soon. The research focuses on #robotics a…
04/10/2021 9:14am
A new office pet has arrived :) [LINK]
01/10/2021 10:46pm
Just published: A new case study about a website that I made for my research project about robot swarms.… [LINK]

[Novelty Detection with Robots Using the Grow-When-Required Neural Network]

Simulation models C++ Bash script Date: Sep 2018

DOWNLOAD CODEGET THE DATA SET Screenshot of the simulation environment
Technologies used: C++ 11, QT 5, CMake, ARGoS simulator, Bash scripts, Git

The Grow-When-Required Neural Network (GWRNN) implementation for novelty detection in simulated robot experiments using the ARGoS robot simulator.

The GWRNN [1,2] is capable of learning an input space representation in a self-organised, unsupervised fashion and detect when a novel input is presented. The network runs inside a robot that travels through the environment, progressively learns its features and recognises when a novel object is placed into the environment.

This code repository includes:
  • A library for the robot controller that allows the robot to move through an environment and perceive coloured lights
  • A class that implements the neural network and that is instantiated inside the robot program
  • Libraries that control various environments
  • Bash scripts that automatically setup and run large sets of experiments

The simulation code varies the network, robot and environmental parameters and enables precise control of the variability of the environment and of the noise in the robot sensors. Data from the experiments is stored in text files with tab-separated values, organised in folders specified for each experiment. These text files can be analysed using my custom data analysis code.


[1] Marsland, S., Shapiro, J., & Nehmzow, U. (2002). A self-organising network that grows when required. Neural Networks, 15(8–9), 1041–1058.

[2] Neto, H. V., & Nehmzow, U. (2007). Real-time automated visual inspection using mobile robots. Journal of Intelligent and Robotic Systems, 49(3), 293–307.

{Please enable JavaScript in order to post comments}


The main purpose of pyCreeper is to wrap tens of lines of python code, required to produce graphs that look good for a publication, into functions. It takes away your need to understand various quirks of matplotlib and gives you back ready-to-use and well-documented code.

Fast Data Analysis Using C++ and Python

C++ code that processes data and makes it available to Python, significantly improving the execution speed.

Ultrastable Neuroendocrine Robot Controller

Attributes of ultrastability as an adaption mechanism in a hormone-modulated neural robot controller were investigated in a simulation. Action-selection based on hormone-driven utilities of memory items was used to alternate between mineral gathering and recharging.

Designing Robot Swarms

This project looks at the challenges involved in modeling, understanding and designing of multi-robot systems.

Robustness in Foraging E-puck Swarms Through Recruitment

Swarms of five e-puck robots are used in a semi-virtual environment, facilitated by the VICON positioning system. Recruitment can make swarms more robust to noise in robot global positioning data.