Designere av programmerbare roboter. Programmering og kontroll av industriroboter

For iPad - pedagogisk kode-app. Applikasjonen lar deg programmere roboter, droner og musikkinstrumenter på Swift, Apples språk.

"Til tross for at Swift først og fremst er ment for iOS- og mac OS-utviklere, vil applikasjonen også tillate deg å forstå generelle programmeringskonsepter, vel vitende om hvilke, du kan gjerne begynne å lære et hvilket som helst programmeringsspråk du liker og fordype deg i dets forviklinger," sier Ilya Vislotskiy, leder for utviklingsavdelingen til Stack Group.

"Tidligere, hvis en person ønsket å forstå hvordan programmer fungerer, eller ønsket å prøve seg på programmering, så hadde han ikke noe annet valg enn å umiddelbart bruke profesjonelle IDE-er," sier Ilya Vislotskiy. I dag er det allerede laget ganske mange pedagogiske programmer, de lar deg involvere barn i programmering og demontere de grunnleggende konstruksjonene av algoritmisering (tilstand, syklus, subrutiner). «Jeg spiller ofte slike spill som dette, for eksempel Lightbot. Etter min mening er det dobbelt nyttig hvis programmet begrenser algoritmen med antall operasjoner, siden oppgaven kan utføres på mange måter, og streber etter det mest effektive," legger Maxim Bekurin, robottrener ved Technoit-senteret.

Men det er ingen analoger i formatet til en applikasjon for et nettbrett, selv litt like i funksjonalitet og formål. I Swift Playgrounds kan brukeren umiddelbart se koden de lager og direkte kontrollere enhetene – programmeringstimer vil bli enda morsommere og mer intuitive. Ved hjelp av Bluetooth kobles appen enkelt til en rekke roboter og droner fra flere selskaper.

Den universelle plattformen samhandler med fem modeller:

  1. Med det populære LEGO MINDSTORMS EV3-settet kan millioner av barn over hele verden kode og kontrollere motorene og sensorene til pedagogiske roboter.
  2. Sphero SPRK + robotballen kan rotere, rulle, snu, akselerere og endre farge. Med Swift Playgrounds vil det være mulig å styre ballen ved hjelp av sensorer som gir tilbakemelding.
  3. Drevet av Swift-kode, kan Parrot Mambo, Airborne og Rolling Spider-dronene ta av, lande, snu og utføre forskjellige stunts.
  4. UBTECH Jimu Robot MeeBot Kit kan programmeres og læres opp til å gå, bøye seg og danse.
  5. En robot fra Wonder Workshop illustrerer de grunnleggende prinsippene for koding. Med Swift Playgrounds hjelper det juniorstudenter å lære programmering ved å gjøre.

"Muligheten til å koble til flere roboter er et klart pluss, og skaper dermed en ekstra retning for studiet av robotikk. I tillegg, gitt Apples mange års arbeid, kan vi trygt si at de vil fortsette å utvikle denne applikasjonen slik at den er egnet for store, seriøse prosjekter, sier Alexander Kormiltsev, lærer ved Polytechnic Education Department of Youth Palace , Jekaterinburg.

Swift Playgrounds er kompatibel med alle iPad Air, iPad Pro og iPad mini 2-modeller, og iOS 10 eller nyere.

14443

Roths, spesielt menneskelignende, kan ikke la være likegyldige selv de menneskene som har liten interesse for moderne teknologi. Sannsynligvis er programmering av slike roboter en veldig interessant og spennende aktivitet. Så det er, bare få mennesker vet hvor vanskelig det er å lære en robot selv de enkleste tingene som virker helt naturlige for oss. Du ville selv kunne se dette hvis du hadde tilgang til moderne robotikk.


Programmering av roboter i dag er privilegiet til smale spesialister, og alle andre som er interessert i robotikk kan enten stille misunnelse eller være fornøyd med å jobbe med simulatorer, for eksempel V-REP, en robotsimulator utviklet av det sveitsiske selskapet Coppelia Robotics. Men hvorfor ikke? V-REP-systemet har overraskende bred funksjonalitet, støttes av flere operativsystemer, inkludert Windows, og viktigst av alt er det gratis for hjemmebruk. Den inneholder også biblioteker for programmering av roboter ved hjelp av C / C ++, Python, Java, Matlab og noen andre språk.

V-REP kommer med et sett med ferdige modeller - stasjonære og mobile roboter, som kan kontrolleres ved å redigere skript. Noen modeller har et spesielt sett med glidere å kontrollere. Alle roboter har allerede et grunnleggende program og adlyder de virkelige lovene i den fysiske verden, den samme tyngdekraften. Plattformen er distribuert i tre utgaver: EVAL, EDU og Spiller... Den første er en fullt funksjonell versjon uten begrensninger, den andre er en pedagogisk versjon med lisensieringsbegrensninger, rettet mot videregående skoleelever, studenter og rett og slett entusiastiske brukere. Player (Player) er et program designet for å kjøre scener laget i den profesjonelle versjonen. Muligheten til å redigere skript er fraværende i den.

For å bli kjent med plattformen er det andre alternativet ganske passende - V-REP PRO EDU. Robotsimulatoren er installert som et vanlig program. Etter oppstart vil du se et vindu delt inn i tre deler.

Det høyre og største området er den skalerbare scenen der all handlingen finner sted. Plassert i venstre kant objektbibliotek- roboter, samt diverse tilleggselementer, noe som rekvisitter. Midtpanelet inneholder objekthierarki- scener, kameraer, figurer, lyskilder, modeller og manus som styrer dem.

Hvordan jobbe med V-REP

Ved første øyekast er alt enkelt - dra modellen fra biblioteket til scenen, trykk på Play-knappen og observer bevegelsene til avdelingen. Noen modeller er ganske smarte, for eksempel "menneskelig" Regning forstår perfekt hvordan man unngår hindringer, hvor grensene for sceneoverflaten går og hva som må gjøres for ikke å falle inn i "Abyss".

Og her er den humanoide roboten Ansi vil gå i rett linje til den faller over kanten og ikke sier farvel til livet.

Overlatt til seg selv streifer roboter i blinde, kolliderer og faller, og faller til overflaten, tar de klønete og hjelpeløst på lemmene deres.

Din oppgave- lære dem, men dette vil kreve kunnskap om de grunnleggende grunnlagene for programmering, ideelt sett - språket Lua, fordi det er på den de interne V-REP-skriptene er skrevet. Å åpne kildekoden til kontrollskriptet er veldig enkelt - du trenger bare å dobbeltklikke på ikonet "fil" i objekthierarkikolonnen.

For moro skyld kan du eksperimentere ved å endre verdiene til parameterne og deretter observere oppførselen til robotene. V-REP har også et godt sett med ferdige eksempler – scener i formatet TTT som kan nås via hovedmenyen Fil -> Åpne scener.

Robotikk er en kombinasjon av motsetninger. Som spesialister er de erfarne i forviklingene ved spesialiseringen. Som generalister er de i stand til å dekke hele problemet i den grad den eksisterende omfattende kunnskapsbasen tillater det. Vi bringer til deg et interessant materiale om ferdighetene og evnene som er nødvendige for en ekte robotikk.

Og foruten selve materialet, er det også kommentarer fra en av våre robo-eksperter, kurator for Jekaterinburg, Oleg Evsegneev.

Robotingeniører faller generelt inn i to kategorier av fagfolk: tenkere (teoretikere) og gjørere (utøvere). Dette betyr at robotikk må være flinke til å kombinere to motsatte arbeidsstiler. Forskningsinnstilte mennesker liker generelt å løse problemer ved å tenke, lese og studere. På den annen side liker utøvere å løse problemer bare ved å skitne på hendene, kan man si.

I robotikk trenger du en delikat balanse mellom intens utforskning og en avslappet pause, det vil si å jobbe med et reelt problem. Den presenterte listen inkluderer 25 profesjonelle ferdigheter, gruppert i 10 ferdigheter som er avgjørende for robotikk.

1. Systemtenkning

En prosjektleder la en gang merke til at mange personer knyttet til robotikk viser seg å være prosjektledere eller systemingeniører. Dette gir en spesiell mening, siden roboter er svært komplekse systemer. En spesialist som jobber i roboter må være en god mekaniker, elektronikkingeniør, elektriker, programmerer og til og med ha kunnskap om psykologi og kognitiv aktivitet.

En god robottekniker er i stand til å forstå og teoretisk underbygge hvordan alle disse ulike systemene samhandler sammen og harmonisk. Hvis en maskiningeniør med rimelighet kan si: "Dette er ikke jobben min, den trenger en programmerer eller en elektriker," bør en robotingeniør være godt kjent med alle disse disiplinene.

Generelt er systemtenkning en essensiell ferdighet for alle ingeniører. Vår verden er ett stort superkomplekst system. Systemtekniske ferdigheter hjelper deg med å forstå hva og hvordan som henger sammen i denne verden. Når du vet dette, kan du lage effektive kontrollsystemer for den virkelige verden.

2. Tenker på programmereren

Programmering er en ganske viktig ferdighet for robotikk. Det spiller ingen rolle om du jobber med kontrollsystemer på lavt nivå (bruker bare MATLAB for å designe kontrollere) eller en dataforsker som designer kognitive systemer på høyt nivå. Robotingeniører kan rekrutteres til programmering på alle abstraksjonsnivåer. Hovedforskjellen mellom konvensjonell programmering og robotprogrammering er at en robotingeniør samhandler med maskinvare, elektronikk og rotet i den virkelige verden.

Mer enn 1500 programmeringsspråk brukes i dag. Selv om du åpenbart ikke trenger å lære dem alle, har en god robotingeniør tenkemåten til en programmerer. Og de vil føle seg komfortable med å lære et hvilket som helst nytt språk hvis de plutselig trenger det. Og her går vi jevnt videre til neste ferdighet.

Oleg Evsegneevs kommentar: Jeg vil legge til at å lage moderne roboter krever kunnskap om språk på lavt, høyt og til og med ultrahøyt nivå. Mikrokontrollere må fungere veldig raskt og effektivt. For å oppnå dette må du fordype deg i arkitekturen til dataenheten, for å kjenne til særegenhetene ved å jobbe med minne og lavnivåprotokoller. Hjertet til en robot kan være et tungt operativsystem som ROS. Her trenger du kanskje allerede kunnskap om OOP, evnen til å bruke seriøse pakker med maskinsyn, navigasjon og maskinlæring. Til slutt, for å skrive et robotgrensesnitt på nettet og koble det til Internett, vil det være en god idé å lære skriptspråk, inkludert python.

3. Evne til selvstudium

Det er umulig å vite alt om robotikk, det er alltid noe ukjent som må studeres når behovet oppstår for gjennomføring av neste prosjekt. Selv etter å ha uteksaminert seg med en grad i robotikk og jobbet som hovedfagsstudent i flere år, begynner mange akkurat å virkelig forstå det grunnleggende innen robotikk.

Jakten på å kontinuerlig lære noe nytt er en viktig evne gjennom hele karrieren. Derfor vil det å bruke effektive undervisningsmetoder for deg og en god leseforståelse hjelpe deg raskt og enkelt å få ny kunnskap når behovet melder seg.

Oleg Evsegneevs kommentar: Det er en nøkkelferdighet i enhver kreativ bestrebelse. Du kan få andre ferdigheter med det

4. Matematikk

Det er ikke mange grunnleggende ferdigheter innen robotikk. En av disse kjerneferdighetene er matematikk. Du vil sannsynligvis finne det vanskelig å lykkes i robotikk uten riktig kunnskap om i det minste algebra, kalkulus og geometri. Dette er fordi robotikk på et grunnleggende nivå er avhengig av evnen til å forstå og operere med abstrakte konsepter, ofte representert som funksjoner eller ligninger. Geometri er spesielt viktig for å forstå emner som kinematikk og teknisk tegning (som du sannsynligvis vil ha mye å gjøre i løpet av din karriere, inkludert de som er gjort på en serviett).

Oleg Evsegneevs kommentar: Robotens oppførsel, dens reaksjon på miljøstimuli, evnen til å lære - alt er matematikk. Et enkelt eksempel. Moderne droner flyr godt takket være Kalman-filteret, et kraftig matematisk verktøy for å avgrense data om en robots posisjon i rommet. Asimo-roboten er i stand til å skille gjenstander takket være nevrale nettverk. Selv en robotstøvsuger bruker sofistikert matematikk for å kjøre riktig gjennom rommet.

5. Fysikk og anvendt matematikk

Det er noen mennesker (rene matematikere, for eksempel) som streber etter å operere med matematiske konsepter uten referanse til den virkelige verden. Robotprodusenter er ikke den typen person. Kunnskap i fysikk og anvendt matematikk er viktig i robotikk fordi den virkelige verden aldri er så presis som matematikk. Å kunne bestemme når en beregning er god nok til å faktisk fungere er en nøkkelferdighet for en robotingeniør. Noe som bringer oss jevnt til neste punkt.

Oleg Evsegneevs kommentar: Det er et godt eksempel - automatiske stasjoner for flyreiser til andre planeter. Kunnskap om fysikk gjør det mulig å beregne flybanen deres så nøyaktig at enheten etter år og millioner av kilometer befinner seg i en nøyaktig spesifisert posisjon.

6. Analyse og valg av løsning

Å være en god robotingeniør betyr hele tiden å ta tekniske beslutninger. Hva skal jeg velge for programmering - ROS eller et annet system? Hvor mange fingre bør en projisert robot ha? Hvilke sensorer bør jeg bruke? Robotikk bruker mange løsninger, og det er nesten ingen sann blant dem.

Takket være den enorme kunnskapsbasen som brukes i robotikk, kan du finne bedre løsninger på visse problemer for deg selv enn spesialister fra mer snevre disipliner. Analyse og beslutningstaking er avgjørende for å få mest mulig ut av beslutningen din. Analytiske tenkningsferdigheter vil tillate deg å analysere et problem fra forskjellige perspektiver, mens kritisk tenkning vil hjelpe deg med å bruke logikk og resonnement for å balansere styrker og svakheter ved hver løsning.

Mange robotkontrollere er implementert ved hjelp av programmeringsspråk for spesielle formål. For eksempel har mange programmer for generisk arkitektur blitt implementert i atferdsspråk som ble identifisert av Brooks. Dette språket er et regelbasert sanntidskontrollspråk som er kompilert til kontrollere. AFSM... De individuelle reglene for dette språket, spesifisert ved å bruke syntaks som Lisp, er kompilert til AFSM-maskiner, og AFSM-maskingrupper kombineres ved å bruke en kombinasjon av lokale og globale meldingsoverføringsmekanismer.

I likhet med den generiske arkitekturen er atferdsspråket begrenset fordi det tar sikte på å lage enkle AFSM-er med en relativt snever definisjon av kommunikasjonsflyten mellom moduler. Men nylig har det blitt utført ny forskning på grunnlag av denne ideen, som har ført til opprettelsen av en rekke programmeringsspråk, som i ånden ligner på atferdsspråket, men kraftigere og gir raskere utførelse.

Et slikt språk er universelt robotspråk, eller forkortet GRL (Generisk robotspråk). GRL er et funksjonelt programmeringsspråk for å bygge store modulære kontrollsystemer. Som med Behavior Language, bruker GRL endelige tilstandsmaskiner som de grunnleggende byggesteinene. Men som en tilpasning over disse automatene, tilbyr GRL-språket en mye bredere liste over konstruksjoner for å definere kommunikasjonsflyten og synkronisere begrensninger mellom forskjellige moduler enn atferdsspråket. GRL-programmer er kompilert til effektive programmer på kommandospråk som f.eks MED.

Et annet viktig programmeringsspråk (og relatert arkitektur) for parallell robotprogramvare er Reactive Action Planning System, eller for kort RAPS (Reactive Action Plan System)... RAPS lar programmerere sette mål, planer knyttet til disse målene (eller delvis definere policyer), samt sette betingelsene under hvilke disse planene sannsynligvis vil lykkes.

Av avgjørende betydning inkluderer RAPS også midler til å håndtere de uunngåelige feilene som oppstår i virkelige robotsystemer. Programmereren kan definere prosedyrer for å oppdage ulike typer feil og gi en prosedyre for å løse et unntak for hver type feil. I trelagsarkitekturer brukes RAPS ofte på ledernivå for å lykkes med å håndtere uforutsette situasjoner som ikke krever omplanlegging.

Det er også flere andre språk som støtter bruk av resonnement og læringsverktøy i roboter. For eksempel er Golog et programmeringsspråk som tillater feilfri interaksjon av algoritmiske problemløsningsverktøy (planleggings) og reaktive kontrollverktøy spesifisert direkte ved hjelp av spesifikasjonen.

Golog-programmer er formulert i form av situasjonsberegning, og tar hensyn til den ekstra muligheten for å bruke ikke-deterministiske operatorer. I tillegg til spesifikasjonen av kontrollprogrammet med evnene til ikke-deterministiske handlinger, må programmereren også gi en komplett modell av roboten og dens miljø.

Når kontrollprogrammet når punktet for ikke-deterministisk valg, kalles planleggeren (definert i form av en teorembeviser) for å bestemme hva som skal gjøres videre. På denne måten kan programmereren definere delvis definerte kontrollere og stole på bruk av innebygde planleggere for å ta det endelige valget av kontrollplan.

Den viktigste attraktive egenskapen til Golog-språket er dens upåklagelige integrasjon av reaktiv kontroll og algoritmisk kontroll. Selv om Golog har strenge krav (full observerbarhet, diskrete tilstander, full modell), har Golog blitt brukt til å lage kontroller på høyt nivå for en rekke innendørs mobile roboter.

JSk CES (forkortelse for C++ for innebygde systemer) er en C++ språkutvidelse som kombinerer sannsynlighets- og læringsverktøy. CES-datatyper inkluderer sannsynlighetsfordelinger, som lar programmereren utføre beregninger ved å bruke usikker informasjon uten innsatsen som normalt vil være forbundet med sannsynlige metoder.

Enda viktigere, språket CES gir tilpasning av robotprogramvare gjennom læring fra eksempler, omtrent det samme som i læringsalgoritmer. Språk CES lar programmerere legge igjen "hull" i koden som er fylt med læringsfunksjoner; vanligvis er slike gap differensierbare parametriske representasjoner som nevrale nettverk. Senere, på separate læringsstadier, hvor læreren må spesifisere den nødvendige utdataatferden, finner induktiv læring sted ved å bruke disse funksjonene. Praksis har vist at CES-språket med hell kan brukes i problemområder som er karakteristiske for et delvis observerbart og kontinuerlig miljø.

ALisp-språket er en forlengelse av språket Lisp... Språk ALisp lar programmerere definere ikke-deterministiske utvalgspunkter, lik Golog-språkvalgpunktene. Men ALisp-språket bruker ikke et teorembevisende program for beslutningstaking, men midler for å bestemme riktig handling ved å bruke induktiv læring, som bruker forsterkende læring. Derfor språket ALisp kan sees på som en praktisk måte å integrere kunnskap om problemdomenet i forsterkningslæringsprosedyren, spesielt kunnskap om den hierarkiske strukturen til de ønskede atferds-"prosedyrene". Til nå har ALisp-språket blitt brukt til å løse robotproblemer kun i simuleringsstudier, men det kan bli grunnlaget for en lovende metodikk for å lage roboter som er i stand til å lære som et resultat av interaksjon med omgivelsene.