シリーズ
あくまで予定ですが,こんな感じで書いていこうかなーと思ってます.
- 【とりあえずやってみる】編 <- イマココ
- 【自分好みに作りたい】編 <- (2024/12/17公開予定)
- 【リアルタイム可視化機能を作った背景】編 <- (未着手)
- 【技術について理解する】編 <- (未着手)
本来は背景を先に書くべきですが,都合上HowToの部分を先に示します.
背景
CanSatチームFUSiONMission-5では,「宇宙でも使えるOBCを使ったCanSat」というコンセプトのもと,開発を行い2024種子島ロケットコンテストに参加し,ベストプレゼンテーション賞をいただくことができました.
FUSiON では(一部未完成のSubSystemを除いて)GitHubにてソフトウェア等を公開しています.
目的
今回解説するのはMission-5の地上局の使い方です.
本記事では地上局のセットアップとしてとりあえずサンプルを動かすというところをやってもらおうと思います!
また、本記事はゆる募 Advent Calendar 2024/12/10として書いていたりしますー
※あくまで利用法の一つの記事であり,GrafanaやInfluxDBの公式記事ではありません.
対象者層
- リアルタイムでデータを可視化したい人
- センサデータの時間履歴
- ローバ等のGNCデータのリアルタイム表示
- 常微分方程式を解くようなシミュレータの結果のリアルタイム表示
元はCanSatや宇宙機の地上局の簡易版として作ったものですが,結果的に様々な用途が考えられると思うのでとりあえず動かせる環境がPCにあるといろいろ便利な気はします!
可能な限り丁寧に説明しているつもりなのでぜひご覧ください.
GrafanaとInfluxDBについて
これらは,可視化ツールと時系列データベースという関係になっています.
Appendeixにそれぞれの公式HPといい感じの記事とかを載せますが,見るのは環境構築終わった後でいいです.
最初は以下のイメージが理解できていればOk!
- Grafana:データベースから参照して時系列データを可視化するツール
- InfluxDB:可視化ツールの参照先となる時系列データベース
環境構築・サンプルの実行
さっそく内容に入っていきます!
ダミーデータを可視化してみましょー!
(今回はWindowsを前提としていますが,WSL2上での実行を確認しています.やろうと思えばAWS等にもデプロイできるかと思います。)
1.Dockerの導入
- 入っている方はいいですが,入っていない方はDockerをぶち込んでください.
2.ローカルに地上局リポジトリをclone
-
自分のPCの好きな場所に可視化のための環境を構築しましょう!
-
git cloneできれば何でもいいですが,GitBashでのやり方を紹介します!
- GitBash入っていない人はぶち込んでねー
- GitBashを開いてお好きなディレクトリ(ファイル)に移動してください.
-
お好みのディレクトリに移動できたら
git clone [お好みの方法で]
-
HTTP
-
SSH
-
HTTP/SSH/CLIなどいろいろある
3.システム起動
-
DockerDesktopの立ち上げ
-
ターミナル立ち上げ
-
cloneしたリポジトリのパスを開いてください
-
Docker立ち上げ
docker compose up -d
- このコマンドについて
- 要するにDockerを動かしてInfluxDBやGrafanaを動くにするためのコマンドと思ってもらっていいはずです.(後で自分も理解する)
これで立ち上げは完了です!動作確認していきましょー
4.システム動作確認
- とりあえずGrafanaにアクセスしてみましょう!
-
webブラウザの検索窓にhttp://localhost:8085/dashboardsと入れてみてください
- 上の感じでGrafanaにログインを求められますので,以下のように入力してください
- UserName:admin
- Password:admin
- これらの変更を推奨されますがひとまずskipで問題ないです
- 上の感じでGrafanaにログインを求められますので,以下のように入力してください
-
- InfluxDBにデータを投入
-
/mission5-ground-station
のフォルダをワークスペースとしてVSCodeを開きます!- VSCodeが入っていない人は,こんな感じでVScodeを入れてください
- Python環境がVSCodeにない人も,上のリンクを参考に導入してください
- エクスプローラーからドラッグ&ドロップで開けます.
-
client/debug_rand_dummy_client.py
を開いてください.
- 続いて,Pythonのパッケージをインストールします
- VS Codeの右上らへんにあるやつをクリックしてVSCodeのターミナルを開きましょう.
- requirements.txtに必要なpipを入れておいたのでこんな感じでパッケージをインストールできます!
pip install -r requirements.txt
- サーバーにダミーデータを送りつけます.
-
client/debug_rand_dummy_client.py
を実行してください
-
-
http://localhost:8085/dashboardsのwindowを確認
-
client/debug_rand_dummy_client.py
が吐き出すデータを可視化しています!
-
-
https://drive.google.com/file/d/1ud4kk-sb2rYAekw7J_Cjiwoekocd4igI/view?usp=drive_link
(動画埋め込みの具合が悪いのでとりあえずURLを貼っておきます.)
こんな感じで可視化されるはずです!
以上で動作確認が完了しました。
次回は【自分好みに作りたい】編 です.InfluxDBに入るデータ構造の作り方や,好みのダッシュボードの作り方について解説していきます!
さいごに
不明点等あったらGitHubhttps://github.com/CanSat-FUSiON/mission5-ground-stationの方でissue立ててもらってもいいですし、ここに質問してくれてもいいです。
謝辞
Mission-5で「Grafana + InfluxDB」という構成で地上局を動かすことができたのは,以下のメンバーのおかげです.
https://github.com/MayaAbe
https://github.com/Ka-Sou
https://github.com/771-8bit
詳細な経緯等についてはシリーズ3番目の【リアルタイム可視化機能を作った背景】編にて書かせていただきます.
Appendix
Grafanaとは?
- とりあえず公式のURLを貼付しておきます
- いい感じの記事とか
InfluxDBとは?
- とりあえず公式のURLを貼付しておきます
- いい感じの記事とか