Sažetak | U ovom radu je opisan način kako stvoriti 3D oblak točaka određenog objekta pomoću 6-osnog robota i triangulacijskog mjerača udaljenosti, te kako na osnovu dobivenog oblaka točaka indirektno omogućiti pozicioniranje robota u bilo koju ciljanu točku na tom objektu. Kako bi se oblikovao sustav za rekonstrukciju i lokalizaciju objekata potrebno je povezati laserski mjerač udaljenosti AccuRange AR700, Arduino, Fanuc robota i računalo pomoću TCP/IP protokola, poslužitelj-korisnik vezom. Arduino mikrokontroler ćemo iskoristiti za premošćivanje komunikacije sa senzorom udaljenosti, s RS232 na TCP/IP. Za obavljanje te zadaće Arduinu su potrebni RS232 i Ethernet štitovi, za prilagodbu signala (iz mjernog uređaja i za mjerni uređaj) odnosno za povezivanje na mrežu. Centar ovog sustava će biti robot, on će zahtjevati podatke od mjerača udaljenosti (indirektno preko Arduina), te ih zajedno s podatcima o vrhu alata (svojim podatcima) prosljeđivati računalu, od kojeg nakraju očekuje podatke s kojima će se pozicionirati u željenu točku. Postavke robota za komunikaciju, slanje, prihvaćanje i prilagodbu podataka se namještaju programiranjem u robotovom programskom jeziku, Karelu. Treba napisati program tako da radi u pozadini programa napisanog na robotovom privjesku za učenje i da nastavlja s odvijanjem bez obzira na javljanje nekih grešaka koje bi ga inače zaustavile. Program napisan na privjesku za učenje će biti orijentiran na definiranje gibanja robota, ali u ovisnosti o informacijama koje dobiva ih pozadinskog Karel programa. Unutar komunikacijske petlje (koja uključuje mjerni uređaj, Arduino mikrokontroler i robota) očekujemo kašnjenje, u nekom dijelu, koje će uzrokovati netočnost podataka zbog čega će ih biti potrebno sinkronizirati. Također nužan uvjet za kvalitetan oblak točaka je kvalitetna kalibracija alata, čije poboljšavanje je najveći izazov ovog rada jer vrh alata nije fizička točka nego točka na laserskoj zraci što komplicira proceduru. Nakon uspostavljanja i usklađivanja komunikacija te nakon kalibriranja alata, spajanjem informacija dobivenih od laserskog mjerača udaljenosti i prostornih položaja robota moguće je rekonstruirati oblak točaka koji predstavlja objekte sadržane u mjernom prostoru, ali za to je potrebno obraditi podatke. U ovom radu to će biti obavljeno u programskom jeziku Matlab. Nakon što je oblak točaka stvoren moguće ga je pomicati, okretati, brisati mu neke točke, dodavati nove, spajati s drugim oblakom točaka... Usporedbom rekonstruiranog oblaka točaka i izvornog (koji predstavlja objekte) moguće je pronaći objekte od interesa razvijanjem algoritam koji određuje prostorne transformacije između mjerenog i izvornog oblaka kako bi se odredila lokacija željene točke na objektu u robotovom koordinatnom sustavu. Također da se poveća autonomnost sustava potrebno je i omogućiti pronalazak objekta (bez dodatne opreme) u radnom prostoru robota prije procesa skeniranja. Nakon pronalaska ciljane točke na objektu mjerenja, mjerene su greške sustava (mean, max, STD, RMS) na temelju podataka pohranjenih kroz automatski proces mjerenja pozicija i orijentacija. |
Sažetak (engleski) | This master thesis describes how to create 3D point cloud of object using a 6 degree of freedom industrial robot and triangulation distance gauge, and how with that point cloud, indirectly, robot can be positioned at any desired point on that object. To made system for reconstruction and localization of objects, it is necessary to connect laser distance gauge AccuRange AR700, Arduino, Fanuc robot and computer using TCP/IP protocol with server-client communication. Arduino microcontroller will be used to bridge communication with distance sensor, from RS232 to TCP/IP. To perform that task, Arduino needs RS232 and Ethernet shields to adjust signals (from sensor and to sensor) and for connection to network. Center of this system will be a robot, who will require data from sensor (indirectly over Arduino) and forward it together with tool information (robot own data) to computer, from which it will expect information in return. From that information robot will get coordinates in which will move itself. Robot settings for communication, sending, receiving, and data modifications are configured by programming in the Fanuc robotic programming language, Karel. It is necessary to write program that will work in background of program written on the robots teach pendant and will continue with execution despite of some errors that would otherwise terminate it. Program written on teach Pendant will be oriented to defining kind of robot motion and speed, but depending on the information obtained from background Karel program. Due to the communication loop which includes laser sensor, Arduino microcontroller and robot, there is an expected communication delay which could cause invalid data matching, so system (data) need to be synchronized. Also necessary prerequisite for obtain an accurate point cloud is to have precisely defined Tool Centre Point, whose improvements are biggest challenges of this work because top of tool is not physical point, but ‘imaginary’ point on laser beam which complicates procedure of calibration. After communication is established and synchronised and tool is calibrated, it is possible (from information obtained from sensor and spatial position of the robot) to reconstruct point cloud which will represent objects from robot working space, but for that it is necessary to process data. In this work it will be performed in Matlab programming language. Once the point cloud has been created it is possible to move it, rotate, delete some points, add new ones, merge with another point cloud, split... By comparing reconstructed point cloud and original (representing objects) it is possible to find objects of interest by developing algorithm that determines transformation between measured and original cloud to determine location of desired point on the object in the robot's coordinate system. Also, to increase autonomy of system, it is necessary to be enable to found object in robot workspace before start of scan process (without any additional equipment). After finding point of interest on measuring object, system errors (mean, max, STD, RMS) were measured based on the data stored through the automatic position and orientation measurement process. |