Derzeit bietet udacity einen kostenlosen Online-Kurs zur Programmierung eines Roboterautos an dem Sie wie Google dies für ihre selbstfahrenden Autos tut. Grundsätzlich verwenden sie GPS für die Bruttopositionierung sowie gespeicherte Karten und die Bilderkennung zur Lokalisierung mit einem hohen Maß an Genauigkeit. Die Software verwendet Partikelfilter.
Sie könnten es mit GPS alleine machen, wenn Sie das sehr teure Differential-GPS-Gerät verwenden, das von Vermessungsingenieuren verwendet wird, aber das wäre kaum kosteneffektiv. Wie Sie vorschlagen, können Sie mit ein paar kostengünstigen (vielleicht Xbee?) Transceivern die Entfernung mit einem extrem hohen Maß an Genauigkeit messen, indem Sie einen Impuls senden und die Zeit messen, die vom Sender auf dem Roboter zum Empfänger benötigt wird Remote-Repeater und zurück. Dies ist wie bei RADAR, mit der Ausnahme, dass das Signal nicht von einer passiven Oberfläche reflektiert, sondern von Ihren stationären Transpondern zurückgesendet wird.
BEARBEITEN: Da ich in diesem Fall von Kevin angerufen wurde, erkläre ich es vielleicht besser ;-) (Alles in allem habe ich den höchsten Respekt vor Kevin und es ist ganz richtig, dass ich nicht genügend Details angegeben habe, um zu zeigen, wie es geht implementieren dies).
Um die Ausbreitungsverzögerung zwischen zwei Punkten genau zu messen, sind in erster Linie zwei Dinge erforderlich: 1) Ein geradliniger Signalweg, da Reflexionen Verzerrungen erzeugen. 2) Einige Elektronikgeräte verwenden auf beiden Seiten synchronisierte Uhren und können Zeitintervalle mit der erforderlichen Genauigkeit messen.
Synchronisierte Uhren sind relativ einfach, da die empfangende Station ihre Uhr aus dem von der anderen Station gesendeten Signal ableiten kann. Dies ist eine standardmäßige synchrone Datenübertragung mit Taktwiederherstellung.
In diesem Artikel wird die Ausbreitungsverzögerung über eine bidirektionale 1,25-Gbit / s-Datenverbindung gemessen, wobei diese Genauigkeit über ein 10 km langes Stück Glasfaser problemlos erreicht wird. Sie besagen: "Es sollte in der Lage sein, ~ 1000 Knoten mit einer Genauigkeit von Subnanosekunden über eine Länge von bis zu 10 km zu synchronisieren."
In diesem Hinweis wird ein Verfahren beschrieben, um den Zeitversatz zwischen zwei Knoten zu bestimmen. Diese Knoten sind über einen 8B / 10B-codierten bidirektionalen Punkt-zu-Punkt-Kommunikationskanal mit 1,25 Gbit / s verbunden, wie er beispielsweise von 1000BASE-X (Gigabit-Ethernet) verwendet wird. Der Zeitversatz wird durch Messen der Ausbreitungsverzögerung unter Verwendung eines Markersignals bestimmt. Das Signal wird von einem Master zu einem Slave-Knoten und zurück gesendet, wobei die Serializer / Deserializer-Funktionalität (SerDes) in (Virtex-5) FPGAs verwendet wird. Der wiederhergestellte Takt am Slave-Knoten wird als Sendetakt des Slaves verwendet, sodass das gesamte System synchron ist. Für einen seriellen Kommunikationskanal mit 1,25 Gbit / s ist die Verzögerung mit einer Auflösung von einem einzelnen Einheitsintervall (dh 800 ps) bekannt. Diese Auflösung kann durch Messen der Phasenbeziehung zwischen dem Sende- und dem Empfangstakt des Masterknotens weiter verbessert werden. Es wurde gezeigt, dass die Technik über eine einzelne 10 km lange Faser funktioniert, die bei zwei Wellenlängen verwendet wird, um eine bidirektionale Punkt-zu-Punkt-Verbindung zwischen Master- und Slave-Knoten zu ermöglichen.
ebenfalls
Ein erster Testaufbau wurde erstellt, um das Prinzip der Messung der Laufzeitverzögerung zwischen einem Sender und einem Empfänger unter Verwendung eines mit 3,125 Gbit / s betriebenen codierten seriellen Kommunikationskanals zu verifizieren. Der Sender und der Empfänger befinden sich in FPGAs auf zwei separaten Entwicklungsplatinen. Dieser erste Testaufbau zeigte, dass es möglich ist, die Ausbreitungsverzögerung über eine 100 km lange Faser mit einer Auflösung von einem Einheitsintervall (dh 320 ps bei 3,125 Gbit / s) zu messen.
VERWENDETE AUSRÜSTUNG:
Der Testaufbau besteht aus zwei ML507 Xilinx Development Boards [7]. Auf jeder Karte ist ein Virtex-5 FPGA montiert. Eine ML507-Entwicklungsplatine wird als Master-Knoten und die andere als Slave-Knoten bezeichnet. Master und Slave sind über SFP-Transceiver (Small Form Factor Pluggable) und 10 km Glasfaser verbunden, wodurch eine bidirektionale Verbindung hergestellt wird. Es wird eine einzelne Faser verwendet, die mit doppelter Wellenlänge betrieben wird.
Dieses spezielle Setup ist für die meisten Hobby-Robotik-Projekte eindeutig übertrieben, kann jedoch leicht zu Hause reproduziert werden, da es Standard-Entwicklungsboards verwendet und keine besonderen Talente erfordert, um arbeiten zu können. Im Falle des Roboters wäre die Verbindung eher eine Funkverbindung als ein Glasfaserkabel. Vielleicht könnte es sogar eine IR-Verbindung wie eine TV-Fernbedienung sein, obwohl ich vermute, dass draußen bei strahlendem Sonnenschein das problematisch sein könnte. Nachts könnte es klappen!