序文
Ubuntu20.04
APM 4.2.3
参照リンク:
https://ardupilot.org/dev/docs/building-setup-linux.html
APM無人船効果表示(ステーションBに注目してください、ビデオを更新し続けます)
オープンソースの無人船舶自律障害物回避デモ
環境設定済みの仮想マシンのリンクを添付します
: https://pan.baidu.com/s/1mKAFPeBwnH-qw-t4DR0vPQ?pwd=2tyf
抽出コード: 2tyf
– Baidu Netdisk スーパー メンバー V6 からの共有
1. ソースコードをダウンロードする
git clone https://github.com/ArduPilot/ardupilot.git
ダウンロード後
cd ardupilot
git submodule init
git submodule update
実行中にエラーが発生しgit submodule update
、サブモジュールが更新されていない場合は、更新が完了するまでコマンドを実行し続けてください。
完全にダウンロードされたソース コードを添付します:
リンク: https://pan.baidu.com/s/1TQxyEM6PtStOkCGekGWCZw?pwd=u04f
抽出コード: u04f
– Baidu Netdisk スーパー メンバー V6 からの共有
2. コンパイル環境の設定
次のコマンドを実行して、ardupilot ディレクトリに環境をインストールします。
Tools/environment_install/install-prereqs-ubuntu.sh -y
エラーが発生した場合は、環境のインストールが成功したことを示す次のプロンプトが表示されるまで、上記のコマンドを再実行します。
構成が成功した後に実行します。
. ~/.profile
最新バージョンの APM ファームウェアの環境インストール スクリプトを使用することをお勧めします。古いバージョンのファームウェアのインストール スクリプトは、環境のインストール後に古いバージョンのファームウェアをコンパイルできますが、必ずしも新しいバージョンの APM ファームウェアをコンパイルできるわけではないためです。たとえば、作成者はファームウェアのバージョン 4.3.1 のスクリプトを使用して環境を設定します。
その後、ファームウェアのバージョン 4.3.1 をコンパイルできますが、ファームウェアのバージョン 4.3.7 をコンパイルするときに、エラーが報告されます。
解決策は比較的単純です。つまり、ファームウェアの 4.3.7 バージョンのスクリプトを使用して再度実行し、4.3.7 バージョンをコンパイルできます。ファームウェアが存在しません。
マスター バージョンのファームウェアが正常にコンパイルされているにもかかわらず、Copter 4.3.7 タグに切り替えた後、実行時に./waf configure --board fmuv3
次のエラーが報告される
場合、解決策は、Copter 4.3.7 タグに切り替えてから、環境を構成するためのスクリプトを実行することです。 。
3. ファームウェアをコンパイルする
ファームウェアをコンパイルする前に、コンパイルされたファームウェアのターゲット ハードウェアを構成する必要があります。
ここでは pix2.4.8 フライト コントローラーを使用しているため、fmuv3 ファームウェアを使用し、構成は次のとおりです。
./waf configure --board fmuv3
次に、次のコマンドを使用してクアッドコプターのファームウェアをコンパイルします。
./waf copter
コンパイルは次のように成功します。
コンパイル後に生成されたファームウェアは
クリアされ、次の図に示すディレクトリにコンパイルされます。
./waf copter clean
コンパイル後に自動的にダウンロードします。
./waf copter --upload
git タグを設定します。
デフォルトの git ブランチは master です。このブランチは開発者ブランチです。通常に使用する場合は、安定版ブランチを使用することをお勧めします。すべてのタグを表示するには、次のコマンドを実行します
。
git tag
ここでの私の最新のヘリコプター ブランチは 4.3.1 です。
切り替えるには次のコマンドを使用します。
git checkout Copter-4.3.1
切り替えが成功したら、git ブランチを使用して以下を表示します。
次にコンパイルしてダウンロードし、次のようにファームウェア バージョンを確認します。master ブランチを使用する場合は、ファームウェア バージョンが dev バージョンであることがわかります。
4. シミュレーション
マルチローターを例として、ardupilot/ArduCopter
ディレクトリ内で実行します。
sim_vehicle.py -w
実行が完了すると、次のページがポップアップ表示され、地上局を開いてシミュレートされたドローンにリンクし
ます
。
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt update
sudo apt install gazebo9 libgazebo9-dev
インストールが成功した後に実行します。
gazebo --verbose
空のガゼボ インターフェイスがポップアップ表示されれば、インストールは成功しています。
ガゼボ プラグインをインストールします。
git clone https://github.com/khancyr/ardupilot_gazebo
cd ardupilot_gazebo
mkdir build
cd build
cmake ..
make -j4
sudo make install
成功したら、次のようになります:
環境変数を変更します:
.bashrc に追加します (他のディレクトリで対応する変更を行った場合、私の ardupilot_gazebo は現在のユーザー ディレクトリにあります):
source /usr/share/gazebo/setup.sh
export GAZEBO_MODEL_PATH=~/ardupilot_gazebo/models:${GAZEBO_MODEL_PATH}
export GAZEBO_MODEL_PATH=~/ardupilot_gazebo/models_gazebo:${GAZEBO_MODEL_PATH}
export GAZEBO_RESOURCE_PATH=~/ardupilot_gazebo/worlds:${GAZEBO_RESOURCE_PATH}
export GAZEBO_PLUGIN_PATH=~/ardupilot_gazebo/build:${GAZEBO_PLUGIN_PATH}
次に、シミュレーションを開始します。
gazebo --verbose worlds/iris_arducopter_runway.world
ガゼボ ページがポップアップし、その中にドローンがあることがわかります (ドローンがない場合は、環境変数の設定を確認してください)。ただし、現時点ではドローンは地上局に接続できず、ソフトウェアインを開始できません
。 -the-loop シミュレーション:
~/ardupilot/ と入力します。 ArduCopter ディレクトリが実行されます。
../Tools/autotest/sim_vehicle.py -f gazebo-iris --console --map
起動が成功すると、次のようになります。この時点で、地上局に接続できます。この時点で、実際のドローンのようにルートを計画できますが、その前に仮想ジョイスティックを最下位まで押す必要がありますロックを解除しないと、エラーが報告されます。