Skip to content

データの解析の方法

Yasuo Hayashibara edited this page Oct 5, 2021 · 17 revisions

【注意】動作確認していないコマンドもあるため,問題があれば報告してください.

解析用の現在(10/5)のブランチは以下の通り
https://github.com/open-rdc/nav_cloning/tree/develop/auto_experiment

以下のブランチの更新も行う(gazeboにプラグインを入れて位置を計測するため)
https://github.com/open-rdc/turtlebot3/tree/3_cameras

訓練

訓練用のデータセットを得るために,再度訓練し直すことが必要
現在は学習器の出力を利用するモードだけ対応

4000ステップ訓練を行い,2000ステップテストする.

roslaunch nav_cloning nav_cloning_sim.launch script:=nav_cloning_node.py mode:=use_dl_output

もしくはいずれか

roslaunch nav_cloning nav_cloning_sim.launch script:=nav_cloning_node.py mode:=manual
roslaunch nav_cloning nav_cloning_sim.launch script:=nav_cloning_node.py mode:=zigzag
roslaunch nav_cloning nav_cloning_sim.launch script:=nav_cloning_node.py mode:=follow_line

訓練のログの保存場所

~/catkin_ws/src/nav_cloning/data/result_(モード名)/(実行開始時間)/training.csv

訓練済みモデルの保存場所

~/catkin_ws/src/nav_cloning/data/result_(モード名)/(実行開始時間)/model.net

解析の事前準備

【注意】以下のディレクトリに上書きされると困るファイルがある場合は,別のディレクトに移動してから実行してください.

~/catkin_ws/src/nav_cloning/data/analysis/

経路の保存
同じ経路で解析する場合は1度で構わない.

roslaunch nav_cloning nav_cloning_sim.launch script:=path_collector.py

~/catkin_ws/src/nav_cloning/data/analysis/path.csvに0.1秒ごとのロボットの位置(真値)が保存される.

訓練のログの可視化

訓練に用いた経路の表示
訓練のログtraining.csvを以下のディレクトリに保存する.

~/catkin_ws/src/nav_cloning/data/analysis/training.csv

以下のスクリプトを実行する.

rosrun nav_cloning draw_training_pos.py

結果の例 Screenshot 2021-10-04 11:13:15

訓練に用いたデータセットのヒストグラム

以下のスクリプトを実行する.

rosrun nav_cloning calc_histogram_training_posture.py

以下に経路を基準とした,位置と姿勢の差を表す数値が保存される.

~/catkin_ws/src/nav_cloning/data/analysis/histogram_training_posture.csv

訓練に用いた4000ステップのデータを使用して,ヒストグラムを表示
※4001~6000はテストのデータであるため注意

※以下は参考,検討に必要なデータを得られるように整形する必要あり.
距離のヒストグラム
image

角度差のヒストグラム
image

解析の例
histogram_training_posture.ods

訓練済みモデルの解析方法

1)画像を取得して,角速度を計算する位置・姿勢の算出
同じ場所で実験をする場合は1度で構わない.
条件を変えたい場合は,スクリプト内のパラメータを変更する.

rosrun nav_cloning calc_capture_pos.py

~/catkin_ws/src/nav_cloning/data/analysis/capture_pos.csvに画像を取得して,角速度を算出する位置・姿勢が保存される.

2)解析する学習済みモデルmodel.net~/catkin_ws/src/nav_cloning/data/analysis/フォルダにコピー
予め訓練を行ってモデルmodel.netを作成することが必要

3)capture_pos.csvの位置で画像を取得して,model.netに基づいて目標角速度を計算して保存

roslaunch nav_cloning nav_cloning_sim.launch script:=calc_ang_vel.py

data/analysisに画像ファイルと位置・姿勢での目標角速度が保存される.

4)グラフに出力する.

rosrun nav_cloning draw_dl_output.py

211005_draw_dl_outpu v01

経路追従可能領域の算出

1)経路追従可能領域を求める

roslaunch nav_cloning nav_cloning_sim.launch script:=calc_traceable_pos.py

2)経路追従可能領域を表示する.

rosrun nav_cloning draw_traceable_pos.py

例) 緑:全ての方向で経路方向に移動 黄:方向によっては経路から外れる 赤:全ての方向で経路から外れる

211005_follow_line v01

3)追従可能領域の経路からの距離による平均

rosrun nav_cloning calc_traceable_histogram.py

image

Clone this wiki locally