realsenseと​matlabの接続エ​ラー(エラー: librealsense_mex Frame didn't arrive within 15000)

4 views (last 30 days)
 matlab R2021aを用いて、RealSense D435iからデータ・画像を取得しようとしましたが、以下のようなエラーが出てしまい困っています。
エラー: librealsense_mex
Frame didn't arrive within 15000
エラー: realsense.pipeline/wait_for_frames (line 48)
out = realsense.librealsense_mex('rs2::pipeline', 'wait_for_frames', this.objectHandle);
エラー: a_trial_01 (line 7)
fs = pipe.wait_for_frames();
 Intel RealSense SDK for Windows10 を以下のURLからダウンロード、インストールした後、下記コード参考サイトのように画像取得を試みたところ、このようになりました。このエラーメッセージで検索すると、+realsense packageにmatlabのバージョンが合っていないことが原因と書かれていたので、推奨されるmatlab R2017bをインストールし直して再度試しましたが、結局、同じエラーが出ました。
【追記】
 念のため、 which depth_example  で確認したところ、なぜかパスが通っていなかったので、パスを通そうとすると、「+から始まるフォルダにパスを通すことはできません。」と表示されてしまいました。仕方なく「+realsense」から「realsense」に名前を変更して実行したところ、
%R2021aの場合
名前 realsense.pipeline を解決できません。
エラー: a_trial_01 (1)
pipe = realsense.pipeline();
%R2017bの場合
変数 "realsense" またはクラス "realsense.pipeline" は未定義です。
エラー: a_trial_01 (line 1)
pipe = realsense.pipeline();
という異なるエラーが発生しました。
 後者のエラーはこちらにあるのと同じもので、フォルダ名を「+realsense」に戻したら正常に動いたと書かれています。しかし、先にも述べたように、「+」から始まるフォルダにはパスは通せないというmatlabからのメッセージがあり、どうしたものか困っています。
解決策をお持ちの方はどうぞご教授ください。
  1 Comment
Atsushi Ueno
Atsushi Ueno on 3 Nov 2021
MATLABが「+」から始まるフォルダにパスを通せない理由は、それが特別な意味を持つからです。
MATLABにとって「+」から始まる名前のフォルダはパッケージであり、その下にパッケージやクラス以外のフォルダはありません。(あったとしてもMATLABにとっては無意味でパスを通す事も出来ません)
% The leading + means, that the contents of the folder is a package and has e.g. its own name space.
% パッケージ フォルダーは常に + 文字で始まります。
% 最上位のパッケージ フォルダーの親フォルダーは、MATLAB パス上になければなりません。

Sign in to comment.

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 3 Nov 2021
Windows InstallerはパッケージをC:\Program Files (x86)\Intel RealSense SDK 2.0\matlab\+realsense\にインストールするそうなので、
  • 3.の指示通りにパッケージ(+realsenseフォルダ)をMATLABのパスが通った場所に移動するか
  • C:\Program Files (x86)\Intel RealSense SDK 2.0\matlabにMATLABのパスを通すか
どちらかを実施すれば良いと思います(動作確認はしていません)
  1 Comment
佳琳 杉浦
佳琳 杉浦 on 5 Nov 2021
Edited: 佳琳 杉浦 on 5 Nov 2021
 +realsenseフォルダの入った場所にパスを通すと、自作コードを実行することができました。しかし、一度Matlabを閉じて再起動すると、再び同じエラーが発生してしまいます。whichで探すとヒットするので、パスは通っているのだと思います。
 ここで不思議なのが、上記の状態で+realsenseフォルダにあるexampleコードを実行すると、プログラムが動き、さらにそのあと再び自作コードを実行すると、なんの問題もなく動くことです。exampleコードがブレイクスルーになっているようですが、この原因は分かりますでしょうか。
 できれば、自作コード単体でも動くようにしたいのですが、何か方法はありますか?

Sign in to comment.

More Answers (0)

Categories

Find more on グラフィックス パフォーマンス in Help Center and File Exchange

Tags

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!