Una campagna di
Vincenzo D'AlconzoContattiInserisci il tuo indirizzo email: ti invieremo una nuova password, che potrai cambiare dopo il primo accesso.
Controlla la tua casella email: ti abbiamo inviato un messaggio con la tua nuova password.
Potrai modificarla una volta effettuato il login.
Scegli la somma con cui vuoi sostenere il progetto e il sistema di pagamento che preferisci tra quelli disponibili. L’autore del progetto riceverà subito la tua donazione.
Scopo di vita del robot:
il robot ha un semplice scopo: irrigare le piante in giardini/verande all aperto.
Irrigazione:
Funziona in due modalità.
La prima è l'irrigazione programmata, ovvero innaffia le piante designate dall utente a intervalli regolari (una volta al giorno, una volta ogni 2 giorni ecc...). In questa modalità la pianta è individuata esclusivamente tramite la sua posizione relativamente alla mappa che il robot ha creato.
Scegliere quali piante/zone irrigare è una questione di punta e clicca, come nei videogiochi. Infatti la mappa può essere visualizzata e utilizzata tramite un normale pc/tablet/smartphone. Il software di gestione è nel robot stesso e puo essere raggiunto da un normale browser.
Se la pianta si trova in un punto difficile da avvicinare, si puo contare sul fatto che il robot innaffia tramite un ugello regolabile(dal robot stesso) per avere un getto stretto ma di lunga portata.
La seconda modalità è l'irrigazione assistita da 'localizzatori'. I localizzatori altro non sono che dei paletti con una figura unica e distinguibile che permette al software di riconoscimento visuale di localizzare con molta precisione la pianta. In tal modo è possibile far irrigare dal robot anche piccoli vasi senza rischio di bagnare il pavimento.
Software di riconoscimento visuale.
Il nucleo del software che permette al robot di creare una mappa del giardino e localizzare i luoghi/piante da irrigare è già pronto e funzionante. Infatti è il risultato di 3 anni di un mio lavoro per creare un software di riconoscimento biometrico. Mi fu chiesto di sviluppare un software che permettesse di riconoscere l'identità dei dipendenti dell'azienda per cui lavoravo tramite una semplice telecamera. All'epoca (si parla di 7 anni fa) non c'era molto in giro che funzionasse cosi bene da affidagli il compito di timbrare i cartellini... Cosi, dopo aver provato alcuni algoritmi già esistenti, provai a crearne uno tutto mio. Stranamente l'ispirazione mi venne osservando un bimbo che tentava di ricopiare un disegno mettendolo dietro al foglio bianco e su una finestra in modo da riuscire, grazie alla luce proveniente dalla finestra, a ricalcare le linee del disegno originale. E' un po quello che fa il software che ho creato. Ha funzionato per 3 anni riconoscendo e segnando gli orari di entrata uscita dei dipendenti. E nessuno mi ha denunciato ;)
Data la natura dell'algoritmo, esso si presta a riconoscere qualsiasi tipo di forma. Nel caso dei visi umani il 'training' è una semplice ripresa di una trentina di fotogrammi. Il software poi, durante l'utilizzo, decide quali sono i migliori fotogrammi da utilizzare per un training automatico che avviene continuamente. Questo serve a 'seguire' i cambiamenti che avvengono nell oggetto/persona. Per esempio i dipendenti maschi dell azienda per cui ho lavorato venivano riconosciuti anche quando la barba cresceva, o quando cresceva la chioma... Il software che ho creato NON utilizza in modo esplicito la posizione degli occhi/bocca/naso ecc.(come fanno molti software) per ricavare l'identità. E' basato su un algoritmo molto più generalista ed è per questo che non funziona solo con visi umani.
Infatti come esperimento provai a creare un motori di ricerca per immagini/disegni in internet.
Individuava con facilità qualsiasi forma. Per esempio la cabina del Doctor Who (un telefilm di fantascienza...) fu trovata in piu di mille siti. Individuava qualsiasi marchio, panorami... Non ho mai messo online questo motore di ricerca poichè lo spider per scannerizzare internet era eccessivamente avido di risorse, sia di memoria di massa che di capacità computazionale.
Tecnologie hardware:
Sistema hardware centrale:
L'hardware sarebbe composto da un mini pc abbinato a Raspberry.
Accelerometro 3D, giroscopio e bussola.
Il minipc deve essere abbastanza potente (un quadcore compatto) da supportare il software di riconoscimento visuale.
Raspberry serve per il controllo dei motori per la movimentazione e per l'ugello di irrigazione.
I sensori (accelerometro e giroscopio) servono per tenere conto della pendenza in cui si trova il robot(giroscopio) e come ausilio allo spostamento sul terreno(accelerometro).
La bussola serve come ausilio al software di riconoscimento visuale in zone povere di dettagli visivi.
Meccanica e telaio.
Il robot avrebbe l'aspetto di un piccolo carro armato... il suo cannone sarebbe l'ugello per irrigare.
Devo ancora decidere se utilizzare ruote o cingoli, dipende dai test reali. L'ugello non voglio motorizzarlo, per evitare di avere un motore e meccanca in più, che possono guastarsi.
Meno roba c'è meno roba si guasta ;)
Semplicemente l'ugello/cannone punterebbe sempre in avanti e la posizione dove irrigare verrebbe variata in base alla potenza del getto ed alla rotazione dell'intero robot.
Infatti non dimentichiamo che il robot deve essere assolutamente resistente all'acqua. E la motorizzazione dell ugello comporterebbe la creazione di fessure da cui potrebbe filtrare acqua.
Tutto il materiale necessario è disponibile in un qualsiasi ecommerce di modellistica, quindi motori passo passo, regolatori, moto-riduttori, batterie LiPo ecc.
Il telaio verrà construito in alluminio, per contenere il peso. Mentre la carena verrebbe fatta in vetroresina (almeno per il prototipo).
Sistemi di visione.
Serve una telecamera con obiettivo a 'occhio di pesce' per poter inquadrare il terreno circostante senza necessita di motorizzare la telecamera. E' proprio l'immagine grandangolare ripresa da questa telecamera che verrebbe inviata al software di riconoscimento visuale.
Serve anche un Kinect (telecamera della microsoft che crea una mappa 3D dell ambiente circostante, usata con Xbox) come ausilio alla telecamera principale per capire le pendenze del terreno, in modo da evitare che il robot si avventuri in sentieri con troppa pendenza.
Al proposito, ho dimenticato di dire che anche i sentieri che il robot può utilizzare per spostarsi possono essere scelti dall utente nella mappa di cui ho parlato prima.
Software di gestione:
Il software di gestione verrà implementato mediante tecnologia WebApi/AngularJs, ed esposto nella rete intranet/internet da un server http (IIS) o https (connessione criptata) per internet.
Il risultato sarà quello di un moderno sito web di facile utilizzo.
Si vedrà la mappa creata dal robot sulla quale scegliere i luoghi/piante da irrigare e i sentieri da utilizzare, nonche le zone vietate al robot.
Il controllo del robot tramite internet si avvarrà del supporto del cloud per le problematiche connesse all'ip dinamico.
Funzionamento del robot.
Il robot si rifornirebbe di acqua da una vasca (piu o meno piccola, a seconda delle necessità) in cui pescherebbe l'acqua grazie ad un tubo retrattile.
Non è necessario che la vasca sia dedicata esclusivamente al robot. Infatti il robot riconoscerebbe il punto di raccolta acqua grazie ad un cartello (come quello per i vasi) apposito. Questo cartello deve essere posizionato al bordo della vasca/laghetto/altro.
Progetto di Sviluppo e Test. (ne scrivo una parte, sia per ovvie questioni di riservatezza sia perchè non mi basterebbe lo spazio a disposizione)
Data la natura sperimentale di questo progetto, alcune scelte possono essere fatte solo con la sperimentazione reale. Avendo il software di riconoscimento visuale già pronto non mi resta che creare un prototipo e .... sperimentare!
I test li farei in un piccolo giardino creato appositamente. Ho a disposizione un terreno di mezzo ettaro, quindi più che sufficiente per creare un ambiente di test. Verrebbe creato un piccolo recinto di 5 metri per 5, ricreando tutte le possibili condizioni. Quindi creando artificialmente discese/salite, piante collocate in zone non accessibili da vicino ecc.
Un abstract del progetto di sviluppo:
...
...
Fase di setup:
1) Costruzione di un prototipo senza ugello di irrigazione. Quindi costruzione di una piattaforma in alluminio su cui posizionare il minipc, il raspberry, la batteria i motori, le ruote (inizialmente scelgo le ruote) e i sensori. Questo mi permetterà di fare il setup dei motori e la creazione di un firmware per la movimentazione di base del robot. Con movimentazione di base intendo la capacità del veicolo di ricevere comandi del tipo avanza di 1 metro cm in avanti, in dietro, gira a destra ecc.
2) Costruzione del recinto con solo alcune piante, senza discese/salite. Questo mi serve per testare il software di riconoscimento visuale nel riconoscere le varie zone del recinto. Il robot verrà programmato per eseguire una fase di 'imprinting'.
a) Posizionato in un punto qualsiasi del recinto memorizzerà l'ambiente. Ruoterà di 45 gradi(parametro variabile) e quindi memorizzerà di nuovo l'ambiente. Ripeterà queste azioni fino a tornare alla posizione(angolo) di partenza.
b) Ruoterà di un angolo casuale e il software di riconoscimento visivo calcolerà l'angolo presunto in base alle immagini memorizzate nel punto 1. Confronta l'angolo presunto con quello rilevato dai sensori (bussola + giroscopio). Calcola l'errore. Se l'errore è contenuto entro certi parametri prosegue fino ad un certo numero di posizioni casuali (parametro variabile).
c) Si sposta in un altro punto (a caso) del terreno e ripete dal passo "a"
(mi fermo qui con i dettagli piu tecnici)
....
....
Fine del abstract.
Possibili evoluzioni.
Concimazione.
La piu ovvia e facile che mi viene in mente è l'uso di acqua con concimi o altro per alcune piante (scelte sempre dal software di gestione dall'utente). Grazie ad un cartellino speciale verrebbe individuata una vasca contenente acqua con concime per esempio. Da testare eventuali problemi di corrosione dell'ugello.
Videosorveglianza
Si comunicherebbe al robot che alcuni punti da raggiungere non sono da irrigare ma solo da sorvegliare memorizzando il video. Richiederebbe solo un intervento al software di gestione.
Spaventapasseri.
Spero che non esca cosi brutto.. ma magari, con un piccolo altoparlante, potrebbe fungere da spaventapasseri per alberi da frutto per esempio;)
Commenti (0)