UbuntuがAPMファームウェアコンパイル環境を構築

序文

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

起動が成功すると、次のようになります。この時点で、地上局に接続できます。この時点で、実際のドローンのようにルートを計画できますが、その前に仮想ジョイスティックを最下位まで押す必要がありますロックを解除しないと、エラーが報告されます。
ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_38768959/article/details/131133686