Space Cubics のソフトウェアエンジニアのポジションに応募して頂いた方に受けてもらうテストです。 受験者の経験に合わせ、 3つの中から得意なものをやってもらったり、Space Cubicsから実施してもらうテストを指定します。
ネットや本など、利用できるものはすべて利用してかまいません。もちろん AI を利用しても問題ありません。ただし利用したものは教えてください。
decode/ds_tlm.bin
は、NASAが開発する cFS と呼ばれるオープンソースのフライトソフトウェアが生成した
Telemetry (100 telemetry分) のバイナリーファイルです。
以下の情報をもとに、Telemetryのフォーマットを調査して、バイナリーファイルをデコードして、全てのテレメトリの各パラメータ値を出力するツールを作成してください。
出力方法や表示の仕方、粒度などは自由に決めて問題ありません。
また指定されない限り任意の言語を使っていただいて構いません。
decode/ds_tlm.bin
は、DS applicationの House Keeping telemetry の dump です- House Keeping (HK) telemetry の パラメータ (Headerを除く) は、Big endian とします
- HK telemetry 内で定義されている OS_MAX_PATH_LEN は 32 とします
- Headerで定義されている
CFE_MISSION_SB_PACKET_TIME_FORMAT
はCFE_MISSION_SB_TIME_32_16_SUBS
とします - Headerで定義されている Timeの起点時間 (Epoch)は J2000.0 (
2000-01-01 11:58:55.816 UTC
) とします - DS application の version は 2.5.1、cFE の version は 6.5.0 とします
- 実行環境が Little / Big endianどちらでも動作することを想定してください。実際に Big Endian の環境で動作させる必要はありませんが、動作確認できた場合はその手順も添付してください
- ツールの使い方、動作環境の簡単な説明と、実行結果も添付してください
Space Cubics が開発するOBCには、Zephyr RTOS を採用しています。Zephyr は、GitHubでオープンに開発されており、日々 issue が発行されています。 現在 open になっている Zephyr の issue のうち、任意の複数の issue を選択し、修正案を作成後、実際に Upstream に宛てて Pull Requestを作成してください。 issue の中には、 “Good first issue” と呼ばれる、初めてコントリビュートする人に優しい issue もあります。
- GitHubアカウントを保持していない場合は、新規に作成してください
- 選択する issue については、Cのソースコードを修正するものを選択してください (CMakeや、 Python スクリプト、ドキュメントなどの修正は除く)
- Git のコミットに関しては、How to Write a Git Commit Message や Git commit best practices などを一読することをお勧めします
hexapod/
ディレクトリに含まれる資料は、SSO 500 Km を周回する衛星と通信するための S-Bandアンテナを搭載する Hexapod アンテナ台の試作に関するものです。
このアンテナ台を含む衛星トラッキングシステムの仕様書を、自分なりに作成してください。
衛星トラッキングシステムは、Acquisition of Signal から Loss of Signal までの 1パスの間、指定された衛星と通信をする必要があります。 パスの計算などは、 Gpredict というオープンソースソフトウェアを想定していますが、他のソフトウェアを利用しても構いません。
仕様として必須なのは、以下の 3点です。
- Hexapod であること
- LEO を周回する衛星との通信およびトラッキングできること
- S-Band を使用すること
これ以外の仕様は、自由に決定してもらって構いません。提供している資料は、参考資料であり、不完全かつ不明な点を多く含んでいます。 自分で決定できない部分については、いつでも質問してください。
また全体のシステム構成の検討が難しい場合、必要となるコンポーネントに特化した設計検討でも構いません。
以下は、参考情報です。
- Hexapod とは↓こういうものです。
- Hexapod の足の部分のアクチュエーターとモータードライバーは、以下を想定しています
- Linear Actuator: RS PRO 1774521 Electric Linear Actuator
- Motor Driver: 10Amp 5V-30V DC Motor Driver
- ROSでは、PI製の Hexapod がサポートされています
- 衛星のトランシーバーは、 Satlab の SRS-3 を想定しています