Parking of robots in Remotely-operated laboratory

From RoboWiki
Revision as of 00:36, 14 June 2013 by Robot (talk | contribs)
Jump to: navigation, search

Parkovanie - vyhýbanie sa prekážkam pomocou schemas

V Jave som začal písať program na vytváranie schémy. Keď to virtuálne otestujem, prepíšem to do C++.

Rozpracovaný projekt na stiahnutie: http://www.st.fmph.uniba.sk/~galan2/ai/parkovanie.zip

- Je možné mať rôzne rozlíšenie pracovnej matice od vonkajšieho prostredia (fotografie).

- Každé políčko má vektor (uhol a silu), destinácia bude asi priťahovať každé políčko rovnakou silou, antigravitácia od priekážkok bude asi závisieť od vzdialenosti.

Prikladám test výpis uhlov časti matice, DESTIN1 je destinacia (to bude miesto, ktoré bude pred parkovacím boxom), OBSTAC1 je prekážka:

0030,00|0030,00|0028,50|0026,57|0025,23|0024,58|0024,50|0024,54|0024,27|0023,43|0022,10|0020,72|0019,81|0019,70|0020,43|
0030,00|0029,58|0027,20|0025,37|0024,47|0024,74|0025,84|0026,88|0027,02|0025,82|0023,44|0020,69|0018,63|0017,89|0018,44|
0030,00|0028,54|0026,09|0024,32|0024,05|0025,89|0028,99|0031,54|0032,28|0030,52|0026,32|0021,22|0017,43|0015,97|0016,47|
0030,00|0027,73|0025,11|0023,21|0023,53|0027,99|0034,28|0038,65|0040,20|0037,98|0030,68|0021,31|0015,31|0013,57|0014,48|
0030,00|0027,19|0024,33|0021,84|0021,55|0030,71|0041,89|0046,81|0049,30|0048,57|0036,21|0017,49|0010,80|0010,67|0012,75|
0030,00|0027,00|0024,00|0021,00|0018,00|DESTIN1|0048,00|0051,00|0054,00|0057,00|OBSTAC1|0003,00|0006,00|0009,00|0012,00|
0030,00|0027,19|0024,33|0021,84|0021,55|0030,71|0041,89|0046,81|0049,30|0048,57|0036,21|0017,49|0010,80|0010,67|0012,75|
0030,00|0027,73|0025,11|0023,21|0023,53|0027,99|0034,28|0038,65|0040,20|0037,98|0030,68|0021,31|0015,31|0013,57|0014,48|
0030,00|0028,54|0026,09|0024,32|0024,05|0025,89|0028,99|0031,54|0032,28|0030,52|0026,32|0021,22|0017,43|0015,97|0016,47|
0030,00|0029,58|0027,20|0025,37|0024,47|0024,74|0025,84|0026,88|0027,02|0025,82|0023,44|0020,69|0018,63|0017,89|0018,44|
0030,00|0030,00|0028,50|0026,57|0025,23|0024,58|0024,50|0024,54|0024,27|0023,43|0022,10|0020,72|0019,81|0019,70|0020,43|

+135,00|+141,34|+150,59|+163,08|+178,10|-165,36|-148,98|-134,26|-122,03|-112,62|-106,32|-103,36|-103,38|-105,23|-107,50|
+128,66|+135,32|+146,11|+160,74|+179,26|-160,09|-140,34|-123,49|-109,83|-099,16|-091,81|-088,72|-090,16|-094,54|-099,27|
+120,96|+127,85|+138,97|+155,55|+178,44|-155,53|-132,17|-113,84|-099,36|-087,26|-077,79|-073,46|-076,25|-083,96|-091,69|
+111,80|+117,74|+127,73|+144,83|+172,78|-152,66|-124,50|-105,88|-092,04|-078,74|-065,22|-057,84|-062,92|-075,64|-086,40|
+101,31|+104,84|+111,12|+123,87|+153,48|-152,00|-113,85|-098,51|-088,92|-076,99|-054,33|-040,59|-055,15|-074,98|-085,67|
+090,00|+090,00|+090,00|+090,00|+090,00|DESTIN1|-090,00|-090,00|-090,00|-090,00|OBSTAC1|-090,00|-090,00|-090,00|-090,00|
+078,69|+075,16|+068,88|+056,13|+026,52|-028,00|-066,15|-081,49|-091,08|-103,01|-125,67|-139,41|-124,85|-105,02|-094,33|
+068,20|+062,26|+052,27|+035,17|+007,22|-027,34|-055,50|-074,12|-087,96|-101,26|-114,78|-122,16|-117,08|-104,36|-093,60|
+059,04|+052,15|+041,03|+024,45|+001,56|-024,47|-047,83|-066,16|-080,64|-092,74|-102,21|-106,54|-103,75|-096,04|-088,31|
+051,34|+044,68|+033,89|+019,26|+000,74|-019,91|-039,66|-056,51|-070,17|-080,84|-088,19|-091,28|-089,84|-085,46|-080,73|
+045,00|+038,66|+029,41|+016,92|+001,90|-014,64|-031,02|-045,74|-057,97|-067,38|-073,68|-076,64|-076,62|-074,77|-072,50|

Červená bodka je destinácia, modrá prekážka. Je možné mať veľa týchto bodov.

Bude potrebné špecifikovať polomer prekážky (nejaký offset zaciatku posobenia gravitacie), keďže bod je iba bod. Alebo prekážka bude pokrytá viacerými bodmi (môže byť náročné na výpočet).

Pozn: obr. reprezentuje iné dáta ako vyššie

Viz2.png

Rospoznávanie pozície robotov - Je naprogramované (rozpoznávanie kruhov)

Rozpoznávanie orientácie šípky

Princíp: ANN, pri učení zrejme 360 dvojíc vstup(obr)-výstup(uhol v °) - (kolko podobnych obr treba na dobre natrenovanie kazdeho stupna?)

- asi bude potrebné odfiltrovať zbytočné dáta (farba, neostré hrany)

Knižnica FANN s príkladom XOR: http://leenissen.dk/fann/wp/help/getting-started/

Príklad pattern recognition: http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html#Pattern%20Recognition%20-%20an%20example

Predtým, ako sa pustím do programovania v C++, Vyskúšal som Java Neural Network Framework, ktorý je veľmi jednoduchý na používanie: http://neuroph.sourceforge.net/image_recognition.html

Testovanie 90° šípky pro trénovaní s viac-menenej defaultnými parametrami vyšlo takto:

Stupne : output

180 : 0,0062

135 : 0,0089

0 : 0,0341

45 : 0,0332

225 : 0,01

90 : 0,8841

315 : 0,017

270 : 0,068


JavaNeuralNetworkimg1.png

JavaNeuralNetworkimg2.png