カメラコードのデバッグ日記を見回す

インストール手順に従って、opencv WITH_CUDA = ONを再コンパイルします
。cmake -guiを使用して2020.12.29までコンパイルできます
セグメンテーションエラーが発生します:eigen3.4.4はeigen3.2.10
の特異値分解関数を渡すことができません。
再インストールする必要がありますeigen3.2.10
およびceresを再コンパイルします。

オフラインマッピングコードを実行します。

地下駐車場

使用
データ/ media / csc105 / samsungT5 / shangqi / test / dw_000_110216_101449.000_150322_default〉片来源( "input"、boost :: program_options :: valuestd :: string(&inputDir)-> default_value( " / media / csc105 / samsungT5 / shangqi / 0507 / dw_000_060519_203212.000_150322_default ")、"すべての入力データを含むフォルダーの場所。ファイルの名前はcamera_%02d_%05d.jpgにする必要があります。イベントファイルが指定されている場合、これはframe_X /サブフォルダーを見つけるパスです ")
ここに画像の説明を挿入
ここに画像の説明を挿入
プログラム出結果在
/media/csc105/samsungT5/shangqi/test/dw_000_110216_101449.000_150322_default/camodocal_data0.5/pointcloud_5
ここに画像の説明を挿入
ここに画像の説明を挿入


地上および屋外の2020.12.30

明けましておめでとうございますhahahahahahaha

2021.1.2
屋外で実行できる
他の外部パラメーターはアプリオリパラメーターであり、キャリブレーションパスの曇り点の結果を出力します。build_map.launchは
一定である可能性があります
build_map_test.ccは入力/メディア/ csc105 / samsungT5を変更するだけで済みます/ shangqi / 0418 / dw_000_110216_083027.000_150322_default
ここに画像の説明を挿入
ここに画像の説明を挿入
オンラインロケーション
変更
online_localize.launchpcd_filename
ここに画像の説明を挿入
変更test_location_ceres_node.cpp
ここに画像の説明を挿入

rosbag play -r 0.5 '/ media / csc105 / samsungT5 / ououtdoor2.3ag.bag'
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

rosbag play -r 0.5 '/ media / csc105 / samsungT5 / ououtdoor4.bag'
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
rosbag play -r 0.5 '/ media / csc105 / samsungT5 /
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ououtdoor2.bag'2021.1.5
オンラインSLAM
変更online_multi_odometry_k.launch
ここに画像の説明を挿入
特に

<arg name="calibDir" default="/home/csc105/multi/src/multi_odom_slam/data/calibparam0.25" />
<arg name="mapfile" default="/home/csc105/multi/src/multi_odom_slam/data/ATD_parking/camodocal_data0.5/" />

最初は、テストファイルの出力のcalibparam0.25とcamodocal_data0.5を使用しました
が、calibparam0.25のextrin ... txtが存在しませんでした。初期化が常に間違っていて、カメラの数が間違っていて、常に0でした。範囲外の
ここに画像の説明を挿入
rosbagplay '/ media / csc105 / samsungT5 / test_2018-12-11-21-13-16.bag'にアクセスしてください。gps
ここに画像の説明を挿入
データが取得されます
gps_common_test。起動時に、2つのノードを開きます。1つはsudo apt-get installros-***-gps-commonを必要とする公式のrosgps_common;このノードのタスクは、gpsデータを軌跡に変換することです。これは
デフォルトのサブスク
ライブトピック修正(sensor_msgs / NavSatFix)です。

公開されたトピック
odom(nav_msgs / Odometry)
を渡すことができます

<remap from="odom" to="vo"/>
<remap from="fix" to="/gps" />

トピック名を変更すると、
他のノードはsave-gpsはead_data / scripts / save_gps.pyに対応します。これはハードディスクで見つける必要があり、giteeは削除されます。このpythonファイルはトピック/ voを受け入れ、ポーズを保存します。およびドキュメントのパス変更 `

gps_f = open("/home/csc105/multi/src/multi_odom_slam/read_data/poses/gps_outdoor4.txt",'w')
odom_f = open("/home/csc105/multi/src/multi_odom_slam/read_data/poses/system_poses.txt",'w')

これはrosのpythonであるため、python2です。conda環境に入る必要はありませんが、pythonパッケージをインストールする必要があります。たとえば
、pipinstallxlrd。pip3ではないことに注意してください。
正しく実行される場合は保存gpsがあります!出力
オンラインSLAMのポーズ出力
パスはmulti_odom_slam /設定/ odom_config.yamlファイル内pose_graph_save_pathパラメータ・パスの下にあります

pose_graph_save_path: "/home/csc105/multi/src/multi_odom_slam/output/2/" # save and load path

!!!ここでは、コメントアウトされたスレッドを開く必要があります
。pose_graph_node.cpp623keyboard_command_process= std :: thread(command);
このコマンド関数は、データを入力した後にsを入力すると、ポーズ(posegraph.savePoseGraph())の保存を開始します。パスの下にTum_pose.txtをパケットし、このtxtの
pose_graph.cppを保存します

1018 fprintf (pFile1, "%f %f %f %f %f %f %f %f\n",(*it)->time_stamp,
1019                 PG_tmp_T.x(), PG_tmp_T.y(), PG_tmp_T.z(),
1020                 PG_tmp_Q.x(), PG_tmp_Q.y(), PG_tmp_Q.z(), PG_tmp_Q.w());

これに変更するには、最初の%lldに問題
がありますキーフレームを保存するための他の多くのkpとdp、およびさまざまな形式のポーズがあります。

convertpose.pyファイルを実行します。以前に取得したgpsポーズはgpsfileに対応し、オンラインslamから取得したポーズはcamfileに対応し、出力カメラトゥルースファイルはcamgtoutconvertpose.pyに対応します
。/media/csc105/samsungT5/を見つける必要があります。 shangqi /スクリプト/

camgtout = open('/media/csc105/samsungT5/shangqi/0423/outdoortest/16/camgt.txt', 'w')
gpsfile='/home/csc105/multi/src/multi_odom_slam/read_data/poses/gps_outdoor4.txt'
camfile='/home/csc105/multi/src/multi_odom_slam/output/2/tum_poses.txt'

//ここにはまだ問題がありますが、gpsfileとcamfileを直接使用して比較できます。時間
内に複数の関係を変更する必要がある場合があります。ポーズの行1018を変更することを選択してください-graph.cpp(it)-> time_stamp 10e8 、

evo评估
evo_rpehome / csc105 / multi / src / multi_odom_slam / read_data / poses / gps_outdoor4.txt '' /home/csc105/multi/src/multi_odom_slam/output/2/tum_poses.txt'-va –t_max_diff 10000000 -p

cut --delimiter "" --fields 1-8 msckf_traj.txt> clean.tum
evo_traj tum ekftagscarto0.tum -p

おすすめ

転載: blog.csdn.net/weixin_43900210/article/details/111948500
おすすめ