LoginSignup
5
5

More than 5 years have passed since last update.

Raspberry Pi 2へのROS Indigo/Ubuntu/OpenCV3他開発環境のインストール(ログ)

Last updated at Posted at 2016-05-07

はじめに: 素直に終わらなかったので…

下記に従えば簡単にインストール…ROSだけはできず、かなり難航しました。
2016/5時点での一連の最新のパッケージの状況かもしれず、インストールで行ったことをまとめておきます。
ROS以外にも、開発環境の設定で参考になりそうなことは全て記載してみます。(半分はメモ…)

(2016/5/15 VNCのインストール手順を追記)

インストール手順として参考にした情報

インストールした環境

  • Ubuntu 14.04 LTS
  • ROS Indigo
  • OpenCV 3.0.0

Ubuntuのインストール

Ubuntu自体は問題なくインストールできた。

[RPi用Ubuntu手順] に基本的には従い、下記を実施:

1. イメージをmicroSDへ書き込み

手順にリンクしてあるイメージをそのまま利用。
- Download 2015-04-06-ubuntu-trusty.zip

(参考) sshインストール

$ sudo apt-get update
$ sudo apt-get install openssh-server

(参考) UTF-8ワーニング対策

※ この設定があるコンソールで下記がログイン時に警告されることへの対策: LC_ALL=ja_JP.UTF-8

"-bash: warning: setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8)"

$ export LANGUAGE=ja_JP.UTF-8
$ export LANG=ja_JP.UTF-8
$ export LC_ALL=ja_JP.UTF-8
$ sudo locale-gen ja_JP.UTF-8

2. ディスク容量確保

※ 意味を理解せず実施するとパーティションが壊れ、イメージの書き込みからやり直しになるので注意して下さい。

$ sudo fdisk /dev/mmcblk0

コンソールでこのとおり行った:

Delete the second partition (d, 2), then re-create it using the defaults (n, p, 2, enter, enter), then write and exit (w). Reboot the system, then:

$ sudo resize2fs /dev/mmcblk0p2

3. OSとデスクトップ、Video driver

$ sudo apt-get install linux-firmware
$ sudo apt-get install lubuntu-desktop
$ sudo apt-get install xserver-xorg-video-fbturbo

こちらも実施。

Then add this to /etc/X11/xorg.conf (create if it doesn't already exist):

Section "Device"
    Identifier "Raspberry Pi FBDEV"
    Driver "fbturbo"
    Option "fbdev" "/dev/fb0"
    Option "SwapbuffersWait" "true"
EndSection

4. Video core他

$ sudo apt-get install libraspberrypi-bin libraspberrypi-dev
$ sudo ln -s /usr /opt/vc
$ sudo apt-get install libraspberrypi-bin-nonfree

※シリアルコンソールはスキップ
(以上問題なし)

ROSのインストール (難航、この記事の本題)

[ROS手順] では、いくつか問題が出てしまったので下記のように解決。

1. リポジトリのrestricted・universe・multiverse設定

https://help.ubuntu.com/community/Repositories/Ubuntu
こちらに書いてあるとおりで、GUIを操作して設定。

2. sources.listを設定

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'

3. 鍵の設定

$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -

4. パッケージのアップデート、インストール

ubuntu@ubuntu:~$ sudo apt-get install ros-indigo-desktop-full
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package ros-indigo-desktop-full

ros-indigo-desktop-fullをインストールしたかったが、上記のように見つからないため、非full版を選択した。

$ sudo apt-get update
$ sudo apt-get install ros-indigo-desktop

また、エラーとなった。

Errors were encountered while processing:
  /var/cache/apt/archives/libegl1-mesa-dev_10.1.3-0ubuntu0.6_armhf.deb
  /var/cache/apt/archives/libgles2-mesa-dev_10.1.3-0ubuntu0.6_armhf.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

これで解決しなかった。

$ sudo apt-get -f install

5. libegl1/libgles2のエラー対応

そこで、こちらを参考にした。
- Ubuntu 14.04 (trusty) Raspberry Pi 2 image | Raspberry Pi フォーラム

$ sudo apt-get download libegl1-mesa-dev libgles2-mesa-dev
$ sudo dpkg -i --force-overwrite /var/cache/apt/archives/libegl1-mesa-dev_10.1.3-0ubuntu0.6_armhf.deb 

予定通りErrorになる。※ ダウンロードは不要だったと思う…

$ sudo dpkg -i --force-overwrite /var/cache/apt/archives/libgles2-mesa-dev_10.1.3-0ubuntu0.6_armhf.deb 

これも予定通りErrorになる。

$ sudo apt-get install -f

こちらが成功して、ROSインストールの準備ができた。

6. ROSインストールを再トライ

$ sudo apt-get install ros-indigo-desktop

今度は、成功した。

7. rosdepの初期化、.bashrcへのセット、python設定

$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc

pythonで運用するので…

    $ sudo apt-get install python-rosinstall

OpenCV3のインストール

OpenCV3手順で問題なくインストールできました。

$ sudo apt-get install build-essential cmake git pkg-config
$ sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ pip install numpy
$ sudo apt-get install python-pip
$ cd shared/lab/
$ git clone https://github.com/Itseez/opencv_contrib.git
$ cd opencv_contrib
$ git checkout 3.0.0
$ cd ..
$ git clone https://github.com/Itseez/opencv.git
$ cd opencv
$ git checkout 3.0.0
$ mkdir build
$ cd build/
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/shared/lab/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON .. &> ~/shared/lab/opencv/buildlog.txt
$ make -j4 &>> ~/shared/lab/opencv/buildlog.txt
$ sudo make install

(ご参考) その他の設定

Keyboard を日本語に

Ubuntu Weekly Recipe/第376回 Raspberry Pi 2にUbuntuをインストールし,RDPでリモートアクセスする | Gihyo.jp

/etc/default/keyboardを編集し、"us"を下記のように"jp"に書き換える。

XKBLAYOUT="jp"

下記を実施すると、インストールが始まって反映される。

$ sudo dpkg-reconfigure -f noninteractive keyboard-configuration

Raspberry Piでカメラ入力を扱うためのインストール

Accessing the Raspberry Pi Camera with OpenCV and Python | pyimagesearch

Raspberry Pi自体でカメラの入力で画像処理するには、この記事の内容が重要。
cv2.VideoCaptureなどの代わりに必要になるPiCameraを、arrayモジュールと併せてインストール。

$ sudo pip install "picamera[array]"

※ 従って、Pythonプログラムも入力などはRPi専用で開発するか、共通化のためのラッパーが必要になるようです。
(参考) Unifying picamera and cv2.VideoCapture into a single class with OpenCV | pyimagesearch

Pythonインタプリタを効率化 (MacOSで問題回避が必要)

pythonをインタラクティブモードで利用するとき、タブ補完やヒストリ保存を有効にしたい。ところが、

13. 対話入力編集とヒストリ置換 | Pythonチュートリアル

この方法のうちタブ補完は、MacOS Xでは働かない。
MacOSはGPLライセンス回避のため、本物のreadlineが実装されていないらしい。そこで、

[Python] Mac OSX10.9でPythonのタブ補完を有効にする | Yura YuWrite

この手順で~/.pystartupを作成。また、~/.bashrcへ下記を追加。

export PYTHONSTARTUP=~/.pystartup

IPアドレス固定

$ sudo emacs /etc/network/interfaces

下記のように固定する場合のご参考まで。

iface eth0 inet static
address 192.168.7.111
network 192.168.7.0
netmask 255.255.255.0
gateway 192.168.7.1
dns-nameservers 192.168.7.1

Sambaを設定

$ mkdir ~/shared
$ sudo apt-get install samba
$ sudo emacs /etc/samba/smb.conf

下記を後端に追加。

[shared]
path=/home/ubuntu/shared
read only=no
browsable=yes
guest ok = yes
force user = ubuntu

Hostnameを変更

$ sudo emacs /etc/hostname
$ sudo emacs /etc/hosts

どちらも、所望の名前へ変更。

VNCサーバーを設定

    $ sudo apt-get install vnc4server
    $ vncserver

初回はパスワードを設定すれば、問題なく動作。

emacsが必要なので…

$ sudo apt-get install emacs

.emacsはμemacs風に設定…。

(global-set-key "\C-h" 'backward-delete-char)
(global-set-key "\C-z" 'scroll-down)

(以上)

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5