Antiarbusto
04.04.2007, 01:08
Hallo,
mir fiel heute ein neuer Ansatz zur Positionserfassung mit Laser gekommen
der Bot hat zwei Linienlaser an Bord, der eine strahlt exakt horizontal ab, der andere etwas vertikal versetzt.
Eine Kamera nimmt das Bild nach vorne auf. Am besten klappt das in dunkle räumen oder halt alles per ir. Dann sollte sie lediglich diese beiden Linien sehen, der Rest ist schwarz.
Durch Vermessung des vertikalen Abstandes der beiden Linien kann der Bot die Entfernung dieses Punktes vermessen. Durch Bestimmung der horizontalen Position im Bild, den Winkel.
Nun setzt der Bot virtuell in einem bestimmten Abstand (Real-Abstand, nicht Bild-Abstand) Punkte.
Stellen wo beide Linien zweimal kurz nacheinander unterbrochen sind (z.b. Stuhlbeine) werden bei der Weiterfahrt in Echtzeit verfolgt und durch den nun anderen Winkel, neu vermessen und mit virtuellen Punkten zusätzlich versehen.
Dadurch entsteht im Kopf des Roboters eine sehr genaue Karte, bis wohin er fahren darf.
Sollte man ihn bewegen, ohne das er die Position mitverfolgen kann, wäre er quasi blind und müsste den Raum neu scannen. Das ist der Haken an der Geschichte. Vielleicht sollte er darum eine Ladestation, die er an der besonderen Form erkennt, und selbstständig dorthin fährt, haben, sodass man ihn nicht versetzen muss.
Wenn der Roboter eine Ecke findet, die zu beiden Seiten an Fläche mehr als x meter hat (z.b. Schrankecke oder Wandecke) So speichert er diese gesonderten ab. Sollte er nun laut Karte an einen Punkt kommen, wo er diese Ecke sehen kann, so dreht und schiebt er seine Position auf der Karte wieder dahin, wo er laut Kreuzpeilung zwischen zwei markanten, gespeicherten und erkannten Punkten ist.
Zur Pfaderstellung:
Der Bot kennt nun die Abmeßungen des Raumes, mit allen Hindernissen und orten die err umfahren muss.
Der Bot erstellt nun einen Zickzack-Pfad mit einer gewissen Überlappung, der genausogroß ist, wie das virtuelle Viereck, das der Roboter um die jeweils äußersten Punkte legt.
Nun nimmt er sich einen definierten Abschnitt, z.b. die ersten 5 cm vor, und überprüft, ob in der gesamten Gerätebreite links und rechts von diesen 5cm breiten Teilabschnitt Kollisionspunkte sind. Sind welche, wird der Pfad solange Richtung Raummitte verschoben, bis es wieder passt. Selbiges mit den nächsten 5cm und den nächsten. Natürlich ist dieser Kurs nun so nicht fahrbar. Deshalb muss der Roboter jede Ecke (deren Winkel er ja kennt) durch einen Kurve mit dem Radius des kleinstmöglichen Kurvenradius des Bots. Fertig ist der Pfad. Nun legt der Robo los und überprüft dauerhaft an Referenzpunkten, ob er die richtige Position in der Map hat. Sollte er vor ein Objekt fahren, das er noch nicht kennt oder beim Raum-Kennenlernen vergessen hat, berechnet er die Route neu und bezieht dazu das neue Objekt mit ein.
Wo ich gerade über das Positionsproblem nachdenke...:
Punkt1: An den Rädern oder durch den Lenkwinkel die Position abzugreifen ist wohl nicht sinnvoll, wegen durchdrehen, ungenauigkeiten und co.
Allerdings fällt mir gerade auf, das ich in meiner rechten Hand ein Messgerät halte, das mir immer die aktuelle Geschwindigkeit und Richtung misst ... meine optische Maus. Vll sollte man mal darüber Gedanken machen, ob man sowas nich für indoor-Roboter auch benutzen könnte.
Punkt2:
Mir fällt gerade auf, das es sinnvoller sein kann, wenn der Roboter einen Kopf hat, (also Kamera und Laser) den er beliebig drehen kann, z.b. durch einen Schrittmotor (Nullfunktion nicht vergessen, kleine Gabellichtschranke an die Scheibe, bei Nullstellung ein Loch, dann kann er sich auch ständig selbst kalibrieren und arbeitet genauer.)
Auf jedenfall sollte man auch einen elektronischen Kompass einbauen, dann braucht der Roboter beim Referenz-Position-messen (Also wenn er gerade in aktion ist und nicht gerade den raum kennenlernt) beim verschieben der Position auf der Karte nur die Position berechnen, den Winkel von sich selbst kennt er ja.
Was haltet ihr von dieser Idee ?
Gruß Johnny
mir fiel heute ein neuer Ansatz zur Positionserfassung mit Laser gekommen
der Bot hat zwei Linienlaser an Bord, der eine strahlt exakt horizontal ab, der andere etwas vertikal versetzt.
Eine Kamera nimmt das Bild nach vorne auf. Am besten klappt das in dunkle räumen oder halt alles per ir. Dann sollte sie lediglich diese beiden Linien sehen, der Rest ist schwarz.
Durch Vermessung des vertikalen Abstandes der beiden Linien kann der Bot die Entfernung dieses Punktes vermessen. Durch Bestimmung der horizontalen Position im Bild, den Winkel.
Nun setzt der Bot virtuell in einem bestimmten Abstand (Real-Abstand, nicht Bild-Abstand) Punkte.
Stellen wo beide Linien zweimal kurz nacheinander unterbrochen sind (z.b. Stuhlbeine) werden bei der Weiterfahrt in Echtzeit verfolgt und durch den nun anderen Winkel, neu vermessen und mit virtuellen Punkten zusätzlich versehen.
Dadurch entsteht im Kopf des Roboters eine sehr genaue Karte, bis wohin er fahren darf.
Sollte man ihn bewegen, ohne das er die Position mitverfolgen kann, wäre er quasi blind und müsste den Raum neu scannen. Das ist der Haken an der Geschichte. Vielleicht sollte er darum eine Ladestation, die er an der besonderen Form erkennt, und selbstständig dorthin fährt, haben, sodass man ihn nicht versetzen muss.
Wenn der Roboter eine Ecke findet, die zu beiden Seiten an Fläche mehr als x meter hat (z.b. Schrankecke oder Wandecke) So speichert er diese gesonderten ab. Sollte er nun laut Karte an einen Punkt kommen, wo er diese Ecke sehen kann, so dreht und schiebt er seine Position auf der Karte wieder dahin, wo er laut Kreuzpeilung zwischen zwei markanten, gespeicherten und erkannten Punkten ist.
Zur Pfaderstellung:
Der Bot kennt nun die Abmeßungen des Raumes, mit allen Hindernissen und orten die err umfahren muss.
Der Bot erstellt nun einen Zickzack-Pfad mit einer gewissen Überlappung, der genausogroß ist, wie das virtuelle Viereck, das der Roboter um die jeweils äußersten Punkte legt.
Nun nimmt er sich einen definierten Abschnitt, z.b. die ersten 5 cm vor, und überprüft, ob in der gesamten Gerätebreite links und rechts von diesen 5cm breiten Teilabschnitt Kollisionspunkte sind. Sind welche, wird der Pfad solange Richtung Raummitte verschoben, bis es wieder passt. Selbiges mit den nächsten 5cm und den nächsten. Natürlich ist dieser Kurs nun so nicht fahrbar. Deshalb muss der Roboter jede Ecke (deren Winkel er ja kennt) durch einen Kurve mit dem Radius des kleinstmöglichen Kurvenradius des Bots. Fertig ist der Pfad. Nun legt der Robo los und überprüft dauerhaft an Referenzpunkten, ob er die richtige Position in der Map hat. Sollte er vor ein Objekt fahren, das er noch nicht kennt oder beim Raum-Kennenlernen vergessen hat, berechnet er die Route neu und bezieht dazu das neue Objekt mit ein.
Wo ich gerade über das Positionsproblem nachdenke...:
Punkt1: An den Rädern oder durch den Lenkwinkel die Position abzugreifen ist wohl nicht sinnvoll, wegen durchdrehen, ungenauigkeiten und co.
Allerdings fällt mir gerade auf, das ich in meiner rechten Hand ein Messgerät halte, das mir immer die aktuelle Geschwindigkeit und Richtung misst ... meine optische Maus. Vll sollte man mal darüber Gedanken machen, ob man sowas nich für indoor-Roboter auch benutzen könnte.
Punkt2:
Mir fällt gerade auf, das es sinnvoller sein kann, wenn der Roboter einen Kopf hat, (also Kamera und Laser) den er beliebig drehen kann, z.b. durch einen Schrittmotor (Nullfunktion nicht vergessen, kleine Gabellichtschranke an die Scheibe, bei Nullstellung ein Loch, dann kann er sich auch ständig selbst kalibrieren und arbeitet genauer.)
Auf jedenfall sollte man auch einen elektronischen Kompass einbauen, dann braucht der Roboter beim Referenz-Position-messen (Also wenn er gerade in aktion ist und nicht gerade den raum kennenlernt) beim verschieben der Position auf der Karte nur die Position berechnen, den Winkel von sich selbst kennt er ja.
Was haltet ihr von dieser Idee ?
Gruß Johnny