[Documentation] [TitleIndex] [WordIndex

(訳注:最新の情報は原文を参照してください.)

ROS のソフトウェアはパッケージに集約されています.パッケージには便利なモジュールを構成する論理的な ROS ノードやROSから独立したライブラリ・データセット・設定ファイル・サードパーティ製ソフトウェア・その他が含まれています.これらのパッケージの目的はソフトウェアが簡便に再利用できるようにするための,簡単に使用できる機能を提供することです.一般的には,ROS パッケージは「十分な機能は便利だが,他のソフトウェアから使いにくくなるほどパッケージが重く難解になることは良くない」という,ゴルディロックス(訳注:絵本のタイトル.意味は”バランスの良い”)の思想を満たすことを一番に考えています.

パッケージは手作業でも roscreate-pkg といったツールを使っても簡単に作成することができます.ROS のパッケージはシンプルに ROS_ROOTROS_PACKAGE_PATH 以下に, manifest.xml を含んで存在します(ROS 環境変数を参照してください).パッケージは ROS スタックと統合されている場合もあります.

manifest.xml ファイルを読んだり書いたりするためには,ドキュメントのマニフェストの項を読んでください.

普通のファイルとディレクトリ

ROS パッケージはだいたい普通の構成をしています.そこには幾つかのディレクトリとファイルがあります.

コマンド-ライン ツール

パッケージは ROS 内部でファイルが統合されるときの,とても中心的な概念です.そのため ROS にはこれらを整理するための幾つかのツールが用意されています.これらは:

普通の Unix のシェルに,パッケージの扱いを助ける機能を追加する拡張があります.一番良く使われているのは rosbash で,これは普通の Unix のシェルに ros を語頭につけたものです.よく使われるのは,roscd で,これはパッケージやスタックを cd で言うディレクトリのように扱うためのものです.

roscd roscpp_tutorials

クライアント ライブラリのサポート

Python

Python では,roslib パッケージ内のroslib.packages モジュールを ROS パッケージについての情報を得るために使うことができます.例えば:

import roslib.packages

# 全てのパッケージをリスト化する(rospack list と同等)
roslib.packages.list_pkgs() 

# rospy_tutorials のファイル パスを取得する
roslib.packages.get_pkg_dir('rospy_tutorials')

# rospy_tutorials/talker.py のファイル パスを取得する
roslib.packages.find_node('rospy_tutorials', 'talker.py') 

C++

C++では,roslib パッケージ内のros::package を ROS パッケージについての情報を得るために使うことができます.例えば:

#include <ros/package.h>

...

  std::string path = ros::package::getPath("roslib");
  using package::V_string;
  V_string packages;
  ros::package::getAll(packages);

2022-05-28 12:40