Programarea si controlul robotilor industriali. Constructori de roboti programabili

Una dintre cele mai promițătoare domenii din domeniul tehnologiilor IT este robotica. De ce? Da, pentru că în următorii cincisprezece ani vor apărea în lume o duzină de noi profesii, care se vor baza pe cunoștințe din domeniul roboticii.

Vorbim despre astfel de specialități precum:
designer de robotică industrială;
designer ergonomic;
inginer compozit;
operator de sisteme robotizate multifuncționale;
designer de robotică pentru copii;
designer de robot medical;
designer de robot de casă;
proiectant de interfețe neuronale pentru controlul roboților.

Dispozitivele de autocontrol au început să fie folosite în a doua jumătate a secolului trecut. Inițial, roboții au lucrat în domeniile producției și cercetării, dar apoi au migrat cu succes în sectorul serviciilor. Desigur, roboții nu sunt un fenomen de masă în acest moment, dar vectorul a fost ales și este aproape imposibil să-l schimbi. De aceea putem spune că în viitorul apropiat rolul unei persoane ca muncitor se va schimba dramatic. Dar cum să abordăm robotica? De unde să începi călătoria ta incitantă? Să încercăm să răspundem la aceste întrebări.

Robotică pentru copii

Cel mai bine este să înveți noțiunile de bază ale roboticii de la o vârstă fragedă, dar asta nu înseamnă că calea este închisă pentru un adult. Faptul este că copilul învață noi abilități mai repede, nu are griji care ar putea interfera cu hobby-ul lui preferat. În plus, robotica pentru copii are ca scop studierea unui anumit subiect, în timp ce robotica profesională se ocupă de rezolvarea unor probleme complexe. De exemplu, copiii și amatorii pot dezasambla mecanisme simple pentru a înțelege cum funcționează, dar specialiștii mai maturi creează manipulatori industriali complexe.

Pentru a înțelege dacă un copil are o înclinație pentru robotică, este suficient să cumpărați un set de construcție (din fericire, roboții pentru copii nu sunt lipsiți astăzi) și să vedeți dacă își arată interesul pentru procesul de asamblare. Daca da, atunci gasesti un club de robotica in care copilul isi poate dezvolta imaginatia, logica, motricitatea fina, perceptia spatiala, rabdarea si concentrarea.

Este de remarcat faptul că există diferite domenii în robotică: programare, electronică, design. Dacă copilului dumneavoastră îi place să construiască seturi de construcție, construcția este probabil potrivită pentru el. Cei care sunt interesați să învețe cum funcționează un lucru sau altul ar trebui să studieze electronica. Programarea va interesa orice tânăr matematician.

La ce vârstă începi să înveți?

Vârsta ideală pentru a începe în robotică este 8-12 ani. Mai devreme, un copil poate avea dificultăți în înțelegerea principiilor de funcționare a anumitor mecanisme și este mai bine să nu menționăm dorința de a învăța matematica (care este extrem de necesară pentru elaborarea algoritmilor, proiectarea circuitelor și mecanismelor) la o vârstă fragedă. Ei bine, cine dintre noi a vrut să studieze formule și teoreme când vremea era grozavă afară și era o PlayStation Sony sub televizor? Întrebarea este retorică.

Dar la 8-9 ani, copiii fără probleme pot înțelege și își pot aminti ce sunt un condensator, un LED și un rezistor. La această vârstă, ei pot stăpâni deja concepte din fizica școlară, cu mult înaintea curriculum-ului instituțiilor noastre de învățământ.

Dacă un copil nu își pierde interesul pentru hobby-ul său până la vârsta de 14-15 ani, ar trebui să continue să studieze matematica și să înceapă să învețe programarea. În afara cercurilor, îl așteaptă o mulțime de lucruri interesante: o bază matematică, teoria mecanismelor și a mașinilor, implementarea algoritmilor de navigație automată, proiectarea echipamentelor electromecanice pentru un dispozitiv robot, învățarea automată și algoritmi de viziune computerizată (ceva m-a purtat departe).

Câteva despre alegerea designerilor

Fiecare grupă de vârstă are propriile sale platforme educaționale și kituri de construcție, care diferă ca grad de complexitate. Astăzi, pe piață sunt prezentate atât seturi străine, cât și interne, al căror cost variază de la 400 la 15.000 de grivne.
Pentru un copil de 8-11 ani, seturi de construcție de la BitKit, Fischertechnik sau (desigur, acești producători au în sortiment și seturi pentru copii adulți). De exemplu, produsele BitKit au ca scop studierea electronicii (eu le-am testat personal constructorul Omka și am scris despre asta în iarna lui 2016 -); Fischertechnik - aduce mai aproape de dezvoltarea reală a roboților, trusele acestora au mufe, fire și un mediu de programare vizuală; Lego oferă seturi de construcție foarte celebre cu detalii interesante și colorate, instrucțiuni detaliate și posibilități grozave.

Standardul în robotica educațională sunt modulele Arduino, precum și computerul cu o singură placă. Pentru a lucra cu ele, veți avea nevoie de abilități de programare de bază, dar în cele din urmă puteți învăța cum să creați tot felul de dispozitive „inteligente” cu propriile mâini - de la un sistem automat de udare la un sistem de alarmă.


Unde să practici robotica?

Cursurile de robotică pentru copii din Ucraina sunt oferite de următoarele organizații:
Curs „Stem Fll” de la First Lego League;
Curs „Robo-3D Junior” de la RoboUa;
Curs „Robo-3D” de la Lego Mindstorms;
cursuri bazate pe Arduino, Lego și Fischertechnik de la Robot School;
cursuri pentru copii de la 4 ani de la studioul MAN;
curriculum de la Boteon;
Curs „Pregătirea pentru zbor” de la Singularity Studio;
cursuri de la școala Smart IT.

Învățare în ritm propriu: este posibil?

Pentru auto-studiu, există multe cursuri online gratuite pe internet. Dar este puțin probabil ca acest format să fie potrivit pentru un copil, așa că educația la distanță poate fi atractivă doar pentru un adult.

În ceea ce privește copilul, pe lângă trusele interesante și utile, îi vor fi utile cărțile despre robotică, și anume:

Braga Newton, „Crearea de roboți acasă”;
Douglas Williams, „Robot programabil controlat de la un PDA”;
Owen Bishop, „Manualul dezvoltatorului de roboți”;
Vadim Mitskevich, „Anatomia distractivă a roboților”;
Vladimir Gololobov, „Unde încep roboții”.

Există o mulțime de lucrări similare. Din păcate, robotica se dezvoltă rapid, iar relevanța informațiilor din cărți devine depășită. Prin urmare, forumurile tematice și site-urile specializate ar trebui să fie mereu la îndemână.

Care este rezultatul?

Drept urmare, obținem o direcție foarte promițătoare, care nu ar trebui ignorată în niciun caz. Dacă aveți copii, gândiți-vă la viitorul lor și poate că articolul meu despre Kedre va deveni un catalizator pentru găsirea cluburilor potrivite.

Dacă găsiți o eroare, evidențiați o bucată de text și faceți clic Ctrl+Enter.

Programarea roboților virtuali în Java

Robotica a depășit de mult limitele romanelor științifico-fantastice și este în prezent una dintre forțele motrice care determină progresul în multe domenii, precum automatizarea industrială, medicina, spațiul etc. Simulatoarele software joacă un rol important în robotică, deoarece... Ele nu numai că ușurează munca inginerilor, dar le permit și cercetătorilor să testeze cei mai noi algoritmi de inteligență artificială (AI) și de învățare automată. Un astfel de simulator este Simbad, un proiect open source dezvoltat pe baza tehnologiei Java 3D (vezi). În acest articol, vă vom arăta cum să programați roboți virtuali folosind setul de instrumente Simbad pentru a obține o mai bună înțelegere a uneia dintre filozofiile de proiectare a roboților - arhitectura de absorbție ( arhitectura de subsumare).

Începutul articolului este dedicat unei scurte imagini de ansamblu asupra roboticii și conceptului de arhitectură de absorbție. Vom trece apoi la setul de instrumente Simbad și vom explica cum poate fi folosit pentru implementarea acestei arhitecturi. După aceasta, va veni timpul să creăm un robot simplu în conformitate cu arhitectura descrisă. În cele din urmă, te vei cufunda în lumea distractivă a labirinturilor și vei crea un al doilea robot care, la fel ca Homer din The Simpsons (vezi), va putea să iasă din ele independent. Desigur, roboții creați vor fi „virtuali”, adică. va locui în mediul virtual Simbad.

Programarea robotilor

În prezent, nu există o definiție unică, universal acceptată a termenului „robot”. În articolul nostru, prin robot vom înțelege ceva care constă cel puțin din următoarele componente:

  • Recrutare senzori
  • Program care determină comportamentul robotului
  • Recrutare unitățiȘi efectori

Robotica tradițională

Robotica tradițională se referă de obicei la perioada de dezvoltare a acestui domeniu până în 1986. Caracteristica acelei vremuri a fost ideea unui robot ca mecanism controlat de un controler central (creier), care își actualizează constant ideea despre lumea din jurul său și dezvoltă un plan de comportament bazat pe această idee. Informații noi despre lume provin de la senzori, de exemplu, atingere, lumină, ultrasunete etc. Creierul analizează toate informațiile de la senzori și își actualizează înțelegerea asupra mediului, apoi ia o decizie cu privire la o anumită acțiune. Toate acțiunile sunt efectuate folosind actuatori și efectori. Primele sunt de obicei un fel de motoare conectate la dispozitive care interacționează direct cu lumea exterioară - efectori. Exemple ale acestora din urmă sunt roțile sau brațele. În același timp, uneori sub unități(actuatori) se referă atât la actuatorii înșiși, cât și la efectori.

Astfel, un robot tradițional primește date de la mai mulți senzori, combină aceste date în procesul de actualizare a unei imagini a lumii, apoi dezvoltă un plan de acțiune bazat pe această imagine și, în final, îl realizează. Din păcate, această abordare este plină de anumite dificultăți. În primul rând, necesită o cantitate mare de calcul. În al doilea rând, menținerea unei imagini la zi a lumii din jurul nostru este o sarcină foarte dificilă, deoarece lumea se schimbă constant. În același timp, se știe că multe organisme, de exemplu, insectele, există în siguranță fără sprijinul unei imagini complete a lumii, în plus, fără să aibă măcar memorie ca atare. Deci, poate că merită să încercați să adoptați abordarea lor în ceea ce privește funcționarea? Astfel de gânduri au devenit punctul de plecare al unei noi tendințe în robotică, care este în prezent dominantă. A primit numele „robotică comportamentală”(robotică bazată pe comportament - BBR).

Arhitectura de achizitie

O modalitate de a organiza roboții BBR este arhitectura de absorbție, propusă în 1986 de Rodney A. Brooks – în prezent șef al laboratorului de inteligență artificială de la Massachusetts Institute of Technology (MIT) – în lucrarea sa fundamentală intitulată „Elephants Don’t Play”. șah” (vezi). Potrivit lui Brooks, roboții comportamentali pot fi priviți ca o colecție de simpli și independenți nodurile comportamentale(comportamente), fiecare dintre acestea fiind determinat de două lucruri - ceea ce cauzează comportamentul (de obicei informații provenind de la senzori) și acțiunea care rezultă din acesta (de obicei efectuată de un efector). Comportamentele se pot suprapune și pot intra în conflict între ele. În acest caz, intră în joc un mecanism special arbitraj, care decide ce comportament are în prezent prioritate. Punctul cheie este că comportamentul robotului în ansamblu nu este predeterminat, dar războaie din interacţiunea nodurilor sale comportamentale. În plus, potrivit susținătorilor BBR, comportamentul global este mai mult decât o simplă suprapunere a părților sale. Aceasta absoarbe fiecare dintre comportamentele locale, de nivel scăzut. Practic, ideea este că, în loc să proiectați un robot și să specificați exact cum se va comporta acesta în toate situațiile, puteți pur și simplu să adăugați noduri de comportament și să vedeți ce se întâmplă.

Simbad: Mediu de simulare a robotului

LEGO Mindstorms

Acest articol discută despre crearea agenților software (roboți), dar dacă sunteți interesat de roboții fizici reali, atunci acordați atenție LEGO Mindstorms - un set de instrumente minunat pentru robotică.

Sloganul de la sediul LEGO Mindstorms spune: „Vom face pentru robotică ceea ce a făcut iPod-ul pentru muzică”. Prima versiune Mindstorms a fost introdusă în 1998 și a depășit imediat așteptările de vânzări ale LEGO. Prețul setului (250 USD) poate părea puțin ridicat, dar nu uitați că iPod Classic costă la fel și aproape toată lumea are unul. toata lumea.

Cu toate acestea, iPod-ul nu oferă astfel de de interes pentru hacking precum Mindstorms. De îndată ce a apărut prima versiune a Mindstorms, diferite tipuri de hackeri au început să pirateze și să analizeze blocurile RCX, care sunt „creierele” roboților. LEGO a fost oarecum perplex și la început nu a putut decide dacă să lase totul așa cum este sau să emită o cerere oficială pentru a opri astfel de acțiuni. Spre meritul conducerii companiei, aceștia au decis să acorde hackerilor libertate de acțiune completă în legătură cu Mindstorms.

Acest lucru a dus la înflorirea comunității Mindstorms (vezi). Una dintre consecințe a fost portarea unei terțe părți a platformei Mindstorms în alte limbaje, cum ar fi C și Java, în timp ce setul de instrumente în sine a fost furnizat inițial doar cu limbajul de programare grafică NXT-G. Drept urmare, mai mult de jumătate dintre utilizatorii setului de instrumente sunt profesioniști adulți.

Simbad este conceput pentru modelarea software a roboților. Potrivit paginii Web a proiectului, Simbad „oferă instrumente software pentru dezvoltarea roboților, caracterizarea impactului acestora asupra mediului și utilizarea senzorilor. Simbad a fost conceput în primul rând pentru cercetătorii care au nevoie de instrumente simple pentru studiul inteligenței artificiale situaționale, a învățării automate și a algoritmilor de inteligență artificială în general, mai ales dacă se aplică roboților și agenților autonomi.”

Simbad a fost dezvoltat în Java de Louis Hugue și Nicolas Bredeche. Proiectul este găzduit pe serverul SourceForge.net și poate fi utilizat sau modificat în mod liber în conformitate cu GNU GPL (General Public License).

Detalii tehnice

Lumea din mediul Simbad poate conține atât agenți (roboți), cât și diverse obiecte neînsuflețite, precum cutii, pereți, surse de lumină etc. Timpul în această lume este discret, adică. împărțit în intervale. Simbad include un planificator care distribuie timpul între agenți. Similar cu roboții reali, agenții Simbad au atât senzori (distanță, atingere, lumină etc.) cât și dispozitive de acționare (de obicei roți). În orice moment, robotul poate efectua anumite acțiuni.

Clasele care implementează agenți trebuie să suprascrie metoda performBehavior(), care descrie comportamentul lor. În cadrul acestei metode, robotul poate analiza informațiile primite de la senzori și poate modifica componentele de rotație și translație ale vitezei de mișcare. Metoda performBehavior() durează doar o perioadă scurtă de timp pentru a fi executată, astfel încât comenzi precum „înainte cu un metru” nu pot fi emise. Pentru a ocoli această limitare, de obicei trebuie să monitorizați constant starea în care se află robotul. În plus, puteți utiliza un cronometru pentru a urmări numărul de intervale de timp în care robotul a fost în starea curentă.

Simbad API

Exemplele din acest articol abordează în principal probleme legate de următoarele două pachete incluse în API-ul Simbad:

  • simbad.sim: Clasele acestui pachet descriu atât roboții înșiși, cât și lumea din jurul lor. Clasele principale sunt:
    • Agent: Roboții înșiși.
    • Arc: arcade pe care roboții le pot înconjura sau sub.
    • Caseta: Descrieți obstacolele din calea robotului.
    • CameraSensor: Vă permite să accesați o imagine a lumii înconjurătoare din punctul de vedere al robotului.
    • EnvironmentDescription: Descrie mediul în care puteți adăuga atât roboți, cât și obiecte neînsuflețite, cum ar fi pereții și alte obstacole.
    • LampActuator: lumini care pot fi adăugate robotului dvs.
    • LightSensor: Senzori de lumină.
    • RangeSensorBelt: Un set de senzori de distanță care pot fi plasați în jurul perimetrului robotului.
    • RobotFactory: Folosit pentru a adăuga diferiți senzori la robot.
    • Perete: Un alt tip de obstacol pentru deplasarea robotului.
  • simbad.gui: Clasele din acest pachet afișează robotul însuși și vă permit să-l controlați. Clasa principală este următoarea:
    • Simbad: O fereastră care afișează o imagine a lumii robotului, informații provenite de la senzorii săi, precum și elemente de control.

Implementarea unei arhitecturi de achiziție folosind Simbad

Rumba

În timp ce scriu asta, Roomba aspiră covorul de sub picioarele mele (în timp ce ocazional se lovește de un pisoi). Rumba este un robot dezvoltat de iRobot, o companie fondată de trei absolvenți ai MIT: Rodney Brooks, Colin Angle și Helen Greiner. A fost creat în conformitate cu principiile arhitecturii de absorbție și oferă o interfață deschisă care vă permite să-i schimbați comportamentul în orice mod posibil. Carte de Tod E. Kurt „Hacking Rumba” vorbește despre multe astfel de posibilități (vezi).

Vom începe să implementăm arhitectura de absorbție bazată pe Simbad declarând o clasă descendentă de Agent numită BehaviorBasedAgent. Fiecare instanță a acestei clase va conține o serie de comportamente (obiecte de tip Behavior), precum și o matrice booleană care stochează informații despre absorbția lor pe perechi.

comportamente private de comportament; suprimări booleene private;

Clasa BehaviorBasedAgent acționează ca un planificator de comportament. Lista 1 arată o bucată de cod care iterează printr-o serie de comportamente și controlează modul în care sunt declanșate. În acest caz, variabila currentBehaviorIndex este utilizată pentru a stoca o referință la comportamentul care ar trebui activat în următorul pas al algoritmului.

Listare 1. Buclă pentru activarea secvențială a comportamentelor și rezolvarea conflictelor
protected void performBehavior() ( boolean isActive = boolean nou; pentru (int i = 0; i< isActive.length; i++) { isActive[i] = behaviors[i].isActive(); } boolean ranABehavior = false; while (!ranABehavior) { boolean runCurrentBehavior = isActive; if (runCurrentBehavior) { for (int i = 0; i < suppresses.length; i++) { if (isActive[i] && suppresses[i]) { runCurrentBehavior = false; break; } } } if (runCurrentBehavior) { if (currentBehaviorIndex < behaviors.length) { Velocities newVelocities = behaviors.act(); this.setTranslationalVelocity(newVelocities .getTranslationalVelocity()); this .setRotationalVelocity(newVelocities .getRotationalVelocity()); } ranABehavior = true; } if (behaviors.length >0) ( currentBehaviorIndex = (currentBehaviorIndex + 1) % behaviors.length; ) ) )

Rețineți că metoda performBehavior() supraîncarcă o metodă similară în clasa simbad.sim.Agent.

Clasa Behavior are două metode abstracte:

  • este activ(): Metoda returnează o valoare booleană care indică dacă comportamentul dat trebuie activat la un moment dat, având în vedere informațiile provenite de la senzori. În acest caz, toate instanțele clasei Behavior au acces la un set comun de senzori.
  • act(): Metoda returnează noile valori ale vitezei de translație și rotație (în această ordine) rezultate din activarea comportamentului.

Un exemplu de robot rătăcitor atras de sursele de lumină

Acum este timpul să creați un robot software (sau bot) care va include cele 4 comportamente de mai jos, stocate în ordinea descrescătoare a priorității. Codul bot este afișat în listele de la două la cinci (exemplul de cod pentru acest articol este disponibil pentru ).

  • Evitare: Schimbă direcția după o coliziune sau în încercarea de a evita o coliziune.
  • Căutare lumină: direcționează mișcarea către sursa de lumină.
  • Rătăcire: schimbă periodic direcția la întâmplare.
  • Linie dreaptă: direcționează mișcarea în linie dreaptă.
Lista 2. Clasa de evitare (bazată pe demonstrația SingleAvoiderDemo.java din distribuția Simbad)
public boolean isActive() ( return getSensors().getBumpers().oneHasHit() || getSensors().getSonars().oneHasHit(); ) public Velocities act() ( double translationalVelocity = 0,8; double rotationalVelocity = 0; RangeSensorBelt sonare = getSensors().getSonars(); double rotationalVelocityFactor = Math.PI / 32; if (getSensors().getBumpers().oneHasHit()) ( // A avut loc o coliziune translationalVelocity = -0.1; rotationalVelocity = Math.PI / 8 - (rotationalVelocityFactor * Math.random()); else if (sonars.oneHasHit()) ( // Citirea citirilor ecolocatorului dublu stânga = sonars.getFrontLeftQuadrantMeasurement(); dublu dreapta = sonars.getFrontRightQuadrantMeasurement(); front dublu = sonare. getFrontQuadrantMeasurement(); // Obstacolul este aproape dacă ((front< 0.7) || (left < 0.7) || (right < 0.7)) { double maxRotationalVelocity = Math.PI / 4; if (left < right) rotationalVelocity = -maxRotationalVelocity - (rotationalVelocityFactor * Math.random()); else rotationalVelocity = maxRotationalVelocity - (rotationalVelocityFactor * Math.random()); translationalVelocity = 0; } else { rotationalVelocity = 0; translationalVelocity = 0.6; } } return new Velocities(translationalVelocity, rotationalVelocity); }
Lista 3. Clasa LightSeeking (bazată pe demonstrația LightSearchDemo.java din distribuția Simbad)
public boolean isActive() ( float llum = getSensors().getLightSensorLeft().getAverageLuminance(); float rlum = getSensors().getLightSensorRight().getAverageLuminance(); luminanță dublă = (llum + rlum) / 2.0; // Activare dacă sursa de lumină este în apropiere return luminance > LUMINANCE_SEEKING_MIN ) public Velocities act() ( // Rotire către sursa de lumină float llum = getSensors().getLightSensorLeft().getAverageLuminance(); float rlum = getSensors().getLightSensorRight() .getAverageLuminance (); double translationalVelocity = 0,5 / (llum + rlum dublu rotationalVelocity = (llum - rlum) * Math.PI / 4 return new Velocities(translationalVelocity, rotationalVelocity);
Lista 4. Clasa rătăcitoare
public boolean isActive() ( returnează aleator.nextDouble()< WANDERING_PROBABILITY; } public Velocities act() { return new Velocities(0.8, random.nextDouble() * 2 * Math.PI); }
Lista 5. Clasa StraightLine
public boolean isActive() ( returnează adevărat; ) public Velocities act() ( returnează viteze noi (0,8, 0,0); )

Lista 6 arată absorbția unor comportamente în altele.

Lista 6. Declarația unei matrice booleene care descrie absorbția pe perechi a comportamentelor
private void initBehaviorBasedAgent(BehaviorBasedAgent behaviorBasedAgent) ( Senzori senzori = behaviorBasedAgent.getSensors(); Comportamentele comportamentale = ( noi Avoidance (senzori), noi LightSeeking (senzori), noi Wandering (senzori), noi StraightLine (senzori), ); subsumuri booleene = (( fals, adevărat, adevărat, adevărat), ( fals, fals, adevărat, adevărat), ( fals, fals, fals, fals) );

În acest exemplu, setul de comportamente este complet ordonat în funcție de prioritate. În general, acest lucru nu este necesar.

Ca exercițiu, puteți încerca să implementați următoarele lucruri:

  • Comportament social: îndreptarea către prieteni și departe de inamici.
  • Evitarea surselor de lumină.
  • Adăugați faruri unor roboți, astfel încât să înceapă să se atragă unul pe altul.

Labirinturi

„Ei bine, în sfârșit am știut că poți ieși din acest labirint folosind algoritmul Tremo!” — Lisa Simpson

Din întreaga masă de algoritmi pentru ieșirea din labirinturi, doi se remarcă prin faptul că folosesc o cantitate de memorie care nu depinde de dimensiunea labirintului în sine. Ele sunt cunoscute după nume „Urmând zidul”(urmărirea peretelui) și Algoritmul lui Pledge. Acesta din urmă a fost numit după Jon Pledge din Exeter, care a inventat algoritmul la vârsta de 12 ani. Pe lângă aceasta, există și un magnific Algoritmul Tremo(Algoritmul Tremaux) - algoritmul preferat al Lisei Simpson - dar de dragul simplității le vom lua în considerare doar pe primele două.

Algoritmi de generare a labirintului

Interesanți nu sunt doar algoritmii pentru ieșirea din labirinturi, ci și generarea acestora. Labirinturile discutate în acest articol sunt numite perfect(perfect), datorită faptului că există una și o singură opțiune de trecere între oricare două puncte ale labirintului. Datorită acestei condiții, buclele, insulele și zonele izolate sunt excluse. Majoritatea algoritmilor care generează labirinturi perfecte funcționează astfel: încep cu un labirint simplu, care este doar un perete exterior, și adaugă treptat secțiuni interne. În același timp, la fiecare pas este necesar să se excludă posibilitatea apariției buclelor, secțiunilor izolate etc.

Urmând zidul

Acest algoritm este atât de simplu încât mulți oameni îl învață în copilărie. Tot ceea ce este necesar pentru a ieși este să miști mâna stângă de-a lungul peretelui stâng (sau mâna dreaptă de-a lungul peretelui drept) până când întâlnești ieșirea. Este ușor de observat că acest algoritm funcționează impecabil pentru labirinturile în care intrarea și ieșirea sunt situate pe perimetru. Din păcate, algoritmul nu poate fi aplicat dacă ieșirea este activată insulă- o parte a labirintului care nu este legată de restul pereților. În această situație, algoritmul nu va găsi o cale de ieșire, deoarece este imposibil să sari peste spațiul gol către insulă fără a-ți lua mâna de pe perete.

Algoritmul lui Pledge

Algoritmul lui Pledge este mai complex, dar este capabil să găsească o cale de ieșire dintr-un număr mai mare de labirinturi datorită posibilității tranzițiilor de la o insulă la alta. Ideea algoritmului este că trebuie să alegeți o direcție absolută (nord, sud, vest sau est) și să încercați întotdeauna să o urmați. Să-l sunăm direcția preferată. Dacă lovești un perete, faci dreapta și te miști conform algoritmului de „urmărire a peretelui” până când sunt îndeplinite două condiții. Prima este o viraj în direcția preferată, iar a doua este suma tuturor turelor efectuate anterior este egală cu zero (în acest caz, fiecare rotație în sens invers acelor de ceasornic este luată ca unu și, respectiv, în sensul acelor de ceasornic, ca minus unu). După aceea, continuați să vă deplasați în direcția preferată cât mai mult timp posibil și așa mai departe. Condiția pentru o sumă zero de viraje este necesară pentru a evita diferite tipuri de capcane, de exemplu, secțiuni de labirinturi care au forma G(desenează-l pe hârtie și vei înțelege imediat ce vreau să spun).

Algernon: un robot care scapă din labirinturi

Este timpul să-ți surprinzi prietenii creând un robot pe nume Algernon, a cărui sarcină va fi să scape din labirinturi.

Design robot

Pentru a implementa atât algoritmul Pledge, cât și urmărirea peretelui, este necesar să se determine cu exactitate momentul în care robotul se apropie de o ramură din labirint și, de asemenea, să fie capabil să indice ce direcție să ia.

Cu siguranță acest lucru poate fi implementat în multe moduri, dar vom folosi un senzor special - un ecolocator situat pe partea stângă a robotului. Acest senzor va trimite semnale atunci când traversează ramuri din stânga în sensul de mers. Pentru a determina că există o fundătură în față, vom adăuga un alt senzor - un senzor tactil situat în partea frontală a robotului.

Implementarea algoritmului de urmărire a peretelui

Tot codul Algernon va fi plasat în pachetul algernon.subsumption (tot codul este disponibil pentru ). Algernon este un robot destul de simplu și poate fi programat procedural. În același timp, chiar și pentru un robot atât de simplu, abordarea de absorbție a comportamentului face codul mult mai curat, mai ușor de înțeles și, de asemenea, promovează o mai bună organizare a modulelor.

Vom mai face o presupunere pentru a simplifica exemplul: vom presupune că toți pereții se intersectează în unghi drept. Cu alte cuvinte, toate virajele la stânga și la dreapta se fac exclusiv cu 90 de grade.

Algoritmul următor al peretelui pentru stânga poate fi descompus în patru comportamente diferite:

  • mergeţi înainte.
  • Când lovești peretele, întoarce-te la dreapta.
  • Când întâlniți o ramură la stânga, întoarceți-vă.
  • Oprește-te când găsești o ieșire.

Comportamentele trebuie prioritizate. În acest exemplu, le vom selecta în aceeași ordine în care sunt listate mai sus. Ca rezultat, vom avea nevoie de patru clase descendente de comportament:

  • Mergeţi înainte
  • Obligatoriu Dreapta
  • Viraj la stânga
  • Atinge obiectivul

Lista 7 arată codul pentru clasa GoStraight, unde TRANSLATIONAL_VELOCITY este o constantă egală cu 0,4:

Lista 7. Implementarea comportamentului pentru deplasarea în linie dreaptă
public boolean isActive() ( returnează adevărat; ) public Velocities act() ( dublă viteză de rotație = 0,0; returnează viteze noi (TRADUCERE_VELOCITATE, viteză de rotație); )

Codul pentru clasa TurnRight este afișat în Lista 8. Metoda getRotationCount() returnează numărul de intervale de timp necesare pentru a se roti cu 90 de grade la o viteză de rotație dată.

Lista 8. Implementarea comportamentului pentru virarea la dreapta
public boolean isActive() ( if (turningRightCount > 0) ( return true; ) RangeSensorBelt bumpers = getSensors().getBumpers(); // Verificați bara față. if (bumpers.hasHit(0)) ( backingUpCount = 10; turningRightCount = getRotationCount(); return true; else ( return false; ) ) public Velocities act() ( if (backingUpCount > 0) ( // Robotul a lovit peretele. Trebuie să vă întoarceți puțin înainte de a întoarce backingUpCount-- ; returnează viteze noi (- TRANSLATIONAL_VELOCITY, 0.0 else ( turningRightCount--; returnează viteze noi (0,0, -Math.PI / 2); ) )

Pentru a vira la stânga, Algernon trebuie mai întâi să înainteze puțin, astfel încât peretele din stânga lui să se termine. Apoi se întoarce la stânga și mai înaintează puțin, astfel încât pe partea stângă să fie din nou un zid. Codul este afișat în Lista 9.

Lista 9. Implementarea comportamentului de viraj la stânga
public boolean isActive() ( dacă (postGoingForwardCount > 0) ( returnează adevărat; ) Sonare RangeSensorBelt = getSensors().getSonars(); // Verificați sonarul din stânga dacă (sonars.getMeasurement(1) > 1.0) ( // În stânga este coridorul preGoingForwardCount = 20; if (turnLeftCount > 0) ( turnLeftCount--; returnează viteze noi (0,0, Math.PI / 2); ) else ( postGoingForwardCount --; returnează viteze noi (VELOCITATE_TRADUCERE, 0,0); ) )

Codul pentru clasa ReachGoal este afișat în Lista 10.

Lista 10. Comportament la detectarea unei ieșiri dintr-un labirint
public boolean isActive() ( Sonare RangeSensorBelt = getSensors().getSonars(); // Există spațiu deschis în față? Cu alte cuvinte, am găsit o cale de ieșire din labirint? dublu clearDistance = 1.2; return sonars.getMeasurement(0 ) > clearDistance && sonars getMeasurement(1) > clearDistance && sonars.getMeasurement(3) > clearDistance && sonars.getMeasurement(2) > clearDistance ) public Velocities act() ( // Stop return new Velocities(0,0, 0,0); )

Metoda principală care definește comportamentul lui Algernon este prezentată în Lista 11.

Lista 11. Codul de control al comportamentului Algernon
private void initBehaviorBasedAgent(algernon.subsumption.BehaviorBasedAgent behaviorBasedAgent) ( algernon.subsumption.Sensors senzori = behaviorBasedAgent.getSensors(); algernon.subsumption.Behavior behaviors = (nou ReachGoal(senzori), nou TurnLeft(senzori), noi TurnLeft(senzori), noi , new GoStraightAlways(senzori) ; ) ); behaviorBasedAgent.initBehaviors(comportamente, subsumuri)

Figura 1 îl arată pe Algernon deplasându-se prin labirint.

Figura 1. Algernon care se deplasează prin labirint

Rețineți că robotul rezolvă cu succes problema de ieșire, în ciuda faptului că niciuna dintre componentele sale nu știe nimic nu numai despre labirinturi, ci chiar despre pereți. Nu există un nod central care să acționeze ca un creier, calculând calea de ieșire. Aceasta este esența arhitecturii de absorbție: comportamentul complex, aparent conceput special pentru a rezolva o problemă specifică, reiese din interacțiunea unor comportamente simple, stratificate.

Concluzie

Acest articol a analizat crearea unui robot software simplu. Programarea unui robot real, existent fizic este mult o sarcină mai complexă, în principal datorită faptului că este necesar să se țină cont de toate aspectele influenței lumii înconjurătoare. De exemplu, în exemplul discutat, a fost suficient să faci robotul să se miște drept de-a lungul peretelui. În lumea reală, cu suprafețele sale neuniforme, este foarte dificil să implementezi mișcarea unui robot în așa fel încât să nu lovească peretele și în același timp să nu se îndepărteze prea mult de acesta. Așa că, chiar dacă îți place programarea, nu este un fapt că roboții de programare îți vor face plăcere, pentru că... aceasta necesită adesea mai multă muncă mecanică decât muncă creativă.

Consultați setul de instrumente LEGO Mindstorms dacă sunteți interesat de proiectarea și programarea roboților. Alternativ, puteți lucra cu roboți BEAM (Biological Electronic Aesthetics Mechanics). BEAM dezvoltă în continuare ideea de robotică comportamentală, eliminând cu totul programarea ca atare. Comportamentul global al robotului este determinat de conexiuni strict definite ale nodurilor comportamentale care operează pe reflexe. Pentru nu mai mult de 30 USD poți construi primul tău robot BEAM. De asemenea, puteți proiecta un robot după desenele pe care le veți găsi în cartea lui Gareth Branwyn. „Crearea de roboți pentru începători absoluti”(cm. ). Și, în sfârșit, poți oricând să cumperi Rumba și să-l piratezi.

Unul dintre lucrurile uimitoare la care am ajuns când am început să programez roboți și, după ce am citit pe scurt codul altora, este că nu trebuie să scrii programe lungi pentru a crea un robot care are o mulțime de funcționalități. În același timp, însă, de multe ori trebuie să lustruiți programul pentru o lungă perioadă de timp și să experimentați cu constante, astfel încât robotul să facă exact ceea ce este necesar. Folosind instrumentele LEGO Mindstorms, puteți crea cu ușurință un robot simplu într-o seară.

Robotica este o subcultură fascinantă, cu cărți, concursuri, videoclipuri etc. Este foarte posibil să existe un club sau cerc de iubitori de roboți chiar și nu departe de tine.

Robotiștii reprezintă o combinație de contrarii. Ca specialiști, ei sunt pricepuți în complexitatea specializării lor. Ca generaliști, ei sunt capabili să acopere întreaga problemă în măsura în care o permite baza lor extinsă de cunoștințe. Vă aducem în atenție material interesant pe tema abilităților și abilităților de care are nevoie un robotist adevărat.

Și pe lângă materialul în sine, există și comentarii de la unul dintre experții noștri în roboti, curatorul de la Ekaterinburg, Oleg Evsegneev.

Inginerii robotici se împart în general în două categorii: gânditori (teoreticieni) și făcători (practicanți). Aceasta înseamnă că robotiștii trebuie să aibă un amestec bun de două stiluri de lucru opuse. Oamenilor „investigatori” le place, în general, să rezolve probleme gândind, citind și studiind. Pe de altă parte, practicanților le place să rezolve problemele doar murdându-și mâinile, ca să spunem așa.

Robotica necesită un echilibru delicat între explorarea intensă și pauza relaxată de a lucra la o problemă reală. Lista prezentată includea 25 de abilități profesionale, grupate în 10 abilități esențiale pentru constructorii de roboți.

1. Gândirea sistemică

Un manager de proiect a remarcat odată că mulți oameni implicați în robotică ajung să fie manageri de proiect sau ingineri de sisteme. Acest lucru are un sens special, deoarece roboții sunt sisteme foarte complexe. Un specialist care lucrează cu roboți trebuie să fie un bun mecanic, inginer electronic, electrician, programator și chiar să aibă cunoștințe de psihologie și activitate cognitivă.

Un robotic bun este capabil să înțeleagă și să justifice teoretic modul în care toate aceste diverse sisteme interacționează împreună și armonios. Dacă un inginer mecanic poate spune în mod destul de rezonabil: „aceasta nu este treaba mea, avem nevoie de un programator sau un electrician”, atunci un robotician trebuie să fie bine versat în toate aceste discipline.

În general, gândirea sistemelor este o abilitate importantă pentru toți inginerii. Lumea noastră este un sistem mare, super complex. Abilitățile de inginerie de sisteme ajută la înțelegerea corectă a ceea ce este conectat și cum în această lume. Știind acest lucru, puteți crea sisteme de control eficiente pentru lumea reală.

2. Mentalitatea programatorului

Programarea este o abilitate destul de importantă pentru un robotic. Nu contează dacă lucrați la sisteme de control de nivel scăzut (folosind doar MATLAB pentru a proiecta controlere) sau dacă sunteți un informatician care proiectează sisteme cognitive de nivel înalt. Inginerii roboți pot fi implicați în programare la orice nivel de abstractizare. Principala diferență dintre programarea obișnuită și programarea roboților este că roboticianul interacționează cu hardware-ul, electronicele și dezordinea din lumea reală.

Peste 1.500 de limbaje de programare sunt folosite astăzi. Deși evident că nu va trebui să le înveți pe toate, un robotic bun are o mentalitate de programator. Și se vor simți confortabil să învețe orice limbă nouă, dacă este brusc necesar. Și aici trecem fără probleme la următoarea abilitate.

Comentariu de Oleg Evsegneev: Aș adăuga că crearea roboților moderni necesită cunoștințe de limbaje de nivel scăzut, înalt și chiar ultra-înalt. Microcontrolerele trebuie să funcționeze foarte rapid și eficient. Pentru a realiza acest lucru, trebuie să vă aprofundați în arhitectura dispozitivului de calcul, să cunoașteți caracteristicile de lucru cu memorie și protocoale de nivel scăzut. Inima robotului poate fi un sistem de operare greu, de exemplu, ROS. Aici este posibil să aveți nevoie deja de cunoștințe despre POO, abilitatea de a utiliza viziunea computerizată serioasă, navigarea și pachetele de învățare automată. În cele din urmă, pentru a scrie o interfață de robot pe web și a o conecta la Internet, ar fi o idee bună să înveți limbaje de scripting, cum ar fi python.

3. Capacitate de autoînvățare

Este imposibil să știi totul despre robotică există întotdeauna ceva necunoscut care va trebui studiat atunci când va apărea nevoia la implementarea următorului proiect. Chiar și după ce au absolvit o diplomă în robotică și au lucrat ca student absolvent de câțiva ani, mulți abia încep să înțeleagă cu adevărat elementele de bază ale roboticii.

Dorința de a învăța constant ceva nou este o abilitate importantă de-a lungul carierei tale. Prin urmare, utilizarea metodelor de învățare care sunt eficiente pentru dvs. personal și a avea o bună înțelegere a lecturii vă va ajuta să obțineți rapid și ușor noi cunoștințe atunci când este nevoie.

Comentariu de Oleg Evsegneev: Aceasta este o abilitate cheie în orice efort creativ. Îl poți folosi pentru a dobândi alte abilități

4. Matematică

Nu există multe abilități de bază în robotică. O astfel de abilitate de bază este matematica. Probabil că veți avea dificultăți în a reuși în robotică fără cunoștințe corespunzătoare de cel puțin algebră, calcul și geometrie. Acest lucru se datorează faptului că, la nivelul său cel mai de bază, robotica se bazează pe capacitatea de a înțelege și manipula concepte abstracte, adesea reprezentate ca funcții sau ecuații. Geometria este deosebit de importantă pentru înțelegerea subiectelor precum cinematica și desenele tehnice (din care probabil veți face multe în timpul carierei, inclusiv unele făcute pe un șervețel).

Comentariu de Oleg Evsegneev: Comportamentul unui robot, reacția lui la stimulii din jur, capacitatea sa de a învăța - toate acestea sunt matematică. Un exemplu simplu. Dronele moderne zboară bine datorită filtrului Kalman, un instrument matematic puternic pentru rafinarea datelor despre poziția robotului în spațiu. Robotul Asimo poate distinge obiectele datorită rețelelor neuronale. Chiar și un robot aspirator folosește matematică complexă pentru a-și naviga în jurul unei camere.

5. Fizica si matematica aplicata

Există unii oameni (matematicieni puri, de exemplu) care se străduiesc să opereze cu concepte matematice fără referire la lumea reală. Creatorii de roboți nu sunt acest tip de persoană. Cunoștințele de fizică și matematică aplicată sunt importante în robotică, deoarece lumea reală nu este niciodată la fel de precisă ca matematica. A fi capabil să decidă când un calcul este suficient de bun pentru a lucra efectiv este o abilitate cheie pentru un inginer robotic. Ceea ce ne duce fără probleme la următorul punct.

Comentariu de Oleg Evsegneev: Există un exemplu bun - stații automate pentru zborul către alte planete. Cunoștințele de fizică fac posibilă calcularea traiectoriei zborului lor atât de precis încât, după ani și milioane de kilometri, dispozitivul ajunge în poziția precis specificată.

6. Analiza si alegerea solutiei

A fi un robotic bun înseamnă a lua constant decizii de inginerie. Ce să alegi pentru programare - ROS sau alt sistem? Câte degete ar trebui să aibă robotul proiectat? Ce senzori ar trebui să aleg să folosesc? Robotica folosește multe soluții și printre ele aproape nu există una corectă.

Datorită bazei vaste de cunoștințe utilizate în robotică, este posibil să puteți găsi soluții mai bune la anumite probleme decât experții din discipline mai specializate. Analiza și luarea deciziilor sunt necesare pentru a profita la maximum de decizia dumneavoastră. Abilitățile de gândire analitică vă vor permite să analizați o problemă din mai multe perspective, în timp ce abilitățile de gândire critică vă vor ajuta să utilizați logica și raționamentul pentru a echilibra punctele forte și punctele slabe ale fiecărei soluții.

Acest articol oferă o scurtă prezentare a truselor de construcție existente în prezent pentru asamblarea roboților programabili, caracteristicile și diferențele acestora.

LEGO Education WeDo

Să începem, poate, cu cel mai faimos brand danez LEGO. Compania produce două tipuri de seturi de construcție cu capacitatea de a programa în scopuri educaționale pentru diferite vârste. Pentru copiii cu vârsta de peste 7 ani, LEGO produce seria LEGO Education WeDo. Aici puteți cumpăra setul de pornire „PervoRobot” și un set de resurse dacă nu aveți suficiente piese. De asemenea, puteți achiziționa senzori de mișcare și înclinare, multiplexoare, motoare și becuri. Un set de proiecte educaționale pe CD poate fi achiziționat separat.

Software LEGO Education WeDo pentru programarea roboților din această linie cu un set de sarcini trebuie achiziționați separat. Programarea aici este vizuală. Pur și simplu conectați blocurile de acțiune necesare între ele și astfel creați un program.


Desigur, toate produsele create cu ajutorul acestui set de construcție cu greu pot fi numite roboți, mecanisme mai degrabă simple, dar, credeți-mă, copiii de 7–8 ani nu au nevoie de ceva mai complicat. Vă rugăm să rețineți: pentru ca mecanismul asamblat să funcționeze, acesta trebuie să fie conectat la computer printr-un cablu USB.

LEGO Education WeDo 2.0

Aceasta este a doua versiune a setului de construcție LEGO Education WeDo, care a fost prezentat pentru prima dată la CES 2016. Constructorul este adaptat copiilor cu vârsta de peste 7 ani. Această versiune a designerului (spre deosebire de prima) vă permite să asamblați roboți autonomi. Robotul finit funcționează cu două baterii AAA și interacționează cu un computer prin Bluetooth.


Poate fi folosit pentru a construi următoarele modele: Milo (Rover științific), Camion tractor, Mașină de curse, Cutremur, Broască, Floare, Gateway, Elicopter și Camion de gunoi.

Setul include: SmartHub, motor central, senzor de mișcare, senzor de înclinare și 280 de piese diferite. Dacă vă lipsesc componente electronice, le puteți achiziționa separat. În plus, puteți achiziționa o baterie care va oferi un timp de funcționare mai lung. De asemenea, rețineți că adaptorul pentru încărcarea bateriei este vândut separat (adaptorul este același ca pentru seturile de construcție LEGO MINDSTORMS Education EV3 și NXT, vezi mai jos).

De asemenea, puteți achiziționa un set de materiale educaționale cu ajutorul cărora puteți implementa 17 proiecte în fizică, biologie, geografie, explorare spațială și proiectare inginerească, munca la care va dura în total mai mult de 40 de ore academice. Nu există microcomputer aici ca atare. În schimb, există un SmartHub, care joacă rolul unei legături între PC/tabletă și electronica robotului. Adică, toate programele pe care le scrieți vor funcționa pe un computer sau tabletă. SmartHub are două porturi pentru conectarea senzorilor și motoarelor, un indicator și un singur buton - butonul de pornire. Electronica și software-ul primei și celei de-a doua versiuni ale designerului sunt incompatibile.

Un alt avantaj este că puteți conecta până la trei SmartHub-uri la un computer sau tabletă în același timp. Acest lucru vă va permite să utilizați șase porturi simultan, adică puteți asambla un dispozitiv destul de complex care poate avea șase motoare sau șase senzori.

Setul de pornire include deja software de bază gratuit, care include proiecte de pornire. Limba rusă este acceptată. Software-ul rulează pe Windows (7, 8.1 și RT), MacOS, iPad, tablete Android și interacționează cu un microcomputer prin Bluetooth 4.0. Programare vizuală, similară cu prima versiune a constructorului. Puteți descărca software-ul. În plus, este posibilă programarea folosind Scratch 2. Și pentru cei interesați în mod special, există un SDK open source care vă permite să interacționați cu SmartHub prin Bluetooth.

LEGO Mindstorms Education EV3

Acest designer de robot este potrivit pentru copiii de la 10 ani, deși și adulții îl folosesc destul de activ. Pentru incepatori, poti cumpara un set educational inițial din care poți asambla un robot de echilibrare, un cățeluș, un pastor, un sortator de piese după culoare și multe altele pe care ți le spune imaginația.

Setul de început include: 541 bucăți LEGO Technicși două tăvi pentru depozitarea acestora, un microcomputer EV3 cu suport Wi-Fi și Bluetooth, o baterie, trei servo-uri (2 mari și unul mediu), un senzor ultrasonic, un senzor de culoare, un senzor giroscop și doi senzori tactile. Nu include software-ul LEGO Mindstorms EV3 sau încărcătorul de baterie.

Separat, aș dori să notez că EV3– aceasta este deja a treia versiune a designerului. Au fost numite versiunile anterioare NXT(al doilea) și RCX(primul).

Ascuns în interiorul microcomputerului EV3 este un procesor ARM 9 care rulează sistemul de operare Linux. Există 4 porturi de intrare și 4 porturi de ieșire. Aveți la dispoziție 16 MB de memorie flash și 64 MB de RAM. Pentru a extinde memoria există un slot pentru carduri Mini SDHC de până la 32 GB. Unitatea are o interfață cu șase butoane cu iluminare de fundal în trei culori și un afișaj alb-negru cu o rezoluție de 178x128. Aici se află și difuzorul. Pentru a interacționa cu robotul, microcomputerul acceptă Wi-Fi (nu există Wi-Fi încorporat, se recomandă utilizarea adaptorului NETGEAR Wi-Fi dongle WNA1100 Wireless-N150) și Bluetooth (Bluetooth este încorporat). Alimentarea este furnizată de la șase baterii AA sau o baterie cu litiu cu o capacitate de 2050 mAh. Robotul va rezista mai mult cu baterie decât cu baterii. Bateria se încarcă în 3-4 ore.

Dacă doriți, puteți cumpăra un set de resurse suplimentar, care include 853 de piese suplimentare LEGO Technic. Cu acest set puteți construi un robot elefant, un tankbot, o fabrică de jucării și multe altele.

Există și educație suplimentară Setul „Proiecte spațiale”.. Pentru a-l utiliza, veți avea nevoie de kiturile de pornire și de resurse descrise mai sus. Pe lângă acest set, puteți achiziționa un set de sarcini, care include misiuni tematice și educaționale, precum și proiecte de cercetare.

Pe lângă kiturile enumerate aici, puteți găsi la vânzare versiunea de acasă a setului LEGO Mindstorms EV3. Din el puteți asambla 5 roboți de bază și 12 modele bonus. Spre deosebire de Setul de pornire LEGO Mindstorms Education EV3, acest set conține un set ușor diferit de piese și senzori. Există un panou de control, iar în locul unui senzor cu ultrasunete există unul cu infraroșu (care, pe lângă schimbarea distanțelor, primește un semnal de la telecomandă) și nu există giroscop.

Atentie: setul nu include baterie, iar va trebui sa folositi 6 baterii AA sau sa cumparati separat o baterie, ceea ce nu este ieftin. Apropo, telecomanda va necesita și 2 baterii roz (AAA).


Terenurile pentru competițiile de roboți sunt disponibile pentru vânzare. De asemenea, puteți achiziționa separat microcalculatoare, baterii, un senzor IR, un far IR, senzori ultrasonici și giroscopici, senzori de culoare, atingere, temperatură și sunet și servomotoare. Apropo, sunt potriviți și senzorii din versiunea veche a designerului NXT.

Fiecare cărămidă EV3 are patru porturi de intrare pentru senzori și patru porturi de ieșire pentru servo, lumini etc. Dacă asta nu este suficient pentru tine, poți conecta până la patru cărămizi împreună folosind cabluri USB suplimentare. În acest caz, controlul cade pe umerii microcomputerului principal și obțineți până la 16 porturi de intrare și până la 16 porturi de ieșire.

Roboții din această serie sunt programați folosind software LEGO Mindstorms EV3. Pentru kit-ul de acasă, software-ul este descărcat gratuit. Pentru seturile educaționale, software-ul a devenit gratuit de la 1 ianuarie 2016. Programarea aici se bazează pe blocuri vizuale, bazată pe limbajul de programare grafică LabVIEW, care vă permite să creați atât programe simple, cât și foarte complexe. Vă puteți crea propriile blocuri folosind instrumentul MyBlocks. Dimensiunea maximă a programului este de 16 blocuri, fără a număra pornirea programului și blocurile de buclă. Software-ul rulează pe Microsoft Windows sau Apple Macintosh. Limba rusă este acceptată.

Versiunea educațională a software-ului LEGO Mindstorms EV3, pe lângă programare, vă permite să colectați date statistice de la senzori și să le înregistrați în memoria microcomputerului sau să le transmiteți în timp real printr-un cablu USB, Wi-Fi sau Bluetooth. Datele colectate pot fi analizate și pot fi trase grafice din acestea. Pentru a ajuta elevii și profesorii Există lecții multimedia aici.

Dacă sunteți interesat de un mediu de programare alternativ, pe lângă LEGO Mindstorms EV3, puteți programa folosind LabVIEW (necesită modulul suplimentar LEGO MINDSTORMS LabVIEW) și RobotC (limbaj de programare C, versiunea RobotC 4x acceptă seria EV3 și NXT) medii de dezvoltare. Ambele medii de programare sunt plătite. În RobotC poți chiar testa robotul cu programul tău în lumea virtuală (vezi figura de mai jos). Lumile virtuale pot fi descărcate.


Inventatorii mai avansați pot achiziționa senzori de la companii terțe, cum ar fi HiTechnic și Vernier. De exemplu, puteți achiziționa suplimentar un senzor infraroșu pentru detectarea oamenilor și animalelor, o busolă, un barometru, un senzor de forță, un senzor de detectare a obiectelor cu rază scurtă de acțiune, un senzor de unghi (măsoară unghiurile și viteza de viraj) și altele. Companie HiTechnic oferă senzori adaptați direct pentru EV3 și NXT, iar fiecare senzor vine cu blocuri software descărcabile pentru software-ul LEGO Mindstorms EV3. Companie Vernier oferă să achiziționeze un adaptor care vă permite să utilizați senzorii lor în setul de construcție și, în plus, vă permite să descărcați un bloc software pentru software-ul LEGO Mindstorms EV3.

TETRIX


MATRICE


Robotis OLLO

Compania coreeană Robotis, fondată în 1999, oferă un set de construcție OLLO pentru auto-asamblarea roboților. Se vinde sub formă de seturi concepute pentru diferite vârste. Din platou Figura (7+) Puteți crea figuri de animale, dar nu există motoare, senzori sau controlere. Din seturi Acțiune (8+) Și Starter (8+) Este deja posibil să se creeze modele mobile neprogramabile. Există un motor aici, dar nu există senzori sau controlere. Și iată seturile Explorer (10+), Inventor (10+) și Bug (10+) vă va permite deja să proiectați și să programați roboți. Există un set de extensii pentru setul Explorer Set de expansiune Inventor, care transformă setul Explorer în Inventor.

Din platou Explorator poti realiza 12 modele, iar din set Inventator– 24 de modele cu instrucțiuni, dar nimic nu vă va împiedica să vă proiectați propriile modele de robot. Setul maxim Inventator conține un controler, două motoare, două servomotoare, doi senzori IR, un transceiver IR, senzori tactili și un modul LED. Controlerul are patru porturi pentru conectarea actuatoarelor, două porturi multifuncționale pentru conectarea senzorilor, actuatoarelor și un port pentru control de la distanță și descărcarea programelor.
Din platou Gândac poti construi 4 gandaci robot care pot fi controlati cu ajutorul unui controler, pot merge de-a lungul unei linii (carti pentru crearea unui traseu incluse) si pot detecta obiecte. Kitul nu include un adaptor USB Downloader LN-101 pentru conectarea la un computer, dar este necesar dacă urmează să programați.


Roboții sunt programați Robotis OLLO, ca toți ceilalți roboți ai companiei, folosind software proprietar RoboPlus. Un limbaj asemănător C este folosit pentru programare. Software-ul include RoboPlus Task, RoboPlus Manager (setare hardware), RoboPlus Motion (programare mișcări complexe ale robotului), RoboPlus Terminal (terminal) și Dynamixel Wizard (setare și calibrare servo).


După ce ați scris programul, trebuie să îl încărcați în controler, conectându-l la computer, iar după pornirea robotului, programul va începe să se execute. Puteți descărca programul și puteți citi instrucțiunile. Programatorii avansați își pot scrie propriul firmware pentru roboții Robotis OLLO în Embedded C.


De asemenea, puteți scrie programe pentru roboții Robotis direct pe un smartphone sau o tabletă care rulează Android 2.3 și o versiune ulterioară folosind aplicația R+ m.Task.

Robotis Bioloid

Cu această serie a aceleiași companii coreene Robotis folosind kituri Kit premiumputeți asambla roboți umanoizi. De asemenea Există și alte seturi în serie: STEM Standard (10+), STEM Expansion (10+), Începător.

Din platou STEM Standard poti face 16 roboti diferiti dupa scheme, si cu un set Extindere STEM Mai poti face 9 modele. Setul include și 48 de sarcini. Acest set este format parțial din componente din serie Robotis OLLO, și parțial din componente Robotis Bioloid. Adică, cu acest set puteți folosi seturi din ambele serii pe care le aveți deja. Acesta este singurul set compatibil cu seria OLLOȘi Bioloid. Setul include un microcontroler CM-530, o matrice de senzori IR (permite robotului să ruleze de-a lungul unei linii), 3 senzori IR (detecție obstacole) și un panou de control RC-100A.

Kit Începător vă va permite să creați 14 modele diferite de roboți. Setul include un microcontroler CM-5, 4 servomotoare DYNAMIXEL AX-12A și un modul senzor AX-S1.


Cu set Kit premium puteți asambla un robot umanoid într-una dintre cele trei modificări sau 26 de roboți simpli. Robotul umanoid din acest set are un sistem de stabilizare corporală datorită unui giroscop cu două axe, care îi permite să stea în picioare în timp ce merge.

Controler inclus CM-530(32-bit ARM Cortex, 6 butoane, microfon, senzor de temperatură, senzor de tensiune, 6 porturi I/O compatibile cu OLLO, 5 conectori pentru servomotoare Seria AX/MX DYNAMIXEL), 18 servo-uri, giroscop biaxial, 2 senzori IR, panou de control RC-100A.


Programarea serii de roboți Robotis Bioloid se desfășoară și în mediul software RoboPlus.

Hovis Lite

Din acest set de construcție, pe lângă un robot umanoid, puteți asambla aproximativ 26 de modele diferite de roboți și mecanisme. Hovis Lite este o creație a companiei coreene DST Robot (până în martie 2015 compania se numea Dongbu Robot). Elementele din plastic ale designerului pot fi una dintre următoarele culori: verde, roșu, galben sau albastru. Există un bonus frumos - piesele pot fi imprimate pe o imprimantă 3D. Este localizată pagina designerului și toate documentația și modelele 3D sunt localizate.


Setul include un microcontroler ( ATmega128 MCU, microcontrolerul are încorporați senzori de sunet și lumină), un senzor de distanță, o telecomandă IR și un receptor IR pentru acesta. Giroscopul/accelerometrul și modelul Bluetooth trebuie achiziționate separat.

Următorul software este disponibil pentru programare: DR-SIM(program gratuit de marcă pentru editarea, testarea și înregistrarea mișcărilor), DR-logica vizuala(mediu proprie de dezvoltare grafică gratuit, cu capacitatea de a vizualiza codul terminat sub forma unui limbaj asemănător C), Microsoft Robotics Developer Studio, DR-C, Microsoft Visual StudioȘi AVR Studio.

VEX EDR

Seria designeri VEX EDR, sau pur și simplu VEX, produs de companie Robotica VEX. Sunt destinate vârstelor de peste 10 ani. Seria este potrivită pentru școli, institute și constructori avansați de roboți. În această serie veți găsi atât seturi, cât și piese vândute separat, obiecte și terenuri pentru competiții. Kiturile programabile (cu un microcontroler inclus) sunt împărțite în kituri de pornire ( Kit de pornire pentru control programareȘi Kit de pornire cu control dublu) și truse de competiție ( Sala de clasă și competiție Kit de mecatronică, Kit de programare pentru sala de clasă și competițieȘi Super Kit pentru clasă și competiție). Seturile pot fi vizualizate pe site-ul producătorului. Din fiecare set se poate asambla un robot pe roti cu o gheara (vezi poza de mai jos). Poti veni singur cu alte modele, bazandu-te pe imaginatia ta.


În serie VEX EDR o listă foarte largă de componente. Puteți achiziționa oricând separat senzori pentru urmărirea unei linii, senzori pentru detectarea obstacolelor și măsurarea distanței până la obstacole, senzori de lumină, senzori optici pentru poziția axelor (măsurarea deplasării unghiulare, direcția de rotație a axei, distanța parcursă etc.) , potențiometre (determinând locația și direcția de rotație), giroscoape, senzori tactile, limitatoare de mișcare, accelerometre (măsurarea accelerației), lanterne LED.

De la mecanici, trebuie să acordați atenție posibilității de achiziționare a transmisiilor de viteze (inclusiv cutii de viteze melcate), șenile, roți Omni, roți Elon.

Roboții din această serie sunt programați folosind RobotC, easyC (programare C cu blocuri drag-and-drop), Flowol (programare cu diagrame de flux) sau Modkit (programare vizuală cu blocuri). Toate mediile de dezvoltare sunt plătite.


VEX IQ

Această serie este produsă și de companie Robotica VEXși vă permite, de asemenea, să creați roboți programabili, dar este conceput pentru vârste de la 8 ani. Există un total de 3 seturi principale în serie ( Kit de pornire cu controler, Kit de pornire cu senzori, Super Kit), extinderea seturi, obiecte și câmpuri de competiție, precum și componente individuale. Toate articolele sunt bine descrise pe site-ul producătorului. La seturi Kit de pornire cu senzoriȘi Super Kit include un senzor de culoare, un giroscop și un senzor de distanță. Control de la distanță posibil în seturi Kit de pornire cu controlerȘi Super Kit. Toate kiturile includ senzori tactili. Aș dori să menționez că în kiturile de competiție veți primi, pe lângă piese suplimentare, roți și șenile Omni. Microcontroler VEX IQ echipat cu 12 porturi universale pentru conectarea senzorilor si motoarelor.


Roboții din serie sunt programați VEX IQ folosind Modkit (programare vizuală folosind blocuri) și flowolȘi RobotC.


Există, de asemenea, un mediu virtual pentru proiectarea designului robotului dvs Asamblator VEX. Cu acest software vă puteți fabrica și testa designul virtual chiar și în faza de proiectare. Mai mult de 110 piese de designer au fost deja încărcate în program VEX IQ, obiecte pentru concursuri și chiar un robot întreg Clawbot IQ(robot cu gheara). Programul este disponibil pentru descărcare gratuită (completați mai întâi formularul și primiți un link de descărcare prin e-mail).


VEX PRO

Sub această linie de produse compania Robotica VEX ofera doar componente. Nu există seturi aici. Totul se vinde individual sau la seturi. Toate componentele pot fi vizualizate.

Technolab

Acest brand ascunde aceleași seturi de la companii RobotisȘi Robotica VEX, care au fost scrise mai sus. Trusele (modulele) sunt localizate și asamblate pentru cei care doresc să se angajeze în robotică, în funcție de vârstă și nivelul de pregătire. Sunt șapte module în total. Acestea sunt module de nivel preliminar, inițial, de bază, competitiv de bază, profesional, de cercetare și expert. Detalii despre configurarea tuturor modulelor sunt prezentate pe site SRL „Examen-Technolab”. Programarea robotului este disponibilă în toate modulele, cu excepția modulului Pre-Level.


Arduino

Marcă Arduino- acestea sunt instrumente pentru crearea nu numai de roboți, ci și de multe gadget-uri diferite. Pentru constructorii de roboți, există microcontrolere, tot felul de senzori, motoare, servomotoare, plăci de expansiune, afișaje LCD și LED-uri. Dar sub acest brand nu sunt produse elemente de carcase sau cadre pentru asamblarea roboților. De asemenea, nu există elemente pentru instalare aici. Singura excepție este Robot Arduino.

Platformă Arduino este susținut de un număr mare de producători terți, astfel încât puteți găsi componente pentru asamblarea roboților. De asemenea, disponibil pentru vânzare și Arduino -microcontrolere și kituri compatibile pentru auto-asamblarea roboților pe această platformă. Toate produsele oferite direct de la producator pot fi vizualizate .

Puteți programa microcontrolere Arduino folosind IDE-ul gratuit și open source Arduino (vezi prima imagine de mai jos). Arduino IDE este scris în Java și rulează pe computere care rulează Windows, Mac OS X și Linux. Arduino IDE folosește limbajul de programare Processing (un limbaj bazat pe Java). În plus, unele microcontrolere Arduino pot fi programate folosind RobotC, Flowol, Minibloq (limbaj de programare grafic, gratuit, vezi a doua imagine de mai jos), Ardublock (limbaj de programare grafică, încorporat în IDE-ul Arduino, există o traducere a instrucțiunilor în rusă). , gratuit), Physical Etoys (limbaj gratuit de programare grafică open-source pentru Windows și Linux, fără rusificare) și Modkit.

De asemenea, pentru a programa unele controlere Arduino, puteți utiliza pluginul Visual Micro (plătit), care este încorporat în Microsoft Visual Studio 2008–2013 sau Atmel Studio 6.1–6.2.

Structor

Magazinul Amperka oferă propria soluție pentru asamblarea roboților compatibili cu Arduino - acestea sunt panouri, șine și suporturi pentru plăci, senzori și motoare numite Structor. Piesele sunt realizate prin frezare din foi de PVC spumat alb de 5 mm grosime. Folosind acest material, aveți posibilitatea de a picta piesele cu vopsele. Rezistența elementelor este suficientă pentru a crea structuri mici. În același timp, materialul este maleabil și puteți face cu ușurință găuri în piese, puteți înșuruba șuruburi sau puteți schimba geometria pieselor cu un cuțit de papetărie.


Toate elementele sunt ușor conectate între ele, iar dacă pentru structurile dinamice nu aveți suficientă rezistență a conexiunilor, Amperka se oferă să lipească elementele între ele. În plus, pentru o rezistență și mai mare, puteți folosi piese Sovmetal. designer”, deoarece orificiile din panouri Structorii situate cu același pas de 10 mm. Din păcate, moliciunea materialului din care sunt realizate piesele de construcție are și un mic dezavantaj - sunt de scurtă durată. În timp, materialul de la locul de fixare se deformează, iar piesele nu se țin strâns.

Este demn de remarcat separat faptul că desenele pentru fabricarea pieselor sunt în domeniul public și puteți realiza singuri elementele de proiectare.

Nu există truse de designer gata făcute. Toate articolele sunt vândute ca matrițe. Fiecare dintre ele poate avea mai multe părți mari sau multe mici. Toate opțiunile de matrițe pot fi vizualizate pe site-ul magazinului. Pentru a conecta piesele, puteți cumpăra șuruburi, piulițe și suporturi din nailon. Detalii despre designer pot fi găsite.

Multiplo

Multiplo este un kit compatibil cu Arduino creat de o companie argentiniană RobotGroup. Proiectantul este complet deschis, adică atât sursele software, cât și desenele elementelor structurale sunt disponibile (piesele pot fi imprimate pe o imprimantă 3D sau tăiate pe o mașină laser CNC). Piesele principale sunt din plastic, colțurile și alte elemente sunt din aluminiu, șuruburile, piulițele, șaibe și axele sunt din metal. Aceeași companie a dezvoltat un program de programare grafică Minibloq, despre care s-a scris deja mai sus (unul dintre directorii companiei, Julian da Silva, este autorul acestui program). Pagina oficială a designerului și toate instrucțiunile, desenele și software-ul pot fi descărcate.

Constructorul este reprezentat prin mulțimi Kit de pornire, Kit de construcțieȘi Kit monstru. În platou Kit de pornire controlor DuinoBot, un compartiment pentru baterii (pentru trei baterii AA), doi senzori infrarosu, doua motoare, un panou de control si receptor de semnal, fire si piese mecanice pentru a construi un carucior simplu. Setul include o șurubelniță și chei, astfel încât nu aveți nevoie de unelte suplimentare. În platou Kit de construcțieÎn plus, apar un senzor ultrasonic, 2 servomotoare, 2 senzori de lumină, 2 becuri LED, precum și piese suplimentare, inclusiv cele pentru asamblarea ghearei.

Kit Kit monstru cel mai mare. Acest set conține două microcontrolere (puteți face doi roboți dintr-un set simultan), precum și 4 motoare convenționale, 6 sermotoare, compartimente pentru baterii, un senzor ultrasonic, 4 senzori infraroșii, două seturi de telecomandă (telecomandă și un senzor). pentru primirea unui semnal de la acesta), multe piese mecanice, inclusiv cele pentru asamblarea a două gheare.

Există și un set în magazinul oficial Trusa mecanica, conținând doar piese mecanice, fără piese electronice. De asemenea, puteți achiziționa microcontrolerul separat DuinoBot cu compartiment baterie, diverși senzori și piese mecanice. Și puteți descărca gratuit fișiere imprimabile pentru câmpurile de competiție. Magazinul Multiplo este situat .

Deoarece designerul este compatibil cu Arduino, puteți programa folosind instrumente de dezvoltare similare: Arduino IDE, Minibloq, Ardublock, Physical Etoys și Modkit.

Makeblock

Avantajele acestui designer chinez sunt că folosește electronică Arduino și toate piesele sunt realizate din aluminiu ștanțat durabil. Deosebit de interesante aici sunt grinzile, de-a lungul cărora există o canelură cu perforare filetată, în care puteți înșuruba șuruburi la orice distanță unul de celălalt, și șine.


Începătorilor de aici le vor plăcea modulele cu conectori standardizați cu marcaje de culoare pentru conectarea convenabilă și clară a componentelor electronice. Adică, pentru o conexiune corectă, trebuie doar să vă asigurați că culoarea etichetelor se potrivește.

Numărul de seturi atât de autosuficiente, cât și de resurse din magazin este site oficial imens. Separat, puteți cumpăra senzori, plăci, elemente structurale etc. Dintre seturile tematice, aș dori să evidențiez kiturile de asamblare imprimantă 3d (kit Kit de imprimantă 3D Makeblock Constructor I), plotter (Kit robot XY-Plotter v2.0), robot care cântă la xilofon (kit Kit robot muzical), constructor pentru asamblare artist robot diverse modificări, desen cu pixuri sau ardere cu laser (set mDrawBot cu Bluetooth și kit laser – Albastru) și cărucior robot mBot cu un set mare de senzori, al căror șasiu este compatibil cu piesele LEGO și Makeblock(Bluetooth, Bluetooth și Wi-Fi).

Folosind un set mDrawBot puteți asambla unul dintre cei 4 artiști roboti:

mScara este o mână robotică care desenează cu un pix sau un creion și cu un set suplimentar Kit laser stiloul poate fi înlocuit cu un laser, care va arde un design, de exemplu, pe placaj.

mSpider este un păianjen artist care atârnă de două frânghii și pictează pe suprafețe verticale.

mEggBot– un robot care desenează ouă sau mingi de ping pong.

mCar- o mașină robotică cu trei roți care desenează pe o bucată de hârtie pe care conduce.

Dar asta nu este tot. Mai ales pentru setmDrawBotMakeblock a dezvoltat un program cu ajutorul căruia poți importa un desen vectorial în format SVG, poți converti BMP în SVG și poți scala desenul. Când aplicați un design folosind un laser, sunt acceptate diferite nuanțe.

Seturile de construcție de uz general sunt următoarele: Kit robot de pornire(versiunile Bluetooth și IR) și Kit robot suprem. Există seturi similare fără electronică.

Pentru a controla robotul de la distanță, există o aplicație gratuită pentru Android și iOS - Makeblock. Unele kituri vin cu telecomenzi, cum ar fi versiunea IR a Starter Robot Kit.

Roboții Makeblock sunt programați folosind un program proprietar mBlock bazat pe editor Scratch 2.0, prin utilizarea Arduino IDE sau ArduBlock. Să lucrez în Arduino IDE sau ArduBlock, trebuie să instalați suplimentar biblioteca Makeblock. Pot fi găsite exemple, instrucțiuni, drivere și software.

HUNA-MRT

Sub marca coreeană HUNA-MRT sunt ascunse trusele pentru construirea mecanismelor și roboților. Seturi FUN&BOT (MyRobotTime)Și KICKY (MRT2)- Acestea sunt truse pentru începători (pentru vârstele 6-8) realizate din piese din plastic și nu există programare. Dar în seturi de serie CLASA (MRT3)(pentru vârstele 7–11 ani) și TOP(pentru vârstele 9-11) are deja o placă programabilă și capacitatea de a programa roboți folosind un mediu de programare grafic simplu. Diferența dintre ultimele două episoade este aceea din serial CLASA (MRT3) piese din plastic, iar în serie TOP– metal. În toate celelalte privințe, acestea sunt seturi pe deplin compatibile. Piesele dintr-o serie pot fi folosite împreună cu piese din alte serii de aceeași marcă. Există și un set mai avansat HUNITRONIC(pentru vârstele 12-18 ani), care este echipat cu un microcontroler analogic Arduino UNOși bord Extensie IO Shield pentru conectarea senzorilor. Toate kiturile sunt echipate cu un mediu de programare grafic. Puteți obține mai multe informații despre designeri pe site Brain Development LLC. Pagina oficială a seriei MRT3 .

RoboRobo

Companie coreeană RoboRobo oferă 5 truse educaționale pentru construirea roboților programabili. Sunt numerotate direct astfel: Robo Kit nr. 1, Robo Kit nr. 2, Robo Kit nr. 3, Robo Kit nr. 4, Robo Kit nr. 5. Ele diferă prin numărul de piese, numărul de modificări posibile ale roboților pe care le puteți asambla conform instrucțiunilor și complexitate. Cu cât numărul este mai mare, cu atât sunt mai multe detalii și este mai complex. Asigurați-vă că rețineți că setul 2 conține setul 1, setul numărul 3 conține setul 2 și așa mai departe. Deci, dacă aveți deja un set Kit Robo #1, apoi îl puteți extinde cu un set Kit Robo №1-2înainte de a forma Kit Robo nr. 2și astfel economisiți bani. Există 4 seturi de expansiune în total: Kit Robo Nr. 1-2, Kit Robo Nr. 2-3, Kit Robo Nr. 3-4 și Kit Robo Nr. 4-5. Pagina oficială a designerului.

În setul maxim veți găsi un senzor IR, un panou de control IR, un senzor de sunet și senzori tactile.

Roboții acestei companii sunt programați folosind o interfață grafică în program Programul Rogic.

O altă companie RoboRobo oferă truse pentru copii foarte mici (5–7 ani): Robo Kids nr. 1Și Robo Kids nr. 2. Al doilea set este complementar primului. Din primul set puteți asambla 16 roboți, iar din al doilea - încă 16 În aceste seturi, producătorul oferă o abordare interesantă pentru controlul roboților. Micii programatori au la dispoziție un set de carduri care sunt trecute printr-un scanner, care, la rândul său, dă comenzi robotului.

Fischertechnik

Constructorii fischertechnik produs de o companie germană. Piesele de proiectare sunt din plastic. Diferite seturi de construcție sunt concepute pentru diferite vârste. Seturi de serie JUNIOR (5+) Nu au motoare sau baterii, sunt doar truse de construcție pentru copii. Cu seturi de serie DE BAZĂ (7+)Și AVANSAT (7+), PROFI (8+) puteți asambla diverse mașini și mecanisme, acestea pot fi deja echipate cu motoare, panouri solare, surse de alimentare etc. Dar asamblarea roboților și programarea lor începe în kiturile de serie ROBOTICĂ (8+).

În serie ROBOTICAșase seturi: Set pentru începători ROBOTICS LT (Set pentru începători ROBOTICS LT)(kit de pornire pentru crearea a 8 dispozitive automate), Set de descoperire ROBOTICS TXT(pentru a crea 11 mecanisme și roboți autonomi), Roboți de automatizare ROBO TX (roboți automati ROBO TX)(pentru a crea roboți industriali realiști), ROBO TX electropneumatic (ROBO TX electropneumatic)(pentru asamblarea a 4 structuri pneumatice), ROBO TX Explorer (ROBO TX Explorer)(pentru a crea un robot cu șenile în șase modificări) și Laboratorul de formare ROBO TX (laboratorul de formare ROBO TX)(pentru proiectarea dispozitivelor automate și roboților mobili). Separat, puteți achiziționa un set de baterii, un set de telecomandă, un set de lumină și sunet (pentru crearea efectelor de lumină și sunet), seturi cu motoare suplimentare, un set de resurse și cutii de depozitare. Combinând seturi între ele, puteți extinde semnificativ posibilitățile de a crea roboți.

O parte din seturile de serie ROBOTICA echipat cu un controler ROBO TX(cu excepția setului de pornire, care vine cu un controler ROBO LT), parte – controler ROBOTICĂ TXT. Senzorii din kituri includ următorii: senzor foto, senzor de temperatură, senzor de culoare, senzor de distanță cu ultrasunete, senzor de urmărire a liniei IR.

Caracteristicile controlerului ROBO TX următoarele: procesor pe 32 de biți ARM9, display monocrom cu o rezoluție de 128x64, capacitate memorie 8 MB RAM, 2 MB Flash. Dimensiunea controlerului – 90x90x15 mm, greutate – 90 g Există 4 ieșiri pentru conectarea motoarelor, 8 intrări universale, 2 conectori de expansiune I2C, RS485 pentru combinare cu alte controlere, 4 intrari si USB pentru conectarea la un computer. Există și Bluetooth încorporat. Puteți achiziționa un microcontroler suplimentar ROBO TX.

Un controler mai avansat poate fi achiziționat separat ROBOTICĂ TXT. Iată caracteristicile sale: OS Linux, două procesoare ARM Cortex A8(32 biți/600 MHz) + Cortex M3, memorie 128 MB DDR3 RAM, 64 MB Flash, slot pentru card Micro SD, ecran tactil color de 2,4" cu o rezoluție de 320 x 240, 8 intrări universale, 4 intrări digitale de mare viteză, 4 ieșiri pentru motor, Bluetooth/Wi-Fi combinat modul , receptor IR (pentru primirea unui semnal de la telecomandă), USB 2.0 pentru conectarea la un PC, USB Host (USB A pentru conectarea unei camere USB fischertechnik sau fluiere USB), conector cu 10 pini pentru intrare sau ieșire prin interfața I2C , difuzor încorporat, ceas încorporat cu propria sa baterie Dimensiunea controlerului - 90x90x25 mm Toate detaliile despre microcontroler.

Toate kiturile includ software de programare ROBO Pro(În trusa de pornire veți găsi o versiune ușoară a acestui software). Cea mai recentă versiune a software-ului și rusificarea pot fi oricând descărcate de pe site-ul producătorului.

Controlor ROBOTICĂ TXT programabil folosind ROBO Pro, C-Compiler, PC-Library, . În prezent această platformă robotică este reprezentată de un singur setROBOTICĂ PRO 1.0, din care se pot asambla 6 modele. Setul este conceput pentru școlari (7+) și elevi.

Include microcomputer, software (pentru uz personal și educațional), fire, 3 motoare, 3 LED-uri, 2 senzori infraroșii, 1 senzor tactil și piese asortate.

Și iată specificațiile microcomputerului ERP:

  • microcontroler pe 32 de biți ARM CORTEX-M2;
  • 256 KB FLASH, 64 KB RAM;
  • Port USB 12 Mbit/s;
  • 3 porturi pentru motoare și 4 pentru senzori (LED-urile pot fi conectate la orice porturi);
  • sonerie încorporată;
  • alimentat de 6 baterii AA;
  • modul Wi-Fi încorporat.

Puteți programa modele asamblate direct pe bloc în sine sau folosind software ENGINO ERP. Roboții pot fi controlați de la distanță folosind o aplicație Telecomanda Engino ERP, care este disponibil pe Google Play și Apple Store. Toate detaliile despre designer pot fi găsite.

TRIC

Constructor cibernetic TRIC- acesta este un designer rus, ale cărui părți metalice sunt compatibile cu Sovmetal Constructor (aceeași perforație M4 cu un pas de 10 mm).

Designerul TRIC oferă mai multe soluții: set de început, set educațional, set școlar, set competiție, pereche de antrenament. Diferența dintre seturi este în numărul de senzori și piese, dar fiecare set are un controler TRIC , camera video si microfon. Toate seturile (cu excepția starterului) sunt livrate cu o cutie de plastic cu compartimente pentru depozitarea pieselor. Setul maxim conține următorii senzori: 2 senzori de lumină, 2 senzori de distanță, 2 senzori de atingere. În plus, există roți Omni, benzi LED, baterii și încărcător.

Caracteristicile tehnice ale controlerului TRIC:

  • sistem de operare: Linux;
  • CPU: OMAP-L138 C6-Integra™ DSP+ARM® SoC, 375 MHz, Texas Instruments;
  • Miez CPU: ARM926EJ-S™ RISC MPU;
  • RAM: 256 MB, 6 MB FLASH;
  • procesor periferic: MSP430F5510, 24 MHz, Texas Instruments;
  • interfețe utilizator: USB 2.0, WiFi b/g/n, BlueTooth, 2xUART, 2xI2C, Micro-SD, Mic in (stereo), Line out (mono);
  • Interfețe pentru motor DC: 4 porturi pentru motor 6-12V DC, cu protecție individuală la supracurent hardware (până la 2A per motor);
  • interfețe pentru dispozitive periferice: 19 porturi de semnal de uz general (6 cu un singur canal și 13 cu două canale) cu alimentare de 3,3-5V, dintre care 6 pot funcționa în modul de intrare analogică;
  • interfețe senzor video: 2 intrări BT.656 VGA 640*480, suport mod stereo;
  • monitor LCD tactil color TFT de 2,4” încorporat cu o rezoluție de 320x240 pixeli;
  • difuzor incorporat cu o putere nominala de 1 W, putere de varf de 3 W;
  • Indicator LED cu 2 culori, controlat de software;
  • sloturi de expansiune: doi conectori pentru modulul de expansiune cu 26 de pini „fantați”;
  • echipamente suplimentare (incluse în controler): accelerometru cu 3 axe, giroscop cu 3 axe, codec audio, amplificator, convertoare și circuite de gestionare a puterii, circuite de protecție împotriva supratensiunii de intrare și a curentului;
  • sursa de alimentare 6-12V DC, adaptor de retea extern sau baterie LiPo RC 3P (11.1V) / 2P (7.4V).

Programarea este posibilă în C, C++/Qt, J avaScript, C#/F# (.NET), Python și Java. Există, de asemenea, propriul mediu de dezvoltare - Studio TRIK, care rulează pe Windows și Linux. A fost dezvoltată o aplicație pentru control de la distanță Gamepad TRIK pentru Android. Conexiunea la controler se face prin Wi-Fi. Detalii despre designer pe site-ul oficial .

MUȘCHI

Constructor MUȘCHI, creat de o companie americană Robotică modulară, este cel mai neobișnuit constructor dintre toate cele enumerate aici. Nu există fire sau metode convenționale de conectare a pieselor. Întregul kit de construcție este format din module în formă de cub, cu margini de diferite culori și diverse elemente de legătură, cum ar fi console și colțuri. Toate sunt atașate între ele folosind bile magnetice, care vă permit să creați conexiuni rigide sau articulate.

Culorile diferite ale marginilor modulelor nu sunt făcute doar pentru frumusețe, ci indică și caracteristici. Marginile verzi conduc electricitatea. Modulul bateriei are toate fețele verzi și scopul principal al acestui modul este de a furniza energie tuturor celorlalte module. De exemplu, pentru a alimenta un modul cu un motor, trebuie să conectați una dintre marginile sale verzi la marginea verde a bateriei. Marginile roșii și maro conduc datele: roșu este ieșirea datelor, maro este intrarea datelor. De exemplu, dacă doriți ca senzorul de distanță să controleze viteza motorului, trebuie să conectați marginea roșie a modulului senzorului de distanță la marginea maro a modulului motor. Marginile albastre transmit energie și/sau datele sunt transmise prin ele. De exemplu, dacă trebuie să alimentați un modul care se află la distanță de baterie, puteți utiliza marginile albastre ale unui modul flexibil sau mai multe module simple.

Robo Wunderkind

Iată un alt set de construcție cub care este compatibil cu setul LEGO. Constructor Robo Wunderkind la fel ca constructorul MUȘCHI, constă din module în formă de cub, cu excepția microcontrolerului, care constă din cuburi duble (microcontrolerul este portocaliu în fotografie). Modulele sunt conectate între ele fără fir folosind elemente speciale de conectare.

Acum în service Kickstarter Puteți precomanda următoarele opțiuni de kit: starter (KIT DE STARTER), extins ( KIT AVANSAT) și profesional (KIT PROFESIONAL) . Primele livrări vor începe în iulie 2016. Seturile sunt concepute pentru copii de la 5 ani si adulti.În trusa de pornireexistă un modul de sistem (microcontroller), un modul cu senzor de distanță (roșu), un modul Bluetooth (albastru), un modul de baterie (verde), un modul servomotor (galben), un modul gol, 2 module de motor (albastru) , 2 roți, 7 piese de legătură, 2 adaptoare LEGO (pentru atașarea pieselor LEGO standard, cum ar fi oamenii, așa cum se arată în imagine) și o roată pasivă.În setul extinsSe adauga inca 2 module goale, un modul cu display LED, un modul cu senzor de lumina, un modul cu senzor de vreme, inca 6 elemente de conectare si inca 2 adaptoare LEGO.Într-un set profesional, fata de cel extins se adauga inca 1 modul de baterie, un alt modul servomotor, inca 3 module goale, un modul cu senzor infrarosu, un modul cu pointer laser, un modul cu ecran de cerneala electronica, un modul cu camera , un modul cu accelerometru, mai multe 9 elemente de conectare, încă 4 adaptoare LEGO și încă o roată pasivă.

Și iată care sunt caracteristicile designerului: procesor Allwinner A13 SoC, RAM 256 MB DDR3, Storage eMMC Flash Memory 4 GB, WiFi 802.11 b/g/n, Bluetooth 2.1/3.0/4.0. Modulul de sistem are un microfon și un difuzor încorporate.

Puteți programa robotul finit folosind o aplicație specială disponibilă pentru iOS și Android. Dezvoltatorii plănuiesc să creeze o aplicație pentru Windows, deși abia până în septembrie 2016. Programarea aici este grafică. Scratch este, de asemenea, acceptat. De asemenea, creatorii constructorului oferă un API pentru dezvoltare, pe măsură ce scriu, în orice limbaj de programare.

(pe baza materialelor de pe site-ul http://www.proghouse.ru/article-box/26-robots)

Responsabil pentru informatii: metodolog al Centrului medical de stat pentru câini și medicină medicală Soluyanov Evgeniy Aleksandrovich.

Lucrând la intersecția dintre cibernetică, psihologie și behaviorism (știința comportamentului) și un inginer care alcătuiește algoritmi pentru sisteme robotice industriale, ale căror instrumente principale includ matematică superioară și mecatronică, aceștia lucrează în cea mai promițătoare industrie din următorii ani - robotica . Roboții, în ciuda noutății comparative a termenului, au fost mult timp familiari omenirii. Iată doar câteva fapte din istoria dezvoltării mecanismelor inteligente.

Oameni de Fier Henri Droz

Chiar și în miturile Greciei Antice erau menționați sclavii mecanici, creați de Hefaistos pentru a efectua lucrări grele și monotone. Iar primul inventator și dezvoltator al unui robot umanoid a fost legendarul Leonardo da Vinci. Cele mai detaliate desene ale geniului italian au supraviețuit până în zilele noastre, descriind un cavaler mecanic capabil să imite mișcările umane cu brațele, picioarele și capul.

Crearea primelor mecanisme automate cu control program a început la sfârșitul secolului al XV-lea de către ceasornicarii europeni. Cei mai de succes în acest domeniu au fost specialiștii elvețieni, tatăl și fiul Pierre-Jacques și Henri Droz. Au creat o serie întreagă („băiat scriitor”, „desenator”, „muzician”), al cărei control se baza pe mecanisme de ceas. În onoarea lui Henri Droz, mai târziu, toate automatele umanoide programabile au început să fie numite „androidi”.

La originile programării

Bazele programării roboților industriali au fost puse la începutul secolului al XIX-lea în Franța. Aici au fost dezvoltate primele programe pentru mașini automate textile (filare și țesut). Armata lui Napoleon, în creștere rapidă, avea mare nevoie de uniforme și, în consecință, de țesături. Un inventator din Lyon, Joseph Jacquard, a propus o modalitate de a reconfigura rapid un răzbătut pentru a produce diferite tipuri de produse. Adesea, această procedură a necesitat o cantitate imensă de timp, un efort enorm și atenția unei întregi echipe. Esența inovației a fost utilizarea cardurilor de carton cu găuri perforate. Acele, ajungând în locurile tăiate, au deplasat firele în modul necesar. Schimbarea cardurilor a fost efectuată rapid de către operatorul mașinii: carte perforată nouă - program nou - tip nou de țesătură sau model. Dezvoltarea franceză a devenit prototipul sistemelor automate moderne, roboți cu capacități de programare.

Ideea propusă de Jacquard a fost folosită cu entuziasm de mulți inventatori în dispozitivele lor automate:

  • Șeful departamentului de statistică S. N. Korsakov (Rusia, 1832) - în mecanismul de comparare și analiză a ideilor.
  • Matematicianul Charles Babbage (Anglia, 1834) - în Motorul Analitic pentru rezolvarea unei game largi de probleme matematice.
  • Inginer (SUA, 1890) - într-un dispozitiv pentru stocarea și prelucrarea datelor statistice (tabulator). Pentru înregistrare: în 1911 compania. Hollerith a fost numit IBM (International Business Machines).

Cardurile perforate au fost principalele medii de stocare până în anii 60 ai secolului trecut.

Mașinile inteligente își datorează numele unui dramaturg ceh În piesa „R.U.R.”, care a fost publicată în 1920, scriitorul a numit un robot o persoană artificială creată pentru zone dificile și periculoase de producție (robota. (cehă) - muncă grea). Ce diferențiază un robot de mecanisme și dispozitive automate? Spre deosebire de acesta din urmă, robotul nu numai că efectuează anumite acțiuni, urmând orbește algoritmul stabilit, dar este și capabil să interacționeze mai strâns cu mediul și cu persoana (operatorul), și să își adapteze funcțiile atunci când semnalele și condițiile externe se schimbă.

Este general acceptat că primul robot de lucru a fost proiectat și implementat în 1928 de inginerul american R. Wensley. Humanoidul „intelectual de fier” a fost numit Herbert Televox. Biologul Makoto Nishimura (Japonia, 1929) și soldatul englez William Richards (1928) revendică și ei laurii pionierilor. Mecanismele antropomorfe create de inventatori aveau o funcționalitate similară: puteau să-și miște membrele și capul, să execute comenzi vocale și sonore și să răspundă la întrebări simple. Scopul principal al dispozitivelor a fost acela de a demonstra realizările științifice și tehnice. Următoarea rundă în dezvoltarea tehnologiei a făcut posibilă crearea în curând a primilor roboți industriali.

Generație după generație

Dezvoltarea roboticii este un proces continuu, incremental. Până în prezent, au apărut trei generații distincte de mașini „inteligente”. Fiecare este caracterizat de anumiți indicatori și domenii de aplicare.

Prima generație de roboți a fost creată pentru un tip îngust de activitate. Mașinile sunt capabile doar să efectueze o anumită secvență de operații programată. Dispozitivele de control al roboților, circuitele și programarea exclud practic funcționarea autonomă și necesită crearea unui spațiu tehnologic special cu echipamentul suplimentar și sistemele de informare și măsurare necesare.

Mașinile din a doua generație sunt numite senzori sau adaptive. Programarea roboților se realizează luând în considerare un set mare de senzori externi și interni. Pe baza analizei informatiilor provenite de la senzori se dezvolta actiunile de control necesare.

Și, în sfârșit, a treia generație este roboți inteligenți care sunt capabili de:

  • Rezumă și analizează informațiile,
  • Îmbunătățiți și auto-învățați, acumulați abilități și cunoștințe,
  • Recunoașteți imaginile și schimbările din situație și, în conformitate cu aceasta, organizați activitatea sistemului dvs. executiv.

Inteligența artificială se bazează pe algoritmi și software.

Clasificare generala

La orice expoziție modernă reprezentativă de roboți, varietatea de mașini „inteligente” poate uimi nu numai oamenii obișnuiți, ci și specialiștii. Ce tipuri de roboți există? Clasificarea cea mai generală și semnificativă a fost propusă de omul de știință sovietic A.E. Kobrinsky.

Pe baza scopului și funcțiilor lor, roboții sunt împărțiți în producție, industrial și cercetare. Primul, in concordanta cu natura muncii prestate, poate fi tehnologic, de ridicare si transport, universal sau de specialitate. Cele de cercetare sunt concepute pentru a studia zone și zone care sunt periculoase sau inaccesibile pentru oameni (spațiul cosmic, interiorul pământului și vulcanii, straturile adânci ale oceanelor lumii).

După tipul de control putem distinge biotehnice (copiere, comandă, cyborg, interactiv și automat), prin principiu - programabil rigid, adaptabil și programabil flexibil. Dezvoltarea rapidă a tehnologiei moderne oferă dezvoltatorilor oportunități aproape nelimitate atunci când proiectează mașini inteligente. Dar un circuit și o soluție excelentă de proiectare vor servi doar ca un shell costisitor fără software-ul adecvat și suport algoritmic.

Pentru ca siliciul cu microprocesor să preia funcțiile creierului robotului, este necesar să „umplem” programul corespunzător în cristal. Limbajul uman obișnuit nu este capabil să ofere o formalizare clară a problemelor, acuratețea și fiabilitatea evaluării lor logice. Prin urmare, informațiile necesare sunt prezentate într-o anumită formă folosind limbaje de programare a robotului.

În conformitate cu sarcinile de management în curs de rezolvare, se disting patru niveluri ale unui astfel de limbaj special creat:

  • Nivelul cel mai scăzut este utilizat pentru a controla actuatoarele sub formă de valori precise ale mișcării liniare sau unghiulare a părților individuale ale sistemului inteligent,
  • Nivelul manipulatorului permite controlul general al întregului sistem, poziționând corpul de lucru al robotului în spațiu de coordonate,
  • Nivelul operațiunilor servește la formularea unui program de lucru prin indicarea secvenței acțiunilor necesare pentru a obține un anumit rezultat.
  • La cel mai înalt nivel - sarcini - programul indică fără detalii ce trebuie făcut.

Robotiștii se străduiesc să reducă roboții de programare la comunicarea cu ei în limbaje de nivel superior. În mod ideal, operatorul stabilește sarcina: „Asamblați motorul cu ardere internă al unei mașini” și se așteaptă ca robotul să ducă la bun sfârșit sarcina.

Nuanțe de limbaj

În robotica modernă, programarea roboților se dezvoltă de-a lungul a doi vectori: programarea orientată spre robot și programarea orientată spre probleme.

Cele mai comune limbaje orientate spre robot sunt AML și AL. Primul a fost dezvoltat de IBM doar pentru controlul mecanismelor inteligente de producție proprie. Al doilea, un produs al specialiștilor de la Universitatea Stanford (SUA), se dezvoltă activ și are un impact semnificativ asupra formării de noi limbi din această clasă. Un profesionist poate discerne cu ușurință trăsăturile caracteristice ale lui Pascal și Algol în limbă. Toate limbajele orientate spre robot descriu un algoritm ca o secvență de acțiuni ale unui mecanism „inteligent”. În acest sens, programul se dovedește adesea a fi foarte greoi și incomod în implementarea practică.

La programarea roboților în limbaje orientate spre probleme, programul specifică o secvență nu de acțiuni, ci de obiective sau poziții intermediare ale unui obiect. Cel mai popular limbaj din acest segment este limbajul AUTOPASS (IBM), în care starea mediului de lucru este reprezentată sub formă de grafice (vârfuri - obiecte, arce - conexiuni).

Antrenamentul robotilor

Orice robot modern este un sistem de învățare și de adaptare. Toate informațiile necesare, inclusiv cunoștințele și abilitățile, îi sunt transferate în timpul procesului de învățare. Acest lucru se realizează atât prin stocarea directă a datelor relevante în memoria procesorului (programare detaliată - eșantionare), cât și prin utilizarea senzorilor robotului (prin demonstrație vizuală) - toate mișcările și mișcările mecanismelor robotului sunt stocate în memorie și apoi reproduse în lucrare. ciclu. În timp ce învață, sistemul își rearanjează parametrii și structura și formează un model informațional al lumii externe. Aceasta este principala diferență dintre roboți și linii automate, mașini industriale cu o structură rigidă și alte instrumente tradiționale de automatizare. Metodele de predare enumerate au dezavantaje semnificative. De exemplu, la eșantionare, reconfigurarea necesită ceva timp și forță de muncă din partea unui specialist calificat.

Un program de programare a roboților prezentat de dezvoltatorii Laboratorului de Tehnologia Informației de la Massachusetts Institute of Technology (CSAIL MIT) la conferința internațională de automatizare industrială și robotică ICRA-2017 (Singapore) pare foarte promițător. Platforma C-LEARN creată de ei are avantajele ambelor metode. Acesta oferă robotului o bibliotecă de mișcări elementare cu constrângeri specificate (de exemplu, forța de prindere pentru un manipulator în conformitate cu forma și rigiditatea piesei). În același timp, operatorul demonstrează mișcările cheie robotului într-o interfață 3D. Sistemul, pe baza sarcinii atribuite, formează o secvență de operații pentru a finaliza ciclul de lucru. C-LEARN vă permite să rescrieți un program existent pentru un robot cu un design diferit. Operatorul nu necesită cunoștințe aprofundate de programare.

Robotică și inteligență artificială

Experții de la Universitatea Oxford avertizează că tehnologia mașinilor va înlocui mai mult de jumătate din locurile de muncă actuale în următoarele două decenii. Într-adevăr, roboții lucrează de mult timp nu numai în zone periculoase și dificile. De exemplu, programarea a înlocuit semnificativ brokerii umani pe bursele mondiale. Câteva cuvinte despre inteligența artificială.

În mintea omului obișnuit, acesta este un robot antropomorf care poate înlocui o persoană în multe domenii ale vieții. Acest lucru este parțial adevărat, dar într-o măsură mai mare inteligența artificială este o ramură independentă a științei și tehnologiei, folosind programe de calculator, simulând gândirea „Homo sapiens”, opera creierului său. În stadiul actual de dezvoltare, AI ajută oamenii mai mult și îi distrează. Dar, potrivit experților, progresele suplimentare în domeniul roboticii și inteligenței artificiale pot pune o serie de întrebări morale, etice și juridice omenirii.

La târgul de roboți din acest an de la Geneva, cel mai avansat android din lume, Sophia, a anunțat că învață să fie om. În octombrie, Sophia a fost recunoscută drept cetățean al Arabiei Saudite cu drepturi depline, pentru prima dată în istoria inteligenței artificiale. Prima rândunica?

Tendințe majore în robotică

În 2017, experții din industria digitală au remarcat câteva soluții remarcabile în domeniul tehnologiilor de realitate virtuală. Nici robotica nu a fost omisă. Direcția de îmbunătățire a controlului unui mecanism robotic complex printr-o cască virtuală (VR) pare foarte promițătoare. Experții prezic cererea pentru o astfel de tehnologie în afaceri și industrie. Cazuri de utilizare probabile:

  • Controlul echipamentelor fără pilot (încărcătoare de depozit și manipulatoare, drone, remorci),
  • Efectuarea cercetărilor medicale și a operațiilor chirurgicale,
  • Dezvoltarea de obiecte și zone greu accesibile (fundul oceanului, regiuni polare). În plus, roboții de programare le permit să funcționeze autonom.

O altă tendință populară este mașina conectată. Mai recent, reprezentanții gigantului Apple au anunțat începutul dezvoltării propriei „drone”. Din ce în ce mai multe companii își exprimă interesul pentru a crea mașini capabile să se deplaseze independent pe drumuri accidentate, păstrând încărcătura și echipamentele.

Complexitatea din ce în ce mai mare a algoritmilor de programare a roboților și a învățării automate impune cerințe sporite resurselor de calcul și, în consecință, hardware-ului. Aparent, soluția optimă în acest caz ar fi conectarea dispozitivelor la infrastructura cloud.

Un domeniu important este robotica cognitivă. Creșterea rapidă a numărului de mașini „inteligente” îi obligă pe dezvoltatori să se gândească din ce în ce mai mult la cum să-i învețe pe roboți să interacționeze armonios.