ユーザの脚に装着される歩行補助装置であり、ユーザの膝関節回転軸回りにトルクを発生させるアクチュエータと、下腿の揺動角を検知するセンサと、アクチュエータを制御するコントローラと、を備えており、コントローラは、下腿を伸ばした状態を揺動角=ゼロとし、膝屈曲方向を揺動角の正値方向としたときに、歩行動作中の立脚に対して、揺動角がゼロから第1角度までの間は、膝を伸展させる方向の一定値の第1アシストトルクを出力するようにアクチュエータを制御し、揺動角が第1角度から第2角度の間は、膝を伸展させる方向のトルクであって揺動角に比例する第2アシストトルクを出力するようにアクチュエータを制御し、揺動角が第2角度よりも大きい場合は、揺動角が第2角度に等しいときの第2アシストトルクよりも大きい一定値の第3アシストトルクを出力するようにアクチュエータを制御する、ことを特徴とする歩行補助装置。コントローラは、揺動角が第2角度を超えた場合は、揺動角がゼロに戻るまで第3アシストトルクを出力し続けるようにアクチュエータを制御することを特徴とする請求項1に記載の歩行補助装置。上記したタイプの歩行補助装置は、健常者のパワーアップを目的とする場合と、非健常者の歩行補助リハビリテーションを含むを目的とする場合のいずれにも用いることができる。しかしながら、健常者と非健常者とでは、想定するユーザの能力体力や筋力に加えて、俊敏性などが異なる。例えば、ある種の病気では、膝より下に障害が残ることがある。そのような障害を有する非健常者の多くは、長下肢装具を用いてリハビリを行う。そのような非健常者は、自力では体重を支えきれずに崩れ落ちる虞がある。なお、以下では説明を簡単にするために、ユーザが自己の体重を支えきれずに崩れ落ちることを、膝折れすると表現する。リハビリによって機能回復が進んでいくと、非健常者は用いる補助用具を長下肢装具から短下肢装具へと移行していく。長下肢装具から短下肢装具への移行期は、非健常者にとって特に不安定な時期であり、また、介助者が常に側につき、非健常者がバランスを崩すのに備えて対処する必要があるなど、非健常者と介助者の双方に負担を強いるものとなっている。一方で、長下肢装具では、膝が進展状態で固定されているためユーザは膝折れ防止を装具に頼ってしまい、自身の力で体重を支えるための機能回復が不十分となることもある。このように、非健常者を想定ユーザとする場合、歩行補助装置には、ユーザが自重を支えきれずに崩れ落ちる虞があることに配慮されていることが望ましい。そのような配慮がない場合、歩行が不自由なユーザのリハビリを目的とするなら十分な補助力を加えないと歩行補助の目的を達せず、さりとて必要以上に補助力を加えてしまうと筋力の低下につながりリハビリの目的を達成しない。本明細書は、歩行動作が不自由な非健常者のリハビリに適した歩行補助装置を提供する。ただし、本明細書が開示する技術は、リハビリ目的だけでなく、非健常者の通常生活における歩行補助に用いても効果があることに留意されたい。前述したように、歩行補助装置の一つのタイプは、ユーザの膝関節回転軸回りにトルクを発生させるアクチュエータと、アクチュエータを制御するコントローラを備える。本明細書が開示する歩行補助装置も、それらアクチュエータとコントローラを備える。本明細書が開示する歩行補助装置は、下腿の揺動角を検知するセンサを備えているとともに、コントローラは、歩行動作中に立脚に対して、次のアルゴリズムに従ってアクチュエータを制御する。1揺動角がゼロから第1角度までの間は、膝を伸展させる方向の一定値の第1アシストトルクを出力するようにアクチュエータを制御する。2揺動角が第1角度から第2角度の間は、膝を伸展させる方向のトルクであって揺動角に比例する第2アシストトルクを出力するようにアクチュエータを制御する。3揺動角が第2角度よりも大きい場合は、揺動角=第2角度のときの第2アシストトルクよりも大きい一定値の第3アシストトルクを出力するようにアクチュエータを制御する。なお、本明細書の説明では、下腿を伸ばした状態を揺動角=ゼロとし、膝屈曲方向を揺動角の正値方向とする計測基準を採用する。ただし、この計測基準は、説明の便宜のためであり、いずれの角度をゼロとするか、あるいは、いずれの回転方向を正方向とするかは任意であって、本明細書が開示する技術に本質的には影響を与えないことに留意されたい。第1角度の一例は約10度であり、第2角度の一例は約20度である。第2角度は、前述したリミット角度と同じく、それ以上膝が曲がると膝折れする可能性が高いと推定される角度に設定することが望ましい。第2の歩行補助装置は、揺動角がゼロから第1角度の間、すなわち、膝が比較的伸びている状態では、膝折れする可能性が低いので、その間はわずかのアシストトルクを出力するにとどめ、ユーザの筋力向上即ちリハビリを促進する。他方、第1角度から第2角度の間は、揺動角が大きくなるにつれてアシストトルクも増大させ、スムーズな歩行動作となるようにユーザを補助する。第2角度より大きい場合は、膝折れする可能性が高くなるので、大きなアシストトルクで強制的に第2角度までは戻してやる。即ち、アシストトルクの大きさは、第1アシストトルク≦第2アシストトルク<第3アシストトルクという関係となる。なお、第1アシストトルク=第2アシストトルクの関係は、揺動角が第1角度に等しいときに成立する。上記の歩行補助装置は、下腿の揺動角の大きさに応じてアシストトルクの大きさを変える。下腿の揺動角が小さいうちは揺動角<第1角度、一定のアシストトルクを出力してユーザの歩行動作を補助する。揺動角が小さいうちは、比較的に自力で自重を支えやすいので、アシストトルクも小さい値とし、ユーザの筋力の利用を促進する。下腿の揺動角が中程度の場合は第1角度≦揺動角<第2角度、揺動角に比例した大きさのアシストトルクを出力する。揺動角が第1角度よりも大きくなると、揺動角の増大に伴って自力で自重を支えるのが困難となるので、アシストトルクも揺動角に比例させて増大させる。膝折れしないようにアシストトルクを増大させつつも、揺動角が小さくなればアシストトルクも小さくなるのでユーザの筋力の利用が促進される。揺動角がさらに大きくなると第2角度≦揺動角、自力で自重を支えるのは極めて難しくなるので、歩行補助装置が下腿の揺動角を強制的に第2角度まで戻すようにアシストする。これにより膝折れを確実に防止することができる。コントローラは、揺動角が第2角度を超えた場合は、揺動角がゼロに戻るまで第3アシストトルクを出力し続けるようにアクチュエータを制御することも好適である。一旦第2角度を超えて膝が大きく曲がったときには、体重を支えるのが比較的に楽である揺動角=ゼロまで強制的に戻してやることで、歩行動作をいわば一旦リセットし、改めて歩行動作を開始させる。そのようにユーザを誘導することで、歩行動作リハビリを続け易くする。第1実施例図1に実施例の歩行補助装置2を模式的に示す。図1は、ユーザが装着した状態での歩行補助装置2を示している。歩行補助装置2は、ユーザの脚に沿って装着して用いるいわゆる装着型デバイスである。歩行補助装置2は、機構的には、主として大腿リンク5、下腿リンク9、足リンク11、大腿リンク5と下腿リンク9を連結する膝ジョイント7、下腿リンク9と足リンク11を連結する足首ジョイント10からなる多リンク多関節機構を有している。大腿リンク5はベルトでユーザの大腿に固定され、下腿リンク9はベルトでユーザの下腿に固定される。図示を省略しているが、足リンク11は靴を備えており、ユーザがその靴を履くことによって足リンク11がユーザに固定される。歩行補助装置2をユーザが装着すると、膝ジョイント7は、ユーザの膝関節の回転軸とほぼ同軸に位置することになり、足首ジョイント10は、ユーザの足首関節の回転軸ピッチ軸回りの回転軸とほぼ同軸に位置することになる。図2を参照して、本明細書で用いる揺動角とアシストトルクの計測基準ゼロ点と正値方向の定義を説明する。図2に示すように、下腿の揺動角Agは、大腿リンク5の長手方向を下方に延長した直線L1と下腿リンク9がなす角度として定義する。従って、大腿リンク5と下腿リンク9が一直線に並んだ状態、即ち、ユーザが下腿を伸ばした状態が揺動角Ag=ゼロに相当する。揺動角Agの正値の方向は、ユーザが膝を曲げる方向と定義する。アシストトルクTqは、膝が曲がった状態から膝を伸ばす方向下腿リンクが前方へ揺動する方向を正値と定義する。即ち、正値のアシストトルクは、ユーザの膝折れに抗するように作用する。図1に戻って歩行補助装置2の説明を続ける。なお、図3に歩行補助装置2のブロック図を示すので同時に参照されたい。膝ジョイント7には、モータ8アクチュエータと角度センサ6が内蔵されている。足リンク11の靴底には荷重センサ12が内蔵されている。各センサのデータは、大腿リンク5に固定されたコントローラ20に送られる。コントローラ20は、センサデータに基づいてモータ8へ指令値を出力する。モータ8の駆動力によって、下腿リンク9が大腿リンク5に対して相対的に揺動する。大腿リンク5と下腿リンク9はそれぞれユーザの大腿と下腿に固定されているので、モータ8の駆動力は、ユーザの下腿を揺動させる力となる。即ち、モータ8は、ユーザの膝関節回転軸回りにトルクを与える。後述するようにコントローラ20歩行補助装置2は、ユーザの歩行動作を補助するアシストするようにトルクを発生させる。そこで、本明細書では、モータ8歩行補助装置2が出力するトルクをアシストトルクと称する。図1に示すように、本実施例では、歩行補助装置2はユーザの左脚に装着され、左脚の動きを補助する。角度センサ6は、エンコーダであり、大腿リンク5と下腿リンク9がなす角度を計測する。この角度は、ユーザの大腿と下腿がなす角度であり、先に説明した揺動角Agに相当する。荷重センサ12は、歩行補助装置2を装着した脚実施例の場合は左脚の足に加わる床反力を計測する。荷重センサ12が計測する床反力の大きさは、コントローラ20が、歩行補助装置2を装着した脚の足が接地しているか否かを判断するのに用いられる。図3に示すように、歩行補助装置2は、コントローラ20の他に入力デバイス22と記憶装置23を備えている。なお、図1では入力デバイス22と記憶装置23の図示は省略した。入力デバイス22は、歩行補助装置2の起動や停止を指示するためのスイッチと、コントローラ20が実行する制御アルゴリズム後述に用いる各種パラメータを入力するスイッチを備える。各種パラメータは、歩行補助装置2のユーザ、あるいはユーザのリハビリを補助する者療法士などが入力する。入力されたパラメータは、記憶装置23に記憶される。図4のフローチャートを参照して、コントローラ20が実行する処理制御を説明する。コントローラ20は、荷重センサ12のセンサデータを取得し、さらに、角度センサ6のセンサデータを取得するステップS2、S3。角度センサ6のセンサデータが揺動角Agに相当する。コントローラ20は、今回取得した揺動角の値と過去に取得した揺動角の値の差分をとって揺動角速度dAgを算出するステップS4。差分法としては、単純なオイラー法のほか、中央差分法、後退差分法、あるいは、2階差分法など、多数の良く知られた方法があり、いずれを用いてもかまわない。次にコントローラ20は、歩行補助装置2を装着した脚が立脚の状態にあるか否かを判断するステップS5。この判断は、荷重センサ12のセンサデータに基づく。具体的には、荷重センサ12のセンサデータが、ゼロあるいはゼロに近い値である場合に、コントローラ4は、脚が立脚状態ではない即ち遊脚状態にあると判断する。歩行補助装置2を装着した脚が立脚状態でないと判断された場合は、アシストトルクを出力することなく、処理を終了するステップS5:NO。歩行補助装置2を装着した脚が立脚状態であった場合ステップS5:YES、コントローラ20は、以下の数式1に基づいて、アシストトルクTqの指令値を設定する。なお、図2で説明したように、揺動角Agは膝屈曲方向を正値とするが、アシストトルクTqは膝を伸ばす方向に作用するトルクを正値とすることに留意されたい。数1においてkaは比例ゲインでありkdは微分ゲインである。ka、kdは共に一定値であり、前述した入力デバイス22によってユーザあるいは療法士によって入力される。コントローラ20は、数1に従い、揺動角Agがリミット角度AgHよりも大きい場合にはトルク指令値TqとしてTq1を設定するステップS6:YES、S7。設定されたトルク指令値Tqはモータ8へ出力されるステップS14。モータ8は、指令されたアシストトルクを出力する。Tq=T1は、揺動角Agがリミット角度AgHよりも大きい場合のアシストトルク指令値の大きさである。リミット角度AgHは、例えば20度であり、この角度以上に膝が屈曲すると膝折れする可能性が高いという角度に設定される。別言すれば、リミット角度とは、その角度までならば、ユーザが自力で自重を支えることができるであろうと推測される値に設定される。リミット角度AgHは、リハビリを担当している療法士がユーザの状態を観察して定めることが好ましい。数1に示されているように、Tq1は、リミット角度AgHを超えた揺動角Agを、リミット角度AgHへ戻すように作用する。Tq1は、膝折れが懸念される程に膝が屈曲した場合に、ユーザが自力で自重を支えることができると推測される角度即ちリミット角度AgHまで揺動角を強制的に戻すように作用する。揺動角Agがリミット角度AgH以下でありステップS6:NO、かつ、角速度dAgがゼロより大きい場合ステップS8:YES、コントローラ20は、トルク指令値Tq=Tq2を設定するステップS12。設定されたトルク指令値Tqはモータ8へ出力されるステップS14。モータ8は、指令されたアシストトルクを出力する。Tq2は、下腿の揺動角速度に比例する大きさとなる。さらに、Tq2は、下腿が膝屈曲方向に揺動している間即ち、dAg>0の間だけ、与えられる。下腿が伸展方向に揺動しているか、あるいは揺動していないとき即ち、dAg≦0には、トルク指令値Tq=0が設定されるステップS8:NO、S13。即ちこのときは、アシストトルクは出力されない。Tq2は、ユーザの下腿が膝屈曲方向に揺動している間だけ、揺動角速度に比例した大きさで与えられる。即ち、膝折れが懸念される間だけ、ユーザを補助するように作用する。dAg≦0の場合、即ち、下腿が伸展方向に揺動しているか、あるいは揺動していないときは、ユーザが自力で自重を支えていることを示すから、そのような場合にはアシストトルクをユーザに加えない。これによって、歩行補助装置2は、ユーザの筋力回復即ちリハビリを促進する。アシストトルクTq2が出力されていても膝屈曲方向の揺動が止まらないこともあり得る。しかしその場合でも、少なくとも膝屈曲方向の揺動速度は遅くなる。膝折れに至るまでの時間が長くなるから、その間に介助者が補助すればよい。歩行補助装置2は、膝折れに抗するようにアシストトルクを加えながらも、できるだけユーザが筋力を使うことを促進する。なお、数1におけるTq1の条件Ag>AgH]は、Ag≧AgHであってもよいことに留意されたい。同様に、数1におけるTq2の条件dAg>0は、dAg≧0であってもよいことに留意されたい。重要な点は、リミット角度AgHが設けてあり、揺動角Agがリミット角度AgH以下あるいはリミット角度AgH未満の間は揺動角Agには依存しないが揺動角速度dAgに依存するアシストトルクが出力され、揺動角Agがそのリミット角度より大きくなった場合あるいは揺動角Agがリミット角度以上となった場合に、揺動角Agをリミット角度AgHまで強制的に戻すアシストトルクが出力される点にある。第2実施例次に、第2実施例の歩行補助装置を説明する。第2実施例の歩行補助装置は、構成は第1実施例の歩行補助装置2と同じであるので説明は省略する。従って、第2実施例の歩行補助装置の各部を示す符号も第1実施例のものを用いる。第2実施例の歩行補助装置は、コントローラ20が実施する制御アルゴリズムが、第1実施例のものと異なる。第2実施例の歩行補助装置のコントローラは、次の数式2に基づいて、アシストトルクTqを設定する。数2において、揺動角AgLとAgHは定数である。また、数2において、TqAとTqBは一定値である。TqAの大きさは、歩行補助装置だけでユーザの体重を支えるのに十分な大きさに設定される。TqBは、小さな値に設定される。さらに、数2において、Flagとは、揺動角Agがリミット角度AgHを超えたときに1に設定され、揺動角Agがゼロに戻ったときあるいは遊脚期に移行したときに0にリセットされる。Flagの技術的意味は図6のフローチャートにて説明する。数2のトルク指令値Tqをグラフに示したのが図5である。図5に示すように、第2実施例の場合、アシストトルクTqは揺動角に依存する。揺動角Agが第1角度AgL以下の場合、コントローラ20は、一定値Tq1第1アシストトルク=TqBをアシストトルクの指令として設定する。揺動角Agが第1角度AgLから第2角度AgHの間では、コントローラ20は、揺動角Agに比例したトルク指令値Tq2第2アシストトルクを設定する。揺動角Agが第2角度AgHよりも大きい場合、コントローラ20は一定値Tq3第3アシストトルク=TqAをトルク指令値として設定する。図5に示されているように、第3アシストトルクTq3は、揺動角Agが第2角度AgHに等しいときの第2アシストトルクTq2よりも大きい値に設定されている。なお、図5のグラフでは図示を省略しているが、数2が示すように、コントローラ20は、揺動角Agが一旦第2角度AgHを超えたら、揺動角Agがゼロに戻るまでは、トルク指令値を第3アシストトルクTq3=TqAに固定する。なお、モータ8は、コントローラ20が出力するアシストトルク指令値の通りにトルクを出力するので、トルク指令値=実際に出力されるアシストトルクである。図5のグラフのアシストトルク出力を実現する制御フローチャートを図6に示す。以下、図6のフローチャートに沿ってコントローラ20の処理を説明する。コントローラ20は、荷重センサ12のセンサデータを取得し、さらに、角度センサ6のセンサデータを取得するステップS22、S23。そしてコントローラ20は、荷重センサのセンサデータに基づいて歩行補助装置を装着した脚が立脚であるか否かを判定するステップS24。ここまでの処理は、第1実施例と同じである。なお、歩行補助装置を装着した脚が立脚状態ではない場合即ち、遊脚状態である場合、コントローラ20は、Flagにゼロをセットして処理を終了するステップS25。ステップS25におけるFlagへのゼロのセットは、いわゆるリセットに相当する。歩行補助装置を装着した脚が立脚の場合ステップS24:YES、処理はステップS26へ移行する。Flagは、揺動角Agが第2角度AgHを超えたら1にセットされるステップS26:YES、S27。また、1にセットされたFlagは、揺動角Agがゼロまで戻ったときにゼロにリセットされるステップS32:YES、S33。すなわち、Flagは、揺動角Agが第2角度AgHを超えると1にセットされ、その後は揺動角がゼロに戻るまで1に維持され、揺動角Agがゼロへ戻るとゼロにリセットされる。Flagが1の間は、トルク指令値TqにTq3=TqAが設定されるステップS28。即ち、コントローラ20は、揺動角Agが第2角度AgHよりも大きい場合は、第3アシストトルクTq3を出力するようにモータ8を制御する。ここで、第3アシストトルクTq3は、揺動角Agが第2角度AgHに等しいときの第2アシストトルクTq2よりも大きい一定値である。さらにコントローラ20は、一旦揺動角Agが第2角度AgHを超えた場合は、揺動角Agがゼロに戻るまで第3アシストトルクTq3を出力し続けるようにモータ8を制御する。Flagが1でなく、かつ、揺動角Agが第2角度AgH以下である場合、コントローラ20は、揺動角Agと第1角度AgLを比較するステップS34。揺動角Agが第1角度AgLよりも大きい場合、コントローラ20は、トルク指令値Tqに第2アシストトルクTq2を設定するステップS35。揺動角Agがゼロと第1角度AgLの間である場合は、コントローラ20は、トルク指令値Tqに第1アシストトルクTq1を設定するステップS36。設定されたトルク指令値Tqはモータ8へ出力されるステップS37。前述したように、モータ8は、指令値に従ってトルクを出力するから、トルク指令値=出力されるアシストトルクである。第2角度AgHは、第1実施例のリミット角度AgHと同じ大きさでよい。即ち、第2角度AgHには、それ以上膝が曲がると膝折れする可能性が高いと推定される角度が設定される。第2角度AgHの具体的な一例は20度である。第1角度AgLには、ユーザが体重を十分自力で支えることができるであろうと推測される角度に設定される。第1角度AgLの具体的な一例は、第2角度Agの半分の約10度である。第1角度AgL、第2角度AgHは、ユーザのリハビリを監督する療法士がユーザの状態を観察して定めるのがよい。図5、図6から明らかなとおり、第2実施例の歩行補助装置は、揺動角Agが小さい間は、一定値の小さい値である第1アシストトルクTq1を出力し、揺動角がやや大きくなるとAgL<Ag<AgHと、揺動角Agに比例する第2アシストトルクTq2を出力する。第2アシストトルクTq2は、揺動角Agが大きくなるほどに大きくなるので、ユーザは安心して膝を屈曲させることができる。この歩行補助装置は、さらに、揺動角Agが第2角度AgHを超えると、ユーザの体重を支えるのに十分な一定の第3アシストトルクTq3を出力する。歩行補助装置は、揺動角Agが一旦第2角度AgHを超えた後は、揺動角Agがゼロに戻るまで、第3アシストトルクを出力し続ける。揺動角Ag=ゼロは、ユーザが直立した状態に相当する。即ち、一旦膝折れの可能性が高まった場合Ag>AgH、歩行補助装置は、ユーザの脚を直立状態まで戻し、安定した姿勢に確実に戻す。上記アルゴリズムにより、ユーザは安心してリハビリ歩行訓練を行うことができる。実施例の歩行補助装置に関する留意点を述べる。ユーザの下腿が膝伸展方向に揺動している間はアシストトルクを出力しないとは、膝伸展方向に僅かなトルクを出力させ、ユーザの脚に沿って装着されるデバイスの機械抵抗例えば下腿リンクと大腿リンクのジョイントの回転抵抗をキャンセルする場合を含む。下腿リンクと大腿リンクの間の回転抵抗が非常に小さい場合には、単純にアクチュエータへの電力供給をカットすることであってもよい。例えば、下腿リンクを揺動させるアクチュエータが、回転慣性モーメントの小さなモータが下腿リンクの回転軸に直結しているダイレクトドライブ方式である場合は、モータへの電力供給を遮断するだけでもよい。実施例の歩行補助装置は、アクチュエータとしてモータを採用しているが、アクチュエータはモータに限られない。油圧、水圧、あるいは空気圧を利用するアクチュエータであってもよい。実施例の歩行補助装置は、歩行動作をスムーズに行うことができない非健常者を対象ユーザとする。歩行補助装置は、そのようなユーザが歩行動作のリハビリテーションを行う際にユーザに取り付けられる。ユーザに装着された歩行補助装置は、ユーザが膝折れしそうになると大きなアシストトルクを出力し、ユーザが崩れ落ちることを防止する。その一方で、第1実施例の歩行補助装置は膝伸展方向に揺動している間はアシストトルクを出力せず、また、第2実施例の歩行補助装置は揺動角が小さいうちは小さなアシストトルクを出力するように構成されており、ユーザの筋力回復をできるだけ妨げないように配慮されている。本明細書が開示する歩行補助装置は、歩行動作が不自由な非健常者のリハビリに適している。しかし、本明細書が開示する歩行補助装置は、高齢者に適用しても効果を奏するものであるし、例えば重量物を運搬する場合など、健常者が使っても効果を奏するものである。以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。