問題タブ [dronekit-python]

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.

0 投票する
2 に答える
698 参照

dronekit-python - DroneKit - RTL 高度の設定

ヘリコプターが特定の高度で打ち上げに戻るようにしたいのですが、今のところ ArduPilot SITL ですべてを実行しています。最初に simple_goto() を使用しようとしました

simple_goto() は他の場所では正常に機能しますが、 vehicle.home_location を使用すると、ヘリコプターが高度 -7.5m まで降下します。しかもコプターは下降のみで、finish_locationまでは飛ばない。

だから私はRTLモードを使用しようとしました

うまく機能しますが、RTL 高度を目的のflight_altitudeパラメーターに設定する方法が見つかりません。デフォルトの 15m で実行されます。

0 投票する
2 に答える
1949 参照

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 を再インストールしました。

以下に、問題の原因と思われるいくつかの要因を示します。

  1. ボー レートが正しくありません (フライト コントローラと通信するには、ボー レートを 57600 にする必要があります)。このボー レートを設定する最善の方法は、"init_uart_baud=57600" を /boot/config.txt/ に追加することです。/etc/crontab に行を追加するなど、他の方法についても読みました。助言がありますか?

  2. Pixhawk は奇跡的に散発的に RPi との通信を拒否しました。

任意の支援をいただければ幸いです。ありがとうございました。

0 投票する
2 に答える
1383 参照

dronekit-python - Dronekit python車両接続タイムアウト

ソロドローンでドローンキットを使用して helloworld.py を実行しようとしています。

私の環境は

単純な helloworld の例を実行しようとすると、タイムアウトが発生しvehicle.connect()ます。

pymavlink も 1.1.73 にダウングレードしようとしましたが、うまくいきませんでした。どんな助けでも大歓迎です。

0 投票する
3 に答える
2995 参照

dronekit-python - Python Dronekitで«左/右/前方/後方に移動»する方法は?

ヘキサコプターを自動操縦し、このチュートリアルに従うために APM を使用しています。この利用可能なコマンドを見ると、ドローンに左/右/前方/後方に移動するように命令する方法がわかりません。

誰でもこれについて私を助けることができますか?

0 投票する
2 に答える
3068 参照

dronekit-python - Dronekit の Arducopter で GUIDED_NOGPS モードを設定するには?

どのようにArducopterにguided_nogpsモードに入るように命令するのですか? gps 拒否環境での操作を計画しています。他の投稿では、guided-nogps でこれが可能であることが示されていますが、そのモードを設定する方法がわかりません。Dronekit (python) vehicle.mode = VehicleMode("Guided_NoGPS") を使用すると、そのようなモードがないことを示すエラーが返されます。

また、Mavlink はモードの確認を拒否します。

私のセットアップは、Raspberry Pi コンパニオンを備えた Arducopter を実行する Pixhawk です。ファームウェアは v3.5 dev で、DroneKit-SITL では v3.4 です (このために独自の v3.4 バイナリをコンパイルしました)。

他のすべてはうまく機能しています (たとえば、この投稿のおかげで set_attitude_target を介して制御する DroneKit を介してヘリコプターの姿勢を設定する方法 -- SET_ATTITUDE_TARGET が機能していません) - 屋内に入ることができる必要があるだけです!

また、Arducopter v3.4 Controlling Movement without GPSのリリース前に、この投稿で、オプティカル フロー センサーが必要になる可能性があることに気付きました。その要件は満たされましたか?

再度、感謝します!

すべてのアドバイスを歓迎します。

Squilter さん、ご協力ありがとうございます。フライトモードを変更する関数を作成しました (20):

メッセージは正しく受信されましたが、成功しませんでした (結果 3 が返されました)。私がよくわからなかったのは、仕様がプラットフォーム固有であることを示しているパラメーター 2 でした。Arducopter ではどうすればよいかわからなかったので、0 を付けました。

繰り返しますが、どんな提案も歓迎します。

0 投票する
0 に答える
1341 参照

python - Python ではデフォルトでフロート

GPS 座標を使用するコードを書いていますが、python 2 で頭痛の種になっています。具体的には、dronkit python ライブラリを使用しています。これが私がやろうとしていることのサンプルです。

問題は、new_x と new_y が 41.0 などの丸められた値を出力することです。数値を float() でラップすることで問題を修正できることはわかっていますが、これは非常に扱いにくいようです。すべての数値を浮動小数点数として扱うように Python に指示する方法はありますか?

0 投票する
1 に答える
218 参照

dronekit-python - Dronekit の SYSTEM_TIME とコンパニオン コンピューターの時間との間の累積誤差

この男と同様に、私は Pixhawk から Raspberry Pi コンパニオン コンピューターに GPS 時間を取得しようとしています。

このアプローチを試す前@vehicle.on_message('SYSTEM_TIME')に、ワイルドカードを使用してすべてのメッセージをキャッチし、結果をファイルにダンプしました。ファイルを調べたところ、GPS から取得しているメッセージのタイプはGPS_RAW_INTだけであることがわかりました。最も重要なことは、ドキュメントによると、GPS から UTC 時間を取得するSYSTEM_TIME_UTCメッセージを取得していないことです。

今、@vehicle.on_message('SYSTEM_TIME')作品をうまく使って、何かを得ています。しかし、それは何ですか?ドキュメントはそれが次のように主張しています:

システム時刻は、マスター クロックの時刻であり、通常はメインのオンボード コンピューターのコンピューター クロックです。

OK、「メインのオンボード コンピューター」は Pixhawk だと思います。しかし、それを含む GPS メッセージがない場合、どのようにして時刻を取得するのでしょうか。GPS_RAW_INTには時間情報は含まれません。

さらに調査して、次のハンドラーを作成しました。

rpi_timeは Raspberry Pi から取得され、起動時に NTP によって設定されるため正確です。mavlink_time (GPS ベースの時間である必要があると推測) がかなり近いことを確認したかったのです。私は間違っていた。

これを何度も実行すると、最初は GPS の時刻が常に約 2 秒進んでいることに気付きました。時間が経つにつれて、それは遅れます。出力例:

この場合、rpi_time (これは正しい) は 172 秒経過したと言っていますが、mavlink_time は 30 秒しか要求していません。

だから、私の質問は次のとおりです。

  1. SYSTEM_TIMEメッセージは何に基づいていますか? 現実的には GPS しかあり得ません (Pixhawk が利用できる唯一の時間データです) が、その場合は...
  2. なぜそんなに不正確なのですか? また、なぜSYSTEM_TIME_UTCメッセージも表示されないのですか?