Visual SLAM(単眼カメラ)

23 views (last 30 days)
ST
ST on 12 Aug 2020
Commented: Kenta on 18 Aug 2020
Visual SLAMについての知識はまださほどない状態です.
こちらのサイト(https://qiita.com/tohruk/items/43667dbd327c3d3a5b95)にORB-SLAMを用いて動画からカメラ軌跡と点群マップの推定を行うMATLABの例が紹介されており,ひとまず実行してみたのですがいくつかエラーが出てしまい,順に解決していったものの,下記の箇所が解決できずにいる状態です.
関数 'range' の呼び出し内に、不足している引数または正しくない引数データ型がないかを確認してください。
エラー: helperCheckLoopClosure (line 53)
range(loopKeyFrameIds(1:minNumCandidates)) <= maxRange
エラー: vs (line 316)
[isDetected, validLoopCandidates] = helperCheckLoopClosure(vSetKeyFrames, currKeyFrameId, ...
  3 Comments
Kenta
Kenta on 15 Aug 2020
こんにちは、詳細を教えていただき、ありがとうございます。
「こういった場合,補助関数の方に問題があるのでしょうか.
もしくは,掲載されていた方に修正が必要なのでしょうか.」
とのことですが、掲載されてた方のバージョンや環境では正しく動いていて、そこでは正しくコーディングなどがされていたのだと思います。
ただ、この例は複雑なので、今はどこかで予期せぬエラーが起きているのだと思います。
こちらのドキュメントがお試しになっている例の公式なページと思うのですが、こちらをお試しになりましたか?もしかしたらこちらでやってみるとうまくいくかもしれません。

Sign in to comment.

Accepted Answer

Kenta
Kenta on 15 Aug 2020
KOUさん、コメントのほうありがとうございます。
こちらにある質問文中のURLの記事の作者様のファイルをそのまま保存し、実行してみてください。
コメントのほうで私が「normalize関数が入っている気がするのでしょうが」と言ってしまったのですが、
range関数の間違いです、失礼しました。range関数のエラーはもしかしたらstatistics and machine learning toolboxが
入っていないからではないでしょうか?もしそれが入っておらず、かつ手軽にインストールできる状態であればアドオンから入れてみてください。もし、ない場合はnormalize関数などで書き換えることができます。
また、normalizeを使わずとも今回の用法であれば自分で書くこともできます。
ひとまず、statistics and machine learning toolboxが手軽に入手可能な環境にあれば、そちらで試していただけると幸いです。
  4 Comments
Kenta
Kenta on 18 Aug 2020
こんにちは、
range(loopKeyFrameIds(1:minNumCandidates)) <= maxRange
は、loopKeyFrameIds(1)とloopKeyFrameIds(minNumCandidates)の範囲(値の大きさの違い)ということで大丈夫でしょうか.」
少し違っていそうです。まずは、rangeの方法を調べてみてはいかがでしょう。おそらくこの部分がちがうため結果があわないのだと思います。まずは、簡単な値で、normalizeを使って、rangeと同様の正規化ができるように練習してみて、それができてからここに反映してはいかがでしょうか。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!