SLAM実験ノート

SLAM実験

TUM データセット

TUM データセット公式 Web サイトのリンク

assign.py が使用するもの

手順

python2 associate.py rgb.txt depth.txt > associate.txt

注: ここで提供される公式スクリプトは python2 です。

エボ

evo_ape、evo_rpeの計算方法

導入の前に、最初に定義式をマークしましょう:
アルゴリズム推定姿勢: P 1 . . . . . . P n ∈ SE ( 3 ) P_1....P_n\in SE(3)P1…… PSE ( 3 )
実際のポーズ:Q 1 . . . . . . Q n ∈ SE ( 3 ) Q_1......Q_n\in SE(3)Q1…… QSE ( 3 )
の下付き文字は時刻ttここでは、推定された姿勢と実際の姿勢がフレームごとに時間的に整合しており、フレームの合計数が同じであると仮定します。△ \三角△はインターバル時間の間隔を表します。

インストール

公式サイトを参照することをお勧めします

一つ間違える

操作中にevo_traj tum data.tum -p次のエラーが報告されます

[ERROR] Unhandled error in evo.main_traj
Traceback (most recent call last):
  File "/home/houyiliang/.local/lib/python3.8/site-packages/evo/entry_points.py", line 99, in launch
    main_module.run(args)
  File "/home/houyiliang/.local/lib/python3.8/site-packages/evo/main_traj.py", line 420, in run
    from evo.tools import plot
  File "/home/houyiliang/.local/lib/python3.8/site-packages/evo/tools/plot.py", line 43, in <module>
    import seaborn as sns
  File "/home/houyiliang/.local/lib/python3.8/site-packages/seaborn/__init__.py", line 2, in <module>
    from .rcmod import *  # noqa: F401,F403
  File "/home/houyiliang/.local/lib/python3.8/site-packages/seaborn/rcmod.py", line 5, in <module>
    from . import palettes
  File "/home/houyiliang/.local/lib/python3.8/site-packages/seaborn/palettes.py", line 9, in <module>
    from .utils import desaturate, get_color_cycle
  File "/home/houyiliang/.local/lib/python3.8/site-packages/seaborn/utils.py", line 11, in <module>
    import pandas as pd
  File "/home/houyiliang/.local/lib/python3.8/site-packages/pandas/__init__.py", line 48, in <module>
    from pandas.core.api import (
  File "/home/houyiliang/.local/lib/python3.8/site-packages/pandas/core/api.py", line 22, in <module>
    from pandas.core.algorithms import (
  File "/home/houyiliang/.local/lib/python3.8/site-packages/pandas/core/algorithms.py", line 40, in <module>
    from pandas.core.dtypes.cast import (
  File "/home/houyiliang/.local/lib/python3.8/site-packages/pandas/core/dtypes/cast.py", line 23, in <module>
    from dateutil.parser import ParserError
ImportError: cannot import name 'ParserError' from 'dateutil.parser' (/usr/lib/python3/dist-packages/dateutil/parser/__init__.py)

[ERROR] evo module evo.main_traj crashed - no logfile written (disabled)

ここでのエラーは、ImportError: cannot import name 'ParserError' from 'dateutil.parser'
不足しているものはすべてインストールするということであることがわかります。

pip install python-dateutil==2.8.2

python-dateutil の最新バージョン番号はpypi Web サイトから確認できます
。インストールは成功し、実行を継続しますがevo_traj tum data.tum -p、新しいエラーが表示されます

File "/home/houyiliang/.local/lib/python3.8/site-packages/matplotlib/backends/_backend_tk.py", line 8, in <module>
    import tkinter as tk
ModuleNotFoundError: No module named 'tkinter'

古いルールに欠けているものと何をインストールする必要があるか

sudo apt-get update
sudo apt-get install python3-tk

インストールが完了したら、再度実行し、別のエラーを報告します。

from PIL import Image, ImageTk
ImportError: cannot import name 'ImageTk' from 'PIL' (/usr/lib/python3/dist-packages/PIL/__init__.py)

また

sudo apt-get install python3-pil python3-pil.imagetk

もう終わりです

サポートされているトラック

  1. ros——ROS データ パッケージ
    データ パッケージに次のトピックが含まれている場合: geometry_msgs/PoseStamped、geometry_msgs/TransformStamped、geometry_msgs/PoseWithCovarianceStamped、および nav_msgs/Odometry は、軌道比較に EVO ツールを使用できます。
    v1.9 以降、TF トピックは EVO 評価もサポートします。
  2. euroc—EuRoC MAV データセット
    EuRoC データセット自体は EVO ツールの直接使用をサポートしていないため、評価するには TUM タイプのデータセットに変換する必要があります。
    EuRoC データセット内の csv で終わるファイルには、グラウンド トゥルース情報が保存されます。
    EuRoC データセットを使用する場合は、座標系、グラウンド トゥルース、IMU、およびカメラの軸規則が異なることに注意してください。
  3. kitti——KITTI データセット
    KITTI データセットによって出力される軌跡データには、タイムスタンプ情報が含まれません。12 個の記述データが KITTI 軌跡ファイルに保存されます。これは、同次姿勢行列 SE(3) の最初の 3 行です。
//SE(3)
a b c d
e f g h
i j k l
0 0 0 1
//kitti traj file
a b c d e f g h i j k l

  1. tum -タイムスタンプ (秒単位)、位置と方向 (四元数) を含む 1 行あたり 8 つのエントリを持つTUM RGB-D データセット。各値はスペースで区切られ、末尾にスペースはありません
timestamps x y z q_x q_y q_z q_w

トラック間のトランジション

異なる種類の軌道には、相互に変換できるものとできないものがあります。次の表に、軌道の種類間の変換関係を示します。

–save_as_bag –save_as_kitti –save_as_tum
バッグ はい はい はい
ユーロック はい はい はい
子猫 いいえ はい いいえ
タム はい はい はい
//Example
// export a EuRoC groundtruth file to a TUM trajectory
evo_traj euroc data.csv --save_as_tum
//(will be saved as data.tum)

//export TUM trajectories to KITTI format
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_kitti
//(will be saved as *.kitti)

//export TUM trajectories to ROS bagfile
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_bag
//(will be saved as <timestamp>.bag with topics traj_1, traj_2 and traj_3)

おすすめ

転載: blog.csdn.net/qq_43200940/article/details/129246762