目的: 最近、スラム モジュール、Gao Xiang バージョンのビデオ、非常に優れたビデオ (理論と実践) を見て、いくつかの重要な内容を書き留めます。他のコンテンツを追加する 2 回目。
ch12、第一章では主にスラムの応用について語ります。
まず、いくつかのおすすめの本について話しました。
1: 聖書: コンピュータ ビジョンにおけるマルチ ビュー ジオメトリ
2: ロボット工学の状態推定: 行列-リー群アプローチ
3: 確率論的ロボット工学
これらの本は、まだ読んでいませんが、これから読むつもりです。将来時間があるときに本を選んで見てください。
SLAM は主に、ポジショニングとマッピングという 2 つの主要な問題を中心に展開します。
ポジショニング: 自分がいる場所;
マッピング: 周囲がどのように見えるか。
現在の研究については後ほど紹介します。少し。
SLAMの全体的なフレームワークを紹介します
その中で、
最初の段落では、主に近くのフレーム間のカメラの相対的な動きを紹介します。(ドリフトエラー)には主に特徴点法と直接法があります。
バックエンド: フロントエンド フレーム間にエラーがあるため、ループバック検出が必要であり、フロントエンド モジュールが最適化されます。主にEKFとグラフの最適化があります。
マッピング: 主にスラムによって計算された疎な点群を高密度化するためのオプションです。計量マップ、トポロジー マップ、疎マップ、密マップなど。
上記の 2 つの問題に基づいて、SLAM には非常に有用な数学的記述フレームワークがあり、これは非常に重要です. これには、運動方程式と観測方程式が含まれます: 運動方程式 (私がどこにいるかを記述する):
離散
時間: t = 1 , 2 , 3 , ... . . 、kt=1,2,3,...,kt=1 、2 、3 、... 、k
位置:x 1 、 x 2 、 . 。。、xk x_1,x_2,...,x_kバツ1、バツ2、... 、バツk
上記の変数は確率変数とみなされ、確率分布に従うものとなります。
上記の変数に基づいて、運動方程式は次のように確立されます。
xk = f ( xk − 1 , uk , wk ) ( 1 ) x_k=f(x_{k-1},u_k,w_k) \space \space \space (1)バツk=f ( xk − 1、あなたk、wk) ( 1 )
ここで、xk − 1 x_{k-1}バツk − 1一般的には直前の位置ですuk u_kあなたk入力 (依存); wk w_kwkノイズ用。
周囲はどのように見えるか (観測方程式):
ランドマーク (3 次元空間の点): y 1 , y 2 , . . . yn y_1,y_2,...y_ny1、y2、...はいん
位置xk x_kのセンサーバツkで、道路標識yj y_jを確認してください。yj
観測方程式:
z ( k , j ) = h ( xk , yj , v ( k , j ) ) ( 2 ) z_(k,j)=h(x_k,y_j,v_(k,j)) \space \space \スペース(2)z(k 、j )=h ( xk、yj、v(k 、j )) ( 2 )
上記のフレームワークから確立された数学的モデルは、 xk x_kにあるセンサーです。バツk、道路yj y_jを参照yj。一般的なアプリケーションはxk x_kのカメラです。バツkに、疎な点群yj y_jが表示されます。yj。人間の認識と非常に一致しています。
したがって、全体的なフレームワークは次のようになります。
{ xk = f ( xk − 1 , uk , wk ) ( 1 ) z ( k , j ) = h ( xk , yj , v ( k , j ) ) ( 2 ) \begin{cases} x_k= f(x_{k-1},u_k,w_k) \space \space \space (1) \\ z_(k,j)=h(x_k,y_j,v_(k,j)) \space \space \space (2) \end{件}{
バツk=f ( xk − 1、あなたk、wk) ( 1 ) z(k 、j )=h ( xk、yj、v(k 、j )) ( 2 )
上記の式を理解すると、SLAM の全体を理解することができます。
フォローアップでは、Linux でファイルをコンパイルする方法の基本と、後続の Slam プロジェクトで使用するための cmake の簡単な使用法を紹介します。もう一度実行することをお勧めします。
kdevelop のインストールについて最後にもう 1 つ説明します。これは非常に簡単です。
ターミナルを開いて次のように入力します。
wget -O KDevelop.AppImage https://download.kde.org/stable/kdevelop/5.6.1/bin/linux/KDevelop-5.6.1-x86_64.AppImage
kdevelop をダウンロードした後、ダウンロードしたファイルの権限を直接変更します。
chmod +x KDevelop.AppImage
最後に、ファイル KDevelop.AppImage をインストールします。
./KDevelop.AppImage
インストールの具体的なプロセスは次のとおりです。
この統合プラットフォームは Linux で非常に使いやすく、Windows の VS とあまり変わりません。理解するには CMakeLists.txt が必要になる場合があります。CMakeList.txt をフォローアップしてください。