📷

【mac】PythonでRealSense D415のサンプルを動かす

2020/12/23に公開

RealSense D415とは

Intel社の提供するRealsenseは奥行き知覚機能を有するカメラデバイス.公式ではmacのサポートをしていないが,librealsenseという非公式のライブラリで動かすことができる.

環境

  • macBookPro(13-inch, 2017, Twoo Thunderbolt 3ports)
  • macOS Catalina 10.15.7
  • zsh
  • Homebrewインストール済
  • PyenvでPythonの環境構築済

環境構築手順

必要なライブラリをインストール

ターミナルを開きホームディレクトリで以下のコマンドを一行ずつ実行する

ターミナル
$ brew install python
$ brew install libusb pkg-config
$ brew install homebrew/core/glfw3
$ brew install cmake
$ brew install boost
$ brew install flann
$ brew install vtk5 –with-qt
$ git clone https://github.com/PointCloudLibrary/pcl
$ cd pcl
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install

librealsenseのソースコードをインストール&build

cdコマンドでホームディレクトリに戻り,librealsenseの本体をインストールする
3行目の使用しているPythonの絶対パスの部分はwhich pythonで出力されたパスに置き換える

ターミナル
$ git clone https://github.com/IntelRealSense/librealsense.git
$ cd librealsense
$ mkdir build && cd build
$ cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false -DBUILD_PYTHON_BINDINGS=true -DPYTHON_EXECUTABLE:FILEPATH=使用しているPyhtonの絶対パス -G "Unix Makefiles"
$ make -j2
$ sudo make install

私の環境ではPythonのバージョンが3.8系では動かなかったため事前に3.6系へバージョンを変えておく(今回はpython3.6.7を使う)
/libresenseディレクトリに戻り

ターミナル
$ pyenv install 3.6.7
$ pyenv local 3.6.7

pyenv versionsコマンドで/libresenseディレクトリ以下がpython3.6.7になっていることを確認する
また,このままだと動かないと思うので以下の手順でsoファイルがおいてある場所(以下A)を確認する

  1. VSCode等でlibrealsense/build/CMakeCache.txtを開く
  2. command + Fで検索窓を開きPYTHON_INSTALL_DIR:PATHを検索する
  3. PYTHON_INSTALL_DIR:PATH:PATH=xxxとかいてある.xxxがsoファイルの置いてあるディレクトリ(A)

シンボリックを置く場所(以下B)を確認する

ターミナル
$ python3
>>>import site; site.getsitepackages()

その後確認した場所(B)へ移動し,シンボリックを作成する

ターミナル
$ cd Bへの絶対パス
$ ln -s 確認したsoファイルのパス(A)/pyrealsense2.cpython-36m-darwin.so pyrealsense2.so
$ ln -s 確認したsoファイルのパス(A)/pybackend2.cpython-36m-darwin.so pybackend2.so

pyrealsense2のインポートが通るか確認

ターミナル
$ python
$ import pyrealsense2
$

このようにimportが通ればOK

サンプルを動かす

サンプルファイルが置いてあるディレクトリに移動し実行する

ターミナル
$ cd ~/librealsense/wrappers/python/examples
$ python 動かしたいファイル名

参考
(参考Qiita1)[https://qiita.com/mizumasa/items/c6ca2c73fa86c9a5a39c]
(参考Qiita2)[https://qiita.com/comachi/items/14b358568365bc5ee474]

Discussion