■
ROSのインストール(Ubuntu・ArchLinux)
目的
Robot Operating SystemをUbuntuにインストールします。
2015/8/7 追記
ArchLinuxでのインストール方法を追記しました。
準備
まずは下記のものを用意してください
- Ubuntu14.04マシン or ArchLinuxマシン
- インターネット環境
(1) Ubuntuは15.04で試したのですが、依存関係がうまくいかないため14.04で行います。
indigoの対応バージョンは13.10と14.04のみのようです。 Ubuntu14.10と15.04を使用したい場合は、indigoではなくjadeをインストールしてください。
ArchLinuxは2015/8/7時点での最新のものです。
今回は(Ubuntu14.04 or ArchLinux)とindigoを使用します。
Ubuntu14.04
Ubuntu14.04の場合です。
sources.listのセットアップ
デフォルトではpackages.ros.orgのパッケージを登録していないため、登録を行います。
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
アップデート
パッケージインデックスを更新します。
$ sudo apt-get update
インストール
インストールを行います。最小から最大までパッケージがありますが、今回はすべてインストールします。
$ sudo apt-get install ros-indigo-desktop-full $ sudo apt-get install python-rosinstall
ArchLinux
ArchLinuxの場合です。
まずは、yaourtをインストールしておいてください。
インストール
インストールします。
$ yaourt -S ros-indigo-desktop-full --needed --noconfirm
ただし現在(2015/8/7)、このまま実行すると下記のようなエラーがでます。
==> ERROR: A failure occurred in build(). Abortin... ==> ERROR: Makepkg was unable to build ros-indigo-catkin.
遡って読んでみると、
ImportError: "from catkin_pkg.package import parse_package" failed: No module named catkin_pkg.package Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
ros-indigo-catkinのインストール中に/tmp/yaourt-tmp-username/aur-ros-indigo-catkin/src/catkin/cmake/parse_package_xml.pyのファイルがcatkin_pkg.packageをimportできなく怒ってるようです。
まずは、catkin-pkgをインストールしましょう。
$ yaourt -S python-catkin-pkg --noconfirm --needed
というわけで、catkin_pkgがどこにあるのか検索すると、
$ sudo find / -name "catkin_pkg" /usr/lib/python3.4/site-packages/catkin_pkg
検索結果のフォルダをPYTHONPATHへ登録します。 PYTHONPATHへ登録すると、pythonスクリプトのインクルードディレクトリに登録されます。
PYTHONPATH=/usr/lib/python3.4/site-packages/
登録したので、catkinがインストールできるか試してみましょう。
$ yaourt -S ros-indigo-catkin --noconfirm --needed
うまくいきましたか?それでは、もとのインストールに戻りましょう。
$ yaourt -S ros-indigo-desktop-full --needed --noconfirm
catkin-pkgの競合
最後に、インストール途中でcatkin_pkgが競合して、python-catkin-pkgが削除されてpython2-catkin-pkgがインストールされます。
ArchLinuxで後にcatkin_makeをした時にうまくできない場合は、ROSシステムがpython-catkin-pkgのpython3バージョンpython2バージョン両方に依存しているにもかかわらず、python2-catkin-pkgのみしか入っていないためだと考えられます。
$ # catkinワークスペースで $ catkin_mae # 〜略〜 ImportError: "from catkin_pkg.package import parse_package" failed: No module named 'catkin_pkg' Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH. CMake Error at /opt/ros/indigo/share/catkin/cmake/safe_execute_process.cmake:11 (message): # 〜略〜
ここでyaourtを使ってpython3のバージョンをインストールしようとすると、競合を怒られてインストールできません。
$ yaourt -S python-catkin-pkg # 〜略〜 looking for conflicting packages... :: python-catkin-pkg and python2-catkin-pkg are in conflict (python2-catkin_pkg). Remove python2-catkin-pkg? [y/N] y error: failed to prepare transaction (could not satisfy dependencies) :: python2-rosdep: requires python2-catkin-pkg :: ros-indigo-catkin: requires python2-catkin-pkg :: ros-indigo-rospack: requires python2-catkin-pkg # 〜略〜
そのため、pipを使ってアップデートしてます。
$ sudo pip install -U catkin_pkg
findで確認してみると、3.4にも2.7にもあることが確認できます。
$ sudo find / -name "catkin_pkg" $ catkin_make
これでcatkin_makeも実行できるようになりました。
共通手順
rosdepの初期化
rosdepを初期化します。
$ sudo rosdep init $ rosdep update
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/7/25
2015/8/ 7 追記
2015/8/11 追記