ライントレースの時のセンサー値をデータロギングする ~レゴマインドストームEV3~ | そう備忘録

ライントレースの時のセンサー値をデータロギングする ~レゴマインドストームEV3~

データロギングとは

教育用レゴマインドストームEV3のデータロギングはプログラム動作中の色々なセンサーの値を保存しておいて、プログラム終了後にアップロードしてグラフ化することができる。

例えばモーターのパワー、回転角度、カラーセンサーの反射光の強さ、ジャイロセンサーの角速度などのデータを時系列で保存した後、実験画面で読み込んでグラフ化することにより、その時その時のセンサー値を正しく把握して次のプログラミングに活かすことができる。

下記の用にグラフィカルに線グラフで表示すると同時の数値データでも保存されているので後からかなり詳しく分析することができる。

データロギング

ライントレース

トレーニンロボットに下向きにカラーセンサーを取り付ける。

カラーセンサーで反射光の強さを測定して黒ライン上をトレースするプログラムを作成する。

トレーニングロボットにカラーセンサーを取り付ける

使用するプログラム

今回使用するプログラムは以下の通り。

カラーセンサーで反射光の強さを判別して反射光が50未満(黒ライン上)と50以上(黒ライン以外)とで左右のモーターをパワーを制御して蛇行をしながら黒ライン上をトレースするプログラム。

尚、このプログラムの詳細については以前の「黒ラインをトレースするプログラム」の記事を参照。

今回はこのプログラムについての詳しい説明は行わない。

ライントレースプログラム

使用するブロック

今回使用するブロックは上記のプログラムで使用しているブロック以外では以下の1種類。

データロギングブロック

データのログ(記録)をとるためのブロック。

様々なセンサーやモータの値を時系列で記録することができる。

データロギング カラーセンサー 反射光の強さカラーセンサーの反射光の強さを0.1秒間隔で記録してcolor.rdfに保存する

  • データロギング:オン(データロギングを開始する)
  • 頻度:10(1秒間に10回記録する)
  • 測定間隔の単位:0(秒数)
  • 測定:カラーセンサー、反射光の強さ
  • ファイル名:color(この名前で記録ファイルが作成される)
データロギング モーター回転 現在のパワーポートB(左車輪)とポートC(右車輪)のモーターのパワー値を0.1秒間隔で記録してleft.rdf(right.rdf)に保存する

  • データロギング:オン(データロギングを開始する)
  • 頻度:10(1秒間に10回記録する)
  • 測定間隔の単位:0(秒数)
  • 測定:モーター回転、現在のパワー
  • ファイル名:left(左車輪)、right(右車輪)
データロギング 停止データロギングを停止する

  • データロギング:停止

プログラム全体

先程の黒ライン上を蛇行してトレースするプログラムの前後にデータロギングブロックを配置してカラーセンサーの反射光の強さや左右のモーターのパワー値を記録する。

データロギング プログラム全体

プログラム開始
カラーセンサーの反射光の強さのデータロギングを開始する
左車輪のモーターのパワーのデータロギングを開始する
右車輪のモーターのパワーのデータロギングを開始する
黒ライン状を蛇行してトレースするプログラム

詳細は以前の記事を参照

カラーセンサーのデータロギングを停止する
モーター(左車輪)のパワーのデータロギングを停止する
モーター(右車輪)のパワーのデータロギングを停止する

実験モード

上記のプログラムを実行した後、Programの右横の+を押して「新しい実験」を開く

新しい実験

新しいExperimentタブが開くので右下の”アップロード”ボタン

データログファイルマネージャーが開くのでAuto-Logging(プログラム名)フォルダー配下の3つのファイル

  1. color.rdf
  2. Left.rdf
  3. Right.rdf

を選択して”インポート”する。

データのアップロード

ログデータが読み込まれると同時に時系列の折れ線グラフが表示される

データロギング

カラーセンサーの反射光の強さ(茶)蛇行しながらの黒ラインのトレースなので10%(黒ライン上)~100%を繰り返している

一部、間隔が広いところはコースが楕円の部分

左車輪のパワー(紫)トレーニングロボットが黒ラインから外れるとパワーが入り、黒ライン上に戻るとパワーが下がる
右車輪のパワー(赤)上記の左車輪のパワーと逆の動きをする
ログデータグラフの元となる数値データ

0.1秒単位で記録されている

上記の様にデータロギングブロックを使うとプログラム動作中のセンサーやモーターの動きを数値化してグラフィカルに表示することができる。

センサー値からプログラムの基本的な動きを確認したい時や、より細かいセッティングの為にセンサーの値をシビアに観測したい時などに活用できる。

実際に動かしてみた動画

プログラムの作成からデータのロギング、実験画面へのアップロードから分析までの動画がこちら。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。