こんにちは!
inukaiです。
前回の記事でハードウェアの組み立てができましたので、ソフト開発に本腰を入れていきたいと思います。というわけでタイトルにもある通り、ロボットの認識系の環境構築としてRaspberry Pi 4にRealSenseをセットアップしていきます!
でも、以前Raspberry Pi 3B+でセットアップしてたし、こちらのkoraさんの記事とネタ被ってるやん!って思う方もいるかと思いますので、改めてこちらの記事で紹介する理由から書いていきます。
改めてセットアップを紹介する理由
Raspberry Pi 4に移行する理由
以前Raspberry Pi 3B+で環境構築していたわけですが、処理性能もメモリも大きくなったRaspberry Pi 4(今回は4GBモデルを使用します)なら画像処理も有利になるためです。
また、realsenseとRaspberry Piとの接続がUSB2.0からUSB3.0になるため、必要があれば解像度やフレームレートを高く設定できるという利点もあります。
koraさんの記事との差分
koraさんの記事は2020/2月時点の情報でしたので、少しセットアップ方法が変わります。そのため改めて今回の記事で紹介します。
(先に変わった点を述べておくと、librealsenseがlinuxカーネル5.3に正式対応しているためlibrealsenseのgithubリポジトリのdevelopmentブランチを使用する必要がなくなっています。)
セットアップ方法
それでは、セットアップ方法(2020/6月時点)を紹介していきます。
Raspberry Pi 4にUbuntu 18.04 LTSをインストール
Raspberry Pi用のUbuntu 18.04のイメージファイルをダウンロードしてSDカードに書き込みます。
Raspberry Pi 4の「Download 64bit」を選択しましょう。
Ubuntuにデスクトップ環境をインストール
RealSenseの動作確認を行うためにデスクトップ環境を入れておきます。
$ sudo apt update $ sudo apt upgrade $ sudo apt install ubuntu-desktop
ちなみに、デスクトップ環境は複数種類あります。私はubuntu-desktopより軽量なxubuntu-desktopを入れてみました。xubuntu-desktopを入れてみたい場合は3行目を下記に置き換えればいいです。とくにこだわりがなければubuntu-desktopでよいと思います。
$ sudo apt install xubuntu-desktop
librealsenseをインストール
Linux Ubuntu Installationに従ってインストールしていきます。
カーネルバージョンやディストリビューションによって手順が変わりますので、今回はRaspberry Pi用のUbuntu 18.04の場合に実際に行った手順を紹介します。
まず、カーネルバージョンを確認します。
$ uname -r
確認すると「5.3.0-1017-raspi2」が出てきます。現在、librealsenseはカーネルバージョン5.3に対応しています。ただ、ビルド済みのものはarmアーキテクチャ向けに配布されていなかったため、ビルドしていきます。
librealsenseのソースコードをダウンロードします。
$ git clone https://github.com/IntelRealSense/librealsense.git
事前に、必要なパッケージをインストールします。
$ sudo apt install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev $ sudo apt install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
CMakeをインストールします(Linux Ubuntu Installationに記載はありませんが、Raspberry Pi用のUbuntu 18.04にはもともと入っていなかったためです)。
$ sudo apt install cmake
librealsenseディレクトリに移動して、RealSenseのデバイスの権限を設定するスクリプトを実行します。
$ cd librealsense/ $ ./scripts/setup_udev_rules.sh
カーネルにパッチを当てるスクリプトを実行します。
$ ./scripts/patch-realsense-ubuntu-lts.sh
buildディレクトリを作成して、移動します。
$ mkdir build && cd build
CMakeを実行します。
$ cmake ../
最後にコンパイルとインストールをします。
コンパイル時はRaspberry Piにヒートシンクと冷却ファンを取り付けることをお勧めします。
何も冷却しないと、発熱でCPUクロックが下るため、時間がかかります。
$ sudo make clean && make && sudo make install
私の場合はコンパイルするのに2時間程度かかりました。放置して気長に待ちましょう。
ビルドが終わったら、realsense-viewerを立ち上げて動作確認します。
$ realsense-viewer
以前Raspberry Pi 3B+の記事同様、640×480の深度とRGB画像を 15FPSで取得して表示を行いました。CPU負荷は、約220%/400%(1コアあたり100%、4コアあるので最大400%)でした。
あれ、Raspberry Pi 3B+のときより重い?
だた、この点は期待が外れましたが、librealsenseのバージョンやOSも違っていますので一概に比較はできない点もあるため、今回は良しとします。
また、画像右上の「Intel RealSense D415」の文字の横をみると、USB3.0で接続できていることが確認できます(画像クリックで拡大表示されます)。
体感としては、Raspberry Pi 3B+の時と同程度で、より処理が重くなったという感じはしませんでした。
おまけ(冷却用のヒートシンクとファン)
今回Raspberry Piを冷却するにあたって使用したヒートシンクとファンのセットアップを紹介します。
秋月で売っているヒートシンク(写真のものは社内にあった適当なもの)の上に、5Vファンを両面テープで取り付けます。ファンの電源はUSBからとりました。手持ちの断線したUSBケーブルに半田付けして使用しています。100均一のUSBケーブルを切断して利用するのもいいと思います。こんなくらいの冷却でもlibrealsenseのコンパイル時にクロックが下がらない程度に冷却できました。
amazonとかで売っているRaspberry Pi用の冷却ファンとヒートシンクのセットを買うと2000円くらいかかりますが、今回の方法では300円くらいでできます。
最後に
今回は改めてソフトウェアの開発環境を整備して、その手順を紹介しました。次回はROSのインストールとRealsenseのROSパッケージの動作確認を行いたいと思います!
それではまた次回!