技術資料

目次 

1. 目標 

ターゲット・トラッキングタスクでなぞり運動における内部モデルのモデル化と習熟メカニズムを解明するため,なぞり時のズレ,時間のデータを取得して,腕の慣性行列,粘性行列,剛性行列を導出する.

2. Psycho Pyのインストール 

以下のサイトでインストール

https://github.com/psychopy/psychopy/releases

インストールしたら,スタート画面を開き「PsychoPy3」というフォルダをクリックし,「PsychoPy3」をクリックすると,実行できる.

注意

Windowsの場合,「StandalonePsychoPy3-3.0.3-win32.exe」をインストール

インストールの際に,「WindowsによってPCが保護されました」と表示されるが,左下にある「詳細情報」をクリックし,表示される「実行」をクリックする.

3. Psycho Pyの設定 

以下のサイトを参考に進める

http://www.s12600.net/psy/python/ppb/html/index.html

Builder1.png

上の画像が「Builder」という実験を作成するためのツール

この画像の右側にある様々なアイコンを配置することで実験を作成していく.

Builderの画像の赤丸部分をクリックすると,「Corder」といわれる「Builder」で作成した実験をプログラミングコードに変換して表示してくれるものが表示される.

Corder1.png

上の画像が「Corder」

実験の細かい部分は「Corder」か「Builder」の「Codeコンポーネント」に書き込むことで変更できる.

主に「Builder」を使って作成していく.

注意

インストールしたばかりの状態だと言語が設定されていないので,日本語に設定する.

上のBuilder画像の紫丸をクリックすると下の画像の左側が表示されるので,アプリケーションをクリックし,画像の通りに設定する.

lang.png

4. 実験の作成 

以下のサイトを参考に作成していく

http://www.s12600.net/psy/python/ppb/html/chapter08.html

Builderのウィンドウを開き,実験に必要なコンポーネントをそれぞれ配置していく.

新規の実験を作るときは最初「trial」というRoutineだけなので,この実験においてはもう一つのRoutineを作る必要がある.

設定1.png
set1.png

readyとtrialのそれぞれのRoutineにコンポーネントを配置していく.

set2.png

コンポーネントを配置する際に名前を変更できるので( )内の名前に変更しておくとわかりやすい.

4.1 「ready」 Routineに配置するコンポーネント 

 ①mouseコンポーネント(mouseTrial)
 ②codeコンポーネント(codeTrial)
 ③polygonコンポーネント×4(path1~path4)
 ④polygonコンポーネント×3(way1~way3)
 ⑤polygonコンポーネント(goalDisc)
 ⑥polygonコンポーネント(probe)

以下にそれぞれのコンポーネントの変更点を示す.

①:mouseコンポーネント~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [ボタン押しでRoutineを終了] を 全てのクリック から なし に変更する~
 [マウスの状態を保存] を 最終 から なし に変更する~

②:codeコンポーネント~ 

 codeコンポーネントはここでは説明できないので下のほうで記述する.~

③:polygoneコンポーネント(path1~path4)~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [名前] をそれぞれ path1,path2,path3,path4 に変更する.~
 [形状] を 三角形 から 長方形 に変更する.~
 [位置[x,y]] を (0,0) から pathNpos に変更する.~
   (pathNpos の N には path1,path2,path3,path4 のそれぞれに対応する数字を入力する.)~
   (例: path1 だと path1pos を入力する. つまり,この場合だと N=1 となる.)~
  「更新しない」を「繰り返しごとに更新」に変更する.~
 [サイズ[w,h]] を (0.5,0.5) から (260,20) に変更する.~
 (pathNori の N の部分も pos の時と同様に対応する数字を入力する.)~

path1

 [回転角度] を 0 に変更する.~

path2

 [回転角度] を 90 に変更する.~

path3

 [回転角度] を 0 に変更する.~

path4

 [回転角度] を 90 に変更する.~

④:polygonコンポーネント(way1~way3)~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [名前] をそれぞれ way1,way2,way3 に変更する.~
 [形状] を 三角形 から 多角形 に変更する.~
 [頂点数] を 32 に変更する.~
 [位置[x,y]] を (0,0) から wayNpos に変更する.~
   (N の部分は path1~path4 のときと同様に対応する数字を入力する.)~
  「更新しない」を「繰り返しごとに更新」に変更する.~
 [サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~

way1

 「高度」タブの[塗りつぶしの色] を $[1,1,1] から $col1 に変更する.~
 「更新しない」を「フレーム毎に更新」に変更する.~

way2

 「高度」タブの[塗りつぶしの色] を $[1,1,1] から $col2 に変更する.~
 「更新しない」を「フレーム毎に更新」に変更する.~

way3

 「高度」タブの[塗りつぶしの色] を $[1,1,1] から $col3 に変更する.~
 「更新しない」を「フレーム毎に更新」に変更する.~

⑤:polygonコンポーネント(goalDisc)~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [名前] を goalDisc に変更する.~
 [形状] を 三角形 から 多角形 に変更する.~
 [頂点数] を 32 に変更する.~
 [位置[x,y]] を (0,0) から goalPos に変更する.~
  「更新しない」を「繰り返しごとに更新」に変更する.~
 [サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~

⑥:polygonコンポーネント(probe)~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [名前] を probe に変更する.~
 [形状] を 三角形 から 多角形 に変更する.~
 [頂点数] を 32 に変更する.~
 [位置[x,y]] を (0,0) から [px,py] に変更する.~
  「更新しない」を「フレーム毎に更新」に変更する.~
 [サイズ[w,h]] を (0.5,0.5) から (10,10) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から $coll に変更する.~
  「更新しない」を「フレーム毎に更新」に変更する.~
ready1.png

②:codeコンポーネント 

 codeコンポーネントには「実験開始時」「Routine開始時」「フレーム毎」「Routine終了時」「実験終了時」の5つのタブを含んでおり,タブによっていつ実行されるかが変わってくる.
 下の画像のようにコードを入力する.
 実験終了時の部分には何も入力しなくて大丈夫.
code1.png
code5.png
code6.png

4.2 「trial」 Routineに配置するコンポーネント 

 ①mouseコンポーネント(mouseReady)
 ②polygonコンポーネント×4(path1_2~path4_2)
 ③polygonコンポーネント×3(way1_2~way3_2)
 ④polygonコンポーネント(startDisc)
 ⑤polygonコンポーネント(probeReady)

以下にそれぞれのコンポーネントの変更点を示す.

①:mouseコンポーネント~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [マウスの状態を保存] を 最終 から なし に変更する~

②:polygoneコンポーネント(path1_2~path4_2)~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [名前] をそれぞれ path1,path2,path3,path4 に変更する.~
 [形状] を 三角形 から 長方形 に変更する.~
 [位置[x,y]] を (0,0) から pathNpos に変更する.~
   (pathNpos の N には path1,path2,path3,path4 のそれぞれに対応する数字を入力する.)~
   (例: path1 だと path1pos を入力する. つまり,この場合だと N=1 となる.)~
  「更新しない」を「繰り返しごとに更新」に変更する.~
 [サイズ[w,h]] を (0.5,0.5) から (260,20) に変更する.~
 (pathNori の N の部分も pos の時と同様に対応する数字を入力する.)~

path1_2

 [回転角度] を 0 に変更する.~

path2_2

 [回転角度] を 90 に変更する.~

path3_2

 [回転角度] を 0 に変更する.~

path4_2

 [回転角度] を 90 に変更する.~

④:polygonコンポーネント(way1_2~way3_2)~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [名前] をそれぞれ way1,way2,way3 に変更する.~
 [形状] を 三角形 から 多角形 に変更する.~
 [頂点数] を 32 に変更する.~
 [位置[x,y]] を (0,0) から wayNpos に変更する.~
   (N の部分は path1~path4 のときと同様に対応する数字を入力する.)~
  「更新しない」を「繰り返しごとに更新」に変更する.~
 [サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~

way1_2

 「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~

way2

 「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~

way3

 「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~

⑤:polygonコンポーネント(startDisc)~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [名前] を startDisc に変更する.~
 [形状] を 三角形 から 多角形 に変更する.~
 [頂点数] を 32 に変更する.~
 [位置[x,y]] を (0,0) から startPos に変更する.~
  「更新しない」を「繰り返しごとに更新」に変更する.~
 [サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~

⑥:polygonコンポーネント(probeReady)~ 

 [終了] の時間を 1.0 から 空白 に変更する.~
 [名前] を probeReady に変更する.~
 [形状] を 三角形 から 多角形 に変更する.~
 [頂点数] を 32 に変更する.~
 [位置[x,y]] を (0,0) から [px,py] に変更する.~
  「更新しない」を「フレーム毎に更新」に変更する.~
 [サイズ[w,h]] を (0.5,0.5) から (10,10) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から red に変更する.~

5.Loopの作成とcsvの設定 

ここでは,繰り返しを設定するLoopを作成する.

この実験では,Loopを2回設定する.

左下にある「Loopを挿入」を押すと,Flow上に黒点が表示される.

1つ目の黒点はLoopのスタートを表し,2つ目の黒点はLoopの終わりの位置を表している.

1個目のLoopはスタートが trial の前で,ゴールが ready の後ろに設置するようにする.
1個目のLoopの名前を「trials1」とする.

2個目のLoopはスタートが ready の前で,ゴールが ready の後ろに設置するようにする.
2個目のLoopの名前を「trials_2」とする.

このエクセルファイルはLoopを設定する際に必要になってくる.

Loopを設置する際に,下の画像のようなものが出てくるので,これも設定する必要がある.

Loop1.png

1:「trials」Loop 

①:名前を変更する.

②:繰り返し回数を 1 に設定する.

③:繰り返し条件に,「example1.xlsx」をいれる.

2:「trials_2」Loop 

①:名前を変更する.

②:繰り返し回数の部分に自分が繰り返す分の数を設定する.

③:繰り返し条件に,「example1.xlsx」をいれる.

以上のように設定すると,Flow の部分が以下の画像のようになる.

Loop2.png

6.各種設定 

ここでは,実験を行う際の上下反転以外の条件を付けくわえていく.

下の画像にある赤丸部分をクリックしてすると,2つ目の画像にある設定画面がでてくる.

settei.png
settei2.png

ここで,「実験情報ダイアログ」の右側にある「+」ボタンを押すと,新しいダイアログが追加される.

新しく追加されたダイアログの フィールドを「Direction」, 初期値を「['UpDown', 'Normal', 'LeftRight', 'All']」と設定する.

次に,「データ」のタブに移動し,「csv形式のデータを保存」の部分にチェックをいれる.

7.実行 

ここでは,実際に実験を行う流れを説明する.

zikkou.png

上の画像の赤丸部分をクリックする.

すると,下の画像のやつがでてくる.

zikkou2.png

「Direction」では,6で設定したものが選択できるようになっている.

 「Updown」が上下反転
 「Normal」が反転なし
 「LeftRight」が左右反転
 「All」が上下左右反転  となっている.

「partcipant」で保存するファイルの名前をわかりやすくできる.

「session」は 1 のままで無視してよい.

以上の3つを設定したら,「OK」を押すと実験の画面が起動する.

実験の画面が起動したら,マウスの左をクリックするとスタートする.

設定した繰り返し回数に達したら,勝手に終わるようになっている.

また, Escキー を押すと実験を中断できる.

8.プログラム 

「sk.py」を用いて取得したcsvファイルを使って速度,加速度をを求める.

まずは,sk.pyと自分が取得したcsvファイルを同じフォルダにいれる.

この際,取得したcsvファイルを短い名前に変更した方がコードにいれやすくなる.

sk.py を以下に示すように自分用に変更する.
コメントアウトは無視して良い.

gazou1.png
gazou2.png

①:8行目の range(10) の 10 の部分を繰り返しの回数に変更する.
(例:繰り返し回数が5回だったら, range(5) にする.)

②:10行目の aiueo.csv を自分で取得したcsvファイルに変更する.

③:68行目の aiueo の部分を変更することで保存先のフォルダの名前を変更できる.

④:70行目の aiueo の部分を変更することで,出力するcsvファイルの名前を変更できる.

以上の変更を施し,実際にプログラムを起動する.~
すると,③で設定した名前のフォルダ内に④で設定した名前のcsvファイルが繰り返し分だけ生成される.

gazou3.png

上の画像が④で出力されるcsvファイルである.

A列はx座標の推移
B列はx座標の速度の推移
C列はx座標の加速度の推移

D列はy座標の推移
E列はy座標の速度の推移
F列はy座標の加速度の推移

 


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS