scusa ma se sei in giardino, hai piena ricettività GPS. E' in casa il vero problema dell'orientamento (da qui i costi di un Roomba, che per inciso ha elettronica e algoritmi estremamente più complicati di quanto prospettato dall'utente triac60), non certo all'aperto!
Con il GPS, con un semplice dato in arrivo sulla porta seriale, sai dove sei, in che direzione vai, e a che velocità ci stai andando, a costi relativamente ridotti (20-50 euro a seconda del fornitore e delle caratteristiche tecniche).
E' all'interno che questi dati non sono disponibili e bisogna ricavarli in modo indiritto (encoder su ruote, rilevazioni ottiche ecc ecc)
Una volta che sei vicinoo alla base (e l'errore tipico con un GPS è di 5-10 metri max, non ti aspettare certo i centimetri anche del migliore dei GPS al mondo), allora accenderai i ricevitori infrarossi, che ti consentiranno di raggiungere la base con precisione millimetrica. 5-10 metri è un range assolutamente accettabile per un fascio ad infrarossi (ovvio, servono opportuni diodi led trasmettitori)
Per questa parte, guarda come sono fatte le basi dei robot aspirapolveri e anche dei "muri virtuali" che alcuni produttori supportano.
Sono stretti fasci di infrarossi (normali diodi infrarossi da telecomando) orientati in una direzione (non importa troppo quale). Per renderli a fascio stretto, si usa semplicemente metterli dietro ad una fessura, in modo che passi solo una parte del fascio.
In sosntanza, giunto nei pressi della base, prendi una direzione (come se dovessi fare il giro intorno alla base per intenderci) e vai avanti pianto, aspetti di intercettare il fascio di infrarossi. Se non lo intercetti, torni indietro sui tuoi passi, prima o poi lo intercetti.
Quando lo intercetti, vai in quella direzione. Vai avanti (molto piano).
Appena smetti di intercettarlo, vuol dire che non sei esattametne in rotta verso la base.
Ti giri su te stesso finché non lo reintercetti (generalmente pochi gradi) e torni ad andare avanti pianto
Reiteri questa operazione finché non centri la base.
E' per questo che è indispensabile che il fascio sia potente ma relativamente stretto.
I led infrarossi non saranno accesi fissi, ma saranno modulati in frequenza, così il ricevitore potrà distinguere tra gli infrarossi della luce solare (fissi) da quelli emessi dalla base (modulati su una frequenza specifica)
Visto che con pochi centesimi si trovano ricevitori (fototransitor) che hanno già la parte di schermatura fisica (filtro che lascia passare solo gli infrarossi) e decodifica della portante (per distinguere Sole dalla base), ti consiglio vivamente di prendendere uno di questi e non reiventarti la ruota. Questi ricevitori sono molto affidabili (sono usati dalle TV per riconoscere il telecomando dalle altre fonti di luce infrarosse).
A proposito di telecomandi, potresti prendere in prestito uno dei protocolli standard dei telecomandi TV e mettere più di un fascio, Poi mettere più di un trasmettitore. Ad esempio il trasmettitore che trasmette in continuo "1" sai che è il fascio puntato diritto verso il davanti della base, quello che trasmette il "2" è a 45° a destra, quello che trasmette il 3 a 90°, quello che trasmette il 5 e il 6 idem ma speculari rispetto all' "1".
Così quando intercetti l'infrarosso, sai anche quale degli infrarossi hai intercettato e sai se ti stai avvicinando alla base da destra, sinistra, sotto ecc
Ricapitolando:
- posizione grossolana: GPS
- bordi + eventuali zone "off limits": GPS (grossolano, ad esempio per rallentare o accendere il rilevatore di campi magnetici solo in prossimità dei bordi)
- base IR: trasmette in più direzioni stretti fasci infrarossi codificati (non inventare la ruota, ci sono librerie arduino per simulare telecomandi!)
- ricevutori IR su robot: 4 ricevitori per TV messi a 90°, di quelli con decodifica della portante già integrata + una delle librerie per la decodifica dei telecomandi che trovi già fatta per Arduino.
Per tua fortuna, trovare una base in un giardino è un compito enormemente più facile che trovarla dentro una casa.
Ti consiglio vivamente di perdere qualche tempo a cercare su Google. Tutto quello che ho scritto si trovava facilmente con una manciata di minuti di ricerca. Non reinventare la ruota, documentati prima su come funzionano i prodotti in vendita, poi potrai fare tutte le varianti e migliorie e personalizzazioni che vuoi, ma parti dall'esperienza degli altri, altrimenti perdi centinaia di ore per scoprire che esiste l'acqua calda...
(EDIT, ho visto che nel tempo impiegato a scrivere altri hanno risposto, la mia risposta non tiene conto di quanto eventualmente appena scritto da altri)