Chaotic Robots¶
- Table of contents
- Chaotic Robots
Questo progetto riguarda lo sviluppo di robot BEAM (BEAM - Biology, Electronics, Aesthetics, and Mechanics). BEAM è un approccio minimalista al comportamento "intelligente" per i robot. Il circuito di pilotaggio del motore ha solo due transistor, due fotoresistenze e pochi componenti passivi. Il comportamento dei robot è controllato da circuiti High Entropy e fonti di luce opportunamente posizionate.
Un'applicazione openFrameworks acquisisce il video da una telecamera sul soffitto e sovrappone delle scie curve che evidenziano le traiettorie dei robot. Alla fine di questa pagina è possibile scaricare l'applicazione.
This project is about the development of BEAM robots (BEAM - Biology, Electronics, Aesthetics, and Mechanics). BEAM is a minimalistic approach to "intelligent" behaviour for robots. The motor driver circuit has only two transistors, two photoresistors and few passive components. The robots' behaviour is controlled by High Entropy circuits and suitably placed light sources.
An openFrameworks application captures the video from a camera on the ceiling and overlaps the robots' trajectories with curved trails. At the end of this page you can download it.
Chaotic Robots from HackLab Terni on Vimeo.
Teoria - Theory¶
Questi robot si muovono alla ricerca della luce ma, appena la trovano, la rifuggono, seguendo delle traiettorie caotiche, in senso fisico-matematico.
Infatti le loro traiettorie hanno le seguenti caratteristiche:
- cambiando di poco le condizioni di partenza, le traiettorie seguite saranno molto diverse tra loro
- le traiettorie sono imprevedibili a lungo termine
- esse rimangono confinate in uno spazio finito.
La “intelligenza” dei robot è data da un circuito semplicissimo, che simula una minuscola rete neurale, formata da due neuroni (transistor).
Nonostante la semplicità della loro struttura e della loro “intelligenza”, i robot riescono a “decidere” autonomamente la traiettoria da seguire, e questa si rivela estremamente complessa.
Otteniamo in questo modo una conferma del fatto che, in natura, la regola è il caos, mentre l’ordine è l’eccezione.
These robots move in search of light, but as soon as they find it, they shun it, following chaotic trajectories in the physical-mathematical meaning.
Indeed their trajectories have the following characteristics:
- changing slightly the starting conditions, the trajectories followed will be very different from one another
- the trajectories are long-term unpredictable
- they remain confined to a finite space.
The “intelligence” of the robots is given by a simple circuit, which simulates a tiny neural network, formed by two neurons (transistors).
Despite the simplicity of their structure and “intelligence”, the robots can “decide” independently the path to follow, and it reveals to be extremely complex.
In this way we get a confirmation of the fact that, in nature, chaos is the rule, while order is the exception.
Sperimentazione - Testing¶
Stiamo sperimentando questo circuito per creare piccoli robot mossi dalla luce. Abbiamo incontrato alcuni problemi con il riscaldamento eccessivo dei due transistor.
Le fotoresistenze LDR non sono molto sensibili ai cambiamenti di luce, abbiamo diminuito la resistenza mettendo in parallelo un'altra resistenza da 4,7 KOhm.
I risultati sembrano buoni anche se rimane il riscaldamento del transistor.
We are experimenting with this circuit to create small robots bothered by the light. We encountered some problems with excessive heating of the two transistors.
The LDR photoresistors are not very sensitive to changes in light, so we have decreased the resistance by paralleling a 4.7 KOhm resistor.
The results look good even if the heating of the transistor remains.
Un nuovo circuito è stato sperimentato per aumentare la sensibilità delle fotoresistenze e diminuire il riscaldamento dei transistori (LDR è fotoresistenza non fototransistor).
A new circuit was tested to increase the sensitivity of photoresistors and decrease the heating of the transistors (LDR is photoresistor not phototransistor).
Un prototipo del robot:
A prototype version of the robot:
Realizzazione - Making¶
Abbiamo aggiunto due condensatori per avere un comportamento caotico nel circuito driver dei motori e due trimmer da 10K per variare la sensibilità della fotoresistenza LDR.
Il circuito utilizzato nella vesione finale dei robot segue lo schema che si può vedere in questa foto
We added two capacitors in the motors driver circuit to have chaotic behaviour and placed two 10K trimmers to vary the sensitivity of the LDR photoresistor.
The circuit used in the final version of the robot follows the schematic that you can see in this photo
Lo schema del circuito:
This is the schematic:
Il layout del circuito stampato:
This is the layout of the PCB:
Abbiamo realizzato il circuito stampato con la nostra Shapeoko:
We engraved the PCB with our Shapeoko:
Uno dei robot durante l'assemblaggio:
Here is the making of one of the robots:
La versione finale del robot:
One of the robots in the actual version:
Software¶
All'interno della pallina da ping pong c'è un LED ad alta intensità, un'applicazione in openFrameworks cattura il video da una telecamera posta sopra l'arena dei robot ed estrae le coordinate x, y del blob bianco formato dalla pallina da ping pong. Con queste informazioni una scia viene sovrapposta al video per mostrare le traiettorie dei robot.
L'applicazione è modellata sull'esempio "example-contours-following", distribuito con l'addon "ofxCv" di Kyle McDonald per openFrameworks.
Qui è possibile scaricare il codice sorgente dell'applicazione:
Inside the ping pong ball there is a high intensity LED, an openFrameworks application grabs the video from a camera placed over the robots "arena" and extracts the x, y coordinates of the white blob formed by the ping pong ball. With this information a curved trail is overlapped to the video to show the robots' trajectories.
The application is modeled after the "example-contours-following" example distributed with Kyle McDonald's "ofxCv" addon for openFrameworks.
Here it is possible to download the application's source code: