Buon giorno a tutti, dopo aver risolto i primi problemi con i driver dei motori, l'edge detection e aver lavorato con un po' di sensori differenti, mi è venuta la malsana idea di completare il robot implementando una sorta di human following, cioè un riconoscimento da parte dei sensori di un uomo in movimento e conseguente spostamento dietro i suoi passi. Le problematiche non sono poche, ho pensato a varie soluzioni ma nessuna è sembrata adeguata, perchè pensavo di usarlo all'esterno, cioè in un ambiente "avverso" a tutti i sensori che possiamo montare.
-
Sensori IR Sharp: ne ho due, riesco a fare object tracking abbastanza bene, ma outdoor ci sono tante cose che possono essere rilevate, con conseguente errore di direzione.
-
Libreria IRremote con ricevitore IR 38khz, quello dei telecomandi (con trasmettitore sulla persona e ricevitore su arduino), il range è buono e funziona, ma arduino riceverebbe il segnale anche se la persona fosse di fianco o dietro, non posso rilevare la giusta posizione.
-
Sensore Ping))) ad ultrasuorni, vedi sopra, troppo ostacoli, non saprebbe come discriminare.
Ci sono altre soluzioni (eventualmente con un apparato da tenere in tasca o trasmettitore di qualche tipo) per far sì che il robot riesca a percepire la presenza della persona in questione e non confonderla con il resto dell'ambiente con una precisione discreta?
syn
Allora, secondo me per fare una cosa precisa avresti bisogno di un embedded computer che a questo punto utilizza arduino meramente com e una input output, sopra l'ec fai girare un qualsiasi programma di computer vision e tracchi la persona con poco (trovi tutto gia fatto vedi roborealm). Se ti vuoi limitare ad arduino con due ultrasonici montati su servo puoi sentire la persona passare davanti al robot, inquadrarla con i due sensori e determinare la sua posizione tramite triangolazione trigonometrica, e seguire la persona. Non so quanto possa venire preciso (dipende da quanto sei un bravo coder).
Grazie gbm della risposta... Io vorrei evitare l'uso di un embedded, per usare solo arduino e mantenere ridotte le dimensioni del robot. L'ultilizzo dei sensori ultrasonici è una buona idea, l'unico problema è che se il robot perde il target anche solo per poco (è normale, per camminare una persona alza i piedi etc.) è molto probabile che riprenda un target diverso (sbagliato!) come un'altra persona o un ostacolo per strada, cambiando completamente rotta...
Non trovo soluzioni purtroppo 
puoi usare la tecnologia RFID o un emettitore di qualche tipo, per esempio un altro arduino che pilota un ultrasonico che lavora come emettitore e sul robot un ricevitore (lo puoi fare anche con un sistema ir, vedi telecomandi)
Dici che se implemento un sistema IR a 38khz riesco ad avere una buona precisione? Quando ho fatto esperimenti con i telecomandi e arduino, il mio sensore IR rilevava il tasto premuto praticamente a qualsiasi distanza e angolazione, forse i telecomandi hanno molta potenza, vedo se riesco a fare un circuito con portata limitata (qualche decina di cm) e in linea retta, così sa di preciso dove si trova la persona...
calcola pero' che questo sistema perdera' efficienza di giorno, vista l'interferenza dei raggi solari. Di notte funzionerà da dio.
Se uso un IR Led e un fototransistor l'influenza dei raggi solari è determinante ma con i moduli integrati come pna4602 dovrei avere una buona risposta, perchè se non sbaglio filtra i segnali a quella determinata frequenza (38khz)...
syn