Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

D405で遊ぶ その2:librealsence for Pythonの環境を構築する

説明を半端に読んでなかったせいでそこそこ苦労したのでメモ

実際のところ

$ git clone https://github.com/IntelRealSense/librealsense

か、
Releases · IntelRealSense/librealsense · GitHub
からソースコードを入手

以下はgitから落とした場合なので、ソースコードの人は解凍したディレクトリを

$ cd librealsense
$ mkdir build
$ cd build
$ cmake ../ -DBUILD_PYTHON_BINDINGS:bool=true

buildディレクトリのまま、ビルドを実施。
ご多分に漏れずソコソコ時間がかかるので気長に待ちましょう。

make -j4
sudo make install

パスを通す

$ echo "export PYTHONPATH=$PYTHONPATH:/usr/local/lib" >> ~/.bashrc

ミス記録

冒頭に書いた通り、説明の読み込みが中途半端で何度か引っ掛かったので……

pyrealsense2を入れて読んだら"ImportError: failed to enable the udev monitor"とか言われたが
>>> import pyrealsense2 as rs
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/shuzo/.local/lib/python3.8/site-packages/pyrealsense2/__init__.py", line 2, in <module>
    from .pyrealsense2 import *
ImportError: failed to enable the udev monitor

何らかの理由でudevの変更ができていないので、管理者権限でPythonを実行する。
ただし、WSLの場合そもそもudev……というかUSB周りが残念なのでバーチャルマシン等々を使うのが吉です。

PythonディレクトリでCMakeしようとしたら"third-party/pybind11"がないとか言われたが
CMake Error at CMakeLists.txt:22 (add_subdirectory):
  add_subdirectory given source
  "/home/shuzo/librealsense/wrappers/python/build/third-party/pybind11"
  which is not an existing directory.

おめでとうございます。私と同じミスです。
マニュアルにはTOP LevelでCMakeしろと書いてあります。
SDK対象の指定はCMakeのオプションでやるので、wrapper/pythonまで潜らなくてよいのです。