スラムを学ぶには、古典的なフレームワークである orbslam2 について言及する必要があり、その動作を理解することが最初のステップです。
このチュートリアルは、orbslam2 のダウンロードおよびインストール プロセス中の操作をまとめたものです。
目次
エラー: 「usleep」はこのスコープで宣言されていませんでした
1.Orbslam2のダウンロード
公式サイト:GitHub - raulmur/ORB_SLAM2: ループ検出および再局在化機能を備えた、単眼カメラ、ステレオカメラ、および RGB-D カメラ用のリアルタイム SLAM
他の人が書いた紹介文があります: EuRoC Dataset の紹介_Keji's Blog-CSDN Blog_euroc Dataset
コマンド ラインを使用して、事前に用意されたフォルダーを入力し、/home/username/slam/ フォルダーに配置しました。
cd /home/用户名/slam
ソースコードをダウンロード:
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
フォルダー名が間違っている場合は、ORB_SLAM2 に変更できます。このようにして、ソース コードが /home/username/slam/ORB_SLAM2 フォルダーにダウンロードされます。
その後は公式サイトの手順に従ってください。コンパイル:
cd ORB_SLAM2
chmod +x build.sh
./build.sh
途中で遭遇した問題は次のとおりです。
エラー: 「usleep」はこのスコープで宣言されていませんでした
解決策は、対応する .cc ファイルに参照行を追加することです。
#include <unistd.h>
多くのファイルでエラーが報告されるため、基本的な src フォルダーと Examples フォルダーにある .cc ファイルのほとんどは、このライブラリ関数で参照する必要があります。引用後の間違いは基本的に報告されません。実行結果は次のとおりです。
この時点で、インストールとコンパイルは完了です。後で、検証のためにデータセットをダウンロードする必要があります。
2. EuRoCデータセットのダウンロードと使用
ここでは主に、ORB-SLAM と ORB-SLAM2 の実行、EuRoC データ セットの実行、および EVO を使用した評価について 言及します。Huan Shao のブログ - CSDN ブログと呼んでください。
orb-slam2を使用して EuRoC データセットを実行し、evo で評価します (詳細)_Zhazha の Xiao Wang のブログ-CSDN ブログ_orbslam2 データセット
記事が 2 つあります。主なアイデアは、データ セットをダウンロードして実行することです。実行コードのアドレスを少し変更する必要があります。その他の基本的なインストールは orbslam2 公式 Web サイトと同じです。公式サイトでの注文は以下の通りです。
./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml PATH_TO_SEQUENCE_FOLDER/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/SEQUENCE.txt
重要な点は、最後から 2 番目のデータのパスを独自のパスに変更する必要があるということです。
1. データセットをダウンロードする
データセットの公式 Web サイトのアドレスは次のとおりです。
kmavvisualinertialdatasets – ASL データセット
そのダウンロードインターフェイスは次のとおりです。
どちらかを選択してダウンロードしてください。私は Machine Hall 05 と 04 をダウンロードしました。ダウンロード後に解凍されたファイルはすべて mav0 フォルダーにあります。簡単に識別できるように、EuRoC フォルダーを作成してその中に置くことができます。データ パスは次のとおりです:/home/username/slam/EuRoC
注: ダウンロードは ASL データセット形式です (後で ros を使用する場合は、ros バッグ形式が必要になる場合があります)。
これに応じて、私のパスは次のとおりです。
/home/qianmengyu11/slam/EuRoC/mav0
2. データセットを実行する
前述したように、公式 Web サイトのコマンドは次のとおりです。
./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml PATH_TO_SEQUENCE_FOLDER/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/SEQUENCE.txt
変更する必要があるのは最後の 2 つの項目で、最後から 2 番目の項目にはデータ アドレスを入力する必要があります。
/home/qianmengyu11/slam/EuRoC/mav0/cam0/data
ダウンロードするデータ パッケージに応じて、最後から 2 番目の項目を次のように変更します。
Examples/Monocular/EuRoC_TimeStamps/MH05.txt
マシンホール05の場合はMH05.txt、マシンホール04の場合はMH04.txtを書き込みます。
要約すると、ターミナルで実行するコマンドは次のとおりです (まだ /home/username/slam にあります)。
./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml /home/qianmengyu11/slam/EuRoC/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/MH05.txt
3. 走行結果
実行結果は次のとおりです。