Dronekit をヘリコプターで動作させるのに少し問題があります。これまでのところ、SITL を使用してすべてをテストしており、すべて正常に動作していますが、この成功は実際のものにはうまく反映されていません。
セットアップは次のとおりです。Mavproxy を実行する Windows GCS (COM9 経由のマスター、Dronekit スクリプトとミッション プランナーの UDP 出力) と基本的な Dronekit スクリプト (離陸と着陸)。より明確な説明については、図を参照してください。
MAVProxy の実行時に次のコマンドを使用します: mavproxy.exe --master=com9,57600 --out=udp:127.0.0.1:14550 --out=udp:127.0.0.1:14551 --console
私たちが抱えている問題は、車両 ( http://python.dronekit.io/guide/connecting_vehicle.html ) への接続です。ドローンに接続してボード情報を取得できます。ただし、ハートビート メッセージが 30 秒間受信されず、タイムアウトが発生します。
>>> APM:Copter V3.5.2 (4322ffda)
>>> PX4: 1d6bf64c NuttX: 1a99ba58
>>> Frame: QUAD
>>> PX4v3 0020002E 30365110 35323931
Traceback (most recent call last):
File "C:/Users/simon/PycharmProjects/uas_lol/test_mission.py", line 32, in <module>
vehicle = connect(connection_string, wait_ready=True, baud=57600, heartbeat_timeout=120)
File "C:\Python27\lib\site-packages\dronekit\__init__.py", line 2849, in connect
vehicle.wait_ready(True)
File "C:\Python27\lib\site-packages\dronekit\__init__.py", line 2199, in wait_ready
timeout)
dronekit.APIException: wait_ready experienced a timeout after 30 seconds.
Process finished with exit code 1
wait_ready=False を設定することで、タイムアウトを回避できます。これを使用して、車両に接続し、ドローンを作動させることができます。離陸に関しては、たまにしか機能しません。MAVProxy をリセットすると、動作する (離陸する) 可能性が高くなります。
Mission Planner で udp 127.0.0.1:14550 を使用してドローンに接続すると、問題なく動作することを確認したいと思います。
私たちが間違っているかもしれないことについての洞察をいただければ幸いです。ありがとうございます!