Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:agrigore:lemmepaint [2021/05/30 17:54]
anton_fabian.patras
pm:prj2021:agrigore:lemmepaint [2021/05/30 19:02] (current)
anton_fabian.patras
Line 17: Line 17:
  
 ===== Hardware Design===== ===== Hardware Design=====
 +
 +**Schema hardware**
 +
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_schematic.jpg?​800|}}
  
 Pentru conectarea unui senzor am folosit doua fire cu 3 cabluri fecare din care am folosit cate doua fire de la fiecare. ​ Pentru conectarea unui senzor am folosit doua fire cu 3 cabluri fecare din care am folosit cate doua fire de la fiecare. ​
  
-{{:​pm:​prj2021:​agrigore:​lemme_paint_one_sensor_jumpers.jpeg?​600|}}+{{:​pm:​prj2021:​agrigore:​lemme_paint_one_sensor_jumpers.jpeg?​500|}}
  
 +Breadboardul unde sunt facute conexiunile
  
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_overview_1.jpeg?​500|}}
  
 +
 +Vederea de sus a zonei unde se plaseaza obectul cu care se va desena (aici un cub Rubik cu latura de apx 5,5 cm)
 +
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_playground_with_obj.jpeg?​600|}}
 +
 +Vederea de ansamblu al proiectului
 +
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_overview_2_both_axes.jpeg?​600|}}
  
  
Line 64: Line 78:
       * Se efectuaza cate o masuratoare bruta cu toti cei 5 senzori, iar apoi se trece la urmatorul pas unde se efectueaza masuratori brute cu fiecare senzor       * Se efectuaza cate o masuratoare bruta cu toti cei 5 senzori, iar apoi se trece la urmatorul pas unde se efectueaza masuratori brute cu fiecare senzor
       * Cand se efectueaza 5 masuratori brute, fiecare vector care contine cele 5 masuratori brute ale fiecarui senzor sunt sortate folosind o sortare eficienta inspirata de [[https://​dlacko.org/​blog/​2016/​01/​24/​remove-impulse-noise-from-ultrasonic/​|aici]]       * Cand se efectueaza 5 masuratori brute, fiecare vector care contine cele 5 masuratori brute ale fiecarui senzor sunt sortate folosind o sortare eficienta inspirata de [[https://​dlacko.org/​blog/​2016/​01/​24/​remove-impulse-noise-from-ultrasonic/​|aici]]
-      ​TODO: poza linie dreapta ​doar cu mediana+ 
 +** Poza cu incercarea de trasare a unei linii drepte folosind ​doar masuratori filtrare ​cu mediana ​** 
 + 
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_only_median_line.jpeg?​300|}} 
       * Nu este suficient de stabil sa folosesc doar filtrul cu mediana. O voi pastra pentru sanitizeaza destul de bine citirile brute. ​       * Nu este suficient de stabil sa folosesc doar filtrul cu mediana. O voi pastra pentru sanitizeaza destul de bine citirile brute. ​
       * Am incercat sa aplicat doua filtre ale medianei unul peste celalalt dar asta ar insemna 125 de masuratori brute de senzor ceea ce nu este de dorit. Rezultatele nu sunt astronomic mai bune, iar timpul necesar calcularii pozitiei este foarte mare (~ 1-2 masuratori pe secunda ''​yuck''​)       * Am incercat sa aplicat doua filtre ale medianei unul peste celalalt dar asta ar insemna 125 de masuratori brute de senzor ceea ce nu este de dorit. Rezultatele nu sunt astronomic mai bune, iar timpul necesar calcularii pozitiei este foarte mare (~ 1-2 masuratori pe secunda ''​yuck''​)
Line 72: Line 90:
       * Am introdus un filtru Kalman pentru fiecare senzor in parte deoarece o masuratoare nu depinde de alta       * Am introdus un filtru Kalman pentru fiecare senzor in parte deoarece o masuratoare nu depinde de alta
       * Dupa ce se filtreaza masuratorile fiecarui sezor se ia minimul pe axe pentru determinarea coordonatelor       * Dupa ce se filtreaza masuratorile fiecarui sezor se ia minimul pe axe pentru determinarea coordonatelor
 +
 +** Aceasi incercare ca mai sus, doar ca de data asta avem filtru cu mediana si un filtru kalman **
 +** se poate observa ca linia este considerabil mai dreapta (din cauza filtrului kalman aplicat pe masuratori),​ dar mai sunt erori unde punctul determinat cu minimul dintre masuratori ''​sare''​ **
 +
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_median_one_kalman_line.jpeg?​300|}}
 +
       * Aceste coordonate intermediare suntr introduse in alt filtru kalman independent pe x si pe y.       * Aceste coordonate intermediare suntr introduse in alt filtru kalman independent pe x si pe y.
       * Acest al doilea filtru kalman este introdus pentru ca atunci cand minimul unui filtru se schimba de pe un senzor pe altul sa nu existe schimbari bruste reflectate in punctul desenat.       * Acest al doilea filtru kalman este introdus pentru ca atunci cand minimul unui filtru se schimba de pe un senzor pe altul sa nu existe schimbari bruste reflectate in punctul desenat.
       * Cand se schimba obiectul din campul de masurare al unui senzor in campul de masurare al altui senzor (de pe ac axa) rezultatul final nu ar trebui sa fie foarte diferit. De aceea este folosit si cel de-al doilea filtru Kalman pe pozitia finala       * Cand se schimba obiectul din campul de masurare al unui senzor in campul de masurare al altui senzor (de pe ac axa) rezultatul final nu ar trebui sa fie foarte diferit. De aceea este folosit si cel de-al doilea filtru Kalman pe pozitia finala
       * Rezultatul celui de-al doilea filtru Kalman este pozitia finala       * Rezultatul celui de-al doilea filtru Kalman este pozitia finala
 +
 +
 +** Aici se poate vedea efectul celui de-ai doilea filtru kalman aplicat pe pozitia finala determinata (acea dâră din dreapta jos este datorata calibrarii initiale ale filtrului) **
 +
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_median_two_kalman_line.jpeg?​300|}}
 +
 ===== Rezultate obtinute ===== ===== Rezultate obtinute =====
-Vederea de sus a zonei unde se plaseaza obectul cu care se va desena (aici un cub Rubik cu latura de apx 5,5 cm) 
  
-{{:​pm:​prj2021:​agrigore:​lemme_paint_playground_with_obj.jpeg?​600|}}+Incercare de trasare a unu dreptunghi inainte si dupa filtrarea Kalman 
 + 
 +  * Inainte: 
 + 
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_only_median_early_noise.jpeg?​600|}} 
 + 
 +  * Dupa: 
 + 
 +{{:​pm:​prj2021:​agrigore:​lemme_paint_median_two_kalman_rectangle.jpeg?​600|}} 
 + 
 + 
 + 
 ===== Concluzii ===== ===== Concluzii =====
 +
 +  * Consider ca se poate incerca a se folosi pentru a se desena lucruri.
 +
 +
 ===== Download ===== ===== Download =====
 ===== Jurnal ===== ===== Jurnal =====
Line 116: Line 161:
     * poze, etc     * poze, etc
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +  * Filtru Kalman Wikipeadia [[https://​en.wikipedia.org/​wiki/​Kalman_filter|link]]
   * Filtrarea masuratorilor brute folosind mediana a 5 masuratori consecutive:​ [[https://​dlacko.org/​blog/​2016/​01/​24/​remove-impulse-noise-from-ultrasonic/​|link]]   * Filtrarea masuratorilor brute folosind mediana a 5 masuratori consecutive:​ [[https://​dlacko.org/​blog/​2016/​01/​24/​remove-impulse-noise-from-ultrasonic/​|link]]
   * Implementare minimalista a unui filtru Kalman pentru un sistem cu o variabila o variabila: [[https://​github.com/​rizkymille/​ultrasonic-hc-sr04-kalman-filter/​blob/​master/​hc-sr04_kalman_filter/​hc-sr04_kalman_filter.ino|link]]   * Implementare minimalista a unui filtru Kalman pentru un sistem cu o variabila o variabila: [[https://​github.com/​rizkymille/​ultrasonic-hc-sr04-kalman-filter/​blob/​master/​hc-sr04_kalman_filter/​hc-sr04_kalman_filter.ino|link]]
 +  * More Kalman stuff [[https://​www.kalmanfilter.net/​default.aspx|link]]
 +  * Conectare ecran [[https://​randomnerdtutorials.com/​guide-to-1-8-tft-display-with-arduino/​|link]]
pm/prj2021/agrigore/lemmepaint.1622386485.txt.gz · Last modified: 2021/05/30 17:54 by anton_fabian.patras
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0