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

조회 수: 10 (최근 30일)
 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
Atsushi Ueno
Atsushi Ueno 2021년 11월 3일
MATLABが「+」から始まるフォルダにパスを通せない理由は、それが特別な意味を持つからです。
MATLABにとって「+」から始まる名前のフォルダはパッケージであり、その下にパッケージやクラス以外のフォルダはありません。(あったとしてもMATLABにとっては無意味でパスを通す事も出来ません)
% The leading + means, that the contents of the folder is a package and has e.g. its own name space.
% パッケージ フォルダーは常に + 文字で始まります。
% 最上位のパッケージ フォルダーの親フォルダーは、MATLAB パス上になければなりません。

댓글을 달려면 로그인하십시오.

채택된 답변

Atsushi Ueno
Atsushi Ueno 2021년 11월 3일
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
佳琳 杉浦
佳琳 杉浦 2021년 11월 5일
편집: 佳琳 杉浦 2021년 11월 5일
 +realsenseフォルダの入った場所にパスを通すと、自作コードを実行することができました。しかし、一度Matlabを閉じて再起動すると、再び同じエラーが発生してしまいます。whichで探すとヒットするので、パスは通っているのだと思います。
 ここで不思議なのが、上記の状態で+realsenseフォルダにあるexampleコードを実行すると、プログラムが動き、さらにそのあと再び自作コードを実行すると、なんの問題もなく動くことです。exampleコードがブレイクスルーになっているようですが、この原因は分かりますでしょうか。
 できれば、自作コード単体でも動くようにしたいのですが、何か方法はありますか?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 グラフィックス パフォーマンス에 대해 자세히 알아보기

태그

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!