P200Amuドローン研究ノート
P200 Amu Drone Study Notes
目次
私の手にあるAmuLabのP200ドローン構成
TX2オンボードコンピューター(プリインストールされたubuntu16.04システムとROS、mvrosなど、amov_wsフォルダーはpx4_commandオープンソースプロジェクトコードをダウンロードします。PX4コンパイル環境もnomachineソフトウェアもありません)
Pixhawk4フライトコントローラー(AmuのファームウェアV110のv5バージョンである必要があります)
単眼USBカメラ1台、レーザー高さ固定モジュール1台、wifiデジタル送信1台、リモコン。現在、LIDARおよび双眼カメラはありません。
この段階での目標:QRコードガイド付き着陸を達成する
主な参考資料:
ビギナーズガイド: https://amov-wiki.readthedocs.io/zh_CN/latest/docs/Getting Started.html
Amuのgithub: https://github.com/amov-lab
Amuのbステーションドローン開発コースの8つのレッスン: https://www.bilibili.com/video/BV19K411p7do
Amuのフォーラムとアカデミー: https://bbs.amovlab.com/forum.php?mod=viewthread&tid=486&extra=page
AmuのPrometheusUAVオープンソースプロジェクト(QRコードの自律着陸を含む): https://github.com/amov-lab/Prometheus
理論的基礎論文:Qi、Yuhua&Jiang、Jiaqi&Wu、Jin&Wang、Jianan&Wang、Chunyan&Shan、Jiayuan。(2019)。移動プラットフォーム上の低コストクワッドローターの自律着陸ソリューション。ロボット工学と自律システム。 119. 64-76。10.1016 /j.robot.2019.05.004。
プロジェクトの理解
現在の目標は、ガゼボシミュレーションや実機実験など、PrometheusUAVオープンソースプロジェクトでQRコードガイド付き着陸リンクを再現することです。
GithubのPrometheusまたはpx4_commandは、基本的に作成されたROSパッケージです。そのタスクは、センサーデータを処理し、航空機の姿勢を推定し、航空機の動きの指示を与え、mavrosを使用してpixhawk飛行制御ファームウェア(Amuによって変更)に指示を送信することです。ファームウェアの場合、実機はGithubのpx4_commandのファームウェアを使用します。シミュレーションでは、pixの公式WebサイトのファームウェアではないGithubのファームウェアv110を使用します。
私たちが今話しているUAVの開発は、実際にはミッションレイヤーの開発を指し、pixhawkフライトコントローラーの開発ではなく、TX2で実行するROSプログラムの作成に焦点を当てています。次のように
このUAV開発はROSに基づいています。 ROSは、各機能モジュールをカプセル化し、モジュール間の通信メカニズム(トピック、サービスなど)を提供して、ロボットシステムのさまざまなモジュールの調整を容易にします。書き直す必要のあるコードは、主に単眼カメラ画像認識ノードと自動着陸制御法則ノードです。ノードはcppまたはpythonで記述でき、ubuntuシステムにはpython2とpython3.5がプリインストールされています。
UAV開発プロセス:数学モデルの確立->アルゴリズムの記述(matlabまたはros)->シミュレーション(ros-gazeboまたはmatlab-ros-gazebo)->実機実験
rosを使用してシミュレーション用のアルゴリズムコードを直接記述する場合は、少し変更を加えるだけで、実際のマシンのオンボードコンピューターに移植できます。
参照: https://www.bilibili.com/video/BV1hE411h7sy
進捗状況の更新
完了
ubuntuシステムのインストールと学習
P200基本使用学習
自分のパソコンにPX4コンパイル環境やROS環境などをインストールする
px4_commandオープンソースコードでgazeboシミュレーションプログラムを実行します
元に戻す
Amu UAVシミュレーションコーススタディ(rosとgazeboはPX4 UAVシミュレーションを実現)
AmuのPrometheusドローンオープンソースプロジェクトをダウンロードして実行します
PrometheusのQRコードランディングコードを読んで理解する
コードを変更して、2次元コードランディングガゼボシミュレーションを実現します
二次元コード着陸実機実験
……
ステッピング体験
初期設定時にディスプレイなしでTX2をリモート接続するにはどうすればよいですか?
TX2にはモニターがありません。 HDMIケーブルを使用してモニターに接続するか、wifiネットワークでnomachineリモートデスクトップを使用します。モニターやHDMIケーブルがないので、リモートデスクトップにしか接続できません。問題は、リモートで接続する場合は、TX2とコンピューターを同じWiFiに接続してnomachineをダウンロードする必要があることですが、ディスプレイがない場合、TX2を自宅のWiFiに接続してnomachineをダウンロードするにはどうすればよいですか? ? ?
それは本当に無限ループです。 Baiduが失敗した後も、解決策を考えました。それは、有線ネットワーク接続を使用することです。
ルーターとネットワークケーブルを見つけます。ネットワークケーブルの一方の端をTX2に接続し、もう一方の端をルーターの出力ネットワークポートに接続します。コンピューターはルーターのWiFiにも接続されているため、コンピューターとTX2は同じLANにあります。
次に、TX2のIPアドレスを知る必要があります。明らかに、IPをチェックするためにTX2にifconfigを入力することは不可能です。コンピューター上のルーターの設定Webページ(ルーター上のtendawifi.com、melogin.cn、192.168.0.1など)にログインできます。はい)、デフォルトのアカウントパスワードは通常adminで、のIPを表示できます。このルーターに接続されているすべてのデバイス。ルーターのパスワードを忘れた場合は、ルーターのボタンを押して工場出荷時の設定に戻すことができます。
TX2のIPが127.111.0.1であると仮定すると、私のコンピューターはwin10システムです。 cmdを開き、ssh root @ xxxxxと入力して、TX2にログインします。 (TX2はubuntuシステムにプリインストールされており、システムアカウントとパスワードは両方ともubuntuです)。実際、xshellを使用してTX2にログインしたり、winscpを使用したりすることもできます。
ただし、今回はコマンドラインインターフェイスのみがあり、グラフィカルインターフェイスはありません。次に、TX2にnomachineをインストールする必要があります。コマンドラインを使用してインターネットからダウンロードしてインストールするか、自分のコンピューターでインストールパッケージをダウンロードしてから、winscpを使用してTX2のubuntuシステムにインストールパッケージをアップロードし、コマンドラインを入力してnomachineをインストールします。 nomachineの公式ウェブサイトを参照してください。
このとき、コンピュータのnomachineの電源を入れ、TX2を再起動すると、理論的には接続できます。しかし、私のnomachineは常に「デスクトップユーザーが接続を承認するのを待っています」というプロンプトを表示します。これは、TX2のubuntuシステムが接続を確認する必要があることを示していますが、ubuntuのグラフィカルインターフェイスがありません。確認方法...
解決策は次のとおりです。 https://www.nomachine.com/TR10L04623
これで、TX2のubuntuシステムにリモート接続できるようになります。
現時点では、グラフィカルインターフェイスは簡単に実行できます。 TX2をWiFi(実験室のwifiまたはドローンに付属のwifiとして推奨)に接続すると、このネットワークケーブルは不要になります。ドローンの電源を入れると、自動的にWi-Fiに接続してnomachineを起動し、コンピューターのTX2と同じWi-Fiに接続して、nomachineリモートデスクトップを使用できます。
もちろん、ubuntuへのVNCリモート接続に関するチュートリアルもあります。私はそれを試しましたが失敗しました。実際、nomachineは非常に優れています。また、同じLANで接続するコンピューターを自動的に検索することもできます。
仮想マシンまたはデュアルシステムの方が優れています(ubuntu)
VMware15仮想マシンの利点:簡単なインストール、小さなスペース(10G)メモリ、CPU、ハードディスクリソースをいつでも調整できますwin10と同時に使用でき、win10を使用して問題が発生したときに情報を確認するのが簡単ですubuntu、そしてあなたはそうすることができますwin10によってダウンロードされたデータはubuntuシステムに直接ドラッグされます。 Ubuntuを学ぶ初心者にとてもフレンドリー
VMware15仮想マシンのデメリット:ガゼボカードを実行している、グラフィックカードを使用できない
デュアルシステムのインストールは危険であり、win10とubuntuを同時に使用することはできませんが、あまり行き詰まっていない可能性があります。
実際、この2つの間に矛盾はありません。これらをインストールし、仮想マシンを使用して検証と演習を行い、デュアルシステムでシミュレーションを実行できます。
ドローンのロックを解除できず、「コンパスセンサーの不整合」というエラーが報告されます
デュアルコンパスには一貫性がなく、センサーを再校正することは無意味です。 pixhawkの組み込みコンパスを直接無効にすることができます。次のように:
地上局のエラーメッセージの理由は、磁気コンパス、特に内蔵の磁気コンパスが乱されているため、内部と外部の磁気コンパスのデータに一貫性がないためです。 2つの解決策があります。1。パラメータリストで組み込みの磁気コンパスパラメータCAL_MAG0_ENを変更し、[有効]を[無効]に変更します。 2.フライトコントロールの内蔵磁気コンパスは、LIDAR内のモーターの磁場によって簡単に干渉されるため、LIDARの高さを高く調整する必要があります。
px4_commandがガゼボシミュレーションを実行する場合、QCC地上局は自動的に接続できません
はじめにを参照してください https://amov-wiki.readthedocs.io/zh_CN/latest/docs/Gazebo Simulation.html
この部分については、Gazeboシミュレーションチュートリアルを参照してください。シミュレーションを実行した後、QGC地上局を開きますが、ガゼボに自動的に接続することはできません。
まず、QGC地上局のバージョンはできるだけ新しい必要がありますが、ubuntu16.04システムは最新のQGCをサポートしていないため、QGC3.5.2バージョンを使用しました。これで問題ありません。
第二に、初心者の紹介によると、私がインストールしたpx4コンパイル環境はバージョン1.8.2であり、最新ではありません。このバージョンのpx4のコンパイル後に生成されるビルドファイル名は、次のように異なります。
ただし、ビギナーズガイドで追加された環境変数は、以下に示すように、px4v1.9.2以降に従って追加されます。このパスを入力すると、「px4_sitl_default」フォルダーはありませんが、「posix_sitl_default」があります。
したがって、ここに環境変数を追加します。赤い円をposix_sitl_defaultに変更する必要があります。
これは、環境変数を追加してもチュートリアルをコピーするべきではなく、このパスがあるかどうか、およびこのファイルがあるかどうかを確認する必要があることも示しています。
変更後、QGCは自動的に接続され、シミュレーションも正常に実行できます。
参照 https://bbs.amovlab.com/forum.php?mod=viewthread&tid=486&extra=page
参照 https://bbs.amovlab.com/forum.php?mod=viewthread&tid=987
ガゼボとV-repの比較
私は無人機のv-repシミュレーションを行っていました
v-repはwin10で実行でき、操作はシンプルで理解しやすいです。また、改造後も使用できるロボットモデルが多数付属しています。 Luaのようなハードウェアのような制御モデルを使用するか、pythonとmatlabを使用して制御するかを選択できます。 Vrepは非常にシンプルなインターフェースを提供します。 v-repは主に、ロボットアームと一部の固定機械のシミュレーションに使用されます。シーンとロボットは単一であり、px4ドローンシミュレーションは実行できません。
ドローンシミュレーションを行うには、ガゼボを使用する必要があります。操作はより複雑で、LinuxまたはmacOSで実行する必要がありますが、これは初心者が始めるのは困難です。 Gazeboは主にrosを使用する必要のあるロボットシステム用であり、シーンとシミュレーションの忠実度ははるかに高くなっています。
要するに、初心者はvrepを使用できますが、gazeboはより強力で、rosシステムに適しています。
続く~~
実際、Baiduが解決できる問題はまだたくさんありますが、ここには書かれていません。