環境: ubuntu20.04 デュアルシステム
KDevelop を使用して本の通りにコードを実行することにしました。(利点は、既存のプログラムを直接実行できることです)
記事ディレクトリ
最初のステップは、Sophus をダウンロードしてインストールすることです
Sophus をダウンロードしてインストールする前に、Eigen ライブラリは相互に関連しているため、最初にインストールする必要があります。(Eigen ライブラリをここでインストールします。私の ch2 と ch3 のコード デモを見ることができます) 次に、Sophus のインストールを開始します。
方法 1 (非推奨)
一部の記事では、最初に fmt ライブラリをインストールし、次に Sophus ライブラリをインストールする必要があることに注意してください。ただし、ここでは最後のコンパイル時に多くの問題が発生し、fmt ライブラリのバージョンが一致していないことがわかります。 Sophus (ここでは少なくとも fmt-8.1.1 をインストールする必要があります) から Sophus ライブラリをインストールしますgit clone https://github.com/strasdat/Sophus.git
(ここでのアドレスは書籍内のアドレスとは異なることに注意してください)。このインストールは推奨されません。
2 つの Sophus ライブラリ ファイルの Web サイトのリンクとフォルダーの内容が異なることがわかりました。ただし、Gao Xiang 氏のリンクに従ってダウンロードした Sophus は正常にコンパイルできますが (方法 2)、もう 1 つは最初に fmt をインストールする必要がある場合があります (バージョン 8.1.1 も必要な場合があります)。
方法 2 (推奨)
fmt ライブラリをダウンロードする必要がないように、本に従って直接インストールします (実際には、コンパイルするだけで済み、インストールは必要ありません。本の第 2 版に記載されています)。ダウンロードしたサードパーティのコード ファイルにファイルがあるということです
同時に、完全なコードをダウンロードするときに、Gao Xiang 氏のファイル 3rdparty 内のファイルが空であることがわかるため、ここで個別にダウンロードする必要があることに注意する必要があります (最後のアドレスは変更しないでください) 、自分でダウンロードするために他のアドレスに移動しないでください、ここでダウンロードしてください、これらのライブラリのバージョンはすべて一致しているため)git clone https://github.com/gaoxiang12/slambook2
1つずつダウンロードする方法、ch2とch3に
は2番目のステップに方法があります。
次に、直接コンパイルを開始します
cd Sophus
mkdir build
cd build
cmake ../ -DUSE_BASIC_LOGGING=ON
make
sudo make install
コンパイルされた hpp ファイルには、fmt ライブラリ (trajectoryError.cpp) を使用する個々のファイルがまだあることが判明しました。#define SOPHUS_USE_BASIC_LOGGING
インクルードする前に注意を追加します。そうでない場合は、依然として fmt ライブラリに依存します。
コンパイル後も、ファイルが見つからないエラーが表示されます: (ファイル アドレスの問題)
trajectory ./example/groundtruth.txt not found.
trajectory ./example/estimated.txt not found.
相対アドレスに変更することを選択します。
string groundtruth_file = "../../example/groundtruth.txt";
string estimated_file = "../../example/estimated.txt";
結果: