*

Ev3開発サポートツール(4)-Pythonによるグラフ表示

公開日: : Python, マインドストーム/EV3, 開発

どもです。
前回のエントリーで、VisualStudioCommunityでのPythonの開発環境の構築について、記載しました。
今回は、構築した環境を用いて実際にグラフを描くツールを作成したので、それを備忘録として記載します。

1.今回作ったもの
今回作成したものは、CSVファイルを解析して、その内容をグラフに表示する、というツールです。

2.CSVフォーマット
まずは、CSVのフォーマットです。
1行は、ヘッダー行です。各列の内容の概要を示す情報を表示します。
列の順番は、下記の通りです。

1.データのインデックス
2.PID制御のP項(左側モーター)
3.PID制御のI項(左側モーター)
4.PID制御のD項(左側モーター)
5.PID制御のP項(右側モーター)
6.PID制御のI項(右側モーター)
7.PID制御のD項(右側モーター)
8.モーター出力指示値(左モーター)
9.モーター出力指示値(右モーター)
10.モーター出力値(左モーター)
11.モーター出力値(右モーター)
12.モーター目標出力値(左モーター)
13.モーター目標出力値(右モーター)
14.距離センサー値
15.距離センサー平均値

3.Pythonのバージョンとかとか
使用している環境は、下記の通りです。
CPU:i7-3770K CPU 3.50GHz
メモリ:16.0GB
OS:Windows7 Professional SP1(64bit)
VisualStudioCommunity2015 Version 14.0
Python:Python 3.6.1 Anaconda 4.4.0 (64bit)

4.使用するライブラリ
今回作成したツールでは、CSVを読み込んでグラフに表示する、という順番で処理を実行します。
この処理を実現するためには、pythonに用意されている豊富なライブラリを使用します。
pythonでCSVを読み込むためには「pandas」を、グラフの表示のためには「matlibplot」をそれぞれ使用します。

5.グラフの分割
グラフは、2つのウィンドウに分割します。
1つはPID制御の各項の値を表示します。
もう1つは、各モーターの出力値、動作値、および目標指示値を表示します。
ここで、1つ目のウィンドウではP項/I項/D項を別々のグラフに、2つ目のグラフでは、右モーターと左モーターの値をそれぞれ別々のグラフに表示します。

6.コード
実際に実装したコードは、以下の通りです。

先頭の行にも記載していますが、文字コードをShift-JISに指定しています。
これは、VisualStudioのデフォルトの文字コードが「Shift-JIS」だからです。

で。
実際に作成したグラフが、コレ。
PID制御の各値
モーター出力値

いい具合に、期待するグラフが表示されました。

以上、今回はグラフを表示するためのツールをpythonで作ってみました。
今後は、このツールを用いて振舞いの解析をしていきます。

ではっ!

関連記事

no image

Objective-CからC++コードを呼び出す

どもどもです。 今回は、突然ながらMacに関係する投稿です。 ソフト関係のことを勉強していて

記事を読む

eclipse_4.3_kepler

elicpse/CDTでのgdbでのソースを追従したデバッグができない問題

どもです。 今回のエントリーは、Eclipse上でgdbを利用したデバッグ中に発生する問題について

記事を読む

toppers

C言語でEV3開発(25)-Q_Learningを実装してみた…が!?

どもです。 今回の内容は、「失敗しました」という内容です。 最近、流行になっている深層学習/

記事を読む

no image

C言語でEV3開発(11)-opOUTPUT_STEP_POWERコマンド

どもです。 今回のエントリーでは、再びモーターを動かすためのコマンドについて書きます。 コマンド

記事を読む

google_test_top

C言語でEV3開発(5)

どもです。 今回のエントリーは、前回のエントリーでちくっと触れた、「単体テスト」について、です。

記事を読む

toppers

C言語でEV3開発(19)-コマンド通信処理でEchoBackしてみた

どもです。 前回は、Bluetoothの接続状態の変化に伴う、状態遷移について書きました。 今回

記事を読む

no image

C言語でEV3開発(13)-opOUTPUT_STEP_SPEEDコマンド

どもです。 今回のエントリーは、モーターを動かすコマンドである 「opOUTPUT_STEP_S

記事を読む

eclipse_4.3_kepler

eclipse/CDTにおけるgdbでのデバッグ中に発生するpythonのエラー

どもです。 今回のエントリーは、Eclipse上でのデバッグの際に「pythonのエンコードエラー

記事を読む

eclipse_cdt_top_100

C言語でEV3開発(3)

どもです。 今回のエントリーの内容は、前回まででセットアップした環境で、実際にEV3上で動く実行フ

記事を読む

no image

C言語でEV3開発(21)-モーター出力の制御

どもです。 前回は、超音波センサから前方障害物との距離を取得し、それを元に安全状態を判断する、とい

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

toppers
C言語でEV3開発(26)-EV3で機械学習(1)-QLearningをC#に委譲してみた

どもです。 前回の投稿では、Q-LearningをEV3本体に実装し

toppers
C言語でEV3開発(25)-Q_Learningを実装してみた…が!?

どもです。 今回の内容は、「失敗しました」という内容です。 最

toppers
C言語でEV3開発(24)-APIの実行時間を測定してみた。

どもです。 今回、以前から気になっていた、開発環境/プラットフォーム

toppers
C言語でEV3開発(23)-モーターの性能確認

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモー

python
Ev3開発サポートツール(4)-Pythonによるグラフ表示

どもです。 前回のエントリーで、VisualStudioCommun

→もっと見る

PAGE TOP ↑