現在、udacityは、無料のオンラインコース「ロボット車のプログラミング」を提供しており、Googleが自動運転車に対してどのようにそれを行うかを教えています。基本的には、GPSを使用して大まかなポジショニングを行い、保存されたマップとビジョンセンシングを使用して、高精度にローカライズします。ソフトウェアは粒子フィルターを使用します。
測量士が使用する非常に高価なディファレンシャルGPS機器を使用した場合、GPSだけでそれを行うことができますが、それはほとんど費用効果がありません。お勧めのように、低コスト(おそらくXbee?)のトランシーバーを使用すると、パルスを送信し、ロボットのトランスミッターからロボットまでの移動時間を測定することで、非常に高い精度で距離を簡単に測定できます。リモートリピーターとバック。これはレーダーに似ていますが、パッシブサーフェスから信号をバウンスする代わりに、静止したトランスポンダーによって送り返されます。
編集:私はこれについてケビンから呼び出されたので、おそらく私が説明した方が良いかもしれません;-)これを実装します)。
2点間の伝搬遅延を正確に測定するには、主に2つのことが必要です。1)反射により歪みが生じるため、直線信号パス。2)同期クロックを使用し、必要な精度で時間間隔を測定する機能を使用する両端の電子機器。
同期クロックは、受信ステーションが他のステーションによって送信されている信号からクロックを取得できるため、比較的簡単です。これは、クロックリカバリを使用した標準の同期データ送信です。
これは、1.25 Gbpsの双方向データリンクでの伝搬遅延の測定に関する論文です。長さ10 kmの光ファイバーでこの種の精度を簡単に得ることができます。彼らは次のように述べています:「最大10 kmの長さにわたってサブナノ秒の精度で〜1000ノードを同期できるはずです。」
このノートでは、2つのノード間の時間オフセットを決定する方法について説明します。これらのノードは、たとえば1000BASE-X(ギガビットイーサネット)で使用されているように、8B / 10Bコード化1.25 Gbps双方向シリアルポイントツーポイント通信チャネルを介して接続されます。時間オフセットは、マーカー信号を使用して伝搬遅延を測定することにより決定されます。信号は、マスターからスレーブノードに送信され、(Virtex-5)FPGAのシリアライザー/デシリアライザー(SerDes)機能を使用して返送されます。スレーブノードで回復されたクロックはスレーブの送信クロックとして使用されるため、システム全体が同期します。1.25 Gbpsシリアル通信チャネルの場合、遅延は単一単位間隔(つまり800 ps)の分解能で認識されます。この分解能は、マスターノードの送信クロックと受信クロック間の位相関係を測定することでさらに強化できます。この手法は、2つの波長で使用される単一の10 kmファイバーで動作し、マスターノードとスレーブノード間の双方向のポイントツーポイント接続を容易にすることが実証されています。
また
最初のテストセットアップは、3.125 Gbpsで動作するコード化されたシリアル通信チャネルを使用して、トランスミッタとレシーバ間の伝搬遅延を測定する原理を検証するために構築されました。トランスミッタとレシーバは、2つの別個の開発ボード上のFPGAにあります。この最初のテストのセットアップでは、1単位間隔の分解能(つまり、3.125 Gbpsで320 ps)で100 kmのファイバ上の伝搬遅延を測定できることが示されました。
使用機器:
テストセットアップは、2つのML507ザイリンクス開発ボードで構成されています[7]。Virtex-5 FPGAは各ボードにマウントされています。一方のML507開発ボードはマスターノードとして指定され、もう一方はスレーブノードとして指定されます。マスターとスレーブは、スモールフォームファクタープラガブル(SFP)トランシーバーと10 kmのファイバーを介して接続され、双方向リンクを作成します。デュアル波長で動作する単一のファイバが使用されます。
明らかに、この特定のセットアップはほとんどの趣味のロボット工学プロジェクトにとってはやり過ぎですが、市販の開発ボードを使用し、特別な才能を必要としないため、自宅で簡単に再現できます。ロボットの場合、リンクは光ファイバーケーブルではなく無線になります。多分、それはテレビのリモコンのようなIRリンクでさえあるかもしれませんが、明るい日差しの中で外が問題になるかもしれないと疑っています。夜になるとうまくいくでしょう!