問題タブ [mavlink]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - popen からコマンド シェルを実行し、他のコマンド シェルを設定する
私はクワッドローターとマブリンクを使ったプロジェクトに取り組んでいます。Ubuntu PC に mavproxy を正常にインストールし、ターミナルから問題なく実行しました。ターミナルから実行mavproxy.py
し、mavlink (APM オートパイロット) をサポートするクワッドローターを接続すると、mavproxy がクワッドローターを検出し、すべて問題ありません。
ターミナルでプログラムを実行するmavproxy.py
と、いくつかのパラメーターの送受信が開始されます。端末にパラメーターを書き込んで、任意の構成にアクセスできます。たとえばhelp
、ターミナルで次のコマンドを実行します。
mavlink.py
C++から実行するコードがあります
この C++ プログラムを実行すると、ターミナルから実行した場合と同じものがターミナルに表示されますが、C++ コードmavproxy.py
などでコマンドを送信する方法がわかりません。help
プログラムを読むと、このステートメントにより、プログラムと端末でwhile
生成されたパラメーターをキャプチャできますが、端末出口で何かを書き込むか+を押すまで終了しないため、ループは終了しません。mavproxy.py
cout
mavlink.py
CTRLCwhile
Popen 関数について読んでいましたが、これを行うための正しい形式が見つかりませんでした。
mavlink.h
プログラムでライブラリを使用してパラメーターをクアッドローターに送信できることはわかっていますが、 mavlink.h
.
raspberry-pi - RPi2 UART のセットアップと操作の問題
私は現在、Mavlink プロトコルを使用して Raspberry Pi Model 2 B V1.1 と Pixhawk Flight Controller の間の UART での通信の設定を含むマスター プロジェクトで忙しくしています。
もちろん、最初のステップは、UART をセットアップして動作させることです。私は、問題の最初の兆候で助けを求めるような人ではありません。私はこれに何日も苦労してきましたが、自分の存在の目的を何度も疑うことを余儀なくされました. 私は愚かで欲求不満を感じます。何かお手伝いできることがあればご覧ください。
私の最初のリソースはこのチュートリアルでした。これは比較的簡単です。
http://ardupilot.org/dev/docs/raspberry-pi-via-mavlink.html
このチュートリアルでは、必要なパッケージと依存関係をすべてインストールし、UART をセットアップするだけです。raspi-config を介してシリアル ポートの OS 使用を無効にする手順に従いましたが、接続をテストしようとするとエラーが発生します。
[Errno 2] そのようなファイルまたはディレクトリはありません: '/dev/ttyAMA0'
これは非常に奇妙です。そのため、rasp-config を使用して OS のシリアル ポートの使用を数回無効にしてから有効にして確認した後、無効にするたびに /dev/ttyAMA0 ファイルが消えます。UARTのOS使用を無効にするとそのファイルが削除された場合、UARTで動作するはずの何かが一体どうなるのですか!? それにもかかわらず、私は力を尽くしました。次のリンクに示すように、シリアル ポートの OS 使用を有効にしました。これにより、ttyAMA0 ファイルがそのまま残り、/boot/cmdline.txt を変更して ttyAMA0 へのすべての参照を削除するという別の提案に従いました。
http://www.raspberry-projects.com/pi/pi-operating-systems/raspbian/io-pins-raspbian/uart-pins
これは問題なく動作するように見えました。これで、RPi と Pixhawk フライト コントローラーの間で通信を開始し、正しいと思われる情報を取得できました。それから黒魔術が始まりました。翌日、接続をテストしたところ、一貫して完全なゴミが吐き出されました. しかし、前日から何も変わっていません。どこかで何かが欠けているに違いない。前日に得たより良い結果を得るために、同じチュートリアルと手順をすべて実行しました. ただし、それはより不安定な動作につながるだけでした。シリアル回線を Pixhawk Flight Controller に接続すると、キーボード/マウスがときどき一時的に中断されるようです。すべてが後退しただけです。何とか機能させようと必死になって Raspbian Jessie を再インストールしました。
以下に、問題の原因と思われるいくつかの要因を示します。
ボー レートが正しくありません (フライト コントローラと通信するには、ボー レートを 57600 にする必要があります)。このボー レートを設定する最善の方法は、"init_uart_baud=57600" を /boot/config.txt/ に追加することです。/etc/crontab に行を追加するなど、他の方法についても読みました。助言がありますか?
Pixhawk は奇跡的に散発的に RPi との通信を拒否しました。
任意の支援をいただければ幸いです。ありがとうございました。
mavlink - mavlink パッケージの読み方 .. 途中でやってもいいですか?
MAVlink について読んで、pixhawk フライ コントローラーからパッケージを読み取ろうとしています。電話をかける別の方法を考えました。このディスカッションの読者から、大丈夫かどうか、どう思うか知りたいです。
私のリーダーでは、pixhawk から最初の 2 バイトを読み取りました。
2 番目のバイトは PAYLOAD の長さである必要があります --> 新しいので、ヘッダーの 4 バイト + PAYLOAD の長さのバイト + chcksub の 2 バイトを読み取る必要があることがわかりました。
したがって、PAYLOADの長さを読み取った後、バイト配列を定義します->サイズは
(PAYLOAD.length + 4 + 2)で、シリアルからこのバッファに読み取ります。やってもいいですか?