4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Space ROS (Robot Operating System)Advent Calendar 2024

Day 5

【概要#4】Space ROSのパッケージ構成

Last updated at Posted at 2024-12-05

著者:@YukiIkeda_robot@TheJuniorTheSenior

はじめに

本記事は、Space ROS Advent Calendar 2024の1つです。

Space ROS Advent Calendar 2024の概要については、下記の記事をご参照ください。

また、Space ROSについては同じくSpace ROS Advent Calendar 2024の記事である下記をご参照ください。

本記事では、このSpace ROSのパッケージ構成についてまとめていきます。

Space ROSのパッケージ構成

宇宙機・宇宙ロボット向けのROS(Robot Operating System)であるSpace ROSは、ROSとは異なるSpace ROS独自のGitHub Organization上で開発されています。Space ROSのGitHub Organizationは下記をご参照ください。

本記事では、このSpace ROSののGitHub Organization上に公開されているリポジトリおよびパッケージの構成とその役割についてお話ししていきたいと思います。

ここでいうリポジトリはGitHub上でプロジェクトのソースコードやドキュメント、開発履歴を管理・共有する場所のことを指し、パッケージはリポジトリで作成されたライブラリやバイナリなどの成果物を配布・インストールするための単位を指しています。

早速ですが、Space ROSのGitHub Organization上に公開されているリポジトリは、下記の12個になります(2024/12/05時点)。

Space ROSのリポジトリ一覧
space-ros
 ├── space-ros
 ├── demos
 ├── simulation
 ├── docker
 ├── docs
 ├── process_sarif
 ├── spaceros.org
 ├── requirements
 ├── dashboard
 ├── ikos
 ├── check-commit-message-action
 └── github

こちらのリポジトリは、それぞれROS 2をベースにしたSpace ROS独自の機能を有しています。Space ROS独自の機能については、下記の記事で詳細にまとめていますので、こちらも合わせてご参照ください。

また、Space ROSのリポジトリは、他のリポジトリのサブリポジトリのように運用されているものもあります。初めての方は、まず docker リポジトリ、space-ros リポジトリから触れてみるのがおすすめです。

space-ros

space-rosリポジトリは、Space ROSプロジェクトの中心的なパッケージ(本体)です。ROS 2を宇宙機・宇宙ロボット向けにカスタマイズして提供しています。

space-ros内に存在する各ファイルや各ファイルやディレクトリは、ROS 2を宇宙機・宇宙ロボット向けに拡張するSpace ROSの開発、運用、管理を円滑に進めるために重要な役割を担っています。

space-rosのパッケージ構成
space-ros
 ├── docker
 ├── docs
 └── logos

demos

demosリポジトリは、Space ROSプロジェクト内で提供されるデモンストレーション用のコードを集めたリポジトリです。ユーザはSpace ROSの使い方の理解と実装方法を学ぶことができます (いわゆるチュートリアル的なものです)。現在、Space ROS本体よりもデモの方が精力的に開発がされている印象です。

このリポジトリは、Space ROSをどのように使用するか、またその機能が実際にどのように動作するかを示すためのサンプルコードやデモが含まれています。

サンプルコードは、Space ROSの基本的な機能からより高度なシステムの動作まで、幅広いデモンストレーションが構成になっています。現時点でのデモは、火星探査ローバーのCuriosityや、ISSに搭載されたマニピュレータのCanadarmなどのシミュレータを用いた、ロボット操作、ナビゲーション、モーションプランニングや、C++ PMR メモリアロケータなどが用意されています。

デモの実行はdockerリポジトリから行います。demoリポジトリは、dockerリポジトリのspace_robotsをビルドする際に用いられるものです。まずはデモを触ってみようという方は、dockerリポジトリをご参照ください。

demosのパッケージ構成
demos
 ├── canadarm
 ├── canadarm_moveit_config
 ├── mars_rover
 └── space_ros_memory_allocation_demo

simulation

simulationリポジトリは、Space ROSプロジェクト内で提供されているデモ用のモデルやツールが含まれているリポジトリです。

上記で説明したdemosパッケージを補足するような内容になっています。Git LFS (Large File Storage) を使って、大きな容量のファイルを参照するように管理しています。

具体的には、火星探査ローバーのCuriosityや、ISSに搭載されたマニピュレータのCanadarmなどのモデルが格納されています。

simulationのパッケージ構成
simulation
 ├── hooks
 └── models

特に、火星探査ローバーのCuriosityのデモは、明日公開予定のSpace ROS Advent Calendar 2024の記事で、詳しく説明していきますので、楽しみにしていてください!

  • 【概要#5】Space ROSのMars Roverデモ (Coming Soon)

また、今後追加するであろうRACS2 (ROS and cFS System) のデモと、TurtleBot上でのデモもSpace ROS Advent Calendar 2024の記事にまとめる予定ですので、ぜひ楽しみにしていてください!

【ツール#3】RACS2デモ (Example、MarsRoverデモ) (Coming Soon)
【ツール#5】Space ROSを用いたTurtleBotのデモ (Coming Soon)

docker

dockerリポジトリは、Space ROSプロジェクトにおける開発およびテスト環境を提供するためのリポジトリです。このリポジトリでは、Space ROSの各種デモ環境を実行するのに必要な環境を、Dockerコンテナを利用して簡単に構築できるようにしています。

Dockerコンテナを使うことで、ユーザーは自身のローカル環境に依存することなく、すぐにSpace ROSの開発環境をセットアップできるようになります。これにより、環境構築の手間が大幅に削減され、複数のユーザ間が同じ環境で作業できるようになります (Dockerって便利ですよね)。

dockerのパッケージ構成
docker
 ├── moveit2
 ├── nav2_demo
 ├── navigation2
 ├── renode_rcc
 ├── rtems
 ├── space_robots
 ├── spaceros
 └── zynq_rtems

Dockerコンテナを使った、火星探査ローバーのCuriosityのデモについて、明日公開予定のSpace ROS Advent Calendar 2024の記事で、詳しく説明していきますので、楽しみにしていてください!

  • 【概要#5】Space ROSのMars Roverデモ (Coming Soon)

docs

docsリポジトリには、Space ROSドキュメントのソースが格納されています。このドキュメントには、以下の項目が提供されています。

  • Space ROSの使用方法
  • インストール手順
  • チュートリアルとサンプルコード
  • 開発者向けのAPIリファレンス
  • システム設計とアーキテクチャ
docsのパッケージ構成
docs
 ├── _static
 ├── docker
 └── source

process_sarif

process_sarifリポジトリは、静的解析ツールの結果を取り扱うためのツールセットを提供しています。(静的解析ツールは、プログラムを実行せずにコードの構造や構文を解析して、エラーや脆弱性を検出するソフトウェアです)

具体的には、静的解析ツールの出力の標準規格として、SARIF (Static Analysis Results Interchange Format) データを処理・操作するためのツール群が含まれているリポジトリです。

Space ROSでは、すべての静的解析ツールが、このSARIF形式で出力するようになっています。

process_sarifのパッケージ構成
process_sarif
 ├── docs
 ├── process_sarif
 ├── snap
 └── test

spaceros.org

spaceros.orgリポジトリは、Space ROSプロジェクトの公式ウェブサイトを構築するためのソースコードが格納されているリポジトリです。

ここでは、Space ROSの概要や最新ニュース、開発者向けの情報やイベント告知、関連する記事や動画へのリンク集などが確認できます。

spaceros.orgのパッケージ構成
spaceros.org
 ├── plugins
 ├── site
 └── theme @ 10e6062

requirements

requirementsリポジトリは、Space ROSのシステム要件を整理し、文書化するためのリポジトリです。

主に、宇宙システムで求められる機能や要件が定義されており、その中でETS (イベント&テレメトリーサブシステム) に関連する要件が強調されています。このリポジトリは、要件の追跡や検証、そして規格準拠をサポートするため、の役割を担っています。

requirementsのパッケージ構成
requirements
 └── ets

dashboard

dashboardリポジトリは、Visual Studio Codeのプラグインとして、静的解析ツールで出力されたSARIFファイルを読み込み、静的解析ツールで検出された問題を視覚化するためのリポジトリです。

dashboardのパッケージ構成
dashboard
 ├── demos
 ├── samples
 └── src

ikos

ikosリポジトリは、Space ROSプロジェクトにおける静的解析ツールであるIKOSを取り扱うためのリポジトリです。

IKOSは抽象的解釈の理論に基づいたNASAの静的解析ツールで、Space ROSではこのIKOSを静的解析ツールの1つとして組み込んでいます。パッケージの中身としては、本家のIKOSリポジトリをフォークしたものとなっています。

ikosのパッケージ構成
ikos
 ├── analyzer
 ├── ar
 ├── cmake
 ├── core
 ├── doc
 ├── frontend
 ├── script
 └── test

IKOSの詳しいインストール方法や使い方は、Space ROS Advent Calendar 2024の記事にまとめる予定ですので、ぜひ楽しみにしていてください!

【コア#4】 IKOS(基本編) (Coming Soon)
【コア#5】 IKOS(実践編) (Coming Soon)

check-commit-message-action

check-commit-message-actionリポジトリは、GitHubでのコミットメッセージの一貫性をチェックするためのGitHub Actionsを提供するリポジトリです。

このツールは、プロジェクトにおけるコードのコミットメッセージが一定の規則に従っているかを自動的に確認します。

check-commit-message-actionのパッケージ構成
check-commit-message-action

.github

.githubリポジトリは、Space ROSのGitHub OrganizationにおけるREADMEを管理するためのリポジトリです。

Space ROSのGitHub OrganizationのOverviewページに表示されているREADMEファイルが格納されています。

.githubのパッケージ構成
.github
 └── profile

最後に

ここまでで、ざっくりSpace ROSのパッケージ構成についてまとめてみました。これらのパッケージは、Space ROSで開発する機能の構想に基づいていますので、下記の記事も合わせてご参照ください (再掲)。

より詳細にパッケージの中身を見ていくと、Space ROSのデモとして試せるものは色々出てきていることがわかります。NASAやJAXAなどの宇宙機関は、この実証機会に向けて開発を進めているので、今後のSpace ROSのアップデートにも期待です!これらの開発が進み、実際の宇宙でROSを動かせるようになれば、大盛況間違いなしですね!

また、宇宙機・宇宙ロボットの開発を加速させるためにも、地上ロボットの方々の宇宙ロボットの開発ハードルを下げるためにも、Space ROSを皆さんに触ってもらい、フィードバックを受けて開発を進めていくことが大切かと思います。

今後掲載予定のSpace ROS Advent Calendar 2024でこれらのデモについてもまとめていきますので、ぜひぜひ触ってみてください。ぜひ一緒にSpace ROSを盛り上げていきましょう!!

Space ROS Advent Calendar 2024の投稿・購読もお願いします!!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?