(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Setting up the Environment Loader

Description: How to set up ROS_ENV_LOADER on the PR2

Tutorial Level: BEGINNER

Next Tutorial: Starting up the PR2

Environment Loaderがなぜ必要?

新しいcatkinのビルドシステムでは、ハードコーディングされたライブラリのパスなしでバイナリをビルドすることができ、インストールディレクトリをより柔軟に、より多くのLinuxのディストリビューション上でROSを準備することができるようになりました。これまで、rosは、/opt/ros/fureteにインストールされています。これは、すなわち以前よりももっと複雑な環境の変更が必要になることを意味します。Environment loaderは、リモートのlaunchを実行する際に環境のセットアップをするために存在します。

PR2は、ROS_ENV_LOADERの環境変数を参照して、environment loaderのスクリプトを探します。

簡単な使用方法

debianのパッケージからROSを実行するだけなら、デフォルトのenvironment loaderが使用できます。:

   export ROS_ENV_LOADER=/etc/ros/fuerte/env.sh

setup scriptsを書く

もし、ローカルのROSがある場合、カスタムのenvironment loaderをセットアップする必要があります。

setupスクリプトの推奨されるセットは、以下のようになります。(以下ではローカルのディレクトリは~/rosを想定しています)

注意: ~ではなく$HOMEをenv.shやsetup.shで使用してください。; ~はbashインタプリタ用のもので、borne shellで働きません。

  • ~/ros/setup.sh
    •    #!/bin/sh
         . /etc/ros/setup.sh
         export ROS_PACKAGE_PATH="$HOME/ros:$ROS_PACKAGE_PATH"
         export ROS_ENV_LOADER="$HOME/ros/env.sh"
  • ~/ros/env.sh
    •    #!/bin/sh
         
         . ~/ros/setup.sh
         if [ $# -eq 0 ] ; then
            $SHELL
         else
            exec "$@"
         fi
  • ~/ros/setup.bash
    •    #!/bin/bash
         CATKIN_SHELL=bash
         . ~/ros/setup.sh
  • ~/.bashrc sources ~/ros/setup.bash or ~/ros/setup.sh

ここでの一般的なコンセプトとして、基本的な環境セットアップをするひとつのスクリプト(~/ros/setup.sh)とそれを違う形で利用するそのほかのスクリプトを用意するようにしています。; setup.bashはbash用のスクリプトを加え、env.shでは、environment loaderの特徴を定義する実行をふかしています。

もしrosinstallとroswsでsetup.shとsetup.bashを生成したなら、上記のようにenv.shを使用することができますが、他のパッケージをワークスペースに加えたときに上書きされないように恐らくROS_ENV_LOADERを~/.bashrcにセットしなければならないでしょう。

Wiki: ja/pr2_robot/Tutorials/Setting up the ROS_ENV_LOADER (last edited 2013-05-12 09:45:55 by Yuto Inagaki)