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

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

サインインしてコメントする。

その他の回答 (0 件)

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!