IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社国際電気通信基礎技術研究所の特許一覧

特許7433561モデル生成方法、モデル生成装置、位相推定方法、制御方法、及び制御装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-02-08
(45)【発行日】2024-02-19
(54)【発明の名称】モデル生成方法、モデル生成装置、位相推定方法、制御方法、及び制御装置
(51)【国際特許分類】
   A61B 5/11 20060101AFI20240209BHJP
   A61H 3/00 20060101ALI20240209BHJP
【FI】
A61B5/11 230
A61H3/00 Z
【請求項の数】 17
(21)【出願番号】P 2023564116
(86)(22)【出願日】2023-08-03
(86)【国際出願番号】 JP2023028479
【審査請求日】2023-10-19
(31)【優先権主張番号】P 2022125530
(32)【優先日】2022-08-05
(33)【優先権主張国・地域又は機関】JP
【国等の委託研究の成果に係る記載事項】(出願人による申告)AMED先進:令和3年度、国立研究開発法人日本医療研究開発機構、「医療機器などにおける先進的研究開発・開発体制強靭化事業(基盤技術開発プロジェクト)」「下肢装具から脱却するためのリハビリテーションを支援する歩行介入エンジンの研究開発」、令和4年度「医療機器等における先進的研究開発・開発体制強靭化事業(基盤技術開発プロジェクト)」「生き生きとした歩行を取り戻すための足関節ロボットの創出を目指した研究開発」委託研究開発、産業技術力強化法第17条の適用を受ける特許出願
【早期審査対象出願】
(73)【特許権者】
【識別番号】393031586
【氏名又は名称】株式会社国際電気通信基礎技術研究所
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】野田 智之
(72)【発明者】
【氏名】寺前 達也
【審査官】蔵田 真彦
(56)【参考文献】
【文献】米国特許出願公開第2015/0190923(US,A1)
【文献】国際公開第2022/053934(WO,A1)
【文献】中国特許出願公開第114170679(CN,A)
【文献】国際公開第2019/198298(WO,A1)
【文献】特開2016-214504(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A61B 5/11
A61H 3/00-3/06
JSTPlus/JMEDPlus/JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
ユーザの1周期以上の歩行をセンサにより計測することで生成されたセンサデータを取得するステップと、
基準モデルを使用して、取得された前記センサデータにおいて、前記歩行の位相の推定値を算出するステップと、
前記センサデータに表れる前記歩行の周期に基づいて、算出される前記推定値に対応する前記歩行の位相の理想値を算出するステップと、
前記歩行の位相の前記推定値及び前記理想値の間の誤差をモデル化することにより、補正モデルを生成するステップと、
を実行する、
モデル生成方法。
【請求項2】
前記センサデータは、複数周期の前記歩行を計測することで生成されたものであり、
前記コンピュータは、前記位相の推定値を算出するステップを実行した後に、
算出された前記位相の推定値のばらつきを算出するステップ、及び
前記推定値のばらつきの大きさが閾値を超えている場合に、アラートを通知するステップ、
を更に実行する、
請求項1に記載のモデル生成方法。
【請求項3】
前記センサデータは、前記ユーザがアシストを受けた状態で前記歩行を計測することで生成されたものである、
請求項1又は2に記載のモデル生成方法。
【請求項4】
前記コンピュータは、前記センサデータを取得するステップ、前記位相の推定値を算出するステップ、前記位相の理想値を算出するステップ、及び前記補正モデルを生成するステップを含む生成サイクルを繰り返し実行する、
請求項1又は2に記載のモデル生成方法。
【請求項5】
2回目以降の生成サイクルにおける前記位相の推定値を算出するステップでは、前記コンピュータは、前回の生成サイクルで使用された基準モデルを前回の生成サイクルで生成された補正モデルにより補正することで得られた補正済み基準モデルを使用して、今回の生成サイクルで取得されたセンサデータにおいて、前記歩行の位相の推定値を算出する、請求項4に記載のモデル生成方法。
【請求項6】
前記コンピュータは、前記生成サイクルを実行した後、オペレータからの要求に応じて、次の生成サイクルを実行する、
請求項4に記載のモデル生成方法。
【請求項7】
ユーザの1周期以上の歩行をセンサにより計測することで生成されたセンサデータを取得するように構成されるデータ取得部と、
基準モデルを使用して、取得された前記センサデータにおいて、前記歩行の位相の推定値を算出するように構成される位相推定部と、
前記センサデータに表れる前記歩行の周期に基づいて、算出される前記推定値に対応する前記歩行の位相の理想値を算出するように構成される算出部と、
前記歩行の位相の前記推定値及び前記理想値の間の誤差をモデル化することにより、補正モデルを生成するように構成される生成部と、
を備える、
モデル生成装置。
【請求項8】
コンピュータが、
ユーザの歩行に対するセンサのセンサ値を取得するステップと、
基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するステップと、
補正モデルを使用して、算出された前記位相の推定値から誤差を推定するステップと、
推定された前記誤差により、算出された前記位相の推定値を補正するステップと、
補正された前記位相の推定値に関する情報を出力するステップと、
を実行し、
前記補正モデルは、前記ユーザの1周期以上の歩行を前記センサにより計測することで生成された学習用のセンサデータを使用して、歩行の位相の推定値及び理想値の間の誤差をモデル化することで生成されたものである、
位相推定方法。
【請求項9】
前記コンピュータが、
前記位相の推定に関する遅延による前記位相のずれを特定するステップと、
補正された前記位相の推定値を特定された前記ずれにより更に補正するステップと、
を更に実行し、
補正された前記位相の推定値に関する情報は、更に補正された前記位相の推定値に関する情報により構成される、
請求項8に記載の位相推定方法。
【請求項10】
コンピュータが、
アシストパターンを設定するステップと、
ユーザの歩行に対するセンサのセンサ値を取得するステップと、
基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するステップと、
補正モデルを使用して、算出された前記位相の推定値から誤差を推定するステップと、
推定された前記誤差により、算出された前記位相の推定値を補正するステップと、
設定された前記アシストパターンに従って、補正された前記位相の推定値から歩行アシスト装置のアシスト量を決定するステップと、
決定された前記アシスト量を出力するステップと、
を実行し、
前記補正モデルは、前記ユーザの1周期以上の歩行を前記センサにより計測することで生成された学習用のセンサデータを使用して、歩行の位相の推定値及び理想値の間の誤差をモデル化することで生成されたものである、
制御方法。
【請求項11】
前記アシストパターンは、1つ以上の筋モジュールにより構成され、
前記筋モジュールは、筋シナジーを再現するように、複数の周期関数を組み合わせることにより構成される、
請求項10に記載の制御方法。
【請求項12】
前記歩行アシスト装置は、空気圧方式の人工筋肉の出力により前記歩行をアシストするように構成される、
請求項10に記載の制御方法。
【請求項13】
前記コンピュータが、
前記位相の推定に関する遅延による前記位相のずれを特定するステップと、
補正された前記位相の推定値を特定された前記ずれにより更に補正するステップと、
を更に実行し、
補正された前記位相の推定値から前記アシスト量を決定することは、更に補正された前記位相の推定値から前記アシスト量を決定することにより構成される、
請求項10に記載の制御方法。
【請求項14】
前記コンピュータは、前記センサ値を取得するステップ、前記位相の推定値を算出するステップ、前記誤差を推定するステップ、前記位相の推定値を補正するステップ、前記アシスト量を決定するステップ、及び前記アシスト量を出力するステップを含む推定サイクルを繰り返し実行し、
前記コンピュータは、前記ユーザの1周期以上の歩行に対して前記推定サイクルを繰り返し実行したことに応じて、
前記歩行の周期に基づいて、補正された前記推定値に対する前記歩行の位相の理想値を算出するステップ、
補正された前記推定値及び前記理想値の間の誤差を算出するステップ、及び
算出された誤差に関する情報を出力するステップ、
を更に実行する、
請求項10から13のいずれか1項に記載の制御方法。
【請求項15】
前記コンピュータは、前記センサ値を取得するステップ、前記位相の推定値を算出するステップ、前記誤差を推定するステップ、前記位相の推定値を補正するステップ、前記アシスト量を決定するステップ、及び前記アシスト量を出力するステップを含む推定サイクルを繰り返し実行し、
2回目以降の推定サイクルにおける前記アシスト量を決定するステップでは、前記コンピュータは、
前回の推定サイクルでの補正された前記推定値及び今回の推定サイクルでの補正された前記推定値の間の変化量を算出し、
算出された前記変化量が許容条件を満たすか否かを判定し、
前記変化量が許容条件を満たす場合、前記今回の推定サイクルでの補正された前記推定値から、今回の推定サイクルでのアシスト量を決定し、並びに、
前記変化量が許容条件を満たさない場合、前記今回の推定サイクルでの補正された前記推定値に依らず、前記前回の推定サイクルでの補正された前記推定値に基づいて、今回の推定サイクルでのアシスト量を決定する、
請求項10から13のいずれか1項に記載の制御方法。
【請求項16】
アシストパターンを設定するように構成される設定部と、
ユーザの歩行に対するセンサのセンサ値を取得するように構成される取得部と、
基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するように構成される位相推定部と、
補正モデルを使用して、算出された前記位相の推定値から誤差を推定するように構成される誤差推定部と、
推定された前記誤差により、算出された前記位相の推定値を補正するように構成される補正部と、
設定された前記アシストパターンに従って、補正された前記位相の推定値からアシスト量を決定し、かつ決定された前記アシスト量を出力するように構成される出力部と、
を備え、
前記補正モデルは、前記ユーザの1周期以上の歩行を前記センサにより計測することで生成された学習用のセンサデータを使用して、歩行の位相の推定値及び理想値の間の誤差をモデル化することで生成されたものである、
制御装置。
【請求項17】
コンピュータが、
ユーザの歩行に対するセンサのセンサ値を取得するステップと、
基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するステップと、
補正モデルを使用して、算出された前記位相の推定値から誤差を推定するステップと、
推定された前記誤差により、算出された前記位相の推定値を補正するステップと、
補正された前記位相の推定値から制御対象装置の駆動量を決定するステップと、
決定された駆動量を出力するステップと、
を実行し、
前記補正モデルは、前記ユーザの1周期以上の歩行を前記センサにより計測することで生成された学習用のセンサデータを使用して、歩行の位相の推定値及び理想値の間の誤差をモデル化することで生成されたものである、
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モデル生成方法、モデル生成装置、位相推定方法、制御方法、及び制御装置に関する。
【背景技術】
【0002】
例えば、リハビリテーションの場面において、パターンに応じて歩行をアシストするために、歩行周期における位相をリアルタイムに推定することがある。一般的には、歩行の位相は、歩行の1サイクルの時間を0~2πの範囲の正規化した連続値により定義される。歩行した後に歩行周期を分析することは、あるヒールストライクから次のヒールストライクまでの時間を分割すればよいため、簡単である。一方で、リアルタイムに歩行の位相を推定することは、人間の歩行には個人差があるため、容易ではない。そこで、従来の方法では、人間の歩行を近似したモデルを用いて、歩行の位相を推定していた(例えば、特許文献1、2)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-217039号公報
【文献】特開2015-008960号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の方法よれば、近似モデルを用いることで、位相推定にかかる計算量を低減することができる。しかしながら、本件発明者は、従来の方法には次のような問題点があることを見出した。すなわち、従来の方法では、近似モデルを使用するため、位相の推定値と真値との間には誤差が生じてしまう。
【0005】
図1は、近似モデルを使用した場合に生じる誤差の一例を示す。上記のとおり、あるヒールストライクから次のヒールストライクまでの時間を分割することで、歩行における位相の真値を算出することができる。図1の誤差は、各サンプリング時間において、これにより得られる真値を近似モデルの出力(位相の推定値)に対応付けることで得られたものである。なお、図1のデータは、後述する実験例と同一の条件により得られたものである。
【0006】
図1の位相空間において、近似モデルの出力は、0~2πの範囲で真値に対して直線であることが理想的である。しかしながら、人の歩行には個人差がある。そのため、誤差が生じないように、近似モデルのパラメータを調整することは困難である。図1に示されるとおりに、近似モデルの出力は、真値に対して歪んでしまう。また、近似モデルを個別に作成するようにすると、コストが高くなってしまう。したがって、従来の方法では、簡易かつリアルタイムに歩行の位相を精度よく推定することは困難であった。
【0007】
なお、歩行の位相を精度よく推定できないことにより、様々な問題点が生じ得る。一例では、上記歩行アシストの場面では、熟練の理学療法士は、位相空間上において、歩行アシストのパターンを定義し、かつ最適化する。推定される位相に誤差が生じていると、実行されるアシストの時系列パターンが変化してしまう。すなわち、理学療法士の意図通りに歩行アシストを遂行することが困難になってしまう。一方で、歩行速度に応じて一定量で進むことを前提にアシストする方法が存在する。しかしながら、この方法では、脳卒中麻痺のように歩行の不安定な患者に対して、歩行アシストが入るタイミングが早すぎたり遅すぎたりすることになってしまい、歩行速度又は歩幅が変化しやすいユーザに対して適切にアシストすることが困難である。したがって、適切なタイミングでの歩行アシストを実現するために、簡易かつリアルタイムに歩行の位相を精度よく推定可能な技術が求められている。
【0008】
本発明は、一側面では、このような点を考慮してなされたものであり、その目的は、簡易かつリアルタイムに歩行の位相を精度よく推定するための技術を提供することである。
【課題を解決するための手段】
【0009】
本発明は、上述した課題を解決するために、以下の構成を採用する。なお、以下の発明の構成は適宜組み合わせ可能である。
【0010】
本発明の一側面に係るモデル生成方法は、コンピュータが、ユーザの1周期以上の歩行をセンサにより計測することで生成されたセンサデータを取得するステップと、基準モデルを使用して、取得された前記センサデータにおいて、前記歩行の位相の推定値を算出するステップと、前記センサデータに表れる前記歩行の周期に基づいて、算出される前記推定値に対応する前記歩行の位相の理想値を算出するステップと、前記歩行の位相の前記推定値及び前記理想値の間の誤差をモデル化することにより、補正モデルを生成するステップと、を実行する情報処理方法である。
【0011】
当該構成において、補正モデルを生成することは、得られたセンサデータの位相の推定値と理想値との間の誤差をモデル化することに過ぎない。上記のとおり、歩行をした後に、歩行における位相の真値(理想値)を算出することは容易である。そのため、ユーザ毎の補正モデルを容易に生成可能である。また、ユーザの状況等の事情に応じて、精度よく位相を推定可能なように、補正モデルを再度生成することも容易である。更に、生成された補正モデルは、基準モデルの推定値と誤差との間の対応関係を示すように構成されているに過ぎないため、補正モデルの演算は簡易である。したがって、当該構成によれば、生成された補正モデルにより、簡易かつリアルタイムに歩行の位相を精度よく推定することができる。
【0012】
上記一側面に係るモデル生成方法において、前記センサデータは、複数周期の前記歩行を計測することで生成されたものであってよい。前記コンピュータは、前記位相の推定値を算出するステップを実行した後に、算出された前記位相の推定値のばらつきを算出するステップ、及び前記推定値のばらつきの大きさが閾値を超えている場合に、アラートを通知するステップ、を更に実行してよい。得られたセンサデータにおいて、位相の推定値がばらついている場合、理想値との間の誤差にもばらつきが生じるため、生成される補正モデルの精度が悪化してしまう可能性がある。これに対して、当該構成によれば、そのような補正モデルの精度が悪化する可能性があることをアラートすることができる。
【0013】
上記各一側面に係るモデル生成方法において、前記センサデータは、前記ユーザがアシストを受けた状態で前記歩行を計測することで生成されたものであってよい。当該構成によれば、ユーザが歩行のアシストを受ける場面で、補正モデルを生成することができる。生成された補正モデルを使用することで、簡易かつリアルタイムに歩行の位相を精度よく推定し、適切なタイミングで歩行のアシストを実行することができる。
【0014】
上記各一側面に係るモデル生成方法において、前記コンピュータは、前記センサデータを取得するステップ、前記位相の推定値を算出するステップ、前記位相の理想値を算出するステップ、及び前記補正モデルを生成するステップを含む生成サイクルを繰り返し実行してよい。当該構成によれば、生成サイクルの実行を繰り返すことで、新たな補正モデルを繰り返し生成することができる。一例では、ユーザの歩行動作の変化に対応して、新たな補正モデルを生成することで、ユーザの歩行の位相を継続的に精度よく推定可能にすることができる。
【0015】
上記一側面に係るモデル生成方法において、2回目以降の生成サイクルにおける前記位相の推定値を算出するステップでは、前記コンピュータは、前回の生成サイクルで使用された基準モデルを前回の生成サイクルで生成された補正モデルにより補正することで得られた補正済み基準モデルを使用して、今回の生成サイクルで取得されたセンサデータにおいて、前記歩行の位相の推定値を算出してよい。当該構成によれば、補正モデルによる基準モデルの補正、及び補正された基準モデルに対する補正モデルの生成を繰り返すことで、簡易かつリアルタイムに歩行の位相を精度よく推定可能なモデル(基準モデル、補正モデル)を得ることができる。
【0016】
上記各一側面に係るモデル生成方法において、前記コンピュータは、前記生成サイクルを実行した後、オペレータからの要求に応じて、次の生成サイクルを実行してよい。時間の経過により、ユーザの歩行が変化することで、生成された補正モデルがユーザに適合しなくなることがある。一例では、補正モデルを使用した状態で歩行のアシスト(リハビリテーション)を所定時間行った場合である。この場合、ユーザの歩行が改善されることにより、リハビリテーション前に作成した補正モデルがユーザに適合しなくなり、誤差が新たに生じる可能性がある。当該構成では、このような場合に、オペレータの要求に応じて、補正モデルを再度生成することができる。
【0017】
本発明の形態は、上記モデル生成方法に限られなくてよい。本発明の一側面は、上記いずれかの形態に係るモデル生成方法により生成された補正モデルを使用して、歩行の位相の推定値を補正するステップを含む情報処理方法であってよい。
【0018】
一例として、本発明の一側面に係る位相推定方法は、コンピュータが、ユーザの歩行に対するセンサのセンサ値を取得するステップと、基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するステップと、補正モデルを使用して、算出された前記位相の推定値から誤差を推定するステップと、推定された前記誤差により、算出された前記位相の推定値を補正するステップと、補正された前記位相の推定値に関する情報を出力するステップと、を実行する情報処理方法であってよい。前記補正モデルは、前記ユーザの1周期以上の歩行を前記センサにより計測することで生成された学習用のセンサデータを使用して、歩行の位相の推定値及び理想値の間の誤差をモデル化することで生成されたものであってよい。前記補正モデルは、上記いずれかの形態に係るモデル生成方法により生成されたものであってよい。当該構成によれば、補正モデルを使用することにより、簡易かつリアルタイムに歩行の位相を精度よく推定することができる。
【0019】
上記一側面に係る位相推定方法において、前記コンピュータが、前記位相の推定に関する遅延による前記位相のずれを特定するステップと、補正された前記位相の推定値を特定された前記ずれにより更に補正するステップと、を更に実行してもよい。補正された前記位相の推定値に関する情報は、更に補正された前記位相の推定値に関する情報により構成されてよい。当該構成によれば、遅延の影響を低減することができる。
【0020】
なお、補正された位相の推定値に関する情報を出力することは、補正された位相の推定値をそのまま出力する(例えば、音声出力、画像表示等)ことを含んでよい。また、補正された位相の推定値に関する情報を出力することは、得られた推定値に基づいて情報処理を実行すること、及び位相の推定値に関する情報として当該情報処理の実行結果を出力することを含んでよい。情報処理を実行した結果の出力は、位相の推定値に応じて制御対象装置の動作を制御することを含んでよい。制御対象装置は、例えば、歩行アシスト装置、電気刺激装置、賦活計測装置等の介入装置であってよい。
【0021】
一例として、本発明の一側面に係る制御方法は、コンピュータが、ユーザの歩行に対するセンサのセンサ値を取得するステップと、基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するステップと、補正モデルを使用して、算出された前記位相の推定値から誤差を推定するステップと、推定された前記誤差により、算出された前記位相の推定値を補正するステップと、補正された前記位相の推定値から制御対象装置の駆動量を決定するステップと、決定された駆動量を出力するステップと、を実行してよい。前記補正モデルは、前記ユーザの1周期以上の歩行を前記センサにより計測することで生成された学習用のセンサデータを使用して、歩行の位相の推定値及び理想値の間の誤差をモデル化することで生成されたものであってよい。これにより、ユーザの歩行に応じて、制御対象装置を適切なタイミングで駆動することができる。
【0022】
上記一側面に係る制御方法において、前記制御対象装置は、歩行アシスト装置、電気刺激装置、又は賦活計測装置であってよい。制御対象装置の駆動量を決定することは、歩行アシスト装置のアシスト量を決定すること、電気刺激装置による電気刺激の量を決定すること、又は賦活計測装置における電気刺激の量を決定することにより構成されてよい。量を決定することは、与えるか否かを決定することを含んでよい。
【0023】
上記一側面に係る制御方法において、前記コンピュータが、前記位相の推定に関する遅延による前記位相のずれを特定するステップと、補正された前記位相の推定値を特定された前記ずれにより更に補正するステップと、を更に実行してもよい。補正された前記位相の推定値から制御対象装置の駆動量を決定することは、更に補正された前記位相の推定値から制御対象装置の駆動量を決定することにより構成されてよい。これにより、より適切なタイミングで制御対象装置を駆動することができる。
【0024】
他の一例として、本発明の一側面に係る制御方法は、コンピュータが、アシストパターンを設定するステップと、ユーザの歩行に対するセンサのセンサ値を取得するステップと、基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するステップと、補正モデルを使用して、算出された前記位相の推定値から誤差を推定するステップと、推定された前記誤差により、算出された前記位相の推定値を補正するステップと、設定された前記アシストパターンに従って、補正された前記位相の推定値から歩行アシスト装置のアシスト量を決定するステップと、決定された前記アシスト量を出力するステップと、を実行する情報処理方法であってよい。前記補正モデルは、前記ユーザの1周期以上の歩行を前記センサにより計測することで生成された学習用のセンサデータを使用して、歩行の位相の推定値及び理想値の間の誤差をモデル化することで生成されたものであってよい。前記補正モデルは、上記いずれかの形態に係るモデル生成方法により生成されたものであってよい。当該構成によれば、補正モデルを使用することにより、簡易かつリアルタイムに歩行の位相を精度よく推定することができる。これにより、ユーザに対して適切なタイミングで歩行のアシストを実行することができる。
【0025】
上記一側面に係る制御方法において、前記アシストパターンは、1つ以上の筋モジュールにより構成されてよい。前記筋モジュールは、筋シナジーを再現するように、複数の周期関数を組み合わせることにより構成されてよい。当該構成によれば、筋モジュールが上記のように構成されていることで、容易な演算により筋シナジーに即したアシストパターンを実現することができる。加えて、1つ以上の筋モジュールの選択により、筋シナジーに即したアシストパターンを容易に作成することができる。
【0026】
上記一側面に係る制御方法において、前記歩行アシスト装置は、空気圧方式の人工筋肉の出力により前記歩行をアシストするように構成されてよい。アシストパターンが平滑化されていなくても、空気圧方式の人工筋肉のダイナミクス(例えば、モータドライバの遅延遅れ等)により、実際に与えられるアシスト量は平滑化されたものとなる。そのため、当該構成によれば、演算量の増大を招くことなく、スムーズなアシストを実施することができる。
【0027】
上記一側面に係る制御方法において、前記コンピュータが、前記位相の推定に関する遅延による前記位相のずれを特定するステップと、補正された前記位相の推定値を特定された前記ずれにより更に補正するステップと、を更に実行してもよい。補正された前記位相の推定値から歩行アシスト装置のアシスト量を決定することは、更に補正された前記位相の推定値から歩行アシスト装置のアシスト量を決定することにより構成されてよい。これにより、より適切なタイミングで歩行のアシストを実行することができる。
【0028】
上記各一側面に係る制御方法において、前記コンピュータは、前記センサ値を取得するステップ、前記位相の推定値を算出するステップ、前記誤差を推定するステップ、前記位相の推定値を補正するステップ、前記アシスト量を決定するステップ、及び前記アシスト量を出力するステップを含む推定サイクルを繰り返し実行してよい。前記コンピュータは、前記ユーザの1周期以上の歩行に対して前記推定サイクルを繰り返し実行したことに応じて、前記歩行の周期に基づいて、補正された前記推定値に対する前記歩行の位相の理想値を算出するステップ、補正された前記推定値及び前記理想値の間の誤差を算出するステップ、及び算出された誤差に関する情報を出力するステップ、を更に実行してよい。ユーザが歩行のアシストを繰り返し受けることで、ユーザの歩行が変化する(典型的な要因の一例は、アシストによりユーザの歩行が改善すること)場合がある。当該構成によれば、このような場合に、補正された推定値及び理想値の間の誤差を算出することで、使用している補正モデルがユーザに適合しなくなっているかどうかを評価することができる。
【0029】
上記各一側面に係る制御方法において、前記コンピュータは、前記センサ値を取得するステップ、前記位相の推定値を算出するステップ、前記誤差を推定するステップ、前記位相の推定値を補正するステップ、前記アシスト量を決定するステップ、及び前記アシスト量を出力するステップを含む推定サイクルを繰り返し実行してよい。2回目以降の推定サイクルにおける前記アシスト量を決定するステップでは、前記コンピュータは、前回の推定サイクルでの補正された前記推定値及び今回の推定サイクルでの補正された前記推定値の間の変化量を算出し、算出された前記変化量が許容条件を満たすか否かを判定し、前記変化量が許容条件を満たす場合、前記今回の推定サイクルでの補正された前記推定値から、今回の推定サイクルでのアシスト量を決定し、並びに、前記変化量が許容条件を満たさない場合、前記今回の推定サイクルでの補正された前記推定値に依らず、前記前回の推定サイクルでの補正された前記推定値に基づいて、今回の推定サイクルでのアシスト量を決定してよい。位相の推定を繰り返し実行する間に、例えば、想定される歩行動作と異なる歩行動作をユーザが行うこと等に起因して、センサ値から算出される位相の推定値が急激に変化したり、遡ったりする場合がある。当該構成によれば、補正された位相の推定値が許容条件を満たすか否かを判定することにより、そのような位相の推定値の想定外の挙動を監視することができる。そして、補正された位相の推定値が許容条件を満たさない変化をした場合に、その推定値を使用するのではなく、前回の推定サイクルの推定結果を使用することで、適正なアシストを実行することができる。
【0030】
上記各形態に係るモデル生成方法、位相推定方法及び制御方法それぞれの別の態様として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理装置であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【0031】
例えば、本発明の一側面に係るモデル生成装置は、ユーザの1周期以上の歩行をセンサにより計測することで生成されたセンサデータを取得するように構成されるデータ取得部と、基準モデルを使用して、取得された前記センサデータにおいて、前記歩行の位相の推定値を算出するように構成される位相推定部と、前記センサデータに表れる前記歩行の周期に基づいて、算出される前記推定値に対応する前記歩行の位相の理想値を算出するように構成される算出部と、前記歩行の位相の前記推定値及び前記理想値の間の誤差をモデル化することにより、補正モデルを生成するように構成される生成部と、を備えてよい。
【0032】
また、例えば、本発明の一側面に係る位相推定装置は、ユーザの歩行に対するセンサのセンサ値を取得するように構成される取得部と、基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するように構成される位相推定部と、補正モデルを使用して、算出された前記位相の推定値から誤差を推定するように構成される誤差推定部と、推定された前記誤差により、算出された前記位相の推定値を補正するように構成される補正部と、補正された前記位相の推定値に関する情報を出力するように構成される出力部と、を備えてよい。
【0033】
また、例えば、本発明の一側面に係る制御装置は、アシストパターンを設定するように構成される設定部と、ユーザの歩行に対するセンサのセンサ値を取得するように構成される取得部と、基準モデルを使用して、取得された前記センサ値から前記歩行の位相の推定値を算出するように構成される位相推定部と、補正モデルを使用して、算出された前記位相の推定値から誤差を推定するように構成される誤差推定部と、推定された前記誤差により、算出された前記位相の推定値を補正するように構成される補正部と、設定された前記アシストパターンに従って、補正された前記位相の推定値からアシスト量を決定し、かつ決定された前記アシスト量を出力するように構成される出力部と、を備えてよい。
【発明の効果】
【0034】
本発明によれば、簡易かつリアルタイムに歩行の位相を精度よく推定するための技術を提供することができる。
【図面の簡単な説明】
【0035】
図1図1は、近似モデルを使用した場合に生じる誤差の一例を示す。
図2図2は、本発明が適用される場面の一例を模式的に示す。
図3図3は、実施の形態に係るモデル生成装置のハードウェア構成の一例を模式的に示す。
図4図4は、実施の形態に係る位相推定装置のハードウェア構成の一例を模式的に示す。
図5図5は、実施の形態に係るモデル生成装置のソフトウェア構成の一例を模式的に示す。
図6図6は、実施の形態に係る位相推定装置のソフトウェア構成の一例を模式的に示す。
図7図7は、実施の形態に係るモデル生成装置の処理手順の一例を示すフローチャートである。
図8図8は、実施の形態に係る補正モデルの一例を示す。
図9図9は、実施の形態に係る位相推定装置の処理手順の一例を示すフローチャートである。
図10A図10Aは、実施の形態に係る補正モデルを使用して、補正された位相の推定値を算出する処理の過程の一例を模式的に示す。
図10B図10Bは、実施の形態に係る補正モデルによる補正前後で得られる位相の推定値の一例を示す。
図11図11は、本発明が適用される他の場面(歩行アシスト装置の制御装置)の一例を模式的に示す。
図12図12は、変形例に係る制御装置のハードウェア構成の一例を模式的に示す。
図13図13は、変形例に係る制御装置のソフトウェア構成の一例を模式的に示す。
図14図14は、変形例に係る制御装置の処理手順の一例を示すフローチャートである。
図15図15は、変形例に係る制御装置におけるアシストパターンを構成する筋モジュールの一例を模式的に示す。
図16図16は、本発明が適用される他の場面(電気刺激装置の制御装置)の一例を模式的に示す。
図17図17は、本発明が適用される他の場面(賦活計測装置の制御装置)の一例を模式的に示す。
図18図18は、本発明が適用される他の場面(歩行異常の監視装置)の一例を模式的に示す。
図19図19は、位相の推定に関する遅延を説明するための図である。
図20図20は、実施の形態に係る補正モデルを使用して、補正された位相の推定値を算出する処理の過程の他の一例を模式的に示す。
図21A図21Aは、第1被験者に対するリアルタイムの位相推定実験の結果を示す。
図21B図21Bは、第2被験者に対するリアルタイムの位相推定実験の結果を示す。
【発明を実施するための形態】
【0036】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良及び変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0037】
§1 適用例
図2は、本発明を適用した場面の一例を模式的に示す。図2に示されるとおり、本実施形態に係る推定システムは、モデル生成装置1及び位相推定装置2を備える。
【0038】
[生成段階]
本実施形態に係るモデル生成装置1は、ユーザZに対して補正モデル45を生成するように構成された1台以上のコンピュータである。本実施形態では、モデル生成装置1は、ユーザZの1周期以上の歩行をセンサSにより計測することで生成されたセンサデータ31を取得する。モデル生成装置1は、基準モデル40を使用して、取得されたセンサデータ31において、歩行の位相の推定値33を算出する。モデル生成装置1は、センサデータ31に表れる歩行の周期に基づいて、算出される推定値33に対する歩行の位相の理想値(真値)35を算出する。モデル生成装置1は、歩行の位相の推定値33及び理想値35の間の誤差をモデル化することにより、補正モデル45を生成する。生成された補正モデル45は、任意のタイミングで位相推定装置2に提供されてよい。
【0039】
[推定段階]
一方、本実施形態に係る位相推定装置2は、基準モデル40及び補正モデル45を使用して、ユーザZの歩行の位相をリアルタイムに推定するように構成された1台以上のコンピュータである。本実施形態では、位相推定装置2は、ユーザZの歩行に対するセンサSのセンサ値51を取得する。位相推定装置2は、基準モデル40を使用して、取得されたセンサ値51から歩行の位相の推定値53を算出する。位相推定装置2は、補正モデル45を使用して、算出された位相の推定値53から誤差55を推定する。補正モデル45は、モデル生成装置1において、学習用のセンサデータ31を使用して、歩行の位相の推定値33及び理想値35の間の誤差をモデル化することで生成されたものである。位相推定装置2は、推定された誤差55により、算出された位相の推定値53を補正する。これにより、位相推定装置2は、補正された位相の推定値57を得る。位相推定装置2は、補正された位相の推定値57に関する情報を出力する。なお、本実施形態では、説明の便宜上、モデル生成装置1により補正モデル45を生成する段階を生成段階と称し、位相推定装置2により歩行の位相を推定する段階を推定段階と称する。
【0040】
[特徴]
以上のとおり、本実施形態において、補正モデル45を生成することは、センサデータ31を使用して、基準モデル40の推定結果(推定値33)と真値(理想値35)との間の誤差をモデル化することに過ぎない。センサデータ31に表れる歩行の周期に基づいて、歩行の位相の理想値35(真値)を算出することは容易である。そのため、ユーザZ毎に補正モデル45を容易に作成可能である。また、ユーザZの状況等の事情に応じて、歩行の位相を精度よく推定可能なように、補正モデル45を再度生成することも容易である。更に、生成される補正モデル45は、基準モデル40の推定値と誤差との間の対応関係を示す(すなわち、推定値から誤差を算出する)ように構成されているに過ぎないため、補正モデル45の演算は容易である。したがって、本実施形態に係るモデル生成装置1によれば、基準モデル40の出力を補正し、簡易かつリアルタイムに歩行の位相を精度よく推定可能にする補正モデル45を生成することができる。本実施形態に係る位相推定装置2では、そのような補正モデル45を基準モデル40と共に使用することで、簡易かつリアルタイムにユーザZの歩行の位相を精度よく推定することができる。
【0041】
(センサ)
なお、センサSは、人物(ユーザZ)の歩行動作を捕捉可能であれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。センサSは、例えば、足底センサ、撮像装置、モーションキャプチャ、筋電センサ、加速度センサ、ジャイロセンサ、圧力分布センサ、これらの組み合わせ等であってよい。センサSは、複数種類のセンサにより構成されてもよい。足底は、地面に接する足の面である。足底センサは、歩行時に人物の足の面から作用する力を測定するように構成される。足底センサは、例えば、荷重センサ、フォースセンシングレジスタ、ロードセル、静電容量式の力センサ等により構成されてよい。
【0042】
生成段階で使用されるセンサデータ31は、ユーザZによる1度以上の歩行動作をセンサSにより計測することで得られてよい。典型的な例では、任意のサンプリング間隔でユーザZの歩行を計測することにより、センサデータ31は、1周期の歩行に対して複数のセンサ値を含むように構成されてよい。センサデータ31に含まれるセンサ値の数は、計測時間、サンプリング間隔等に応じて適宜決定されてよい。一方、推定段階では、センサ値51は、歩行の位相を推定するタイミングにおいて、ユーザZの歩行動作をセンサSにより計測することで得られてよい。センサ値51を得たことに応じて推定処理を実行することで、リアルタイムにユーザZの歩行の位相が推定されてよい。
【0043】
センサデータ31を取得するタイミングは、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、センサデータ31は、推定段階の処理とは別個に、ユーザZの歩行動作をセンサSにより計測することで獲得されてよい。また、推定段階において、歩行の位相を推定する処理の実行と共に、センサデータ31が獲得されてよい。この場合、センサデータ31の少なくとも一部は、推定処理を繰り返す間に得られた複数のセンサ値51により構成されてよい。
【0044】
(基準モデル)
基準モデル40は、センサSのセンサ値から歩行の位相の推定値を算出する演算処理を実行するように構成される。基準モデル40は、そのような演算処理を実行可能な演算モデルであれば、その構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。基準モデル40は、例えば、データテーブル、関数式、ルール等により、センサ値の入力を受け付け、入力されたセンサ値から位相の推定値を算出するように構成されてよい。典型的な例では、基準モデル40は、特許文献1、2等で例示される近似モデルであってよい。基準モデル40には、参考文献(野田智之、寺前達也、高井飛鳥、長谷公隆、森本淳、「普段使いの装具をロボット化:空気圧人工筋で駆動するモジュール関節付き短下肢装具の開発」MB Medical Rehabilitation No.205:22-27、2017、<3.歩行との位相同期制御およびアシスト実験>)で提案される手法が採用されてもよい。その他、基準モデル40には、参考文献(Luka Peternel, Tomoyuki Noda, Tadej Petric, Ales Ude, Jun Morimoto, Jan Babic, ”Adaptive Control of Exoskeleton Robots for Periodic Assistive Behaviours Based on EMG Feedback Minimisation” [online]、[令和4年3月28日検索]、インターネット<URL: https://journals.plos.org/plosone/article/authors?id=10.1371/journal.pone.0148942>)で提案される手法が採用されてもよい。その他、基準モデル40は、機械学習により生成された訓練済みの機械学習モデルにより構成されてもよい。機械学習モデルは、例えば、ニューラルネットワーク、サポートベクタマシン、回帰モデル等で構成されてよい。
【0045】
(理想値)
歩行の位相の理想値35(真値)は、センサデータ31に含まれる各センサ値に対応して、センサデータ31に表れる歩行の周期を事後的に分析することで算出されてよい。一例では、理想値35は、センサデータ31に表れるヒールストライクから次のヒールストライクまでの時間に対して位相を均等に分割することにより算出されてよい。他の一例では、理想値35は、基準モデル40により得られる推定値が0から2πまでの時間(1周期分の歩行)に対して位相を均等に分割することにより算出されてよい。いずれの方法でも、理想値35は容易に算出可能である。
【0046】
(補正モデル)
補正モデル45は、各サンプリングタイムにおける位相の推定値33及び理想値35を対応付け、推定値33及び理想値35の間の誤差をモデル化することにより生成されてよい。これにより、補正モデル45は、歩行の位相の推定値に対する誤差を当該推定値から算出する演算処理を実行するように構成されてよい。補正モデル45は、そのような演算処理を実行可能な演算モデルであれば、その構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。補正モデル45は、例えば、データテーブル、関数式、ルール等を用いて、位相の推定値の入力を受け付け、入力された推定値に対する誤差を算出するように構成されてよい(後述する図8にその一例を示す)。補正モデル45は、機械学習モデルにより構成されてもよい。補正モデル45を生成する方法には、誤差を単純にモデル化する方法、フィッティング、機械学習等の任意の方法が用いられてよい。
【0047】
(出力処理)
補正された位相の推定値57に関する情報の出力処理の形態及び内容は、実施の形態に応じて適宜決定されてよい。例えば、補正された位相の推定値57に関する情報を出力することは、補正された位相の推定値57をそのまま出力する(例えば、音声出力、画像表示等)ことを含んでよい。また、補正された位相の推定値57に関する情報を出力することは、得られた推定値57に基づいて情報処理を実行すること、及び位相の推定値57に関する情報として当該情報処理の実行結果を出力することを含んでよい。情報処理の実行結果を出力することは、位相の推定値57に応じて制御対象装置の動作を制御することを含んでよい。制御対象装置は、例えば、歩行アシスト装置、電気刺激装置、賦活計測装置等の介入装置であってよい。一例では、位相推定装置2は、歩行アシスト装置の制御装置として動作し、設定されたアシストパターンに従い、補正された位相の推定値57に応じて歩行アシスト装置による歩行のアシスト動作を制御するように構成されてよい。
【0048】
(生成段階/推定段階)
モデル生成装置1による生成処理、及び位相推定装置2による歩行の位相の推定処理はそれぞれ任意のタイミングで実行されてよい。典型的な例では、前処理として、モデル生成装置1は、補正モデル45を生成してよい。その後、位相推定装置2は、生成された補正モデル45を使用して、補正された位相の推定値57を算出してよい。この場合、センサデータ31は、推定段階の処理とは別個に獲得されてよい。
【0049】
本実施形態では、モデル生成装置1は、センサデータ31を取得するステップ、位相の推定値33を算出するステップ、位相の理想値35を算出するステップ、及び補正モデル45を生成するステップを含む生成サイクルを繰り返し実行してよい。位相推定装置2は、センサ値51を取得するステップ、位相の推定値53を算出するステップ、誤差55を推定するステップ、位相の推定値53を補正する(補正された推定値57を得る)ステップ、及び補正された位相の推定値53に関する情報を出力するステップを含む推定サイクルを繰り返し実行してよい。
【0050】
位相推定装置2が歩行の位相を推定する処理を繰り返し実行した後、モデル生成装置1は、補正モデル45を生成してよい。この場合、位相推定装置2により歩行の位相を推定している間に、センサデータ31の少なくとも一部が収集されてよい。すなわち、センサデータ31の少なくとも一部は、推定処理を繰り返す間に得られた複数のセンサ値51により構成されてよい。なお、補正モデル45が既に生成されている場合、位相推定装置2は、基準モデル40及び補正モデル45を使用して、歩行の位相を推定してよく、モデル生成装置1は、新たな補正モデル45を生成してよい。補正モデル45が生成されていない場合、位相推定装置2は、基準モデル40のみを使用して、歩行の位相を推定してよい。すなわち、位相推定装置2は、センサ値51を取得してから推定値53を算出するまでの処理を実行してよい。
【0051】
その他、モデル生成装置1は、推定段階の処理とは無関係に、生成サイクルを繰り返し実行してよい。また、モデル生成装置1による生成処理、及び位相推定装置2による推定処理は交互に繰り返し実行されてもよい。これにより、位相推定装置2による推定処理の精度が担保されるように、モデル生成装置1による補正モデル45の生成が繰り返されてよい。
【0052】
(センサデータを獲得する際のユーザ状態)
センサデータ31を獲得する際のユーザZの状態は、実施の形態に応じて適宜決定されてよい。一例として、推定処理により得られる位相の推定値57が歩行アシスト装置のアシスト量を決定するために使用される場面を想定する。この場面では、センサデータ31は、ユーザZが歩行のアシストを受けた状態で歩行を計測することにより生成されたものであってよい。これにより、ユーザZが歩行アシスト装置によるアシストを受ける場面で精度よく歩行の位相を推定可能にするための補正モデル45を生成することができる。
【0053】
この歩行アシストを行う場面において、モデル生成装置1は、任意のタイミングで補正モデル45を生成してよい。一例では、モデル生成装置1は、歩行アシスト装置によるアシストを開始する際の前処理として、補正モデル45を生成してよい。また、モデル生成装置1は、ユーザZに与えるアシストパターンに応じて、補正モデル45を生成してよい。例えば、理学療法士によりアシストパターンが変更されてよい。モデル生成装置1は、変更後のアシストパターンでユーザZに対する歩行のアシストを開始する際の前処理として、補正モデル45を生成してよい。
【0054】
また、歩行アシストを行う場面において、センサデータ31を獲得する際における歩行のアシスト量は、実施の形態に応じて適宜決定されてよい。一例では、センサデータ31を獲得する際における歩行のアシスト量は、設定されたアシストパターンに従って、歩行の位相の推定値に応じて決定されてよい。歩行の位相の推定値は、位相推定装置2による推定処理の実行結果として得られてよい。補正モデル45が既に生成されている場合、位相推定装置2は、基準モデル40及び補正モデル45を使用して、歩行の位相の推定値57を算出してよい。アシスト量は、得られた推定値57に応じて決定されてよい。一方、補正モデル45が生成されていない場合、位相推定装置2は、基準モデル40のみを使用して、歩行の位相の推定値53を算出してよい。アシスト量は、得られた推定値53に応じて決定されてよい。
【0055】
ただし、センサデータ31を獲得する際のユーザZの状態は、このような例に限定されなくてよい。他の一例では、センサデータ31は、アシスト無しの状態でユーザZの歩行を計測することで生成されたものであってもよい。更に他の一例では、センサデータ31は、その他の介入(例えば、電気刺激)を受けた状態のユーザZの歩行をセンサSにより計測することで生成されたものであってよい。
【0056】
(生成サイクルを繰り返す場合)
一例では、モデル生成装置1は、生成サイクルを繰り返し実行する場合、2回目以降の生成サイクルにおいて、前回の生成サイクルで生成された補正モデル45を使用して、基準モデル40を補正してよい。これにより、モデル生成装置1は、補正済みの基準モデル40を生成してよい(すなわち、基準モデル40を更新してもよい)。この場合、2回目以降の生成サイクルにおける位相の推定値33を算出するステップでは、モデル生成装置1は、生成された補正済みの基準モデル40を使用して、今回の生成サイクルで取得されたセンサデータ31において、歩行の位相の推定値33を算出してよい。そして、モデル生成装置1は、位相の理想値35を算出するステップ及び補正モデル45を生成するステップを実行し、補正済みの基準モデル40に対して新たな補正モデル45を生成してよい。これにより、簡易かつリアルタイムに歩行の位相を精度よく推定可能なモデル(基準モデル40、補正モデル45)を得ることができる。
【0057】
ただし、生成サイクルを繰り返す形態は、このような例に限定されなくてよい。他の一例では、モデル生成装置1は、生成サイクルを繰り返し実行する場合、基準モデル40をそのまま使用して、補正モデル45を再度生成してよい。すなわち、モデル生成装置1は、基準モデル40を更新することなく、生成サイクルの処理を繰り返し、補正モデル45を更新してよい。この形態は、上記歩行アシストを行う場面でも採用されてよい。この場合、センサデータ31を獲得する際には、基準モデル40及び前回の生成サイクルで生成された補正モデル45を使用して、歩行の位相の推定値57が算出されてよく、算出された推定値57に応じてアシスト量が決定されてよい。センサデータ31は、これにより決定されたアシスト量の歩行アシストを受けている状態で獲得されてよい。一方、今回の生成サイクルでは、モデル生成装置1は、基準モデル40のみを使用して、センサデータ31における歩行の位相の推定値33を算出し、基準モデル40に対する新たな補正モデル45を生成してよい。
【0058】
(時間経過への対応)
センサデータ31は、ユーザZの歩行をセンサSにより計測する度に獲得され、任意の記憶領域に保存されてよい。モデル生成装置1は、生成サイクルを実行する時点までに獲得されているセンサデータ31の少なくとも一部を使用して、補正モデル45を生成してよい。一例では、モデル生成装置1は、全てのセンサデータ31を使用して、補正モデル45を生成してよい。
【0059】
ただし、ユーザZの歩行動作は、時間経過により変化する可能性がある。ユーザZの歩行動作が変化した場合、変化前に獲得されたセンサデータ31により生成される補正モデル45は、ユーザZの歩行動作に適合しない可能性がある。すなわち、補正モデル45を使用しても、ユーザZの歩行の位相を推定する精度の向上が期待できない可能性がある。そのため、補正モデル45を生成して、ユーザZの歩行の位相を推定する時点に近い時点で獲得されたセンサデータ31ほど、補正モデル45の生成に反映されるのが好ましい。
【0060】
一例では、モデル生成装置1は、所定時間経過したセンサデータ31を除外し、生成サイクルを実行する時点から所定時間内のセンサデータ31を使用して、補正モデル45を生成してよい。他の一例では、モデル生成装置1は、経過時間が短いほど優先され、経過時間が長いほど劣後されるように、センサデータ31に対して経過時間に応じた重みを付けてよい。モデル生成装置1は、重み付けされたセンサデータ31を使用して、補正モデル45を生成してよい。
【0061】
(装置構成)
一例では、図1に示されるとおり、モデル生成装置1及び位相推定装置2は、ネットワークを介して互いに接続されてよい。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、モデル生成装置1及び位相推定装置2の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。他の一例では、モデル生成装置1及び位相推定装置2の間では、記憶媒体を利用して、データがやりとりされてよい。
【0062】
また、図1の例では、モデル生成装置1及び位相推定装置2は、それぞれ別個のコンピュータである。しかしながら、本実施形態に係るシステムの構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。他の一例では、モデル生成装置1及び位相推定装置2は、一体のコンピュータにより構成されてよい。この場合、コンピュータは、モデル生成装置1として動作することで、補正モデル45を生成してよい。生成された補正モデル45は、位相推定装置2としての動作で直ちに使用されてよい。コンピュータは、位相推定装置2として動作することで、基準モデル40及び補正モデル45を使用して、ユーザZの歩行の位相を推定してよい。コンピュータは、オペレータの指示等に応じて、モデル生成装置1及び位相推定装置2それぞれの動作を切り替えて実行してよい。
【0063】
§2 構成例
[ハードウェア構成]
<モデル生成装置>
図3は、本実施形態に係るモデル生成装置1のハードウェア構成の一例を模式的に示す。図3の一例では、本実施形態に係るモデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。
【0064】
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。制御部11(CPU)は、プロセッサ・リソースの一例である。
【0065】
記憶部12は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部12は、メモリ・リソースの一例である。本実施形態では、記憶部12は、モデル生成プログラム81、基準モデルデータ121、補正モデルデータ125等の各種情報を記憶する。
【0066】
モデル生成プログラム81は、補正モデル45の生成に関する情報処理(後述の図7)をモデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。基準モデルデータ121は、基準モデル40に関する情報を示すように構成される。補正モデルデータ125は、生成された補正モデル45に関する情報を示すように構成される。本実施形態では、補正モデルデータ125は、モデル生成プログラム81を実行した結果として生成される。
【0067】
通信インタフェース13は、ネットワークを介した有線又は無線通信を行うためのインタフェースである。通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であってよい。モデル生成装置1は、通信インタフェース13を介して、他のコンピュータとの間でデータ通信を実行してよい。
【0068】
外部インタフェース14は、外部装置と接続するためのインタフェースである。外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であってよい。外部インタフェース14の種類及び数は、任意に選択されてよい。
【0069】
モデル生成装置1は、通信インタフェース13又は外部インタフェース14を介して、センサデータ31を得るためのセンサSに接続されてよい。センサデータ31を獲得する際にユーザZに対して歩行アシスト等の介入を行う場合、モデル生成装置1は、通信インタフェース13又は外部インタフェース14を介して、歩行アシスト装置等の介入装置(制御対象装置)に接続されてよい。
【0070】
入力装置15は、オペレータ(例えば、理学療法士等)から情報の入力を受け付けるための装置である。入力装置15は、例えば、マウス、キーボード等であってよい。出力装置16は、オペレータに対して情報を出力するための装置である。出力装置16は、例えば、ディスプレイ、スピーカ等であってよい。オペレータは、入力装置15及び出力装置16を利用することで、モデル生成装置1を操作することができる。入力装置15及び出力装置16は、例えば、タッチパネルディスプレイ等により一体的に構成されてもよい。
【0071】
ドライブ17は、記憶媒体91に記憶されたプログラム等の各種情報を読み込むための装置である。ドライブ17は、例えば、CDドライブ、DVDドライブ等であってよい。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記モデル生成プログラム81及び基準モデルデータ121の少なくともいずれかは、記憶媒体91に記憶されていてよい。モデル生成装置1は、モデル生成プログラム81及び基準モデルデータ121の少なくともいずれかを記憶媒体91から取得してよい。なお、図3では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ17の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
【0072】
なお、モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC(Personal Computer)、タブレットPC、携帯端末等であってもよい。
【0073】
<位相推定装置>
図4は、本実施形態に係る位相推定装置2のハードウェア構成の一例を模式的に示す。図4の一例では、本実施形態に係る位相推定装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。
【0074】
位相推定装置2の制御部21~ドライブ27及び記憶媒体92はそれぞれ、上記モデル生成装置1の制御部11~ドライブ17及び記憶媒体91それぞれと同様に構成されてよい。制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。制御部21(CPU)は、位相推定装置2のプロセッサ・リソースの一例である。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、位相推定装置2のメモリ・リソースの一例である。本実施形態では、記憶部22は、位相推定プログラム82、基準モデルデータ121、補正モデルデータ125等の各種情報を記憶する。
【0075】
位相推定プログラム82は、歩行位相の推定に関する情報処理(後述の図9)を位相推定装置2に実行させるためのプログラムである。位相推定プログラム82は、当該情報処理の一連の命令を含む。位相推定プログラム82、基準モデルデータ121、及び補正モデルデータ125の少なくともいずれかは、記憶媒体92に記憶されていてもよい。位相推定装置2は、位相推定プログラム82、基準モデルデータ121、及び補正モデルデータ125の少なくともいずれかを記憶媒体92から取得してよい。
【0076】
位相推定装置2は、通信インタフェース23を介して、他のコンピュータとの間でデータ通信を実行してよい。位相推定装置2は、通信インタフェース23又は外部インタフェース24を介して、推定段階において、センサ値51を得るためのセンサSに接続されてよい。出力処理として、得られた位相の推定値57に基づいて、歩行アシスト等の介入を行う場合、位相推定装置2は、通信インタフェース23又は外部インタフェース24を介して、歩行アシスト装置等の介入装置(制御対象装置)に接続されてよい。オペレータは、入力装置25及び出力装置26を利用することで、位相推定装置2を操作することができる。入力装置25及び出力装置26は、例えば、タッチパネルディスプレイ等により一体的に構成されてもよい。
【0077】
なお、位相推定装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。位相推定装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、位相推定装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、タブレットPC、携帯端末等であってよい。
【0078】
[ソフトウェア構成]
<モデル生成装置>
図5は、本実施形態に係るモデル生成装置1のソフトウェア構成の一例を模式的に示す。モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたモデル生成プログラム81に含まれる命令をCPUにより実行する。これにより、本実施形態に係るモデル生成装置1は、データ取得部111、位相推定部112、算出部113、生成部114、及び評価部115をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、モデル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0079】
データ取得部111は、ユーザZの1周期以上の歩行をセンサSにより計測することで生成されたセンサデータ31を取得するように構成される。位相推定部112は、基準モデル40を使用して、取得されたセンサデータ31において、歩行の位相の推定値33を算出するように構成される。算出部113は、センサデータ31に表れる歩行の周期に基づいて、算出される推定値33に対する歩行の位相の理想値35を算出するように構成される。生成部114は、歩行の位相の推定値33及び理想値35の間の誤差をモデル化することにより、補正モデル45を生成するように構成される。
【0080】
本実施形態では、センサデータ31は、複数周期の歩行を計測することで生成されたものであってよい。評価部115は、位相推定部112により位相の推定値33の算出が実行された後に、算出される位相の推定値33のばらつきを算出し、かつ推定値33のばらつきの大きさが閾値を超えている場合に、アラートを通知するように構成される。なお、本実施形態では、モデル生成装置1は、データ取得部111、位相推定部112、算出部113、及び生成部114の処理を含む生成サイクルを繰り返し実行するように構成されてよい。生成サイクルが繰り返し実行される際、評価部115の処理も、各生成サイクルにおいて実行されてよい。
【0081】
<位相推定装置>
図6は、本実施形態に係る位相推定装置2のソフトウェア構成の一例を模式的に示す。位相推定装置2の制御部21は、記憶部22に記憶された位相推定プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された位相推定プログラム82に含まれる命令をCPUにより実行する。これにより、本実施形態に係る位相推定装置2は、取得部211、位相推定部212、誤差推定部213、補正部214、出力部215及び監視部216をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、位相推定装置2の各ソフトウェアモジュールも、制御部21(CPU)により実現される。
【0082】
取得部211は、ユーザZの歩行に対するセンサSのセンサ値51を取得するように構成される。位相推定部212は、基準モデル40を使用して、取得されたセンサ値51から歩行の位相の推定値53を算出するように構成される。誤差推定部213は、補正モデル45を使用して、算出された位相の推定値53から誤差55を推定するように構成される。補正部214は、推定された誤差55により、算出された位相の推定値53を補正するように構成される。補正部214の処理により、補正された位相の推定値57が得られる。出力部215は、補正された位相の推定値57に関する情報を出力するように構成される。
【0083】
本実施形態では、位相推定装置2は、取得部211、位相推定部212、誤差推定部213、補正部214及び出力部215の処理を含む推定サイクルを繰り返し実行するように構成されてよい。監視部216は、ユーザZの1周期以上の歩行に対して推定サイクルを繰り返し実行したことに応じて、歩行の周期に基づいて、補正された推定値57に対する歩行の位相の理想値を算出し、補正された推定値57及び理想値の間の誤差を算出し、かつ算出された誤差に関する情報を出力するように構成される。
【0084】
<その他>
モデル生成装置1及び位相推定装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、モデル生成装置1及び位相推定装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、モデル生成装置1及び位相推定装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0085】
§3 動作例
[モデル生成装置]
図7は、本実施形態に係るモデル生成装置1の処理手順の一例を示すフローチャートである。以下で説明するモデル生成装置1の処理手順は、モデル生成方法(情報処理方法)の一例である。ただし、以下で説明するモデル生成装置1の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0086】
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、ユーザZの1周期以上の歩行をセンサSにより計測することで生成されたセンサデータ31を取得する。
【0087】
ユーザZには、歩行動作を適宜実施させてよい(例えば、理学療法士の指示による)。センサSは、ユーザZの1周期の歩行に対して複数回の計測を実行してよい。これに応じて、センサデータ31は、複数のセンサ値を含むように構成されてよい。本実施形態では、センサデータ31は、複数周期の歩行をセンサSで計測することで生成されたものであってよい。センサデータ31の量(センサ値の数)及びサンプリング間隔は、実施の形態に応じて適宜決定されてよい。
【0088】
センサデータ31は、ユーザZの歩行を観察する任意のタイミングで獲得されてよい。例えば、センサデータ31は、補正モデル45を生成するためにユーザZの歩行をセンサSにより計測することで獲得されてよい。また、例えば、センサデータ31は、位相推定装置2による推定処理が実行されている間に獲得されてもよい。この場合、センサデータ31の少なくとも一部は、推定処理を繰り返し実行する間に取得されたセンサ値51により構成されてよい。
【0089】
獲得されたセンサデータ31は、任意の記憶領域に保存されてよい。任意の記憶領域は、例えば、制御部(11、21)のRAM、記憶部(12、22)、記憶媒体(91、92)、外部記憶装置、他のコンピュータ等であってよい。制御部11は、センサデータ31の少なくとも一部を任意の記憶領域から取得してよい。また、制御部11は、センサデータ31の少なくともセンサSから直接的に取得してよい。
【0090】
センサデータ31を獲得する際のユーザZの状態は、実施の形態に応じて適宜決定されてよい。一例では、センサデータ31は、ユーザZが歩行のアシストを受けた状態で歩行を計測することにより生成されたものであってよい。他の一例では、センサデータ31は、ユーザZがその他の介入を受けた状態で歩行を計測することにより生成されたものであってよい。更に他の一例では、センサデータ31は、ユーザZが介入を受けていない(例えば、歩行アシストがない)状態で歩行を計測することにより生成されたものであってよい。
【0091】
また、センサデータ31の取得には、経過時間が反映されてよい。一例では、制御部11は、ステップS101の処理を実行する時刻(現在時刻)から所定期間内のセンサデータ31を取得してよい。他の一例では、制御部11は、経過時間に応じた重みをセンサデータ31に付与してよい。センサデータ31を取得すると、制御部11は、次のステップS102に処理を進める。
【0092】
(ステップS102)
ステップS102では、制御部11は、位相推定部112として動作し、基準モデル40を使用して、取得されたセンサデータ31において、歩行の位相の推定値33を算出する。
【0093】
一例では、制御部11は、センサデータ31に含まれる各サンプリングタイムのセンサ値を基準モデル40に入力し、基準モデル40の演算処理を実行してよい。基準モデル40の演算内容は、実施の形態に応じて適宜決定されてよい。基準モデル40の演算処理の実行結果として、制御部11は、各サンプリングタイムのセンサ値に対する推定値33を取得してよい。推定値33を取得すると、制御部11は、次のステップS103に処理を進める。
【0094】
なお、制御部11は、ステップS102の処理を実行する前の任意のタイミングで、基準モデルデータ121を参照することにより、モデル生成装置1において基準モデル40を使用可能な状態に初期設定してよい。基準モデルデータ121は、基準モデル40を再生可能なように適宜構成されてよい。
【0095】
(ステップS103)
ステップS103では、制御部11は、算出部113として動作し、センサデータ31に表れる歩行の周期に基づいて、算出される推定値33に対する歩行の位相の理想値35を算出する。
【0096】
制御部11は、センサデータ31に表れる歩行の周期を分析することで、各サンプリングタイムにおける位相の理想値35(真値)を適宜算出してよい。一例では、制御部11は、センサデータ31に表れるヒールストライクから次のヒールストライクまでの時間に対して位相を均等に分割することにより、各推定値33に対応する理想値35を算出してよい。他の一例では、制御部11は、基準モデル40により得られる推定値33が0から2πまでの時間に対して位相を均等に分割することで、各推定値33に対応する理想値35を算出してよい。各推定値33に対応する理想値35を算出すると、制御部11は、次のステップS104に処理を進める。
【0097】
(ステップS104)
ステップS104では、制御部11は、評価部115として動作し、歩行の各周期において算出される位相の推定値33のばらつきを算出する。推定値33のばらつきは、例えば、分散、標準偏差等の公知の統計量により表現されてよい。
【0098】
制御部11は、歩行の各周期における同一又は近似の位相に対して推定値33のばらつきを計算する。これにより、制御部11は、歩行の各周期間における位相の推定値33のばらつきを評価する。一例では、制御部11は、互いに対応する位相の推定値33及び理想値35の間の誤差を算出してよい。そして、制御部11は、理想値35を基準に誤差のばらつきを推定値33のばらつきとして算出してよい。ただし、推定値33のばらつきを算出する方法は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。ステップS104の処理は、ステップS102の処理を実行した後の任意のタイミングで実行されてよい。推定値33のばらつきを算出すると、制御部11は、次のステップS105に処理を進める。
【0099】
(ステップS105)
ステップS105では、制御部11は、評価部115として動作し、算出された推定値33のばらつきの大きさが閾値を超えるか否かを判定する。制御部11は、判定の結果に応じて、処理の分岐先を決定する。推定値33のばらつきの大きさが閾値を超える場合、制御部11は、ステップS106に処理を進める。一方、推定値33のばらつきの大きさが閾値未満である場合、制御部11は、ステップS106及びステップS107の処理を省略し、ステップS108に処理を進める。推定値33のばらつきの大きさが閾値と等しい場合には、処理の分岐先は、ステップS106及びステップS108のいずれであってもよい。閾値は、例えば、オペレータの指定、プログラム内の設定値等の任意の方法で与えられてよい。
【0100】
(ステップS106及びステップS107)
ステップS106では、制御部11は、評価部115として動作し、アラートを通知する。典型的な一例では、制御部11は、出力装置16を介してアラートを出力してよい。ただし、アラートの通知方法は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。アラートを通知すると、制御部11は、次のステップS107に処理を進める。
【0101】
ステップS107では、制御部11は、オペレータに対して、出力装置16を介して補正モデル45を生成するか否かを問い合わせる。制御部11は、入力装置15を介してオペレータからの回答を受け付け、得られた回答に応じて処理の分岐先を決定する。補正モデル45を生成するとの回答を得た場合、制御部11は、ステップS108に処理を進める。一方、補正モデル45を生成しないとの回答を得た場合、制御部11は、本動作例に係るモデル生成装置1の処理手順を終了する。
【0102】
(ステップS108)
ステップS108では、制御部11は、生成部114として動作し、歩行の位相の推定値33及び理想値35の間の誤差をモデル化することにより、補正モデル45を生成する。
【0103】
補正モデル45は、歩行の位相の推定値に対応する誤差を当該推定値から算出可能に適宜構成されてよい。一例では、制御部11は、互いに対応する位相の推定値33及び理想値35の間の誤差を算出してよい。ステップS104の処理において、誤差が算出されている場合、当該処理は省略されてよい。センサデータ31が複数周期の歩行に対するセンサ値を含む場合、制御部11は、周期間で、推定値に対する誤差の平均値を算出してよい。経過時間に応じた重みが付与されている場合、制御部11は、重み付け平均により、周期間の誤差の平均値を算出してよい。これにより、制御部11は、歩行の位相の推定値に対する誤差を算出してよい。制御部11は、算出された誤差をモデル化することで、補正モデル45を生成してよい。
【0104】
図8は、本実施形態に係る補正モデル45の一例を示す。一例では、制御部11は、フィッティング、機械学習等の方法により、推定値に対する誤差を表現する関数式(例えば、図8のグラフを表現する関数式)を補正モデル45として生成してよい。他の一例では、制御部11は、推定値に対する誤差をプロットし、プロットされた誤差をデータテーブル化することで、補正モデル45を生成してよい。補正モデル45を生成すると、制御部11は、次のステップS109に処理を進める。なお、図8のデータは、後述する実験例と同一の条件により得られたものである。
【0105】
(ステップS109)
図7に戻り、ステップS109では、制御部11は、生成部114として動作し、生成された補正モデル45に関する情報を補正モデルデータ125として生成する。補正モデルデータ125は、補正モデル45を再生可能なように適宜構成されてよい。制御部11は、生成された補正モデルデータ125を所定の記憶領域に保存する。
【0106】
所定の記憶領域は、適宜選択されてよい。所定の記憶領域は、例えば、制御部11のRAM、記憶部12、記憶媒体91、外部記憶装置等であってよい。外部記憶装置は、例えば、データサーバ、外付けの記憶装置等であってよい。補正モデルデータ125の保存が完了すると、制御部11は、次のステップS110に処理を進める。
【0107】
なお、生成された補正モデルデータ125は、任意の方法及び任意のタイミングで位相推定装置2に提供されてよい。一例では、制御部11は、ステップS109の処理として又はステップS109の処理とは別に、補正モデルデータ125を位相推定装置2に転送してよい。位相推定装置2は、この転送を受信することで、補正モデルデータ125(補正モデル45)を取得してよい。他の一例では、位相推定装置2は、通信インタフェース23を利用して、モデル生成装置1又はデータサーバにアクセスすることで、補正モデルデータ125(補正モデル45)を取得してよい。更に他の一例では、位相推定装置2は、記憶媒体92を介して、補正モデルデータ125(補正モデル45)を取得してよい。
【0108】
(ステップS110)
ステップS110では、制御部11は、ステップS101~ステップS103及びステップS108を含む生成サイクルを繰り返すか否かを判定する。
【0109】
判定の基準は、実施の形態に応じて適宜設定されてよい。一例では、補正モデル45の生成を繰り返す回数が閾値により設定されてよい。閾値は、例えば、オペレータの指定、プログラム内の設定値等の任意の方法で与えられてよい。この場合、制御部11は、ステップS101~ステップS109の処理を繰り返した回数をカウントしてよい。カウントされた繰り返し回数が閾値に満たないとき、制御部11は、生成サイクルの実行を繰り返すと判定してよい。一方、繰り返し回数が閾値に到達したとき、制御部11は、生成サイクルの実行を繰り返さない(生成サイクルの実行を終了する)と判定してよい。
【0110】
他の一例では、制御部11は、オペレータに対して、生成サイクルを繰り返し実行するか否かを問い合わせてよい。制御部11は、入力装置15を介してオペレータからの回答を受け付け、得られた回答に応じて生成サイクルを繰り返し実行するか否かを判定してよい。これにより、モデル生成装置1は、生成サイクルを実行した後、オペレータからの要求に応じて、次の生成サイクルを実行するように構成されてよい。
【0111】
生成サイクルの実行を繰り返すと判定した場合、制御部11は、ステップS101に戻り、ステップS101から処理を再度実行する。
【0112】
生成サイクルを繰り返し実行する場合、制御部11は、今回の生成サイクルにおいて、ステップS101の処理により、新たなセンサデータ31を取得してもよい。新たなセンサデータ31を取得した場合、制御部11は、得られた新たなセンサデータ31を任意の記憶領域に保存してよい。保存されたセンサデータ31は、次回以降の生成サイクルにおいて、補正モデル45の生成に使用されてよい。
【0113】
また、生成サイクルを繰り返し実行する場合、一例では、制御部11は、2回目以降の生成サイクルにおいて、前回の生成サイクルで生成された補正モデル45を使用して、基準モデル40を補正してよい。これにより、制御部11は、補正済みの基準モデル40を生成してよい(すなわち、基準モデル40を更新してもよい)。この場合、2回目以降の生成サイクルにおけるステップS102の処理では、制御部11は、補正済みの基準モデル40を使用して、今回の生成サイクルで取得されたセンサデータ31において、歩行の位相の推定値33を算出してよい。そして、ステップS108では、制御部11は、補正済みの基準モデル40に対して新たな補正モデル45を生成してよい。また、制御部11は、補正済みの基準モデル40を示すように基準モデルデータ121を更新し、更新された基準モデルデータ121を任意のタイミングで位相推定装置2に提供してよい。これにより、補正済みの基準モデル40は、位相推定装置2における推定処理でも使用されてよい。他の一例では、制御部11は、基準モデル40を更新することなく、生成サイクルの処理を繰り返し、補正モデル45を更新してよい。
【0114】
また、生成サイクルを繰り返し実行する場合、一例では、制御部11は、今回の生成サイクルまでに獲得された全てのセンサデータ31を使用して、補正モデル45を生成してよい。他の一例では、制御部11は、今回の生成サイクルまでに獲得されたセンサデータ31の一部(例えば、獲得されてからの経過時間が閾値未満のセンサデータ)を使用して、補正モデル45を生成してよい。他の一例では、制御部11は、今回の生成サイクルで取得された新たなセンサデータ31のみを使用して、補正モデル45を生成してもよい。他の一例では、制御部11は、今回の生成サイクルで補正モデル45の生成に使用するセンサデータ31の指定をオペレータから受け付けてもよい。この場合、制御部11は、オペレータにより指定されたセンサデータ31を使用して、補正モデル45を生成してよい。
【0115】
他方、生成サイクルの実行を繰り返さないと判定した場合、制御部11は、本動作例に係るモデル生成装置1の処理手順を終了する。
【0116】
本動作例に係る処理手順を終了した後、制御部11は、任意のタイミングで、ステップS101から処理を再度実行してよい。一例では、制御部11は、入力装置15を介したオペレータからの要求に応じて、ステップS101から処理を再度実行してよい。これにより、ステップS110と同様に、モデル生成装置1は、生成サイクルを実行した後、オペレータからの要求に応じて、次の生成サイクルを実行するように構成されてよい。ステップS101からの処理の再度の実行に関しては、ステップS110により生成サイクルを繰り返し実行する場合と同様であってよい。
【0117】
なお、モデル生成装置1は、任意のタイミングで、ステップS101からの処理を実行することで、補正モデル45を生成してよい。一例では、モデル生成装置1は、ユーザZの歩行の観察を開始する(例えば、歩行アシスト装置によるアシストを開始する)際の前処理として、補正モデル45を生成してよい。歩行アシスト装置によるアシストを行う場面では、モデル生成装置1は、ユーザZに与えるアシストパターンに応じて、補正モデル45を生成してよい。
【0118】
[位相推定装置]
図9は、本実施形態に係る位相推定装置2の処理手順の一例を示すフローチャートである。以下で説明する位相推定装置2の処理手順は、位相推定方法(情報処理方法)の一例である。ただし、以下で説明する位相推定装置2の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0119】
なお、制御部21は、前処理として、ユーザZに歩行動作の開始を促す指示情報を出力装置26又は他のコンピュータの出力装置に出力してよい。ユーザZは、トレッドミル等の器具の上で、歩行動作を実施してよい。制御部21は、ユーザZが歩行動作を開始したことに応じて、ステップS201からの処理の実行を開始してよい。
【0120】
(ステップS201)
ステップS201では、制御部21は、取得部211として動作し、ユーザZの歩行に対するセンサSのセンサ値51を取得する。一例では、制御部21は、センサSから直接的にセンサ値51を取得してよい。他の一例では、制御部21は、例えば、他のコンピュータ等を介してセンサSから間接的にセンサ値51を取得してよい。センサ値51を取得すると、制御部21は、次のステップS202に処理を進める。
【0121】
(ステップS202)
ステップS202では、制御部21は、位相推定部212として動作し、基準モデル40を使用して、取得されたセンサ値51から歩行の位相の推定値53を算出する。モデル生成装置1により、補正済みの基準モデル40が得られている場合、制御部21は、補正済みの基準モデル40を使用して、センサ値51から位相の推定値53を算出してよい。
【0122】
一例では、制御部21は、取得されたセンサ値51を基準モデル40に入力し、基準モデル40の演算処理を実行してよい。この演算処理の実行結果として、制御部21は、センサ値51に対する位相の推定値53を取得してよい。例えば、基準モデル40が関数式で構成される場合、制御部21は、センサ値51を関数式に代入し、関数式の演算を実行することで、位相の推定値53を取得してよい。関数式は、ニューラルネットワーク等の機械学習モデルで構成されてもよい。また、例えば、基準モデル40がデータテーブルで構成される場合、制御部21は、センサ値51に対応する位相の推定値53をデータテーブルから抽出してよい。また、例えば、基準モデル40がルールにより構成される場合、制御部21は、センサ値51にルールを適用することで、位相の推定値53を算出してよい。位相の推定値53を取得すると、制御部21は、次のステップS203に処理を進める。なお、制御部21は、ステップS202の処理を実行する前の任意のタイミングで、基準モデルデータ121を参照することにより、位相推定装置2において基準モデル40を使用可能な状態に初期設定してよい。
【0123】
(ステップS203)
ステップS203では、制御部21は、誤差推定部213として動作し、補正モデル45を使用して、算出された位相の推定値53から誤差55を推定する。
【0124】
一例では、制御部21は、算出された位相の推定値53を補正モデル45に入力し、補正モデル45の演算処理を実行してよい。補正モデル45の演算内容は、実施の形態に応じて適宜決定されてよい。図8の一例では、制御部21は、補正モデル45の演算処理として、位相の推定値53を関数式に代入して、当該関数式の演算処理を実行してよい。他の一例では、補正モデル45がデータテーブルで表現される場合、制御部21は、補正モデル45の演算処理として、位相の推定値53に対応する誤差55をデータテーブルから抽出してよい。補正モデル45の演算処理の実行結果として、制御部21は、位相の推定値53に対応して推定される誤差55を取得することができる。推定の誤差55を取得すると、制御部21は、次のステップS204に処理を進める。なお、制御部21は、ステップS203の処理を実行する前の任意のタイミングで、補正モデルデータ125を参照することにより、位相推定装置2において補正モデル45を使用可能な状態に初期設定してよい。
【0125】
(ステップS204)
ステップS204では、制御部21は、補正部214として動作し、推定された誤差55により、算出された位相の推定値53を補正する。これにより、制御部21は、補正された位相の推定値57を取得する。
【0126】
補正処理の内容は、誤差55の表現形式に応じて適宜決定されてよい。典型的な一例では、誤差55は、和又は差の形式で表現されてよい。これに応じて、制御部21は、位相の推定値53及び誤差55の和又は差を算出することで、補正された位相の推定値57を取得してよい。補正された位相の推定値57を取得すると、制御部21は、次のステップS205に処理を進める。
【0127】
(ステップS205)
ステップS205では、制御部21は、出力部215として動作し、補正された位相の推定値57に関する情報を出力する。
【0128】
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、補正された位相の推定値57を出力装置26又は他のコンピュータの出力装置にそのまま出力してよい。一例として、制御部21は、ディスプレイにグラフを表示し、補正された位相の推定値57をグラフ上でプロットしてよい。また、例えば、制御部21は、得られた推定値57に基づいて、何らかの情報処理を実行してよい。制御部21は、その情報処理を実行した結果を、位相の推定値57に関する情報として出力してよい。この情報処理を実行した結果を出力することは、位相の推定値57に応じて制御対象装置の動作を制御することを含んでよい。制御対象装置は、例えば、歩行アシスト装置、電気刺激装置、賦活計測装置等の介入装置であってよい。一例では、制御部21は、設定されたアシストパターンに従って、補正された位相の推定値57からアシスト量を決定し、決定されたアシスト量を歩行アシスト装置に出力することで、歩行アシスト装置による歩行のアシスト動作を制御してよい。本実施形態では、制御部21は、ステップS205の処理として、これらの出力処理のうちの少なくともいずれかを実行してよい。情報の出力が完了すると、制御部21は、次のステップS206に処理を進める。
【0129】
(ステップS206)
ステップS206では、制御部21は、ユーザZの歩行を1周期以上計測したか否か(すなわち、1周期分以上のセンサ値51を得たか否か)を判定する。
【0130】
本実施形態では、位相推定装置2は、後述するステップS210の処理により、ステップS201~ステップS205を含む推定サイクルを繰り返し実行可能に構成されている。そこで、一例では、制御部21は、1周期以上の歩行に対して推定サイクルを繰り返し実行することで、各推定サイクルで得られる推定値57がある周期から次の周期に移った(一例では、2πを超えて0から再度変動した)ことに応じて、ユーザZの歩行を1周期以上計測したと判定してよい。ユーザZの歩行を1周期以上計測した場合、制御部21は、次のステップS207に処理を進める。
【0131】
一方、制御部21は、各推定サイクルで得られる推定値57がある周期の0~2πの範囲で留まっていることに応じて、1周期以上の計測がまだ行われていないと判定してよい。1周期以上の計測が行われていない場合、制御部21は、ステップS207~ステップS209の処理を省略し、ステップS210に処理を進める。
【0132】
(ステップS207~ステップS209)
ステップS207では、制御部21は、監視部216として動作し、歩行の周期に基づいて、補正された推定値57に対する歩行の位相の理想値を算出する。理想値を算出する方法は、ステップS103の処理と同様であってよい。推定値57に対応する理想値を算出すると、制御部21は、次のステップS208に処理を進める。
【0133】
ステップS208では、制御部21は、監視部216として動作し、互いに対応する位相の推定値57及び理想値の間の誤差を算出する。各推定サイクルで得られた推定値57の誤差を算出すると、制御部21は、次のステップS209に処理を進める。
【0134】
ステップS209では、制御部21は、監視部216として動作し、算出された誤差に関する情報を出力する。
【0135】
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、出力装置26又は他のコンピュータの出力装置に、算出された誤差をそのまま出力してよい。一例として、制御部21は、ディスプレイにグラフを表示し、理想値を基準に推定値57の誤差をグラフ上でプロットしてよい。
【0136】
また、例えば、制御部21は、算出された誤差が閾値を超えるか否かを判定してよい。閾値は、任意の方法で与えられてよい。算出された誤差が閾値を超えている場合、制御部21は、誤差に関する情報として、出力装置26又は他のコンピュータの出力装置にアラートを出力してよい。
【0137】
オペレータは、出力される誤差及びアラートの少なくとも一方に基づいて、推定処理に使用されている補正モデル45がユーザZの歩行動作に適合しなくなってきているか否かを判断してよい。そして、補正モデル45がユーザZに適合しなくなったと判断した場合、オペレータは、入力装置15又はモデル生成装置1以外の他のコンピュータを介して、新たな補正モデル45を生成する要求をモデル生成装置1に対して与えてよい。これに応じて、モデル生成装置1(制御部11)は、ステップS101からの処理を実行し、新たな補正モデル45を生成してよい。この際、推定サイクルを繰り返す間に取得された複数のセンサ値51の少なくとも一部がセンサデータ31として新たな補正モデル45の生成に使用されてよい。また、モデル生成装置1(制御部11)は、新たな補正モデル45を生成するために、新たなセンサデータ31を収集してよい。
【0138】
また、例えば、算出された誤差が閾値を超えている場合、制御部21は、新たな補正モデル45の生成を促す指示をモデル生成装置1に出力してよい。これに応じて、モデル生成装置1は、ステップS101から処理を実行してよい。
【0139】
本実施形態では、制御部21は、ステップS209の処理として、これらの出力処理のうちの少なくともいずれかを実行してよい。誤差に関する情報を出力すると、制御部21は、次のステップS210に処理を進める。
【0140】
なお、制御部21は、ユーザZの1周期以上の歩行をセンサSにより計測した後の任意のタイミングで、ステップS207~ステップS209の処理を実行してよい。一例では、制御部21は、計測している歩行の周期が1周期経過する度に、ステップS207~ステップS209の処理を実行してよい。他の一例では、制御部21は、複数周期の歩行の計測結果に対して、ステップS207~ステップS209の処理を一度に実行してよい。
【0141】
(ステップS210)
ステップS210では、制御部21は、ステップS201~ステップS205を含む推定サイクルを繰り返し実行するか否かを判定する。
【0142】
判定の基準は、実施の形態に応じて適宜設定されてよい。一例では、繰り返す回数、時間、歩行回数等の指標に基づいて、制御部21は、推定サイクルを繰り返し実行するか否かを判定してよい。この場合、指標に対する閾値が任意の方法で与えられてよい。計算される指標が閾値に満たないとき、制御部21は、推定サイクルの実行を繰り返すと判定してよい。一方、計算される指標が閾値に到達したとき、制御部21は、推定サイクルの実行を繰り返さない(推定サイクルの実行を終了する)と判定してよい。
【0143】
他の一例では、制御部21は、オペレータからの終了指示が与えられるまで、推定サイクルの実行を繰り返すと判定してよい。終了指示は、入力装置25を介して与えられてよい。そして、オペレータからの終了指示が与えられた後、制御部21は、推定サイクルの実行を繰り返さない(推定サイクルの実行を終了する)と判定してよい。
【0144】
推定サイクルの実行を繰り返すと判定した場合、制御部21は、ステップS201に戻り、ステップS201から処理を再度実行する。これにより、制御部21は、ユーザZの歩行の位相を継続的に推定する。他方、推定サイクルの実行を繰り返さないと判定した場合、制御部21は、本動作例に係る位相推定装置2の処理手順を終了する。
【0145】
本動作例に係る処理手順を終了した後、制御部21は、任意のタイミングで、ステップS201から処理を再度実行してよい(すなわち、ステップS201からの処理の実行を再開してよい)。一例では、制御部21は、入力装置25を介したオペレータからの要求に応じて、ステップS201から処理を再度実行してよい。ステップS201からの処理の再度の実行に関しては、ステップS210により推定サイクルを繰り返し実行する場合と同様であってよい。
【0146】
推定サイクルを繰り返し実行する間に、ステップS201の処理により取得される複数のセンサ値51は、センサデータ31として任意の記憶領域に保存されてよい。モデル生成装置1は、位相推定装置2により得られた複数のセンサ値51を含むセンサデータ31を使用して、補正モデル45を生成してよい。生成された補正モデル45(補正モデルデータ125)は、任意のタイミングで位相推定装置2に提供されてよい。
【0147】
[特徴]
以上のとおり、上記ステップS108の処理において、補正モデル45を生成することは、センサデータ31を使用して、基準モデル40の推定結果(推定値33)と真値(理想値35)との間の誤差をモデル化することに過ぎない。上記ステップS103の処理において、センサデータ31に表れる歩行の周期に基づいて、歩行の位相の理想値35(真値)を算出することは容易である。そのため、ユーザZ毎に補正モデル45を容易に作成可能である。また、ユーザZの状況等の事情に応じて、歩行の位相を精度よく推定可能なように、補正モデル45を再度生成することも容易である。更に、生成される補正モデル45は、基準モデル40の推定値と誤差との間の対応関係を示す(すなわち、推定値から誤差を算出する)ように構成されているに過ぎない。そのため、上記ステップS203の処理における補正モデル45の演算は容易である。
【0148】
したがって、本実施形態に係るモデル生成装置1によれば、基準モデル40の出力(推定値)を補正することで、簡易かつリアルタイムに歩行の位相を精度よく推定可能にする補正モデル45を生成することができる。本実施形態に係る位相推定装置2によれば、そのような補正モデル45を使用することで、簡易かつリアルタイムにユーザZの歩行の位相を精度よく推定することができる。
【0149】
図10Aは、上記ステップS202~ステップS204の処理において、本実施形態に係る補正モデル45を使用して、補正された位相の推定値57を算出する処理の過程の一例を模式的に示す。図10Bは、補正モデル45による補正前後で得られる位相の推定値(53、57)の一例を示す。推定サイクルを繰り返す間、位相推定装置2(制御部21)は、上記ステップS203の処理において、補正モデル45を使用して、上記ステップS202で得られた推定値53に対する誤差55を算出する。そして、位相推定装置2(制御部21)は、上記ステップS204の処理において、得られた誤差55により推定値53を補正することで、補正された位相の推定値57を取得する。上記のとおり、モデル生成装置1では、ユーザZの歩行動作に適合する補正モデル45を容易に生成可能である。補正モデル45が適切に生成されていることで、図10A及び図10Bに例示されるとおり、ステップS204の処理では、0~2πの範囲で直線的に推移する推定値57(すなわち、真値に対する歪みの少ない推定値57)をリアルタイムに得ることができる。なお、図10A及び図10Bのデータは、後述する実験例と同一の条件により得られたものである。また、図10Bのデータは、250Hzでリアルタイムに算出された位相の推定値(53、57)を時系列にプロットすることで得られたものである。なお、図10A及び図10Bの例では、歩行の位相は、0~2πの値で表現されているが、位相の表現形式は、このような例に限られなくてよい。歩行の位相は、別の表現形式で出力されてよい。他の一例では、歩行の位相(0~2π)は、0%~100%で表現されてもよい。
【0150】
また、本実施形態では、補正モデル45を生成する際に、ステップS104~ステップS106の処理により、位相の推定値33のばらつきを監視することができる。位相の推定値33のばらつきが大きい場合、理想値35との間の誤差にもばらつきが生じるため、生成される補正モデル45の精度が悪化する可能性がある。本実施形態によれば、位相の推定値33のばらつきを監視し、ばらつきが大きい場合にアラートによりそのような可能性があることを可視化することができる。その結果、ステップS107の処理により、補正モデル45の生成を取り止めたり、精度の悪い補正モデル45を位相推定装置2で使用し続けることを避けたりすることができる。
【0151】
また、本実施形態では、位相推定装置2において、推定サイクルを繰り返し実行する間、ステップS206~ステップS209の処理により、使用されている補正モデル45による補正の精度を評価することができる。ユーザZの歩行動作は時間経過により変化する可能性がある。ユーザZの歩行動作が変化し、補正モデル45がユーザZの歩行動作に適合しなくなると、図10A及び図10Bに例示されるとおり、ユーザZの歩行の位相を精度よく推定すること(直線的な推定値57を得ること)が困難になる。本実施形態によれば、補正モデル45による補正の精度を評価することで、使用されている補正モデル45がそのような状態に陥っているか否かを可視化することができる。これにより、ユーザZの歩行動作に適合しなくなった補正モデル45を位相推定に使用し続けることを避けることができる。また、新たな補正モデル45の生成を促すことで、位相推定装置2における位相推定の精度の維持を図ることができる。
【0152】
また、本実施形態では、モデル生成装置1において、生成サイクルが繰り返し実行されてよい。生成サイクルを繰り返す場合に、前回の生成サイクルで生成された補正モデル45により、基準モデル40を補正することで、補正済みの基準モデル40を生成してよい。これらにより、基準モデル40及び補正モデル45による位相推定の精度の向上を期待することができる。
【0153】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。上記実施形態において、種々の改良又は変更が適宜行われてよい。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0154】
<4.1>
上記実施形態に係る推定システムは、人物の歩行の位相を推定するあらゆる場面に適用されてよい。人物の歩行の位相を推定する場面は、例えば、歩行アシスト装置により人物の歩行をアシストする場面、機能的電気刺激による痙縮を与える場面、歩行中における脊髄神経経路の賦活を計測する場面、歩行の異常を検出する場面等であってよい。歩行の位相の推定結果(推定値57)は、例えば、アシスト量の決定、電気刺激を与えるタイミングの決定、歩行の異常検出等に活用されてよい。以下、適用場面を限定した具体例を示す。
【0155】
(A)制御対象装置の動作を制御する場面
一例として、制御装置は、ユーザZの歩行に対するセンサSのセンサ値51を取得するステップと、基準モデル40を使用して、取得されたセンサ値51から歩行の位相の推定値53を算出するステップと、補正モデル45を使用して、算出された位相の推定値53から誤差55を推定するステップと、推定された誤差55により、算出された位相の推定値53を補正するステップと、補正された位相の推定値57から制御対象装置の駆動量を決定するステップと、決定された駆動量を出力するステップと、を実行するように構成されてよい。制御対象装置は、歩行アシスト装置、電気刺激装置、又は賦活計測装置であってよい。制御対象装置の駆動量を決定することは、歩行アシスト装置のアシスト量を決定すること、電気刺激装置による電気刺激の量を決定すること、又は賦活計測装置における電気刺激の量を決定することにより構成されてよい。量を決定することは、与えるか否かを決定することを含んでよい。決定された駆動量を出力することは、決定された駆動量に従って、制御対象装置の動作を制御すること(制御対象装置を駆動すること)、又は決定された駆動量を制御対象装置のコントローラに与えることで、制御対象装置の動作を間接的に制御することであってよい。
【0156】
(A-1)歩行アシストを行う場面
図11は、第1具体例に係る推定システムの適用場面の一例を模式的に示す。第1具体例は、歩行の位相の推定結果を歩行アシストに活用する場面に上記実施形態を適用した例である。第1具体例に係る推定システムは、モデル生成装置1及び制御装置2Aを備える。制御装置2Aは、上記位相推定装置2の一例である。歩行アシスト装置70は、制御対象装置の一例である。
【0157】
第1具体例では、制御装置2Aは、アシストパターン60を設定する。制御装置2Aは、ユーザZの歩行に対するセンサSのセンサ値51を取得する。制御装置2Aは、基準モデル40を使用して、取得されたセンサ値51から歩行の位相の推定値53を算出する。制御装置2Aは、補正モデル45を使用して、算出された位相の推定値53から誤差55を推定する。制御装置2Aは、推定された誤差55により、算出された位相の推定値53を補正する。これにより、制御装置2Aは、補正された位相の推定値57を取得する。制御装置2Aは、設定されたアシストパターン60に従って、補正された位相の推定値57から歩行アシスト装置70のアシスト量61を決定する。制御装置2Aは、歩行アシスト装置70を制御するために、決定されたアシスト量61を出力する。すなわち、第1具体例では、位相の推定値57に関する情報を出力することは、設定されたアシストパターン60に従って、補正された位相の推定値57からアシスト量61を決定すること、及び決定されたアシスト量61を出力することを含む。制御装置2Aは、推定サイクルを繰り返し実行する場合に、補正された推定値57の変化量が許容条件を満たすか否かを監視してもよい。これらの点を除き、第1具体例の構成は、上記実施形態と同様であってよい。
【0158】
[ハードウェア構成]
図12は、第1具体例に係る制御装置2Aのハードウェア構成の一例を模式的に示す。図12に示されるとおり、制御装置2Aのハードウェア構成は、上記位相推定装置2のハードウェア構成と同様であってよい。
【0159】
図12の一例では、記憶部22は、制御プログラム82Aを記憶する。制御プログラム82Aは、歩行位相の推定及び歩行アシスト装置70の制御に関する情報処理(後述の図14)を制御装置2Aに実行させるためのプログラムである。制御プログラム82Aは、当該情報処理の一連の命令を含む。制御プログラム82Aは、位相推定プログラム82の一例である。制御プログラム82Aは、記憶媒体92に記憶されていてもよい。制御装置2Aは、記憶媒体92から制御プログラム82Aを取得してもよい。
【0160】
また、制御装置2Aは、通信インタフェース23又は外部インタフェース24を介して歩行アシスト装置70に接続されてよい。歩行アシスト装置70は、歩行動作を行うユーザZに対して介入(例えば、力、電気刺激等)によるアシストを提供するように構成される。歩行に対するアシストを提供可能であれば、歩行アシスト装置70の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。歩行アシスト装置70には、公知の歩行アシスト装置が用いられてよい。一例では、歩行アシスト装置70には、参考文献(国際公開第2020/246587号公報)で提案されている体重免荷装置が用いられてよい。その他の一例では、歩行アシスト装置70には、参考文献(国際公開第2017/138651号公報)の図12図14で例示される足関節にアシスト力を付与するように構成されたアシスト装置が用いられてよい。その他、歩行アシスト装置70には、例えば、特開2010-264019号公報、特開2017-213246号公報等で例示される膝関節及び足関節にアシスト力を与えるよう構成されたアシスト装置が用いられてよい。
【0161】
[ソフトウェア構成]
図13は、第1具体例に係る制御装置2Aのソフトウェア構成の一例を模式的に示す。上記実施形態と同様に、制御装置2Aの制御部21は、制御プログラム82Aを実行する。これにより、制御装置2Aは、各ソフトウェアモジュールを備えるコンピュータとして動作する。
【0162】
図13の一例では、制御装置2Aは、設定部210を更に備える。設定部210は、アシストパターン60を設定するように構成される。また、第1具体例では、出力部215は、設定されたアシストパターン60に従って、補正された位相の推定値57からアシスト量61を決定し、かつ決定されたアシスト量61を出力するように構成される。
【0163】
更に、第1具体例では、制御装置2Aは、取得部211、位相推定部212、誤差推定部213、補正部214及び出力部215の処理を含む推定サイクルを繰り返し実行するように構成されてよい。2回目以降の推定サイクルにおけるアシスト量61を決定するステップでは、出力部215は、前回の推定サイクルでの補正された推定値57及び今回の推定サイクルでの補正された推定値57の間の変化量を算出し、並びに算出された変化量が許容条件を満たすか否かを判定するように更に構成されてよい。そして、出力部215は、変化量が許容条件を満たす場合、今回の推定サイクルでの補正された推定値57から、今回の推定サイクルでのアシスト量61を決定し、及び変化量が許容条件を満たさない場合、今回の推定サイクルでの補正された推定値57に依らず、前回の推定サイクルでの補正された推定値57に基づいて、今回の推定サイクルでのアシスト量61を決定するように構成されてよい。
【0164】
なお、上記実施形態と同様に、制御装置2Aのソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、制御装置2Aのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0165】
[動作例]
図14は、第1具体例に係る制御装置2Aの処理手順の一例を示すフローチャートである。以下で説明する制御装置2Aの処理手順は、歩行アシスト装置70の制御方法(情報処理装置)の一例である。ただし、以下で説明する制御装置2Aの処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0166】
図14の一例では、制御装置2Aの処理手順は、ステップS201の前にステップS200の処理を更に含んでいる。また、上記ステップS205は、ステップS2051及びステップS2052により構成されている。これらの点を除いて、制御装置2Aの処理手順は、上記位相推定装置2の処理手順と同様であってよい。その他のステップ(S201~S204、S206~S210)の処理は、上記実施形態と同様であってよい。
【0167】
(ステップS200)
ステップS200では、制御部21は、設定部210として動作し、アシストパターン60を設定する。アシストパターン60は、歩行の位相に対するアシスト量を定義する。アシストパターン60は、予め与えられてよい。この場合、アシストパターン60の設定情報が、例えば、所定の記憶領域(記憶部22等)、プログラム内の設定値等として保持されてよい。設定情報は、システム固有に与えられてもよいし、オペレータの事前入力により与えられてもよい。制御部21は、この設定情報に基づいて、アシストパターン60を設定してもよい。或いは、アシストパターン60は、オペレータからの入力により与えられてよい。一例では、アシストパターン60は、オペレータ(理学療法士)の手入力により生成されてよい。ただし、アシストパターン60を手入力で生成することは、熟練の経験に依存し、困難である。そこで、他の一例では、アシストパターン60は、1つ以上の筋モジュールにより構成されてよい。
【0168】
図15は、第1具体例に係るアシストパターン60を構成する筋モジュールの一例を模式的に示す。筋モジュールは、例えば、膝屈曲、膝伸展、足底屈、足背屈、抗重力筋等の筋シナジーを再現するように、複数の周期関数を組み合わせることにより構成されてよい。筋シナジーは、複数の筋の組み合わせによる協調的な活動のことである。筋シナジーは、非線形であってよい。筋シナジーを再現する際、例えば、矩形波、のこぎり波等の計算コストの低い周期関数が優先的に使用されてよい。
【0169】
図15では、足底屈の筋モジュールの一例が示されている。図15の一例では、足底屈の筋モジュールが、大きさの異なる2つののこぎり波(第1周期関数、第2周期関数)の組み合わせにより構成されている。このように、周期関数の種類及び大きさを適宜選択することで、比較的に容易に非線形な筋シナジーを再現することができる。この筋モジュールの構成によれば、容易な演算により筋シナジーに即したアシストパターン60を実現することができる。また、従来の方法として、アシストパターンにおいて、歩行の位相に対する位置(例えば、モータの目標位置)を規定する方法が存在する。この方法では、複数のアシストパターンを組み合わせると、各アシストパターンの意図が損なわれてしまう。そのため、複数のアシストパターンを組み合わせることは容易ではない。これに対して、筋モジュールは、歩行の位相に対する力(例えば、トルク、圧力)を規定しているため、複数の筋モジュールを組み合わせても、各筋モジュールの意図は損なわれない。そのため、複数の筋モジュールを容易に組み合わせることができる。加えて、1つ以上の筋モジュールの選択及び選択された筋モジュールの強度の指定により、熟練の経験に依らずに、筋シナジーに即したアシストパターン60を容易に作成することができる。すなわち、アシストパターン60を手入力で生成する場合と比べて、調整する対象のパラメータ(筋モジュールの選択、強度の指定等)が少なく済むため、アシストパターン60を生成する手間を低減することができる。なお、アシストパターン60には、筋の活動を抑制する筋モジュールが含まれていてもよい。このような筋モジュールは、筋の活動を抑制する筋シナジーを再現する(例えば、引き算する)ことで適宜構成されてよい。
【0170】
なお、この筋モジュールにより構成されるアシストパターン60は、補正モデル45を使用しない任意の形態でも単独で採用されてよい。すなわち、筋モジュールの構成は、アシストパターンを設定するあらゆる場面で採用されてよい。一例では、コンピュータは、アシストパターンを設定し、所定の方法でユーザの歩行の位相の推定値を算出し、設定されたアシストパターンに従って、算出された推定値からアシスト量を決定し、及び決定されたアシスト量を出力してよい。歩行の位相を推定する所定の方法は、実施の形態に応じて適宜選択されてよい。所定の方法には、公知の方法が採用されてよい。この場合に、アシストパターンは、1つ以上の筋モジュールにより構成されてよく、筋モジュールは、筋シナジーを再現するように、複数の周期関数を組み合わせることにより構成されてよい。
【0171】
(ステップS2051及びステップS2052)
図14に戻り、ステップS2051では、制御部21は、出力部215として動作し、設定されたアシストパターン60に従って、補正された位相の推定値57からアシスト量61を決定する。すなわち、制御部21は、アシストパターン60を参照し、補正された位相の推定値57に対するアシスト量61を特定する(アシスト量61を示す情報をアシストパターン60から取得する)。アシスト量61を決定すると、制御部21は、次のステップS2052に処理を進める。
【0172】
ステップS2052では、制御部21は、出力部215として動作し、歩行アシスト装置70を制御するために、決定されたアシスト量61を出力する。一例では、制御装置2Aが歩行アシスト装置70に直接的に接続されている場合、決定されたアシスト量61を出力することは、決定されたアシスト量61で歩行アシスト装置70を駆動することにより構成されてよい。他の一例では、歩行アシスト装置70が制御装置を備える場合、決定されたアシスト量61を出力することは、決定されたアシスト量61を示す情報を含む駆動指令を制御装置に送信し、制御装置に対して、決定されたアシスト量61で歩行アシスト装置70を駆動させることにより構成されてよい。アシスト量61を出力すると、制御部21は、次のステップS206に処理を進める。
【0173】
(その他)
ステップS210における判定結果に応じて、制御部21は、ステップS201~ステップS204、ステップS2051及びステップS2051を含む推定サイクルを繰り返し実行する。
【0174】
推定サイクルを繰り返し実行する間に、想定される歩行動作と異なる歩行動作をユーザZが行う(一例では、地面に足が引っかかる)等に起因して、センサ値51から算出される位相の推定値57が、例えば、急激に変化する、遡る等の想定外の挙動を示す場合がある。これに対応するため、第1具体例では、制御部21は、2回目以降の推定サイクルのステップS2051において、前回の推定サイクルでの補正された推定値57及び今回の推定サイクルでの補正された推定値57の間の変化量を算出してよい。そして、制御部21は、算出された変化量が許容条件を満たすか否かを判定してよい。
【0175】
許容条件は、上記推定値57の想定外の挙動を許容しないように適宜設定されてよい。一例では、許容条件として、変化量の許容範囲(例えば、0~上限)が規定されてよい。上限の閾値は、任意の方法で与えられてよい。これにより、同一の歩行周期内で推定値57の変化量が負である又は閾値(上限)を超えていることが、許容条件を満たさないこととして判定されてよい。なお、位相の範囲が0~2πで定義される場合、ある歩行周期から次の歩行周期に移る際に、位相の推定値57が2πに近い値から0に近い値に変動し得る。許容条件は、この通常の歩行による推定値57の変動が急激な変化又は遡りと判定されないように設定されてよい。
【0176】
推定値57の変化量が許容条件を満たす場合、ステップS2051の処理において、制御部21は、今回の推定サイクルでの補正された推定値57から、今回の推定サイクルでのアシスト量61を決定してよい。一方、変化量が許容条件を満たさない場合、制御部21は、今回の推定サイクルでの補正された推定値57に依らず、前回の推定サイクルでの補正された推定値57に基づいて、今回の推定サイクルでのアシスト量61を決定してよい。今回の推定サイクルでの補正された位相の推定値57は破棄されてよい。
【0177】
一例では、前回の推定値57に基づいて、アシスト量61を決定することは、前回のアシスト量61を今回のアシスト量61として使用することにより構成されてよい。すなわち、制御部21は、前回の推定サイクルでのアシスト量61をそのまま今回の推定サイクルでのアシスト量61として採用してよい。変化量が許容条件を満たさない場合、制御部21は、位相の変化がなかったとして歩行のアシストを制御してよい。
【0178】
他の一例では、前回の推定値57に基づいて、アシスト量61を決定することは、1サイクル分の時間経過に伴う変化量を考慮して、前回のアシスト量61を補正することで、今回のアシスト量61を取得することにより構成されてよい。例えば、制御部21は、1サイクル分の時間に基づいて、歩行の周期又はステップ幅から補正された推定値57を更に補正してよい。そして、制御部21は、アシストパターン60に従って、更に補正された推定値から今回の推定サイクルでのアシスト量61を決定してよい。或いは、制御部21は、アシストパターン60に従って、1サイクルの時間に応じた変化量を算出してよい。そして、制御部21は、算出された変化量により前回の推定サイクルでのアシスト量61を補正することで、今回の推定サイクルでのアシスト量61を算出してよい。
【0179】
なお、上記実施形態と同様、推定サイクルを繰り返し実行される間に、ステップS201の処理により取得される複数のセンサ値51は、センサデータ31として保存されてよい。一例では、センサデータ31は、歩行アシスト装置70によるアシストを受けた状態での歩行をセンサSにより計測することで生成されたものであってよい。既に補正モデル45が生成されている場合、制御装置2Aは、上記ステップS201~ステップS2052の処理により、歩行アシスト装置70によるアシストを制御してよい。この制御を実行している間に、アシストを受けた状態での歩行のセンサデータ31(センサ値51)が獲得されてよい。一方、補正モデル45が生成されていない場合、制御装置2Aは、ステップS203及びステップS204の処理を省略し、基準モデル40により得られる位相の推定値53からアシスト量を決定し、決定されたアシスト量で歩行アシスト装置70のアシストを制御してよい。この制御を実行している間に、アシストを受けた状態での歩行のセンサデータ31(センサ値51)が獲得されてよい。他の一例では、センサデータ31は、歩行アシスト装置70によるアシストを受けていない状態での歩行をセンサSにより計測することで生成されたものであってよい。
【0180】
また、モデル生成装置1は、補正モデル45を繰り返し生成してよい(すなわち、生成サイクルを繰り返し実行してよい)。一例では、モデル生成装置1は、前回の生成サイクルで生成された補正モデル45を使用して、基準モデル40を補正してよい。これに応じて、制御装置2Aは、ステップS202の処理において、補正済みの基準モデル40を使用してよい。他の一例では、モデル生成装置1は、基準モデル40を更新することなく、生成サイクルの処理を繰り返し、補正モデル45を更新してよい。いずれの形態でも、補正モデル45が既に生成されている場合は、制御装置2Aは、上記のとおり、補正モデル45を使用して、歩行アシスト装置70によるアシストを制御してよい。この制御を実行している間に、新たなセンサデータ31(センサ値51)が獲得されてよく、獲得された新たなセンサデータ31は、次回以降の生成サイクルでの補正モデル45の生成に使用されてよい。更に他の一例では、モデル生成装置1は、歩行アシスト装置70により歩行のアシストを行っている場面及びアシストを行っていない場面それぞれで、生成サイクルの処理を実行することで、補正モデル45を生成してよい。制御装置2Aは、歩行アシスト装置70により歩行のアシストを行う場面及びアシストを省略する場面で、使用する補正モデル45を切り替えてよい。
【0181】
(特徴)
第1具体例に係る制御装置2Aによれば、上記実施形態と同様に、補正モデル45を使用することで、簡易かつリアルタイムにユーザZの歩行の位相を精度よく推定することができる。その結果、ユーザZに対して適切なタイミングで歩行のアシストを実行することができる。
【0182】
また、第1具体例では、ユーザZは、片麻痺等の患者であってよく、歩行アシスト装置70によるアシストは、リハビリテーションの少なくとも一部として活用されてよい。この場合、歩行アシスト装置70による歩行のアシストを繰り返し受けることにより、ユーザZの歩行能力が改善し、ユーザZの歩行が変化する可能性がある。ユーザZの歩行が変化すると、補正モデル45がユーザZの歩行動作に適合しなくなり、ユーザZの歩行の位相を精度よく推定することが困難になる可能性がある。これに対して、第1具体例によれば、ステップS206~ステップS209の処理により、補正モデル45による補正の精度を評価することで、使用されている補正モデル45がそのような状態に陥っているか否かを可視化することができる。これにより、ユーザZの歩行動作に適合しなくなった補正モデル45を位相推定に使用し続けることを避けることができる。また、新たな補正モデル45の生成を促すことで、制御装置2Aにおける位相推定の精度の維持を図り、適切なタイミングでの歩行アシストの遂行を継続することができる。
【0183】
また、第1具体例によれば、推定サイクルを繰り返し実行する間、ステップS2051の処理において、位相の推定値57の変化量が許容条件を満たすか否かを監視することができる。これにより、位相の推定値57が想定外の挙動を示した場合でも、前回の推定サイクルの推定結果を使用して、適正なアシストを実行することができる。
【0184】
なお、上記第1具体例において、歩行アシスト装置70は、空気圧方式の人工筋肉の出力により歩行をアシストするように構成されてよい。このように構成される歩行アシスト装置70の一例として、上記参考文献(国際公開第2020/246587号公報)で提案されている体重免荷装置が用いられてよい。図15に例示されるアシストパターン60の一例は、平滑化されていないため、オペレータ(理学療法士)の視認性には優れているが、このアシストパターン60の形状のまま駆動量を出力すると、スムーズなアシストが困難である。これに対して、空気圧方式の人工筋肉の出力により歩行をアシストするように構成される歩行アシスト装置70を用いることで、アシストパターン60が平滑化されていなくても、空気圧方式の人工筋肉のダイナミクス(例えば、モータドライバの遅延遅れ等)により、歩行アシスト装置70により実際に与えられるアシスト量は平滑化されたものとなる。そのため、当該構成によれば、アシストパターン60の平滑化を行わなくてもよいため、演算量の増大を招くことなく、スムーズなアシストの実施を期待することができる。また、アシストパターン60の視認性を確保することができる(例えば、アシストの開始時点及び終了時点を特定しやすい)。なお、制御装置2Aは、空気圧方式の人工筋肉のダイナミクスにアシストパターン60を適用することで、歩行アシスト装置70により出力されるアシスト量を予測してもよい。制御装置2Aは、予測されたアシスト量を出力装置に出力してもよい。これにより、オペレータ(理学療法士)に実際に出力されるアシスト量を提示してよい。ただし、第1具体例の構成は、このような例に限られなくてよい。他の一例では、制御装置2Aの制御部21は、設定されたアシストパターン60を平滑化してよく、平滑化されたアシストパターン60に従って、アシスト量61を決定してもよい。平滑化は、任意の方法で行われてよい。
【0185】
(A-2)機能的電気刺激により痙縮の減弱を行う場面
図16は、第2具体例に係る推定システムの適用場面の一例を模式的に示す。第2具体例は、機能的電気刺激を与えるタイミングの決定に歩行の位相の推定結果を活用する場面に上記実施形態を適用した例である。第2具体例に係る推定システムは、モデル生成装置1及び制御装置2Bを備える。制御装置2Bは、上記位相推定装置2の一例である。機能的電気刺激装置71は、制御対象装置(電気刺激装置)の一例である。
【0186】
痙縮は、筋肉が緊張しすぎて、手足が動かし難くなる又は勝手に動いてしまう状態のことである。痙縮は、脳卒中の後遺症として現れる場合がある。この痙縮を抱える患者に対して、機能的電気刺激(functional electrical stimulation)を用いた訓練を行うことにより、筋の痙縮を減弱させ、静的立位バランス及び歩行速度を改善させるという報告がある。第2具体例に係る制御装置2Bは、機能的電気刺激装置71の動作を制御して、この訓練をユーザZに提供するように構成される。
【0187】
具体的に、制御装置2Bは、ユーザZの歩行に対するセンサSのセンサ値51を取得する。制御装置2Bは、基準モデル40を使用して、取得されたセンサ値51から歩行の位相の推定値53を算出する。制御装置2Bは、補正モデル45を使用して、算出された位相の推定値53から誤差55を推定する。制御装置2Bは、推定された誤差55により、算出された位相の推定値53を補正する。これにより、制御装置2Bは、補正された位相の推定値57を取得する。
【0188】
制御装置2Bは、補正された位相の推定値57に応じて、機能的電気刺激63を与えるか否かを決定する。機能的電気刺激63を与えるか否かを決定することは、電気刺激装置による電気刺激の量を決定することの一例である。機能的電気刺激63を与えるタイミングは、上記第1具体例のアシストパターン60のように、歩行の位相に応じて定義されていてよい。このタイミングの定義情報は、制御装置2Bの記憶部等の任意の記憶領域に保存されていてよい。制御装置2Bは、当該定義情報を参照することで、補正された位相の推定値57に応じて、機能的電気刺激63を与えるか否かを決定してよい。
【0189】
そして、制御装置2Bは、機能的電気刺激装置71を制御するために、決定の結果を示す情報を出力する。一例では、制御装置2Bが機能的電気刺激装置71に直接的に接続されている場合、制御装置2Bは、機能的電気刺激63を与えることを決定したに応じて、機能的電気刺激63をユーザZに与えるように機能的電気刺激装置71を駆動してよい。他の一例では、機能的電気刺激装置71が制御装置を備える場合、制御装置2Bは、機能的電気刺激63を与えることを決定したに応じて、そのことを示す情報を含む駆動指令を制御装置に送信し、制御装置に対して、機能的電気刺激63をユーザZに与えるように機能的電気刺激装置71を駆動させてよい。
【0190】
すなわち、第2具体例では、位相の推定値57に関する情報を出力することは、補正された位相の推定値57に応じて、機能的電気刺激63を与えるか否かを決定すること、及び決定の結果を示す情報を出力することを含む。これらの点を除き、第2具体例の構成は、上記実施形態と同様であってよい。制御装置2Bのハードウェア構成及びソフトウェア構成は、上記位相推定装置2又は制御装置2Aと同様であってよい。第2具体例において、位相推定プログラムは、上記第1具体例と同様に、制御プログラムと読み替えられてよい。また、制御装置2Bの処理手順も、上記位相推定装置2又は制御装置2Aと同様であってよい。
【0191】
なお、制御装置2Bは、通信インタフェース又は外部インタフェースを介して機能的電気刺激装置71に接続されてよい。機能的電気刺激装置71は、歩行動作を行うユーザZに対して機能的電気刺激を与えるように構成される。機能的電気刺激は、特定の機能を達成する(例えば、神経活動を模擬する)ように構成された電気刺激のことである。機能的電気刺激を提供可能であれば、機能的電気刺激装置71の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。機能的電気刺激装置71には、公知の機能的電気刺激装置が用いられてよい。
【0192】
(特徴)
第2具体例に係る制御装置2Bによれば、上記実施形態と同様に、補正モデル45を使用することで、簡易かつリアルタイムにユーザZの歩行の位相を精度よく推定することができる。その結果、ユーザZに対して適切なタイミングで機能的電気刺激63を与えることができる。これにより、適切な訓練をユーザZに提供することができ、静的立位バランス及び歩行速度の改善を期待することができる。
【0193】
(A-3)歩行中に脊髄神経経路の賦活を計測する場面
図17は、第3具体例に係る推定システムの適用場面の一例を模式的に示す。脊髄神経経路の賦活を計測する際、歩行の位相に応じて電気刺激を与えることがある。第3具体例は、この電気刺激を与えるタイミングの決定に歩行の位相の推定結果を活用する場面に上記実施形態を適用した例である。第3具体例に係る推定システムは、モデル生成装置1及び制御装置2Cを備える。制御装置2Cは、上記位相推定装置2の一例である。賦活計測装置73は、制御対象装置の一例である。
【0194】
第3具体例では、制御装置2Cは、ユーザZの歩行に対するセンサSのセンサ値51を取得する。制御装置2Cは、基準モデル40を使用して、取得されたセンサ値51から歩行の位相の推定値53を算出する。制御装置2Cは、補正モデル45を使用して、算出された位相の推定値53から誤差55を推定する。制御装置2Cは、推定された誤差55により、算出された位相の推定値53を補正する。これにより、制御装置2Cは、補正された位相の推定値57を取得する。
【0195】
制御装置2Cは、補正された位相の推定値57に応じて、電気刺激65を与えるか否かを決定する。電気刺激65を与えるか否かを決定することは、賦活計測装置における電気刺激の量を決定するの一例である。電気刺激65を与えるタイミングは、上記第2具体例と同様に、歩行の位相に応じて定義されていてよい。このタイミングの定義情報は、制御装置2Cの記憶部等の任意の記憶領域に保存されていてよい。制御装置2Cは、当該定義情報を参照することで、補正された位相の推定値57に応じて、電気刺激65を与えるか否かを決定してよい。
【0196】
そして、制御装置2Cは、賦活計測装置73を制御するために、決定の結果を示す情報を出力する。賦活計測装置73は、電気刺激装置及び筋電測定装置を備えてよい。電気刺激装置は、電気刺激を与えるように構成されてよい。電気刺激装置には、公知の電気刺激装置が用いられてよい。筋電測定装置は、電気刺激による反射(h波、m波等の筋電)を測定するように構成されてよい。筋電測定装置にも、公知の筋電測定装置が用いられてよい。
【0197】
一例では、制御装置2Cが賦活計測装置73に直接的に接続されている場合、制御装置2Cは、筋電測定装置によりユーザZの筋電を測定すると共に、電気刺激65を与えることを決定したことに応じて、電気刺激65をユーザZに与えるように電気刺激装置を駆動してよい。他の一例では、賦活計測装置73が制御装置を備える場合、制御装置2Cは、筋電測定装置によりユーザZの筋電を測定させるように制御装置に指示を与えると共に、電気刺激65を与えることを決定したことに応じて、そのことを示す情報を含む駆動指令を制御装置に送信し、制御装置に対して、電気刺激65をユーザZに与えるように電気刺激装置を駆動させてよい。
【0198】
すなわち、第3具体例では、位相の推定値57に関する情報を出力することは、補正された位相の推定値57に応じて、電気刺激65を与えるか否かを決定すること、及び決定の結果を示す情報を出力することを含む。これらの点を除き、第3具体例の構成は、上記実施形態と同様であってよい。制御装置2Cのハードウェア構成及びソフトウェア構成は、上記位相推定装置2又は制御装置2Aと同様であってよい。第3具体例において、位相推定プログラムは、上記第1具体例と同様に、制御プログラムと読み替えられてよい。また、制御装置2Cの処理手順も、上記位相推定装置2又は制御装置2Aと同様であってよい。なお、制御装置2Cは、通信インタフェース又は外部インタフェースを介して賦活計測装置73に接続されてよい。
【0199】
(特徴)
第3具体例に係る制御装置2Cによれば、上記実施形態と同様に、補正モデル45を使用することで、簡易かつリアルタイムにユーザZの歩行の位相を精度よく推定することができる。その結果、ユーザZに対して適切なタイミングで電気刺激65を与えることができる。これにより、脊髄神経経路の抑制又は促通具合を評価するために、脊髄神経経路の賦活を適切に計測することができる。
【0200】
(B)歩行の異常を検出する場面
図18は、第4具体例に係る推定システムの適用場面の一例を模式的に示す。第4具体例は、歩行の位相の推定結果に基づいて歩行の異常を検出する場面に上記実施形態を適用した例である。第4具体例に係る推定システムは、モデル生成装置1及び監視装置2Dを備える。監視装置2Dは、上記位相推定装置2の一例である。
【0201】
第4具体例では、監視装置2Dは、ユーザZの歩行に対するセンサSのセンサ値51を取得する。監視装置2Dは、基準モデル40を使用して、取得されたセンサ値51から歩行の位相の推定値53を算出する。監視装置2Dは、補正モデル45を使用して、算出された位相の推定値53から誤差55を推定する。監視装置2Dは、推定された誤差55により、算出された位相の推定値53を補正する。これにより、監視装置2Dは、補正された位相の推定値57を取得する。
【0202】
監視装置2Dは、補正された位相の推定値57に基づいて、ユーザZの歩行に異常があるか否かを判定する。ユーザZが正常に歩行している間、上記図10Aに示されるとおり、得られる位相の推定値57は、直線的に推移する。一方、ユーザZの歩行に異常が生じると、得られる位相の推定値57は、正常パターン(直線)から外れる。歩行に異常が生じた場面とは、例えば、転倒リスクが生じた場面である。監視装置2Dは、この正常パターンからのずれに応じて、ユーザZの歩行に異常があるか否かを判定してよい。正常パターンを示す情報は、上記第2具体例等と同様に、定義情報として保持されていてよい。
【0203】
一例では、監視装置2Dは、位相の推定値57と正常パターンとの間のずれの大きさを算出し、算出されたずれの大きさを閾値と比較することで、ユーザZの歩行に異常があるか否かを判定してよい。他の一例では、監視装置2Dは、訓練済みの機械学習モデル等の演算モデルを利用して、位相の推定値57の正常パターンからのずれを評価し、評価の結果に応じて、歩行に異常があるか否かを判定してよい。
【0204】
そして、監視装置2Dは、判定の結果を示す情報を出力する。一例では、判定の結果を示す情報を出力することは、監視装置2D又は他のコンピュータの出力装置に判定の結果を出力することにより構成されてよい。他の一例では、判定の結果を示す情報を出力することは、ユーザZの歩行に異常があると判定された場合に、そのことを知らせるためのアラートを監視装置2D又は他のコンピュータの出力装置に出力することにより構成されてよい。更に他の一例では、判定の結果を示す情報を出力することは、ユーザZの歩行に異常があると判定された場合に、ユーザZの歩行をアシストする(例えば、転倒を防止する)ように歩行アシスト装置の動作を制御することにより構成されてよい。
【0205】
制御方法の一例として、監視装置2Dが歩行アシスト装置に直接的に接続されている場合、監視装置2Dは、ユーザZの歩行に異常があると判定したことに応じて、ユーザZの歩行をアシストするように歩行アシスト装置を駆動してよい。他の一例として、歩行アシスト装置が制御装置を備える場合、監視装置2Dは、ユーザZの歩行に異常があると判定したことに応じて、そのことを示す情報を含む駆動指令を制御装置に送信し、制御装置に対して、ユーザZの歩行をアシストするように歩行アシスト装置を駆動させてよい。歩行アシスト装置は、上記歩行アシスト装置70と同様であってよい。
【0206】
すなわち、第4具体例では、位相の推定値57に関する情報を出力することは、補正された位相の推定値57に基づいて、ユーザZの歩行に異常があるか否かを判定すること、及び判定の結果を示す情報を出力することを含む。これらの点を除き、第4具体例の構成は、上記実施形態と同様であってよい。監視装置2Dのハードウェア構成及びソフトウェア構成は、上記位相推定装置2又は制御装置2Aと同様であってよい。第4具体例において、位相推定プログラムは、監視プログラムと読み替えられてよい。また、監視装置2Dの処理手順も、上記位相推定装置2又は制御装置2Aと同様であってよい。なお、監視装置2Dは、通信インタフェース又は外部インタフェースを介して歩行アシスト装置に接続されてよい。
【0207】
(特徴)
第4具体例に係る監視装置2Dによれば、上記実施形態と同様に、補正モデル45を使用することで、簡易かつリアルタイムにユーザZの歩行の位相を精度よく推定することができる。その結果、ユーザZの歩行に異常が生じているか否かをリアルタイムに精度よく推定することができる。これにより、ユーザZの歩行に対して適切なタイミングで介入(例えば、転倒防止のためのアシスト)を行うことができる。
【0208】
<4.2>
上記実施形態及び変形例の処理手順(図7図9図14)について、ステップの省略、置換、及び追加の少なくともいずれかが行われてよい。
【0209】
例えば、上記モデル生成装置1の処理手順において、ステップS104~ステップS107の処理は省略されてよい。これに応じて、評価部115は、モデル生成装置1のソフトウェア構成から省略されてよい。上記モデル生成装置1の処理手順において、ステップS107の処理は省略されてよい。この場合、制御部11は、ステップS106の処理の後、ステップS108に処理を進めてもよい。
【0210】
上記モデル生成装置1の処理手順において、ステップS106の処理は省略されてよい。推定値33のばらつきの大きさが閾値を超えている場合、制御部11は、ばらつきを大きくしている要因となっている周期のデータ(典型的には、歩行し始め/歩行終了間際のデータ)を除外し、ばらつきの大きさを抑えた上で、補正モデル45を生成してよい。一例では、制御部11は、各周期における推定値33のうちの外れ値を特定し、外れ値を除外した上で、補正モデル45を生成してよい。外れ値の特定には、公知の統計的手法が採用されてよい。
【0211】
上記モデル生成装置1の処理手順において、ステップS110の処理は省略されてよい。モデル生成装置1及び位相推定装置2が一体的に構成される場合、上記モデル生成装置1の処理手順において、ステップS109の処理は省略されてよい。
【0212】
また、例えば、歩行の周期(0~2πの範囲)には、重要区間が設けられてよい。重要区間は、例えば、オペレータの指定、プログラム内の設定値等の任意の方法で与えられてよい。上記ステップS108では、制御部11は、重要区間に対する誤差評価の重みを他の区間よりも大きくすることで、重要区間における補正の精度が他の区間よりも高くなるように補正モデル45のパラメータを調整してよい。これにより、重要区間における歩行の位相の推定精度の向上を図ることができる。
【0213】
また、例えば、上記位相推定装置2(制御装置2A)の処理手順において、ステップS206~ステップS209の処理は省略されてよい。これに応じて、監視部216は、位相推定装置2(制御装置2A)のソフトウェア構成から省略されてよい。上記位相推定装置2(制御装置2A)の処理手順において、ステップS210の処理は省略されてよい。他の一例では、制御部21は、割り込みによる停止命令が与えられるまで、推定サイクルを繰り返し実行してよい。
【0214】
上記位相推定装置2(制御装置2A)の処理手順において、ステップS208の処理により算出される誤差が閾値を超えている場合に、制御部21は、モデル生成装置1に対してそのことを示す通知を出力してよい。モデル生成装置1は、その通知を受け取ったことに応じて、ステップS101から処理を実行し、新たな補正モデル45を生成してよい。モデル生成装置1は、新たな補正モデル45を任意の方法で位相推定装置2(制御装置2A)に提供してよい。位相推定装置2(制御装置2A)は、新たな補正モデル45を受け取ったことに応じて、推定サイクルの実行を再開してよい。モデル生成装置1及び位相推定装置2(制御装置2A)が一体的に構成される場合には、コンピュータは、ステップS208の処理により算出される誤差が閾値を超えていることに応じて、モデル生成装置1としても動作して、新たな補正モデル45を自動的に生成してよい。
【0215】
また、例えば、補正モデル45が生成されていない段階では、制御部21は、ステップS203及びステップS204の処理を省略してよい。この場合、制御部21は、ステップS202の処理により、基準モデル40から得られる位相の推定値53を使用して、ステップS205の出力処理を実行してよい。上記ステップS2051では、制御部21は、位相の推定値53からアシスト量61を決定してよい。
【0216】
また、上記実施形態の推定段階において、センサ値51の伝送(例えば、データ通信の遅延)、センサ値51を得る前処理(例えば、フィルタリング)を含む推定処理の演算負荷等の影響により、センサ値51を得てから位相の推定値53を得るまでに遅れが生じてしまう(すなわち、少し遅れた時間の位相を推定する)可能性がある。一例として、足底センサ(センサS)をインソールに配置し、無線通信でデータを伝送する構成を採用した場合に、無線通信の遅延の影響により、センサ値51を得てから位相の推定値53を得るまでに遅れが生じる可能性がある。加えて、制御対象装置を駆動する形態(制御装置2A~2C)を採用する場合に、出力の過程でも遅延が生じる可能性がある。一例として、制御対象装置がアクチュエータを含む場合に、アクチュエータに設定値(駆動量)を入力してから実際に出力が得られるまでに時間がかかることで、遅延が生じる可能性がある。
【0217】
図19は、位相の推定に関する遅延を説明するための図である。図19では、実線は、測定される位相(補正された位相の推定値57)を示し、点線は、反映時点における実際の位相(例えば、歩行アシスト装置70により歩行を実際にアシストするタイミングの位相)を示す。上記のとおり、位相の推定に関する遅延は、センサ値51を得る過程(センサ値51の伝送等)、補正された位相の推定値57を得る演算過程(前処理、上記推定処理等)、及び推定結果を出力する過程(制御対象装置の駆動等)の少なくともいずれかで生じ得る。この遅延の影響により、実際の位相と測定される位相との間にはずれが生じ得る。これに対応するため、位相推定装置2(制御装置2A~2C、監視装置2D)は、位相の推定に関する遅延による位相のずれを特定し、特定された位相のずれにより、補正された位相の推定値57を更に補正するように構成されてよい。遅れに応じた補正量は、単位時間当たりの位相の変化量等から適宜推定されてよい。
【0218】
図20は、上記位相推定装置2の処理手順の他の一例を示すフローチャートである。以下で説明する位相推定装置2の処理手順は、位相推定方法(情報処理方法)の一例である。ただし、以下で説明する位相推定装置2の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0219】
図20の一例では、位相推定装置2の処理手順は、ステップS204及びステップS205の間に、ステップS2041及びステップS2042の処理を更に含んでいる。これらの点を除いて、位相推定装置2の処理手順は、上記図9の位相推定装置2の処理手順と同様であってよい。その他のステップ(S201~S204、S205~S210)の処理は、上記実施形態と同様であってよい。
【0220】
(ステップS2041)
ステップS2041では、制御部21は、補正部214として動作し、位相の推定に関する遅延による位相のずれを特定する。一例では、制御部21は、「単位時間当たりの位相の変化量×遅延時間」の演算により、遅延による位相のずれを算出してよい。単位時間当たりの位相の変化量及び遅延時間の情報は適宜得られてよい。
【0221】
単位時間当たりの位相の変化量は、歩行時の位相の角速度から推定されてよい。単純な方法の一例として、制御部21は、位相の推定を繰り返す過程で、前回のサンプリングにおける推定値57と今回のサンプリングにおける推定値57との差分をサンプリング周期で割ることにより、単位時間当たりの位相の変化量の推定値を算出してよい。制御部21は、各サンプリングのタイミングで算出される変化量の推定値を適宜平滑化してよく、平滑化された推定値を上記演算の「単位時間当たりの位相の変化量」として使用してよい。なお、この方法を採用する場合、複数のサンプルが得られていない段階(初回演算時)では、ステップS2041及びステップS2042の処理は適宜処理されてよい(例えば、省略されてよい)。
【0222】
一方、遅延時間は、予め得られてよい。位相の推定に関する遅延は、センサ値51の取得過程(センサ値51の伝送等)の遅延、補正された位相の推定値57を算出する演算過程(前処理、上記推定処理等)の遅延、及び推定結果の出力過程(制御対象装置の駆動等)の遅延少なくともいずれかを含んでよい。遅延時間は、任意の方法で計測されてよい。センサ値51の取得過程における遅延時間を得る方法の一例として、センサSと同種のセンサであって、伝送遅延を無視可能なセンサとセンサSとにより同時に測定を行い、得られたデータを比較することで、遅延時間を計測することができる。具体例として、センサSのセンサデータを無線通信により伝送する構成を採用する場合、センサS(無線センサ)と有線センサとをコンピュータに接続し、コンピュータ上で、有線センサから得られるセンサデータに対するセンサSから得られるセンサデータの遅れを計測することで、遅延時間が得られてよい。他の一例では、センサSの伝送規格について公知の情報(例えば、Bluetooth(登録商標)では、各コーデックの一般的な遅延時間が知られている)から遅延時間が得られてもよい。他の一例では、コンピュータ制御によりパルス状の刺激(例えば、荷重)をセンサSに与えてから、その刺激に対するセンサ値が得られるまでの時間を計測することにより遅延時間が得られてもよい。演算過程における遅延時間を得る方法の一例として、センサ値51を取得してから情報を出力するまでの演算にかかる時間を計測し、計測された時間を遅延時間として得てよい。演算にかかる時間は、コンピュータ(位相推定装置2)のCPUの演算能力に応じて適宜特定されてよい。出力過程における遅延時間を得る方法の一例として、制御対象装置に指示を与えて、その指示に応じた出力が制御対象装置から得られるまでの時間を遅延時間として得てよい。具体例として、制御対象装置は、アクチュエータを備えてよい(例えば、上記歩行アシスト装置70において、アシスト量をアクチュエータにより出力するケース)。この場合、コンピュータ制御によりアクチュエータに指示を与えてから実際に出力が得られるまでの時間を遅延時間として計測してよい。実際に出力が得られた時点は、ロードセル、圧力センサ(流体圧アクチュエータを用いる場合)、電流計(モータ駆動のアクチュエータを用いる場合)等のセンサの計測値から特定されてよい。なお、出力過程のおける遅延時間は、動的に変動する可能性がある。例えば、空気圧方式の人工筋肉では、内圧を上げる際には遅延時間が短いが、内圧を下げる際には遅延時間が長くなることがある。そのため、出力過程における遅延時間は、歩行の位相(推定値57)に応じて変化するように構成されてもよい。一例として、上記歩行アシスト装置70を制御する場面では、出力過程における遅延時間は、アシストパターン60及び推定値57に応じて決定されてよい。例えば、出力過程における遅延時間は、アシスト量が増加する過程の第1遅延時間及び減少する過程の第2遅延時間により構成されてよい。制御装置2Aは、推定値57から決定されるアシスト量61の時点が、アシストパターン60におけるアシスト量の増加過程か減少過程かを判別し、第1遅延時間及び第2遅延時間のいずれを採用するかを選択してよい。各遅延時間の値は、歩行アシスト装置70の特性(バルブの特性等)に応じて決定されてよい。なお、第1遅延時間と第2遅延時間との間に差があることで、使用する遅延時間を一時点で切り替えると、特定される位相のずれ(補正量)が不連続になり得る。これに対応するため、第1遅延時間から第2遅延時間に切り替える際、及び第2遅延時間から第1遅延時間に切り替える際に、制御装置2Aは、第1遅延時間及び第2遅延時間の間で遅延時間の値を補間し、使用する遅延時間を漸近的に変更させてよい。位相推定装置2は、これらの遅延時間の情報を予め保持してよい。制御部21は、上記いずれかの方法により、単位時間当たりの位相の変化量及び遅延時間の情報を取得し、取得された情報に従って、「単位時間当たりの位相の変化量×遅延時間」の演算を実行することで、遅延による位相のずれを算出してよい。位相のずれを特定すると、制御部21は、次のステップS2042に処理を進める。
【0223】
(ステップS2042)
ステップS2042では、制御部21は、補正部214として動作し、特定された位相のずれにより、補正された位相の推定値57を更に補正する。具体的には、制御部21は、補正された位相の推定値57に特定されたずれを加算することで、更に補正された位相の推定値を算出してよい。
【0224】
これに応じて、ステップS205における補正された位相の推定値57に関する情報は、更に補正された位相の推定値に関する情報により構成されてよい。上記制御対象装置の動作を制御する場面では、補正された位相の推定値57から制御対象装置の駆動量を決定することは、更に補正された位相の推定値から制御対象装置の駆動量を決定することにより構成されてよい。上記歩行アシスト装置70を用いる場面では、補正された位相の推定値57からアシスト量61を決定することは、更に補正された位相の推定値からアシスト量61を決定することにより構成されてよい。上記電気刺激装置(機能的電気刺激装置71)を用いる場面では、補正された位相の推定値57から電気刺激装置による電気刺激の量を決定するは、更に補正された位相の推定値から電気刺激装置による電気刺激の量を決定することにより構成されてよい。上記賦活計測装置73を用いる場面では、補正された位相の推定値57から賦活計測装置73における電気刺激の量を決定することは、更に補正された位相の推定値から賦活計測装置73における電気刺激の量を決定することにより構成されてよい。上記歩行の異常を検出する場面では、補正された位相の推定値57に基づいて、ユーザZの歩行に異常があるか否かを判定することは、更に補正された位相の推定値に基づいて、ユーザZの歩行に異常があるか否かを判定することにより構成されてよい。
【0225】
なお、ステップS2041の処理を実行するタイミングは、図20の例に限られなくてよい。ステップS2041の処理は、ステップS2042の前の任意のタイミングに実行されてよい。また、図20の例では、位相の推定を繰り返す度に、ステップS2041の処理が実行されている。しかしながら、ステップS2041の処理は、位相の推定を繰り返す度に必ずしも実行されなくてもよい。他の一例では、ステップS2041の処理は所定期間経過毎に実行されてよく、所定期間の間、ステップS2042の処理では、得られた位相のずれの値が繰り返し使用されてよい。
【0226】
(特徴)
本変形例によれば、遅延の影響を低減することができる。その結果、制御対象装置を制御する場面では、制御対象装置(歩行アシスト装置70、機能的電気刺激装置71、賦活計測装置73)をより適切なタイミングで動作制御することができる。上記歩行アシスト装置70を制御する場面では、遅延による影響を低減する他の方法として、上記位相のずれによる更なる補正を行うのではなく、アシストパターン60を遅延に応じて修正する(ユーザに応じて再調整する)方法が挙げられる。ただし、この方法を採用した場合には、ユーザにより、遅延の影響が異なり得るため、与えるアシストパターンをユーザ間で比較することが困難になる。これに対して、補正モデル45による補正と共に上記位相のずれによる更なる補正を採用した場合には、アシストパターン60を変更しなくてもよいため、ユーザ間での比較が容易になる。また、アシストパターン60を歩行のタイプに応じてテンプレート化することができる。また、歩行の異常を検出する場面では、歩行に異常があるか否かをよりリアルタイムに検出することができる。
【0227】
<4.3>
上記実施形態及び変形例では、補正モデル45は、ユーザZの歩行速度に関係なく使用されてもよい。ただし、後述する実験例により、基準モデルを使用して算出されるユーザの歩行の位相の推定値と理想値との間の誤差は歩行速度に応じて変わり得ることが分かった。そこで、上記実施形態及び変形例において、補正モデル45は、ユーザZの歩行速度に応じて生成されてもよい。一例では、補正モデル45は、2km/h、3km/h、4km/h等の基準速度毎に生成されてよい。基準速度は、一定値で指定されてもよいし、或いは数値範囲で指定されてもよい。なお、以下では、説明の便宜上、基準速度は、一定値で指定されたものとして説明する。
【0228】
生成された複数の補正モデル45の使用方法の一例として、推定段階では、位相推定装置2(制御装置2A~2C、監視装置2D)は、ユーザZの歩行速度を測定し、測定された歩行速度に応じて、複数の補正モデル45のうちのいずれかを選択してよい。位相推定装置2(制御装置2A~2C、監視装置2D)は、例えば、測定された歩行速度に最も近い基準速度で生成された補正モデル45を選択してよい。そして、位相推定装置2(制御装置2A~2C、監視装置2D)は、選択された補正モデル45を使用して、ユーザZの歩行の推定値53を補正してよい。これにより、位相推定装置2(制御装置2A~2C、監視装置2D)は、補正された位相の推定値57を取得してよい。
【0229】
使用方法の他の一例では、位相推定装置2(制御装置2A~2C、監視装置2D)は、測定された歩行速度に応じて、複数の補正モデル45それぞれの合成比を決定してよい。決定方法の一例として、位相推定装置2(制御装置2A~2C、監視装置2D)は、歩行速度の測定値に基準速度が近いほど、対応する補正モデル45の合成比が高く、歩行速度の測定値に基準速度が離れているほど、対応する補正モデル45の合成比が低くなるように各補正モデル45の合成比を決定してよい。次に、位相推定装置2(制御装置2A~2C、監視装置2D)は、決定された合成比で各補正モデル45を合成することで、合成された補正モデル(以下、「合成補正モデル」と称する)を生成してよい。位相推定装置2(制御装置2A~2C、監視装置2D)は、生成された合成補正モデルを使用して、ユーザZの歩行の推定値53を補正してよい。これにより、位相推定装置2(制御装置2A~2C、監視装置2D)は、補正された位相の推定値57を取得してよい。
【0230】
なお、ユーザZの歩行速度は、任意のセンサにより測定されてよい。ユーザZの歩行速度の測定には、センサSが用いられてもよいし、センサS以外の他のセンサが用いられてもよい。センサSを歩行速度の測定にも使用する場合、歩行速度の測定のための情報処理は、歩行の位相推定のための情報処理と少なくとも部分的に共通であってもよいし、或いは歩行の位相推定のための情報処理とは完全に別個であってもよい。ユーザZがトレッドミル上で歩行する場合、トレッドミルの速度が、ユーザZの歩行速度として使用されてよい。すなわち、位相推定装置2(制御装置2A~2C、監視装置2D)は、トレッドミルからユーザZの歩行速度の測定値を得てよい。他の一例では、歩行の位相の変化量は、歩行速度に比例し得る。そこで、位相推定装置2(制御装置2A~2C、監視装置2D)は、歩行の位相の推定結果から歩行速度を推定してもよい。
【0231】
更に他の一例では、歩行速度が速いほど、ユーザZの足底に作用する荷重が大きくなり得る。そこで、足底センサを使用する場合、位相推定装置2(制御装置2A~2C、監視装置2D)は、足底センサの測定値から歩行速度を推定してよい。或いは、補正モデル45の指標として、足底に作用する荷重が、歩行速度に代えて/共に使用されてよい。すなわち、補正モデル45は、ユーザZの足底に作用する荷重に応じて生成されてよい。この場合、生成された複数の補正モデル45は、上記歩行速度の例と同様に使用されてよい。一例では、位相推定装置2(制御装置2A~2C、監視装置2D)は、足底センサの測定値に応じて、複数の補正モデル45のうちのいずれかを選択してよい。他の一例では、位相推定装置2(制御装置2A~2C、監視装置2D)は、足底センサの測定値に応じて複数の補正モデル45を合成してもよい。
【0232】
§5 実験例
上記実施形態の有効性を検証するため、以下の実験を行った。ただし、本発明は、以下の実験例に限定されるものではない。
【0233】
実験例では、健常な成人男性2名それぞれについて、基準モデルに対する補正モデルを生成し、トレッドミル上での歩行の位相を推定した。基準モデル(φavg)として、以下の式1~4で示される倒立振り子台車モデルにより歩行ダイナミクスを近似することで得られるモデルにより構成される推定器を用いた(参考文献:J. Morimoto, G. Endo, J. Nakanishi, and G. Cheng. A Biologically Inspired Biped Locomotion Strategy for Humanoid Robots: Modulation of Sinusoidal Patterns by a Coupled Oscillator Model. IEEE Transactions on Robotics, 24(1):185-191, Feb. 2008)。
【0234】
【数1】

・・・(式1)
【数2】

・・・(式2)
ここで、式1の左辺及び式2の左辺は、足底センサにより推定される歩行の位相及び人の歩行ダイナミクスにより生成される位相である。また、ω(>0)及びωavg(>0)は、人の歩行ダイナミクス及び推定器の固有振動数である。K及びKavgは、正のカップリング定数である。このモデルに基づくと、基準モデルによる位相推定は、以下の式3及び式4により可能となる。
【0235】
【数3】

・・・(式3)
【数4】

・・・(式4)
ここで、yは、倒立振り子台車の床面の基準点を中心とした圧力中心である。f及びfは、足底センサにより測定される左右の正規化された垂直荷重である。
【0236】
補正モデル(φstyle)及び基準モデルの間の関係は、以下の式5により表現することができる。
【0237】
【数5】

・・・(式5)
ここで、φは、位相の理想値(真値)である。本実験例では、各被験者に一定の速度で歩行させ、得られたデータに対して踵接地から次の踵接地を検出することで分割し、0から2πの範囲に正規化することによりφを得た。補正モデル(φstyle)には、以下の式6及び式7により示される関数を用いた。
【0238】
【数6】

・・・(式6)
【数7】

・・・(式7)
Mは基底関数の分割数であり、Mが大きいほど位相空間の細かい変動に追従できる。本実験例では、Mは、25とした。
【0239】
歩行の位相の推定には、足底センサとしてフォースセンシングレジスタを用いた。左右それぞれの靴のインソールの下側において、踵及び母指球それぞれに対応する位置に足底センサを配置した(すなわち、合計4つの足底センサを使用した)。センサ読取ユニットを被験者の腰部にベルトで固定し、各足底センサ及びセンサ読取ユニットを有線で接続した。センサ読取ユニットは、パーソナルコンピュータとLANケーブルで接続し、PoE(Power Over Ethernet)により電力を供給した。
【0240】
実験例では、センサ読取ユニットにおいて、足底センサの測定値(FSRの電圧)に対して16ビットのAD変換を実行した。そして、パーソナルコンピュータにおいて、250Hzの制御周期でサンプリングした。フォースセンシングレジスタは、荷重の増加に対して非線形に抵抗が減少する特性を有する。そのため、フォースセンシングレジスタのモデルを用いて各足底センサの測定値を線形化し、かつ踵及び母指球の測定値の合計を正規化することで、f及びfを算出した。トレッドミルは、外部電圧制御できるようにセットアップした。
【0241】
準備段階では、補正モデルを生成するため、トレッドミルの速度を2km/h(0.56m/s)に設定し、25秒間の歩行を行った際の足底センサのデータを取得した。計測開始のタイミングは、各被験者によって操作したため、1歩行サイクルの途中で歩行の計測が開始された。よって、1サイクル目のデータを除いたデータを用いて、二乗誤差が最小になるようにオフラインの機械学習を実行することで、各被験者の補正モデルを生成した。
【0242】
推定段階では、生成された補正モデルを使用して、各被験者の歩行の位相をリアルタイムに推定した。トレッドミルの最初の速度は、1km/h(0.28m/s)に設定した。しばらく後に、トレッドミルの速度を3km/h(0.83m/s)まで加速させた。その後、トレッドミルの速度を2km/h(0.56m/s)まで減速させ、停止させた。各被験者には、トレッドミルの速度に応じて歩行位置を維持し、快適な歩幅で歩行させた。パーソナルコンピュータでは、基準モデル及び補正モデルを使用して、リアルタイムに250Hzで位相の推定結果(補正された推定値)を算出し、得られた推定結果をRAMに一時的に格納した。そして、1回の歩行実験が完了した後に、RAMに格納された推定結果のデータをストレージに保存した。データのサンプリングから歩行の位相推定までを250Hz(4ミリ秒以内)で完了(すなわち、リアルタイム解析)可能であることを確認した。
【0243】
図21A及び図21Bは、第1被験者及び第2被験者に対するリアルタイムの位相推定実験の結果を示す。具体的には、図21A及び図21Bは、上から順に、位相の推定結果、トレッドミルの速度及び足底センサの測定値(線形化した後の荷重推定値)を示す。図21A及び図21Bに示されるとおり、補正モデルを使用することで、簡易かつリアルタイムに歩行の位相を精度よく推定可能であることが分かった。また、歩行速度が多少変動しても、補正モデルを使用することで、歩行の位相を精度よく推定可能であることが分かった。なお、本実験例では、トレッドミルの速度を2km/h(0.56m/s)に設定して、補正モデルを生成した(キャリブレーションした)。これに応じて、トレッドミルの速度が異なる条件下では、位相の推定結果にわずかな歪みが生じた。この結果から、基準モデルを使用して算出されるユーザの歩行の位相の推定値と理想値との間の誤差は歩行速度に応じて変わり得ることが分かった。そこで、上記のとおり、ユーザの歩行速度に応じて補正モデルを用意することで、更に精度よくユーザの歩行の位相を推定可能であることが推測された。
【符号の説明】
【0244】
1…モデル生成装置、
11…制御部、12…記憶部、
13…通信インタフェース、14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
81…モデル生成プログラム、91…記憶媒体、
111…データ取得部、112…位相推定部、
113…算出部、114…生成部、115…評価部、
121…基準モデルデータ、125…補正モデルデータ、
31…センサデータ、33…推定値、35…理想値、
40…基準モデル、45…補正モデル、
2…位相推定装置、
21…制御部、22…記憶部、
23…通信インタフェース、24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
82…位相推定プログラム、92…記憶媒体、
211…取得部、212…位相推定部、
213…誤差推定部、214…補正部、
215…出力部、216…監視部、
51…センサ値、53…推定値、55…誤差、
57…(補正された位相の)推定値
【要約】
コンピュータが、ユーザの1周期以上の歩行をセンサにより計測することで生成されたセンサデータを取得し、基準モデルを使用して、センサデータにおける歩行の位相の推定値を算出し、センサデータに表れる歩行の周期に基づいて、算出される推定値に対応する位相の理想値を算出し、かつ歩行位相の推定値及び理想値の間の誤差をモデル化することにより、補正モデルを生成する。これにより、簡易かつリアルタイムに歩行の位相を精度よく推定するための技術を提供する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21A
図21B