Hvilke computersprog skal vi vide for robotik?

Bedste svar

Det enkleste svar ville være C ++ og Python .

Alle de robotikprojekter, som jeg har arbejdet med, kører på en af ​​disse platforme på den ene eller den anden måde. Dette ville dog være et ufuldstændigt svar uden at vise dig det faktiske billede af, hvad der sker inden for robotteknologi.

Operativsystem:

  • C ++ og Python er bestemt det programmeringssprog, du bruger i slutningen. Koderne for de fleste robotter lever i disse dage dog inde i et operativsystem kaldet ROS (Robot Operating System). ROS giver en elegant softwarearkitektur til lettere kontrol og planlægning af robotter. Der er disse forskellige knudeprogrammer, som du skriver, der kan offentliggøre visse oplysninger, der kan bruges af andre noder, der bor i ROS . For eksempel vil lokaliseringsknudepunktet, der estimerer en drones position i 3d-verdenen, offentliggøre disse oplysninger, som andre noder kan bruge. En baneplanlæggernode kan derefter abonnere på disse noder for at få disse data til at evaluere den næste sti til dronen. Hver af disse noder er enkle C ++ eller Python koder.

Programmering til robotforskning:

  • Simulation : Næsten alle strenge simuleringer og test i forskningsfasen udføres først på MATLAB inden den konverteres til en C ++ – eller Python -kode. Dette skyldes de elegante visualiseringsværktøjer og praktiske forudskrevne funktioner, som platformen tilbyder. MATLAB koder kan også integreres med ROS .

Programmering til visuel erkendelse:

  • Machine learning-modeller : Hvis robotten bruger en slags maskinlæring eller dyb læringsteknikker, trænes de først med platforme som Tensorflow, Keras, PyTorch osv. og derefter den trænede modeller overføres til ROS som en node. For eksempel vil en søgnings- og redningsdron bruge en human detektionsmodel som en ROS -node, der abonnerer på den rå kamerabilledknude og offentliggør al menneskelig detektion.
  • Billedbehandling : OpenCV er et meget anvendt billedbehandlingsværktøj, som kan integreres med C ++ eller Python inde i ROS . En fodboldrobot ville f.eks. Have brug for dette modul til at opdage alle de farvede bolde på billedet.

Programmering til robotikhardware:

  • Hardwareprogrammering : Til hardwareniveau FPGA programmering, verilog eller VHDL bruges.
  • Firmware- eller mikrocontrollere : AVR programmering til ATMEGA chips bruges i vid udstrækning, hvis du vil have en mere effektiv og sofistikeret kontrol af hardwaren. En nemmere mulighed er at bruge Arduino mikrocontroller, der bruger en indpakning omkring C-sprog . Det er ret ligetil at programmere i Arduino til at køre en servomotor eller til at styre en motordriver.
  • Computere med enkelt kort : Hvis du har brug for mere hukommelse og processorkraft end den, der leveres af Arduino eller Atmega , vælger du Raspberry Pi eller Beagle Board . Begge understøtter Ubuntu ombord med Python eller C ++ i ROS , hvilket gør dit liv lettere!

I slutningen koger det alt sammen til Python, C ++ og MATLAB i en ROS-platform . ROS har netop erobret robotfeltet så meget, at de fleste af de seje nye robotteknologiprogrammeringsværktøjer er født som ROS pakker.

Svar

Måske hjælper vejkortet, jeg oprettede, dig på din rejse til at lære robotik. Jeg ser dette spørgsmål blive stillet meget.

Køreplanen har 4 niveauer, og hvert niveau fokuserer på 4 kernekoncepter.

Opvarmningsniveau

  1. Lær kodning: Start med at samle mindst et praktisk programmeringssprog . Arduino IDE er god.Python er fantastisk. C / C ++ vil være fantastisk. Mit forslag er Python . Der er flere grunde til dette, og senere i køreplanen kan du se hvorfor.
  2. Lær elektronik: Begynd at oprette grundlæggende elektronisk kredsløb . Det kan være så simpelt som at tænde en LED. Derefter lyser flere lysdioder op. Lav et simpelt trafiksignal. Redskabskontakter. Lær de teoretiske ideer bag, hvordan spænding, strøm, modstande, transistorer, serier og parallelle kredsløb fungerer. Udforsk også sensorer og servomotorer!
  3. Lær grundlæggende samling: Som børn elskede vi at lave legetøj og bygge ting. Gør det samme her. Lær at lave nogle grundlæggende strukturer ved hjælp af træ, akryl, fiber eller plast.
  4. Integrer med mikrocontroller: Med kendskab til ovenstående koncepter, skal du prøve at teste dem på en grundlæggende mikrokontroller. Når alt kommer til alt, vil du have dit kredsløb til at “reagere”. Det mest populære valg blandt hobbyister og begyndere er at gå med Arduino . Arduino har virkelig forenklet processen med kodning og implementering af grundlæggende reaktionære kredsløb.

(Ressourcer: YouTube, Khan Academy, Code, Coursera, Udemy)

Begynderniveau

  1. Lær objektorienteret programmering: Det er ikke kun vigtigt at kode i robotik men også hvordan man koder godt . Objektorienteret programmering (OOP) er en enorm muskel at vokse, og tidligere kan du gøre dette, jo mere vil du takke dig selv i fremtiden. OOP er ikke eksklusiv for Python. Men i Python kan du nemt implementere disse og øve. Gennem OOP lærer du om klasser, metoder, arv osv., Og dette er en fremragende teknik til at skrive funktionelle, modulære og effektive koder.
  2. Lær fysik, sandsynlighed og lineær algebra: Når du vokser fra en spædbarnsrobot til en ung, er det vigtigt, at du også ved, hvordan robotik skrives, læses og tales af andre i samfundet. Dette robotikssprog bruger stærkt fysik, sandsynlighed og lineær algebra. Ja, du kan ikke lide disse emner i skole eller universitet, men stol på mig, du har brug for dem, hvis du er seriøs omkring robotik. Du kan ikke lave computersyn uden at vide om matricer. Du kan ikke foretage sti planlægning uden at vide om fysik. Du kan ikke udføre kunstig intelligens eller maskinlæring uden at vide om sandsynligheden.
  3. Mere involverede computerfærdigheder: Hvad mener jeg nu med det? Mange nyankomne inden for robotteknologi bliver stumpede (jeg var også!) For at de har brug for at lære dette nye fremmede operativsystem, der har en pingvin et sted ved siden af ​​sig. Jeg taler om Linux operativsystem. Det er bydende nødvendigt, at for nogen, der ønsker at komme dybere ind i robotik, skal gøre sig bekendt med Linux. En masse biblioteker, pakker og software udviklet til robotteknologi distribueres meget let og effektivt i Linux-miljøer. Populært Linux OS-valg: Ubuntu
  4. Indlejrede systemer: Nu hvor du har udviklet bedre viden om kodning, kredsløb, teoretiske koncepter og fortrolighed med Linux, vi skal implementere disse på en mindre computer end vores bærbare computer. Så fortsæt og prøv opvarmningsniveau koncepter sammen med ovenstående koncepter på en mini-computer såsom Raspberry Pi eller BeagleBone. Hæng nogle sensorer, servoer og et kamera til en af ​​disse minecomputere, og skriv kode for at registrere, flytte og opdage ting!

(Ressourcer: YouTube, Khan Academy, Code, Coursera, MIT OCW)

Mellemliggende niveau

  1. Udvikle teoretiske fundamenter: Her afhængigt af hvilket område inden for robotik du er interesseret i, skal du lære mere om teorien bag det. Lær om manipulation af robotarm (kinematik og kontrol), opfattelse (computersyn, lineær algebra , matricer), maskinlæring / kunstig intelligens (sandsynlighed, statistik, matematik). Kan du se, hvordan nogle af de tidligere koncepter er grundlæggende for disse kernerobotikområder?
  2. Brug avancerede biblioteker: Nu skal du implementere maskinen indlærings- og / eller computersynsalgoritmer på din robot. Når alt kommer til alt skal robotten være i stand til at se og tænke og lære, ikke?På Python er der fantastiske biblioteker skrevet til implementering af maskinlæring og algoritmer til computersyn f.eks. tensor flow og OpenCV. Tilsvarende kan der også praktiseres meget AI på Python. Selvfølgelig kan du gøre det samme i C / C ++. Jeg prøver dog at holde det konsistent her.
  3. Bliv fortrolig med ROS: Med kendskab til alle ovenstående er en fremragende mellemvare, som man skal lære, er Robotoperativsystem (ROS). Det kan være lidt vanskeligt at afhente i starten. ROS åbner dog dine døre for at teste avancerede algoritmer og simuleringer på robotter, som du ikke engang har! Vil du flyve en quadcopter? Eller navigere en robot autonomt på et kort? Hvad med at få en industriel arm til at samle en genstand op? Du kan gøre det i ROS via dets simuleringsmiljø med navnet Gazebo.
  4. Mere CAD: Du kan være interesseret i at udvikle og designe komplekse robotter. Begynd at lære 3D-designsoftware såsom Blender eller SolidWorks, så du kan designe dine egne robotter.

Ekspertniveau

  1. Bliv ved med at lære og vokse: Hvert koncept, der er nævnt ovenfor, er uendeligt med sin egen dyd, og for at blive ekspert inden for robotteknologi skal du bruge tiden og fortsætte med at lære. Du vil indse, at du har brug for at lære flere klassifikatorer eller modeller for at registrere objekter / billeder bedre. Eller du skal muligvis lære mere om kontrolalgoritmer for at optimere dine løsninger.
  2. Mere software / hardware: Afhængigt af dit interesseområde og specialisering, vil du gøre mere og mere med kodning, algoritmisk udvikling, ROS og / eller robotdesign.

Endelig er jeg bestemt ikke ekspert, og derfor kan jeg ikke tilføje meget til det . Hvad jeg kan sige med sikkerhed er, at jeg ikke ved, hvad jeg ikke ved. En vigtig ting at huske er: kom i gang og vær konsekvent =)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *