*

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で作ってみました。
今後は、このツールを用いて振舞いの解析をしていきます。

ではっ!

関連記事

eclipse_4.3_kepler

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

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

記事を読む

no image

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

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

記事を読む

python

VisualStudioCommunityでのPython開発環境構築

どもです。 最近、VisualStudioでのPython開発を始めました。 その際の環境構築に

記事を読む

eclipse_4.3_kepler

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

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

記事を読む

no image

C言語でEV3開発(9)-opOUTPUT_SPEEDコマンド

どもです。 今回のエントリーでは、前回に引き続きEV3のモーターを動かしていきます。 ただし、単

記事を読む

toppers

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

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

記事を読む

eclipse_oxygen

Linux/EclipseでRaspberryPiのクロス環境を構築してみた…がっ!

どもです。 前回のエントリでは、WindowsにRaspberryPi3のクロスコンパイル環境の構

記事を読む

google_test

C言語でEV3開発(6)

どもです。 今回のエントリーは、前回のエントリーの続き、google testでの単体テスト環境に

記事を読む

toppers

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

どもです。 前回の投稿では、Q-LearningをEV3本体に実装してみたら、メモリが足りなくて動

記事を読む

toppers

C言語でEV3開発(20)-超音波センサと安全状態

どもです。 前回は、BluetoothでPCとEv3を接続してコマンドの送受信について書きました。

記事を読む

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

eclipse_oxygen
Linux/EclipseでRaspberryPiのクロス環境を構築してみた…がっ!

どもです。 前回のエントリでは、WindowsにRaspberryP

no image
Windows/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 今回は、Windows/EclipseでRaspberr

eclipse_oxygen
Eclipse/CrossCompile環境でプロジェクトをクリーンできない

どもです。 今回は、Eclipseでクロスコンパイル環境を作成した場

raspberry-pi
RaspberryPi3を購入しました

どもです。 突然ですが、「Raspberry Pi3 model B

toppers
C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた

(テーマ) C言語でEV3開発(28)-EV3の移動距離を計算できる

→もっと見る

PAGE TOP ↑