Space Station OSが公開されたので触ってみた
はじめに
こんにちは、某SIerでSEをやっている宇宙も好きなnekorush14です✨。
今回は先日GitHubで公開されたSpace Station OSが面白そうだったので、手元のMacBook上で仮想マシンを作って動かしてみた話をします。
👆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種類です。
- 2021年にISSで発生したNauka incidentにおいてシステム/人々がどのように反応したかを推定する
- 架空の困難なケース
これらのシナリオの目的は"障害検出"、"分離"、"回復"(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.04
、ROS 2 Humble
(Ubuntu 22.04向けのROS2)が前提となっていましたが、Ubuntu 24.04、Parallelsの仮想環境でも十分動くことがわかりました。
また、OSSであるため、個人を含めて宇宙開発向けのソフトウェアを身近に感じられる良い取り組みだと感じました。
公開されてまもなく、私もまだ中身を細かく見られていないので、ソースを眺めつつどんな事ができるのかじっくり見ていきたいです。
Discussion