(57)【特許請求の範囲】
【請求項１】
移動体に与えられる外力を判定するために用いられるパラメータを決定するための外力判定用パラメータ決定装置であって、
前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力を所定のサンプリング周期で取得し、各サンプリング間隔における垂直抗力の変動量を指数関数で近似する近似部と、
任意に定めた閾値の値を変更しつつ、前記人的操作による外力と、前記積載による外力のそれぞれにおける垂直抗力の変動量が前記閾値を超える確率を、変更した前記閾値毎にそれぞれ求め、前記確率の差分を取得する取得部と、
前記取得部が取得した前記確率の差分に基づいて選択される閾値を、前記外力の判定に用いるパラメータとするパラメータ導出部と、を備える外力判定用パラメータ決定装置。
【請求項２】
前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力の変動をフーリエ変換し、当該フーリエ変換にて得られる各波形の振幅の大きさの差異に基づいて、前記サンプリング周期を決定する決定部を更に備える請求項１に記載の外力判定用パラメータ決定装置。
【請求項３】
前記取得部は、連続した所定回数の事象で、前記人的操作による外力と、前記積載による外力のそれぞれにおける前記垂直抗力の変動量が前記閾値を１回でも超える確率の差分を取得することを特徴とする請求項１又は２に記載の外力判定用パラメータ決定装置。
【請求項４】
移動体と、
請求項１〜３のいずれか一項に記載の外力判定用パラメータ決定装置の前記パラメータ導出部が導出したパラメータと、前記移動体の垂直抗力の変動とから、前記移動体に与えられている外力が人的操作による外力及び積載による外力のいずれであるかを判定する外力判定部と、
前記外力判定部による判定結果を用いて、前記移動体の駆動を制御する制御部と、を備える移動体装置。
【請求項５】
前記外力判定部は、前記近似部が用いたサンプリング周期で、外力の変動量を取得し、当該変動量と前記パラメータとの比較結果に基づいて、前記外力が人的操作による外力及び積載による外力のいずれであるかを判定することを特徴とする請求項４に記載の移動体装置。
【請求項６】
移動体に与えられる外力を判定するために用いられるパラメータをコンピュータに決定させるための外力判定用パラメータ決定プログラムであって、
前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力を所定のサンプリング周期で取得し、各サンプリング間隔における垂直抗力の変動量を指数関数で近似し、
任意に定めた閾値の値を変更しつつ、前記人的操作による外力と、前記積載による外力のそれぞれにおける垂直抗力の変動量が前記閾値を超える確率を、変更した前記閾値毎にそれぞれ求め、前記確率の差分を取得し、
前記取得した前記確率の差分に基づいて選択される閾値を、前記外力の判定に用いるパラメータとする処理、をコンピュータに実行させることを特徴とする外力判定用パラメータ決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、外力判定用パラメータ決定装置及びプログラム、並びに移動体装置に関する。
【背景技術】
【０００２】
近年、人が存在する環境下で動作して、人と共棲する自走型サービスロボットが開発されてきている。このようなロボットは、例えば、人に代わって荷物を運んだり、人を所定の場所に案内したりする機能を有している。しかるに、人が存在する環境下では、ロボットが人の通行を妨げるおそれがある。このような場合、人は、自己の進路上からロボットを移動させるため、手で押すなどの動作を行うのが自然かつ一般的である。
【０００３】
上記動作に応じてロボットを移動させるためには、例えば、ロボットの走行車輪の駆動用モータをサーボオフして、走行車輪が自由に回転できるようにすることが考えられる。この場合、人が走行車輪用モータを明示的にサーボオフしなければならず、またロボットがスロープ上にある場合は重力方向に転がる危険性もあり、望ましい方法ではない。これに対し、最近では、人がロボットを手で押したときの力から人の意図を検知して、駆動用モータを制御し、人の意図通り動作する技術が提案されている。このような技術は「パワーアシスト」として分類される技術である。
【０００４】
パワーアシスト技術は、大別して（Ａ）ロボットに３軸力覚センサや複数の荷重センサを搭載し、ロボットのボディに加わった力を検知する方法（特許文献１参照）や、（Ｂ）力検知センサを備えた専用のハンドルで人の操作力を検知する方法（特許文献２参照）がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２５９８９号公報
【特許文献２】特開２００１−１３８２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記（Ａ）に属する技術では、人によって操作感覚が異なるため、操作に慣れるまでに時間が掛かるおそれがある。また、（Ｂ）に属する技術では、公共性の高い空間にロボットを設置する場合には、不特定対数の人に触れられる可能性があるハンドルを専用のハンドルとすることが安全性の観点から難しい場合もある。また、（Ｂ）に属する技術では、ハンドルの付いた特定の方向からしかロボットを操作できず、不便になるおそれもある。
【０００７】
また、パワーアシスト技術では、外力に伴って変位するZero Moment Point(ＺＭＰ：重心に働く力が地面と交わる点)を計測し、当該ＺＭＰの変位方向に車輪を駆動させる方法が検討されている。しかるに、ロボットに作用する外力としては積載による外力も想定されるため、荷物などを積載することによりＺＭＰが変位すると、ロボットが誤動作するおそれがあった。そこで、最近では、人の押す力が時間経過に伴って変動することに着目し、力の変動が任意に定めた範囲内に一定時間収まっていれば、積載と判定してパワーアシストを実施しないようにする方法がとられている。この場合、力の変動の範囲としては例えば２Ｎ、一定時間としては例えば３秒以上という値が採用される。
【０００８】
しかしながら、上記力の変動範囲（例えば２Ｎ）や、一定時間（例えば３秒）などのパラメータは判定結果の信頼性に基づいて定められるものではなかったため、パワーアシストの精度として所望の値が得られないおそれがある。
【０００９】
そこで本件は上記の課題に鑑みてなされたものであり、移動体に与えられている外力が人的操作による外力及び積載による外力のいずれであるかの判定を高精度に行うためのパラメータを決定することが可能な外力判定用パラメータ決定装置及びプログラムを提供することを目的とする。また、本発明は、与えられる外力に応じた高精度な移動が可能な移動体装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本明細書に記載の外力判定用パラメータ決定装置は、移動体に与えられる外力を判定するために用いられるパラメータを決定するための外力判定用パラメータ決定装置であって、前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力を所定のサンプリング周期で取得し、各サンプリング間隔における垂直抗力の変動量を指数関数で近似する近似部と、任意に定めた閾値の値を変更しつつ、前記人的操作による外力と、前記積載による外力のそれぞれにおける垂直抗力の変動量が前記閾値を超える確率を、変更した前記閾値毎にそれぞれ求め、前記確率の差分を取得する取得部と、前記取得部が取得した前記確率の差分に基づいて選択される閾値を、前記外力の判定に用いるパラメータとするパラメータ導出部と、を備える外力判定用パラメータ決定装置である。
【００１１】
本明細書に記載の移動体装置は、移動体と、本明細書に記載の外力判定用パラメータ決定装置の前記パラメータ導出部が導出した閾値の値と、前記移動体の垂直抗力の変動とから、前記移動体に与えられている外力が人的操作による外力及び積載による外力のいずれであるかを判定する外力判定部と、前記外力判定部による判定結果を用いて、前記移動体の駆動を制御する制御部と、を備える移動体装置である。
【００１２】
本明細書に記載の外力判定用パラメータ決定プログラムは、移動体に与えられる外力を判定するために用いられるパラメータをコンピュータに決定させるための外力判定用パラメータ決定プログラムであって、前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力を所定のサンプリング周期で取得し、各サンプリング間隔における垂直抗力の変動量を指数関数で近似し、任意に定めた閾値の値を変更しつつ、前記人的操作による外力と、前記積載による外力のそれぞれにおける垂直抗力の変動量が前記閾値を超える確率を、変更した前記閾値毎にそれぞれ求め、前記確率の差分を取得し、前記取得した前記確率の差分に基づいて選択される閾値を、前記外力の判定に用いるパラメータとする処理、をコンピュータに実行させる外力判定用パラメータ決定プログラムである。
【発明の効果】
【００１３】
本明細書に記載の外力判定用パラメータ決定装置及びプログラムは、移動体に与えられている外力が人的操作による外力及び積載による外力のいずれであるかの判定を高精度に行うためのパラメータを決定することができるという効果を奏する。また、本明細書に記載の移動体装置は、与えられた外力に応じた高精度な移動が可能となるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】一実施形態に係るロボットを示す図である。
【図２】図２（ａ）は、ロボットの構成を模式的に示す図であり、図２（ｂ）は、土台部及び走行車輪等の配置を模式的に示す図である。
【図３】図３（ａ）は、ロボットの制御系を示すブロック図であり、図３（ｂ）は、制御部のハードウェア構成を示す図である。
【図４】パラメータ決定部の処理を示すフローチャートである。
【図５】図５（ａ）は、ロボットに積載したときの垂直抗力Ｆzの変動を示す図であり、図５（ｂ）は、ロボットを人的操作したときの垂直抗力Ｆzの変動を示す図である。
【図６】図５（ａ）、図５（ｂ）をフーリエ変換にて周波数分析した結果を示す図である。
【図７】サンプリング周期の決定方法について説明するための図（表）である。
【図８】ステップＳ１４の概念図である。
【図９】図９（ａ）、図９（ｂ）は、ステップＳ１６の結果を示す図である。
【図１０】図１０（ａ）、図１０（ｂ）は、ステップＳ１８の結果を示す図である。
【図１１】ステップＳ２０の結果を示す図である。
【図１２】ステップＳ２２の結果を示す図である。
【図１３】ステップＳ２２の別例を説明するための図である。
【図１４】ロボットの移動制御方法を示すフローチャートである。
【図１５】ステップＳ３４を説明するための図である。
【図１６】変形例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、一実施形態について、図１〜図１５に基づいて詳細に説明する。図１には、一実施形態に係る移動体としてのロボット１００が概略的に示されている。なお、本実施形態の移動体装置は、図１に示すロボット１００と、ロボット１００内に格納され、ロボット１００の移動を制御する制御系（図３参照）と、を備えている。なお、図３の制御系の一部が、ロボット１００の外部に配置されていても良い。
【００１６】
ロボット１００は、図１に示すように、ボディ１０と、２つの走行車輪１２ａ、１２ｂと、キャスタ１６ａ〜１６ｃと、を備える。
【００１７】
ボディ１０は、図２（ａ）に模式的に示すように、土台部３０と、土台部３０上に設けられた支持台２０と、支持台２０により支持された外装体１０ａと、を有する。外装体１０ａは、実際には、図１に示すような複雑な形状を有しているが、図２（ａ）では簡略化して示している。外装体１０ａの一部には荷物などを積載することが可能な載置台が設けられている。また、図２（ａ）に示すように、土台部３０の周囲は、カバー１０ｂにより覆われている。
【００１８】
支持台２０は、テーブル状の形状を有しており、支持板２０ａと、支持板２０ａを土台部３０上で支持する３本の脚部２０ｂとを有する。３本の脚部２０ｂそれぞれと、土台部３０との間には、ＺＭＰ検出手段２２が設けられている。ＺＭＰ検出手段２２は、感圧センサを含んでおり、ロボットの高さに比べて十分に低く、接地面に近い高さに設置されていて、外装体１０ａに矢印Ｆで示す外力が加わったときに３本の脚部２０ｂそれぞれにかかる力の大きさを検出する。これにより、ＺＭＰ検出手段２２は、ロボットの重力と慣性力の合力が接地面と交わる点、すなわちＺＭＰ（Zero Moment Point）の位置を近似的に検出する。本発明では、この近似的なＺＭＰをＺＭＰとして扱う。なお、感圧センサとしては、ロードセル、ＦＳＲ（Force Sensing Resistors）などを用いることができる。
【００１９】
土台部３０には、前述した走行車輪１２ａ、１２ｂと、キャスタ１６ａ〜１６ｃと、加速度検知手段１８と、が設けられている。図２（ｂ）には、土台部３０の平面図が模式的に示されている。この図２（ｂ）に示すように、走行車輪１２ａ、１２ｂは、ロボット１００の走行面の座標系であるｘｒｙｒ座標系におけるｙｒ軸方向に関して、所定間隔をあけて配置されている。これらのうち、走行車輪１２ａは、モータ等を含む車輪駆動手段２４ａにより回転駆動される。また、走行車輪１２ａの回転は、走行車輪１２ａの車軸に設けられた、図２に示す走行回転検知手段１４ａにより検知される。同様に、走行車輪１２ｂは、車輪駆動手段２４ｂにより回転駆動され、その回転は、走行車輪１２ｂの車軸に設けられた回転検知手段１４ｂにより検知される。回転検知手段１４ａ、１４ｂは、例えばロータリエンコーダやタコジェネレータなどのセンサを含んでいる。
【００２０】
キャスタ１６ａ〜１６ｃは、ロボット１００が転倒しないように姿勢を安定化させるためのものであり、土台部３０の外縁近くに沿ってほぼ等間隔で設けられている。
【００２１】
加速度検知手段１８は、土台部３０のｘrｙｒ面内における中央部近傍に設けられている。この加速度検知手段１８は、ロボット１００のｘｒ方向に関する加速度及びｙｒ方向に関する加速度を検知する。
【００２２】
図３（ａ）には、本実施形態のロボット１００の制御系の構成がブロック図にて示されている。この図３（ａ）に示すように、ロボット１００の制御系は、前述したＺＭＰ検出手段２２、回転検知手段１４ａ、１４ｂ、車輪駆動手段２４ａ、２４ｂ、加速度検知手段１８のほか、制御部４２を含んでいる。
【００２３】
図３（ｂ）には、制御部４２のハードウェア構成図が示されている。この図３（ｂ）に示すように、制御部４２は、ＣＰＵ９０、ＲＯＭ９２、ＲＡＭ９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、入出力部９７等を備えており、制御部４２の構成各部は、バス９８に接続されている。入出力部９７には、可搬型記憶媒体用ドライブ９９が接続されている。制御部４２では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム、又はドライブ９９が可搬型記憶媒体９１から読み出したプログラムを、ＣＰＵ９０が実行することにより、図３（ａ）の各部（操作意図推定手段４４及び制御部としての車輪制御手段４０）の機能が実現される。
【００２４】
操作意図推定手段４４は、ＺＭＰ検出手段２２による検出結果に基づいて、人からロボット１００に与えられた操作力が、どのような操作意図を意味しているかを推定する。なお、操作意図推定手段４４は、ロボット１００に与えられた外力が、ロボット１００に積載したことによる外力であるか、あるいは人がロボット１００を押すなど、人的操作したことによる外力であるかを判定する機能も有している。また、操作意図推定手段４４は、外力判定用パラメータを導出する機能も有している。より具体的には、操作意図推定手段４４は、図３（ａ）に示すように、外力判定用パラメータ決定装置としてのパラメータ決定部６０と、外力判定部としての操作意図推定部１４８と、を有する。また、パラメータ決定部６０は、決定部１４０と、近似部１４２と、取得部１４４と、パラメータ導出部１４６と、を有する。
【００２５】
決定部１４０は、近似部１４２や、操作意図推定部１４８が、ロボット１００に加わる垂直抗力を取得する際のサンプリング周期を決定する。近似部１４２は、ロボット１００に対して人的操作による外力及び積載による外力をそれぞれ与えたときにロボット１００に加わる垂直抗力を決定部１４０が決定したサンプリング周期で取得する。そして、近似部１４２は、各サンプリング間隔における垂直抗力の変動量を指数関数で近似する。取得部１４４は、任意に定めた閾値ｆ0の値を変更しつつ、人的操作による外力及び積載による外力それぞれにおける垂直抗力の変動量が閾値ｆ0を超える確率を変更した閾値ごとにそれぞれ求め、各外力における確率の差分を取得する。パラメータ導出部１４６は、取得部１４４が取得した確率の差分に基づいて、最適な閾値の値ｆcを選択する。操作意図推定部１４８は、決定部１４０が決定したサンプリング周期で、垂直抗力の変動量を取得する。また、操作意図推定部１４８は、垂直抗力の変動量と閾値ｆcとの比較結果に基づいて、ロボット１００に与えられている外力が人的操作による外力なのか、あるいは積載による外力なのかを判定する。更に、操作意図推定部１４８は、ＺＭＰの位置に基づいて、ロボット１００に外力を与えている人の操作意図を推定する。
【００２６】
車輪制御手段４０は、回転検知手段１４ａ、１４ｂによる検知結果、加速度検知手段１８による検知結果、並びに操作意図推定手段４４（操作意図推定部１４８）による推定結果に基づいて、車輪駆動手段２４ａ、２４ｂを制御する。
【００２７】
次に、ロボット１００に与えられた外力の判定に用いる外力判定用パラメータ（ここでは、閾値ｆc、サンプリング間隔Δｔ、サンプリング回数Ｎ）の導出方法について、図４〜図１３に基づいて詳細に説明する。
【００２８】
図４は、例えばロボット１００の出荷前において、操作意図推定手段４４のパラメータ決定部６０が実行する、閾値ｆcの導出手順を示すフローチャートである。以下、図４のフローチャートの各処理について、順を追って説明する。
【００２９】
（垂直抗力Ｆzの計測（ステップＳ１０））
ステップＳ１０では、操作意図推定手段４４の決定部１４０が、ロボット１００に積載したときの垂直抗力Ｆzの変動と、ロボット１００を人的操作したときの垂直抗力Ｆzの変動と、を計測する。より具体的には、決定部１４０は、ロボット１００に設けられている出力部（表示画面やスピーカなど）から、ロボット１００を製造する人に対して、積載するよう指示したり、人的操作するように指示したりする。そして、決定部１４０は、ＺＭＰ検出手段２２の検出結果から、ロボット１００に積載したときの垂直抗力Ｆzの変動（図５（ａ））と、ロボット１００を人的操作したときの垂直抗力Ｆzの変動（図５（ｂ））と、を計測する。図５（ａ）と図５（ｂ）とを比較すると分かるように、人がロボット１００を人的操作した場合の方が、垂直抗力Ｆzの変動が大きくなっている。
【００３０】
（サンプリング周期Δtの定義（ステップＳ１２））
次いで、ステップＳ１２では、決定部１４０が、図５（ａ）と図５（ｂ）の差異を定量的に示すために、垂直抗力ＦzをＦＦＴ（Fast Fourier Transform）にて周波数分析する。なお、決定部１４０は、フーリエ変換にて周波数分析を行うこととしてもよい。そして、実際の移動制御において、積載しているのか、あるいは人的操作しているのかを判定するための垂直抗力のサンプリング時間Δtを定義（決定）する。
【００３１】
図６には、周波数分析の結果が示されている。図６に示すように、周波数分析の結果からは、およそ２５Ｈｚよりも大きい周波数では、ロボット１００を人的操作した場合もロボット１００に積載した場合も、振幅に差異が見られないことが分かる。このため、決定部１４０は、振幅に差異が見られる周波数（２５Ｈｚ以下で、かつ、閾値ｆcを用いた判定時間（人的操作しているのか、積載しているのかの判定に要する時間）があまり長くならない、周波数２０Ｈｚから求められるサンプリング周期（Δt＝５０ｍｓ）を最適なサンプリング周期とする。
【００３２】
ここで、サンプリング周期Δtが大きいほど、積載の場合と人的操作の場合との振幅の差異は大きくなる。この場合、１回のサンプリングにおける判定確率（判定時間１秒で、積載と人的操作のいずれであるかを判定できる確率（Ｐmaxとする））は高くなるが、サンプリング数Ｎは低下する。逆に、Δｔが小さいほど、サンプリング数Ｎは増加するが、ΔＦzの差異は小さくなる。この点、図７の表に示すように、Δt＝４０ｍｓ、５０ｍｓ、６０ｍｓの判定確率Ｐmaxを調べたところ、Δｔ＝５０ｍｓのときの判定確率Ｐmaxが最大（９９．８１％）となったため、本実施形態では、５０ｍｓをサンプリング周期Δｔとしたのである。なお、図７において、Δｔを１０ｍｓ刻みで調べたのは、本実施形態の操作意図推定手段４４の計算処理速度が１０ｍｓであるためである。
【００３３】
（Ｆzの増減値ΔＦzの計測（ステップＳ１４））
次いで、図４のステップＳ１４では、操作意図推定手段４４の近似部１４２が、人的操作したときにロボット１００に加わる垂直抗力Ｆzの変動ΔＦzを、ステップＳ１２で定義したサンプリング時間Δtで計測する。また、近似部１４２は、積載したときにロボット１００に加わる垂直抗力Ｆzの変動ΔＦzを、サンプリング時間Δtで計測する。図８には、本ステップＳ１４の概念図が示されている。
【００３４】
（|ΔＦz|の度数分布の指数関数ｈによる近似（ステップＳ１６））
ステップＳ１４において計測されるΔＦzをサンプリングした結果、|ΔＦz|は、図９（ａ）、図９（ｂ）に示すような度数分布となる。したがって、ステップＳ１６では、近似部１４２が、当該度数分布を指数関数ｈで近似する。この近似結果が、図９（ａ）、図９（ｂ）において白抜きの曲線にて示されている。なお、ｈは、次式（１）にて与えられる。
ｈ＝ｅｘｐ（−λ／|ΔＦz|）      …（１）
【００３５】
上式（１）において、積載の場合のλ（＝λL）は１０．２４となり、人的操作の場合のλ（＝λH）は１．３１となる。
【００３６】
（ｈの累積分布関数Ｈの定義（ステップＳ１８））
次いで、ステップＳ１８では、操作意図推定手段４４の取得部１４４が、指数関数ｈを|ΔＦz|について０からｆまで積分し、累積分布関数Ｈ（ｆ）を求める。なお、Ｈ（ｆ）は、任意のサンプリングにおいて、|ΔＦz|がｆ以下となる確率であり、次式（２）で与えられる。
Ｈ（ｆ）＝１−ｅｘｐ（−λ・ｆ）        …（２）
【００３７】
なお、積載の場合のＨ（ｆ）と、人的操作の場合のＨ（ｆ）とが、図１０（ａ）、図１０（ｂ）にそれぞれ示されている。
【００３８】
（閾値ｆ0の定義、及び閾値ｆ0による判定確率の計算（ステップＳ２０））
ステップＳ２０では、取得部１４４が、ｆ0を閾値とし、|ΔＦz|がｆ0以下となる事象が連続Ｎ回続く確率をＨ（ｆ0）Nとし、連続Ｎ回の事象で|ΔＦz|が閾値ｆ0を１回でも超える確率Ｇ（ｆ0）を次式（３）のように定義する。
Ｇ（ｆ0）＝１−Ｈ（ｆ0）N        …（３）
【００３９】
そして、取得部１４４は、積載の場合（λ=λL）のＧ（＝ＧL）、及び人的操作した場合(λ＝λH)のＧ（＝ＧH）を取得する。この場合、ＧLとＧHは図１１のようなグラフとなる。そして、取得部１４４は、次式（４）のように、ＧLとＧHの差分を取得し、その値を判定確率Ｐとする（図１１参照）。
Ｐ＝ＧH−ＧL          …（４）
【００４０】
（最適な閾値ｆcの導出（ステップＳ２２））
ステップＳ２２では、操作意図推定手段４４のパラメータ導出部１４６が、図１２に示すように、判定確率Ｐを最も大きく(Ｐ＝Ｐmax)与える閾値ｆ0をｆcとして選択（導出）する。具体的には、パラメータ導出部１４６は、予め設定した判定時間ｔN＝Ｎ・Δｔにおける判定確率Ｐmaxと閾値ｆcを導出する。なお、Ｎは、サンプリング回数を意味している。例えば、Ｎ＝２０、Δｔ＝５０ｍｓとしたときには、判定確率Ｐmaxは、９９．８１％、閾値ｆcは、０．９７Ｎとなる（図７参照）。
【００４１】
なお、上記のように判定時間を予め設定しておき、判定確率と閾値を求める場合に限らず、例えば、判定確率Ｐmaxを予め設定しておき、当該判定確率に基づいて、最適な判定時間ｔNと閾値ｆcとを導出するようにしてもよい。図１３に示すように、Ｎを大きく取るほど（Ｎが基準値Ｎ0よりも大きくなればなるほど）ＧHのグラフとＧLのグラフが遠ざかるため、判定確率Ｐmaxが増加し、判定時間が長くなる。一方、Ｎを小さく取るほど（Ｎが基準値Ｎ0よりも大きくなればなるほど）、ＧHのグラフとＧLのグラフが近づくため、判定時間が短くなり、Ｐmaxは減少する。したがって、操作意図推定手段４４は、数値解析にてＰmaxを与える最小のＮを求め、そのときの閾値をｆcとする。例えば、上記数値解析の結果としては、判定時間ｔNが１．２５ｓ(Ｎ＝２５、Δｔ＝５０ｍｓ)となり、閾値ｆcが１．０５Ｎとなる。
【００４２】
なお、以下においては、図４の処理の結果、前述したように、Ｎが２０、Δｔが５０ｍｓ、閾値ｆcが０．９７Ｎと決定され、これらの値が操作意図推定手段４４に対して送信されたものとして、説明する。
【００４３】
次に、図１４のフローチャートに沿って、上記のようにして求められた外力判定用パラメータを用いた、ロボット１００の移動制御方法について説明する。
【００４４】
図１４の処理では、まずステップＳ３０において、操作意図推定手段４４の操作意図推定部１４８が、ＺＭＰの現在の位置を初期位置Ｐ0とする（初期化する）とともに、サンプリング回数を示すカウンタｎを０に設定（初期化）する。このステップＳ３０の処理が行われた以降は、図１４の左側の処理と、右側の処理が並行処理される。
【００４５】
図１４の左側の処理では、ロボット１００の車輪を駆動するための処理が行われる。ステップＳ３２では、操作意図推定部１４８が、ＺＭＰ検出手段２２を介して、ＺＭＰの位置Ｐを計測する。次いで、ステップＳ３４では、操作意図推定部１４８が、慣性力及び重力によるＺＭＰの変位（Ｐa＋Ｐθ）を計測する。
【００４６】
具体的には、図１５に示すように、ロボット１００がスロープ上に位置している場合（停止している場合）、そのことに起因して、ＺＭＰの位置が、平坦な接地面に位置していたときのＺＭＰの位置（符合ＺＭＰで示している）から、符号ＺＭＰ’で示す位置まで変位することになる。ここで、ＺＭＰの変位量Ｐθは、次式（５）にて表すことができる。なお、次式（５）のｈは、ロボット１００の重心高さであり、既知の値である。また、ｇは重力加速度、θは水平面に対するスロープの傾斜角度を表す。
Ｐθ＝−ｈtanθ＝（−ｇsinθ／ｇcosθ）・ｈ    …（５）
【００４７】
上式（５）において、傾斜角が５°程度であるとすると、cosθ≒１とすることができる。また、ｇsinθは、加速度検知手段１８により検知される傾斜方向の加速度Ａと定義することができる。ここで、ロボット１００は、実際にはスロープ上で停止した状態にあるが、スロープに沿って下方向にスライドないように加速しているとも看做すことができるので、加速度検知手段１８の値は正となる。したがって、上式（５）は、次式（６）のように表すことができる。
Ｐθ＝{−Ａ／（ｇ×１）}・ｈ＝−Ａ・ｈ／ｇ            …（６）
【００４８】
一方、ロボット１００がスロープ上を加速度ａにて加速しつつ移動しているとすると、当該加速方向とは逆方向の力（慣性力）がロボット１００に働く。この場合、ＺＭＰの変位方向が加速度ａとは逆向きになることから、図１５に示すように、スロープの傾斜に起因するＺＭＰの変位（Ｐθ）の方向と、慣性力によるＺＭＰの変位（Ｐa）の方向とが一致する。
【００４９】
ここで、慣性力によるＺＭＰの変位量（Ｐa）と、スロープの傾斜に起因するＺＭＰの変位量（Ｐθ）とを合算した変位量（Ｐa＋Ｐθ）は、次式（７）のように表すことができる。
Ｐa＋Ｐθ＝（−ａ・ｈ／ｇcosθ）−ｈtanθ
＝−（ａ＋ｇsinθ）・ｈ／ｇcosθ        …（７）
【００５０】
上式（７）において、ａ＋ｇsinθは、加速度検知手段１８により検出される傾斜方向の加速度Ａを意味する。また、傾斜角が５°程度であるとすると、cosθ≒１とすることができる。したがって、上式（７）は、次式（８）にて表すことができる。
Ｐa＋Ｐθ＝−（Ａ）・ｈ／（ｇ×１）＝−Ａ・ｈ／ｇ        …（８）
【００５１】
このようにすることで、ロボット１００が斜面を移動している場合でも、慣性力や斜面に起因するＺＭＰの検出誤差を低減することが可能である。なお、ロボット１００がスロープ上に位置していない場合にも、上記と同様に、慣性力に起因するＺＭＰの移動量を考慮することとしても良い。
【００５２】
図１４に戻り、次のステップＳ３６では、操作意図推定部１４８が、人的操作の操作力によるＺＭＰを計測する。具体的には、次式（９）により、操作力によるＺＭＰの位置Ｐfを算出する。
Ｐf＝Ｐ−Ｐ0−（Ｐa＋Ｐθ）          …（９）
【００５３】
次いで、ステップＳ３８では、操作意図推定部１４８が、Ｐfの絶対値｜Ｐf｜が初動力Ｐmin以上であるか否かを判断する。ここでの判断が否定された場合には、操作意図推定部１４８は、人的操作の操作力がロボット１００に加わっていないと判断し、ステップＳ３２に戻る。一方、ここでの判断が否定された場合には、ステップＳ４０に移行する。ステップＳ４０では、操作意図推定部１４８は、操作力が加わっている方向に、走行車輪１２ａ、１２ｂを駆動するよう、車輪制御手段４０に指示を出す。車輪制御手段４０は、当該指示に基づいて、車輪駆動手段２４ａ、２４ｂを介して、走行車輪１２ａ、１２ｂを駆動する。
【００５４】
そして、次のステップＳ４２では、操作意図推定部１４８は、サンプリング時間（例えば１０ｍｓ）を経過するまで待機し、サンプリング時間を経過した段階で、ステップＳ３２に戻る。その後は、ロボット１００の操作が終了するまで（例えば、電源がオフされるまで）、操作意図推定部１４８は、ステップＳ３２以降の処理を繰り返す。
【００５５】
一方、図１４の右側の処理では、ステップＳ５０において、操作意図推定部１４８が、垂直抗力の変動量を次式（１０）に基づいて計測する。
ΔＦz＝Ｆz,t−Ｆz,ｔ-Δｔ            …（１０）
【００５６】
次いで、ステップＳ５２では、操作意図推定部１４８は、ΔＦzが、図４の処理により求められた閾値ｆcよりも小さいか否かを判断する。ここでの判断が否定された場合、すなわち、ΔＦzが閾値ｆcよりも大きかった場合には、ステップＳ５６に移行する。そして、ステップＳ５６では、操作意図推定部１４８は、カウンタｎを０に設定する。その後は、ステップＳ５０に戻る。
【００５７】
一方、ステップＳ５２の判断が肯定された場合には、操作意図推定部１４８は、ステップＳ５４においてｎを１インクリメントして、ステップＳ５８に移行する。ステップＳ５８では、操作意図推定部１４８は、ｎがＮ（ここではＮ＝２０）であるか否かを判断する。ここでの判断が肯定された場合、すなわち、ΔＦzをサンプリング回数（２０回）だけ計測した結果、一度もΔＦzが閾値ｆcを超えていないという状態が続いている場合には、ステップＳ３０に戻る。このようにステップＳ３０に戻る場合とは、ロボット１００に積載されたと判断できる場合である。このような場合には、ステップＳ３０において、積載された状態のロボット１００のＺＭＰの位置を初期位置Ｐ0とするとともに、カウンタｎを０に設定（初期化）する。
【００５８】
一方、ステップＳ５８の判断が否定された場合には、ステップＳ５０に戻る。その後は、ロボット１００の操作が終了するまで（例えば、電源がオフされるまで）、ステップＳ５０以降の処理を繰り返す。これにより、ロボット１００に積載された場合には、２０回のサンプリングが行われた後（サンプリング間隔が５０ｍｓであるので、１秒後）に、ＺＭＰが初期化される。一方、人がロボット１００を人的操作している場合には、ＺＭＰが初期化されずに、図１４の左側の処理（車輪の駆動処理）が継続的に実行されることになる。このように、図１４の右側の処理では、ロボット１００に与えられる外力が、人的操作による外力であると判断されればＺＭＰの初期化をせず、積載による外力であると判断されればＺＭＰの初期化を行うこととする。すなわち、操作意図推定部１４８は、図１４の右側の処理において、閾値ｆcと垂直抗力の変動量ΔＦzとに基づいて、ロボット１００に与えられる外力が人的操作による外力か積載による外力かの判定を行っており、この判定結果に基づいて、ロボット１００の移動が制御されているといえる。
【００５９】
以上、詳細に説明したように、本実施形態のパラメータ決定部６０によると、近似部１４２が、ロボット１００に対して人的操作による外力及び積載による外力をそれぞれ与えたときにロボット１００に加わる垂直抗力を所定のサンプリング周期Δｔで取得し、各サンプリング間隔における垂直抗力の変動量を指数関数で近似し、取得部１４４が、閾値ｆ0の値を変更しつつ、各外力における垂直抗力の変動量が閾値ｆ0を超える確率ＧL、ＧHをそれぞれ求め、それらの確率の差分を取得する。そして、パラメータ導出部１４６が、取得部１４４が取得した確率の差分に基づいて選択される閾値ｆc（（例えば、差分が最大になる閾値や、所定の値となる閾値）を、外力の判定に用いる閾値とする。これにより、外力の判定に用いる閾値ｆcが、各外力における垂直抗力の変動量が閾値を超える確率ＧL、ＧHの差分に基づいて（本実施形態では、差分が最大又は所定の値になるように）決定される。ここで、確率ＧL、ＧHの差分は、ロボット１００に与えられている外力が、人的操作による外力及び積載による外力のいずれであるかを判定する際の判定確率を意味する。したがって、確率ＧL、ＧHの差分から求められる閾値ｆcを用いることで、ロボット１００に与えられている外力が人的操作による外力であるか積載による外力であるかの判定を高精度に行うことができる。
【００６０】
また、本実施形態では、決定部１４０が、ロボット１００に対して人的操作による外力及び積載による外力をそれぞれ与えたときにロボット１００に加わる垂直抗力の変動をフーリエ変換し、当該フーリエ変換にて得られる各波形の振幅の大きさの差異に基づいて、サンプリング周期Δｔを決定する。したがって、各波形の振幅の大きさの差異が明確に現れる周波数の範囲からサンプリング周期を求めるなどすることで、閾値ｆcの決定や、外力の判定を高精度に行うことが可能となる。
【００６１】
また、本実施形態では、操作意図推定部１４８が、ロボット１００に加わる垂直抗力の変動と、パラメータ導出部１４６が導出した閾値ｆcとから、ロボット１００に与えられている外力が人的操作による外力及び積載による外力のいずれであるかを判定し、当該判定結果を用いて、車輪制御手段４０が、ロボット１００の駆動を制御する。したがって、外力の種類を適切に判定した上で、ロボット１００を駆動制御することができるので、与えられる外力に応じた高精度な移動、すなわち、操作する人の意図に沿った高精度な移動を行うことが可能となる。
【００６２】
なお、上記実施形態では、決定部１４０は、波形の振幅の差異が明確に現れるとともに、サンプリングに要する時間があまり長くならないように、サンプリング周期Δｔを決定する場合について説明した。しかしながら、このような決定方法に限らず、例えば、波形の振幅の差異が所定の値よりも大きくなる周波数及びこれに対応するサンプリング周期を求めることとしてもよい。
【００６３】
なお、上記実施形態の図４の処理により求められる閾値ｆcは、例えば、図１６に示す処理（ロボットの停止制御）に用いることもできる。
【００６４】
図１６の処理では、まずステップＳ７０において、操作意図推定部１４８が、ｎを初期化する（ｎ＝０）。次いで、ステップＳ７２では、操作意図推定部１４８が、垂直抗力のサンプリング間隔Δｔにおける変動を図１４のステップＳ５０と同様にして計測する（上式（１０）参照）。
【００６５】
次いで、ステップＳ７４では、ΔＦzが、閾値ｆcよりも小さいか否かを判断する。ここでの判断が否定される場合とは、ロボット１００が人により押されている又は人にぶつかっている状態、あるいはロボット１００が移動している間に荷物などが積載された場合などであると判断できる場合を意味する。したがって、ここでの判断が否定された場合にはステップＳ８２に移行し、操作意図推定部１４８は、ｎを初期化する。そして、ステップＳ８４では、操作意図推定部１４８が、車輪制御手段４０に対して、走行車輪１２ａ、１２ｂの回転を停止するように指示を出す。この場合、車輪制御手段４０は、車輪駆動手段２４ａ、２４ｂを介して、走行車輪１２ａ、１２ｂの回転を停止する。なお、ステップＳ８２とステップＳ８４の処理順は、上記と逆であってもよい。ステップＳ８４の処理が終了すると、ステップＳ７２に戻る。
【００６６】
一方、ステップＳ７４の判断が肯定された場合には、ステップＳ７６に移行し、操作意図推定部１４８は、ｎを１インクリメントする。次いで、ステップＳ７８では、操作意図推定部１４８が、ｎ≧Ｎであるか否かを判断する。ここでの判断が否定された場合には、ステップＳ８４に移行して、車輪制御手段４０に対して、走行車輪１２ａ、１２ｂの回転を停止するように指示を出す。一方、ステップＳ７８の判断が肯定された場合には、ステップＳ８０において、ロボット１００の移動を継続するか、あるいはロボット１００が停止状態にあるときにはロボット１００の移動を再開する。なお、ステップＳ７８の判断を行うのは、操作意図推定部１４８が人の力と認識した後、サンプリング数Ｎ回の時間だけ停止を保持するためである。これは、垂直抗力の変動量がｆc未満である状態がＮ回続いている間、ロボットの移動が継続されることと同一の処理である。そして、ステップＳ８０の処理が終了した後は、ステップＳ７２に戻る。
【００６７】
その後は、ロボット１００の電源がオフされるなどしてロボット１００の移動が停止されるまでの間、図１６のステップＳ７２以降の処理が繰り返される。
【００６８】
なお、本例においては、人がロボットに触れ続けている間は、ステップＳ７４の判断が否定される可能性が多いため、ロボット１００は停止し続ける。一方、ロボット１００に荷物などが積載されたような場合には、ステップＳ７４の判断が否定されて一時的にロボット１００が停止する場合はある。ただし、その後は、人にぶつかったりしない限り、ステップＳ７４の判断は肯定されるので、Ｎ回のサンプリング数の時間を越えた後は、ロボット１００は移動を続けることになる。すなわち、本例においても、操作意図推定部１４８は、垂直抗力の変動量ΔＦzと、閾値ｆcとに基づいて、ロボット１００に与えられている外力が人的操作による外力であるか積載による外力であるかの判定を行っており、この判定結果に基づいて、ロボット１００の移動が制御されているといえる。
【００６９】
なお、上記実施形態では、ロボット１００の操作意図推定手段４４にパラメータ決定部６０を設け、当該パラメータ決定部６０が閾値ｆcやサンプリング周期Δｔを導出又は決定する場合について説明した。しかしながら、これに限られるものではなく、例えば、ロボット１００の外部にパラメータ決定部６０を有する処理装置を用意することとしてもよい。この場合、ロボット１００と処理装置を接続した状態で、ロボット１００に外力を加えることで、閾値ｆcやサンプリング周期Δｔを導出又は決定するようにすることができる。この場合、同一種類のロボットについては、１つのロボットを用いて算出された閾値ｆcやサンプリング周期Δｔを流用することとしてもよい。
【００７０】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００７１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７３】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００７４】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  移動体に与えられる外力を判定するために用いられるパラメータを決定するための外力判定用パラメータ決定装置であって、前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力を所定のサンプリング周期で取得し、各サンプリング間隔における垂直抗力の変動量を指数関数で近似する近似部と、任意に定めた閾値の値を変更しつつ、前記人的操作による外力と、前記積載による外力のそれぞれにおける垂直抗力の変動量が前記閾値を超える確率を、変更した前記閾値毎にそれぞれ求め、前記確率の差分を取得する取得部と、前記取得部が取得した前記確率の差分に基づいて選択される閾値を、前記外力の判定に用いるパラメータとするパラメータ導出部と、を備える外力判定用パラメータ決定装置。
（付記２）  前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力の変動をフーリエ変換し、当該フーリエ変換にて得られる各波形の振幅の大きさの差異に基づいて、前記サンプリング周期を決定する決定部を更に備える付記１に記載の外力判定用パラメータ決定装置。
（付記３）
前記取得部は、連続した所定回数の事象で、前記人的操作による外力と、前記積載による外力のそれぞれにおける前記垂直抗力の変動量が前記閾値を１回でも超える確率の差分を取得することを特徴とする付記１又は２に記載の外力判定用パラメータ決定装置。
（付記４）  移動体と、付記１〜３のいずれかに記載の外力判定用パラメータ決定装置の前記パラメータ導出部が導出したパラメータの値と、前記移動体の垂直抗力の変動とから、前記移動体に与えられている外力が人的操作による外力及び積載による外力のいずれであるかを判定する外力判定部と、前記外力判定部による判定結果を用いて、前記移動体の駆動を制御する制御部と、を備える移動体装置。
（付記５）  前記外力判定部は、前記近似部が用いたサンプリング周期で、外力の変動量を取得し、当該変動量と前記パラメータとの比較結果に基づいて、前記外力が人的操作による外力及び積載による外力のいずれであるかを判定することを特徴とする付記４に記載の移動体装置。
（付記６）  移動体に与えられる外力を判定するために用いられるパラメータをコンピュータに決定させるための外力判定用パラメータ決定プログラムであって、前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力を所定のサンプリング周期で取得し、各サンプリング間隔における垂直抗力の変動量を指数関数で近似し、任意に定めた閾値の値を変更しつつ、前記人的操作による外力と、前記積載による外力のそれぞれにおける垂直抗力の変動量が前記閾値を超える確率を、変更した前記閾値毎にそれぞれ求め、前記確率の差分を取得し、前記取得した前記確率の差分に基づいて選択される閾値を、前記外力の判定に用いるパラメータとする処理、を前記コンピュータに実行させることを特徴とする外力判定用パラメータ決定プログラム。
（付記７）  前記移動体に対して人的操作による外力及び積載による外力をそれぞれ与えたときに前記移動体に加わる垂直抗力の変動をフーリエ変換し、当該フーリエ変換にて得られる各波形の振幅の大きさの差異に基づいて、前記サンプリング周期を決定する、処理をコンピュータに更に実行させることを特徴とする付記６に記載の外力判定用パラメータ決定プログラム。
【符号の説明】
【００７５】
４０  車輪制御手段（制御部）
６０  パラメータ決定部（外力判定用パラメータ決定装置）
１００  ロボット（移動体）
１４０  決定部
１４２  近似部
１４４  取得部
１４６  パラメータ導出部
１４８  操作意図推定部（外力判定部）
【図１】
0005549572.tif 000002
【図２】
0005549572.tif 000003
【図３】
0005549572.tif 000004
【図４】
0005549572.tif 000005
【図５】
0005549572.tif 000006
【図６】
0005549572.tif 000007
【図７】
0005549572.tif 000008
【図８】
0005549572.tif 000009
【図９】
0005549572.tif 000010
【図１０】
0005549572.tif 000011
【図１１】
0005549572.tif 000012
【図１２】
0005549572.tif 000013
【図１３】
0005549572.tif 000014
【図１４】
0005549572.tif 000015
【図１５】
0005549572.tif 000016
【図１６】
0005549572.tif 000017