ターゲット・トラッキングタスクでなぞり運動における内部モデルのモデル化と習熟メカニズムを解明するため,なぞり時のズレ,時間のデータを取得して,腕の慣性行列,粘性行列,剛性行列を導出する.
以下のサイトでインストール
https://github.com/psychopy/psychopy/releases
インストールしたら,スタート画面を開き「PsychoPy3」というフォルダをクリックし,「PsychoPy3」をクリックすると,実行できる.
注意
Windowsの場合,「StandalonePsychoPy3-2020.2.4-win64.exe」をインストール
インストールの際に,「WindowsによってPCが保護されました」と表示されるが,左下にある「詳細情報」をクリックし,表示される「実行」をクリックする.
以下のサイトを参考に進める
http://www.s12600.net/psy/python/ppb/html/index.html
上の画像が「Builder」という実験を作成するためのツール
この画像の右側にある様々なアイコンを配置することで実験を作成していく.
Builderの画像の赤丸部分をクリックすると,「Corder」といわれる「Builder」で作成した実験をプログラミングコードに変換して表示してくれるものが表示される.
上の画像が「Corder」
実験の細かい部分は「Corder」か「Builder」の「Codeコンポーネント」に書き込むことで変更できる.
主に「Builder」を使って作成していく.
注意
インストールしたばかりの状態だと言語が設定されていないので,日本語に設定する.
上のBuilder画像の紫丸をクリックすると下の画像の左側が表示されるので,アプリケーションをクリックし,画像の通りに設定する.
以下のサイトを参考に作成していく
http://www.s12600.net/psy/python/ppb/html/chapter08.html
Builderのウィンドウを開き,実験に必要なコンポーネントをそれぞれ配置していく.
新規の実験を作るときは最初「trial」というRoutineだけなので,この実験においてはもう一つのRoutineを作る必要がある.
readyとtrialのそれぞれのRoutineにコンポーネントを配置していく.
コンポーネントを配置する際に名前を変更できるので( )内の名前に変更しておくとわかりやすい.
①mouseコンポーネント(mouseTrial)
②codeコンポーネント(codeTrial)
③polygonコンポーネント×4(path1~path4)
④polygonコンポーネント×3(way1~way3)
⑤polygonコンポーネント(goalDisc)
⑥polygonコンポーネント(probe)
以下にそれぞれのコンポーネントの変更点を示す.
[終了] の時間を 1.0 から 空白 に変更する.~
[ボタン押しでRoutineを終了] を 全てのクリック から なし に変更する~
[マウスの状態を保存] を 最終 から なし に変更する~
codeコンポーネントはここでは説明できないので下のほうで記述する.~
[終了] の時間を 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 に変更する.~
[終了] の時間を 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 に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] を goalDisc に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から goalPos に変更する.~ 「更新しない」を「繰り返しごとに更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] を probe に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から [px,py] に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (10,10) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から $coll に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
codeコンポーネントには「実験開始時」「Routine開始時」「フレーム毎」「Routine終了時」「実験終了時」の5つのタブを含んでおり,タブによっていつ実行されるかが変わってくる. 下の画像のようにコードを入力する. 実験終了時の部分には何も入力しなくて大丈夫.
①mouseコンポーネント(mouseReady)
②polygonコンポーネント×4(path1_2~path4_2)
③polygonコンポーネント×3(way1_2~way3_2)
④polygonコンポーネント(startDisc)
⑤polygonコンポーネント(probeReady)
以下にそれぞれのコンポーネントの変更点を示す.
[終了] の時間を 1.0 から 空白 に変更する.~
[マウスの状態を保存] を 最終 から なし に変更する~
[終了] の時間を 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 に変更する.~
[終了] の時間を 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 に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] を startDisc に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から startPos に変更する.~ 「更新しない」を「繰り返しごとに更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (30,30) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から green に変更する.~
[終了] の時間を 1.0 から 空白 に変更する.~
[名前] を probeReady に変更する.~
[形状] を 三角形 から 多角形 に変更する.~
[頂点数] を 32 に変更する.~
[位置[x,y]] を (0,0) から [px,py] に変更する.~ 「更新しない」を「フレーム毎に更新」に変更する.~
[サイズ[w,h]] を (0.5,0.5) から (10,10) に変更する.~
「高度」タブの[塗りつぶしの色] を $[1,1,1] から red に変更する.~
「sk.py」を用いて取得したcsvファイルを使って速度,加速度をを求める.
まずは,sk.pyと自分が取得したcsvファイルを同じフォルダにいれる.
この際,取得したcsvファイルを短い名前に変更した方がコードにいれやすくなる.
sk.py を以下に示すように自分用に変更する.
コメントアウトは無視して良い.
①:8行目の range(10) の 10 の部分を繰り返しの回数に変更する.
(例:繰り返し回数が5回だったら, range(5) にする.)
②:10行目の aiueo.csv を自分で取得したcsvファイルに変更する.
③:68行目の aiueo の部分を変更することで保存先のフォルダの名前を変更できる.
④:70行目の aiueo の部分を変更することで,出力するcsvファイルの名前を変更できる.
以上の変更を施し,実際にプログラムを起動する.~
すると,③で設定した名前のフォルダ内に④で設定した名前のcsvファイルが繰り返し分だけ生成される.
上の画像が④で出力されるcsvファイルである.
A列はx座標の推移
B列はx座標の速度の推移
C列はx座標の加速度の推移
D列はy座標の推移
E列はy座標の速度の推移
F列はy座標の加速度の推移