Intercettare una pallina?

Salve a tutti, mi sono messo in testa di creare un robot in grado di giocare a ping pong. Ovviamente per me è già tanto se questo riesce a colpire la pallina anche mandandola chissà dove… Ma come inizio va bene. Per quanto riguarda il braccio ed i movimenti non ho alcun problema… ma come faccio a capire dove sta andando la pallina? Esistono sensori particolari, posso fare tutto da Arduino (anche diverse schede che si suddividono i compiti) oppure è molto più semplice utilizzare un computer e lasciare ad Arduino il solo compito di gestire il braccio?
Ovviamente è più semplice avere un computer come intermedio… Utilizzando opencv potrei determinare la posizione della pallina è di conseguenza offrire ad Arduino due coordinate X e Y per il braccio

E' un progetto ambizioso, non ho mai sentito parlare di opencv, ma se la conosci meglio per te.

Dico la mia opinione anche se non ho mai fatto niente del genere con le immagini, per me occorre un computer che scatti foto in sequenza molto rapida, e dalle singole immagini ricavi la posizione della pallina, arduino non ha la potenza di calcolo necessaria, ne per scattare le foto ne per elaborarne in brevissimo tempo.

Visto che si necessita di un computer non ha senso lasciare grosse elaborazioni a una o più schede arduino, anche per la gestione del robot il computer elabora e arduino fa da interfaccia tra computer e motori, magari controllando solo un motore alla volta ricevendo dati dal computer.

Anche in campo industriale si hanno gestioni e elaborazioni più semplice gestite da PLC "simile a arduino nelle potenzialità" per elaborazioni più complesse si usano computer industriali o cnc abbinate a un PLC.

TimoFran: Salve a tutti, mi sono messo in testa di creare un robot in grado di giocare a ping pong.

Puoi usare una CMUCAM5, è in grado di seguire una pallina da ping pong, a patto che non sia molto veloce (guarda questo video a partire da 3' 34s), e fornisce ad Arduino la sua posizione, solo X, Y e la dimensione apparente, però rimane da risolvere la questione di Z (profondità) che puoi ricavare, con ampio errore, dalla dimensione apparente visto che la dimensione della pallina è una costante nota. Però la vedo molto dura, se non impossibile, fare tutta la cinematica inversa, in tempo reale, per far muovere un braccio robot al fine di fargli colpire la pallina, con Arduino, come minimo devi andare su una Teensy 3.2, meglio ancora una raspberry. Nel problema specifico con le opencv non ci fai molto se non usi una camera ad alta velocità, almeno 100 fps, che da sola costa molto di più della CMUCAM5. Esempio di un test tracking, che ho fatto l'anno scorso, di un oggetto monocromatico con la CMUCAM5, Arduino che riceve la posizione nello spazio dell'oggetto e muove i servo per tenere la camera centrata sull'oggetto.

per farlo giocare a ping-pong, ti servirebbe una cosa come questa ... ;)

https://www.youtube.com/watch?v=UdlSvtUInu0

Forse usando una racchetta enorme... :grin:

Pensavo di creare un reticolato immaginario, il computer stabilisce in quale quadrato di questo reticolo si trova la pallina, quindi fornisce ad arduino la posizione da assumere.

Ti stai scordando di un importante "dettaglio", la pallina si muove in uno spazio tridimensionale, il reticolo è uno spazio bidimensionale e una singola telecamera è un dispositivo di acquisizione bidimensionale.

paulus1969: Forse usando una racchetta enorme... :grin:

... eh, no, troppo comodo ... :P :P :P :D

Basta usare un Arduino Grande come racchetta :D

|500x375

Oltre che intercettare la palla, si dovrebbe anche cercare di inviarla sul campo avversario. Anche se ti accontenti solo di colpirla, è tutt'altro che banale. La pallina spesso ha anche una rotazione, cosa che complica il calcolo delle traiettorie e dei rimbalzi. Non dirò ora che avresti risultati migliori mettendo un lato del tavolo accostato ad una parete, capisco che non è tanto il risultato che vuoi, quanto il piacere di fare da te qualcosa di complicato. Ma guarda il video del tracker realizzato da Astrobeed, nota i ritardi nel posizionamento... immagina ora un sistema in grado di spostare una racchetta in modo da coprire lo spazio interessato alle possibili traiettorie di una pallina (il sistema fra l'altro dovrebbe spostarsi lungo 3 assi, variare l'inclinazione della racchetta, imprimere un colpo alla pallina.... insomma abbastanza complesso, ma per ora immagina solo un sistema che risponde da "fondo campo" con un semplice movimento su due assi, racchetta con superficie sempre perpendicolare al tavolo e semplice rimbalzo sulla racchetta). Pensa all'inerzia che avrebbe un simile meccanismo.

Arduino Grande piú racchetta gigante e gli fai muovere la racchetta in continuazione alla massima velocità :D

Se non ricordo male la CMUCAM5 segue un oggetto colorato, colore che non deve essere presente nello sfondo. Non c'è un riconoscimento di forme ma solo del colore. Il tutto in una schedina di piccole dimensioni.

Il riconoscimento è anche sulla forma, previo learning, vale solo per forme semplici con pochi lati. Ovviamente lo sfondo deve essere ad alto contrasto con il colore scelto come riferimento, però non è necessario che sia omogeneo.

La wiki sostiene che si basa solo sul colore, più precisamente la componente hue.

Pixy uses a color-based filtering algorithm to detect objects.

Anche nel filmato si vede bene che il riconoscimento si basa solo sul colore.

A meno che abbiano aggiornato il firmware diversamente.

Il riconoscimento di base è sul colore, ma c'è anche quello sulle forme, ripeto molto semplice e serve un apposito learning, tocca aggiornare il firmware all'ultima versione.

https://www.youtube.com/watch?v=imVNg9j7rvU Chiama lui che ti può aiutare. è un anno che ci sto pensando.. se riesci batti un colpo

Che spettacolo :D

Gian70Luca: https://www.youtube.com/watch?v=imVNg9j7rvU Chiama lui che ti può aiutare. è un anno che ci sto pensando.. se riesci batti un colpo

Tutto questo lavoro solo per avere "qualcuno" con cui giocare a ping pong :D

Ahahah, in effetti si fa prima a chiamare un amico :) Se era un robot imbattibile sarebbe stato un allenamento, ma non sembra fortissimo

Sara’ un’impressione, ma quelle palline, come inerzia, rimbalzo e “ciocco” che fanno, mi sembrano piu di plastica piena, che palline da pingpong … :stuck_out_tongue: :smiley: