<> ROSの挙動に影響を与えるたくさんの環境変数があります。もちろん、システムでよくつかわれ頻繁にドキュメントで述べているので、もっとも理解するのが大切なのは、`ROS_MASTER_URI`, `ROS_ROOT`, `ROS_PACKAGE_PATH`です。 環境変数はROSでさまざまな役割を担っています。 * ''パッケージを見つける'':まず、ROS_ROOT` と `ROS_PACKAGE_PATH`はROSにファイルシステムの中に[[Packages|packages]] と [[Stacks|stacks]]に位置が特定できるようにします。また`PYTHONPATH`は、PythonインタプリタがROSのライブラリのディレクトリを同定するためにセットすべきです。 * ''ノードランタイムに影響する'': また、ノードの実行のされ空に影響を与えるいくらかのROSの環境変数があります。`ROS_MASTER_URI`は[[Master]]がどこにいるかを示す重要な環境変数です。`ROS_IP` と `ROS_HOSTNAME`はノードのネットワークアドレスに影響し、`ROS_NAMESPACE`でnamespaceを変更する事ができます。`ROS_LOG_DIR`は、どこにlogファイルが書かれるディレクトリを設定します。これらの多くは、同様に環境変数より優先度をもつ[[Remapping Arguments]] によって上書きされます。 * ''ビルドシステムを変更する'': `ROS_BINDEPS_PATH`, `ROS_BOOST_ROOT`, `ROS_PARALLEL_JOBS`と `ROS_LANG_DISABLE`ライブラリがどこに見つかるかとどれがビルドされるかに影響します。 これらの環境変数とそれ以外は、より詳細に以下に書いてあります。 = Required ROS Environment Variables = ほとんどのシステムでは`ROS_PACKAGE_PATH`もまたセットされるが、`ROS_ROOT`, `ROS_MASTER_URI`, and `PYTHONPATH`がROSに必ず要求される環境変数です。デフォルトでは、それらは自動的に/opt/ros/fuerte/setup.bash.を実行することでセットされます。 == ROS_ROOT == `ROS_ROOT`は、ROScoreのパッケージがインストールされているところをセットします。 {{{ export ROS_ROOT=/home/user/ros/ros export PATH=$ROS_ROOT/bin:$PATH }}} == ROS_MASTER_URI == `ROS_MASTER_URI`はノードに対してどこにマスターがいるかを知らせるのに必要とされる設定です。 それは、マスターのXML-RPC URIにセットされるべきです。 離れて立ち上げっているノードに予期しない行動を導きうるので、`localhost`を使うときは、よく考慮すべきです。 {{{ export ROS_MASTER_URI=http://mia:11311/ }}} == PYTHONPATH == ROSは`PYTHONPATH`は'''たとえPythonでプログラミングしてなくても!'''更新されるべきで、たくさんのROSのインフラストラクチャーのツールはPythonにたよっており、ブートストラップのために[[roslib]]パッケージにアクセスする必要があります。 {{{ export PYTHONPATH=$PYTHONPATH:$ROS_ROOT/core/roslib/src }}} = 追加されたパスの環境変数 = == ROS_PACKAGE_PATH == `ROS_PACKAGE_PATH`はオプションですが、あなたの環境にソースからROSのパッケージを加えるとてもよく使う環境変数です。`ROS_PACKAGE_PATH`はOSのデフォルトの区切り文字(つまり、Unixライクなシステムでは':')を用いて、ひとつかそれ以上のパスから構成されます。これらの並べられたパスは、ROSのシステムにROSのパッケージをどこから見つければいいかを伝えます。もし、同じ名前のパッケージが複数あったならば、ROSはROS_PACKAGE_PATHの中に初めに出てくるものを採用します。 {{{ export ROS_PACKAGE_PATH=/home/user/ros/ros-pkg:/another/path }}} それぞれの`ROS_PACKAGE_PATH`のエントリは再帰的に検索することに注意してください。(そのパスの下のROSパッケージは見つかります。) = システムデータ環境変数 = == ROS_HOME == デフォルトでは、ROSは`~/.ros`にデータを書き込みます。この場所は`ROS_HOME`を設定することで変更する事ができます。あなたは、いくらかの書く師父ぉる他の位置を買えることを変えることができます。(例えば、`ROS_TEST_RESULTS_DIR`, `ROS_LOG_DIR`). == ROS_LOG_DIR == デフォルトでは、ROSは内部のログをROS_HOME/logに書き込みます。もし、この場所はROSにとって書き込めないのであれば、もしくは、他の場所に書いてもらいたいのなら、書き込みたい場所のパスをROS_LOG_DIRにセットしてください。 == ROS_TEST_RESULTS_DIR == テストの結果が書き込まれるディレクトリです。 = 追加のバッシュ環境変数 = == ROS_LOCATIONS == `ROS_LOCATIONS`は便利な場所のキーネームを提供するオプション的な環境変数です。それは{{{:}}}で区切られたキーとロケーションの組み合わせのリストです。どのキーとロケーションのペアも{{{=}}}でつなげられてます。 例えば: {{{ export ROS_LOCATIONS="rospkg=/path/to/rospkg:stairpkg=/path/to/stairpkg" }}} これらの鍵は、roscdなどにおいて使うことができます。 == ROS_WORKSPACE == `ROS_WORKSPACE` は、rosinstallやroswsなどによって導入され、ワークスペースを作る際にこれらのツールによって生成されるsetup.shで設定される。ワークスペースのフォルダのパスを示し、roswsのコマンドによって、デフォルトのターゲットとして使われる。 fuerteのroscdのコマンドもまた、引数を与えない場合にこの変数を使うようになった。 以前までは、`ROS_ROOT`をさしていた. = ノードの環境変数 = == ROS_IP/ROS_HOSTNAME == `ROS_IP` と `ROS_HOSTNAME`は、ROS[[Node]]かツールのネットワークアドレを設定したオプションの環境変数である。オプションは互いに排他的で、もし両方とも設定されているなら`ROS_HOSTNAME`が優先される。IPアドレスがわかっているなら`ROS_IP`を、 ホスト名がわかっているなら`ROS_HOSTNAME`を使ってください。マスターかほかのコンポーネントに対して、ROSコンポーネントがURIを報告するとき、この値を使うでしょう。この設定は、複数のアドレスをコンピュータに対して持っていてかつROSを特定のものにしむけたいときのみに必要です。 'localhost'を除いて、ROSのコンポーネントは、利用できるすべてのネットワークインターフェースにバインドしますが、実際の境界アドレス?(bound address)には影響しません。 もし値が、'localhost'に設定されているときは、ROSのコンポーネントはloopbackインターフェースにのみバインドされます。これは、離れたコンポーネントがあなたのローカルのコンポーネントに働きかけるのを防ぎます。 == ROS_NAMESPACE == `ROS_NAMESPACE`は、ノードをnamespaceにプッシュダウンします。すべてのノードの名前は、リマップされた名前を含めてこの値に関連して解決されます。 == ROSCONSOLE_CONFIG_FILE == これは、[[roscpp]]特有の環境変数です。[[rosconsole]]で ROSCONSOLE_CONFIG_FILEで定義され log4cxxで使われる設定ファイルを定義できます。この設定ファイルに定義されるすべてはデフォルトの設定ファイルを上書きします。 詳しくはhttp://ros.org/doc/api/rosconsole/html/index.html をご覧ください。 == Console Output Formatting == <> rosconsoleで`ROSCONSOLE_FORMAT`を通して、コンソール出力の中にどのように出力したいかを決めることができます。デフォルトは次のようになっています。 {{{ export ROSCONSOLE_FORMAT='[${severity}] [${time}]: ${message}' }}} 詳しくは http://ros.org/doc/api/rosconsole/html/index.html をご覧ください。 == ROS_PYTHON_LOG_CONFIG_FILE == <> これは、[[rospy]], [[rosmaster]], [[roslaunch]], と [[rostest]]に特有のものです.これらのコマンドのために, `$ROS_ROOT/config/python_logging.conf`に収められているデフォルトの設定ファイルの変わりに特有の使いたいPythonのログファイルを定義できます。 より詳しくは、Pythonの`logging`ドキュメントを参照してください: http://docs.python.org/library/logging.html = ビルドシステム環境変数 = これらの環境変数をよりよく理解するには、[[ROS/BuildSystem|ROS Build System]]のなかのセクションをご覧ください。 == ROS_BINDEPS_PATH == 注意:CTurtleで除外されました。その代わりに基本的な`CPATH`, `LIBRARY_PATH` と `LD_LIBRARY_PATH`を設定する必要があります。 `ROS_BINDEPS_PATH` is an optional environment variable for the case that you don't install 3rdparty dependencies (eg. log4cxx) into /opt/ros. Set this to the path where they are installed. == ROS_BOOST_ROOT == `ROS_BOOST_ROOT`は、ブースとのためにどこを探せばよいかを上書きするオプションの環境変数です。 もし、`ROS_BOOST_ROOT`がセットされていなければデフォルトでは`ROS_BINDEPS_PATH`を用います。 == ROS_PARALLEL_JOBS == もし、この値がセットされたなら、パッケージのビルドの際にmakeに引き渡されます。これは、マルチプロセッサーマシンの利用を可能にします。たとえば、もし8コアを持っていてできるかぎりの並列処理を行いたい場合は、システム負荷が8を超えない限り、 {{{ export ROS_PARALLEL_JOBS=-j -l8 }}} 反対に、システム負荷かかわらず、`-j`フラグを引数として渡すと8個のjobの並列処理を使えます。 {{{ export ROS_PARALLEL_JOBS=-j8 }}} 我々は'''強く'''`-l`を使用して、並列r処理の際のシステムロードにかかわる制限をすることをお勧めします。過度の大きなビルドの並列処理はシステムのメモリを無駄に消費しえます。 どのようなシステム負荷が許されるかはいくつのコアをあなたがもっているかによります。 http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages 8が8つのコアを持つ機械にはふさわしい値です。 == ROS_LANG_DISABLE == コロンで区切られた使われるべきでないパッケージのクライアントライブラリの名前の一覧。 リストのパッケージのためのメッセージ生成は起こらないでしょう。 たとえば: {{{ export ROS_LANG_DISABLE=roslisp:rosjava }}} 言葉を無効にする前に、使っているどのコードもその言語のバインドを要求してないことを確かめるように注意してください。 == ROS_OS_OVERRIDE == <> 書き方: "OS_NAME:OS_VERSION_STRING" これはUbuntu Lucidを見つけるようにさせる: {{{ export ROS_OS_OVERRIDE=ubuntu:10.04 }}} もし定義されるなら、これはOSの自動検索を上書きします。これは、ほかのプラットフォームでrosdepの依存関係をデバッグしているときや、プラットフォームが実際にとても似ていて、強制される必要があるときや、もちろん自動検索が失敗しているときなどで使えます。