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. |
ROS環境のインストールとセットアップ
Description: このチュートリアルでは, ROSのインストールと環境セットアップを行います.Tutorial Level: BEGINNER
Next Tutorial: ROSのファイルシステムを学ぶ
Contents
ROSのインストール
チュートリアルを始める前に, ROS hydroのUbuntuへのインストール, または, ROS indigoのUbuntuへのインストールにしたがい, インストールを完了させておきましょう。
Note: aptのようなパッケージマネージャからROSをインストールした場合, インストールされたパッケージは書込不能になっており, これはユーザが編集すべきではありません。ソースから入れたROSパッケージで作業したり, 新たにROSパッケージを作成する時は, ホームフォルダのようなアクセス権限があるディレクトリで作業するようにしましょう。
環境変数を管理する
ROSのインストール中に、 いくつかあるsetup.*shファイルのうちの一つをsourceコマンドで実行するよう指示が出たり、このsourceコマンドの手順をシェルの起動スクリプトに追加するよう促されたりすることがあるでしょう。 これはROSがシェル環境を使ってファイル空間を結合させるという考え方に依るためです。この仕組みによって, ROSの異なるバージョン, 異なるパッケージのまとまりに対する開発が容易になります。
もしROSパッケージの検索や使用時に問題が起きる場合には、環境が適切にセットアップされているかを確認しましょう。次のようにターミナルに打ち込んで、ROS_ROOTやROS_PACKAGE_PATHのような環境変数(environment variables)が設定されているかを確かめるのが一つの手です。
$ export | grep ROS
もし何も表示されなければ, いくつかのsetup.*shファイルをsourceコマンドで実行する必要があります。
環境に合ったセットアップファイルが作られますが、 以下のような場所から生じています。
- パッケージマネージャでインストールされたROSのパッケージは, setup.\*shファイルを提供する
(Groovy以前のバージョン: rosbuild workspacesはrosws のようなコマンドを使用してsetup.\*shファイルを提供する)
Note:チュートリアルを通して、rosbuild や catkinについて触れることになるでしょう。この2つは、ROSのソースコードを編成しビルドする方式です。おおまかに、rosbuildは使いやすくシンプルで、一方のcatkinは、より標準的なCMakeの形式を使うことで洗練され、特に、外部のコード基盤群を統合したい人や、ソフトウェアを公開したい人にとって、仕組みの柔軟さが向上しています。さらに詳しくは、catkin or rosbuildを参照してください。
もし、UbuntuでaptからROSをインストールした場合は、'/opt/ros/<distro>/'のなかにsetup.*shがあるので、それらを以下のようにsourceコマンドを実行します。
# source /opt/ros/<distro>/setup.bash
<distro>部分には今使っているROSのバージョン名(HydroやIndigo)を書き、
もしROS Hydroをインストールしているなら
$ source /opt/ros/hydro/setup.bash
となります。
上のコマンドを~/.bashrcに加えない限り、新しいシェルでROSコマンドを利用する度に、このコマンドを打つ必要があります。この手順によって、いくらかのROSのディストリビューションつまりはHydroやIndigoを同じパソコンにいれてもそれらを切り替えることもできるようになります。 ほかのOSの環境では、ROSをインストールしたディレクトリにこれらのsetup.*shを見つけられるでしょう。
ROSのワークスペースを作成する
ROSのソースコードを書くときはワークスペースで以下のようにすると便利です。
これらは、groovy以降を使用している人のためのインストラクションです。ROS fuerteやそれ以前を使用している人は、rosbuildを選択してください。
以下の手順で catkin ワークスペースを作りましょう。
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/ $ catkin_make
ワークスペースは空(srcフォルダにパッケージが無く、ただCMakeLists.txtのリンクがあるだけ)ですが、以下の手順でワークスペースをビルドすることができます。
$ cd ~/catkin_ws/ $ catkin_make
catkin_makeコマンドはcatkin ワークスペースで作業するための便利なツールです。カレントディレクトリの中を確認すると、'build' と 'devel'フォルダがあるはずです。その'devel'フォルダの中に幾つかのsetup.*shがあります。このsetup.*shのどれかをsourceコマンドで実行すると、自分のワークスペースをインストール環境上に配置(Overlay)することができます。このOverlayについての詳細は、catkinの標準ドキュメンテーション:catkinの項目で確認しましょう。自分の作成したワークスペースをインストール環境にOverlayするために以下のように実行します:
$ source devel/setup.bash
上記のスクリプトでワークスペースが適切にオーバレイしているかを確認するために、環境変数ROS_PACKAGE_PATHにワークスペースのディレクトリが含まれていることを以下のようにして確認しましょう。
$ echo $ROS_PACKAGE_PATH /home/youruser/catkin_ws/src:/opt/ros/melodic/share:/opt/ros/indigo/stacks
ROSのソースコードを書く場合、普通「workspace」にて行う。 以下のROS tutorialsを行うためには、新たに ROS stack と ROS pacageを作るスペースが必要となる。 roswsはSVNやGit、Mercurialといった様々なバージョン管理システムやROSにインストールされた全てのパッケージに対する統一的なインターフェースを提供するツールである。roswsの更なるチュートリアルはこちら。
新たなworkspaceを作成する
以下のコマンドによって/opt/ros/fuerteにインストールされたパッケージ郡を拡張する新たなworkspaceを`~/fuerte_workspaceに作成する。
rosws init ~/fuerte_workspace /opt/ros/fuerte
注意: roswsはrosinstall packageの一部であり、デフォルトではインストールされていない。Ubuntuパッケージマネージャを用いて以下のコマンドでDownloadできる。
sudo apt-get install python-rosinstall
新しいpackageとしてsandboxディレクトリを作成する
新しいパッケージはROS_PACKAGE_PATHに設定された場所に置く必要がある。roswsで管理されているディレクトリ(すなわちrosdsによって追加されたディレクトリ)は、そのworkspaceのsetup.bashファイルが読み込まれた時、自動的にROS_PACKAGE_PATHに追加される。新規パッケージは常にroswsを用いてインストールしたレポジトリに置くべきであるが、例えばチュートリアルを行なっている最中に、便宜上、sandboxディレクトリにて追加のroswsコマンドを行うこと無くパッケージを作ることがある。 そのような場合にはsandboxディレクトリを作成し、roswsコマンドによって隠しファイル.rosinstallにそのディレクトリを追加する。
mkdir ~/fuerte_workspace/sandbox rosws set ~/fuerte_workspace/sandbox
workspaceの構成要素が変更された際には、ROS_PACKAGE_PATHを最新のものにするために~/fuerte_workspace/setup.bashを再読み込みしなければならない。
source ~/fuerte_workspace/setup.bash
一般的には、setup.bash読み込みのためのsource /opt/ros/fuerte/setup.bashの行を~/fuerte_workspaceまたは最もよく用いるworkspaceに置き換える。
より詳細なROS Workspaceのチュートリアルはこちらへ。
確認作業
packageのpathが設定されたことを確認するためにはROS_PACKAGE_PATH変数を見る。
$ echo $ROS_PACKAGE_PATH
このような結果が得られるはずである。
/home/your_user_name/fuerte_workspace/sandbox:/opt/ros/fuerte/share:/opt/ros/fuerte/stacks
これで環境は整いました。次はROSのファイルシステムを学ぶです。