#この記事は
Dronecode本家サイトのFlight Controller Porting Guideページの抜粋・翻訳です。
(Portとは移植のこと)
Flight Controller Porting Guide
PX4用の新しいフライトコントローラHWを作成したいときのガイド
PX4 Architecture
PX4は主に2つの層からなります。
1つはボードサポートとホストOS上のミドルウェアとボードサポート層、もう一つは src/modules
にある Flight Stackといったアプリケーション層です。
アプリケーション/フライトスタックはどのボードターゲットでも実行できるため、このガイドはホストOSとミドルウェアにのみ焦点を当てています。
Flight Controller Configuration File Layout
ボードの起動ファイルと構成ファイルは、/boardsの下の各ボードのベンダー固有のディレクトリにあります。
(例えば、boards/VENDOR/MODEL/
)
例として、FMUv5の場合
- すべてのボード特有なファイルは/boards/px4/fmu-v5に
- ビルド設定は/boards/px4/fmu-v5/default.cmake
- ボード特有な初期化ファイルは/boards/px4/fmu-v5/init/rc.board_defaults
- もしボードのディレクトリに
init/rc.board
ファイルが見つかれば、ボード特有の初期化ファイルは自動的に起動スクリプトに取り込まれます。 - このファイルは特定のボードにのみ存在するセンサーなどを起動させるために利用されます。
- FMUv5の場合、すべてのPixhawk 4センサーが開始されていることがわかります。また、より大きなLOGGER_BUFが設定されます。
- もしボードのディレクトリに
Host Operating System Configuration
このセクションでは、サポートされている各ホストOSを、新しいフライトコントローラハードウェアに移植するために必要な構成ファイルの目的と場所について説明します。
NuttXの場合
NuttX Board Porting Guideを参照のこと
Linuxの場合
Linuxボードには、OSとカーネル構成は含まれていません。これらは、ボードで利用可能なLinuxイメージによってすでに提供されています。
- boards/px4/raspberrypi/default.cmake - ラズパイのクロスコンパイル
(翻訳したけどどうも意味分からず。。。)
Middleware Components and Configuration
このセクションでは、さまざまなミドルウェアコンポーネントと、それらを新しいフライトコントローラハードウェアに移植するために必要な構成ファイルの更新について説明します。
QuRT/Hexagon
(省略)
RC UART Wiring Recommendations
フライトコントローラボードとRCの(UART)接続はRXとTXのピンを分ける事が推奨される。が、もしRXとTXピンをひとまとめにしている場合は、競合を防ぐためにUARTはシングルワイヤーモードにしないとならない。
この設定はボードのマニフェストファイルで行う。
例としてはpx4fmu-v5
Officially Supported Hardware
PX4プロジェクトは、FMU標準リファレンスハードウェアと、その標準と互換性のあるすべてのボードをサポートおよび維持しています。これにはPixhawkシリーズが含まれます(公式にサポートされているハードウェアの完全なリストについては、こちらを参照してください)。
公式サポートのボードのメリットは、
- PX4の移植版がPX4のリポジトリから利用できるようになります。
- QGroundControlから利用できる自動的にビルドされたファームウェア
- もろもろののエコシステムとの互換性(翻訳自信なし)
- CIでの自動チェック(コミュニティにとって安全は常に重要です)
- 飛行テスト
ボードメーカーは、FMU仕様との完全な互換性を目指してください。
完全な互換性があれば、PX4の継続的な日々の開発のメリットを享受でき、仕様からの逸脱をサポートすることによるメンテナンスコストがかかりません。
メーカーは、仕様から逸脱する前に保守のコストを慎重に検討する必要があります(コストは仕様からの逸脱量に比例します)。
また、PX4開発チームには安全なソフトウェアをリリースする責任があることにも注意してください。そのため、ボードのメーカーには、移植版を最新の状態に保つために必要なリソースを投入することを求めます。
もしあなたがあなたのボードにPX4の公式サポートがほしい場合は:
- あなたのボードは市場で入手できる必要があります。
- PX4の開発チームが移植検証を行うために、ハードウェアを利用できる必要があります。(詳細はlorenz@px4.ioにコンタクトしてください。)
- そのボードはすべてのテストスイートと[テストフライト][https://dev.px4.io/master/en/test_and_ci/test_flights.html]をパスしている必要があります。
PX4プロジェクトは、プロジェクトで設定された要件を満たさない場合、新しい移植版の受け入れを拒否する(または現在の移植版を削除する)権利を留保します。
公式のフォーラムとチャットでコアデベロッパーチームやコミュニティに連絡できます。