Come creare un "robot invisibile che segue la linea"?


10

Vorrei costruire un robot che segua un percorso virtuale (non un percorso visibile come una "linea nera su una superficie bianca", ecc.).

Sono solo entusiasta di vedere alcuni video di fantascienza che mostrano che i robot trasportano merci e materiali in un luogo affollato. E davvero non seguono una linea fisica. Percepiscono ostacoli, profondità, ecc.

Vorrei costruire uno di questi robot che segua un percorso specifico (virtuale) dal punto A al punto B.

Ho provato un paio di cose:

  1. Utilizzo di un sensore magnetico "effetto Hall" sul robot e filo che trasporta corrente (sotto il tavolo). Il problema qui era che la vicinanza del sensore ad effetto hall è così piccola (<2 cm) che è molto difficile giudicare se il robot è sulla linea o fuori dalla linea. Anche usando una serie di magneti non è stato possibile risolvere questo problema, poiché il mio tavolo ha uno spessore di 1 pollice. Quindi questa idea è fallita: P

  2. Usando una vernice ultravioletta (su una linea) e usando i LED UV sul robot come sensori. Questo darà più movimento Zig-Zag per il robot. E a causa delle potenziali minacce dell'utilizzo della sorgente di luce UV, anche questa idea è fallita: P

Alla fine ho pensato di avere una telecamera in cima e usare algoritmi di elaborazione delle immagini per vedere se il robot è in linea o divergente.

C'è qualche soluzione migliore di questa? Alla ricerca di soluzioni creative e semplici. :)


Conoscete i sensori del sonar e SLAM e le materie correlate? Spesso i robot non seguono un percorso predefinito e "percepiscono" gli ostacoli tramite sensori come il sonar, costruiscono una mappa e quindi usano gli algoritmi di pianificazione del percorso per trovare la loro strada.
Shahbaz,

Grazie per la risposta :) Sì, ho familiarità con i sensori a ultrasuoni e sonar ... in realtà voglio che un robot il mio robot si sposti dal punto A al punto B su un percorso specifico, e anche quello su un tavolo (3 piedi sopra il livello del suolo) ... E costruire una mappa in questo ambiente è davvero una cosa complicata ... Quindi qualche suggerimento ??
Nitin

4
Stavo rispondendo a questa domanda, ma ho notato che stai chiedendo 2 cose contraddittorie. Per "linea invisibile", intendi "una linea che non è visibile ad occhio nudo, ad esempio una linea definita da segnali magnetici o UV ", o intendi "una linea che esiste virtualmente - all'interno del robot - in base a dove vuole andare e gli ostacoli che rileva sulla strada "? Per dirlo in un altro modo, traccia la linea che il robot deve seguire o il robot la traccia?
Ian

Ciao lan, voglio un robot autonomo che dovrebbe navigare da solo da un punto all'altro. Per fare ciò ha bisogno di una linea o di un percorso di riferimento. Un robot seguace di linea è la soluzione più semplice ma sto cercando una soluzione avanzata e robusta. E potrebbe essere qualcosa di simile a una linea che non è visibile ad occhio nudo o una linea virtuale creata dal robot. Il robot non traccia la linea, segue solo. per dirlo in altro modo, la linea (virtuale) è definita da me. Almeno "Elaborazione delle immagini" potrebbe essere una soluzione se qualcos'altro non funziona. Ma sto cercando alcune soluzioni semplici :)
Nitin

@nitin, forse dovresti evitare di usare termini come "navigare da solo", perché ciò significa automaticamente che il percorso non è definito e viene lasciato al robot per trovarlo. Quello che vuoi sembra essere un robot che segue la linea e non ha la capacità di trovare la propria strada se non data indicazioni.
Shahbaz

Risposte:


3

Esistono molti modi possibili per affrontare questo problema e dipendono tutti dal materiale disponibile e dall'esperienza del costruttore di robot.

In breve, il criterio è che:

  1. Il robot deve passare dal punto A al punto B seguendo un percorso predefinito.
  2. Il percorso intrapreso non deve seguire una linea visibile all'occhio umano.

A seconda della lunghezza del percorso, l'uso di encoder potrebbe essere sufficiente. Tuttavia, va notato che a causa di inesattezze fisiche, la deriva rende impraticabile l'odometria (ciò che chiamiamo utilizzando encoder per misurare la distanza) per le lunghe distanze. Tuttavia, questo è facile per brevi distanze e dovrebbe essere almeno considerato.

Se la distanza è troppo lontana solo per l'odometria, si dovrebbe considerare di utilizzare un sensore per misurare le svolte (ad esempio un giroscopio o una bussola ). Le curve tendono a introdurre la maggior parte dell'errore nell'odometria (la misurazione lungo una linea retta non ha troppi errori), quindi l'uso di un sensore per le curve a volte può rendere l'odometria una soluzione praticabile.

Se l'odometria o l'odometria + la svolta rilevata non funzionano, allora diventiamo creativi. Se si desidera che il robot segua un percorso composto principalmente da segmenti diritti, è possibile posizionare i LED IR in corrispondenza di determinati "waypoint" sul tavolo e fare in modo che il robot rilevi quei LED e si diriga verso ciascun waypoint in serie.

Tuttavia, ciò lascia ancora alcuni segni visivi sul tavolo (anche se potrebbe essere mascherato in una certa misura), e sarebbe bello poterne fare a meno. Un altro approccio sarebbe quello di utilizzare i puntatori laser che brillano parallelamente alla superficie del tavolo, ma a pochi centimetri sopra il tavolo. Il robot potrebbe usare una fotoresistenza per rilevare quando attraversa un laser e questo potrebbe fargli sapere quando girare.

Tutto sommato, penso che l'odometria aumentata con un sensore angolare sia probabilmente la migliore scommessa per il tuo robot, almeno con il modo in cui l'hai descritta. Potrei essere in grado di pensare a più opzioni, ma è tutto ciò che vedo in questo momento.

Solo curioso: perché vuoi che la linea sia invisibile? Sapere perché potrebbe aprire alcune altre possibilità.


Grazie mille @anorton :) :) "Odometria" + "sensori come il giroscopio o la bussola": - Occhio di bue;) Sono sicuro, questo sarà sicuramente un allenamento. E rispetto alle tecniche di elaborazione delle immagini, questo sembra abbastanza facile. Sì, ho la soluzione, grazie :) Ti aggiornerò con i progressi del progetto e altre sfide affrontate.
Nitin

A proposito, il punto centrale di rendere invisibile la linea era: "Una linea nera in superficie e un robot che segue la linea" ora è solo una roba di livello di insegnamento di robotica di base. E ho scoperto che a livello industriale non è apprezzato. Le persone hanno bisogno di un robot altamente sofisticato e intelligente per svolgere il proprio lavoro. Quindi stavo lavorando a questo progetto per costruire un robot con maggiore stabilità e robustezza. Un robot che non è facilmente hackerabile. Per dirlo in altro modo, una persona comune non dovrebbe conoscere la tecnologia alla base del robot :)
Nitin

2

Anki utilizza sensori ottici nelle loro macchinine per implementare i seguaci di linea. I sensori ottici sono sensibili nella gamma IR. Il fatto che le linee non possano essere viste è facilmente spiegabile: le linee sono rivestite di colore nero che è trasparente nella gamma IR. I colori Paliogen nero L 86 o Paliogen nero S 84 di BASF sono tali colori. Se si posizionano codici a barre lungo le linee, è anche possibile ottenere informazioni di posizionamento assolute dai sensori ottici.


0

Ho una breve risposta per la tua domanda. Questo è solo per un robot abilitato ROS. Ci sono molti modi per farlo, ma è così che l'ho fatto. Ho usato ROS e Kuka Youbot. Potrebbe essere qualsiasi robot che utilizza ROS. È molto utile conoscere ROS se si prevede di essere in robotica.

Usa ROS Quindi usa GMapping per mappare il tuo ambiente. Esempio di stanza o corridoio e salva la mappa. Quindi usando RVIZ, indica la posizione dell'obiettivo sulla mappa.


0

Beh, non hai bisogno di nessuna linea per quella faccenda. L'unica cosa di cui avresti probabilmente bisogno sono le coordinate globali. se riesci a posizionare il tuo robot in un campo definito da coordinate globali e ad applicare semplici regole della fisica newtoniana, il robot può passare da un punto all'altro. Sulla base della sua posizione attuale, scoprirà l'angolo di sterzata attuale, l'angolo di sterzata desiderato e le coordinate dell'obiettivo (noto anche come "posa"). Una volta fornita una velocità al robot, inizierà a muoversi verso le coordinate dell'obiettivo. In ogni iterazione, ricalcola la sua posa e apporta le modifiche quando necessario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.