🛰️

Space Station OSが公開されたので触ってみた

2024/11/15に公開

はじめに

こんにちは、某SIerでSEをやっている宇宙も好きなnekorush14です✨。
今回は先日GitHubで公開されたSpace Station OSが面白そうだったので、手元のMacBook上で仮想マシンを作って動かしてみた話をします。

https://github.com/space-station-os/space_station_os
👆Space Station OSのGitHubリポジトリ

環境

今回動かした環境は以下の通りです。

  • Host: MacBook Pro 14 inch, 2021 - M1 Pro/32GB memory
  • Guest: Ubuntu 24.04.1 LTS ARM64/4.0GiB
  • Hypervisor: Parallels Desktop 20 for Mac Pro Edition

UbuntuはParallelsのControl CenterからDownload Ubuntu Linuxを選択して自動セットアップされた最新版のUbuntuを使用します。


Download Ubuntu Linuxを選択してセットアップ

Setup

Space Station OSを動かすために、作成した仮想環境にROSをセットアップします。
ROSはRobot Operating Systemの略で、ロボット向けのソフトウェアプラットフォームです。
参考: ROS: Home

今回はVersion 2(ROS2)のDesktopを使用します。

Ubuntu上でTerminalを立ち上げ、以下のコマンドでセットアップします。

# Packageを最新化
sudo apt update; sudo apt upgrade -y

# ROS2-desktopをインストールするためのインストールスクリプトリポジトリをCloneします
git clone git@github.com:Tiryoh/ros2_setup_scripts_ubuntu.git

# Ubuntu 24.04なので、ROS 2 Jazzyを使用します
cd ros2_setup_scripts_ubuntu
./ros2-jazzy-desktop-main.sh

# インストールが完了したら、rosのセットアップスクリプトをbashrcに追加します
echo "source /opt/ros/jazzy/setup.bash" >> .bashrc
# bashrc再読み込み
source ~/.bashrc

# ROS2で使用するシミュレータをインストールします
sudo apt install ros-${ROS_DISTRO}-ros-gz -y

# シミュレーターを起動する際の環境変数をbashrcに追加しておきます
echo 'export LIBGL_ALWAYS_SOFTWARE=1' >> ~/.bashrc
echo 'export QT_QPA_PLATFORM=xcb' >> ~/.bashrc

# bashrc再読み込み
source ~/.bashrc

以上でROSのセットアップは完了です。
続いて、Space Station OSのリポジトリをCloneし、リポジトリのREADMEに従ってセットアップします。

# 適当なディレクトリに移動します (ここではホームディレクトリ直下のWorkspaceに移動)
cd ~/Workspace

# Space Station OSのリポジトリをCloneします
git clone git@github.com:space-station-os/space_station_os.git

# Space Station OSをコンパイルします
cd space_station_os
colcon build

# Buildした成果物をシェルで使用できるようにセットアップスクリプトを読み込みます
source install/setup.bash

以上でセットアップは完了です。

Demo

現在用意されているデモシナリオは以下の2種類です。

  1. 2021年にISSで発生したNauka incidentにおいてシステム/人々がどのように反応したかを推定する
  2. 架空の困難なケース

これらのシナリオの目的は"障害検出"、"分離"、"回復"(FDIR)を学ぶためとのことです。

今回は1つ目のデモシナリオを試してみました。
シナリオは以下のコマンドで実行します。

# Terminal 1
# このターミナルはシナリオの説明とユーザ入力の処理を行います
ros2 run space_station_gnc demo1a_nauka_incident_estimate

# Terminal 2
# このターミナルは宇宙ステーションの推進システム/姿勢制御を処理します
ros2 launch space_station_gnc launch_gnc.py

# Terminal 3
# このターミナルはROSの共通ツールであるRVIZを起動します
ros2 run rviz2 rviz2

Terminal3のコマンドを実行することでRVIZが起動します。
その後、表示されたウィンドウ内の左ペインに表示される"Fixed Frame"をmapからworldへ変更します。

次に、Addを押してRobotModelを選択します。

左下にAddボタンがある


ダイアログでRobotModelを選択する

その後、Description Topic/robot_descriptionへ変更し、画面中央の3D空間をマウスホイールスクロールでズームアップします。

最後に、Terminal 1でokを入力してEnterキーを入力します。
これによりデモが開始し、以下のような画面になります。

まとめ

今回は公開されたSpace Station OSをセットアップし、デモシナリオを試してみました。
環境面ではUbuntu 22.04ROS 2 Humble(Ubuntu 22.04向けのROS2)が前提となっていましたが、Ubuntu 24.04、Parallelsの仮想環境でも十分動くことがわかりました。

また、OSSであるため、個人を含めて宇宙開発向けのソフトウェアを身近に感じられる良い取り組みだと感じました。
公開されてまもなく、私もまだ中身を細かく見られていないので、ソースを眺めつつどんな事ができるのかじっくり見ていきたいです。

参考資料

Discussion