*

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

ではっ!

関連記事

toppers

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

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

記事を読む

toppers

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

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

記事を読む

raspberry-pi

libpigpioでのRaspberryPi3とArduinoのSPI通信

どもです。 今回は、libpigpioを使用してRaspberryPi3とArduinoでSPI通

記事を読む

no image

QtでRaspberryPi/GUI開発(3):ためしに時計を作ってみた(其の参)-StyleSheetの適用

どもです。 前回のエントリーでは、グループ化されたボタンに対するイベントハンドラについて書きました

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(9)-SPI通信をしてみた

どもです。 えー。 「Qtで…」とか書いておきながら、今回はQtは出てきません。 今回のエ

記事を読む

toppers

C言語でEV3開発(16)-TOPPERS/HRP2 EV3 で Bluetooth割込み

どもです。 今回は、EV3 の環境をTOPPERS/HRP2 EV3RT で作成したアプリをPC上

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(1):ためしに時計を作ってみた

どもです。 また更新の間隔が空いてしまいました。 久しぶりの更新です。 前回のエントリーで

記事を読む

toppers

C言語でEV3開発(18)-モードの遷移の設計-コマンド通信処理の準備

 どもです。  今回は、前回紹介したEv3とBluetoothで通信する機能を

記事を読む

no image

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

どもです。 今回は、Windows/EclipseでRaspberry Piのクロス環境を構築した

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(10)-SPI通信をしてみた(その3)

どもです。 えー。 「Qtで…」とか書いておきながら、今回もやっぱりQtは出てきません。 そろ

記事を読む

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

Arduino_Logo
ホールセンサーの種類と使い方(割込み編)

どもです。 前回に引き続き、今回もホールセンサーについてです。

Arduino_Logo
ホールセンサーの種類と使い方

どもです。 今回のエントリは、表題にある「ホールセンサー」についてで

Arduino_Logo
1台のarduinno nanoで割込みとSPIの同時使用

どもです。 先日手に入れたArduino nano(中華)で遊んでい

Arduino_Logo
Arduino nano(中華版)をセットアップしてみた

どもです。 突然ですが、「Arduino nano」互換(なのか?)

raspberry-pi
libpigpioでのRaspberryPi3とArduinoのSPI通信

どもです。 今回は、libpigpioを使用してRaspberryP

→もっと見る

PAGE TOP ↑