Robot Operating System
ROSはソフトウェアの再利用性を高めるため、分散システムとして設計されている。ノードと呼ばれるプロセスが処理結果を送受信しあいながら、ROSは1つの大きなソフトウェアシステムとして動作する。ROSのプロセスは、ピア・ツー・ピア型のネットワーク(以下、「ROSネットワーク」と呼ぶ)を構成し、ROSネットワークは計算グラフとして表現できる。
ROSは多種多様のパッケージやツールが複合したソフトウェアシステムである。各プログラミング言語に対応する「クライアント層」、具体的なアプリケーションを実装した 「ロボットアプリケーション層」、個別のアプロケーションプログラム作成のための「アプリケーションフレームワーク」、通信を担う「コミュニケーション層」、ハードウェア制御のための「ハードウェアインタフェース層」、開発を支援する「ソフトウェア開発ツール」、そして「シミューレータ」で構成される。