Taula de continguts:
Vídeo: Robot caòtic d’autoaprenentatge: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
T'interessa l'aprenentatge automàtic, IA i robots? No necessiteu treballar en alguna universitat de luxe. Aquesta és una descripció del meu caòtic robot. És un robot molt senzill per demostrar com utilitzar el codi d'autoaprenentatge i com implementar-lo en una plataforma arduino, en aquest cas un Arduino due. És una plataforma molt barata!
El codi fa evolucionar el robot de manera que el robot aprengui a rastrejar. Obté comentaris del ratolí que s’enfonsa darrere. El codi és "genètic". Això vol dir que es proven diversos individus i es conserven els millors i tindran nadons. Això significa que el codi evoluciona de manera evolutiva.
Pas 1: maquinari AKA el robot
Necessites:
- 1 Arduino Due
- 8 microservos
- 1 ratolí PS / 2
- 1 canvi de nivell
- Alguna variant d'un blindatge del sensor o similar, em vaig cansar del blindatge del sensor i vaig soldar el meu.
-fils
-alimentació externa de 5V per als servos
- algunes peces de ferralla, una mica de cola i una mica de fil d’acer. I cinta!
Així que poseu el Due a terra. Poseu els servos en un anell al voltant. Poseu-los junts amb ferralla, cola i fil. Aquesta és la part del caos! Com que és caòtic en el seu disseny, és imprevisible determinar com moure’s per aconseguir que es rastregi. Per això, el codi d’autoaprenentatge és el camí a seguir.
Consells: utilitzeu algunes peces de metall bastant pesades, facilitant el moviment del robot.
Connecteu els servos al venciment, en el meu cas estan connectats a D39, 41, 43, 45, 47, 49, 51, 53.
Connecteu els servos a la font d'alimentació externa de 5V. Per a això, creeu algun tipus de blindatge o utilitzeu un blindatge del sensor o similar. NO alimenteu els servos del pin de 5V, no n'hi ha prou, ja que es cremarà. Vaig utilitzar un petit prototip de placa per distribuir els 5 V a tots els servos. Aquest tauler també manté el canvi de nivell per al rellotge de ratolí PS / 2 i les línies de dades. La placa també alimenta el ratolí amb 5V. Recordeu que heu de connectar la terra des de l’alimentació externa a la terra deguda a Arduino. els esquemes mostren com connectar-ho tot.
Connecteu el PS / 2 a l’alimentació (5V) i a terra. Connecteu el rellotge i la línia de dades del PS / 2 al Due mitjançant un canvi de nivell. (el venciment va a 3,3 V, el PS / 2 a 5 V). Connecteu el rellotge a D12 i les dades a D13.
Per obtenir més informació sobre el protocol PS / 2, és molt útil:
www.instructables.com/id/Optical-Mouse-Od…
La biblioteca PS / 2 de jazzycamel que he utilitzat:
Pas 2: el codi
Al principi, deixeu-me dir: NO sóc programador. Algunes parts són molt extenses, per descomptat, un programador expert podria escurçar-les.
El codi és l’autoaprenentatge i aquest és el nucli del projecte. Aquesta és la part divertida! Vol dir que el robot evoluciona i millora cada vegada millor, en aquest cas millora en rastrejar. El més sorprenent d’això és que el robot evolucionarà cap a allò en què el retroalimentareu. En aquest cas arrossega un ratolí PS / 2 i com més temps es draga el ratolí, més punts obtindrà.
Això també significa que podeu utilitzar aquest codi per entrenar el vostre robot i fer una altra cosa, sempre que es mesuri i es retroalimenti al robot.
Com podeu veure a les imatges, el ratolí s’arrossega sobre un cable prim. Al principi es va arrossegar al cable del ratolí. No obstant això, el cable és una mica rígid, de manera que el robot va aprendre a sacsejar el ratolí en lloc d’arrossegar-lo. La sacsejada va produir punts àlgids …
El codi utilitza 50 individus. El nucli és una matriu de 50x50 bytes.
Un individu és un conjunt de bytes. Quan s'utilitza l'individu per executar el robot, aquest individu s'envia a una funció del codi anomenada "tolken".
Al començament d'una carrera hi ha 8 variables m1, m2, m3, m4, m5, m6, m7 i m8 (una per cada servo). En aquest robot tots tenen valors inicials constants. A "tolken", els mś es transformen en un llaç entre majúscules i minúscules en funció dels valors de l'individu. per exemple, un valor de "1" executa el següent: m1 = m1 + m2.
Si una persona és: 1, 2, 3, 0, 0, 0, 0 ….. llavors el mś es transformarà de la següent manera:
m1 = m1 + m2;
m1 = m1 + m3;
m1 = m1 + m4;
Tolken és una llista de 256 operacions matemàtiques diferents, de manera que cada valor possible de la matriu individual representa un canvi matemàtic dels m valors.
El procés tolken es fa 4 vegades més, amb lectura entre cada volta, generant quatre codis de motor diferents per a cada "m". Els codis de motor són els valors que posteriorment s’envien als servos.
A cada pas de l’evolució, quatre individus competeixen per rastrejar. Els dos millors individus seran pares de dos nadons, els nadons substituiran els dos pitjors individus. Quan es fabriquen nadons, es canvia una parella de "codi genètic" d'un pare per una porció de l'altre pare, cosa que crea dos individus nous.
Si cap persona realitza cap actuació, es produirà la mutació de les persones per generar-ne de noves.
Podeu trobar el codi a GitHub:
Pas 3: Com entrenar-lo?
Aquesta és la part complicada. Per entrenar correctament, haureu de "restablir-lo" després de cada carrera. Això vol dir que cal posar-lo en la mateixa posició cada vegada.
He posat uns quants punts de control dins del codi per assegurar-me que el robot es troba en la seva posició inicial.
Alineeu el robot i deixeu-lo córrer.
Posa a prova 4 individus i després tria els 2 millors per ser pares. Després de substituir el pitjor pels nadons, imprimeix algunes dades sobre el rendiment dels individus. També imprimeix la matriu 50x50. És aconsellable copiar-ho en un full Excel o similar. (o escriviu algun codi de necessitat en el processament) Si es restableix el venciment (això passa per diversos motius), llavors no perdreu el vostre treball de formació. Podeu copiar / enganxar la matriu al codi i continuar la formació quan us quedessin.
El meu robot va aprendre a arrossegar-se al cap d'un parell d'hores. Descarregueu el vídeo per veure'l rastrejar. No anava en la direcció en què pensava que ho faria!
Proveu també diferents pisos. El meu robot va funcionar millor en una catifa de niló.
Possibles millores:
1. Seria millor tenir un nano separat per llegir el ratolí PS / 2 i enviar la distància processada desplaçada per sèrie al nano. La lectura del meu ratolí PS / 2 és una mica inestable. Aquest és el motiu pel qual el ratolí llegeix / esborra parts del codi.
2. una mena de prova que arrossegés el robot cap a la posició inicial acceleraria la formació.
3. Crec que és aconsellable entrenar-lo una mica més lent que jo. Un entrenament més lent assegura que s’entrenen “en la direcció correcta”. El rendiment mitjà de diverses proves podria ser una manera possible.
Recomanat:
Arduino - Robot de solució de laberint (MicroMouse) Robot de seguiment de paret: 6 passos (amb imatges)
Arduino | Maze Solving Robot (MicroMouse) Wall Following Robot: Benvingut sóc Isaac i aquest és el meu primer robot "Striker v1.0". Aquest robot va ser dissenyat per resoldre un simple laberint. A la competició vam tenir dos laberints i el robot els va poder identificar. Qualsevol altre canvi al laberint pot requerir un canvi en el
Com construir el robot SMARS - Arduino Smart Robot Tank Bluetooth: 16 passos (amb imatges)
Com construir el robot SMARS: Arduino Smart Robot Tank Bluetooth: aquest article compta amb el patrocini orgullós de PCBWAY.PCBWAY fabrica PCB de prototipatge d’alta qualitat per a persones de tot el món. Proveu-ho per vosaltres mateixos i obteniu 10 PCB per només 5 dòlars a PCBWAY amb una qualitat molt bona, gràcies PCBWAY. La protecció del motor per a Arduino Uno
Autoaprenentatge Laberint Cranc Robot PROTOTIP 1 ESTAT INCOMPLE: 11 passos
Autoaprenentatge de laberint Robot de cranc PROTOTIP 1 ESTAT INCOMPLET: EXENCIÓ DE RESPONSABILITAT !!: Hola, disculpeu les pobres imatges, afegiré més instruccions i diagrames més endavant (i detalls més específics. No he documentat el procés (en lloc d'això, he fet un vídeo de lapse de temps). A més, aquest instructiu és incomplet, com he fet
Robot d'equilibri / robot de 3 rodes / robot STEM: 8 passos
Robot d'equilibri / robot de 3 rodes / robot STEM: hem construït un robot d'equilibri combinat i de 3 rodes per a ús educatiu a les escoles i programes educatius extraescolars. El robot es basa en un Arduino Uno, un blindatge personalitzat (es proporcionen tots els detalls de la construcció), un paquet de bateries Li Ion (tot constr
[Arduino Robot] Com fer un robot de captura de moviment - Thumbs Robot - Servomotor - Codi font: 26 passos (amb imatges)
[Robot Arduino] Com fer un robot de captura de moviment | Thumbs Robot | Servomotor | Codi font: Thumbs Robot. S'ha utilitzat un potenciòmetre de servomotor MG90S. És molt divertit i fàcil! El codi és molt senzill. Només ronda les 30 línies. Sembla una captura de moviment. Deixeu qualsevol pregunta o comentari. [Instruccions] Codi font https: //github.c