Er robotik en del af AI? Hvad er forskellen mellem dem?


Svar 1:

Ikke rigtigt, de to felt overlapper hinanden, men heller ikke et super-sæt af det andet.

Robotics research community er det, du kan se som flere mennesker fra CS, der bruger robotter som deres anvendelsesområde. Robotter præsenterer forskellen fra klassisk CS til at have computersystemet stærkt bundet til verden: en verden, der er realtid, meget dynamisk og svært at forudsige og involverer en masse sensorer og aktuatorer, der har tendens til at være støjende (måde mere end din typisk desktopcomputer, hvor sensorer - mus og tastatur - og "aktuatorer" - vises - har tendens til at være meget pålidelige relativt set).

I den forstand er robot et patchwork af en masse CS-domæner, der alle arbejder på et "specifikt" domæne: robotter. Du finder mange AI-felter (endda nogle som forstærkningslæring, der virkelig fik fart takket være robot), men også meget om kontrolteori, signalbehandling, ...

AI dækker aspektet ved at forsøge at bruge en computer til at udføre opgaver, der hurtigt kan defineres som "let at gøre for mennesker, men svært for computere" dette dækker et meget bredt spektrum fra inferens / planlægning til læring, der går gennem sprog / stemmegenkendelse eller billede forarbejdning. Mens mange af disse bruges af robot igen, vil du se en masse arbejde i AI, som enten:

- har antagelser, der ikke spiller godt til robotproblemer (for eksempel planlægningskompleksitet og offline antagelser går ikke godt med robotikken i realtid)

- er for det meste blevet udviklet uden specifikke forhold til robotanvendelse (det meste af maskinlæring for eksempel har tendens til ikke at udføre læringen trinvist, men i batch-proces, der igen spiller dårligt m / robotters beliggenhed)

- er ikke rigtig vigtige eller specifikke problemer for robotten (at have en robot m / stemmegenkendelse er rart, men den måde, det fungerer på, udgør kun lidt eller ingen specifik udfordring, når det anvendes til robotter)

Mens mange mennesker arbejder for at integrere eller endda forbedre forskellige AI-teknikker mod robotik, efterlader det stadig disse 2 domæner som forskellige. Sikker på, at nogle mennesker arbejder på AI anvendt til robot (eller robot ved hjælp af AI-teknik), men disse mennesker forbliver relativt randen i begge samfund.


Svar 2:

Nej, de to felter overlapper hinanden, men ingen af ​​dem er inkluderet i det andet.

Nogle AI-felter drejer sig direkte om robotik, for eksempel alle værker om samtidig lokalisering og kortlægning (SLAM) og navigation, alt om aktiv opfattelse, meget af litteraturen om forstærkningslæring, også udviklingsmetoder osv. Mere generelt er der er mange ting ved kognition, og hvad vi betragter som intelligens og intelligent opførsel, der kun giver mening, hvis du nærmer dig dem som det fremvoksende resultat af en kobling mellem et middel (robot eller biologisk) og dets miljø, som det interagerer med gennem et sensorimotorisk system. Med andre ord er vi dyr med fysiske kropper, der (i det mindste lejlighedsvis) handler intelligent i den fysiske verden og ikke hjerner i krukker eller uenige sind, der behandler abstrakte oplysninger, og det er vigtigt, når du studerer mange aspekter af intelligens, kunstig eller ej. Det er grundlaget for legemlig erkendelse, som er et fascinerende og livligt forskningsområde; Jeg og forskergruppen, jeg er en del af, fokuserer mest på de aspekter af legemliggjort AI til robotik.

Nu er definitionen af ​​AI lige så bred som den definition, du har på intelligens, og der er helt klart dele af den, der ligger uden for dette anvendelsesområde. Ting som abstrakte AI'er til spil (skak, gå, nogle videospil osv.), Ekspertsystemer, spamfiltre, anbefalingssystemer, automatisk oversættelse (og mere generelt det meste af NLP) osv. Behøver ikke en robot (eller en krop) ) at arbejde. Disse ting er en del af AI, men ikke af robotik. (På den anden side kan de samme generelle metoder og teoretiske rammer ofte bruges til både robotiske og ikke-robotiske applikationer. Kunstige neurale netværk bruges overalt på forskellige måder til en masse meget forskellige ting. Forstærkende læring har meget ikke -robotiske applikationer også, Bayesiske netværk kan bruges til at fremstille robotkontrollere lige så godt som spamfiltre osv.)

Og robotik inkluderer også en masse ting, der er ret langt fra AI. En masse robotik handler om mekanik, mekatronik, bygningssensorer og aktuatorer, kontrolteori og automatisering. Teoretisk set er der under det legemlige kognitionsparadigme ingen grund til at adskille disse ting fra AI (det er det sensorimotoriske system, der fungerer i miljøet, der er intelligent, ikke en intelligent kasse, der tilfældigvis har nogle sensorer og aktuatorer), men fra et praktisk synspunkt synspunkt kræver disse meget forskellige kvalifikationssæt, der har mere at gøre med fysik og undertiden matematik end med kognitiv videnskab, datalogi og hvad vi normalt synes om ”AI”.


Svar 3:

Du kan ikke lave robotik uden AI

ArKeyHandler keyHandler;
 Aria :: setKeyHandler (& keyHandler);
 robot.attachKeyHandler (& keyHandler);
 ArLog :: log (ArLog :: Normal, "Robotnavigation og sti-planlægning");
 ArSonarDevice sonar;
 robot.addRangeDevice (& sonar);
 robot.runAsync (sand);
 // tænd motorerne, sluk for amigobotlyde
 robot.enableMotors ();
 robot.comInt (ArCommands :: SOUNDTOG, 0);
 // tilføj et sæt handlinger, der kombineres for at påvirke vandrerens adfærd
 ArActionStallRecover gendannes;
 ArActionBumpers kofangere;
 vandre vandre;
 scattergram scattergrams;
 // render render;
 //render.display(scattergrams.rightpoints);
 robot.addAction (& scattergrams, 50);
 robot.addAction (& gendanne, 100);
 robot.addAction (& kofangere, 75);
 robot.addAction (& vandre, 50);
 // Vent på, at robotopgaveløkken slutter, før du afslutter programmet
 robot.waitForRunExit ();
 Aria :: exit (0);
}

for så vidt som hovedfilen kun er en implementering af klasser, implementeres al robotadfærd via klasseforekomster, så dybest set er det sådan, som jeg foretrækker at arrangere min kode, under alle omstændigheder placeres AI-kodningen for roboten normalt som en klasse i en pæn overskrift og implementeringsfil, det er her, jeg ville udføre den tunge AI / ML-løftning og bare bruge en klasseinstans i hovedopkald til de krævede funktioner. Jeg synes, AI / ML burde være en del af robotik, og i mit tilfælde praktiserer jeg normalt min robotik ved hjælp af AI-algoritmer, dette er hentet fra et ”kæledyrsprojekt” af mig. Ja AI er en del af robotik.

Hvis jeg vil gengive noget ved hjælp af SFML C ++ API, kalder jeg den relevante klasseinstans, hvilket er muligt. Dette er faktisk ARIA C ++ robot API, men jeg viser grafik til det ved hjælp af SFML grafik C ++ bibliotek.