René Ahn, Loe Feijs, Saskia Bakker, Sibrecht Bouwstra, Jos Verbeek, Bram van der Vlist, Arne Wessels and Rick van de Westelaken created wonderful robots and Lego extensions.
This crawler has wheels to freely move forward and backward. In order to move itself, the crawler can only use its arm, which has two joints under motor control. The Crawler has sensors to measure the position of the joints of the arm and also one distance sensor which “sees” the distance from a wall or another reference object. Inside The Crawler is an NXT control brick, an embedded processor programmed in Java to execute the reinforcement learning algorithm (Q-learning). It is rewarded if it moves forward. It explores its possibilities and learns how it should move to accumulate the maximal rewards. The demo shows The Crawler starting from seemingly random movements, but after a few minutes really finding a kind of rhythm how to move the arm and efficiently move forward. Usually this type of algorithms is demonstrated through screen demos and applets, but here the potential of embodied learning is made visible in a truly embodied model. From a semantic point of view, it is very interesting to observe and interpret the behaviour. A human observer recognises the primitive but charming initial attempts, the gradual progress and the surprising final achievements.
A Lego Mindstorm robot learns how to move forward (Watch at YouTube)
Johnny Q has wheels and left-right motor drives to move forward, backward, rotate left and right. Johnny Q measures the brightness of the floor and “sees” the distance from a wall or reference object. Inside is an NXT control brick, an embedded processor programmed in Java to execute the reinforcement learning algorithm (Q-learning). The reward is being hit on the shoulder; a simple button serves to count touches. Johnny Q learns by being trained. Depending on what the human user does or does not reward, Johnny Q learns behaviours, such as turning away from a dark spot, or running backwards near an obstacle. But it can also learn the opposite behaviour, bumping against the wall. It explores its possibilities and learns how to accumulate maximal rewards. The observer engages in a training session, teaching tricks and little games, much like training a dog. Usually this algorithm is demonstrated through screen demos but here the potential of embodied learning is visible in a truly embodied model. From a semantic point of view, it is interesting to sculpt the behaviour which (of course) requires some patience. Johnny Q will gradually forget although desired behaviour can be maintained through continued training.
Johnny Q Poster (PDF)
Building a Lego hovercraft, Saskia Bakker
The Lego Mindstorms NXT package offers several sensors and different kinds of motors. These can be used to build robots with various functionalities. It is noticeable that the only way that an NXT robot can move is via wheels driven by motors. Therefore, it would be interesting to explore other ways of making an NXT robot move. This has driven me in trying to build a hovercraft for NXT. Building this hovercraft included developing both a (ducted) propeller brick and a new motor brick with high rmp that runs on an external battery for extra power. After having tested the airflow created by different motors and (model-) propellers, a working model of a hovercraft was built out of cardboard (see figure 1). To implement this in Lego compatible bricks, a 2-bladed model propeller was built into a ducted propeller brick. The duct is constructed via Selective Laser Sintering (SLS) rapid prototyping technology and is compatible with Lego via plug-hole-connections (see figure 2). The motor is also built into a Lego compatible brick (see figure 3) and uses a relay that is connected to the NXT brick and the external power supply. The NXT brick can switch the relay which connects the motor to the external power supply. This way, the motor can still be controlled by the NXT brick. Unfortunately, the force created by one propeller and one motor will not be sufficient to lift the NXT brick. However, it is likely that when using multiple of these bricks it will be possible to create a working Lego hovercraft.
Neural Network Manager for NXT, Bram van der Vlist, Rick van de Westelaken
The Neural Network manager for NXT is a Java Graphical User Interface which allows lego fanatics to easily create, manage and train a neural network which can be exported and used in any program to be designed to run on the LEGO NXT. The total system comprises of two main parts, a UI running on the NXT and the Neural Network Manager running on the PC. The Neural network is created by the Neural Network Manager and can once trained be exported to a Java file that should be compiled and uploaded to the NXT. The NXT side of the system handles the I/O with the sensors (in our application the LEGO Sound sensor) and the communication with the PC. It pre-processes the data and sends it to the PC side via a bluetooth or USB connection. The neural network that is created is a three layer network comprising an input, hidden and output layer. The input layer has 50 neurons, the hidden a minimum of 50 and the number of neurons in the output layer depends on the number of desired outputs. The neural network manager can be used for simple voice-command control of the NXT brick and can also work with the other NXT sensors. The full documentation is available.