0

私は、複数のAr Drones(単純なクワッドローターUAV)の自律視覚ベースのナビゲーションに関するプロジェクトを行っている工学部の学生です。

PCで2枚のWiFiカードを接続しました。両方のArドローンは独自のWiFiサーバーを作成します。2つのNICのそれぞれを両方(ARドローン)に同時に接続します。両方のドローンは、UDPポートを使用してビデオストリームを送信しています。

私の質問はこれです:

  1. 両方のビデオストリームを同時に受信できますか?

  2. はいの場合、これらのビデオストリームの両方を受信して​​表示するようにC#アプリケーションを構成するにはどうすればよいですか?

1台のドローンからすでにビデオストリームを受信できます。両方のビデオストリームを受信するようにそのコードを再構成するにはどうすればよいですか?

4

2 に答える 2

0

そのために2枚のWiFiカードは必要ありません。

基本的に、クライアント アプリケーションは 2 つのソケットを作成する必要があります。それぞれが異なるポートをリッスンできます (例: 5000 と 5001)。次に、この情報をドローンに通信する必要があります。おそらく、TCP でクライアント アプリケーションをドローンに接続し、各ドローンの構成を送信します。最初のドローンはポート 5000 を受信し、2 番目のドローンはポート 5001 を受信します。

次に、ドローンは UDP のデータをクライアント マシンの IP アドレスと構成で指定されたポートに送信する必要があります。

編集: ライブラリを確認したところ、UDP データの送信に使用される UdpWorker クラスが表示されます。このクラスのコンストラクターを呼び出すときは、リモート IP アドレス (クライアント アプリのアドレス) とポート番号を指定する必要があります。

クライアントの IP が 192.168.1.1 の場合、Drone#1 は UdpWorker オブジェクトを remoteIpAddress=192.168.1.1 および port=5000 で初期化します。Drone#2 の UdpWorker オブジェクトは、remoteIpAddress=192.168.1.1、port=5001 で初期化されます。

両方のソケットが異なるポートに結合されているため、クライアント アプリは異なるソケットから両方のストリームを受信し、どちらがどちらであるかを簡単に区別できます。C# アプリケーションでは、System.Net.Sockets.UdpClient 型の 2 つのオブジェクトをインスタンス化できます。1 つ目はポート番号 5000 で初期化され、2 つ目はポート番号 5001 で初期化されます。

于 2012-07-25T16:51:36.597 に答える
0

2 つのソケットが必要bind()で、それぞれを対応するネットワーク インターフェイスのアドレスに接続します。

于 2012-07-25T16:44:07.467 に答える