Elementary OSの調子がなかなか良いのでROSをインストールして継続的に使ってみることにした。
Elementary OSのウェブサイトからisoイメージをダウンロードする。ダウンロードの際には「Freyaをダウンロード」を押す前に「カスタム」をクリックして0と入力すれば無料で入手できる。もう少し使ってみないとわからないが数ドル払う価値はあるのではと思う。
今回はChromeBook(C720)にインストールして使ったが大きな問題なくインストールできた。
ROS indigoのインストール
OSのインストールが終わったらROSをインストールする。Elementary OS Freyaがubuntu 14.04ベースなので、ROSはindigoをインストールする。
ROS indigoのインストールページを参考に、インストールを進める。
Setup your sources.list
まずsource.listを作成する。画面左上のApplicationからTerminalを選んで起動し、以下を入力する。
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
これを実行すると/etc/apt/sources.list.dにros-latest.listが作られる。インストールページの指示に従ってapt-get updateまで実行すると、以下のようなエラーが発生する。
Err http://packages.ros.org freya/main amd64 Packages 404 Not Found Err http://packages.ros.org freya/main i386 Packages 404 Not Found
/etc/apt/sources.list.d/ros-latest.listを見ると、以下のような内容になっている。
$ cat /etc/apt/sources.list.d/ros-latest.list deb http://packages.ros.org/ros/ubuntu freya main
trustyであるべき部分がfreyaになっているのでROSのパッケージを入手できないようだ。
そこで、この部分を書き換えて以下のようにする。
$ cat /etc/apt/sources.list.d/ros-latest.list deb http://packages.ros.org/ros/ubuntu trusty main
Set up your keys
以下を実行してkeyを設定する。
$ sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116
Installation
後は通常どおりROSをインストールすればよい。今回はDesktop-Full Installとした。
$ sudo apt-get update $ sudo apt-get install ros-indigo-desktop-full
Initialize rosdep
続いてrosdepを実行する。
$ sudo rosdep init $ rosdep update
ところが2行目の実行後、以下のようなエラーが発生する。
$ rosdep update reading in sources list data from /etc/ros/rosdep/sources.list.d Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index.yaml Add distro "groovy" ERROR: Rosdep experienced an error: Could not detect OS, tried ['windows', 'ubuntu', 'rhel', 'qnx', 'osx', 'opensuse', 'opensuse', 'mint', 'linaro', 'gentoo', 'funtoo', 'freebsd', 'fedora', 'elementary', 'debian', 'cygwin', 'centos', 'arch'] Please go to the rosdep page [1] and file a bug report with the stack trace below. [1] : http://www.ros.org/wiki/rosdep
これもsources.listの時と同様にubuntuのコードネームがfreyaになっているのではないかと考えられるので、以下のようにOSの検出を上書きする。
$ export ROS_OS_OVERRIDE=ubuntu:14.04
再度rosdepを実行する。
$ rosdep update
Environment setup
ROSの設定を行うように.bashrcを変更する。
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc $ source ~/.bashrc
これまたエラーが発生する。
bash: /home/itolab/.bashrc: line 168: syntax error near unexpected token `/opt/ros/indigo/setup.bash' bash: /home/itolab/.bashrc: line 168: `esacsource /opt/ros/indigo/setup.bash'
もともと.bashrcの最終行に改行が入っておらず、echoの出力がつながってしまうことが原因である。適当なエディタで.bashrcを開き、esacとsourceの間に改行を入れる。
さらに先ほどのexportも追加しておく。
$ echo export ROS_OS_OVERRIDE=ubuntu:14.04 >> .bashrc
Getting rosinstall
rosinstallをインストールする。
$ sudo apt-get install python-rosinstall
以上でElementary OSへのROS indigoインストールは完了する。