作業記録2023野々村
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[組込みシステム 2023]]
*アイデア [#mb0b6dd7]
-SLAM技術に用いられる、点群データのスキャンマッチング処理...
-一旦使用するFPGAボードはZYBO Z7 Zynq XC7Z020-1CLG400Cで...
*To doリスト [#ff2b187b]
**11/24 [#a9426272]
-ボード上にCPUを乗せる
-CPU-FPGA間でデータ送受信できるようにする
-データ転送、メモリへのアクセスのあたりについて見積もりを...
**11/14 [#dec34207]
-コード解析に関して
データ対応付けに関するDaaAssociator.h, DataassociatoLS.h...
他ICP関連コードと立ち上げ、データ読み込みコードを解析
-必要なパッケージ
gnuplot グラフ描画ツール 済
Boost C++汎用ツール 済
Eigen3 線形代数ライブラリ 済?できたかよくわからん
CMake ビルド支援ツール 済(bash上)
p2o Graph-based SLAMソルバ 済
-一度SLAMを実行
**11/2時点のto do [#iee8fd7f]
-コードのもとになっているアルゴリズムの解析
-アルゴリズムの並列化可能性模索
-まずCPU上で並列化を達成する
**10/29時点のto do [#w4933045]
-どのコードが必要化を選定し、プロファイルを行う。
-FPGA開発プラットフォームに関する勉強
**10月までの目標 [#o54b1bf0]
-方向転換
-FPGAの接続等を理解するため、Vitis, Vitis-hls, vivadoチュ...
-ストーリーとして成り立つか→Lidarシステムの中の画像処理部...
-FPGAで実装して高速化できそう→画像や点群のデータ転送に時...
-PC上でフィルタ処理や点群処理のプログラムを動かしてみる。
*研究関係項目 [#laa8d54a]
**LittleSLAMについて [#vb95d34b]
-FrameworkCustomizer.cppとSlamLauncher.cppによってSLAM処...
SlamLauncher.cppでcustomizeを変更(A~I)
-customizeA:全スキャン点保存地図。直前スキャンが参照スキ...
Elapsed time: mapping=3833.56, drawing=243.913, reading=...
かなり地図の精度が悪い。直前スキャンを参照スキャンとして...
生成地図x。実行時間△。
-customizeB:格子テーブル管理地図。(局所地図が参照スキャ...
Elapsed time: mapping=1263.24, drawing=16.329, reading=8...
局所地図を参照スキャンとしたことで地図の精度向上。自己位...
生成地図o。実行時間△。
-customizeC:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=1602.86, drawing=14.031, reading=8...
最適化改善により、より地図精度向上。しかし自己位置変化は...
生成地図o。実行時間△。
-customizeD:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=2229.08, drawing=14.462, reading=7...
対応付方法を変えたことで実行時間、自己位置変化ともに悪化。
生成地図△。実行時間o。
-customizeE:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=2303.98, drawing=16.882, reading=7...
自己位置変化が一定に。
生成地図o。実行時間o。
-customizeF:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=3276.56, drawing=12.882, reading=8...
コスト計算や法線計算追加により実行時間増加。自己位置変化...
生成地図x。実行時間△。
-cutomizeG:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=3313.55, drawing=14.45, reading=86...
自己位置変化が少し改善
生成地図x。実行時間△。
-customizeH:(部分地図ごとに管理。)地図が参照スキャン。...
Elapsed time: mapping=12762.9, drawing=17.812, reading=8...
自己位置変化、地図描画結果は優秀だが、実行時間が大幅に悪...
生成地図o。実行時間x。
-customizeI:(格子テーブル管理地図。)地図が参照スキャン...
Elapsed time: mapping=12679.6, drawing=21.772, reading=8...
Hとあまり変化はないように見える。
生成地図o。実行時間x。
-customizeJ:自作カスタマイズ。customizeAからデータ対応付...
Elapsed time: mapping=5377.94, drawing=260.061, reading=...
Aよりもひどい図になった。
生成地図x。実行時間x。
-customizeK:customizeDの最適化方法を最急降下法のみに戻す。
Elapsed time: mapping=2379.27, drawing=15.106, reading=8...
-以上の結果から局所地図を参照スキャンとする線形探索が最も...
**プラットフォームについて [#v3d62dea]
-vivado:入力はHDLによる回路記述かIPインテグレータによるシ...
**FPGA [#l57015ca]
-PSとは
Processing Systemの略で、ZynqのもつARMコア側の部分のこと...
ハードマクロ化された部分のこと。
-PLとは
Programmable Logicの略で、ZynqのFPGA側の部分のことを指す。
**ICPアルゴリズムについて [#j2a3c309]
-1. 時刻tとt-1のときの位置における点群の最近傍点を対応付...
-2. 点群の対応をもとに回転行列と並進ベクトルを導く
-3. 回転行列と並進ベクトルを適用して移動
-1~3を反復閾値まで反復。閾値はズレの度合いや反復回数など
-1,3はそれぞれの点で独立した処理?2は並列化できなそう
-最近傍点探索の工程が計算時間が長いため、ここを特に高速化...
*ミーティングメモ [#ob42ccf9]
**12/14 [#s12ebacb]
-二つあるうちの外側のループを並列化しようと思っていたが、...
→例えば参照スキャンの中で走査する必要がある点数を削減して...
→または比較処理をトーナメント式にしてどんどん数を減らして...
-対応点探索処理の際に近傍点に限らせる
-上で例えとして記述した計算ユニットを作り、それをパイプラ...
-以上の点を含めて、FPGA実装を行うまでに到達するのは難しそ...
-ボードで頑張るのはそれから
-発表の上での問題点
今はすべての点について対応点が1:1で計算できる前提で話し...
今回元のプログラムの手法が一般的なものだと思われてしまわ...
**12/11 [#yedd2772]
-見積もりがあらかた終わった。あとは演算器を何個に設定する...
-大まかに見積もりを行った結果、入力の際は仮にdouble型の変...
-littleSLAMを実行するとリーディングにかかる時間は0.09秒と...
-出力の際はdouble型の返り値が一つだけなので64byte.これは...
**11/20 [#d65c43e3]
-コードの解析はほとんど終了
-cmakeでbuildしようとすると、めっちゃエラー出る→先生にそ...
-データ対応付けの関数を並列化
-地図生成部分などは必要ないので、スキャン→ICP呼び出し→デ...
**10/16(月)グループミーティング [#v4d133da]
-使用する言語などを決める。
-研究方針自体はある程度確定
ICPアルゴリズムを並列化し、FPGA実装を行う。今井さんの案...
-なるべく早めに開発環境について少しでも理解し、どれを使っ...
**11/2(木) 全体ミーティング [#i95efebd]
-(鳥居さん)反復閾値が回数ではなく距離の許容域であるなら整...
-(古市さん)現時点でFPGA上で動作できているコードがないから...
-(高木先生)コード解析の前にアルゴリズム解析を行い、並列化...
-ICPアルゴリズムと一口に言ってもたくさんあるので、どうい...
-比較する際は外に出ている論文と比較
*作業記録 [#l406325d]
**2/16 [#l28340a7]
customizeA
1回目:mapping=27524.6, drawing=687.399, reading=398.04
2回目:mapping=27420.3, drawing=674.221, reading=401.031
3回目:mapping=27104, drawing=656.134, reading=418.968
4回目:mapping=27043.2, drawing=643.114, reading=397.101
5回目:mapping=27219.9, drawing=691.927, reading=397.713
6回目:mapping=27073.5, drawing=655.559, reading=398.946
7回目:mapping=27111.9, drawing=663.288, reading=388.959
8回目:mapping=27481.2, drawing=640.306, reading=376.715
9回目:mapping=27417.2, drawing=677.787, reading=390.015
10回目:mapping=27569.4, drawing=668.588, reading=401.063
customizeB
1回目:mapping=13867.6, drawing=581.798, reading=402.241
2回目:mapping=14071.1, drawing=589.901, reading=407.131
3回目:mapping=13851.9, drawing=564.665, reading=446.031
4回目:mapping=14137.9, drawing=591.48, reading=416.716
5回目:mapping=14258.4, drawing=605.038, reading=413.682
6回目:mapping=13869.2, drawing=573.634, reading=408.576
7回目:mapping=13953.2, drawing=573.98, reading=401.214
8回目:mapping=14142.6, drawing=614.165, reading=417.776
9回目:mapping=13912.5, drawing=571.73, reading=407.302
10回目:mapping=14307.9, drawing=611.876, reading=400.866
customizeC
1回目:mapping=26255.5, drawing=546.622, reading=380.825
2回目:mapping=25665, drawing=507.398, reading=409.693
3回目:mapping=26297.4, drawing=534.344, reading=402.249
4回目:mapping=25601.5, drawing=532.822, reading=408.691
5回目:mapping=25587.4, drawing=507.093, reading=395.16
6回目:mapping=26376.8, drawing=555.807, reading=407.338
7回目:mapping=25898.6, drawing=520.574, reading=408.614
8回目:mapping=26193.6, drawing=546.321, reading=406.907
9回目:mapping=26293.6, drawing=512.967, reading=403.815
10回目:mapping=26233.7, drawing=553.882, reading=404.514
customizeL
1回目:mapping=27787.2, drawing=671.981, reading=416.063
2回目:
3回目:
4回目:
5回目:
6回目:
7回目:
8回目:
9回目:
10回目:
**1/31 [#yd3be025]
-customizeAは全てデフォルト設定のLittleSLAM。
-customizeAと比較してmapping効率が良い上位3つ
customizeB→customizeC→customizeD
-customizeAと比較してtotal効率がいい上位3つ
cutomizeB→customizeC→cutomizeD
-customizeAと比較して地図結果が良いもの
customizeI→customizeH→customizeB
**1/29 [#m7c40698]
-customizeA
1回目:mapping=3897.4, drawing=257.962, reading=82.642
2回目:mapping=3923.34, drawing=261.658, reading=86.596
3回目:mapping=3807.82, drawing=247.381, reading=83.615
4回目:mapping=3866.21, drawing=245.961, reading=81.209
5回目:mapping=3878.91, drawing=244.828, reading=91.556
6回目:mapping=3868.24, drawing=250.49, reading=92.273
7回目:mapping=3839.3, drawing=245.513, reading=84.528
8回目:mapping=3853.85, drawing=243.863, reading=81.83
9回目:mapping=3846.43, drawing=244.269, reading=83.869
10回目:mapping=3845.51, drawing=247.451, reading=89.474
10回平均:mapping=3862.701, drawing=249.8376, reading=85...
-customizeB
1回目:mapping=1280.13, drawing=15.929, reading=79.753
2回目:mapping=1259.71, drawing=16.495, reading=85.017
3回目:mapping=1272.21, drawing=16.668, reading=81.225
4回目:mapping=1268.99, drawing=17.066, reading=84.562
5回目:mapping=1325.84, drawing=18.738, reading=108.929
6回目:mapping=1286.12, drawing=16.223, reading=94.445
7回目:mapping=1318.82, drawing=17.873, reading=102.436
8回目:mapping=1257.08, drawing=16.181, reading=80.551
9回目:mapping=1268.83, drawing=15.761, reading=80.021
10回目:mapping=1334.86, drawing=19.325, reading=93.645
10回平均:mapping=1287.259, drawing=17.0259, reading=89....
-customizeC
1回目:mapping=1624.51, drawing=15.591, reading=90.972
2回目:mapping=1676.62, drawing=16.56, reading=79.372
3回目:mapping=1623.37, drawing=15.774, reading=87.373
4回目:mapping=1626.09, drawing=14.763, reading=84.045
5回目:mapping=1627.71, drawing=15.511, reading=84.722
6回目:mapping=1602.37, drawing=14.603, reading=82.837
7回目:mapping=1611.86, drawing=14.733, reading=80.521
8回目:mapping=1598.42, drawing=15.073, reading=75.857
9回目:mapping=1603.5, drawing=14.285, reading=84.845
10回目:mapping=1591.22, drawing=14.777, reading=86.834
10回平均:mapping=1618.567, drawing=15.167, reading=84.0...
-customizeD
1回目:mapping=2372.19, drawing=20.396, reading=100.943
2回目:mapping=2252.15, drawing=14.365, reading=99.048
3回目:mapping=2242.24, drawing=14.727, reading=89.129
4回目:mapping=2218.95, drawing=13.711, reading=81.13
5回目:mapping=2272.66, drawing=14.857, reading=93.382
6回目:mapping=2477.77, drawing=28.029, reading=105.332
7回目:mapping=2257.16, drawing=14.001, reading=85.831
8回目:mapping=2287.05, drawing=16.564, reading=98.137
9回目:mapping=2258.64, drawing=14.826, reading=91.579
10回目:mapping=2268.23, drawing=15.279, reading=95.987
10回平均:mapping=2290.704, drawing=16.6755, reading=94....
-customizeE
1回目:mapping=2333.57, drawing=17.003, reading=84.288
2回目:mapping=2345.17, drawing=18.752, reading=90.293
3回目:mapping=2296.05, drawing=16.609, reading=78.821
4回目:mapping=2350.45, drawing=18.001, reading=84.536
5回目:mapping=2340.27, drawing=18.398, reading=84.399
6回目:mapping=2314.82, drawing=16.167, reading=84.477
7回目:mapping=2348.08, drawing=17.671, reading=86.226
8回目:mapping=2540.25, drawing=31.755, reading=107.732
9回目:mapping=2329.54, drawing=16.325, reading=79.533
10回目:mapping=2332.77, drawing=17.354, reading=83.788
10回平均:mapping=2353.097, drawing=18.7855, reading=86....
-customizeF
1回目:mapping=3275.94, drawing=13.03, reading=77.955
2回目:mapping=3307.78, drawing=13.325, reading=81.848
3回目:mapping=3275.63, drawing=13.241, reading=88.699
4回目:mapping=3320.1, drawing=13.378, reading=85.393
5回目:mapping=3289.09, drawing=13.818, reading=77.911
6回目:mapping=3301.97, drawing=13.522, reading=84.865
7回目:mapping=3354.8, drawing=13.483, reading=77.418
8回目:mapping=3363.77, drawing=15.515, reading=80.204
9回目:mapping=3360.72, drawing=13.417, reading=80.493
10回目:mapping=3374.5, drawing=14.392, reading=80.069
10回平均:mapping=3322.430, drawing=13.8121, reading=81....
-customizeG
1回目:mapping=3274, drawing=14.456, reading=82.588
2回目:mapping=3335.92, drawing=16.917, reading=76.013
3回目:mapping=3248.43, drawing=15.159, reading=79.349
4回目:mapping=3285.9, drawing=14.68, reading=86.042
5回目:mapping=3299.26, drawing=14.316, reading=75.332
6回目:mapping=3315.03, drawing=15.161, reading=83.127
7回目:mapping=3280.48, drawing=14.048, reading=77.858
8回目:mapping=3546.09, drawing=26.618, reading=94.075
9回目:mapping=3282.63, drawing=14.092, reading=81.147
10回目:mapping=3294.77, drawing=14.299, reading=75.041
10回平均:mapping=3316.251, drawing=15.9746, reading=81....
-customizeH
1回目:mapping=12816.1, drawing=22.271, reading=85.546
2回目:mapping=12629.1, drawing=18.152, reading=79.779
3回目:mapping=12520.7, drawing=17.307, reading=79.849
4回目:mapping=12666.4, drawing=17.575, reading=86.019
5回目:mapping=12702.7, drawing=18.094, reading=89.842
6回目:mapping=12720.2, drawing=29.093, reading=88.604
7回目:mapping=12919.8, drawing=18.485, reading=87.114
8回目:mapping=12651.2, drawing=17.462, reading=89.674
9回目:mapping=12737.3, drawing=19.6, reading=93.281
10回目:mapping=12917, drawing=21.834, reading=80.909
10回平均:mapping=12728.05, drawing=19.9823, reading=86....
-customizeI
1回目:mapping=12778.3, drawing=19.888, reading=83.452
2回目:mapping=12797.7, drawing=17.154, reading=86.441
3回目:mapping=12896.9, drawing=20.284, reading=80.227
4回目:mapping=12779.8, drawing=17.792, reading=85.243
5回目:mapping=12770.5, drawing=17.028, reading=85.144
6回目:mapping=12844.8, drawing=18.516, reading=77.582
7回目:mapping=12839.2, drawing=17.308, reading=78.724
8回目:mapping=12708.5, drawing=17.762, reading=87.079
9回目:mapping=13075.6, drawing=18.012, reading=89.7
10回目:mapping=12656.7, drawing=18.283, reading=79.143
10回平均:mapping=12814.8, drawing=18.2027, reading=83.2...
-customizeJ
1回目:mapping=5273.62, drawing=250.119, reading=79.229
2回目:mapping=5301.11, drawing=252.678, reading=88.33
3回目:mapping=5276.07, drawing=247.351, reading=81.226
4回目:mapping=5351.13, drawing=264.648, reading=85.044
5回目:mapping=5348.72, drawing=256.61, reading=88.487
6回目:mapping=5322.91, drawing=254.189, reading=83.928
7回目:mapping=5334.57, drawing=260.221, reading=83.123
8回目:mapping=5372.36, drawing=255.564, reading=94.58
9回目:mapping=5335.54, drawing=247.707, reading=86.173
10回目:mapping=5362.82, drawing=260.707, reading=91.868
10回平均:mapping=5327.885, drawing=254.9794, reading=86...
-customizeK
1回目:mapping=2398.44, drawing=16.298, reading=79.807
2回目:mapping=2447.35, drawing=16.411, reading=83.681
3回目:mapping=2407.26, drawing=18.172, reading=83.388
4回目:mapping=2412.32, drawing=15.818, reading=77.233
5回目:mapping=2460.73, drawing=20.305, reading=81.408
6回目:mapping=2417.87, drawing=15.894, reading=75.067
7回目:mapping=2480.68, drawing=19.983, reading=96.623
8回目:mapping=2496.65, drawing=19.438, reading=87.494
9回目:mapping=2440.26, drawing=18.387, reading=88.072
10回目:mapping=2431.52, drawing=17.517, reading=81.942
10回平均:mapping=2439.317, drawing=17.8223, reading=83....
customizeAとの比較:mapping=63.151%, drawing=7.134%, 97....
**1/26 [#j6fd72bf]
-k-dツリーの実装はやめて、LittleSLAMをどんなカスタマイズ...
-リソース的な問題として、どこをCPUで、どこをFPGAで実装す...
-他の研究なども参考にして、基準を考える。
-最終的に考察をおこなう。
**1/22 [#ud502a37]
-k-dツリーアルゴリズムを全探索LittleSLAMに入れ込む。
-k-dツリーアルゴリズムはヘッダファイルなのでヘッダファイ...
-参照スキャンを読み込むところをk-dツリーの深さ優先探索を...
-全探索データ対応付処理をk-dツリーの深さ優先探索処理に書...
-または格子テーブルを参考に作成
**1/17 [#q69e5a53]
-k-dツリーを用いた高速化を行う方針
-k-dツリーのデータ量見積もりを行う。
-他の論文を探す。
-とりあえずk-dツリーの高速化を行っている研究を探してみる。
-またすでに持っている先行研究を読み切る。この先行研究は現...
-この先行研究とではk-NN法を階層グラフを用いて高速化してい...
**1/10 [#zeb16d7f]
-とりあえず最近傍探索の高速化はk-dツリーまたは格子テーブル
-どちらも構築に手間がかかりそうなのでそのへんのメリットデ...
**1/9 [#ef60eb9e]
-研究再開。学校があるうちはできるだけ予定を開けれるように...
-とりあえず今週はさらなる高速化案を模索しながら、家では先...
-高速化案
格子テーブル
k近傍探索法
k-dツリー
**12/25 [#o83040e3]
-latexを自分のノートPC上のVSコードで記述できるようにした
-latex workshopのsettings.jsonを書き直したが、うまく反映...
-シェルスクリプトで一手間かけて削除
/Users/nonomurakouhei
$ bash
$ source rm_file.sh
**12/15 [#ta32244a]
-鳥居さんのgitlabからDockerの使い方を履修
git add .
git commit -am "cp"
git push -u oriin develop-nonomura
**12/12 [#xbf6ba2d]
-使えるかもしれない高速化案
kdツリー
https://github.com/gishi523/kd-tree/blob/master/README.j...
格子ベース
LittleSLAMに掲載
-早くボード上で実装しないともう時間がない
-SDカードにpetalinuxを実装したい
引数が存在しない
toftodos, xfb, libncurses5-dev, tftpd, zlibig-dev, libss...
インストール済み
gawk, git, autoconf, libtool, screen
**11/30 [#fa1d20fa]
-見積もり継続中
-SLAM全体をボードに乗せてICP部分だけをFPGAに乗せる気でい...
-マッチングさえできるようにすればいいのならマッチングした...
**11/29 [#obe26c50]
-CPU-FPGA間でのデータ通信に関して、FPGA側にDataAssociator...
-このとき、クラスScan2DとPose2Dを受け渡しているため、Pose...
-corridor.lscファイルの場合、最後10回のマッピングはlps.si...
**11/24 [#rb30d267]
-勘違いしていた。CPUじゃあまり並列化の能力がないから、そ...
-コード並列化は一旦保留で、FPGAの環境構築を至急行わなけれ...
-CPUをボード上に乗せることはできるらしい。CPU-FPGA間でデ...
-とにかくCPU-FPGA間でのデータ転送のこととか、データ転送自...
-まず見積もりしてからFPGAの環境構築
**11/21 [#z0d58668]
-とりあえずSLAMを動かすことができた。オリジナルコードが動...
-ターゲットのコードを並列化
-評価方法に関して、SLAM全体の実行するか、ICP部分だけでい...
**11/20 [#s177914d]
-コード解析は一旦区切りがついた→データ対応付けを担ってい...
-LittleSLAMの実行について
-cmakeをやってみて色々エラーが出たので先生に相談
-boostに関するエラー(ビルドできてない、パスが指してる場...
-次はEigenに関するエラー
**11/13 [#f59e241a]
-コード解析進行中
-解析する必要がありそうなコード
DataAssociator.h 済
DataAssociatorLS.h 済
DataAssociatorLS.cpp 済
Pose2D.h
Pose2D.cpp
LPoint2D.h
LPoint2D.cpp
MyUtil.h
MyUtil.cpp
main.cpp
SlamLauncher.h
SlamLauncher.cpp
SensorDataLeader.h
SensorDataLeader.cpp
-とりあえず解析を進めつつ一度SLAMを動かさなきゃいけない。...
-動いたらICPの部分だけで動かせるかやってみる。
**11/8 [#n7a882c8]
-ICPアルゴリズムについて解析
-最近傍点探索の方法として使われているk近傍検索について調...
-先生と相談した論文を読む
**10/31 [#k63fdccd]
-ICPアルゴリズムを行えるプログラムはいくつかある模様。
-c++
LittleSLAM
ICP-Mini-Project
-python
https://clientver2.hatenablog.com/entry/2015/11/27/160814
https://programming-surgeon.com/script/icp-python-vtk/
http://whitewell.sakura.ne.jp/Open3D/ICPRegistration.html
-この中から早急に使用するものを決める必要がある
**10/29 [#gaeea058]
-引き続きどのファイルを使用するかの選定
そのまま本のファイルが使用できればいいが、今の状態だと多...
点群データの読み取り→ICPの計算→計算結果の出力?or何かし...
今後コード解析を行っていく上で、必要な部分・いらない部分...
-プロファイリング
-vivadoの勉強
**10/27 [#r4758e6b]
-gnprofによるプロファイリング
どのファイルが研究に必要なのか選定(ICPの点群読み込み、...
-vivado等チュートリアルの続き
-出力として何を期待すればいいのか?
-論文はいくつくらい読む必要があるのか?
**10/13 [#r28be904]
-引き続きチュートリアル「vivadoシュミレータの概要」の手順...
-研究室にあった本「SLAM入門」,今井さんの過去の研究とあわ...
-方針:今井さんのB4のときの研究「Iterative Closest Point-...
-まずハードウェアでつまずいてしまうらしいので早めに理解で...
**10/12 [#vb6d6277]
-AMDが提供しているvivadoチュートリアル「vivadoシュミレー...
https://docs.xilinx.com/r/2022.1-%E6%97%A5%E6%9C%AC%E8%AA...
-ICPアルゴリズムを理解する。(特に計算)
**10/8 [#q553c488]
-エッジ検出、点群処理についてもう一度詳しく調べる
-高速化できそうな点と、FPGA実装による高速化可能性検討する...
-ソーベルフィルタのコードやFPGA実装例自体は結構ある
-ICPのFPGA実装に焦点を当てる。SLAMで使用する重い処理であ...
-今井さんの論文を見る
**10/3 [#k4a8bf2c]
-loam_velodyneのソースコード解析
-C++で記述されてて読むのも苦労する
-C++,loam_veodyne解析、Ubuntuインストール、FPGA実装...絶...
**10/2 [#s491e433]
-loam_velodyneを実装するためにROS、catkinをインストールし...
-いろいろ調べてみたところ、UbuntuのOSが必要みたいだけど、...
-FPGAボード上にOSをインストールするのはなんとかできるぽい...
-SLAMを実装するの自体にも時間がかかり、高速化はもってのほ...
-研究テーマをこのままSLAMで進めていいのか?もう一度その辺...
**9/27 [#d948bb05]
-vivadoとvitis-hls起動のために必要なファイルが新しすぎた...
→ボードとの接続は正常にできているっぽいとはいえいまだ成功...
-一旦前回取り組んでいたチュートリアルhello_world_systemは...
-vitis-hlsを用いた掛け算IPのZyboへの実現
https://phys-higashi.com/826/
-公式から出ているvitis,vitis-hlsのチュートリアル
https://docs.xilinx.com/r/ja-JP/Vitis-Tutorials-Getting-S...
**9/25 [#ya782c7c]
-1からvivado&vitisのチュートリアルをやり直してみる
1. vivado2022→vitis2022へサイトの手順通り飛んで見る。つま...
2. vivadoでプロジェクトを作成した後、oyster2からでてvitis...
先生と相談した結果、oyster2上でvivado(またはvitis-hls)...
あと、本来vitisはvivadoの後継なので、vivadoとvitisを織り...
**9/24 [#k8f85f98]
-vitisのチュートリアルに引き続き取り組んでいるが、ボード...
-チュートリアルをすぐ終わらせてからloamについて調べるつも...
**9/17 [#o47fc816]
-vivadoを使用したチュートリアル、Hello Worldの出力プログ...
-次回プログラム部分作成
**9/13 [#b420c019]
-ようやくvivado,vitis-hlsも起動できた
-vivadoでのチュートリアル開始。Hello Worldの出力プログラ...
>ファイル名:hello_world_system
>https://phys-higashi.com/114/
>https://phys-higashi.com/152/
-これから研究関連で作成したプロジェクトやファイルは、全て
/home/nonomura/task_storageに保存するようにする
-忘れないように起動コードをメモしておく
vitis, vivado, vitis-hls
-terminalも動かせる状態のままにするには-&をつける
$bash
$source /eda1/Xilinx/Vivado/2020.1/settings64.sh
$vitis or vivado or vitis_hls
**9/12 [#c8731989]
-vivado,vitis-hlsの起動に手こずる。
-vitisは無事に起動できたので、先にvitisのチュートリアルを...
-公式サイトからインストールしたが、/eda1/xilinxにもともと...
**8/28 [#l1df7ca8]
-Vitis HLSのチュートリアルに関してhttps://phys-higashi.co...
-使用するFPGAはZYBO Z7
**8/24 [#k1161dca]
-作業記録開始
-方針決定
-Vitis HLSのチュートリアルを参考にFPGAツールを触る
*作業記録前 [#jf67c440]
前期は主に先行研究を閲覧し、研究とはどういうものかやFPGA...
*閲覧した論文 [#w9e87f11]
**閲覧済み [#k89beba7]
-Atsutake Kosuge, Keisuke Yamamoto, Yukinori Akamine, Tak...
ICPアルゴリズムをSoC-FPGA上で実装しピッキングロボットシス...
**今後見るべき論文 [#s001c51f]
-Map Reduceを用いた近似k近傍グラフの並列構築法
-空間分割による並列k近傍問い合わせの提案
-近似最近傍探索の多段階化による物体の高速認識
-A high speed iterative closest point tracker on an FPGA ...
終了行:
[[組込みシステム 2023]]
*アイデア [#mb0b6dd7]
-SLAM技術に用いられる、点群データのスキャンマッチング処理...
-一旦使用するFPGAボードはZYBO Z7 Zynq XC7Z020-1CLG400Cで...
*To doリスト [#ff2b187b]
**11/24 [#a9426272]
-ボード上にCPUを乗せる
-CPU-FPGA間でデータ送受信できるようにする
-データ転送、メモリへのアクセスのあたりについて見積もりを...
**11/14 [#dec34207]
-コード解析に関して
データ対応付けに関するDaaAssociator.h, DataassociatoLS.h...
他ICP関連コードと立ち上げ、データ読み込みコードを解析
-必要なパッケージ
gnuplot グラフ描画ツール 済
Boost C++汎用ツール 済
Eigen3 線形代数ライブラリ 済?できたかよくわからん
CMake ビルド支援ツール 済(bash上)
p2o Graph-based SLAMソルバ 済
-一度SLAMを実行
**11/2時点のto do [#iee8fd7f]
-コードのもとになっているアルゴリズムの解析
-アルゴリズムの並列化可能性模索
-まずCPU上で並列化を達成する
**10/29時点のto do [#w4933045]
-どのコードが必要化を選定し、プロファイルを行う。
-FPGA開発プラットフォームに関する勉強
**10月までの目標 [#o54b1bf0]
-方向転換
-FPGAの接続等を理解するため、Vitis, Vitis-hls, vivadoチュ...
-ストーリーとして成り立つか→Lidarシステムの中の画像処理部...
-FPGAで実装して高速化できそう→画像や点群のデータ転送に時...
-PC上でフィルタ処理や点群処理のプログラムを動かしてみる。
*研究関係項目 [#laa8d54a]
**LittleSLAMについて [#vb95d34b]
-FrameworkCustomizer.cppとSlamLauncher.cppによってSLAM処...
SlamLauncher.cppでcustomizeを変更(A~I)
-customizeA:全スキャン点保存地図。直前スキャンが参照スキ...
Elapsed time: mapping=3833.56, drawing=243.913, reading=...
かなり地図の精度が悪い。直前スキャンを参照スキャンとして...
生成地図x。実行時間△。
-customizeB:格子テーブル管理地図。(局所地図が参照スキャ...
Elapsed time: mapping=1263.24, drawing=16.329, reading=8...
局所地図を参照スキャンとしたことで地図の精度向上。自己位...
生成地図o。実行時間△。
-customizeC:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=1602.86, drawing=14.031, reading=8...
最適化改善により、より地図精度向上。しかし自己位置変化は...
生成地図o。実行時間△。
-customizeD:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=2229.08, drawing=14.462, reading=7...
対応付方法を変えたことで実行時間、自己位置変化ともに悪化。
生成地図△。実行時間o。
-customizeE:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=2303.98, drawing=16.882, reading=7...
自己位置変化が一定に。
生成地図o。実行時間o。
-customizeF:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=3276.56, drawing=12.882, reading=8...
コスト計算や法線計算追加により実行時間増加。自己位置変化...
生成地図x。実行時間△。
-cutomizeG:格子テーブル管理地図。局所地図が参照スキャン...
Elapsed time: mapping=3313.55, drawing=14.45, reading=86...
自己位置変化が少し改善
生成地図x。実行時間△。
-customizeH:(部分地図ごとに管理。)地図が参照スキャン。...
Elapsed time: mapping=12762.9, drawing=17.812, reading=8...
自己位置変化、地図描画結果は優秀だが、実行時間が大幅に悪...
生成地図o。実行時間x。
-customizeI:(格子テーブル管理地図。)地図が参照スキャン...
Elapsed time: mapping=12679.6, drawing=21.772, reading=8...
Hとあまり変化はないように見える。
生成地図o。実行時間x。
-customizeJ:自作カスタマイズ。customizeAからデータ対応付...
Elapsed time: mapping=5377.94, drawing=260.061, reading=...
Aよりもひどい図になった。
生成地図x。実行時間x。
-customizeK:customizeDの最適化方法を最急降下法のみに戻す。
Elapsed time: mapping=2379.27, drawing=15.106, reading=8...
-以上の結果から局所地図を参照スキャンとする線形探索が最も...
**プラットフォームについて [#v3d62dea]
-vivado:入力はHDLによる回路記述かIPインテグレータによるシ...
**FPGA [#l57015ca]
-PSとは
Processing Systemの略で、ZynqのもつARMコア側の部分のこと...
ハードマクロ化された部分のこと。
-PLとは
Programmable Logicの略で、ZynqのFPGA側の部分のことを指す。
**ICPアルゴリズムについて [#j2a3c309]
-1. 時刻tとt-1のときの位置における点群の最近傍点を対応付...
-2. 点群の対応をもとに回転行列と並進ベクトルを導く
-3. 回転行列と並進ベクトルを適用して移動
-1~3を反復閾値まで反復。閾値はズレの度合いや反復回数など
-1,3はそれぞれの点で独立した処理?2は並列化できなそう
-最近傍点探索の工程が計算時間が長いため、ここを特に高速化...
*ミーティングメモ [#ob42ccf9]
**12/14 [#s12ebacb]
-二つあるうちの外側のループを並列化しようと思っていたが、...
→例えば参照スキャンの中で走査する必要がある点数を削減して...
→または比較処理をトーナメント式にしてどんどん数を減らして...
-対応点探索処理の際に近傍点に限らせる
-上で例えとして記述した計算ユニットを作り、それをパイプラ...
-以上の点を含めて、FPGA実装を行うまでに到達するのは難しそ...
-ボードで頑張るのはそれから
-発表の上での問題点
今はすべての点について対応点が1:1で計算できる前提で話し...
今回元のプログラムの手法が一般的なものだと思われてしまわ...
**12/11 [#yedd2772]
-見積もりがあらかた終わった。あとは演算器を何個に設定する...
-大まかに見積もりを行った結果、入力の際は仮にdouble型の変...
-littleSLAMを実行するとリーディングにかかる時間は0.09秒と...
-出力の際はdouble型の返り値が一つだけなので64byte.これは...
**11/20 [#d65c43e3]
-コードの解析はほとんど終了
-cmakeでbuildしようとすると、めっちゃエラー出る→先生にそ...
-データ対応付けの関数を並列化
-地図生成部分などは必要ないので、スキャン→ICP呼び出し→デ...
**10/16(月)グループミーティング [#v4d133da]
-使用する言語などを決める。
-研究方針自体はある程度確定
ICPアルゴリズムを並列化し、FPGA実装を行う。今井さんの案...
-なるべく早めに開発環境について少しでも理解し、どれを使っ...
**11/2(木) 全体ミーティング [#i95efebd]
-(鳥居さん)反復閾値が回数ではなく距離の許容域であるなら整...
-(古市さん)現時点でFPGA上で動作できているコードがないから...
-(高木先生)コード解析の前にアルゴリズム解析を行い、並列化...
-ICPアルゴリズムと一口に言ってもたくさんあるので、どうい...
-比較する際は外に出ている論文と比較
*作業記録 [#l406325d]
**2/16 [#l28340a7]
customizeA
1回目:mapping=27524.6, drawing=687.399, reading=398.04
2回目:mapping=27420.3, drawing=674.221, reading=401.031
3回目:mapping=27104, drawing=656.134, reading=418.968
4回目:mapping=27043.2, drawing=643.114, reading=397.101
5回目:mapping=27219.9, drawing=691.927, reading=397.713
6回目:mapping=27073.5, drawing=655.559, reading=398.946
7回目:mapping=27111.9, drawing=663.288, reading=388.959
8回目:mapping=27481.2, drawing=640.306, reading=376.715
9回目:mapping=27417.2, drawing=677.787, reading=390.015
10回目:mapping=27569.4, drawing=668.588, reading=401.063
customizeB
1回目:mapping=13867.6, drawing=581.798, reading=402.241
2回目:mapping=14071.1, drawing=589.901, reading=407.131
3回目:mapping=13851.9, drawing=564.665, reading=446.031
4回目:mapping=14137.9, drawing=591.48, reading=416.716
5回目:mapping=14258.4, drawing=605.038, reading=413.682
6回目:mapping=13869.2, drawing=573.634, reading=408.576
7回目:mapping=13953.2, drawing=573.98, reading=401.214
8回目:mapping=14142.6, drawing=614.165, reading=417.776
9回目:mapping=13912.5, drawing=571.73, reading=407.302
10回目:mapping=14307.9, drawing=611.876, reading=400.866
customizeC
1回目:mapping=26255.5, drawing=546.622, reading=380.825
2回目:mapping=25665, drawing=507.398, reading=409.693
3回目:mapping=26297.4, drawing=534.344, reading=402.249
4回目:mapping=25601.5, drawing=532.822, reading=408.691
5回目:mapping=25587.4, drawing=507.093, reading=395.16
6回目:mapping=26376.8, drawing=555.807, reading=407.338
7回目:mapping=25898.6, drawing=520.574, reading=408.614
8回目:mapping=26193.6, drawing=546.321, reading=406.907
9回目:mapping=26293.6, drawing=512.967, reading=403.815
10回目:mapping=26233.7, drawing=553.882, reading=404.514
customizeL
1回目:mapping=27787.2, drawing=671.981, reading=416.063
2回目:
3回目:
4回目:
5回目:
6回目:
7回目:
8回目:
9回目:
10回目:
**1/31 [#yd3be025]
-customizeAは全てデフォルト設定のLittleSLAM。
-customizeAと比較してmapping効率が良い上位3つ
customizeB→customizeC→customizeD
-customizeAと比較してtotal効率がいい上位3つ
cutomizeB→customizeC→cutomizeD
-customizeAと比較して地図結果が良いもの
customizeI→customizeH→customizeB
**1/29 [#m7c40698]
-customizeA
1回目:mapping=3897.4, drawing=257.962, reading=82.642
2回目:mapping=3923.34, drawing=261.658, reading=86.596
3回目:mapping=3807.82, drawing=247.381, reading=83.615
4回目:mapping=3866.21, drawing=245.961, reading=81.209
5回目:mapping=3878.91, drawing=244.828, reading=91.556
6回目:mapping=3868.24, drawing=250.49, reading=92.273
7回目:mapping=3839.3, drawing=245.513, reading=84.528
8回目:mapping=3853.85, drawing=243.863, reading=81.83
9回目:mapping=3846.43, drawing=244.269, reading=83.869
10回目:mapping=3845.51, drawing=247.451, reading=89.474
10回平均:mapping=3862.701, drawing=249.8376, reading=85...
-customizeB
1回目:mapping=1280.13, drawing=15.929, reading=79.753
2回目:mapping=1259.71, drawing=16.495, reading=85.017
3回目:mapping=1272.21, drawing=16.668, reading=81.225
4回目:mapping=1268.99, drawing=17.066, reading=84.562
5回目:mapping=1325.84, drawing=18.738, reading=108.929
6回目:mapping=1286.12, drawing=16.223, reading=94.445
7回目:mapping=1318.82, drawing=17.873, reading=102.436
8回目:mapping=1257.08, drawing=16.181, reading=80.551
9回目:mapping=1268.83, drawing=15.761, reading=80.021
10回目:mapping=1334.86, drawing=19.325, reading=93.645
10回平均:mapping=1287.259, drawing=17.0259, reading=89....
-customizeC
1回目:mapping=1624.51, drawing=15.591, reading=90.972
2回目:mapping=1676.62, drawing=16.56, reading=79.372
3回目:mapping=1623.37, drawing=15.774, reading=87.373
4回目:mapping=1626.09, drawing=14.763, reading=84.045
5回目:mapping=1627.71, drawing=15.511, reading=84.722
6回目:mapping=1602.37, drawing=14.603, reading=82.837
7回目:mapping=1611.86, drawing=14.733, reading=80.521
8回目:mapping=1598.42, drawing=15.073, reading=75.857
9回目:mapping=1603.5, drawing=14.285, reading=84.845
10回目:mapping=1591.22, drawing=14.777, reading=86.834
10回平均:mapping=1618.567, drawing=15.167, reading=84.0...
-customizeD
1回目:mapping=2372.19, drawing=20.396, reading=100.943
2回目:mapping=2252.15, drawing=14.365, reading=99.048
3回目:mapping=2242.24, drawing=14.727, reading=89.129
4回目:mapping=2218.95, drawing=13.711, reading=81.13
5回目:mapping=2272.66, drawing=14.857, reading=93.382
6回目:mapping=2477.77, drawing=28.029, reading=105.332
7回目:mapping=2257.16, drawing=14.001, reading=85.831
8回目:mapping=2287.05, drawing=16.564, reading=98.137
9回目:mapping=2258.64, drawing=14.826, reading=91.579
10回目:mapping=2268.23, drawing=15.279, reading=95.987
10回平均:mapping=2290.704, drawing=16.6755, reading=94....
-customizeE
1回目:mapping=2333.57, drawing=17.003, reading=84.288
2回目:mapping=2345.17, drawing=18.752, reading=90.293
3回目:mapping=2296.05, drawing=16.609, reading=78.821
4回目:mapping=2350.45, drawing=18.001, reading=84.536
5回目:mapping=2340.27, drawing=18.398, reading=84.399
6回目:mapping=2314.82, drawing=16.167, reading=84.477
7回目:mapping=2348.08, drawing=17.671, reading=86.226
8回目:mapping=2540.25, drawing=31.755, reading=107.732
9回目:mapping=2329.54, drawing=16.325, reading=79.533
10回目:mapping=2332.77, drawing=17.354, reading=83.788
10回平均:mapping=2353.097, drawing=18.7855, reading=86....
-customizeF
1回目:mapping=3275.94, drawing=13.03, reading=77.955
2回目:mapping=3307.78, drawing=13.325, reading=81.848
3回目:mapping=3275.63, drawing=13.241, reading=88.699
4回目:mapping=3320.1, drawing=13.378, reading=85.393
5回目:mapping=3289.09, drawing=13.818, reading=77.911
6回目:mapping=3301.97, drawing=13.522, reading=84.865
7回目:mapping=3354.8, drawing=13.483, reading=77.418
8回目:mapping=3363.77, drawing=15.515, reading=80.204
9回目:mapping=3360.72, drawing=13.417, reading=80.493
10回目:mapping=3374.5, drawing=14.392, reading=80.069
10回平均:mapping=3322.430, drawing=13.8121, reading=81....
-customizeG
1回目:mapping=3274, drawing=14.456, reading=82.588
2回目:mapping=3335.92, drawing=16.917, reading=76.013
3回目:mapping=3248.43, drawing=15.159, reading=79.349
4回目:mapping=3285.9, drawing=14.68, reading=86.042
5回目:mapping=3299.26, drawing=14.316, reading=75.332
6回目:mapping=3315.03, drawing=15.161, reading=83.127
7回目:mapping=3280.48, drawing=14.048, reading=77.858
8回目:mapping=3546.09, drawing=26.618, reading=94.075
9回目:mapping=3282.63, drawing=14.092, reading=81.147
10回目:mapping=3294.77, drawing=14.299, reading=75.041
10回平均:mapping=3316.251, drawing=15.9746, reading=81....
-customizeH
1回目:mapping=12816.1, drawing=22.271, reading=85.546
2回目:mapping=12629.1, drawing=18.152, reading=79.779
3回目:mapping=12520.7, drawing=17.307, reading=79.849
4回目:mapping=12666.4, drawing=17.575, reading=86.019
5回目:mapping=12702.7, drawing=18.094, reading=89.842
6回目:mapping=12720.2, drawing=29.093, reading=88.604
7回目:mapping=12919.8, drawing=18.485, reading=87.114
8回目:mapping=12651.2, drawing=17.462, reading=89.674
9回目:mapping=12737.3, drawing=19.6, reading=93.281
10回目:mapping=12917, drawing=21.834, reading=80.909
10回平均:mapping=12728.05, drawing=19.9823, reading=86....
-customizeI
1回目:mapping=12778.3, drawing=19.888, reading=83.452
2回目:mapping=12797.7, drawing=17.154, reading=86.441
3回目:mapping=12896.9, drawing=20.284, reading=80.227
4回目:mapping=12779.8, drawing=17.792, reading=85.243
5回目:mapping=12770.5, drawing=17.028, reading=85.144
6回目:mapping=12844.8, drawing=18.516, reading=77.582
7回目:mapping=12839.2, drawing=17.308, reading=78.724
8回目:mapping=12708.5, drawing=17.762, reading=87.079
9回目:mapping=13075.6, drawing=18.012, reading=89.7
10回目:mapping=12656.7, drawing=18.283, reading=79.143
10回平均:mapping=12814.8, drawing=18.2027, reading=83.2...
-customizeJ
1回目:mapping=5273.62, drawing=250.119, reading=79.229
2回目:mapping=5301.11, drawing=252.678, reading=88.33
3回目:mapping=5276.07, drawing=247.351, reading=81.226
4回目:mapping=5351.13, drawing=264.648, reading=85.044
5回目:mapping=5348.72, drawing=256.61, reading=88.487
6回目:mapping=5322.91, drawing=254.189, reading=83.928
7回目:mapping=5334.57, drawing=260.221, reading=83.123
8回目:mapping=5372.36, drawing=255.564, reading=94.58
9回目:mapping=5335.54, drawing=247.707, reading=86.173
10回目:mapping=5362.82, drawing=260.707, reading=91.868
10回平均:mapping=5327.885, drawing=254.9794, reading=86...
-customizeK
1回目:mapping=2398.44, drawing=16.298, reading=79.807
2回目:mapping=2447.35, drawing=16.411, reading=83.681
3回目:mapping=2407.26, drawing=18.172, reading=83.388
4回目:mapping=2412.32, drawing=15.818, reading=77.233
5回目:mapping=2460.73, drawing=20.305, reading=81.408
6回目:mapping=2417.87, drawing=15.894, reading=75.067
7回目:mapping=2480.68, drawing=19.983, reading=96.623
8回目:mapping=2496.65, drawing=19.438, reading=87.494
9回目:mapping=2440.26, drawing=18.387, reading=88.072
10回目:mapping=2431.52, drawing=17.517, reading=81.942
10回平均:mapping=2439.317, drawing=17.8223, reading=83....
customizeAとの比較:mapping=63.151%, drawing=7.134%, 97....
**1/26 [#j6fd72bf]
-k-dツリーの実装はやめて、LittleSLAMをどんなカスタマイズ...
-リソース的な問題として、どこをCPUで、どこをFPGAで実装す...
-他の研究なども参考にして、基準を考える。
-最終的に考察をおこなう。
**1/22 [#ud502a37]
-k-dツリーアルゴリズムを全探索LittleSLAMに入れ込む。
-k-dツリーアルゴリズムはヘッダファイルなのでヘッダファイ...
-参照スキャンを読み込むところをk-dツリーの深さ優先探索を...
-全探索データ対応付処理をk-dツリーの深さ優先探索処理に書...
-または格子テーブルを参考に作成
**1/17 [#q69e5a53]
-k-dツリーを用いた高速化を行う方針
-k-dツリーのデータ量見積もりを行う。
-他の論文を探す。
-とりあえずk-dツリーの高速化を行っている研究を探してみる。
-またすでに持っている先行研究を読み切る。この先行研究は現...
-この先行研究とではk-NN法を階層グラフを用いて高速化してい...
**1/10 [#zeb16d7f]
-とりあえず最近傍探索の高速化はk-dツリーまたは格子テーブル
-どちらも構築に手間がかかりそうなのでそのへんのメリットデ...
**1/9 [#ef60eb9e]
-研究再開。学校があるうちはできるだけ予定を開けれるように...
-とりあえず今週はさらなる高速化案を模索しながら、家では先...
-高速化案
格子テーブル
k近傍探索法
k-dツリー
**12/25 [#o83040e3]
-latexを自分のノートPC上のVSコードで記述できるようにした
-latex workshopのsettings.jsonを書き直したが、うまく反映...
-シェルスクリプトで一手間かけて削除
/Users/nonomurakouhei
$ bash
$ source rm_file.sh
**12/15 [#ta32244a]
-鳥居さんのgitlabからDockerの使い方を履修
git add .
git commit -am "cp"
git push -u oriin develop-nonomura
**12/12 [#xbf6ba2d]
-使えるかもしれない高速化案
kdツリー
https://github.com/gishi523/kd-tree/blob/master/README.j...
格子ベース
LittleSLAMに掲載
-早くボード上で実装しないともう時間がない
-SDカードにpetalinuxを実装したい
引数が存在しない
toftodos, xfb, libncurses5-dev, tftpd, zlibig-dev, libss...
インストール済み
gawk, git, autoconf, libtool, screen
**11/30 [#fa1d20fa]
-見積もり継続中
-SLAM全体をボードに乗せてICP部分だけをFPGAに乗せる気でい...
-マッチングさえできるようにすればいいのならマッチングした...
**11/29 [#obe26c50]
-CPU-FPGA間でのデータ通信に関して、FPGA側にDataAssociator...
-このとき、クラスScan2DとPose2Dを受け渡しているため、Pose...
-corridor.lscファイルの場合、最後10回のマッピングはlps.si...
**11/24 [#rb30d267]
-勘違いしていた。CPUじゃあまり並列化の能力がないから、そ...
-コード並列化は一旦保留で、FPGAの環境構築を至急行わなけれ...
-CPUをボード上に乗せることはできるらしい。CPU-FPGA間でデ...
-とにかくCPU-FPGA間でのデータ転送のこととか、データ転送自...
-まず見積もりしてからFPGAの環境構築
**11/21 [#z0d58668]
-とりあえずSLAMを動かすことができた。オリジナルコードが動...
-ターゲットのコードを並列化
-評価方法に関して、SLAM全体の実行するか、ICP部分だけでい...
**11/20 [#s177914d]
-コード解析は一旦区切りがついた→データ対応付けを担ってい...
-LittleSLAMの実行について
-cmakeをやってみて色々エラーが出たので先生に相談
-boostに関するエラー(ビルドできてない、パスが指してる場...
-次はEigenに関するエラー
**11/13 [#f59e241a]
-コード解析進行中
-解析する必要がありそうなコード
DataAssociator.h 済
DataAssociatorLS.h 済
DataAssociatorLS.cpp 済
Pose2D.h
Pose2D.cpp
LPoint2D.h
LPoint2D.cpp
MyUtil.h
MyUtil.cpp
main.cpp
SlamLauncher.h
SlamLauncher.cpp
SensorDataLeader.h
SensorDataLeader.cpp
-とりあえず解析を進めつつ一度SLAMを動かさなきゃいけない。...
-動いたらICPの部分だけで動かせるかやってみる。
**11/8 [#n7a882c8]
-ICPアルゴリズムについて解析
-最近傍点探索の方法として使われているk近傍検索について調...
-先生と相談した論文を読む
**10/31 [#k63fdccd]
-ICPアルゴリズムを行えるプログラムはいくつかある模様。
-c++
LittleSLAM
ICP-Mini-Project
-python
https://clientver2.hatenablog.com/entry/2015/11/27/160814
https://programming-surgeon.com/script/icp-python-vtk/
http://whitewell.sakura.ne.jp/Open3D/ICPRegistration.html
-この中から早急に使用するものを決める必要がある
**10/29 [#gaeea058]
-引き続きどのファイルを使用するかの選定
そのまま本のファイルが使用できればいいが、今の状態だと多...
点群データの読み取り→ICPの計算→計算結果の出力?or何かし...
今後コード解析を行っていく上で、必要な部分・いらない部分...
-プロファイリング
-vivadoの勉強
**10/27 [#r4758e6b]
-gnprofによるプロファイリング
どのファイルが研究に必要なのか選定(ICPの点群読み込み、...
-vivado等チュートリアルの続き
-出力として何を期待すればいいのか?
-論文はいくつくらい読む必要があるのか?
**10/13 [#r28be904]
-引き続きチュートリアル「vivadoシュミレータの概要」の手順...
-研究室にあった本「SLAM入門」,今井さんの過去の研究とあわ...
-方針:今井さんのB4のときの研究「Iterative Closest Point-...
-まずハードウェアでつまずいてしまうらしいので早めに理解で...
**10/12 [#vb6d6277]
-AMDが提供しているvivadoチュートリアル「vivadoシュミレー...
https://docs.xilinx.com/r/2022.1-%E6%97%A5%E6%9C%AC%E8%AA...
-ICPアルゴリズムを理解する。(特に計算)
**10/8 [#q553c488]
-エッジ検出、点群処理についてもう一度詳しく調べる
-高速化できそうな点と、FPGA実装による高速化可能性検討する...
-ソーベルフィルタのコードやFPGA実装例自体は結構ある
-ICPのFPGA実装に焦点を当てる。SLAMで使用する重い処理であ...
-今井さんの論文を見る
**10/3 [#k4a8bf2c]
-loam_velodyneのソースコード解析
-C++で記述されてて読むのも苦労する
-C++,loam_veodyne解析、Ubuntuインストール、FPGA実装...絶...
**10/2 [#s491e433]
-loam_velodyneを実装するためにROS、catkinをインストールし...
-いろいろ調べてみたところ、UbuntuのOSが必要みたいだけど、...
-FPGAボード上にOSをインストールするのはなんとかできるぽい...
-SLAMを実装するの自体にも時間がかかり、高速化はもってのほ...
-研究テーマをこのままSLAMで進めていいのか?もう一度その辺...
**9/27 [#d948bb05]
-vivadoとvitis-hls起動のために必要なファイルが新しすぎた...
→ボードとの接続は正常にできているっぽいとはいえいまだ成功...
-一旦前回取り組んでいたチュートリアルhello_world_systemは...
-vitis-hlsを用いた掛け算IPのZyboへの実現
https://phys-higashi.com/826/
-公式から出ているvitis,vitis-hlsのチュートリアル
https://docs.xilinx.com/r/ja-JP/Vitis-Tutorials-Getting-S...
**9/25 [#ya782c7c]
-1からvivado&vitisのチュートリアルをやり直してみる
1. vivado2022→vitis2022へサイトの手順通り飛んで見る。つま...
2. vivadoでプロジェクトを作成した後、oyster2からでてvitis...
先生と相談した結果、oyster2上でvivado(またはvitis-hls)...
あと、本来vitisはvivadoの後継なので、vivadoとvitisを織り...
**9/24 [#k8f85f98]
-vitisのチュートリアルに引き続き取り組んでいるが、ボード...
-チュートリアルをすぐ終わらせてからloamについて調べるつも...
**9/17 [#o47fc816]
-vivadoを使用したチュートリアル、Hello Worldの出力プログ...
-次回プログラム部分作成
**9/13 [#b420c019]
-ようやくvivado,vitis-hlsも起動できた
-vivadoでのチュートリアル開始。Hello Worldの出力プログラ...
>ファイル名:hello_world_system
>https://phys-higashi.com/114/
>https://phys-higashi.com/152/
-これから研究関連で作成したプロジェクトやファイルは、全て
/home/nonomura/task_storageに保存するようにする
-忘れないように起動コードをメモしておく
vitis, vivado, vitis-hls
-terminalも動かせる状態のままにするには-&をつける
$bash
$source /eda1/Xilinx/Vivado/2020.1/settings64.sh
$vitis or vivado or vitis_hls
**9/12 [#c8731989]
-vivado,vitis-hlsの起動に手こずる。
-vitisは無事に起動できたので、先にvitisのチュートリアルを...
-公式サイトからインストールしたが、/eda1/xilinxにもともと...
**8/28 [#l1df7ca8]
-Vitis HLSのチュートリアルに関してhttps://phys-higashi.co...
-使用するFPGAはZYBO Z7
**8/24 [#k1161dca]
-作業記録開始
-方針決定
-Vitis HLSのチュートリアルを参考にFPGAツールを触る
*作業記録前 [#jf67c440]
前期は主に先行研究を閲覧し、研究とはどういうものかやFPGA...
*閲覧した論文 [#w9e87f11]
**閲覧済み [#k89beba7]
-Atsutake Kosuge, Keisuke Yamamoto, Yukinori Akamine, Tak...
ICPアルゴリズムをSoC-FPGA上で実装しピッキングロボットシス...
**今後見るべき論文 [#s001c51f]
-Map Reduceを用いた近似k近傍グラフの並列構築法
-空間分割による並列k近傍問い合わせの提案
-近似最近傍探索の多段階化による物体の高速認識
-A high speed iterative closest point tracker on an FPGA ...
ページ名: