(57)【要約】【課題】連接された運動モジュールの収縮により動作するロボットの耐故障性を高める。【解決手段】移動方向に伸縮する運動モジュールの制御装置が、反力取得部と、オフセット算出部と、位相生成部と、伸縮量決定部とを備える。反力取得部は、運動モジュールに掛かる移動方向の反力の大きさを取得する。オフセット算出部は、反力の向きおよび運動モジュールの伸縮状態に基づいてオフセット角周波数を算出する。位相生成部は、基本角周波数とオフセット角周波数とを加算して得られる補正角周波数で位相を生成する。伸縮量決定部は、生成した位相に基づいて運動モジュールの伸縮量を決定する。【選択図】図８
2017217728.tif 000002
【特許請求の範囲】
【請求項１】
移動方向に伸縮する運動モジュールの制御装置であって、
前記運動モジュールに掛かる前記移動方向の反力の大きさを取得する反力取得部と、
前記反力の向きおよび前記運動モジュールの伸縮状態に基づいてオフセット角周波数を算出するオフセット算出部と、
基本角周波数と前記オフセット角周波数とに基づいて得られる補正角周波数で位相を生成する位相生成部と、
生成した前記位相に基づいて前記運動モジュールの伸縮量を決定する伸縮量決定部と
を備える制御装置。
【請求項２】
前記オフセット算出部は、前記反力が前記移動方向の後方に向きかつ前記運動モジュールが伸長している状態にある場合に、前記反力が前記移動方向の後方に向きかつ前記運動モジュールが収縮している状態にある場合より大きい前記オフセット角周波数を算出する
請求項１に記載の制御装置。
【請求項３】
前記オフセット算出部は、前記反力が前記移動方向の後方に向きかつ前記運動モジュールが伸長している状態にある場合に正値となり、前記反力が前記移動方向の後方に向きかつ前記運動モジュールが収縮している状態にある場合に負値となる前記オフセット角周波数を算出する
請求項２に記載の制御装置。
【請求項４】
前記オフセット算出部は、前記反力が前記移動方向の前方に向きかつ前記運動モジュールが収縮している状態にある場合に、前記反力が前記移動方向の前方に向きかつ前記運動モジュールが伸長している状態にある場合より大きい前記オフセット角周波数を算出する
請求項１から請求項３の何れか１項に記載の制御装置。
【請求項５】
前記オフセット算出部は、前記反力が前記移動方向の前方に向きかつ前記運動モジュールが収縮している状態にある場合に正値となり、前記反力が前記移動方向の前方に向きかつ前記運動モジュールが伸長している状態にある場合に負値となる前記オフセット角周波数を算出する
請求項４に記載の制御装置。
【請求項６】
前記オフセット角周波数は、前記移動方向の前方へ向く前記反力の大きさと前記位相の余弦との積に対して単調減少する値である
請求項１から請求項５の何れか１項に記載の制御装置。
【請求項７】
移動方向に伸縮する運動モジュールであって、
前記移動方向に掛かる反力の大きさを検出する反力検出部と、
前記反力の向きおよび前記運動モジュールの伸縮状態に基づいてオフセット角周波数を算出し、基本角周波数と前記オフセット角周波数とに基づいて得られる補正角周波数で位相を生成する制御装置と、
前記制御装置が生成した前記位相に従って伸縮する伸縮部と
を備える運動モジュール。
【請求項８】
移動方向に伸縮する運動モジュールであって、
前記移動方向に掛かる反力の大きさを検出する反力検出部と、
伸長と収縮を繰り返す伸縮部であって、検出された前記反力が前記運動モジュールの移動方向前方に向くときの伸長速度が検出された前記反力が前記運動モジュールの移動方向後方に向くときの伸長速度より遅く、または検出された前記反力が前記運動モジュールの移動方向前方に向くときの収縮速度が検出された前記反力が前記運動モジュールの移動方向後方に向くときの収縮速度より速い伸縮部と
を備える運動モジュール。
【請求項９】
移動方向に連なった請求項７または請求項８に記載の複数の運動モジュールを備えるロボット。
【請求項１０】
移動方向に伸縮する運動モジュールの制御方法であって、
前記運動モジュールに掛かる前記移動方向の反力の大きさを取得することと、
前記反力の向きおよび前記運動モジュールの伸縮状態に基づいてオフセット角周波数を算出することと、
基本角周波数と前記オフセット角周波数とに基づいて得られる補正角周波数で位相を生成することと、
生成した前記位相に基づいて前記運動モジュールの伸縮量を決定することと
を含む制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の運動モジュールを備えるロボット、その運動モジュール、およびその制御装置ならびに制御方法に関する。
【背景技術】
【０００２】
近年、身体の収縮波を前方から後方へ伝搬させて推進するミミズに着想を得たロボットが提案されている（非特許文献１−４を参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】J. Kwon et al., "Evaluation of the critical stroke of an earthworm-like robot for capsule endoscopes", J. Eng. Med., vol 221, pp. 397-405, 2007
【非特許文献２】Y. Nakazato et al., "Development of an In-pipe micro mobile robot using peristalsis motion", J. Mech. Sci. Tech., vol 24, pp. 51-54, 2010
【非特許文献３】N. Saga et al., "Development of a peristaltic crawling robot using magnetic fluid on the basis of the locomotion mechanism of the earthworm", Smart Mater. Struct., vol 13, pp. 566-569, 2004
【非特許文献４】A. Boxerbaum et al., "The International Journal of Robotics Research", J. Rob. Res., vol 31, pp. 302-318, 2012
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の非特許文献に開示されたロボット全体の動作は、中央制御装置によって制御される。そのため、中央制御装置に障害が発生した場合、ロボット全体の動作が停止する可能性がある。
本発明の目的は、ロボットの耐故障性を高める制御装置、運動モジュール、ロボットおよび制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明者らは、ロボットを構成する各運動モジュールに掛かる反力に応じて各運動モジュールの伸縮量を決定することで、自律分散制御によりロボットを動作させることができることを見出し、本発明を完成させた。
【０００６】
（１）本発明の第１の態様によれば、移動方向に伸縮する運動モジュールの制御装置は、前記運動モジュールに掛かる前記移動方向の反力の大きさを取得する反力取得部と、前記反力の向きおよび前記運動モジュールの伸縮状態に基づいてオフセット角周波数を算出するオフセット算出部と、基本角周波数と前記オフセット角周波数とに基づいて得られる補正角周波数で位相を生成する位相生成部と、生成した前記位相に基づいて前記運動モジュールの伸縮量を決定する伸縮量決定部とを備える。
【０００７】
（２）上記態様に係る制御装置において、前記オフセット算出部は、前記反力が前記移動方向の後方に向きかつ前記運動モジュールが伸長している状態にある場合に、前記反力が前記移動方向の後方に向きかつ前記運動モジュールが収縮している状態にある場合より大きい前記オフセット角周波数を算出するものであってよい。
【０００８】
（３）上記態様に係る制御装置において、前記オフセット算出部は、前記反力が前記移動方向の後方に向きかつ前記運動モジュールが伸長している状態にある場合に正値となり、前記反力が前記移動方向の後方に向きかつ前記運動モジュールが収縮している状態にある場合に負値となる前記オフセット角周波数を算出するものであってよい。
【０００９】
（４）上記態様に係る制御装置において、前記オフセット算出部は、前記反力が前記移動方向の前方に向きかつ前記運動モジュールが収縮している状態にある場合に、前記反力が前記移動方向の前方に向きかつ前記運動モジュールが伸長している状態にある場合より大きい前記オフセット角周波数を算出するものであってよい。
【００１０】
（５）上記態様に係る制御装置において、前記オフセット算出部は、前記反力が前記移動方向の前方に向きかつ前記運動モジュールが収縮している状態にある場合に正値となり、前記反力が前記移動方向の前方に向きかつ前記運動モジュールが伸長している状態にある場合に負値となる前記オフセット角周波数を算出するものであってよい。
【００１１】
（６）上記態様に係る制御装置において、前記オフセット角周波数は、前記移動方向の前方へ向く前記反力の大きさと前記位相の余弦との積に対して単調減少する値であるものであってよい。
【００１２】
（７）本発明の第２の態様によれば、運動モジュールは、移動方向に伸縮する運動モジュールであって、前記移動方向に掛かる反力の大きさを検出する反力検出部と、前記反力の向きおよび前記運動モジュールの伸縮状態に基づいてオフセット角周波数を算出し、基本角周波数と前記オフセット角周波数とに基づいて得られる補正角周波数で位相を生成する制御装置と、前記制御装置が生成した前記位相に従って伸縮する伸縮部とを備える。
【００１３】
（８）本発明の第３の態様によれば、運動モジュールは、移動方向に伸縮する運動モジュールであって、前記移動方向に掛かる反力の大きさを検出する反力検出部と、伸長と収縮を繰り返す伸縮部であって、検出された前記反力が前記運動モジュールの移動方向前方に向くときの伸長速度が検出された前記反力が前記運動モジュールの移動方向後方に向くときの伸長速度より遅く、または検出された前記反力が前記運動モジュールの移動方向前方に向くときの収縮速度が検出された前記反力が前記運動モジュールの移動方向後方に向くときの収縮速度より速い伸縮部とを備える。
【００１４】
（９）本発明の第４の態様によれば、ロボットは、移動方向に連なった上記態様に係る複数の運動モジュールを備える。
【００１５】
（１０）本発明の第５の態様によれば、移動方向に伸縮する運動モジュールの制御方法は、前記運動モジュールに掛かる前記移動方向の反力の大きさを取得することと、前記反力の向きおよび前記運動モジュールの伸縮状態に基づいてオフセット角周波数を算出することと、基本角周波数と前記オフセット角周波数とに基づいて得られる補正角周波数で位相を生成することと、生成した前記位相に基づいて前記運動モジュールの伸縮量を決定することとを含む。
【発明の効果】
【００１６】
上記態様のうち少なくとも１つの態様によれば、制御装置は、移動方向に伸縮する運動モジュールの伸縮量を、当該運動モジュールに掛かる移動方向の反力に基づいて決定する。したがって、このような運動モジュールを連ねて構成されるロボットは、各運動モジュールの自律分散制御により動作する。自律分散制御により動作することで、複数の運動モジュールの一部に障害が発生したとしても、ロボット全体の前進動作を長時間妨げることなく、障害発生に適応して前進動作を続けることができる。
【図面の簡単な説明】
【００１７】
【図１】ロボットの動作モデルを表す模式図である。
【図２Ａ】第１のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。
【図２Ｂ】第１のシミュレーションにおける各運動モジュールの伸縮量の時系列を示す図である。
【図３Ａ】第２のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。
【図３Ｂ】第２のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。
【図４Ａ】第３のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。
【図４Ｂ】第３のシミュレーションにおける各運動モジュールの伸縮量の時系列を示す図である。
【図５Ａ】第４のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。
【図５Ｂ】第４のシミュレーションにおける各運動モジュールの伸縮量の時系列を示す図である。
【図６】第１の実施形態に係るロボットの構成を示す概略ブロック図である。
【図７】第１の実施形態に係る運動モジュールの側面図である。
【図８】第１の実施形態に係る制御装置の構成を示す概略ブロック図である。
【図９】第１の実施形態に係る制御装置による運動モジュールの制御方法を示すフローチャートである。
【図１０】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１８】
《動作モデル》
図１は、ロボットの動作モデルを表す模式図である。
ロボット１００は、移動方向に連なる複数の運動モジュール１０を備える。図１に示す例では、ロボット１００は、Ｎ個の運動モジュール１０を備える。運動モジュール１０は、移動方向ｄに伸縮可能に構成される。運動モジュール１０の地面に対する摩擦力は、運動モジュール１０が最も収縮したときに最大となり、運動モジュール１０が最も伸長したときに最小となる。
図１に示す動作モデルにおいては、運動モジュール１０は、質点Ｐと可変長ばねＳとダンパＤとで表される。質点Ｐには、可変長ばねＳおよびダンパＤが移動方向ｄに接続される。可変長ばねＳおよびダンパＤは、互いに並列に質点Ｐに接続される。質点Ｐは、体積を持たず質量を有する仮想的な点である。質点Ｐと地面との間には、摩擦力が働くものとする。可変長ばねＳは、質量をもたず、自然長を実時間かつ動的に変化させることができる仮想的なばねである。ダンパＤは、質量をもたない仮想的なダンパである。以下、移動方向ｄの前方から数えてｉ番目の運動モジュール１０を、運動モジュール１０ｉという。また、運動モジュール１０ｉの質点Ｐを質点Ｐｉといい、運動モジュール１０ｉの可変長ばねＳを可変長ばねＳｉ＋１／２といい、運動モジュール１０ｉのダンパＤをダンパＤｉ＋１／２という。つまり、質点Ｐｉは、可変長ばねＳｉ＋１／２およびダンパＤｉ＋１／２より移動方向ｄの前方に位置する。
【００１９】
ここで、可変長ばねＳｉ＋１／２に発生する張力ｆｉ＋１／２，ｔｅｎｓｉｏｎは、以下の式（１）で表される。
【００２０】
【数１】
2017217728.tif 000003
【００２１】
ｋは、可変長ばねＳｉ＋１／２のばね定数である。ｌ￣（ｌにオーバーラインを付したもの）ｉ＋１／２は、可変長ばねＳｉ＋１／２の自然長である。ｌｉ＋１／２は、可変長ばねＳｉ＋１／２の実長である。
【００２２】
また、ダンパＤに発生する抵抗力ｆｉ＋１／２，ｄａｍｐｅｒは、以下の式（２）で表される。
【００２３】
【数２】
2017217728.tif 000004
【００２４】
ｃは、減衰係数である。ｘｉは、質点Ｐｉの変位である。なお、ｘｉは、質点Ｐｉが移動方向ｄの前方に進むほど大きくなる。なお、ｘ・（ｘの上部にドット記号を付したもの）ｉは、ｘｉの一階時間微分である。つまり、ｘ・ｉは、質点Ｐの速度と等価である。
【００２５】
また、運動モジュール１０ｉにおける運動方程式は、以下の式（３）で表される。
【００２６】
【数３】
2017217728.tif 000005
【００２７】
ηｉは、質点Ｐｉの摩擦係数である。質点Ｐｉの摩擦係数ηｉは、以下の式（４）で表される。
【００２８】
【数４】
2017217728.tif 000006
【００２９】
ｌ〜（ｌの上部にチルダを付したもの）ｉは、ｌ￣ｉ＋１／２とｌ￣ｉ−１／２の平均値である。ただし、ｌ〜１は、ｌ￣３／２であり、ｌ〜Ｎは、ｌ￣Ｎー１／２である。ｂ、ｎは、正の定数である。つまり、質点Ｐｉの摩擦係数は、質点Ｐｉの前後の可変長ばねＳの伸縮度合いに応じて変化する。具体的には、質点Ｐｉの前後の可変長ばねＳが移動方向ｄに伸長するほど、摩擦係数ηｉは小さくなる。質点Ｐｉの前後の可変長ばねＳが移動方向ｄに収縮するほど、摩擦係数ηｉは大きくなる。なお、摩擦係数ηｉは、必ずしも式（４）によって表される必要はなく、ｌ〜ｉに対して単調減少するものであればよい。また、ｌ〜ｉは、ｌｉ＋１／２とｌｉ−１／２の平均値であってもよい。
【００３０】
各可変長ばねＳの自然長は、可変長ばねＳごとに生成される位相θに応じて変化する。可変長ばねＳｉ＋１／２の自然長ｌ￣ｉ＋１／２は、以下の式（５）で表される。
【００３１】
【数５】
2017217728.tif 000007
【００３２】
Ｌは、可変長ばねＳの平均自然長（可変長ばねＳの最大伸長時の長さと最大収縮時の長さの１／２）である。ａは、正の定数である。ここで、位相θｉ＋１／２は、以下の式（６）で表される角周波数ωｉ＋１／２（補正角周波数）に基づいて生成される。
【００３３】
【数６】
2017217728.tif 000008
【００３４】
ωＯは、基本角周波数である。σは、フィードバックの強さを示す正の定数である。Ｓｉ＋１／２は、質点Ｐｉが地面から受ける移動方向ｄに対する反力と質点Ｐｉ＋１が地面から受ける移動方向ｄに対する反力の平均値を表す。Ｓｉは、反力が移動方向ｄの前方に向く場合に正値となり、反力が移動方向ｄの後方に向く場合に負値となる。なお、Ｓｉは、ηｉｘ・ｉ×−１と等しい。
【００３５】
反力が移動方向の前方に向く場合、すなわち反力が推進に利するものである場合、Ｓｉは正値となる。このとき、θｉ＋１／２が−π／２より大きくπ／２より小さいと、式（６）の−ｃｏｓθｉ＋１／２は、負値となる。式（５）に鑑みると、θｉ＋１／２が−π／２より大きくπ／２より小さいとき、可変長ばねＳｉ＋１／２は伸長している状態にあることが分かる。なお、「伸長している状態」とは、相対的に短い長さから相対的に長い長さへ遷移している状態をいう。
したがって、反力が移動方向の前方に向き、かつ可変長ばねＳｉ＋１／２が伸長している状態にある場合、右辺第二項は負値となり、角周波数ωｉ＋１／２は、基本角周波数より遅くなる。これにより、運動モジュール１０は、推進に利する反力が得られている間、運動モジュール１０の伸長を遅らせることで、高い摩擦係数を維持することができる。
【００３６】
反力が移動方向の前方に向く場合、すなわち反力が推進に利するものである場合、Ｓｉは正値となる。このとき、θｉ＋１／２がπ／２より大きく３π／２より小さいと、式（６）の−ｃｏｓθｉ＋１／２は、正値となる。式（５）に鑑みると、θｉ＋１／２がπ／２より大きく３π／２より小さいとき、可変長ばねＳｉ＋１／２は収縮している状態にあることが分かる。なお、「収縮している状態」とは、相対的に長い長さから相対的に短い長さへ遷移している状態をいう。
したがって、反力が移動方向の前方に向き、かつ可変長ばねＳｉ＋１／２が収縮している状態にある場合、右辺第二項は正値となり、角周波数ωｉ＋１／２は、基本角周波数より速くなる。これにより、運動モジュール１０は、推進に利する反力が得られている間、運動モジュール１０の収縮を早めることで、より高い摩擦係数を得ることができる。
【００３７】
反力が移動方向の後方に向く場合、すなわち反力が推進に抗するものである場合、Ｓｉは負値となる。このとき、θｉ＋１／２が−π／２より大きくπ／２より小さいと、すなわち可変長ばねＳｉ＋１／２が伸長している状態にあると、式（６）の−ｃｏｓθｉ＋１／２は、負値となる。
したがって、反力が移動方向の後方に向き、かつ可変長ばねＳｉ＋１／２が伸長している状態にある場合、右辺第二項は正値となり、角周波数ωｉ＋１／２は、基本角周波数より速くなる。これにより、運動モジュール１０は、推進に利する反力が得られない間、運動モジュール１０の伸長を早めることで、より低い摩擦係数を得ることができる。
【００３８】
反力が移動方向の後方に向く場合、すなわち反力が推進に抗するものである場合、Ｓｉは負値となる。このとき、θｉ＋１／２がπ／２より大きく３π／２より小さいと、すなわち可変長ばねＳｉ＋１／２が収縮している状態にあると、式（６）の−ｃｏｓθｉ＋１／２は、正値となる。
したがって、反力が移動方向の後方に向き、かつ可変長ばねＳｉ＋１／２が収縮している状態にある場合、右辺第二項は負値となり、角周波数ωｉ＋１／２は、基本角周波数より遅くなる。これにより、運動モジュール１０は、推進に利する反力が得られない間、運動モジュール１０の収縮を遅らせることで、低い摩擦係数を維持することができる。
【００３９】
このように、図１に示す動作モデルによれば、各運動モジュール１０が互いに協調して角周波数ωｉ＋１／２を決定することなく、運動モジュール１０の各々が局所的なフィードバックに基づいて適切に角周波数ωｉ＋１／２を修正することができる。
【００４０】
〈シミュレーション結果〉
ここで、上述の動作モデルに基づいてシミュレーションを行った結果について説明する。
図２Ａは、第１のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。図２Ｂは、第１のシミュレーションにおける各運動モジュールの伸縮量の時系列を示す図である。
以下に、第１のシミュレーションにおけるパラメータを示す。
運動モジュール１０の数Ｎは３０とした。
可変長ばねＳのばね定数ｋは１．０とした。
可変長ばねＳの収縮量の振幅ａは１．０とした。
質点Ｐの質量ｍは１．０×１０−６とした。
減衰係数ｃは１．０×１０−５とした。
定数ｎは３とした。
定数ｂは、２．７×１０−３とした。
可変長ばねＳの平均長Ｌは２．５とした。
基本周波数ωは、０．６とした。
フィードバックの強さσは、６．５×１０２とした。
位相θの初期値は、０とした。
【００４１】
第１のシミュレーションの結果、図２Ａに示すように、開始後すぐに各運動モジュール１０が移動方向ｄの前方から後方へ伝搬する疎密波を生成し、各運動モジュール１０が移動方向ｄの前方へ進んでいることが分かる。また、図２Ｂに示すように、各運動モジュール１０の伸縮量についても、移動方向ｄの前方から後方へ向かって進行波が形成されていることが分かる。
【００４２】
図３Ａ、図３Ｂは、第２のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。
第２のシミュレーションにおけるパラメータは、第１のシミュレーションのパラメータと運動モジュール１０の数Ｎが異なり、その他のパラメータは第１のシミュレーションのパラメータと同じである。具体的には、第２のシミュレーションでは、運動モジュール１０の数Ｎが１０である場合と、１００である場合について演算を行った。これにより、本動作モデルの拡張性を検証した。
【００４３】
第２のシミュレーションの結果、図３Ａに示すように、運動モジュール１０の数を減らしても、移動方向ｄの前方から後方へ伝搬する疎密波が生成され、各運動モジュール１０が移動方向ｄの前方へ進んでいることが分かる。また、図３Ｂに示すように、運動モジュール１０の数を増やしても、同様に各運動モジュール１０が移動方向ｄの前方へ進んでいることが分かる。このことから、本動作モデルは拡張性に優れていることが分かる。
【００４４】
図４Ａは、第３のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。図４Ｂは、第３のシミュレーションにおける各運動モジュールの伸縮量の時系列を示す図である。
第３のシミュレーションにおけるパラメータは、第１のシミュレーションのパラメータと２０−２２番目の運動モジュール１０のパラメータが異なり、その他の運動モジュール１０のパラメータは第１のシミュレーションのパラメータと同じである。第３のシミュレーションでは、２０−２２番目の運動モジュール１０を受動ばねに置き換えた。つまり、２０−２２番目の運動モジュール１０について、定数ａを０とした。これにより、２０−２２番目の運動モジュール１０が故障した場合の動作を再現し、本動作モデルにおける耐故障性を検証した。
【００４５】
第３のシミュレーションの結果、図４Ａに示すように、一部の運動モジュール１０が受動ばねとして振る舞っても、移動方向ｄの前方から後方へ伝搬する疎密波が生成され、各運動モジュール１０が移動方向ｄの前方へ進んでいることが分かる。また、図４Ｂに示すように、各運動モジュール１０の伸縮量についても、第１のシミュレーションと同様の進行波が形成されていることが分かる。つまり、本動作モデルは耐故障性に優れていることが分かる。
【００４６】
図５Ａは、第４のシミュレーションにおける各運動モジュールの変位の時系列を示す図である。図５Ｂは、第４のシミュレーションにおける各運動モジュールの伸縮量の時系列を示す図である。
第４のシミュレーションにおけるパラメータは、第１のシミュレーションのパラメータと所定領域における摩擦係数が異なり、その他のパラメータは第１のシミュレーションのパラメータと同じである。具体的には、一部領域を高摩擦面と仮定して定数ｂを２．７×１０−３とし、他の領域を低摩擦面と仮定して定数ｂを０とした。これにより、摩擦係数の異なる環境下における運動モジュール１０の動作を再現し、本動作モデルにおける寛容適応性を検証した。
【００４７】
第４のシミュレーションの結果、図５Ａに示すように、高摩擦面において運動モジュール１０が収縮している状態にある時間が、低い摩擦面において運動モジュール１０が収縮している状態にある時間より長くなっていることが分かる。また、図４Ｂに示すように、各運動モジュール１０の伸縮量についても、摩擦係数の異なる領域において異なる進行波が形成されていることが分かる。このことから、本動作モデルによれば、高摩擦面をうまく活用して移動していることが分かる。つまり、本動作モデルは環境適応性に優れていることが分かる。
【００４８】
《第１の実施形態》
ここで、上述の動作モデルを実装するロボットの実施形態について説明する。
図６は、第１の実施形態に係るロボットの構成を示す概略ブロック図である。
ロボット１００は、複数の運動モジュール１０を備える。各運動モジュール１０は、移動方向に伸縮可能に構成される。複数の運動モジュール１０は、移動方向ｄに連接されている。
各運動モジュール１０は、反力検出部１１と、伸縮部１２と、制御装置１３とを備える。
【００４９】
反力検出部１１は、地面から受ける移動方向ｄに掛かる反力の大きさを検出する。反力検出部１１は、反力の向きが移動方向ｄの前方を向く場合に、正値を出力し、反力の向きが移動方向ｄの後方を向く場合に負値を出力する。
伸縮部１２は、制御装置１３が出力する収縮量に従って、移動方向への伸長と収縮を繰り返す。
制御装置１３は、反力検出部１１が検出した反力の大きさに従って伸縮部１２の伸縮量を決定する。
【００５０】
〈運動モジュールの構造〉
図７は、第１の実施形態に係る運動モジュールの側面図である。
ここで、第１の実施形態に係る運動モジュール１０の具体的な構成について説明する。運動モジュール１０は、下部本体２００と上部本体３００とを備える。
【００５１】
下部本体２００は、下部筐体２０１と、２対の車輪２０２と、下部モータ２０５と、ブレーキ２０６と、ポテンショメータ２０３と、壁部２０４と、制御装置１３とを備える。
下部筐体２０１は、下部本体２００の外殻を形成する。
車輪２０２は、下部本体２００の横方向（移動方向ｄに直交する方向）に伸びる回転軸回りに回転する。車輪２０２の回転軸は、下部筐体２０１に設けられる。これにより、下部筐体２０１は、車輪２０２の回転により移動方向に移動可能に構成される。なお、車輪２０２へは動力が直接伝達されない。
下部モータ２０５は、下部筐体２０１の内部に設けられる。下部モータ２０５は、制御装置１３が出力する伸縮量に応じて回転する。下部モータ２０５には、サーボモータなどを用いることができる。
ブレーキ２０６は、その一端が下部モータ２０５の回転軸に固定される。ブレーキ２０６は、下部モータ２０５と共に回転する。制御装置１３が最小の伸縮量を出力するとき（最大収縮時）、下部モータ２０５の回転によりブレーキ２０６の他端が地面に接し、ブレーキ２０６と地面との摩擦力が最大となる。制御装置１３が最大の伸縮量を出力するとき（最大伸長時）、下部モータ２０５の回転によりブレーキ２０６の他端は地面から離れ、ブレーキ２０６と地面との摩擦力が最小（ゼロ）となる。
ポテンショメータ２０３は、下部筐体２０１の上方に回転軸が突き出るように設けられる。ポテンショメータ２０３は、回転軸が鉛直方向に伸びるように設けられる。ポテンショメータ２０３の回転軸にはギアが取り付けられる。ポテンショメータ２０３は、回転軸が回転されることにより回転量に応じた信号を制御装置１３に出力する。
壁部２０４は、ポテンショメータ２０３を中心に、下部筐体２０１の移動方向ｄの前方と後方に設けられる。壁部２０４は下部筐体２０１に固定される。
【００５２】
上部本体３００は、上部筐体３０１と、上部モータ３０２と、ピニオン３０３と、伸縮用ラックギア３０４と、スライドレール３０５と、計測用ラックギア３０６とを備える。
上部筐体３０１は、上部本体３００の外殻を形成する。上部筐体３０１の移動方向ｄの後方の端部には、スライドレール３０５を受け入れる挿入孔３１０が設けられる。挿入孔３１０の内部には、弾性体（ばね、空気ばね、ゴム、スポンジなど）が設けられてもよい。
上部モータ３０２は、上部筐体３０１の上に設置される。上部モータ３０２は、回転軸が上部筐体３０１の横方向（移動方向ｄに直交する方向）に伸びるように設けられる。上部モータ３０２は、制御装置１３が出力する伸縮量に応じて回転する。上部モータ３０２には、サーボモータなどを用いることができる。
ピニオン３０３は、上部モータ３０２の回転軸に取り付けられる。
伸縮用ラックギア３０４は、ピニオン３０３と噛み合うように設けられる。つまり、伸縮用ラックギア３０４は、歯面が上を向き、長手方向が移動方向ｄと一致するように設けられる。
スライドレール３０５は、固定側レールと移動側レールとが移動方向に摺動可能に形成されたレールである。スライドレール３０５の固定側レールは、上部筐体３０１に固定される。スライドレールの移動側レールには、伸縮用ラックギア３０４が取り付けられる。これにより、ピニオン３０３の回転に伴い、スライドレール３０５が移動方向に伸縮する。スライドレール３０５は、伸縮部１２の一例である。
計測用ラックギア３０６は、上部筐体３０１の下方中央に突出するように設けられる。計測用ラックギア３０６は、歯面が側方を向き、長手方向が移動方向ｄと一致するように設けられる。
【００５３】
上部本体３００は、下部本体２００の上方に設けられる。上部本体３００の計測用ラックギア３０６と下部本体２００のポテンショメータ２０３のギアとが噛み合っている。計測用ラックギア３０６は、下部本体２００の２つの壁部２０４と、ばね４０１を介して接続される。つまり、上部本体３００は、下部本体２００に対して移動方向ｄに摺動可能に設けられる。これにより、下部本体２００と地面との間に生じる反力が、上部本体３００と下部本体２００との変位として表れ、当該変位をポテンショメータ２０３により計測することができる。つまり、ポテンショメータ２０３により、下部本体２００と地面との間に生じる反力を計測することができる。つまり、ポテンショメータ２０３は、反力検出部１１の一例である。
【００５４】
〈制御装置の構成〉
図８は、第１の実施形態に係る制御装置の構成を示す概略ブロック図である。
制御装置１３は、反力取得部１３１、位相記憶部１３２、オフセット算出部１３３、位相生成部１３４、伸縮量決定部１３５、伸縮量取得部１３６、ブレーキ強さ決定部１３７を備える。
反力取得部１３１は、運動モジュール１０に掛かる移動方向ｄの反力の大きさを取得する。具体的には、反力取得部１３１は、ポテンショメータ２０３が出力する信号を取得する。
位相記憶部１３２は、位相生成部１３４が最後に生成した位相を記憶する。
オフセット算出部１３３は、位相記憶部１３２が記憶する位相と、反力取得部１３１が取得した反力の大きさとに基づいて、オフセット角周波数を算出する。具体的には、オフセット算出部１３３は、以下の式（７）に基づいてオフセット角周波数ω＋を算出する。
【００５５】
【数７】
2017217728.tif 000009
【００５６】
σは、反力のフィードバックの強さを示す定数である。Ｓは、反力取得部１３１が取得した反力の大きさである。Ｓは、反力が移動方向ｄの前方に向く場合に正値となり、反力が移動方向ｄの後方に向く場合に負値となる。つまり、Ｓは、移動方向ｄの前方へ向く反力の大きさである。θは、位相記憶部１３２が記憶する位相である。すなわち、オフセット角周波数ω＋は、移動方向ｄの前方へ向く反力の大きさＳと、位相の余弦（ｃｏｓθ）との積に対して単調減少する値である。
【００５７】
位相生成部１３４は、基本角周波数とオフセット角周波数とを加算して補正角周波数を算出し、当該補正角周波数に基づいて位相を生成する。位相生成部１３４は、生成した位相を位相記憶部１３２に記憶させる。
伸縮量決定部１３５は、位相生成部１３４が生成した位相に基づいて運動モジュール１０の伸縮量を決定する。伸縮量は、位相生成部１３４が生成した位相の正弦（ｓｉｎθ）によって求められる。伸縮量決定部１３５は、決定した伸縮量を上部モータ３０２に出力する。
伸縮量取得部１３６は、自装置を搭載する運動モジュール１０の移動方向ｄの前方に連接される他の運動モジュール１０の伸縮量を取得する。他の運動モジュール１０の伸縮量とは、他の運動モジュール１０の伸縮量決定部１３５が決定した伸縮量である。
ブレーキ強さ決定部１３７は、伸縮量決定部１３５が決定した伸縮量と伸縮量取得部１３６が取得した伸縮量とに基づいて運動モジュール１０のブレーキ強さを決定する。ブレーキ強さ決定部１３７は、式（４）に示す摩擦係数ηをブレーキ強さとして求めることができる。ブレーキ強さ決定部１３７は、決定したブレーキ強さを下部モータ２０５に出力する。
【００５８】
〈制御装置による制御〉
制御装置１３による運動モジュール１０の制御について説明する。
図９は、第１の実施形態に係る制御装置による運動モジュールの制御方法を示すフローチャートである。
制御装置１３は、起動すると、以下に示す制御ルーチンを所定の制御周期で繰り返し実行する。
反力取得部１３１は、ポテンショメータ２０３が出力する信号を取得する（ステップＳ１）。オフセット算出部１３３は、位相記憶部１３２から前回の制御ルーチンで生成された位相を取得する（ステップＳ２）。オフセット算出部１３３は、取得した位相と反力取得部１３１が取得した反力の大きさとに基づいて、オフセット角周波数を算出する（ステップＳ３）。位相生成部１３４は、基本角周波数とオフセット角周波数とを加算して補正角周波数を算出する（ステップＳ４）。次に、位相生成部１３４は、補正角周波数に基づいて位相を生成する（ステップＳ５）。位相生成部１３４は、生成した位相を位相記憶部１３２に記憶させる（ステップＳ６）。伸縮量決定部１３５は、位相生成部１３４が生成した位相に基づいて運動モジュール１０の伸縮量を決定する（ステップＳ７）。伸縮量決定部１３５は、決定した伸縮量を上部モータ３０２に出力する（ステップＳ８）。これにより、反力が移動方向ｄの前方に向くときの伸縮部１２の伸長速度は、反力が移動方向ｄの後方に向くときの伸長速度より遅く、反力が移動方向ｄの前方に向くときの伸縮部１２の収縮速度は、反力が移動方向ｄの後方に向くときの収縮速度より速くなる。
伸縮量取得部１３６は、自装置を搭載する運動モジュール１０の移動方向ｄの前方に連接される他の運動モジュール１０から伸縮量を取得する（ステップＳ９）。ブレーキ強さ決定部１３７は、伸縮量決定部１３５が決定した伸縮量と伸縮量取得部１３６が取得した伸縮量とに基づいて運動モジュール１０のブレーキ強さを決定する（ステップＳ１０）。ブレーキ強さ決定部１３７は、決定したブレーキ強さを下部モータ２０５に出力する（ステップＳ１１）。
【００５９】
〈作用・効果〉
このように、本実施形態によれば、運動モジュール１０の制御装置１３は、移動方向ｄに伸縮する運動モジュール１０の伸縮量を、当該運動モジュール１０に掛かる移動方向ｄの反力に基づいて決定する。したがって、運動モジュール１０を連ねて構成されるロボット１００は、各運動モジュール１０の自律分散制御により動作することができる。自律分散制御により動作することで、複数の運動モジュール１０の一部に障害が発生したとしても、ロボット１００全体が停止することなく、障害発生に適応して動作を続けることができる。またロボット１００は、自律分散制御により動作することで、さまざまな環境にリアルタイムに適応することができる。また各運動モジュール１０は、それぞれ自律分散制御により動作するため、ロボット１００を構成する運動モジュール１０の数を容易に変更することができる。また、ロボット１００を自律分散制御にすることで、各制御装置１３の計算コストを小さくすることができる。
【００６０】
〈変形例〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
上述した実施形態に係る運動モジュール１０は、図７に示す構造を有するが、これに限られない。例えば、他の実施形態に係る運動モジュール１０は、非特許文献１−４（参照によりここに援用する）に挙げられたロボットのモジュールと同様の構造を有していてもよい。つまり、非特許文献１−４に挙げられたロボットのモジュールは、伸縮部１２の一例である。また、他の実施形態においては、反力検出部１１として、図７に示す構造に代えて、他の構造を有していてもよい。例えば、他の実施形態に係る反力検出部１１は、加速度センサ、圧電素子、ひずみゲージなどの他のセンサによって構成されてもよい。
【００６１】
上述した実施形態では、制御装置１３が式（６）に基づいてオフセット角周波数を算出するが、これに限られない。例えば、他の実施形態に係る制御装置１３は、反力の向きと、運動モジュールの伸縮状態と、オフセット角周波数とを関連付けたテーブルに基づいてオフセット角周波数を算出してもよい。当該テーブルには、以下の条件でオフセット角周波数が記憶されていることが好ましい。
反力の向き：移動方向ｄの前方、伸縮状態：伸長している状態、オフセット角周波数：負値
反力の向き：移動方向ｄの前方、伸縮状態：収縮している状態、オフセット角周波数：正値
反力の向き：移動方向ｄの後方、伸縮状態：伸長している状態、オフセット角周波数：正値
反力の向き：移動方向ｄの後方、伸縮状態：収縮している状態、オフセット角周波数：負値
なお、「伸長している状態」とは、相対的に短い長さから相対的に長い長さへ遷移している状態をいう。「収縮している状態」とは、相対的に長い長さから相対的に短い長さへ遷移している状態をいう。
ただし、これに限られず、反力が移動方向ｄの後方に向きかつ運動モジュール１０が伸長している状態にあるときのオフセット角周波数が、反力が移動方向ｄの後方に向きかつ運動モジュール１０が収縮している状態にあるときのオフセット角周波数より大きくなる他の条件であってもよい。また、反力が移動方向ｄの前方に向きかつ運動モジュール１０が伸長している状態にあるときのオフセット角周波数が、反力が移動方向ｄの前方に向きかつ運動モジュール１０が収縮している状態にあるときのオフセット角周波数より小さくなる他の条件であってもよい。この場合、オフセット角周波数の範囲は、必ずしも正値と負値の両方を含まなくてもよい。
【００６２】
上述した実施形態に係る制御装置１３は、他の運動モジュール１０から伸縮量を取得して式（４）に基づいてブレーキ強さを決定するが、これに限られない。例えば、他の実施形態に係る制御装置１３は、他の運動モジュール１０から位相を取得し、位相生成部１３４が生成した位相と取得した位相とに基づいてブレーキ強さを決定してもよい。また例えば、他の実施形態においては、制御装置１３は、他の運動モジュール１０から伸縮量を取得せず、伸縮量決定部１３５が決定した伸縮量に基づいて下部モータ２０５を制御してもよい。また例えば、他の実施形態においては、制御装置１３は、運動モジュール１０の実長（ｌｉ＋１／２とｌｉ−１／２の平均値に相当）を計測し、当該実長に基づいてブレーキ強さを決定してもよい。この場合、運動モジュール１０は、実長を計測するメカニズムを備える必要がある。実長を計測するメカニズムの例としては、運動モジュール１０の移動方向ｄの前方の端部（例えば、上部筐体３０１の挿入孔３１０の上）に設けられる赤外線エミッタと、運動モジュール１０の移動方向ｄの後方の端部（例えば、スライドレール３０５の移動方向ｄの後方の端部）に設けられる赤外線レシーバの組み合わせが挙げられる。赤外線エミッタの送信面と赤外線レシーバの受信面は対向して設けられる。これにより、赤外線エミッタが一定の強度で赤外線を送信し、赤外線レシーバが当該赤外線の受信強度を検出することで、制御装置１３は、運動モジュール１０の実長を計測することができる。
【００６３】
上述した実施形態に係るロボット１００は、地面の上を移動するものであるが、これに限られない。例えば、他の実施形態に係るロボット１００は、管状に形成され、管内の対象物を移動方向ｄの前方から後方へ輸送するロボットであってもよい。つまり、上述した実施形態に係るロボット１００は、ミミズの這行運動に着想を得た移動ロボットであるのに対し、他の実施形態に係るロボット１００は、消化管の蠕動運動に着想を得た輸送管であってよい。この場合、各運動モジュール１０は、管状に形成され、伸縮によりその内周面の摩擦力が変化するように構成される。また、制御装置１３は、運動モジュール１０の内周面に存在する対象物との間に生じる反力の向きに基づいて運動モジュール１０の伸縮量を制御する。
【００６４】
〈コンピュータ構成〉
図１０は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ９００は、ＣＰＵ９０１、メインメモリ９０２、ストレージ９０３、インタフェース９０４を備える。
上述の制御装置１３は、コンピュータ９００に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ９０３に記憶されている。ＣＰＵ９０１は、プログラムをストレージ９０３から読み出してメインメモリ９０２に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ９０１は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ９０２に確保する。
【００６５】
なお、少なくとも１つの実施形態において、ストレージ９０３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース９０４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ９００に配信される場合、配信を受けたコンピュータ９００が当該プログラムをメインメモリ９０２に展開し、上記処理を実行してもよい。
【００６６】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能をストレージ９０３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００６７】
１００  ロボット
１０  運動モジュール
１１  反力検出部
１２  伸縮部
１３  制御装置
１３１  反力取得部
１３２  位相記憶部
１３３  オフセット算出部
１３４  位相生成部
１３５  伸縮量決定部
１３６  伸縮量取得部
１３７  ブレーキ強さ決定部
【図１】
2017217728.tif 000010
【図２Ａ】
2017217728.tif 000011
【図２Ｂ】
2017217728.tif 000012
【図３Ａ】
2017217728.tif 000013
【図３Ｂ】
2017217728.tif 000014
【図４Ａ】
2017217728.tif 000015
【図４Ｂ】
2017217728.tif 000016
【図５Ａ】
2017217728.tif 000017
【図５Ｂ】
2017217728.tif 000018
【図６】
2017217728.tif 000019
【図７】
2017217728.tif 000020
【図８】
2017217728.tif 000021
【図９】
2017217728.tif 000022
【図１０】
2017217728.tif 000023