Är robotik en del av AI? Vad är skillnaden mellan dem?


Svar 1:

Inte riktigt, de två fälten överlappar varandra men ingen av de andra är en superuppsättning.

Robotics forskningsmiljö är vad du kan se som flera personer från CS som använder robotar som deras användningsområde. Roboter presenterar skillnaden från klassisk CS för att ha datorsystemet starkt bundet till världen: en värld som är realtid, mycket dynamisk och svår att förutsäga och involverar många sensorer och ställdon som tenderar att vara bullriga (sätt mer än din typisk stationär dator där sensorer - mus och tangentbord - och "ställdon" - visar - tenderar att vara väldigt tillförlitliga relativt sett).

I det avseendet är robot ett lapptäcke av många CS-domäner som alla arbetar på en "specifik" domän: robotar. Du hittar många AI-fält (till och med vissa som förstärkningslärande som verkligen fick fart tack vare robot) men också mycket om kontrollteori, signalbehandling, ...

AI täcker aspekten av att försöka använda en dator för att utföra uppgifter som snabbt kan definieras som "lätt att göra för människor men svårt för datorer". Detta täcker ett mycket brett spektrum från inferens / planering till lärande som går igenom språk / röstigenkänning eller bild bearbetning. Medan många av dessa används av robot igen så ser du mycket arbete i AI som antingen:

- har antaganden som inte spelar bra för robotproblem (till exempel planeringskomplexitet och offlineantaganden går inte bra med robotikens realtid)

- har utvecklats mestadels med specifikt angående robotapplikation (de flesta av maskininlärning till exempel tenderar inte att göra inlärningen stegvis utan i batchprocess som återigen spelar dåligt w / robotar ligger)

- är inte riktigt viktiga eller specifika problem för robotar (att ha en robot w / röstigenkänning är trevligt men hur det fungerar utgör liten eller ingen specifik utmaning när den används på robotar)

Medan många arbetar för att integrera eller till och med förbättra olika AI-tekniker mot robotik lämnar det fortfarande de två domänerna som olika. Visst verkar vissa människor på AI tillämpade på robot (eller robot med hjälp av AI-teknik) men dessa människor förblir relativt kanten i båda samhällen.


Svar 2:

Nej, de två fälten överlappar varandra men ingen av dem ingår i det andra.

Vissa AI-områden är direkt upptagna med robotik, till exempel alla arbeten om samtidig lokalisering och kartläggning (SLAM) och navigering, allt om aktiv uppfattning, mycket litteratur om förstärkningslärande, utvecklingsmetoder också, etc. Mer generellt finns det är många saker om kognition och vad vi betraktar intelligens och intelligent beteende som bara är meningsfullt om du närmar dig dem som det framträdande resultatet av en koppling mellan en agent (robot eller biologisk) och dess miljö, som den interagerar med genom ett sensorimotorsystem. I andra termer är vi djur med fysiska kroppar som agerar (åtminstone ibland) intelligent i den fysiska världen och inte hjärnor i burkar eller ofarliga sinnen som bearbetar abstrakt information, och det är viktigt när du studerar många aspekter av intelligens, konstgjord eller inte. Det är grunden för förankrad kognition, som är ett fascinerande och livligt forskningsområde; Jag och forskargruppen jag är en del av fokuserar mest på de aspekterna av förankrad AI för robotik.

Nu är definitionen av AI lika bred som den definition du har för intelligens, och det finns helt klart delar av den som ligger utanför detta område. Saker som abstrakta AI-spel (schack, gå, vissa videospel etc.), expertsystem, skräppostfilter, rekommendationssystem, automatisk översättning (och mer generellt mest av NLP), etc. behöver inte särskilt en robot (eller en kropp ) att jobba. Dessa saker är en del av AI, men inte av robotik. (Å andra sidan kan samma allmänna metoder och teoretiska ramverk ofta användas för både robotiska och icke-robotikapplikationer. Konstgjorda neurala nätverk används överallt på olika sätt för mycket mycket olika saker. Förstärkningslärande har mycket icke -robotiska applikationer också, Bayesiska nätverk kan användas för att göra robotkontroller lika bra som skräppostfilter, etc.)

Och robotik innehåller också många saker som är ganska långt ifrån AI. Mycket robotik handlar om mekanik, mekatronik, byggsensorer och ställdon, styrteori och automatisering. Teoretiskt, under det förkroppsliga kognitionsparadigmet finns det ingen anledning att separera dessa saker från AI (det är det sensorimotoriska systemet som verkar i miljön som är intelligent, inte en intelligent ruta som råkar ha några sensorer och ställdon), men från en praktisk punkt de kräver mycket olika färdighetsuppsättningar som har mer att göra med fysik och ibland matematik än med kognitiv vetenskap, datavetenskap och vad vi vanligtvis tycker om ”AI”.


Svar 3:

Du kan inte göra robotik utan AI

ArKeyHandler keyHandler;
 Aria :: setKeyHandler (& keyHandler);
 robot.attachKeyHandler (& keyHandler);
 ArLog :: logg (ArLog :: Normal, "Robot Navigation and path planning");
 ArSonarDevice sonar;
 robot.addRangeDevice (& sonar);
 robot.runAsync (true);
 // slå på motorerna, stäng av amigobot-ljud
 robot.enableMotors ();
 robot.comInt (ArCommands :: SOUNDTOG, 0);
 // lägg till en uppsättning åtgärder som kombineras för att påverka vandrarbeteendet
 ArActionStallRecover återhämta sig;
 ArActionBumpers stötfångare;
 vandra vandra;
 scattergram scattergram;
 // render render;
 //render.display(scattergrams.rightpoints);
 robot.addAction (& scattergrams, 50);
 robot.addAction (& återhämta, 100);
 robot.addAction (& stötfångare, 75);
 robot.addAction (& vandra, 50);
 // vänta tills robotuppgiftslingan slutar innan du lämnar programmet
 robot.waitForRunExit ();
 Aria :: exit (0);
}

så långt som huvudfilen bara är en implementering av klasser implementeras allt robotbeteende via klassinstanser så i princip är det så jag föredrar att ordna min kod, i alla händelser placeras AI-kodningen för roboten normalt som en klass i en snygg rubrik- och implementeringsfil, det är här jag skulle göra det tunga AI / ML-lyftet och bara använda en klassinstans i huvudsak kalla de nödvändiga funktionerna. Jag tycker att AI / ML borde vara en del av robotik och i mitt fall brukar jag vanligtvis min robotik med hjälp av AI-algoritmer, detta är hämtat från ett "husdjursprojekt" av mig. Ja AI är en del av robotik.

Om jag vill återge något med hjälp av SFML C ++ API kallar jag lämplig klassinstans, så det är möjligt, detta är faktiskt ARIA C ++ robot API men jag visar grafik för det med SFML grafik C ++ bibliotek.