サイド プロジェクトとして交通シミュレーションを行う予定ですが、道路自体をどのように表現すべきかについてのアイデアが思い浮かびません。一連のウェイポイント (緯度/経度座標を使用した直線) を使用するというアイデアは気に入っていますが、この方法を使用して異なる車線を表すのは難しいようです。私は他の交通シミュレーションの質問もいくつか見てきましたが、そのうちの 1 つはビットマップの使用について言及していますが、実際の長さを道路セグメントや車線の幅などに簡単に割り当てる方法を決定するのに苦労しています.車が道路上の特定のポイントに存在し、車線を切り替えることができるようにするためのヒントやその他のアイデアを誰かが持っていますか?
3 に答える
接続されたノードのグリッドから始めます。ノードは、交差点、開始車線または終了車線、道路自体の拡幅などの道路状況の変化を表します。すべての情報を格納する複雑な接続を行います (両方向の車線? 方向ごとの車線数? 車線)。プロパティなど)、またはレーンごとに 1 つの接続を保存します。ノードの異なる側にある 2 つの接続が同じレーンに関連していることを確認するには、ノード ベースごとにレーン ID を使用できます。
このようにして、計算を実行できるグラフが作成され、ネット全体を視覚化するためのすべてのデータが作成されます。
モデルで何をしたいかによって異なりますので、ここで「正しい」答えを見つけるのは難しいです。
輻輳をモデル化する場合、ネットワークはまったく必要ない場合があります。環状道路でそれをシミュレートできます。
レーンの概念が本当に必要ですか? その場合、ノード間の個別の線としてモデル化するか、道路ごとの車線数を格納するだけで十分かもしれません。
とにかく、私が言いたいのは、正確なデータ モデルについて考え始める前に、達成したいことについてもう少し深く考えるべきだということです。
以前の仕事では、ドライビング シミュレーター、特に道路ネットワーク モデリングの主任開発者でした。私は論理道路ネットワークと呼んでいるものを構築しました。これは、道路に沿って車両を追跡するために使用される道路ネットワークを抽象的に記述したものです。
車線は、道路に沿った単純な小道でしたが、中央の小道から正または負の距離だけオフセットされていました。各道路は、直線または曲線のいずれかのセクションであり、基本的には両側に 1 つまたは複数のオフセット車線がある中央頂点のパスでした。その後、自動運転車はレーン パスをたどることができます。
つまり、道路を構成するポリゴンは、道路に沿った中央の小道の周りに構築されました。
*------*------*
|\ |\ |
| \ | \ |
| \ | \ |
| \ | \ |
| \ | \ |
| \| \|
*------*------*
* は頂点で、この単純な直線道路セグメントに対して 4 つのポリゴンを作成します。
パスに沿った 2 つの頂点間の補間により、特定の方向に車両を移動する簡単な方法が提供されました。この単純な経路に加えて、自律走行車にいくらかのあいまいさを導入して、経路のわずかな逸脱が発生するようにしました (より現実的な交通を作成します)。論理的には、車両は道路セグメントに追加および削除され、車両はセグメントを検査して、前、後ろ、または別の車線にある他の車両を確認できました。これにより、各車両内である程度の AI が可能になり、別の車両の後ろで減速したり、対向車が通過するのを待ってから曲がったりすることができました。
これがまさにあなたが求めているものかどうかはわかりませんが、それでも役立つことを願っています:-)