150 likes | 257 Views
Posodobitev direktno gnanega robota. Laboratorij za industrijsko robotiko. Predlagatelji:. F akulteta za E lektrotehniko, R ačunalništvo in I nformatiko. prof. dr. Karel Jezernik, doc. dr. Martin Terbuc, dr. Aleš Hace. Strokovno vodstvo:. dr. Aleš Hace, dr. Martin Terbuc, Marijan Španer.
E N D
Posodobitev direktno gnanega robota Laboratorij za industrijsko robotiko Predlagatelji: Fakulteta za Elektrotehniko, Računalništvo in Informatiko prof. dr. Karel Jezernik, doc. dr. Martin Terbuc, dr. Aleš Hace Strokovno vodstvo: dr. Aleš Hace, dr. Martin Terbuc, Marijan Španer Nosilec predmeta: doc. dr. Boris Curk David Jarc Maribor, 02.06.2004
Predstavitev projekta Ideja: Izgradnja in implementacija robotskega krmilnika za DD robota Naloge: Spoznavanje strojne in programske opreme Instalacija strojne in programske opreme Analiza krmilnega algoritma Testiranje in prevajanje programske kode Zahtevano predznanje: DSP, programski jezik C, regulacije, ročne spretnosti
Strojna oprema MCX-DSP-ISA ADSP 21061 (SHARC) DSP PIT Watchdog SYNC 8 kanalni PŠM izhod 8 kanalni stopnični izhod 96 digitalnih vhodov 32 digitalnih izhodov 16 D/A izhodov 8 A/D vhodov 8 kvadraturnih dekoderjev
Strojna oprema Servo ojačevalec: Harmonic Drive SC-510 Industrijski PC: Advantech IPC 610 Servo aktuator: FHA-25B-3015-E150
Programska oprema Motion Tools Grafični vmesnik za krmiljenje karte na PC gostitelju Automate Orodje za gradnjo grafičnih vmesnikov
Programska Oprema PC gostitelj DSP DLL Knjižnice MCI-SoftLib CMC-SoftLib Static C- Knjižnice Liberty Sharc-Trig MCReg_21k CMC-21k GUI Motion Tools DSP executable Automate MCREG-SoftLib ISA bus (register access) Windows OS
DSP Programska arhitektura Interrupt Handler Krmili pretok podatkov Urnik Data server Delovanje pomnilnika User Interface GUI Controller Task Krmilni spremenljivke Watchdog Generira akcije Set Point Buffer FIFO pomnilnik Hrani generirane točke Path Planner Generira točke Monitor task Digital I/O Opazuje gibanje
Grafični vmesnik Novi vmesnik Motion TOOLS
Prevajanje programske kode mcx061.ach libcm.a USER16.21K sharemem.h pathserv.h setptserv.h control.h mcreg.h math.h libct16.a ctrlA16.o usrctl.o usrctl.c libmc16.a librtc.a libct16.a libpatch.a libcm.a
Inicializacija [controller] dsp_code = defaults\ct16a.21k numaxes = 3 setpoint_bufsize = 100 Kp = {16.072, 14.6569, 14.643}; Ki = {385.0306, 391.8963, 434.7829}; Kd = {0.3259, 0.2663, 0.2396}; Kv = {0.0, 0.0, 0.0}; Ka = {0.0, 0.0, 0.0}; Kpv = {1.0, 1.0, 1.0}; Kiv = {0.0, 0.0, 0.0}; Kvf = {0.0, 0.0, 0.0}; bias = {0.0, 0.0, 0.0}; pos_int_windup = {9.998, 9.998, 9.998}; vel_int_windup = {0.0, 0.0, 0.0}; saturation = {9.998, 9.998, 9.998}; deltaT = 0.0005 output_map = {0, 2 } [encoder] ENC_gain = {0.002, 0.003, 0.004}; ENC_offset = {0.0, 0.0, 0.0}; [DACs] DAC_gain = {819.2, 819.2, 819.2}; DAC_offset = {10.0, 10.0, 10.0}; [Digital I/O] home_switch = {0, 4, 8}; neg_lim_switch = {0, 4, 8}; pos_lim_switch = {-1, -1, -1}; amp_fault = {-1, -1, -1}; amp_enable = {96, 98, 100}; emergency_stop = -1; fault_indicator = {-1, -1, -1}; active_level = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}; [error] max_following_error = {0.5, 0.5, 0.5}; soft_limit_plus = {10.0, 10.0, 10.0}; soft_limit_minus = {-10.0, -10.0, -10.0}; hard_limit_plus_enable = 0x0 hard_limit_minus_enable = 0x0 soft_limit_plus_enable = 0x0 soft_limit_minus_enable = 0x0 amp_fail_enable = 0x0 following_enable = 0x0 response = {0x10000, 0x10000, 0x0, 0x0, 0x0}; deceleration = {100.0, 100.0, 100.0}; [homing] position = {0.0, 0.0, 0.0}; on_speed = {10.0, 10.0, 10.0}; off_speed = {1.0, 1.0, 1.0}; acceleration = {25.0, 25.0, 25.0}; deceleration = {100.0, 100.0, 100.0}; [move] speed = 5.0 acceleration = 50.0 deceleration = 50.0 [axis move] speed = {5.0, 5.0, 5.0}; acceleration = {50.0, 50.0, 50.0}; deceleration = {50.0, 50.0, 50.0};
Nadaljnje delo Implementacija sistema na več osni robot Generiranje krmilnega algoritma z Matlabom: - Simulink - RT Toolbox - avtomatsko generiranje C kode
Hvala za pozornost! Mnenja vprašanja diskusija ….