Contents
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は、ROSNodeかツールのネットワークアドレを設定したオプションの環境変数である。オプションは互いに排他的で、もし両方とも設定されているなら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
New in CTurtle
rosconsoleでROSCONSOLE_FORMATを通して、コンソール出力の中にどのように出力したいかを決めることができます。デフォルトは次のようになっています。
export ROSCONSOLE_FORMAT='[${severity}] [${time}]: ${message}'
詳しくは http://ros.org/doc/api/rosconsole/html/index.html をご覧ください。
ROS_PYTHON_LOG_CONFIG_FILE
New in Diamondback これは、rospy, rosmaster, roslaunch, と rostestに特有のものです.これらのコマンドのために, $ROS_ROOT/config/python_logging.confに収められているデフォルトの設定ファイルの変わりに特有の使いたいPythonのログファイルを定義できます。
より詳しくは、Pythonのloggingドキュメントを参照してください:
http://docs.python.org/library/logging.html
ビルドシステム環境変数
これらの環境変数をよりよく理解するには、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
New in Diamondback 書き方: "OS_NAME:OS_VERSION_STRING" これはUbuntu Lucidを見つけるようにさせる:
export ROS_OS_OVERRIDE=ubuntu:10.04
もし定義されるなら、これはOSの自動検索を上書きします。これは、ほかのプラットフォームでrosdepの依存関係をデバッグしているときや、プラットフォームが実際にとても似ていて、強制される必要があるときや、もちろん自動検索が失敗しているときなどで使えます。