以下、図面を参照して本発明が適用可能な実施形態の運動訓練装置について説明する。なお、本実施形態の運動訓練装置は略水平な載置面に載置され、例えば、使用者(運動訓練者)の上肢の運動機能向上を目的として行われる運動訓練に使用される(図1参照)。
1.構成
1.1.機構部
1.1.1.機構部概略
運動訓練装置1は、XY平面で移動可能な操作部3(図1参照)と、X軸方向駆動モータ38およびY軸方向駆動モータ30を有し、操作部3をXY平面で駆動するアクチュエータ機構20(図5参照)と、操作部3に作用するX軸およびY軸方向の力を検出する力センサ51(図5参照)とを備えている。X軸およびY軸方向駆動モータ38,30は、XY平面での操作部3の位置を検出するためのエンコーダ38a,30a(図5参照)と一体に構成されている。操作部3を除くこれらの部材は筺体5内に収容されており、操作部3(のハンドル部材49、図5参照)は筺体5から上方に突出している(図1参照)。
1.1.2.機構部詳細
(1)筺体5
図1および図2に示すように、筺体5は、上部が開口した略箱状のケーシング6と矩形枠状の外側フレーム11とで構成されている。なお、図1では、使用者(運動訓練者)Uが運動訓練装置1の正面に位置し、例えばワイピング訓練を行うために、右腕ARを前方に伸ばして右手HRで操作部3を操作している状態を示している。また、図2は、図1に示す運動訓練装置1からカバー4を取り外した状態の装置本体2を示しており、図中手前側が運動訓練装置1の正面(前面)側、奥側が背面(後面)側である。
A)ケーシング6
ケーシング6は、上下両端部が略コ字状に折り曲げられた正面フレーム6a、背面フレーム6b(図1参照)、右面フレーム6c(図2参照)および左面フレーム6d(図1参照)と、これらのフレーム6a〜6dの底面側に配された底面フレーム6e(図2参照)とで構成されている。
ケーシング6は複数の補強部材により補強されている。すなわち、図2〜図4に示すように、ケーシング6内には、前後方向に延在する3つの前後補強部材13a〜13cが左右方向に離隔して平行に配設されており、それらの両端部はそれぞれケーシング6の内壁(正面フレーム6a、背面フレーム6b)下端部に固定されている。また、前後補強部材13a〜13cと直交してケーシング6内に左右方向に延在する2つの左右補強部材14a,14bが前後方向に離隔して平行に配設されており、それらの両端部はそれぞれケーシング6の内壁(右面フレーム6c、左面フレーム6d)下端部に固定されている。
左右補強部材14a,14bは前後補強部材13a〜13cの上に配置されており、ねじ締結で一体化されている。なお、前後補強部材13a〜13cの位置に対応するケーシング6の底面および外側フレーム11の底面中央部には、運動訓練装置1を載置面に載置するための複数の脚部15が突設されている。
B)外側フレーム11
図2に示すように、外側フレーム11は対角に配置された補強板で補強されている。外側フレーム11の上面には、運動訓練装置1の状態を表示する3つの状態表示ランプと、3つのマニュアル操作ボタンとが配設されている。3つの状態表示ランプは、運動訓練装置1の作動中に点灯する緑色LED9aと、操作部3がホームポジションに移動中に点灯する白色LED9bと、電力投入後の運動訓練装置1の作動停止中に点灯する赤色LED9cとで構成されている。一方、3つのマニュアル操作ボタンは、操作部3の作動を緊急に停止させるための緊急停止ボタン10aと、操作部3の作動を一時的に停止させるための一時停止ボタン10bと、操作部3をホームポジションに位置付けるためのイニシャルボタン10cとで構成されている。
外側フレーム11はケーシング6を構成する右面フレーム6cにねじ締結により複数箇所で固定されており、外側フレーム11およびケーシング6には配線用の連通窓が形成されている。また、図1〜図2に示すように、ケーシング6を構成する左面フレーム6dおよび外側フレーム11の外側面には、運動訓練装置1を持ち運ぶための略水平な棒状の取っ手12が取り付けられている。
(2)カバー4
図1に示すように、ケーシング6の上部開口は略全面的にカバー4で覆われており、操作部3はカバー4の上面から突出するように配置されている。カバー4は、左部カバー4a、右部カバー4b、前部カバー4cおよび後部カバー4dで構成されている。カバー4a〜4dは、それぞれ操作部3の前後および左右方向に配置されており、操作部3の移動に合わせて伸縮可能なベローズ(蛇腹)構造のシート状部材で構成されている。
図2および図4に示すように、ケーシング6の正面および背面側内壁(正面フレーム6a、背面フレーム6b)には、その上端から少し下がった高さ位置に、左右方向の略全長に亘って一定幅の段差面16a,16bがそれぞれ内側に向けて形成されている。また、ケーシング6の正面および背面内壁は、それぞれ上端部が内側へ直角に折曲され左右方向の略全長に亘って一定幅の折曲板部17a,17bが形成されており、その下方の段差面16a,16bとの間に隙間が画定されている。この隙間には、左部カバー4aおよび右部カバー4bの左右側辺部が前後方向の略全長に亘って挿入され、操作部3が左右方向(X軸方向)に移動するときに、その移動に合わせて蛇腹構造の左部カバー4aおよび右部カバー4bを伸縮させるためのガイドとなる。なお、前部カバー4cおよび後部カバー4dについても同様の構造が採用されているが、その点については後述する。
(3)アクチュエータ機構20
図5に示すように、アクチュエータ機構20は、操作部3をY軸方向(前後方向)に駆動するY軸方向アクチュエータ21と、X軸方向(左右方向)に駆動するX軸方向アクチュエータ22とで構成されている。すなわち、アクチュエータ機構20は2軸直動アクチュエータである。図2に示すように、アクチュエータ機構20は、前後補強部材13a〜13cおよび左右補強部材14a,14b上に、X軸方向アクチュエータ22、Y軸方向アクチュエータ21の順で設けられている。
A)Y軸方向アクチュエータ21
図2および図5に示すように、Y軸方向アクチュエータ21は、操作部3をY軸方向に直線状に案内するためのガイド部23と、操作部3をガイド部23に沿って駆動するY軸方向駆動部24とを有している。Y軸方向駆動部24は、ガイド部23の一方の端部(図2および図4に示すように背面側の端部)にガイド部23と一体に設けられている。
図5に示すように、ガイド部23は、上向きに開放された矩形チャネル状のガイドフレーム25と、その内部を長手方向に延在するロッド状の送りねじ26と、スライダブロック27とで構成されている。ガイドフレーム25の長手方向に沿う両側部上面は、その長手方向にスライダブロック27を案内するスライダレールとして機能する。スライダブロック27は、複数の鋼球からなるボールを介して送りねじ26のねじ溝と螺合するナット部を有しており、送りねじと組み合わされてボールねじ構造を構成している。
図4および図5に示すように、Y軸方向駆動部24は、正逆回転可能なY軸方向駆動モータ30と、Y軸方向駆動モータ30のモータ軸と送りねじ26との間に介装された減速ギアユニット31とで構成されている。また、Y軸方向駆動モータ30のモータ軸には、その回転方向および回転量を検出するロータリエンコーダ30aが取り付けられている。本実施形態では、Y軸方向駆動モータ30にDCサーボモータが用いられている。
減速ギアユニット31は、Y軸方向駆動モータ30の回転を減速して送りねじ26に伝達する歯車列からなる。減速ギアユニット31の減速ギア比は、操作部3を介して使用者Uの上肢にY軸方向駆動モータ30の駆動力を伝達するのに十分なトルクを発生し得るように設定されている。なお、減速ギアユニット31の減速ギア比は、Y軸方向駆動モータ30の駆動が停止したときに、送りねじ26側からの逆入力によって容易に回転しないように比較的高く設定することが好ましい。この点は、後述する(X軸アクチュエータ22を構成する)減速ギアユニット39の減速ギア比についても同じである。
図5に示すように、Y軸方向アクチュエータ21は、連結部材53を介してX軸方向アクチュエータ22上に取り付けられている。連結部材53は、矩形の板状部材からなり、ガイドフレーム25の下面に結合され、ガイド部23をX軸方向アクチュエータ22のスライダブロック37上に一体に固定する。Y軸方向アクチュエータ21は、操作部3をX軸方向に移動させたときに、X軸方向アクチュエータ22を構成するガイドフレーム35の直上をその長手方向に沿って走行する。
B)X軸方向アクチュエータ22
図2および図5に示すように、X軸方向アクチュエータ22は、原則的に上述したY軸方向アクチュエータ21と同様に構成されている。すなわち、X軸方向アクチュエータ22は、Y軸方向アクチュエータ21をX軸方向に直線状に案内するためのガイド部33と、Y軸方向アクチュエータ21をガイド部33に沿って駆動するX軸方向駆動部34とを有している。X軸方向駆動部34は、ガイド部33の一方の端部(図2および図3の右側の端部)にガイド部33と一体に設けられている。
図5に示すように、ガイド部33は、上向きに開放された矩形チャネル状のガイドフレーム35と、その内部を長手方向に延在するロッド状の送りねじ36と、スライダブロック37とで構成されている。ガイドフレーム35の長手方向に沿う両側部上面は、その長手方向にスライダブロック37を案内するためのスライダレールとして機能する。スライダブロック37は、複数の鋼球からなるボールを介して送りねじ36のねじ溝と螺合するナット部を有しており、送りねじ36と組み合わされてボールねじ構造を構成している。
図3および図5に示すように、X軸方向駆動部34は、正逆回転可能なX軸方向駆動モータ38と、X軸方向駆動モータ38のモータ軸と送りねじ36との間に介装された減速ギアユニット39とで構成されている。また、X軸方向駆動モータ38のモータ軸には、その回転方向および回転量を検出するロータリエンコーダ38aが取り付けられている。本実施形態では、X軸方向駆動モータ38にDCサーボモータが用いられている。
減速ギアユニット39は、X軸方向駆動モータ38の回転を減速して送りねじ36に伝達する歯車列からなる。減速ギアユニット39の減速ギア比は、Y軸方向アクチュエータ21および操作部3を介して使用者Uの上肢にX軸方向駆動モータ38の駆動力を伝達するのに十分なトルクを発生し得るように設定されている。
(4)可動フレーム41
図2〜図4に示すように、Y軸方向アクチュエータ21は、ケーシング6内側のY軸方向の略全長に亘って延在する可動フレーム41と一体化されている。図6に示すように、可動フレーム41は、ガイド部23の長手方向に沿って延在する断面略L字状の一対の可動フレーム部材41a,41bで構成されている。可動フレーム部材41a,41bは、それぞれL字状の内側をガイド部23側に向けてガイドフレーム25の長手方向に沿う両側部にねじ締結されている。これにより、ガイド部23と可動フレーム部材41a,41bとの間には、ガイドフレーム25の側面から側方に延出する一定幅の水平面と、断面矩形の溝状空間Sa,Sbとが画定される。
ガイドフレーム25に固定された可動フレーム部材41a,41bの上端部は、長手方向の全長に亘って内側すなわちガイドフレーム25側に直角に折曲され一定狭幅の折曲板部43a,43bを構成している。可動フレーム部材41a,41bのL字状の垂直な内面には、その上端から少し下がった高さ位置に、該内面からガイドフレーム25側に直角に延出する一定狭幅の突板部44a,44bが、長手方向の両端部を除く略全長に亘って一体に形成されている。これにより、可動フレーム部材41a,41bの上端部内側には、折曲板部43a,43bと突板部44a,44bとの間に隙間が、長手方向の両端部を除く略全長に亘って画定される。この隙間には、前部カバー4cおよび後部カバー4dの前後側辺部が左右方向の略全長に亘って挿入され、操作部3が前後方向(Y軸後方向)に移動するときに、その移動に合わせて蛇腹構造の前部カバー4cおよび後部カバー4dを伸縮させるためのガイドとなる。
図2および図4に示すように、可動フレーム部材41a,41bの長手方向の両端部は、突板部44a,44bより下側の部分が切り欠かれており、切欠残部が長手方向の突出部45a,45bを構成している。突出部45a,45bは、アクチュエータ機構20をケーシング6内に収容したときに、それぞれケーシング6の正面および背面側内壁(正面フレーム6a、背面フレーム6b)の折曲板部17a,17bと段差面16a,16bとで画定された隙間内に余裕をもって挿入される。
(5)操作部3
図5に示すように、操作部3はアクチュエータ機構20の上方に取り付けられている。操作部3は、比較的短い垂直な操作ロッド48と、その上端部に設けられたハンドル部材49とで構成されている。ハンドル部材49は、使用者Uが片手で掴むことができるように、比較的厚いディスク状に形成されている。なお、ハンドル部材49は、本実施形態では、使用者Uが掴んだ手で回すことができるように、操作ロッド48を中心に回動可能に取り付けられているが、固定するようにしてもよい。操作ロッド48は、その下端部側で操作ロッド48に作用する力(ハンドル部材49に作用する力)を検出する力センサ51と一体化されている。
図5および図6に示すように、操作部3は取付プレート52に取り付けられている。取付プレート52は、矩形の板状部材からなり、可動フレーム41の長手方向に直交する幅方向に可動フレーム41の内幅より若干小さい寸法を有する。取付プレート52の、可動フレーム41の長手方向に沿う両側部は、下面側が直角に切除されており、切除残部が折曲板部43a,43bと突板部44a,44bとで画定された隙間の高さ寸法より小さな寸法の側辺部54a,54bを構成している。
取付プレート52は、側辺部54a,54bが折曲板部43a,43bと突板部44a,44bとで画定された隙間内に余裕をもって挿入され、ガイド部23と可動フレーム部材41a,41bとの間に画定された溝状空間Sa,Sbを横断するようにスライダブロック27に取り付けられている。
(6)力センサ51
力センサ51には、検出原理の異なる種々のタイプが知られているが、本実施形態では、力センサ51として歪みゲージを用いた市販の6軸力覚センサが採用されている。歪みゲージは図示を省略した起歪体に貼り付けられている。起歪体は、力とトルクを受けて変形する部材であり、6軸力覚センサの性能を左右する重要な部材である。
一般に、6軸力覚センサは、力とトルク(モーメント)の大きさと方向を3次元空間ベクトルで示すセンサであり、直交するX,Y,Z軸方向の力F0(Fx,Fy,Fz)およびこれら3軸周りに作用するトルクT(Tx,Ty,Tz)を検出する。また、演算により接触情報も求め得る有用なセンサである。市販の6軸力覚センサは、通常、固定側の基部と、検出すべき外力を受けるための検知部とを有している。
本実施形態では、6軸力覚センサのX軸およびY軸が、アクチュエータ機構20のX軸方向およびY軸方向とそれぞれ一致するように配置されている。また、図5に示すように、力センサ51は概ね短円柱状の基部とその上面に設けられた検知部とを有している。力センサ51の検知部には、その上面中央に操作ロッド48が垂直に固定されている。力センサ51の基部は、取付プレート52を介してY軸方向アクチュエータ21のスライダブロック27と一体化されている。
力センサ51は、使用者Uの上肢が操作部3を動かしまたは操作部3により動かされるときに、操作ロッド48が使用者Uの上肢から直接受ける力F0および各軸周りに作用するトルクTを、(Fx,Fy,Fz,Tx,Ty,Tz)として検出可能に構成されている。なお、本実施形態では、後述するように、力センサ51を、操作部3に作用するX軸方向の力Fx、Y軸方向の力FyおよびZ軸方向の力Fz(厳密には、操作部3に作用する力F0のX軸方向のベクトル成分Fx、Y軸方向のベクトル成分FyおよびZ軸方向のベクトル成分Fz)、すなわち(Fx,Fy,Fz)の検出のみに使用する。
(7)リミットセンサ55a,55b,61a,61b
図2に示すように、運動訓練装置1は、Y軸方向アクチュエータ21による操作部3のY軸方向の可動範囲を制限するために、一対のリミットセンサ55a,55bを有している。リミットセンサ55a,55bは、ガイド部23と一方(図2右側)の可動フレーム部材41bとの間の水平面上に、それぞれケーシング6の正面および背面側内壁の内側に配置されている。
リミットセンサ55a,55bには、アームレバーを水平方向に回動可能にばね付勢した公知の構造が採用されている。図6に示すように、取付プレート52の下面には、リミットセンサ55a,55bのアームレバーを回動させるための作動ブロック56が突設されている。操作部3がY軸方向に移動して作動ブロック56がアームレバーを回動させると、リミットセンサ55a,55bはオン状態となる。
また、運動訓練装置1は、図2に示すように、X軸方向アクチュエータ22によるY軸方向アクチュエータ21のX軸方向の可動範囲を制限するために、一対のリミットセンサ61a,61bを有している。リミットセンサ61a,61bは、背面側の左右補強部材14a上に、それぞれケーシング6の左右側内壁の内側に配置されている。
リミットセンサ61a,61bも、アームレバーを水平方向に回動可能にばね付勢した公知の構造を有している。図7に示すように、一方(図2の左側)の可動フレーム部材41aの下面には、リミットセンサ61a,61bのアームレバーを回動させるための作動ブロック62が取付プレート63を介して突設されている。操作部3がY軸方向アクチュエータ21とともにX軸方向に移動して作動ブロック62がアームレバーを回動させると、リミットセンサ61a,61bはオン状態となる。
図8は、アクチュエータ機構20における操作部3のX軸およびY軸方向の可動範囲を示したものである。また、図10は、XY平面での操作部3の可動範囲とリミットセンサ55a,55b,61a,61bとの関係を示している。
図10に示すように、作動ブロック56がリミットセンサ55a,55bのアームレバーに当接する位置、および、作動ブロック62がリミットセンサ61a,61bに当接する位置をXY平面上で表すと、斜線で表した領域の境界線となる。この斜線で表した操作部3が移動可能なXY平面での中心部を含む領域は、使用者Uの運動訓練が可能な領域であり、本実施形態では表示装置80(図11参照)が操作者Uの運動訓練中または訓練後の操作部3の軌跡や負荷変動を表示(提示)可能な領域でもあることから、以下、この領域を力覚提示エリアAfという。
リミットセンサ55a,55b,61a,61bのアームレバーは、それぞれ作動ブロック56,62が当接しリミットセンサ55a,55b,61a,61bがオン状態に移行した後、なおも回動可能に構成されており、アームレバーの回動限界がX軸およびY軸方向アクチュエータ22,21の機械的動作限界となる。この機械的動作限界の位置をXY平面上で表すと、図10の外枠となる。以下、力覚提示エリアAfの外側かつ図10の外枠内の領域を安全対策エリアAsという。また、図10では、安全対策エリアAs内に、リミットセンサ55a,55b,61a,61bがオン状態に移行する位置を破線で示している。
なお、本実施形態では、力覚提示エリアAfの寸法が500[mm]×500[mm]に設定されている。また、力覚提示エリアAfの境界線からリミットセンサ55a,55b,61a,61bがオン状態に移行する位置までの距離D1がX軸およびY軸方向ともに60[mm]、力覚提示エリアAfの境界線からX軸およびY軸方向アクチュエータ22,21の機械的動作限界までの距離D2がX軸およびY軸方向ともに100[mm]に設定されている。
(8)ホームポジションセンサ57,64
図2に示すように、運動訓練装置1は、操作部3のX軸方向の初期位置を設定するためのホームポジションセンサ64を有している。ホームポジションセンサ64は、ケーシング6の背面側の左右補強部材14a上に、リミットセンサ61bよりも中央寄りに配置されている。図7に示すように、可動フレーム部材41aの下面には、垂直下向きに突出する板状のセンサフラグ部材65が、操作部3をX軸方向に移動させたときに、ホームポジションセンサ64の投光部と受光部の間隙を通過し得るように、取付プレート63に取り付けられている。
また、運動訓練装置1は、図2に示すように、操作部3をY軸方向の初期位置を設定するためのホームポジションセンサ57を有している。ホームポジションセンサ57は、可動フレーム部材41bとの間の水平面上に、リミットセンサ55aよりも背面寄りに配置されている。取付プレート52には、X軸方向のセンサフラグ部材65と同様に、垂直下向きに突出する板状のセンサフラグ部材(不図示)が、操作部3をY軸方向に移動させたときに、ホームポジションセンサ57の投光部と受光部の間隙を通過し得るように取り付けられている。
ホームポジションセンサ64,57は、小さな隙間をもって対向配置した投光部と受光部とを有する透過一体型センサであり、本実施形態では、受光部に入光するとオフ状態、受光部が遮光されるとオン状態となるものが用いられている。
図9は、操作部3がホームポジションに位置した状態を示している。図9に示すように、操作部3のホームポジションは、X軸およびY軸方向アクチュエータ22,21の交差中央位置を基準としたときに、Y軸方向で正面寄りかつX軸方向で右寄りに設定されている。このため、使用者Uは、図1に示すように運動訓練装置1の正面に位置したときに、右手HRを前に伸ばすと直ぐに操作部3のハンドル部材49に触れることができる。
(9)電気系
さらに、運動訓練装置1は、ケーシング6内に、運動訓練装置1を制御する制御部70(図11参照)と、商業交流電力から上述した機構部および制御部70を駆動/作動させるための直流電力に変換する電源部(不図示)とを備えている。
1.2.制御部
1.2.1.制御部概要
図11に示すように、制御部70は、高速演算を行うCPU、基本制御プログラムおよびプログラムデータを記憶したROM、CPUのワークエリアとして働くとともに種々のデータを一時的に記憶するRAMおよびこれらを接続する内部バスで構成されたMCU71を有している。
MCU71の内部バスは外部バスに接続されている。外部バスには、X軸およびY軸方向駆動モータ38,30の駆動を制御する駆動制御部72、上述した各センサからの信号を処理する信号処理部73、大容量フラッシュメモリやハードディスク等の不揮発性メモリ74、マウスやキーボード等の入力装置79から入力された情報を制御する入力制御部75、ディスプレイ等の表示装置80への表示(描画)を制御する表示制御部76、状態表示ランプ9a〜9cを点灯させるランプ点灯回路77およびインターフェース(I/F)81を介してノートパソコン等の外部装置との通信を制御する通信制御部78が接続されている。
1.2.2.制御部詳細
(1)駆動制御部72
駆動制御部72は、X軸方向駆動モータ38の駆動を制御するX軸方向モータドライバと、Y軸方向駆動モータ30の駆動を制御するY軸方向モータドライバとで構成されている。X軸およびY軸方向モータドライバはそれぞれ制御IC(不図示)を有している。各制御ICは、MCU71から指令された電流値(出力電流Ii、デューティ)に従って、X軸またはY軸方向駆動モータ38,30への電力供給を制御する(図13(B)も参照)。
(2)信号処理部73
信号処理部73は、信号処理IC(不図示)で力センサ51から出力された信号を処理しMCU71に出力する。すなわち、6軸力覚センサに設けられた歪みゲージの信号をブリッジ回路で電圧(変化)信号に変換し、ローパスフィルタ(LPF)で高周波ノイズを除去した後、オペアンプ等の増幅回路で微弱な信号を増幅する。次に、増幅された信号をA/Dコンバータでデジタル値に変換し、信号処理ICで歪み−荷重変換行列演算を行って力とトルクの分力(Fx,Fy,Fz,Tx,Ty,Tz)を算出する。
ただし、本実施形態では、MCU71が操作部3に作用するX軸方向の力Fx、Y軸方向の力FyおよびZ軸方向の力Fzのみを使用するため、信号処理部73は演算した(Fx,Fy,Fz)の値をMCU71に出力する。なお、本実施形態では、上述したA/Dコンバータのサンプリングレートが10[ms]に設定されているため、信号処理部73は10[ms]ごとに(Fx,Fy,Fz)の値をMCU71に出力する。
さらに、信号処理部73は、エンコーダ30a,38aから出力されたパルス数をカウントしたカウント値と回転方向のデフォルト値(例えば、X軸またはY軸方向駆動モータ38,30が正転とき0、逆転のとき1)とをMCU71に出力する。
また、信号処理部73は、ホームポジションセンサ57,64がオン状態となったか(ホームポジションを検出したか)、および、リミットセンサ55a,55b,61a,61bがオン状態となったか否かを表すデフォルト値(例えば、オフ状態のときのデフォルト値が0、オン状態のときのデフォルト値が1)をMCU71に出力する。
さらに、信号処理部73は、マニュアル操作ボタン10a〜10cが押下された否かを監視して(マニュアル操作ボタン10a〜10cの押下を検出する各スイッチング素子の出力がハイレベルとなったか否かを参照して)、デフォルト値(例えば、オフ状態のときのデフォルト値が0、オン状態のときのデフォルト値が1)をMCU71に出力する。なお、各スイッチング素子の出力側と上述した信号処理ICの入力側との間には、信号処理ICの破損を防止するために保護抵抗が挿入されている。
本実施形態では、力センサ51の(Fx,Fy,Fz)の値が10[ms]ごとにMCU71に出力されることから、この周期に合わせて以上の信号情報をMCU71に出力する。すなわち、信号処理部73は、例えば、(Fx,Fy,Fz,エンコーダ38aのカウント値,X軸方向駆動モータ38の回転方向のデフォルト値,エンコーダ30aのカウント値,Y軸方向駆動モータ30の回転方向のデフォルト値,ホームポジションセンサ57の状態のデフォルト値,ホームポジションセンサ64の状態のデフォルト値,リミットセンサ55aの状態のデフォルト値,リミットセンサ55bの状態のデフォルト値,リミットセンサ61aの状態のデフォルト値,リミットセンサ61bの状態のデフォルト値,緊急停止ボタン10aの状態のデフォルト値,一時停止ボタン10bの状態のデフォルト値,イニシャルボタン10cの状態のデフォルト値)で表される信号情報を10[ms]ごとにMCU71に出力する。
なお、MCU71は、緊急停止ボタン10a、一時停止ボタン10bの状態のデフォルト値が緊急停止ボタン10a、一時停止ボタン10bが押下されたことを表すときには、駆動制御部72を介してX軸およびY軸方向駆動モータ38,30の駆動を停止させるように制御する。また、MCU71は、緊急停止ボタン10aが押下されたときは、後述する軌跡設定ルーチン、負荷検出ルーチンおよび運動訓練ルーチンを直ちに終了する。
また、MCU71は、イニシャルボタン10cの状態を表すデフォルト値がイニシャルボタン10cが押下されたことを表すときには、操作部3をホームポジションに位置付けるため、駆動制御部72を介して予め設定された速度でX軸およびY軸方向駆動モータ38,30を駆動させ、信号処理部73から出力されたホームポジションセンサ57のデフォルト値、ホームポジションセンサ64のデフォルト値がそれぞれホームポジションに位置することを表すデフォルト値となったときに、X軸およびY軸方向駆動モータ38,30の駆動を個別に停止させる。
(3)ランプ点灯回路77
ランプ点灯回路77は、緑色LED9a、白色LED9b、赤色LED9cを点灯させる3つの点灯回路で構成されている。各点灯回路はMOSFET等のスイッチング素子を有しており、MCU71が運動訓練装置1の状態に応じてデジタル信号(ハイレベル信号)をスイッチング素子のゲートに出力することでオン状態となり、緑色LED9a、白色LED9bおよび赤色LED9cを個別に点灯させる。なお、各スイッチング素子のゲートとMCU71との間には、MCU71の破損を防止するために保護抵抗が挿入されている。
(4)その他
不揮発性メモリ74、入力制御部75、表示制御部76および通信制御部78には公知のものを用いることができる。付言すると、不揮発性メモリ74は、使用者Uの個人データや運動訓練履歴等の運動訓練に関するデータを保存する。また、表示制御部76は、MCU71の処理周期(10[ms])が表示装置80の垂直帰線周期と相違することから、垂直帰線周期と一致した1/60[s](16.6[ms])に一度の周期で行われる垂直帰線割込(Vsync)がなされたか否かを判断し、否定判断のときはMCU71から指令された描画情報を追加し、肯定判断のときは現在の描画情報を表示装置80に出力する。
2.動作
次に、本実施形態の運動訓練装置1の動作について説明する。
2.1.動作制御概要
図12に示すように、後述する能動訓練モードにおいて、MCU71は、信号処理部73から出力された操作部3に作用するX軸方向の力Fx、Y軸方向の力FyおよびZ軸方向の力Fz(Fx,Fy,Fz)から、仮想モデルIMを介して操作部3に発生させるべきX軸方向の速度vvxおよびY軸方向の速度vvyを算出し、駆動制御部72に出力する。
式(1)上段は粘性抵抗を考慮したときの操作部3に発生させるべき速度vvの算出式を示し、下段は粘性抵抗を考慮しないときの操作部3に発生させるべき速度vvの算出式を示す。mは操作部3の仮想質量[kg]、cは粘性係数[kg/s]、vvはX軸およびY軸方向駆動モータ38,30の駆動力で操作部3に発生させるべき速度[m/s]、vvstはエンコーダ38a,30aを介して検出された操作部3の速度[m/s]、kFは力センサ51で検出されたZ軸方向の力Fzをどの程度反映させるかを決める重み係数である。
上記式(1)は次のように求められる。操作部3に発生させるべき力は、下式(2)に示すように、運動方程式によって表される。式(2)上段は粘性抵抗を有するXY平面での運動方程式を表し、下段は粘性抵抗を有しないXY平面での運動方程式を表す。式(2)に示す運動方程式から、操作部3に発生させるべき速度v
vは下式(3)で算出することができる。なお、式(3)において、v
vstは操作部3の現在の速度(エンコーダ38a、30aを介して把握した操作部3の速度)であり、上段は粘性抵抗を有するXY平面を模擬したときの操作部3に発生させるべき速度v
v、下段は粘性抵抗を有しないXY平面で操作部3に発生させるべき速度v
vである。
式(3)上段において、力センサ51で検出されたZ軸方向の力Fzを仮想質量mに掛けることで、Z軸方向の力Fzの大きさに応じて操作部3に発生させるべき速度を可変とする。つまり、Z軸方向の力Fzが大きくなればなるほど、操作部3に発生させるべき速度vvは遅くなり、使用者Uは操作部3が重くなったように感じる。さらに、Z軸方向の力Fzをどの程度反映させるかを決める重み係数kFを設ける。重み係数kFは反映度合いに応じて任意の値とすることができる。これにより、上述した式(1)を得ることができる。なお、力センサ51が検出するX軸およびY軸方向の力(Fx,Fy)は、X軸およびY軸方向駆動モータ38,30の駆動力により操作部3に発生させるべき力の分力として検出される。
図13に示すように、仮想モデルIMを用いて算出した操作部3に発生させるべき速度(vvx,vvy)を指令速度とし、駆動制御部72によって実際の操作部3の速度(vx,vy)を指令速度に追随させることで仮想運動環境を具現する。
ここで、X軸およびY軸方向駆動モータ38,30にDCサーボモータを用いることから駆動制御部72(モータドライバ)の制御モードをPID制御に設定することで、指令速度に高精度に追随させることができる。しかし、仮想質量mを小さくして訓練負荷を小さく設定した場合には、PID制御の積分動作による応答遅れが影響し、操作中に操作部3が振動的になることが確認されている。そこで、力覚提示エリアAfにおいて、制御モードを、PID制御から偏差の積分値に比例した出力(電流値)を算出するための積分項を除いたPD制御(またはさらに偏差の微分値に比例した出力を算出するための微分項を除いたP制御)とし比例ゲイン(Kp)を高く設定することで、定常偏差は生じるものの応答性が改善され、操作中に生じる操作部3の振動を抑制する。
一方、指令速度(vvx,vvy)対する定常偏差が大きいと、操作部3の機械的動作限界(図10参照)に対する位置精度が低下することから、操作部3が運動訓練装置1の機械的作動限界に衝突して使用者Uや運動訓練装置1に衝撃に与えるおそれがある。この場合、操作部3の振動を抑制するためにフィルタ等を設けることも考えられるが、同様に応答遅れが影響し位置精度が低下する。このような衝撃を未然に防止するために、機械的動作限界に対して操作部3の力覚提示エリアAfの境界線の設定に大きな余裕をとる必要があるが、その結果、力覚提示エリアAfが極端に狭くなってしまう。そこで、位置精度を重視すべき領域(上述した安全対策エリアAs)では、PID(またはPI)制御とする。
2.2.動作詳細
次に、本実施形態の運動訓練装置1の動作についてMCU71のCPU(以下、CPUという。)を主体として説明する。
運動訓練装置1により使用者Uが運動訓練を行う際には、(1)使用者Uが操作部3を掴みその上から訓練指導者が使用者Uの手をとって使用者Uの上肢状況に応じた動作範囲で操作部3を移動させることで、操作部3が辿る軌跡を設定するための軌跡設定モードと、(2)使用者Uのみが操作部3を掴み軌跡設定モードで設定された軌跡を辿ることで、使用者Uによる操作部3の位置(軌跡)とそのときに操作部3が受ける負荷とを検出するための負荷検出モードと経て、(3)運動訓練モードで行われる。なお、以下では、各モードでのCPUによる制御がなされる前に、イニシャルボタン10cが押下され操作部3はホームポジションに位置しているものとして説明する。
(1)軌跡設定モード
CPUは、軌跡設定モードにおいて、図14に示す軌跡設定ルーチンを実行する。軌跡設定ルーチンでは、まずステップ(以下、Sと略称する。)102において、駆動制御部72を介してX軸およびY軸駆動モータ38,30を励磁させる。操作部3は減速ギアユニット39,31を介してX軸およびY軸駆動モータ38,30に連結されているため、訓練指導者の主導で使用者Uが操作部3を移動させる際に使用者Uには所定の負荷が掛かる。なお、S102または次に述べるS104により前に、使用者Uが訓練指導者の主導によって辿る予定の全体軌跡(参照軌跡)を予め表示装置80に表示するようにしてもよい。
次にS104で上述した信号情報を取り込み、S106において操作部3の位置(Px,Py)を算出する。すなわち、CPUは、信号情報に含まれるエンコーダ38aのカウント値を一周期(10[ms])前のカウント積算値に積算することで操作部3のX軸方向の位置Pxを算出し、同様に、信号情報に含まれるエンコーダ30aのカウント値を一周期前のカウント積算値に積算することで操作部3のY軸方向の位置Pyを算出する。その際、信号情報に含まれるX軸およびY軸方向駆動モータ38,30の回転方向のデフォルト値を参照してカウント値を加算するか減算するかを判断する。
次いでS108において、操作部3の移動が終了したか否かを判断する。すなわち、操作部3の位置(Px,Py)が予め設定された設定時間(例えば、1.5[s]の間)、ほぼ同じ値か否かを判断し、否定判断のときは次の(10[ms]後の)操作部3の位置を検出するためにS104に戻り、肯定判断のときはS110に進む。従って、CPUは、10[ms]ごとに操作部3の位置(Px,Py)を算出する。
S110では、10[ms]ごとに算出した操作部3の位置(Px,Py)のデータを時系列順に並べた軌跡情報I1として不揮発性メモリ74に保存して軌跡設定ルーチンを終了する。その際、CPUは、S108で説明した設定時間の操作部3の位置(Px,Py)のデータを削除して不揮発性メモリ74に保存する。
(2)負荷検出モード
CPUは、負荷検出モードにおいて、図15に示す負荷検出ルーチンを実行する。負荷設定ルーチンでは、S202で不揮発性メモリ74に保存した軌跡情報I1を読み出し、次のS204において操作部3が軌跡情報I1の位置となるように(操作部3が移動軌跡設定モードで設定された軌跡を再現するように)駆動制御部72を介してX軸およびY軸方向駆動モータ38,30を駆動させる。すなわち、軌跡情報I1の処理対象の現在の位置と軌跡情報I1の次の位置とのそれぞれX軸方向およびY軸方向の距離をこの間の移動時間10[ms]で割ることで求めた指令速度を駆動制御部72に出力する。
次にS206で信号情報を取り込み、S208において信号情報に含まれるエンコーダ38a,30aのカウント値を積算することで操作部3の位置(Px,Py)を算出する。次いでS210で信号情報に含まれる、操作部3に作用するX軸およびY軸方向の力(Fx,Fy)を合成した合成力F0を算出する。次のS212では、S208で算出した操作部3の位置(Px,Py)およびS210で算出した合成力F0(負荷)を表示制御部76に出力して表示装置80に操作部3の位置および負荷を表示させる。このとき、表示制御部76は一周期前の画情報に今回(直近)の描画情報を追加した画情報を生成するとともに、予め定められた画像表示上の原点位置を基準に平行移動処理を行う。
次にS214において、S202で読み出した軌跡情報I1の最後の位置に操作部3を位置付ける処理を行ったか否かを判定することで操作部3の移動が終了したか否かを判断する。否定判断のときは負荷検出を続行するためにS204に戻り、肯定判断のときはS216に進む。S216では、10[ms]ごとに算出した操作部3の位置(Px,Py)のデータおよび操作部3に作用する力(Fx,Fy,F0)のデータを時系列順に並べた軌跡-負荷情報I2(Px,Py,Fx,Fy,F0)として不揮発性メモリ74に保存して負荷設定ルーチンを終了する。
図19は、S214における肯定判断時点で表示装置80に描画された画面を模式的に示した(合成力F0(負荷)を絶対値|F0|で示した)もので、画面上部には使用者Uが操作部3を移動させて辿った軌跡、下部には時間軸を横軸にとったときの軌跡の各位置における負荷変動が表示されている。図19の例では、時刻T1から時刻T2の範囲で、使用者Uから操作部3に大きな力が加わったことが示されている。表示制御部76は、CPUの指示(CPUから出力される閾値情報)に従って、例えば、S214における肯定判断後にこの範囲の表示の色を変えるように表示装置80を制御してもよい。或いは、図19に示すように、鎖線で囲って強調するようにしてもよい。時刻T1から時刻T2の範囲での軌跡を参照すると、使用者Uが操作部3をうまく操作できないと推測でき、運動訓練者はこのデータを参照して使用者Uの運動訓練プログラムを作成することができる。
(3)運動訓練モード
CPUは、運動訓練モードにおいて、図16に示す運動訓練ルーチンを実行する。なお、運動訓練モードには、使用者Uが自ら軌跡-負荷情報I2の軌跡をなぞるように操作部3を移動させる能動訓練モードと、自動的に軌跡-負荷情報I2の軌跡を辿る操作部3に引っ張られて運動する受動訓練モードとがある。受動訓練モードは主としてリハビリ中の人を対象とする運動訓練モード、能動訓練モードはリハビリ最終段階の人や健常者を対象とする運動訓練モードとして想定されている。なお、運動訓練装置1は、健常者の運動訓練にも対応可能なようにFx、Fyの最大値:90[N]、最大加速度:8[m/s2]、最大速度:1.24[m/s]に設定されている。
運動訓練ルーチンでは、まずS302において、不揮発性メモリ74に保存した軌跡-負荷情報I2を読み出す。次いでS304で能動訓練モードおよび受動訓練モードのいずれを選択するかを問い合わせる画面を表示装置80に表示させ、S306でいずれかの選択(入力)があるまで待機する(S306で否定判断)。選択があると(S306で肯定判断)、次のS308において能動訓練モードが選択されたか否かを判断し、肯定判断のときはS310に進み、否定判断のときはS328に進む。
S310では、調整値情報を要求する画面を表示装置80に表示させる。この調整値は、上述した仮想モデルIMを表す式(1)のパラメータ(仮想質量m、粘性係数c、重み係数kF)であるが、本実施形態では、表示装置80に、例えば運動量や粘性抵抗の大きさに応じて予め定めた幾とおりかの選択子にその説明(例えば、運動量:大、粘性抵抗:中)を加えた画面を表示したり、運動量や粘性抵抗の大きさを調整可能に表したレベルメータを表示したりすることでパラメータの入力を容易にしている。
次にS312において、調整値情報の入力があるまで待機し(S312で否定判断)、入力があると(S312で肯定判断)、次のS314において調整値情報を取り込んで上述したパラメータの値を確定させる。このとき、CPUは、操作部3の振動を抑制するために、操作部3の仮想質量mが予め設定された設定値(例えば、4[kg])未満のときに、操作部3の仮想質量mをこの設定値とする。
次いでS316において、上述した信号情報を監視して操作部3にZ軸方向の力Fzが作用したか否か、および、操作部3の位置がホームポジションから移動したか否かを判定することで、能動訓練が開始されたか否かを判断する。なお、能動訓練開始前(S316の判定でいずれかが否定判定のとき)は、X軸およびY軸方向駆動モータ38,30は励磁状態にあり、操作部3はホームポジション(0,0)に位置している。
能動訓練が開始されると(S316の判定で双方が肯定)、S318で信号情報を取り込み、S320において信号情報に含まれるエンコーダ38a,30aのカウント値を積算することで操作部3の位置(Px,Py)を算出する。また、S320では、信号情報に含まれるエンコーダ38a,30aのカウント値、すなわちX軸およびY軸方向駆動モータ38,30の回転速度(と減速ギアユニット39,31の減速ギア比と)から操作部3の実際の速度(vx,vy)を算出する。
次のS322では、駆動制御部72に指令を与えるための駆動指令処理を実行する。図17は、S322の駆動指令処理の詳細を示す駆動指令処理サブルーチンのフローチャートを示したものである。駆動指令処理サブルーチンでは、S402において、軌跡-負荷情報I2の軌跡位置とS320で算出した位置(Px,Py)との位置差(距離差)が予め定められた許容範囲内か否かを判断し、否定判断のときは使用者Uの上肢の運動範囲が広がり過ぎるとみなし駆動指令処理サブルーチンを終了して図16のS342に進み、肯定判断のときはS404に進む。
S404では、信号情報に含まれる操作部3に作用する力(Fx,Fy)を合成した合成力F0を算出し、次のS406において、合成力F0の大きさ(絶対値)|F0|と、S320で算出した操作部3の位置(Px,Py)に最も近い軌跡-負荷情報I2の操作部3の位置における合成力F0の大きさ|F0|との差(負荷差)が予め定められた許容範囲内か否かを判断し、否定判断のときは使用者Uに予定以上の負担が掛り過ぎているとみなし駆動指令処理サブルーチンを終了して図16のS342に進み、肯定判断のときはS408に進む。
S408では、Z軸方向の力Fzが予め設定された第1の閾値(例えば、5[N])を越えるか否かを判断し、肯定判断のときは、S410で式(1)上段により指令速度(vvx,vvy)を算出してS414に進み、否定判断のときは、S412で式(1)下段により指令速度(vvx,vvy)を算出してS414に進む。指令速度(vvx,vvy)を算出する際には、合成力F0に対応する速度vvを求め、その速度vvをX軸およびY軸方向の速度vvx,vvyに分解した指令速度(vvx,vvy)を算出する。なお、第1の閾値は例えば、0[N]としてもよく、その場合には、力センサ51で検出したZ軸方向の力Fzのすべての値に対応して操作部3に発生させるべき速度、すなわち指令速度(vvx,vvy)が変化する。
S414では、S320で算出した操作部3の位置(Px,Py)が力覚提示エリアAf(図10参照)内か否かを判断し、肯定判断のときは、S416においてX軸およびY軸方向駆動モータ38,30に対する駆動制御部72(のモータドライバ)の制御モードをPD制御またはP制御と決定し、否定判断のとき(安全対策エリアAs内のとき)は、S418においてX軸およびY軸方向駆動モータ38,30に対する駆動制御部72の制御モードをPID制御またはPI制御と決定する。
次に、CPUは、S420において、S320で算出した操作部3の実際の速度(vx,vy)およびS410またはS412で算出した指令速度(vvx,vvy)、並びに、S416またはS418で決定した制御モードに従って出力電流Iiすなわち駆動量を算出し、算出した出力電流Ii(デューティ)を駆動制御部72に指令して駆動指令処理サブルーチンを終了し、図16のS324に進む。
ここで、図13を参照してS420での出力電流Iiの算出処理について簡単に補足する。図13(A)は駆動モータ制御の概念、図13(B)はCPUによる本実施形態での駆動モータ制御を示したものである。図13(A)に示すように、CPUは、操作部3の実際の速度が指令速度に追随するように、a)PD制御(Proportional-Differential Control)若しくはP制御(Proportional Control)、または、b)PID制御(Proportional-Integral-Differential Control)若しくはPI制御(Proportional-Integral Control)のいずれかの制御モードでX軸およびY軸方向駆動モータ38,30の駆動を制御する。
このため、CPUは、図13(B)に示すように、決定した制御モードに従って出力電流Iiを算出する。すなわち、制御モードをPD(P)制御と決定した場合には偏差の積分値に比例した電流分を加えず、PID(PI)制御と決定した場合には偏差の積分値に比例した電流分を加えて出力電流Iiを算出する。その際、CPUは、MCU71のROMに格納されRAMに展開された、指令速度、減速ギアユニット31または減速ギアユニット39の減速ギア比、モータの回転速度およびモータへの出力電流(デューティ)の関係を表した関係式を参照する。なお、本実施形態では、CPUは、一周期前に算出したモータの回転速度と、今回(直近に)検出された実際のモータの回転速度とから偏差を算出する。
図16のS324では、S320で算出した操作部3の位置(Px,Py)および図17のS404で算出した合成力F0(負荷)、並びに、軌跡-負荷情報I2の位置(Px,Py)および軌跡-負荷情報I2の当該位置での合成力F0のデータを表示制御部76に出力して表示装置80に操作部3の軌跡および負荷変動を表示させる。なお、軌跡-負荷情報I2の位置および合成力F0のデータは、時系列順に纏められた軌跡-負荷情報I2(Px,Py,Fx,Fy,F0)の中から10[ms]ごとに順次選択される。これにより、表示装置80の画面上部には、負荷検出モードで操作者Uが操作部3を操作したときのスピードと能動訓練モードで操作部3を操作したときのスピードとの違いがリアルタイムで表示される。
次にS326において、図14のS108と同様に、操作部3の位置(Px,Py)が予め設定された設定時間、ほぼ同じ値か否かを判定することで、操作部3の移動が終了したか否かを判断する。否定判断のときは使用者Uの能動訓練を続行するためにS318に戻り、肯定判断のときはS342に進む。
図20は、S326における肯定判断時点で表示装置80に描画された画面を模式的に示した(合成力F0を絶対値|F0|で示した)もので、画面上部には軌跡-負荷情報I2に従って表示された軌跡(実線)および使用者Uが軌跡-負荷情報I2の軌跡をなぞった際の軌跡(破線)、下部には時間軸を横軸にとったときの、軌跡-負荷情報I2に従って表示された負荷変動(実線)および使用者Uが軌跡-負荷情報I2の軌跡をなぞった際の負荷変動(破線)が表示されている。表示制御部76は、CPUの指示に従って、例えば、S326における肯定判断後に実線と破線との表示の色を変えて表示装置80に表示させるようにしてもよい。
一方、図16のS308で否定判断のときは、S328〜S340(受動訓練モード)での処理を実行する。S328〜S340での処理は、原則的にS310〜S326(能動訓練モード)での処理と同じである。以下、異なる点について説明する。なお、受動訓練モードでは、力センサ51が検出するX軸およびY軸方向の力(Fx,Fy)は、X軸およびY軸方向駆動モータ38,30の駆動力と使用者Uが操作部3に及ぼす力の差分の分力として検出される。
まず、能動訓練モードではS310〜S314で調整値情報を取り込んで所定値(静止摩擦エリア90の半径の値)を算出するのに対し、受動訓練モードでは使用者Uが自動的に動く操作部3の動きに追随して運動することが目的のため、調整値は予め定められており上述した所定値は算出されない。このため、受動訓練モードではS310〜S314に対応するステップを欠く。
また、S316に対応するS328では、信号情報を監視して操作部3にZ軸方向の力Fzが作用したか否かを判定することで、受動訓練が開始したか否かを判断する。肯定判断のときは、次のS330で駆動制御部72を介してX軸およびY軸方向駆動モータ38,30の駆動を開始し、軌跡-負荷情報I2を構成する最初の位置(Px,Py)に操作部3を位置付ける。すなわち、軌跡-位置情報I2を構成する最初の位置(Px,Py)とホームポジション(0,0)とのそれぞれX軸方向およびY軸方向の距離をこの間の移動時間10[ms]で割ることで求めた指令速度を駆動制御部72に出力する。
さらに、S322に対応するS336の駆動指令処理では、図18に示すように、図17のS402、S414〜S418に対応するステップを欠く。この理由も、受動訓練モードでは使用者Uが自動的に動く操作部3の動きに追随して運動することが目的のため、操作部3の移動範囲が図10に示した力覚提示エリアAf内に限られるからである。従って、X軸およびY軸方向駆動モータ38,30の制御モードはPD(P)制御に定められている。
また、図18の駆動指令処理サブルーチンでは、図17のS408〜S412に代えて、S456で指令速度を算出する。この指令速度は、図16のS302で読み出した軌跡-位置情報I2の位置となるように10[ms]ごとに指令速度を算出する。すなわち、軌跡-位置情報I2の処理対象の現在の位置と軌跡-位置情報I2の次の位置とのそれぞれX軸方向およびY軸方向の距離をこの間の移動時間10[ms]で割ることで求めた指令速度を駆動制御部72に出力する。従って、式(1)は用いられない。
さらに、S340では、図15のS214と同様に、軌跡-負荷情報I2の最後の位置に操作部3を位置付ける処理を行ったか否かを判定することで、操作部3の移動が終了したか否かを判断する。否定判断のときは受動訓練を続行するためにS332に戻り、肯定判断のときはS342に進む。
S342ではX軸およびY軸方向駆動モータ38,30の駆動を停止させ、次のS342において運動訓練データを不揮発性メモリ74に保存して運動訓練ルーチンを終了する。なお、運動訓練データは、使用者Uの上肢状況の参考のため、図17のS402、S406、図18のS454で否定判断されたときにも保存される。
この運動訓練データには、10[ms]ごとに算出した操作部3の位置(Px,Py)のデータおよび操作部3に作用する力(Fx,Fy,F0)のデータを加えた運動訓練軌跡-負荷情報I3、能動訓練モードの場合にはさらにS314で確定した調整値のデータが含まれる。運動訓練軌跡-負荷情報I3は、例えば、(Px,Py,Fx,Fy,F0)で表される10[ms]ごとのデータを運動訓練開始時から終了時まで時系列順に並べたデータとなる。
なお、図15のS208(および図16のS334)では、図16のS320と同様に、信号情報に含まれるエンコーダ38a,30aのカウント値から操作部3の実際の速度(vx,vy)を算出し、図17のS420と同様に、操作部3の実際の速度(vx,vy)および指令速度(vvx,vvy)、並びに、制御モード(PI制御またはP制御)の指示を駆動制御部72に出力するが、上記では本発明と直接関連しないためその説明を省略した。
3.効果等
次に、本実施形態の運動訓練装置1の効果等について説明する。
3.1.効果
本実施形態の運動訓練装置1では、図17のS408で操作部3に作用するZ軸方向の力Fzが第1の閾値を越えるか否かを判断し、第1の閾値を越えるときに、S410で式(1)上段により指令速度(vvx,vvy)を算出する。すなわち、式(1)はZ軸方向の力Fzの大きさに応じてX軸およびY軸方向駆動モータ38,30の駆動量を制限する式として機能する。換言すれば、第1の閾値を越えるときに、粘性抵抗を有するXY平面を模擬した式(1)上段で算出される指令速度(vvx,vvy)が粘性を有しないXY平面を表す式(1)下段で算出される指令速度(vvx,vvy)より小さくなるようにX軸およびY軸方向駆動モータ38,30の駆動量を制限する。このため、急激に操作部3を操作しても、能動訓練中の使用者Uに予想外の負荷が加わることを防止するので、使用者Uによる平面運動を安全に支援することができる。
また、本実施形態の運動訓練装置1では、図17のS410、S412で式(1)により合成力F0に対応する速度vvを求め、その速度vvをX軸およびY軸方向の速度vvx,vvyに分解して指令速度(vvx,vvy)を算出する。このため、式(1)により操作部3に作用するX軸方向の力FxからX軸方向の指令速度vvxと、操作部3に作用するY軸方向の力FxからY軸方向の指令速度vvyとをX軸、Y軸独立に算出する場合と比較して、操作部3の斜め方向への移動の際の操作性を向上させることができる。
さらに、本実施形態の運動訓練装置1では、仮想モデルIMのパラメータを調整可能に構成したので(S310〜S314)、使用者Uの上肢状況に応じて運動訓練を適切に支援することができる。また、パラメータを入力する際に、運動量や粘性抵抗の大きさに応じた入力(調整値)情報からCPUがパラメータを決定するので、入力作業を容易とすることができる。
また、本実施形態の運動訓練装置1では、操作部3が力覚提示エリアAf内にあるときはPD(P)制御でX軸およびY軸方向駆動モータ38,30を制御する(図17のS414、S416、S420)。PID(PI)制御により位置精度が高まることから、操作部3の仮想質量mを小さくして訓練負荷を小さく設定した場合でも、力覚提示エリアAf内では操作部3の振動を抑制(制振)できるので、運動訓練装置1の操作部3の操作性の向上を図ることができる。
さらに、本実施形態の運動訓練装置1では、操作部3が安全対策エリアAs内にあるときはPID(PI)制御でX軸およびY軸方向駆動モータ38,30を制御する(図17のS414、S418、S420)。このため、操作部3が機械的動作限界に衝突することを予防でき使用者Uや運動訓練装置1に掛かる負担をなくすことができるとともに、操作部3の可動領域すなわち使用者Uの運動訓練領域の広さを適正に確保することができる。
3.2.変形例
なお、本実施形態では、図17のS408、S410において、Z軸方向の力Fzが第1の閾値を越えるときに、式(1)上段により指令速度(vvx,vvy)を算出する例を示したが、本発明はこれに制約されるものではない。例えば、一周期前に算出したX軸およびY軸方向駆動モータ38,30の指令速度(駆動量)を維持するようにしてもよく、または、式(1)上段右辺第1項を所定値とするようにしてもよい。このような態様でも、使用者Uは操作部3を操作する際に粘性抵抗を体感することができる。
また、上記実施形態で用いた式(1)において、操作部3の加速度αを加味するようにしてもよい。このような加速度αは、例えば、上述した信号情報を参照して、操作部3の実際の速度(vx,vy)と一周期(10[ms])前に把握した操作部3の実際の速度(vx,vy)との差をこの間の時間(10[ms])で割ることにより求められる。
このような加速度αを加味した一態様として、CPUは、図17のS408〜S412において、Z軸方向の力Fzが第1の閾値を越えると判断したときに(S408で肯定判断)、加速度αが正か否かを判定し、正と判定したときに下式(2)上段を用いて操作部3に発生させるべき速度v
vを算出し、負または0と判定したときに加速度αと加速度αをどの程度反映させるかを決める重み係数k
αとの積を1とし下式(2)上段を用いて操作部3に発生させるべき速度v
vを算出し(S410)、第1の閾値以下と判断したときに(S408で否定判断)、下式(2)下段を用いて操作部3に発生させるべき速度v
vを算出する(S418)ようにしてもよい。なお、重み係数k
αは反映度合いに応じて任意の値とすることができる。
また、加速度αを加味した他の態様として、CPUは、S408〜S412において、Z軸方向の力Fzが第1の閾値を越えると判断したときに、さらに、加速度αが正かつ予め設定された第2の閾値(例えば、0.1[m/s2])より大きいか否かを判断し、大きいと判断したときに、上記実施形態で用いた式(1)上段により指令速度(vvx,vvy)を算出し、小さいか同じと判断したとき、または、Z軸方向の力Fzが第1の閾値以下と判断したときに、式(1)下段により指令速度(vvx,vvy)を算出するようにしてもよい。
さらに、本実施形態では、力覚提示エリアAfにおける操作部3の振動を抑制するために、駆動制御部72(のモータドライバ)がX軸およびY軸方向駆動モータ38,30の双方をPD(P)制御する例を示したが、本発明はこれに限定されず、X軸およびY軸方向駆動モータ38,30のいずれか一方(例えば、Y軸方向駆動モータ38)のみをPD(P)制御し、いずれか他方をPID(PI)制御するようにしてもよい。同様に、安全対策エリアAsにおいて、X軸およびY軸方向駆動モータ38,30のいずれか一方(例えば、Y軸方向駆動モータ38)のみをPID(PI)制御し、いずれか他方をPD(P)制御するようにしてもよい。
また、本実施形態では、力センサ51に市販の歪みゲージを用いた6軸力覚センサを用いる例を示したが、本発明はこれに限らず、3軸力覚センサや、歪みゲージに代えて、例えば、静電容量式や光学式のものを用いるようにしてもよい。またさらに、本実施形態では、Fx,Fy,Fzのみを用いることから、それに応じて歪み−荷重変換行列式を簡素化するようにしてもよい。
さらに、本実施形態では、図19、図20に示したように、表示装置80に時間軸に対する負荷変動を表示する例を示したが、時間軸のない、方向と大きさを同時に示すレーダチャートで表示するようにしてもよい。図21はそのようなレーダチャートの一例を示したものである。図21の例では、X軸およびY軸が交差する原点を基準に負荷(合成力F0)の方向と大きさとを示している。また、点p、qは軌跡-負荷情報I2の負荷から外れたときの負荷を示している。このようなレーダチャートを用いると、訓練時間が長くなっても時間軸をスクロールさせる必要なくなる。また、操作部3に作用する力の方向と大きさを同時に表示できるため、所定の軌跡でどの方向にどれくらいの負荷が掛かっているかを確認することができる。なお、図19、図20に示した例でも、合成力F0の絶対値|F0|ではなく、正負情報を含む合成力F0で表示するようにしてもよい。
また、本実施形態では、図14のS110、図15のS216、図16のS344で情報/データを一律に不揮発性メモリ342に保存する例を示したが、制御部70は通信制御部78を有していることから外部装置に情報/データを送信してもよく、また、例えば、軌跡設定ルーチンに続いて負荷検出ルーチンを続行する場合には軌跡設定ルーチンで取得した軌跡情報I1がMCU71のワークエリア内に一時的に格納されおり負荷検出ルーチンでその軌跡情報I1を用いるようにしてもよいことから、保存するか否かを問い合わせた上で不揮発性メモリ74に保存するようにしてもよい。
また、本実施形態では、図9に示した位置をホームポジションとした例を示したが、本発明はこれに制限されるものではない。例えば、入力された操作者Uの利き手の別に応じてCPUがホームポジションの位置を変えるようにしてもよい。
さらに、運動訓練装置1は、運動訓練モードの内容を再現するための再現モードを有するようにしてもよい。再現モードでは、例えば、図16のS302において、不揮発性メモリ74に保存された運動訓練軌跡-負荷情報I3、さらに能動訓練モードの場合には既に確定された調整値のデータを読み出し、S304〜S314までの処理を行わないようにすればよい。
また、再現モードでは、運動訓練の内容の一部を再現するようにしてよい。例えば、表示装置80に図20に示した軌跡や負荷変動を表示しその一部を選択させ、その選択した部分だけの運動訓練の内容を再現するようにしてもよい。訓練指導者は、使用者Uがどの移動範囲で上肢を動かし難かったり、力が入りにくかったりするかを確認することができ、使用者Uに合わせた運動訓練プログラムを作成することができる。
さらに、本実施形態では、MCU71のRAMをワークエリアとしてすべてのデータを処理する例を示したが、必要に応じて処理データを暫定的に格納するバッファメモリをMCU71の外部バスに接続するようにしてもよい。また、本実施形態では、入力装置79と表示装置80とを個別に設ける例を示したが、タッチパネル等を用いることによりこれらを一体化するようにしてもよい。この場合には、入力制御部75と表示制御部76も一体化される。
また、本実施形態では、図13に従って説明するために、駆動制御部72の制御ICがCPUから出力された指令速度(vvx,vvy)および操作部3の実際の速度(vx,vy)に従ってX軸およびY軸方向駆動モータ38,30の出力電流Iiを算出する例を示したが、これに代えて、CPUが指令速度(vvx,vvy)に対応するX軸およびY軸方向駆動モータ38,30の回転速度および操作部3の実際の速度(vx,vy)に対応するX軸およびY軸方向駆動モータ38,30の回転速度を算出して駆動制御部72に出力し、駆動制御部72(の制御IC)はこれらの回転速度に応じてX軸およびY軸方向駆動モータ38,30を制御するようにしてもよい。
さらに、本実施形態では、信号処理部73の信号処理ICが歪み−荷重変換行列演算を行って(Fx,Fy,Fz,Tx,Ty,Tz)を算出する例を示したが、CPUが行うようにしてもよい。このような態様では、信号処理部73はA/Dコンバータを介して上述した外部バスに接続される。
またさらに、本実施形態では、円形の軌跡を辿る例を示したが、本発明はこれに制約されず、例えば、三角形等の多角形や、ローマ字等の軌跡を辿るようにしてもよい。さらに、本実施形態では、軌跡設定ルーチンで実際に操作部3を移動させ、各位置の値を軌跡情報I1とした例を示したが、予めデータ化された全体軌跡を予め入力しておき、使用者Uが軌跡設定モードを選択したときに、表示装置80に参照軌跡として表示するようにしてもよい。この点は、負荷検出ルーチンや運動訓練ルーチンについても同じである。また、予め基本パターンを複数とおり不揮発性メモリ74に保存しておき、使用者Uに応じて一つの基本パターンを選択するようにしてもよい。またさらに、本実施形態では、リハビリ中の人を想定して軌跡設定モード、負荷検出モードを経て運動訓練モードを実施する例を示したが、健常者の場合には、直ちに運動訓練モードを実施するようにしてもよい。その際、表示装置80に上記の参照軌跡を表示することが望ましい。
さらに、本実施形態では、緊急停止ボタン10aが押下されたときにX軸およびY軸方向駆動モータ38,30を停止させる例を示したが、さらに安全性を高めるために、不図示の電源部と駆動制御部72の間にスイッチング素子を挿入し、CPUは緊急停止ボタン10aの状態のデフォルト値が緊急停止ボタン10aが押下されたことを表すときに、当該スイッチング素子をオフ状態とするようにしてもよい。
また、本実施形態では、カバー4にベローズ状シートを例示したが、これに代えて、例えば樹脂または布製の比較的柔軟なシートで構成し、装置本体2の前後左右各側縁部の内側に配置されたロール機構に、巻取方向に付勢するばね構造によって巻取・引出自在に収容するようにしてもよい。この種のロール機構は、従来、車両や建物の窓を覆うスクリーン等に広く採用されている。また、カバー4の構造には、蛇腹構造やロール機構に限らず、従来公知の種々のものを用いることができる。
さらに、本実施形態では、Y軸方向アクチュエータ21をX軸方向アクチュエータ22の上に配置する例を示したが、本発明はこれに限らず、両者を位置関係を逆にしても、または、構造を異ならせ同一面に配置するようにしてもよい。さらにまた、本実施形態では、ケーシング6の補強構造として左右補強部材14a,14bと前後補強部材13a〜13cとが一体化した例を示したが、左右補強部材14a,14bと前後補強部材13a〜13cとは、一体化しなくてもよく、また上下方向に離隔していてもよい。
また、本実施形態では、X軸およびY軸方向駆動モータ38,30の停止時に減速ギアユニット39,31のギア比によりモータ軸の回転を防止し操作部3の移動を防止する構造を示したが、例えば、X軸およびY軸方向駆動モータ38,30への電力供給停止時に、その回転を停止させかつ保持するように、電磁ブレーキ等を設けるようにしてもよい。
さらに、本実施形態では、ハンドル部材49が操作ロッド48に取り付けられた例を示したが、本発明はこれに制限されず、ハンドル部材49が操作ロッド48に対して着脱自在に装着されるようにしてもよい。このような態様では、ハンドル部材49は、運動訓練装置1の使用目的、使用者Uの状態等に対応して、使用者Uの上肢または下肢との係合に適した様々な部材と交換することができる。例えば、使用者の手がハンドル部材49をうまく掴むことができない場合には、その手(または上肢)を固定するベルト付きの部材を用いるようにしてもよい。これにより、使用者Uの手(または上肢)から操作ロッド48に力を伝達して操作部3を移動させ、または移動する操作部3から操作ロッド48を介して力を受けて手(または上肢)を動かすことができる。また、使用者Uの下肢を訓練する場合には、同様にハンドル部材49に代えて、使用者の足を載せる台や足を固定するベルト付きの部材を用いるようにしてもよい。
またさらに、本実施形態では、運動訓練装置1を略水平に載置して使用する例を示したが、例えばサンディング訓練を行うために、装置本体2を前後方向または左右方向に傾斜させた状態で使用するようにしてもよい。その際、運動訓練装置1は、その傾斜状態、すなわち傾斜方向および傾斜角度を検出するための傾斜センサ87(図2参照)を有していてもよい。このような傾斜センサ87には、例えばジャイロセンサを用いることができるが、これに限るものではない。このような態様では、運動訓練装置1は、例えば、傾斜角度を調整可能な別個の支持構造上に設置され、傾斜センサ77の出力信号は制御部70に入力され、運動訓練装置1の傾斜方向および傾斜角度の大きさに対応して、X軸およびY軸方向駆動モータ38,30の少なくとも一方の出力を制御するために使用される。
そして、本実施形態では、力覚提示エリアAfや安全対策エリアAsの寸法、処理周期、Fx,Fyの最大値、最大加速度、最大速度、閾値等を具体的な数値で示したが、本発明はこれらに限定されるものではなく、任意の数値を用いることができることは論を待たない。