今回はIntel社のカメラモジュールRealSense D435をPythonのコードからアクセスする際に必要となるライブラリ、librealsenseをセットアップする方法について解説します。
また、当ブログでJetson Nanoに関する記事を以下のページでまとめていますので、あわせてご覧ください。
![](https://murasan-net.com/wp-content/uploads/2022/10/109249311957a9768da5e450028-3-700x300-1-300x129.jpg)
環境
ハードウェア:Jetson Nano A02 4GB
JETPACK SDK:4.6.2
Python:3.6.9
Jetson Nanoの本体については、私が使用しているモデルは旧モデルのA02ですが、これから購入される方はインタフェースなどが増えているB01モデルがおすすめです。
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
librealsenseのインストール
Jetson Nanoでlibrealsenseをインストールする手順を解説します。
今回librealsenseのセットアップに当たり以下のサイトを参考にさせて頂きました。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9SmV0c29uJTIwTmFubyVFMyU4MSVBN1JlYWxzZW5zZSVFMyU4MSVBRVB5dGhvbiVFMyU4MyVBOSVFMyU4MyU4MyVFMyU4MyU5MSVFMyU4MyVCQ1B5UmVhbHNlbnNlJUUzJTgyJTkyJUU0JUJEJUJGJUU3JTk0JUE4JUUzJTgxJTk5JUUzJTgyJThCJUU2JTk2JUI5JUU2JUIzJTk1JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz05NDEzZTMzMzcxNzJmZDFkMjg3Y2Y5MTljOTZjODhlMw&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrYXJhYWdlMDcwMyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZjBhMzM3NzcxZDg4ZmQ1YjE4ZmExZTQ1NmVmMzYxZTE&blend-x=142&blend-y=486&blend-mode=normal&s=e709e6c7e7b3c01ccf237164b0b72529)
インストール手順
ここからは実際のインストール手順を解説します。
Githubから以下のリポジトリをダウンロードします。
git clone https://github.com/IntelRealSense/librealsense/
ビルド用のディレクトリを作成します。
cd librealsense
mkdir build && cd build
ビルドを実行します。cmakeのオプション「DPYTHON_EXECUTABLE」はPythonのインタプリタを指定したい場合に追加してください。
cmake ../ -DFORCE_RSUSB_BACKEND=ON -DBUILD_PYTHON_BINDINGS:bool=true -DPYTHON_EXECUTABLE=/usr/bin/python3
make -j4
sudo make install
ビルドにはかなり時間がかかりますが気長に待ってください。
これでlibrealsenseのインストールは完了です。
発生したエラー
私の環境ではcmakeコマンド実行時にOpenSSL が見つからないという以下のようなエラーが発生しました。
-- Checking internet connection...
-- Internet connection identified
-- Info: REALSENSE_VERSION_STRING=2.51.1
-- Setting Unix configurations
-- Building libcurl enabled
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.10/Modules/FindOpenSSL.cmake:390 (find_package_handle_standard_args)
CMake/external_libcurl.cmake:56 (find_package)
CMake/global_config.cmake:89 (include)
CMakeLists.txt:52 (global_set_flags)
-- Configuring incomplete, errors occurred!
OpenSSLのライブラリをインストールします。以下のコマンドを実行してください。(既にインストールされている方は不要です)
sudo apt-get install libssl-dev
以下のように表示されたらインストール完了です。
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/librealsense/build
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
udevのインストール
続いてudev_rulesのセットアップを行います。以下のコマンドを実行してください。
cd ..
./scripts/setup_udev_rules.sh
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
環境変数を設定する
librealsenseを使用する際に、「.so」ファイルがあるディレクトリにPATHを通しておく必要があります。「.so」がインストールされたディレクトリはログを参照してください。
-- Installing: /usr/local/lib/python3.6/pyrealsense2/pybackend2.cpython-36m-aarch64-linux-gnu.so.2.51.1
-- Installing: /usr/local/lib/python3.6/pyrealsense2/pybackend2.cpython-36m-aarch64-linux-gnu.so.2
-- Installing: /usr/local/lib/python3.6/pyrealsense2/pybackend2.cpython-36m-aarch64-linux-gnu.so
-- Installing: /usr/local/lib/python3.6/pyrealsense2/pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.51.1
-- Installing: /usr/local/lib/python3.6/pyrealsense2/pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.51
-- Installing: /usr/local/lib/python3.6/pyrealsense2/pyrealsense2.cpython-36m-aarch64-linux-gnu.so
-- Set runtime path of "/usr/local/lib/python3.6/pyrealsense2/pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.51.1" to ""
exportコマンドを実行してPATHを設定します。(ディレクトリは必要に応じて変更してください)
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.6/pyrealsense2
exportコマンドは起動時に毎回実行する必要がありますので、ユーザーがシェル時に自動実行される「.bashrc」に記載しておくのが良いです。.bashrcのファイルがある場所はホームディレクトリになりますので、ホームディレクトリに移動後、エディタで.bashrcを開き、exportコマンドを追記して保存します。
sudo nano .bashrc
発生したエラー
librealsenseを使用したPythonのプログラム実行時に以下のエラーが発生しました。
ImportError: No module named pyrealsense2
exportコマンドでPATHを設定しているはずなのに何度やってもpyrealsense2の参照エラーが出て実行できませんでした。原因を調べていたところ、私の場合はインストールに必要なコマンドはSSHのターミナルで実行し、実際にRealsenseを使用するプログラムは画面表示があるためVNCViewerのターミナルから実行していた(VNCViewerではコマンドのコピペができなかったため)のが原因でした。
exportコマンドは実行したターミナル内でしか有効にならないため、参照エラーが発生していたようでハマってしまいました。やはり.bashrcに記述しておくのが確実かと思います。
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
実行する
以下の場所にPythonのサンプルファイルが用意されていますので、このディレクトリに移動します。
/(librealsenseをインストールしたディレクトリ)/librealsense/wrappers/python/examples
サンプルファイルを実行します。
python3 opencv_viewer_example.py
RGBカメラとDepthカメラの映像を表示することができました。
![](https://murasan-net.com/wp-content/uploads/2022/11/Screenshot-from-2022-11-08-14-23-13-1024x640.jpg)
これでPythonのプログラムからD435を使用することができるようになりました。
まとめ
今回はJetson NanoでRealSenseをPythonのコードからアクセスするためのライブラリ、librealsenseのセットアップ方法を解説しました。
私の場合はLinuxに慣れている方であればすんなりいくであろうPATHの設定ではまってかなり時間がかかってしまいましたので、これからトライされる方の参考になれば幸いです。
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
それでは、また次の記事でお会いしましょう。
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
\ 機械学習を学びたい人には自宅で学べるUdemyがおすすめ! /
講座単位で購入できます!
参考
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9SmV0c29uJTIwTmFubyVFMyU4MSVBN1JlYWxzZW5zZSVFMyU4MSVBRVB5dGhvbiVFMyU4MyVBOSVFMyU4MyU4MyVFMyU4MyU5MSVFMyU4MyVCQ1B5UmVhbHNlbnNlJUUzJTgyJTkyJUU0JUJEJUJGJUU3JTk0JUE4JUUzJTgxJTk5JUUzJTgyJThCJUU2JTk2JUI5JUU2JUIzJTk1JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz05NDEzZTMzMzcxNzJmZDFkMjg3Y2Y5MTljOTZjODhlMw&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrYXJhYWdlMDcwMyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZjBhMzM3NzcxZDg4ZmQ1YjE4ZmExZTQ1NmVmMzYxZTE&blend-x=142&blend-y=486&blend-mode=normal&s=e709e6c7e7b3c01ccf237164b0b72529)
コメント