Robotai ir robotika (2024) - P1

Summary

This document is a past paper for the Robotų programavimo technologijos (2024) course, covering definitions and classifications of robots and their application in various fields. Information about different types of robots, such as industrial, household, medical, and military, are described in detail.

Full Transcript

Robotai ir robotika. Mobilioji robotika. 1 T125B158. Robotų programavimo technologijos (2024) Robertas Damaševičius [email protected] Roboto ir robotikos apibrėžimai Robotų klasifikacija Mobilioji robotika Robotų programavimo aplinkos ir kalbos T...

Robotai ir robotika. Mobilioji robotika. 1 T125B158. Robotų programavimo technologijos (2024) Robertas Damaševičius [email protected] Roboto ir robotikos apibrėžimai Robotų klasifikacija Mobilioji robotika Robotų programavimo aplinkos ir kalbos Turinys Kas ‘išrado’ robotus? Terminą „robotas“ 1920 m. sukūrė čekų rašytojas Karelas Čapekas teatro spektaklyje „R.U.R“ (“Rossumo universalūs robotai”). Dirbtiniai žmonės, panašūs į androidus Sukurti darbui Kas yra robotas? (1) ◼ Robotas – „mechaninė mašina atliekanti užprogramuotas užduotis“. ◼ Robotas yra „automatinis įtaisas, kuris atlieka paprastai žmonių atliekamus veiksmus“ [Webster, 1993]. ◼ Robotas – „mašina, kuri gali suvokti aplinką, reaguoti į ją ir veikti“ [A. Machworth]. ◼ Robotas yra „perprogramuojamas daugiafunkcinis manipuliatorius suprojektuotas transportuoti medžiagas, detales, įrankius ar specializuotus įtaisus naudojant įvairius užprogramuotus judesius ir skirtas įvairių užduočių atlikimui“ [The Robot Institute of America, 1979] Roboto apibrėžimai 1. Mechaninis požiūris: mašina, kuri gali atlikti užduotis be žmogaus intervencijos, naudodamasi savo fizinėmis dalimis, pvz., griebtuvais. 2. Programavimo požiūris: techninė sistema, kuri gali vykdyti programuotas instrukcijas, kad atliktų konkretų darbą ar užduotį. 3. Interaktyvumo požiūris: įrenginys, kuris gali suvokti savo aplinką (naudodamasis sensoriais) ir reaguoti į ją tam tikrais būdais. 4. Autonomijos požiūris: mašina, kuri gali atlikti užduotis autonomiškai, t.y. be nuolatinės žmogaus priežiūros ar valdymo. 5. Praktinis požiūris: įrenginys, kuris gali automatiškai atlikti darbus ar užduotis, kurios anksčiau buvo atliekamos žmogaus. Kas yra pramoninis robotas? (2) ◼ Pramoniniai robotai: dažniausiai robotinės rankos arba manipuliatoriai ◼ Pramoninis robotas yra programinės įrangos kontroliuojamas mechaninis įtaisas, kuris naudoja jutiklius, norėdamas nukreipti vieną ar daugiau galinių vykdymo įtaisų, užprogramuotų atlikti judesius, kad būtų galima manipuliuoti fiziniais objektais. ◼ Naudojami gamyboje, konvejerinėse linijose, detalių surinkimui ◼ Tam tikra prasme antropomorfiniai Kas yra antropomorfinis robotas (androidas)? Androidas yra robotas ar kita dirbtinė būtybė, sukurta taip, kad būtų panaši į žmogų Humanoidinis robotas yra robotas, savo forma primenantis žmogaus kūną. Pramoniniai manipuliatoriai yra antropomorfiniai ta prasme, kad jie modeliuoja žmogaus ranką. Kas yra robotika? Terminą „Robotika“ I. Asimovas sukūrė 1941 m. Robotika – tarpdisciplininė mokslo sritis apie robotų kūrimo, gamybos ir naudojimo metodus Tikslas: kurti mašinas, kurios gali padėti žmonėms Robotika Elektros Kompiuteris inžinerija Mokslas Jutikliai Suvokimas valdymas Judėjimas Planavimas Mechanikos Inžinerija Mechanizmai Mechanika Robotų klasifikavimas Industriniai pagal taikymus Laisvalaikio Buitiniai Pagal taikymo sritis Tyrinėjimo Medicininiai Aptarnavimo Kariniai Industriniai robotai Automatiškai valdomas, programuojamas manipuliatorius veikiantis 3 ar daugiau ašyse [IOS standartas 8373:1994] Mažesnėmis materialinėmis sąnaudomis robotai gali atlikti gamybines funkcijas besikeičiančios gamybos aplinkos sąlygomis. Naudojami gamybos linijų automatizavimui, mažinant žmogiškąjį faktorių, dirbant kenksmingomis aplinkos sąlygomis. Naminiai (buitiniai) robotai ◼ Naudojami atlikti įvairius namų apyvokos darbus (kambarių valymas, baseino valymas, kiemo tvarkymas, žolės pjovimas). Medicininiai robotai ◼ Naudojami žmonių sveikatos gerinimui: ❑ operacijoms atlikti, ❑ slaugyti, ❑ bioniniai protezai, ❑ nanorobotai. Derliaus nuėmimas Kokybės kontrolė Žemės Sėja ūkio Sodinimas Dirvožemio stebėjimas robotai Purškimas Kariniai robotai ◼ Skirti padėti atlikti karinius veiksmus ◼ Naudojami ieškant sprogmenų, perimetro apsaugai, įrangos transportavimui nesaugioje zonoje Pentagono padalinio DARPA robotizuotas šuo „Big Dog“ Aptarnavimo robotai ◼ Naudojami aptarnavimo sferoje, baruose, rūbinėse, bilietų pardavimo kasose, muziejuose Laisvalaikio (pramogų) robotai ◼ Atkartoja įvairias emocijas ir judesius ◼ Gali būti liūdni, linksmi, bendraujantys su žmonėmis ◼ Dažniausiai būna žaislai Tyrinėjimo robotai ◼ Robotai, kurie dažniausiai naudojami įvairiuose moksliniuose tyrimuose (pvz., kosmose). ◼ Pvz., robotas-vėžlys, kuris gali judėti ir nardyti po vandeniu naudodamas tik priekines ir užpakalines galūnes, kaip tikras jūros vėžlys. Robotų skirstymas pagal AFR ◼ Association Francaise de Robotique (AFR) : ❑ Type A: Rankiniu būdu valdomi įtaisai (telerobotai) ❑ Type B: Automatiniai įtaisai ❑ Type C: Programuojami robotai ❑ Type D: Programuojami robotai gebantys rinkti duomenys apie savo aplinką Robotų kartos ◼ Robotai gali būti skirstomi į kartas ❑ Pirmos kartos robotai gali atlikti žmogaus užduotį tik jiems gerai pritaikytomis nekintamomis sąlygomis ir valdomi pagal nekintančią programą ❑ Antros kartos robotai turi jutiklius ir sugeba prisitaikyti prie kintančios aplinkos ❑ Trečios kartos robotai su dirbtiniu intelektu. Tai tobuliausia adaptyvių sistemų klasė, gebanti apdoroti plataus diapazono informaciją, kryptingiau elgtis kintančioje aplinkoje ❑ Ketvirtos kartos – robotai, kurie gali vystytis ir apmokyti kitus robotus, arba kurie yra sudaryti iš mechaninės ir biologinės dalių Robotics and Industry 4.0 ◼ New era of industrial production ❑ 3D printers ❑ Advanced robotics ❑ New materials ❑ Internet of Things ❑ Cyberphysical systems ❑ Cloud computing ❑ Big data Autonominiai automobiliai Minkštoji robotika Nanorobotai Itin mažas dydis (nm) Naudojamas medicinoje žmogaus kūno ligoms aptikti ir (arba) gydyti Gali būti sukonstruoti kaip fraktaliniai robotai, sudaryti iš mažų komponentų Gali lengvai pakeisti savo formą Robotų spiečiai Daugelio robotų valdymas Dronai (oro, povandeniniai) Gamtos įkvėptas būrio intelektas Kolektyvinis elgesys Robotų internetas Sudėtingų skaičiavimų (vaizdo/balso atpažinimo) perkėlimas į debesį „Robot-As-A-Service“ (RaaS) – robotas kaip paslauga Paskirstyta užduočių sprendimo duomenų bazė Protingesni robotai Robotų technologijos istorija ◼ The Progress of Robot Technology (50 min) ◼ https://www.youtube.com/watch?v=YMH68F3TWpM Mobilusis robotas Mobilus robotas yra...... robotas, galintis judėti aplinkoje valdomas kompiuterio (autonomiškai) arba operatoriaus.... automatinis mechaninis mechanizmas, galintis pats judėti ir pasirinkti kryptį. Mobilioji robotika yra robotikos šaka, nagrinėjanti mobilių robotų konstravimą ir valdymą (algoritmus ir jų programavimą) Mobiliojo roboto komponentai Valdiklis – „smegenys“, mikroprocesorius arba įterptasis mikrovaldiklis Jutikliai – IR, ultragarso, šviesos, lytėjimo ir kt. Pavaros – varikliai, kurie judina robotą Maitinimo sistema - nuolatinės srovės maitinimas (kuris yra akumuliatorius) Važiuoklė – fizinė roboto struktūra Autonomiškumas Autonomiškumas - gebėjimas savarankiškai priimti sprendimus Autonomiškas robotas gali suvokti savo aplinką, priimti sprendimus, ir judėti remdamasis tuo, ką jis suvokia ir (arba) kaip buvo užprogramuotas Automatinis ar Autonominis Mobiliosios robotikos problemos Judėjimas (Localization): mechanika, kinematika, dinamika ir valdymo teorija. Suvokimas (Perception): signalų analizė, kompiuterinė vizija ir jutiklių technologijos. Pažinimas (Cognition): analizuoja jutiklių duomenis ir priima sprendimus Navigacija (Motion Control): planavimo algoritmai, informacijos teorija ir dirbtinis intelektas. Judėjimas Techniniai reikalavimai manevringumas, valdomumas, reljefo sąlygos, efektyvumas stabilumas Ratiniai mobilieji robotai Paprastas dizainas, mažiau sudėtingas valdymas, lengvas balansavimas, aukšta stabilumas Blogai juda per kliūtis, pvz., uolėtą reljefą, aštrius paviršius ar mažos trinties vietas. Mobiliųjų robotų skirstymas pagal ratų skaičių Vieno rato balansuojantys robotai iš prigimties nestabilus reikia stabilumo kontrolės Balansuojančio roboto valdymas Valdymui reikalingas giroskopas, kuri matuoja posvyrio kampą ir akselerometras. Dviejų ratų balansuojantys robotai Nėra stabilumo - Reikia balansavimo https://www.youtube.com/watch?v=fFwkQZr8wnQ Trijų ratų robotai Du varomieji ratai su papildomu laisvai besisukančiu ratu, kad išlaikytų roboto pusiausvyrą Valdomas trečiasis ratas skirtas judėjimo krypčiai keisti Keturių ratų robotai Stabiliau Jokio balansavimo Didesnė kaina Daugelio ratų robotai Mobilių robotų taikymai Stebėjimas ir tyrinėjimas, Patruliavimas ir žvalgyba, gelbėjimo operacijos, pramonės automatika, statyba, pramogos, asmeninės paslaugos, transportas ir daug kitų pramoninių ir nepramoninių pritaikymų. Programavimo platformos ◼ Grafinės ❑ MRDS VPL ❑ Lego NXT (LabView) ❑ RoboLab ❑ RIS ◼ Scenarijų ❑ Python ❑ Perl Robotics ❑ Lua ◼ C kalbos dialektai ❑ Easy C ❑ Robot C ◼ Sisteminės ❑ Java, C-Sharp ROBOTC ◼ C programavimo kalbos dialektas skirtas robotų programavimui ◼ Lengva naudoti tiek pradedantiems, tiek patyrusiems naudotojams ◼ Specialūs kintamieji robotikos objektams – varikliams, jutikliams ◼ Paprastos vienos eilutės komandos ◼ Pavyzdys: variklio valdymas ◼ NXT - motor[motorA] = 100; // Įjungti variklį Motor A @ 100% ◼ Palaikomos platformos ❑ Mindstorms – NXT ir EV3 ❑ VEX Cortex, VEX IQ ❑ Arduino Uno, Mega, Mega 2560 RobotC example: Driving forward #pragma config(Motor, port2, rightMotor, tmotorNormal, openLoop, Reversed) #pragma config(Motor, PORT3, leftMotor, tmotorNormal, openLoop) task main () { wait1Msec(2000); Robot // Waits for 2000 millisecond (2 seconds) // Move forward at full power for 3 seconds, then stop motor [rightMotor] = 127; // Run at full (127) forward power motor [leftMotor] = 127; // Run at full (127) forward power wait1Msec(3000) // Wait 3000M (3 sec) - motor stay on !! } // program ends, and the robot stops 2 RobotC Graphical ◼ RobotC grafinė aplinka programavimui ❑ http://www.robotc.net LeJOS: Programavimas Java ❑ Atviro kodo objektinė kalba – Java poaibis ❑ Java tipai, bibliotekos klasės (java.lang, java.util, java.io) ❑ Sinchronizacija, tiesioginis jutiklių ir variklių valdymas ❑ Robotics API biblioteka ❑ Navigacija (odometrija) ❑ Elgsena („subsumption“ architektūra) ❑ Vaizdų apdorojimas ◼ Parsisiųsti ❑ http://lejos.sourceforge.net/ ◼ Mokomasis vadovas ❑ http://lejos.sourceforge.net/tutorial/ ◼ Knygos ❑ https://lejos.sourceforge.io/books.php 47 Java programos pavyzdys Programavimas Python ◼ Bibliotekos ❑ PyGame: imitavimo aplinka Python IDE ❑ PyBluez: Bluetooth ryšys ❑ Python NXT: Python PyGame bibliotekos skirtos Lego NXT PyBluez ❑ Pyro - Python Robotics, https://pypi.org/project/Pyro- Robotics/ ◼ Programos Python NXT ❑ Švieso jutiklis ❑ Ultragarso jutiklis ❑ Garso jutiklis Python NXT: http://home.comcast.net/~dplau/nxt_python/index.html PyBluez: http://org.csail.mit.edu/pybluez/ Programavimas Python ◼ #!/usr/bin/env pybricks-micropython 1 ◼ from pybricks import ev3brick as brick ◼ from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, ◼ InfraredSensor, UltrasonicSensor, GyroSensor) 2 ◼ from pybricks.parameters import (Port, Stop, Direction, Button, Color, ◼ SoundFile, ImageFile, Align) ◼ from pybricks.tools import print, wait, StopWatch ◼ from pybricks.robotics import DriveBase ◼ PyBricks: Python SDK for Databricks REST API ◼ MicroPython Python 3 kalbos poaibis skirtas mikrovaldiklių programavimui įrenginiuose su ribotais resursais ◼ pyboard – elektronikos schemų valdymui skirta biblioteka, leidžianti paleisti žemo lygmens Python OS 50 Arduino platforma ir jos programavimas Arduino - platforma, kuri naudoja Atmel firmos mikrokontrolerį. Tai mažas kompiuteris, kurio pagalba galima valdyti įvairius įrenginius. Ši platforma yra labai populiari pasaulyje, nes yra atviro kodo ir pasižymi didelėmis galimybėmis. Arduino buvo pristatytas 2005 metais. Jis buvo kuriamas išskirtinai studentams, kad jie galėtų lengvai ir nebrangiai programuoti mikrokontrolerius. Programavimui naudojama Arduino IDE aplinka, programuojant specialia kalba, kuri remiasi C/C++ sintakse. Arduino IDE Arduino platformos yra programuojamos kalba, kuri yra specialiai sukurta tokio kontrolerio programavimui. Ji yra pagrįsta C ir C++ kalbomis. Darbo lange pateikiamas, taisomas ar derinamas programos kodas Example of Arduino program setup() function ◼ initializes the serial communication at a baud rate of 9600. loop() function ◼ reads the analog input from pin A0, ◼ sends the data over serial communication, and ◼ waits for 1 sec before repeating the process. Virtualus robotų modeliavimas ◼ Problemos ❑ Techninė robotų dalis yra brangi ❑ Aparatūrą sunku testuoti ❑ Įvairūs apribojimai gali neleisti dirbti lygiagrečiai ◼ Pranašumai ❑ Lengva išmokti ❑ Lengvas prototipų kūrimas ❑ Geras mokymosi ir tyrimų įrankis ◼ Trūkumai ❑ Nėra “triukšmo” ❑ Nepilni arba netikslūs duomenys ❑ Priderinimas reikalauja daug laiko CopeliaSim (V-REP) Kas tai yra? Bendrosios paskirties robotų imitatorius su integruota kūrimo aplinka Ką gali? Modeliuoti ir imituoti jutiklius, mechanizmus ir robotines sistemas Sąsajos (įskiepiai, scenarijai, Remote API,...) Daugelio kalbų palaikymas (C/C++, Java, Python, Lua, Matlab, Octave, Lua, Urbi) Fizikos simuliatoriai (Bullet, ODE, Vortex, Newton) Platformos (Windows, MacOS, Linux) Tipiniai Greitas prototipų kūrimas taikymai? Greitas algoritmų kūrimas Sistemų imitavimas Demonstravimas ir t.t. https://www.coppeliarobotics.com/ Scenos Scenosobjektai objektai Kameros Jungtys Jungtys Kameros Apšvietimas Apšvietimas Formos Formos Koordinačių sistemos Koordinačių Scenos objektai sistemos umo jutikliai Scenos Atstumo jutikliai objektai Veidrodžiai Veidrodžia Vykdytuvai Pagrindiniai struktūriniai elementai Vykdytuvai Regėjimo davikliai Regėjimo davikliai Keliai Keliai Skaičiavimo moduliai D:\v_rep\web\helpFiles\en\images\features\collision.png Skaičiavimo moduliai Susidūrimų aptikimas Skaičiavimo Fizika / dinamika (susidūrimai, griebimas,...) Susidūrimų aptikimas moduliai Fizika / dinamika (susidūrimai, griebimas, D:\v_rep\web\helpFiles\en\images\features\pathPlanning.png D:\v_rep\web\helpFiles\en\images\features\distance.png...) D:\v_rep\web\helpFiles\en\images\features\ik.png Atstumo skaičiavimas Atstumo skaičiavimas Kelio planavimas (įskaitant žmogaus) Kelio planavimas Tiesioginė / atvirkštinė kinematika (įskaitant žmogaus) Tiesioginė / atvirkštinė kinematika Webots ❑ „Webots“ yra mobilių robotų atviro kodo modeliavimo programinė įranga https://cyberbotics.com/ mBot robotai mBlock aplinka mBlock - grafinė programavimo aplinka sukurta Scratch 2.0 pagrindu. Paprasta, intuityvi Scratch 2.0 grafinė sąsaja Bevielis ryšys: Bluetooth arba 2.4GHz bevielis ryšys komunikavimui su robotu Arduino režimas: galimybė lengvai pereiti į programavimą tekstiniu režimu Lengva naudoti Blokinis programavimas Spalvos žymi skirtingas Block-based programming komandas Įvykiais grįstas valdymas Kai kurios komandos turi parametrus Drag‘n‘drop stilius 62

Use Quizgecko on...
Browser
Browser