*

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

C言語でEV3開発(15)-TOPPERS/HRP2 EV3 で PID制御

どもです。 今回のエントリーは、コレまでのエントリーから内容を変えて、モーターの動作の制御をします

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(1)-C#のユーザーコントロール開発

どもです。 突然ですが、今回はC#に関するエントリになります。 具体的には、C#/WPFで、独自

記事を読む

eclipse_4.3_kepler

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

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

記事を読む

no image

C言語でEV3開発(8)-opOUTPUT_POWERコマンド

どもです。 今回のエントリーでは、EV3でモーターを動かします。 なお、今回のエントリーでも

記事を読む

no image

C言語でEV3開発(17)-コマンドによるTOPPERS/HRP2 EV3RT アプリケーションの制御(コントロール)

どもです。 今回は、TOPPERS/HRP2 EV3RT で作成したアプリをPC上から操作するため

記事を読む

no image

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

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

記事を読む

toppers

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

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみた

記事を読む

google_test_top

C言語でEV3開発(5)

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

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(2)-C#のユーザーコントロール開発(2つ目)

どもです。 前回に引き続き、今回もC#/WPFでの独自UI(ユーザーコントロール)の作成についての

記事を読む

no image

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

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

記事を読む

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="">

PAGE TOP ↑