SLEIPNIR-ZERO のシステム全体像です。データの流れに沿って、機体側から地上側へ順に説明します。各コンポーネントの詳しい話は末尾の解説記事リンクからどうぞ。
データの流れ
- 機体のセンサ(BNO055 IMU、BME280 気圧センサ)が加速度・角速度・姿勢・気圧を計測する
- テレメトリ送信機(Raspberry Pi Pico 2 W)が計測値を融合し、BLE で地上へ送信する
- 地上の固定カメラが機体を撮影し、画像処理で機体位置を推定する
- 地上局 PC がテレメトリとカメラの推定位置を突き合わせ、機体の状態を把握・記録する
機体側
アビオニクス基板「ヒコロボ基板」
受信機・マイコン・センサ・サーボの配線を1枚にまとめる自作基板です(KiCad 設計)。核になるのは 4053 アナログマルチプレクサによる操縦系統の切り替えで、プロポの受信機から来る 6ch の信号と、マイコンが生成する制御信号を選択できます。自動制御の実験中でも手動操縦に戻せる構成です。I2C / SPI / アナログのセンサ増設コネクタも備えます。
テレメトリ送信機
Raspberry Pi Pico 2 W(RP2350、デュアルコア Cortex-M33)上で動作します。片方のコアでセンサ(BME280・BNO055)を読み、もう片方のコアで高度・姿勢を融合して、BLE UART(Nordic UART Service)で地上へ送ります。機体状態の目視確認用に WS2812 フルカラー LED も制御します。ファームウェアは自作マイクロカーネル「Shizuku」の上に、センサドライバ・融合・送信がそれぞれ独立したオブジェクトとして載る構成です。
地上側
外部カメラトラッキング
飛行エリアを見渡す固定カメラの映像から機体を検出し、位置を推定します。機体に測位装置を積まないこのシステムの要です。ソフトウェアは開発中で、リポジトリは準備でき次第公開します。
地上局ツール
テレメトリの受信・可視化・記録には Python 製のツール群(BLE UART GUI、テレメトリクライアント、操縦クライアント)を使います。受信したデータは CSV で記録され、飛行後の解析に使えます。テレメトリ送信機のリポジトリの tools/ に含まれています。
リポジトリ一覧
| リポジトリ | 役割 |
|---|---|
| waiteu-git/hikorobo | アビオニクス基板(KiCad 設計データ・製造データ) |
| danfunc/flight_robocon_telemetory_sender | テレメトリ送信機ファームウェア(Shizuku カーネル含む)+ 地上局ツール |
| indoor-plane-tracker | 外部カメラトラッキング(公開準備中) |