ArduinoでArducopterからのリアルタイムソナーデータを操作するにはどうすればよいですか?


8

3DR無線テレメトリキットを備えたAPM 3DRクワッドを持っています。追加のArduinoスケッチで操作するために、リアルタイムのソナーデータをラップトップ(Windows 7を実行している)に送信したいと思います。

ソナーセンサーは私のArduinoのアナログ入力チャンネルに接続されています。そのデータは高度の計算のために処理されます。テレメトリーキット(2つの3DR無線:1つはクワッドコプターに、もう1つはコンピューターにある)を使用して、この高度データをコンピューターのある種の地上局に送信します。

私はこの仕事にどう取り組むべきかよくわかりません。Mission Planner Mav 1.0地上局と共にソースコード(GCS.hまたはGCS_Mavlink.pde)を変更してこれを行う方法はありますか?または、これを実現するためにpythonモジュールを作成する必要がありますか?


こんにちはデビッド、ロボット工学へようこそ。私たちはここでは全体的に素晴らしく親切ですので、私はあなたの質問から「ありがとう」の行を削除しました-それは理解されています:) 私が持っている1つの質問は、「無線テレメトリ」を意味するときにソナーを言っているのかどうかです。
Ian

いいえ、Arduinoのアナログ入力チャンネルに接続されているソナーセンサーがあります。そのデータは高度の計算のために処理されます。テレメトリーキット(2つの3DR無線:クワッドコプターに1
つと

こんにちはuser1702さん、コメントは質問と回答の改善に役立つことを目的としています。そのため、質問を編集してコメントで要求された情報を追加することをお勧めします。こうすることで、コメントを整理(削除)でき、質問の邪魔をしなくなります。
マークブース

ラップトップでソナーデータを処理しますか、それともラップトップを介して別のarduinoに送信しますか?
ジョンワイズマン2013

ジョン、ノートパソコンでデータを処理したい。mavproxyを動作させるように努めていますが、いくつかの問題に遭遇しました。うまくいけば、私はこれを助けるためにpythonモジュールを統合することができます。
user1702 2013

回答:


2

MAVLinkを介して新しいカスタムセンサーデータを抽出するためのソフトウェアの設定は、必要以上に難しいようです。

ステップ1は、quadcopter データを送信させることです。

  • 最初に、mavlink / message_definitionsでXML使用して新しいMAVLinkメッセージタイプを定義する必要があります。message_idに新しい未使用の整数を作成できます。
  • 次に、MAVLinkジェネレーターを使用してメッセージパック/アンパック関数を生成します。
  • 次に、data_stream_sendのArduCopter / GCS_Mavlink.pdeにコードを追加して、メッセージを作成して送信する必要があります。センサーの読み取りでメインループが数ミリ秒を超えて停止すると、特に小さなクワッドや屋内で飛行している場合( "gcs_out_of_time"ビジネスについては、これが重要です) )。STREAM_EXTRA3トリガーに新しいセンサーを追加します。
  • 新しいフライトファームウェアを再構築してアップロードします。

プロジェクトの残りの半分はPC上にあり、テレメトリーストリームからMAVLinkパケットを読み取るように地上局ソフトウェアを変更する必要があります。Mission Plannerに対してこれを開始する手がかりはありません。MissionPlannerは本当に洗練されたソフトウェアのようです。しかし、幸運なことに、生の無線テレメトリを「tlog」にダンプするため、tlogから新しいMAVLinkパケットを探す完全に別のプログラムを構築できる場合があります。(スケッチはPCではなくArduinoで実行されるため、Arduinoのスケッチはこれで十分ではありません。)

これがあなたにとって威圧的に聞こえるなら、あなたは一人ではありません!私たちの屋内クワッドでは、GPSやウェイポイント、その他のMAVLink機能を使用できず、MAVLinkの複雑さを扱うだけでは価値がなかったため、独自の無線通信プロトコルと「地上局」を構築することになりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.