ZED SDK 4.1 がリリースされた。
ZED SDK 4.1 の動作をDocker環境で動作を確認したあとは、実環境のバージョンも4.1にしたい。
以下の内容は無保証です。
- まだ以下の内容が十分にテストできていません。
- インストール後のzed-sdkのリポジトリのサンプルの動作
想定する読者
stereolabsのzed2, zed mini, zed z などのステレオカメラの利用者
いまどきのステレオカメラは何ができるのかを知りたい人
動作させた環境
- NVIDIA Jetson AGX Orin
- JetPack 5.1(=LT4 352.)
- ZED2i Camera (StereoLabs)
- Python3
重要 Jetson の場合どのJetPack に対する(=どのL4Tに対する)インストーラーなのかを確認して、
以下の作業を読み替えてください。
事前処理
~/.localに古いものが残っていないか、残っていたら削除する。
ls ~/.local/lib/python3.8/site-packages/ | grep pyzed
pyzed
pyzed-4.0.dist-info
pyzedhub-0.73.dist-info
install
$ sudo apt install zstd
$ chmod +x ZED_SDK_Tegra_L4T35.2_v4.1.0.zstd.run
$ sudo ./ZED_SDK_Tegra_L4T35.2_v4.1.0.zstd.run -- silent
Verifying archive integrity... 100% MD5 checksums are OK. All good.
Uncompressing 'ZED camera SDK by Stereolabs (Use 'sudo apt install zstd' if zstd is not found)' 100%
L4T version 35.2 detected. OK
Installation path: /usr/local/zed
Checking CUDA version...
OK: Found CUDA 11.4
中略
The ZED Python API was installed for 'python3'
ZED SDK installation complete !
インストール後に作成されたディレクトリ
sudo find /usr -name "*zed*" -type d -print
これからzed sdkに関連したものを目視で選ぶと以下のディレクトリが作成されていることがわかる。
/usr/local/zed
/usr/local/lib/python3.8/dist-packages/pyzed-4.1.dist-info
/usr/local/lib/python3.8/dist-packages/pyzed
追加で必要になってしまった処理。
- sudo をつけてinstaller を実行したためだろうか?
sudo chmod +r -R /usr/local/lib/python3.8/dist-packages/pyzed*
sudo chmod +x -R /usr/local/lib/python3.8/dist-packages/pyzed*
sudo chmod 755 /usr/local/zed/lib/libsl_zed.so
sudo chmod +r -R /usr/local/zed
sudo chmod +x -R /usr/local/zed
-- silent
を付けない場合のinstall
− license agreement の確認が入る。
- 各種の設定でY/Nを聞かれる。
- 各種モデルのダウンロードと最適化処理をするのかどうかを質問される。
- 最適化処理を含めると数時間かかることがあると表示される。
- ここで実施しなくて良い。スクリプトの実行時に必要なモデルファイルをダウンロードできる。
動作確認
$ python
Python 3.8.10 (default, Nov 22 2023, 10:22:35)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyzed.sl as sl
>>> zed = sl.Camera()
>>> help(zed)
途中生じた不具合
python スクリプトの実行時に
[時刻][ZED][WARNING] CALIBRATION FILE NOT AVAILABLE in sl::ERROR_CODE sl::Camera::open(sl::InitParameters)
CALIBRATION FILE NOT AVAILABLE
[時刻][ZED][ERROR] [ZED] sl::Camera::Open has not been called, no Camera instance running.
このエラーは/usr/local/zedのファイル属性がotherの権限では読み書きできなかったことによるものでした。
失敗したインストール手順
- sudo を付けずにインストールを試みると、
~/.local/lib/python3.8/site-packages
の下にインストールしようとする。 - しかも、Cython-3.0.10.dist-infoなどが/usr/local/lib/python3.8/dist-packagesの下にインストールができず、失敗する。
- StereoLabs の方で直してもらいたい。
./ZED_SDK_Tegra_L4T35.2_v4.1.0.zstd.run -- silent
Defaulting to user installation because normal site-packages is not writeable
ERROR: Exception:
Traceback (most recent call last):
File "/home/someone/.local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
status = run_func(*args)
File "/home/someone/.local/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper
return func(self, options, args)
File "/home/someone/.local/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 324, in run
session = self.get_default_session(options)
File "/home/someone/.local/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 95, in get_default_session
self._session = self.enter_context(self._build_session(options))
(中略)
File "/home/someone/.local/lib/python3.8/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2134, in find_on_path
for dist in factory(fullpath):
File "/home/someone/.local/lib/python3.8/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2192, in distributions_from_metadata
if len(os.listdir(path)) == 0:
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.8/dist-packages/Cython-3.0.10.dist-info'