Argus Board向けフライトソフトウェア:開発、インストール、トラブルシューティング完全ガイド
目標: 本記事では、Argus Board向けフライトソフトウェアの開発、インストール、トラブルシューティングに関する詳細な情報を提供します。低コスト衛星でのビジョンベース軌道決定を目指す開発者はもちろん、CubeSat visual applicationsに関わる方、効率的なオンボード ML/GPU処理に関心のある方にも役立つ情報です。
1. Argusフライトソフトウェア概要:主な機能とアーキテクチャ
Argusフライトソフトウェアは、Argus Mainboard上で動作し、一連の重要な機能を実行します。具体的には、以下のような要素をサポートします。
- ビジョンベース軌道決定: GPSなしで、画像データのみに基づいて衛星の軌道を決定します。
- 地球画像データ収集: CubeSat visual applicationsの研究開発に役立つ地球の画像データセットを収集します。
- オンボードML/GPU処理: 効率的なオンボード機械学習(ML)およびGPU処理を実証します。
- 多様なハードウェア対応: Argus v1、v1.1、v2、v3など、複数のArgus Boardバージョンをサポートします。(ATSAMD51J20、RP2040、RP2350)
詳細なアーキテクチャについては、High-Level Architecture を参照してください。
2. 開発環境構築:インストール手順と必須環境設定
Argusフライトソフトウェアの開発環境構築は、以下の手順で行います。
- 必須環境: Ubuntu 22.04以降が必要です。
- 仮想環境構築: 依存関係の競合を避けるため、仮想環境を構築します。
- サブモジュール初期化: Gitサブモジュールを初期化し、更新します。
- インストールスクリプト実行: インストールスクリプトを実行します。
3. ビルドと実行:Mainboardの有無による手順の違い
Argusフライトソフトウェアのビルドと実行は、Mainboardの有無によって手順が異なります。
Mainboardがある場合:
run.sh
スクリプトを使用し、コンパイルとMainboardへの転送を自動化します。 ポイント:run.sh
は、Linux、MacOS、Windows、RPi上で動作します。
Mainboardがない場合:
- エミュレータまたはシミュレータを使用します。
- エミュレータ:
- シミュレータ:
4. 個別ビルドとMainboardへの転送:build.pyとmove_to_board.py
build.py
とmove_to_board.py
を使用することで、個別にビルドとMainboardへの転送が可能です。
-
ビルド:
-
Mainboardへ転送:
重要:
move_to_board.py
は、対象ボード上のファイル変更(追加、削除)を自動的に更新します。
5. トラブルシューティング:よくある問題とその解決策
Argusフライトソフトウェアの開発中に発生する可能性のある一般的な問題とその解決策を紹介します。
-
BoardがRead-Onlyモードになる:
- REPLにアクセスし、以下のコマンドを実行します。
-
Boardのリフラッシュ:
- ボタンアクセス有: ファームウェアガイドを参照して、ボタンを使用してブートローダーを起動します。
- ボタンアクセス無: REPLにアクセスし、以下のコマンドを実行します。
main.py
に記述すると、ボードが無限ループに陥る可能性があります。
注意: 上記コマンドを
-
BoardがBootloaderでスタックする、または原因不明の動作をする:
- 最終手段として、ファームウェアフォルダにある「nuke」ファームウェアを使用してボードを「nuke」(初期化)します。MCUに対応したnukeファームウェアを選択し、ファームウェアガイドを参照してフラッシュしてください。
-
コードのコンパイルとMainboardへの転送ができない:
- 次の点を確認してください。
- Boardが電源に接続されているか (USB接続の場合 VSYSとGNDピンがjumpされているか)
- Boardの名前が正しく"ARGUS"に設定されているか (初期設定は"CIRCUITPY"の可能性あり)
- USBコネクタに問題がないか
- 次の点を確認してください。
-
データハンドラがエラーを報告する:
- タスクのデータ構造が変更された可能性があります。SDカードをワイプするスクリプトを実行してください。
-
Mainboardがランダムに再起動する(電圧降下):
- USB電源を使用している場合は、無線などのデバイスの消費電力を抑えてください。バーンワイヤを使用している場合は、強度を下げてください。
-
ターゲットボードに合わせてコンパイル前に設定を変更する必要があるか:
- いいえ、設定は自動的に検出されます。
まとめ:Argusフライトソフトウェア開発の成功に向けて
本記事では、Argusフライトソフトウェアの開発、インストール、そしてトラブルシューティングに関する重要な情報を提供しました。これらの情報を活用することで、Argus Boardを使ったプロジェクトを成功させ、CubeSat visual applicationsの可能性を最大限に引き出すことができるでしょう。
主要キーワード: Argus Board, フライトソフトウェア, 軌道決定
関連ロングテールキーワード: Argus Board 開発環境構築, CubeSat 画像処理, オンボードML