(57)【特許請求の範囲】
【請求項１】
所定の動作を行うロボットであって、
上記所定の動作として、取り外し可能な部材を取り付け可能である部位を駆動させる駆動制御部と、
上記駆動する部位が自ロボットへ接触したことを検知する検知部と、
上記接触を検知したとき、上記所定の動作の動作量を変更する変更部と、
上記部材の取り付けの有無を判定する判定部と、を備え、
上記変更部は、上記部材の取り付けの有無により、変更する動作量を異ならせる
ことを特徴とするロボット。
【請求項２】
所定の動作を行うロボットであって、
上記所定の動作として、部位を駆動させる駆動制御部と、
上記駆動する部位が自ロボットへ接触したことを検知する検知部と、
上記接触を検知したとき、上記所定の動作の動作量を変更する変更部と、を備え、
上記変更部は、上記部位の可動距離が短くなるように、上記動作量を変更する
ことを特徴とするロボット。
【請求項３】
上記駆動する部位と、該部位とは異なる位置との少なくとも２カ所に接触を検知するセンサを設け、
上記検知部は、上記少なくとも２カ所のセンサを用いて上記接触を検知する
ことを特徴とする請求項１または２に記載のロボット。
【請求項４】
上記変更部は、上記検知部が、所定の回数、上記接触を検知した場合、上記所定の動作の動作量を変更することを特徴とする請求項１から３のいずれか１項に記載のロボット。
【請求項５】
上記所定の動作は複数存在し、
上記変更部は、上記複数の所定の動作のうち、接触を検知した所定の動作における動作量を変更する
ことを特徴とする請求項１から４のいずれか１項に記載のロボット。
【請求項６】
上記駆動は回転駆動を含み、
上記変更部は、上記回転駆動の回転角度が小さくなるように上記動作量を変更する
ことを特徴とする請求項５に記載のロボット。
【請求項７】
上記駆動は直線駆動を含み、
上記変更部は、上記直線駆動の移動距離が短くなるように上記動作量を変更する
ことを特徴とする請求項５または６に記載のロボット。
【請求項８】
所定の動作を行うロボットの制御方法であって、
上記所定の動作として、取り外し可能な部材を取り付け可能である部位を駆動させる駆動制御ステップと、
上記駆動する部位が自ロボットへ接触したことを検知する検知ステップと、
上記接触を検知したとき、上記所定の動作の動作量を変更する変更ステップと、を含み、
さらに、上記部材の取り付けの有無を判定する判定ステップを含み、
上記変更ステップでは、上記部材の取り付けの有無により、変更する動作量を異ならせる
ことを特徴とするロボットの制御方法。
【請求項９】
所定の動作を行うロボットの制御方法であって、
上記所定の動作として、部位を駆動させる駆動制御ステップと、
上記駆動する部位が自ロボットへ接触したことを検知する検知ステップと、
上記接触を検知したとき、上記所定の動作の動作量を変更する変更ステップと、を含み、
上記変更ステップでは、上記部位の可動距離が短くなるように、上記動作量を変更する
ことを特徴とするロボットの制御方法。
【請求項１０】
請求項１に記載のロボットとしてコンピュータを機能させるための制御プログラムであって、上記駆動制御部、上記変更部、および上記判定部としてコンピュータを機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の動作を行うロボットおよびロボットの制御方法に関する。
【背景技術】
【０００２】
モーションを実行することによって、ジェスチャによるコミュニケーションを図ることが可能なロボットが従来技術として知られている。このようなロボットにおいて、モーションによって各部の位置が変化したときに、ある部位が該ロボットの他の部位と干渉した結果、所望するモーションを実行できない場合が考えられる。この問題を解決するために、例えば特許文献１の技術が存在する。特許文献１は、手話動作を行うロボットが、前の手話動作の終点位置と次の手話動作の始点位置とを結ぶ軌道において部位間の干渉が生じる場合は、各手話動作が示す単語の意味を維持可能な範囲で該終点位置および該始点位置を調整する手段が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】日本国公開特許公報「特開２０１３−９７３３９号」（２０１３年５月２０日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような従来技術は、予め予測された部位間の干渉に対してのみ有効であるという問題がある。例えば、経年劣化などの理由により、モーションとして所定の動作を実行する際、部位が当初予定していた経路に沿って移動することができなかった結果、干渉が生じることが考えられる。このような場合、従来技術は該干渉を解消するように所定の動作を調整することができない。【０００５】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、事前に予測できない部位間の干渉を解消できる、利便性の高いロボットを提供することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明の一態様に係るロボットは、所定の動作を行うロボットであって、上記所定の動作として、部位を駆動させる駆動制御部と、上記駆動する部位が自ロボットへ接触したことを検知する検知部と、上記接触を検知したとき、上記所定の動作の動作量を変更する変更部と、を備える。【０００７】
上記の課題を解決するために、本発明の一態様に係るロボットの制御方法は、所定の動作を行うロボットの制御方法であって、上記所定の動作として、部位を駆動させる駆動制御ステップと、上記駆動する部位が自ロボットへ接触したことを検知する検知ステップと、上記接触を検知したとき、上記所定の動作の動作量を変更する変更ステップと、を含む。
【発明の効果】
【０００８】
本発明の一態様によれば、事前に予測できない部位間の干渉を解消できる、利便性の高いロボットを提供することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態１に係るロボットの要部構成の一例を示すブロック図である。
【図２】本発明の実施形態１に係るロボットの動作の一例を示す模式図である。
【図３】本発明の実施形態１に係るロボットが実行する処理の一例を示すフローチャートである。
【図４】（ａ）、（ｂ）は、本発明の実施形態１に係るロボットにおけるセンサの位置および部位間の干渉を判定する条件の一例を示す模式図および表である。
【図５】（ａ）〜（ｃ）は、本発明の実施形態１に係るロボットにおいて部位間の干渉を判定する条件の例を示す表である。
【図６】本発明の実施形態２に係るロボットの動作の一例を示す模式図である。
【図７】本発明の実施形態２に係るロボットが実行する処理の一例を示すフローチャートである。
【図８】本発明の実施形態３に係るロボットの動作の一例を示す模式図である。
【図９】本発明の一態様に係るロボットが複数の駆動部にオフセット値を適用する一例を示す模式図である。
【発明を実施するための形態】
【００１０】
〔実施形態１〕
本実施形態に係るロボット１について、図１〜５を用いて詳細に説明する。
【００１１】
＜ロボットの構成＞
本実施形態に係るロボット１の構成について、図１を用いて説明する。図１は、本実施形態に係るロボット１の要部構成の一例を示すブロック図である。図示の例において、ロボット１は、記憶部１１、センサ１２、駆動部１３、および制御部１４を備えている。そして、制御部１４は、構成取得部２１、目標設定部２２、駆動制御部２３、干渉検知部２４、およびオフセット設定部２５を備えている。
【００１２】
記憶部１１は、ロボット１にて扱われる各種データを記憶する。例えば、記憶部１１はロボット１が実行する所定の動作において移動する、各部の動作を行うためのデータ、例えば、部位の移動先となる目標位置、目標位置に移動するために必要な駆動部１３の駆動量等に関するデータを記憶している。また、本実施形態では、記憶部１１は、部位間の干渉が発生したときの、該干渉に関与した部位の状態である当該位置における駆動部１３の駆動量（例えば角度）を少なくとも記憶する。
【００１３】
センサ１２は、ロボット１の各部位に配置され、該ロボット１が所定の動作を実行した際に生じた部位間の干渉を検出する。本実施形態において、センサ１２は部位間の干渉（接触）によって発生した衝撃を検出する衝撃センサである。なお、センサ１２は部位間の干渉を検出可能な構成であればどのようなものであってもよく、干渉による静電容量の変化を検出するタッチセンサ、干渉時に発生した加速度を検出する加速度センサ、および干渉時に発生した圧力を検出する感圧センサであってもよい。また、これらのセンサを組み合わせたものであってもよい。また、本実施形態において、ロボット１は複数のセンサ１２を備えており、センサ１２は、ロボット１の各部位に配置され、衝撃を検出する。センサ１２の配置については後述する。
【００１４】
駆動部１３は、ロボット１の各部に配置され、後述する駆動制御部２３の制御にしたがって駆動することによって該ロボット１の所定の動作を実現するものである。本実施形態において、ロボット１は複数の駆動部１３を備えており、駆動部１３は、ロボット１に各部に分散して配置されている。なお、駆動部１３は、ロボット１が所定の動作を実現することが可能な構成であればどのようなものであってもよい。例えば、駆動部１３は、回転軸を回転させる回転式モーターであってもよいし、電磁誘導などによって直線駆動（直動）させるリニアモーターであってもよい。また、アクチュエーターの駆動が直接、ロボット１の所定の動作を実現する構成に限らず、例えば、モーター（回転式モーター、リニアモーター）とリンク機構とを組み合せることにより、回転駆動を直線駆動に変換してもよい。さらに、直線駆動をクランク機構等により回転駆動に変換してもよい。
【００１５】
制御部１４は、ロボット１の各部を統括して制御する。なお、制御部１４は、図示しない入力操作部に対するユーザの入力操作に応じて各部を制御する構成であってもよい。
【００１６】
構成取得部２１は、ロボット１の各部位の現在の位置および該ロボット１の設定情報など、ロボット１の現在の構成情報を取得する。
【００１７】
目標設定部２２は、決定された所定の動作をロボット１が実行するために、各部位が移動する目標を設定する。換言すれば、目標設定部２２は、所定の動作として、部位の移動する経路を設定する。例えば、所定の動作として、ロボット１が左手を上に挙げるモーションを実行する場合、目標設定部２２は、モーションの最終位置となる左手が上となる位置を設定する。なお、本実施形態では、最終位置を設定すれば、部位の駆動経路は一意に決まる。
【００１８】
駆動制御部２３は、所定の動作として、目標設定部２２が設定した最終位置に部位が移動するように駆動部１３を駆動させる。駆動制御部２３は、例えば、駆動部１３がモーターであるときは、該モーターの回転量を制御することによってロボット１の部位の移動量を制御する。また、本実施形態において、駆動制御部２３は、ロボット１がモーションの実行中に部位間の干渉を検出した場合は、最終位置に向かうための移動量に後述するオフセット設定部２５が設定したオフセット値を適用して部位を駆動させる。
【００１９】
干渉検知部２４は、駆動する部位が自ロボットへ接触したことを検知する。より詳細には、センサ１２を用いて、接触（部位間の干渉）を検知する検知部として動作する。また、干渉検知部２４は、部位間の干渉を検知したと判定した場合は、後述するオフセット設定部２５に干渉を検知した部位と検出した値について通知する。本実施形態において、干渉検知部２４は、駆動する部位と、該部位とは異なる位置との少なくとも２カ所に設けられたセンサ１２を用いて、接触を検知する。
【００２０】
オフセット設定部２５は、干渉検知部２４より通知された干渉を検知した部位と検出した値に基づいて、部位間の干渉を解消するために、移動量に対するオフセット値を設定し、駆動制御部２３へ通知する。換言すれば、オフセット設定部２５は、干渉検知部２４が駆動する部位が自ロボットへ接触したことを検知したとき、所定の動作の動作量を変更する変更部として動作する。ここで、オフセット値は、モーションの実行毎に適用される、駆動する部位による自ロボットへの接触を解消するための修正値である。オフセット値の具体例については後述する。
【００２１】
＜ロボットの動作＞
本実施形態に係るロボット１が実行する動作の一例について、図２を用いて説明する。図２は、ロボット１の動作の一例を示す模式図である。図示の例において、ロボット１は、センサ１２を両手の先端および頭部にそれぞれ配置しているものとする。また、ロボット１は、左肩を回転駆動させることによって左腕全体を横から上に向けるモーションを実行するものであり、該モーションにおいて、左肘および左手首を含めた他の部位は駆動しないものとする。
【００２２】
例２０１は、ロボット１が左腕全体を上に向けるモーションを実行した場合に、左手が頭部と干渉する場合を示す。図示の例において、ロボット１は、目標設定部２２が設定した最終位置に向かって左腕全体を回転駆動させる。このとき、ロボット１が経年劣化および外部要因による継続的な負荷などの理由により、左手が頭部と干渉することが考えられる。なお、左手が頭部と干渉したとき、干渉によって生じた衝撃は、各部位に配置された複数のセンサ１２によって検出される。このとき、干渉検知部２４は、左手の先端および頭部に配置されたセンサ１２において、所定の閾値を超える衝撃を検出すると、左手が頭部と干渉したと判定する。
【００２３】
例２０２は、例２０１の後、ロボット１が部位間の干渉を解消し、モーションを実行したことを示す。例２０１にて干渉検知部２４が部位間の干渉が発生したと判定すると、オフセット設定部２５は、部位間の干渉を解消するためのオフセット値を設定し、設定されたオフセット値を適用して駆動制御部２３が駆動部１３を駆動させる。そして、ロボット１は、最終位置に向かうための移動量にオフセット値が適用された移動量に基づいて部位を移動させることにより、モーションの実行を完了する。図示の例において、ロボット１は干渉検知部２４が駆動する部位が自ロボットへ接触したことを検知したとき、所定の動作の動作量について、部位の可動距離が短くなるように、動作量を変更する。すなわち、ロボット１は、左手が頭部と接触する前にモーションの実行を完了するようにオフセット値を設定する。
【００２４】
オフセット設定部２５が設定するオフセット値の一例について、以下に説明する。
【００２５】
まず、干渉検知部２４が部位間の干渉を検知したと判定したときの部位の位置を取得する。例えば、ロボット１が左肩を１８０°回転させるモーションを実行中に、１６０°回転させた時点で部位間の干渉を検知したとする。
【００２６】
次に、オフセット設定部２５は、左肩の回転量について、当初の目標値であった１８０°から干渉を検知した１６０°を減算し、さらに一定量を加えた値をオフセット値として設定する。上記の例によれば、一定量を５°としたとき、オフセット値は１８０°−１６０°＋５°＝２５°となる。ロボット１は、算出されたオフセット値を、当初の目標値１８０°から減算した１５５°を、オフセット値が適用された後の左肩の回転量とすることにより、当該モーションにおいて部位間の干渉が発生しないようにすることができる。
【００２７】
また、オフセット値を一度適用しただけでは、部位間の干渉が解消されない場合が考えられる。このような場合は、一連の流れを再度実行することにより、オフセット値を再設定（変更）することが好適である。
【００２８】
このようにして、本実施形態に係るロボット１は、部位の駆動が回転駆動を含むとき、該回転駆動の回転角度が小さくなるように、動作量を変更する。したがって、モーションを実行する際に部位間の干渉を検出すると、オフセット値を適用することによって該干渉を解消し、モーションの実行を完了させることができる。
【００２９】
＜処理の流れ＞
本実施形態に係るロボット１が実行する処理の流れについて、図３を用いて説明する。図３は、ロボット１が実行する処理の流れの一例を示すフローチャートである。
【００３０】
まず、決定されたモーションを実行するために、目標設定部２２は、モーションに対応する目標の位置を決定する（Ｓ１）。目標の位置の決定は、位置そのものを決定するのではなく、当該位置に移動するための駆動量を決定するものであってもよい。次に、駆動制御部２３は、設定されたオフセット値があれば、ステップＳ１で決定した駆動量にオフセット値を適用する（Ｓ２）。そして、駆動制御部２３は、各部位について、目標位置に部位が移動するように駆動部１３を駆動させる（Ｓ３：駆動制御ステップ）。
【００３１】
駆動開始後、干渉検知部２４は部位間の干渉を検知したか否かを判定する（Ｓ４：検知ステップ）。部位間の干渉を検知しない場合（Ｓ４でＮＯ）、駆動を継続し、モーションの実行を完了する。一方、部位間の干渉を検知した場合（Ｓ４でＹＥＳ）、駆動制御部２３は駆動を停止する（Ｓ５）。次に、オフセット設定部２５は、ステップＳ４で部位間の干渉を検知したと判定した時点における、該干渉に関与した部位の情報に基づいて、オフセット値を決定する（Ｓ６：変更ステップ）。そして、処理を終了する。
【００３２】
以上の処理により、ロボット１は、モーションを実行するために部位を駆動させ、該部位間の干渉を検知した場合は、オフセット値を適用し、干渉を解消したモーションを実行することができる。すなわち、ロボット１は、部位を駆動中に該部位を含む部位間の干渉を検知すると、オフセット値を適用し、部位間の干渉を解消することができる。したがって、事前に予測できない部位間の干渉を解消できる、利便性の高いロボットを提供することができるという効果を奏する。
【００３３】
＜部位間の干渉を検知したと判定するパターン＞
本実施形態において、干渉検知部２４がロボット１の部位間の干渉を検知したと判定する条件について、図４および５を用いて詳細に説明する。図４は、本実施形態に係るロボット１におけるセンサ１２の位置および部位間の干渉を判定する条件の一例を示す模式図および表である。
【００３４】
まず、図４の（ａ）に示すように、ロボット１に複数のセンサ１２が分散して配置されていることを考える。図示の例において、センサ１２は、Ａ〜Ｆの位置にそれぞれ配置されている。すなわち、Ａは左手の甲、Ｂは眉間、Ｃは右手の甲、Ｄは胴体中央、Ｅは左足の甲、およびＦは右足の甲における適当な位置である。なお、センサ１２はどのような位置に配置されてもよいが、駆動する部位同士が近接したときに最も接近する位置に配置されることが好適である。また、ロボット１が特定のモーションを実行する際、駆動する部位に配置されているセンサ１２のみが動作することにより、モーション時の干渉のみを判定できることが好適である。
【００３５】
図４の（ｂ）は、干渉検知部２４が部位間の干渉であるか否かを判定するために用いる表の一例である。図示の例において、「センサの値」列のＡおよびＢの値は、図４の（ａ）におけるＡおよびＢの位置にあるセンサ１２がそれぞれ検出した値に基づく。すなわち、Ａの位置にあるセンサ１２が検出した衝撃の値が所定の閾値を超えていた場合は「○」であり、所定の閾値以下であった場合は「×」が設定されている。なお、所定の閾値はどのような値であってもよいが、例えば、ロボット１が歩行などといった通常の動作を実行中に発生する衝撃の値とは区別可能である値であることが好適である。
【００３６】
図示の例において、ロボット１が左肩を回転駆動させ、左腕全体を上に向けるモーションを実行し、左手が頭部との間で部位間の干渉を発生させることを考える。このとき、ＡおよびＢの位置に配置されたセンサ１２がいずれも所定の閾値を超える衝撃を検出すると、ＡとＢのセンサの値はいずれも「○」となる。干渉検知部２４が表を参照すると、「接触判定」列の値が「接触」となっているため、部位間の干渉が発生したと判定することができる。一方、例えば上記のモーションを実行中に、左腕が壁などに衝突した場合、Ａの値は「○」であるがＢの値は「×」となる。このとき、表の上から２行目の組み合わせに該当し、対応する「接触判定」列の値は「−」である。したがって、干渉検知部２４は、部位間の干渉が発生しなかったと判定することができる。
【００３７】
よって、ロボット１は、駆動する部位と、該部位とは異なる位置との少なくとも２カ所にセンサ１２を設け、干渉検知部２４は、少なくとも２カ所のセンサ１２を用いて、接触（部位間の干渉）を検知することができる。したがって、１つのセンサ１２のみを用いる場合と比べて、高い精度で接触を検知し、接触を検知したときは、該接触を解消することができるロボット１を提供することができるという効果を奏する。
【００３８】
また、閾値に対する大小だけでなく、閾値を超えた回数などを条件として追加してもよい。さらに、閾値および回数は、ユーザが設定してもよいし、該ユーザが回数を任意にリセットできる構成であってもよい。
【００３９】
また、オフセット設定部２５は、干渉検知部２４が、所定の回数、上記接触を検知した場合、上記所定の動作の動作量を変更する構成であってもよい。上記の構成によれば、変更部は、検知部が所定の回数、接触を検知した場合、動作量を変更する。これにより、接触の回数が所定の回数に満たない場合は、動作量の変更が行われないので、偶発的に部位間の干渉が発生したときにも動作量が変更されてしまうことを防止することができるという効果を奏する。
【００４０】
次に、干渉検知部２４がロボット１の部位間の干渉を検知したと判定する所定の条件の別の例について、図５を用いて説明する。図５は、本実施形態に係るロボット１において部位間の干渉を判定する条件の一例を示す表である。図示の例において、ロボット１は、図５の（ａ）の表と、図５の（ｂ）の表とを組み合わせることにより、部位間の干渉を検知したか否かを判定する。
【００４１】
図５の（ａ）は、センサの値の組み合わせと、検出回数との組み合わせを示す表である。なお、表は、ロボット１が実行するモーションごとに設けられる。図示の例において、センサの値の組み合わせに対して、これまでにその組み合わせを検出した回数を「接触カウンタ値」列に格納している。例えば、一番上の行は、ＡおよびＢの位置に配置されたセンサ１２がいずれも所定の閾値を超える衝撃を検出し、ＡとＢのセンサの値がいずれも「○」であったことがこれまでに２回検出されたことを示す。
【００４２】
図５の（ｂ）は、モーションごとに部位間の干渉を検知した回数をまとめた表である。図示の例において、「モーション」列はロボット１が実行するモーションの種類を示し、「カウンタ合計」列は、個々のモーションの実行中に、図５の（ａ）の表においてＡおよびＢのセンサの値がいずれも「○」であるときの「接触カウンタ値」の値を示す。そして、「接触判定」列は、「カウンタ合計」列の値が所定の閾値を超えているか否かを判定した結果を示す。例えば、「カウンタ合計」列の所定の閾値が「５」であるとする。このとき、図示の例において、モーション「ア」のカウンタ合計は「２」であり、したがって接触判定は「−」である。一方、モーション「イ」のカウンタ合計は「５」であり、したがって接触判定は「接触」である。ゆえに、ロボット１は、モーション「イ」に対してオフセット値を適用し、接触（部位間の干渉）を解消する。
【００４３】
すなわち、モーションが複数存在する場合、オフセット設定部２５は、複数のモーションのうち、接触を検知したモーションにおける動作量に対するオフセット値を設定する。したがって、或るモーションにより部位間の干渉が発生したために、部位間の干渉が発生していない他のモーションにおける動作量に対しオフセット値が設定されてしまうことを防止することができるという効果を奏する。
【００４４】
なお、上記では、Ａのセンサが検出した回数、およびＢのセンサが検出した回数をそれぞれ検出回数として計上し、ＡおよびＢの両方のセンサが検出した場合は、検出回数「２」として計上していた。この構成に限られず、例えば、ＡおよびＢの両方のセンサが検出した場合のみ検出回数として計上し、Ａのセンサのみ、またはＢのセンサのみが検出した場合は、検出回数として計上しない構成であってもよい。すなわち、図５の（ｃ）に示すように、ＡおよびＢのセンサの値が両方とも「○」の場合のみ接触カウンタ値を「１」とし、それ以外は「０」とする構成であってもよい。
【００４５】
これにより、例えば、地面等との接触により、１つのセンサのみが複数回、接触を検出した場合にオフセット値を設定してしまうことを防止することができる。
【００４６】
〔実施形態２〕
本発明の実施形態２について、図６および７を用いて説明する。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【００４７】
＜ロボットの構成＞
本実施形態に係るロボット１の構成は、前記実施形態１に係るロボット１の構成と基本的に同一であるが、構成取得部２１およびオフセット設定部２５の一部機能が異なる。本実施形態において、構成取得部２１は、後述する部材（アタッチメントパーツ１５）の取り付けの有無を判定する判定部として動作する。さらに、オフセット設定部２５は、部材の取り付けの有無により、変更する動作量を異ならせる点が前記実施形態１と異なる。
【００４８】
本実施形態において、ロボット１はアタッチメントパーツ１５をさらに備える。アタッチメントパーツ１５は、ロボット１の各部位に対して取り付け可能な構成を備える部材である。アタッチメントパーツ１５は、該アタッチメントパーツ１５を装着した部位を含む部位間の干渉が発生した際、該干渉を検知することが可能な構成であればどのようなものであってもよい。例えば、アタッチメントパーツ１５の内部にさらなるセンサ１２が配置され、ロボット１は、アタッチメントパーツ１５を装着すると、該アタッチメントパーツ１５が備えるセンサ１２を用いて部位間の干渉を検知したか否かを判定してもよい。
【００４９】
＜ロボットの動作＞
本実施形態に係るロボット１が実行する動作の一例について、図６を用いて説明する。図６は、ロボット１の動作の一例を示す模式図である。図示の例において、ロボット１は、センサ１２を両手の先端および頭部にそれぞれ配置しているものとする。また、ロボット１は、左肩を回転駆動させることによって左腕全体を横から上に向けるモーションを実行するものであり、該モーションにおいて、左肘および左手首を含めた他の部位は駆動しないものとする。そして、ロボット１は左手首から先の全体を覆うように、アタッチメントパーツ１５を備えているものとする。
【００５０】
例３０１は、ロボット１が左腕全体を上に向けるモーションを実行した場合に、左手に装着されたアタッチメントパーツ１５が頭部と干渉する場合を示す。図示の例において、ロボット１は、構成取得部２１がアタッチメントパーツ１５の有無を判定した結果に基づいて目標設定部２２が設定した位置に向かって左腕全体を回転駆動させる。そして、左手に装着されたアタッチメントパーツ１５が頭部と干渉すると、各部に配置されたセンサ１２が衝撃を検出する。このとき、干渉検知部２４は、左手の先端および頭部に配置されたセンサ１２において、所定の閾値を超える衝撃を検出したことから、左手と頭部との間で部位間の干渉が発生したと判定する。
【００５１】
例３０２は、例３０１の後、ロボット１が部位間の干渉を解消し、モーションを実行したことを示す。例３０１にて干渉検知部２４が部位間の干渉が発生したと判定すると、図２の例２０２と同様にしてオフセット設定部２５は、オフセット値を設定し、設定されたオフセット値に基づいて駆動制御部２３が駆動部１３を駆動させる。そして、ロボット１は、オフセット値が適用された後の移動量に基づき部位を移動させることにより、モーションの実行を完了する。
【００５２】
このようにして、本実施形態に係るロボット１は、アタッチメントパーツ１５が取り付けられている場合でも、モーションを実行する際に部位間の干渉を検出すると、干渉を解消し、モーションの実行を完了させることができる。また、ロボット１は、同一のモーションを再度実行するときは、アタッチメントパーツ１５の有無に応じてオフセット値の適用を異ならせてもよい。
【００５３】
＜処理の流れ＞
本実施形態に係るロボット１が実行する処理の流れの一例について、図７を用いて説明する。図７は、ロボット１が実行する処理の流れの一例を示すフローチャートである。
【００５４】
まず、ステップＳ１の処理を実行した後、構成取得部２１は、アタッチメントパーツ１５を装着中であるか否かを判定する（Ｓ１１）。装着中であると判定した場合（Ｓ１１でＹＥＳ）、オフセット設定部２５は、アタッチメントパーツ１５を装着した状態で設定されたオフセット値が存在すれば、アタッチメントパーツ１５用のオフセット値を適用し（Ｓ１２）、ステップＳ３へ進む。一方、装着中ではないと判定した場合（Ｓ１１でＮＯ）、処理はそのままステップＳ２へ進む。そして、前記実施形態１と同様に、ステップＳ４〜ステップＳ６の処理を実行する。
【００５５】
以上の処理により、ロボット１は、アタッチメントパーツ１５の有無を判定して、モーションを実行する。そして、アタッチメントパーツ１５が取り付けられている場合は、取り付けられている場合用のオフセット値を適用し、取り付けられていない場合は取り付けられていない場合用のオフセット値を適用する。これにより、アタッチメントパーツ１５が取り付けられている場合も、取り付けられていない場合も適切にオフセット値を適用することができる。
【００５６】
したがって、アタッチメントパーツ１５が取り付けられていたために部位間の干渉が発生したにもかかわらず、アタッチメントパーツ１５が取り付けられていないときに当該モーションの動作量が変更されるということを防止することができるという効果を奏する。
【００５７】
なお、上記では、アタッチメントパーツ１５が装着されているか否か判定し、その結果に応じて処理を進める構成を記載した。これに限られず、例えば、アタッチメントパーツ１５の装着の有無をユーザが任意に設定できる構成であってもよい。これにより、自動的に、アタッチメントパーツ１５の装着の有無を判定することができない場合でも、アタッチメントパーツ１５に対応したオフセット値を設定することができる。なお、オフセット値は、ネットワークまたはメディアを経由してインストールするものであってもよい。
【００５８】
＜実施形態３＞
本実施形態に係るロボット１について、図８を用いて説明する。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【００５９】
＜ロボット１の構成＞
本実施形態に係るロボット１は、前記実施形態１に係るロボット１と同一の構成を備えているが、駆動部１３は直動を行い肘から先の部位全体を伸縮させる点が異なる。
【００６０】
＜ロボット１の動作＞
本実施形態に係るロボット１が実行する動作の一例について、図８を用いて説明する。図８は、ロボット１の動作の一例を示す模式図である。図示の例において、ロボット１は左腕を上に向けた状態から、左肘から先の部位全体を伸ばすモーションを実行する。
【００６１】
例４０１は、ロボット１が左肘から先の部位全体を伸ばすモーションを実行した場合に、左手が頭部と干渉する場合を示す。ロボット１は、前記各実施形態と同様にして、部位間の干渉が発生したことを検知する。
【００６２】
例４０２は、例４０１の後、ロボット１が部位間の干渉を解消し、モーションを実行したことを示す。例４０１にて干渉検知部２４が部位間の干渉が発生したと判定すると、図２の例２０２と同様にしてオフセット設定部２５は、オフセット値を設定し、設定されたオフセット値に基づいて駆動制御部２３が駆動部１３を駆動させる。図示の例において、オフセット値は駆動部１３の直動に対する駆動量、具体的には左肘から先の部位全体を伸ばす量に対して適用される。そして、ロボット１は、オフセット値が適用された後の駆動量で部位を駆動させることにより、モーションの実行を完了する。すなわち、左手が頭部と干渉しない範囲で左肘から先の部位全体を伸ばすように変更されたモーションが実行される。
【００６３】
このようにして、本実施形態に係るロボット１は、部位の駆動が直線駆動を含むとき、直線駆動の移動距離が短くなるように、動作量を変更する。したがって、部位の伸縮を含むモーションについて、モーションを実行する際に部位間の干渉を検出すると、該干渉を解消し、モーションの実行を完了させることができる。
【００６４】
〔変形例〕
＜複数の駆動を含む部位の駆動に対するオフセット値の適用例＞
ロボット１が実行するモーションにおいて、一度に駆動する駆動部１３の数に制限はない。そのため、複数の駆動部１３が同時に駆動するモーションを実行したときに部位間の干渉を検出した場合、複数の駆動部１３に対してそれぞれオフセット値を適用する必要がある。本発明の一実施態様に係るロボット１において、複数の駆動部１３に対してオフセット値を適用する例について、図９を用いて詳細に説明する。図９は、本発明の一実施態様に係るロボット１が複数の駆動部１３にオフセット値を適用する一例を示す模式図である。
【００６５】
例５０１は、２つの駆動部１３を含む、ロボット１の一部の部位が初期位置から目標位置まで移動するときの経路を示す。図示の例において、第１駆動部１３ａは部位全体の回転駆動を行い、第２駆動部１３ｂは回転駆動を受ける部位に設置され、一部の部位について直線駆動を行う。具体的には、第１駆動部１３ａが駆動させる回転駆動系の中心はロボット１の肩であり、回転駆動系の外周はロボット１の肘である。また、第２駆動部１３ｂはロボット１の肘に配置され、ロボット１の肘から先の部位を直線駆動させる直線駆動系をなし、直線駆動系の端部は、ロボット１の手の先を示す。すなわち、５０１は、ロボット１が肩を軸として腕全体を回転駆動させつつ、肘から先の部位全体を直線駆動させるモーションを模式的に示している。図示の例において、部位の先端は、直線である経路に沿って、相手物へ向けて駆動する。
【００６６】
例５０２は、例５０１と同一のモーションを実行した際、ロボット１の部位の先端が相手物と干渉したことを模式的に示している。図示の例において、部位の先端は、上から２番目の位置に到達すると相手物と干渉することとなるため、１番上の位置に到達することができない。ロボット１は、干渉を検知すると、その時点における第１駆動部１３ａおよび第２駆動部１３ｂの状態を記憶する。
【００６７】
例５０３は、例５０２の後、ロボット１の部位の経路に対してオフセット値を適用したことを模式的に示している。すなわち、オフセット設定部２５は、例５０２で設定された直線である経路について、干渉が生じない範囲でモーションの実行を完了するように、第１駆動部１３ａおよび第２駆動部１３ｂの駆動量にオフセット値をそれぞれ適用する。これにより、部位の先端は、相手物との干渉が発生する直前までの範囲に抑制される。
【００６８】
本発明の一態様に係るロボット１は、部位間の干渉を検知すると、部位の駆動量に対してオフセット値を適用した後、モーションの実行を完了することができる。なお、オフセット値を適用する必要がなくなった場合は、該オフセット値の適用を解消することが好適である。例えば、故障した部品の修理などにより、該修理の前に適用されたオフセット値が不要となった場合、オフセット値の適用を解消する構成であってもよい。
【００６９】
〔ソフトウェアによる実現例〕
ロボット１の制御ブロック（特に干渉検知部２４およびオフセット設定部２５）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００７０】
後者の場合、ロボット１は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００７１】
〔まとめ〕
本発明の態様１に係るロボット（１）は、所定の動作を行うロボット（１）であって、上記所定の動作として、部位を駆動させる駆動制御部（２３）と、上記駆動する部位が自ロボットへ接触したことを検知する検知部（干渉検知部２４）と、上記接触を検知したとき、上記所定の動作の動作量を変更する変更部（オフセット設定部２５）と、を備える構成である。
【００７２】
上記の構成によれば、ロボットは、所定の動作として部位を駆動中に、当該駆動する部位が自ロボットへ接触したことを検知したとき、該所定の動作の動作量を変更する。これにより同様の動作を行う場合に、部位間の干渉（接触）を解消することができる。したがって、事前に予測できない部位間の干渉を解消できる、利便性の高いロボットを提供することができるという効果を奏する。
【００７３】
本発明の態様２に係るロボット（１）は、上記態様１において、上記駆動する部位と、該部位とは異なる位置との少なくとも２カ所に接触を検知するセンサ（１２）を設け、上記検知部（干渉検知部２４）は、上記少なくとも２カ所のセンサ（１２）を用いて上記接触を検知する構成としてもよい。
【００７４】
上記の構成によれば、ロボットは、駆動する部位と、該部位とは異なる位置との少なくとも２カ所に設けられた接触を検知するセンサを用いて接触を検知する。そして、駆動する部位と該部位とは異なる位置とにセンサを設けることにより、部位同士が接触したか否かを適切に検知することができる。したがって、１つのセンサのみを用いる場合と比べて、高い精度で接触を検知することができるという効果を奏する。
【００７５】
本発明の態様３に係るロボット（１）は、上記態様１または２において、上記変更部（オフセット設定部２５）は、上記検知部（干渉検知部２４）が、所定の回数、上記接触を検知した場合、上記所定の動作の動作量を変更する構成としてもよい。
【００７６】
上記の構成によれば、変更部は、検知部が所定の回数、接触を検知した場合、動作量を変更する。これにより、接触の回数が所定の回数に満たない場合は、動作量の変更が行われないので、偶発的に部位間の干渉が発生したときにも動作量が変更されてしまうことを防止することができるという効果を奏する。
【００７７】
本発明の態様４に係るロボット（１）は、上記態様１〜３の何れかにおいて、上記所定の動作は複数存在し、上記変更部（オフセット設定部２５）は、上記複数の所定の動作のうち、接触を検知した所定の動作における動作量を変更する構成としてもよい。
【００７８】
上記の構成によれば、所定の動作が複数存在する場合、所定の動作毎に、動作量の変更が行われる。よって、或る所定の動作により部位間の干渉が発生したために、部位間の干渉が発生していない他の所定の動作における動作量が変更されてしまうことを防止することができるという効果を奏する。
【００７９】
本発明の態様５に係るロボット（１）は、上記態様１〜４の何れかにおいて、上記部位には、取り外し可能な部材（アタッチメントパーツ１５）を取り付け可能であり、上記部材（アタッチメントパーツ１５）の取り付けの有無を判定する判定部（構成取得部２１）を備え、上記変更部（オフセット設定部２５）は、上記部材（アタッチメントパーツ１５）の取り付けの有無により、変更する動作量を異ならせる構成としてもよい。
【００８０】
上記の構成によれば、ロボットは、部材の取り付けの有無に基づいて、所定の動作の動作量を異ならせることができる。したがって、部材が取り付けられていたために部位間の干渉が発生したにもかかわらず、部材が取り付けられていないときに当該所定の動作の動作量が変更されるということを防止することができるという効果を奏する。
【００８１】
本発明の態様６に係るロボット（１）は、上記態様１〜５の何れかにおいて、上記変更部（オフセット設定部２５）は、上記部位の可動距離が短くなるように、上記動作量を変更する構成としてもよい。
【００８２】
上記の構成によれば、ロボットは、駆動する部位が自ロボットへ接触したことを検知したとき、所定の動作における部位の可動距離が短くなるように動作量を変更する。したがって、再度、所定の動作を行うときに部位間の干渉が発生してしまうことを防止することができるという効果を奏する。
【００８３】
本発明の態様７に係るロボット（１）は、上記態様６において、上記駆動は回転駆動を含み、上記変更部（オフセット設定部２５）は、上記回転駆動の回転角度が小さくなるように、上記動作量を変更する構成としてもよい。
【００８４】
上記の構成によれば、ロボットは、回転駆動を含む部位の駆動について、該回転駆動の回転角度が小さくなるように所定の動作の動作量を変更する。したがって、回転駆動を含む部位の駆動を部位間の干渉なく実行することができるという効果を奏する。
【００８５】
本発明の態様８に係るロボット（１）は、上記態様６または７において、上記駆動は直線駆動を含み、上記変更部（オフセット設定部２５）は、上記直線駆動の移動距離が短くなるように、上記動作量を変更する構成としてもよい。
【００８６】
上記の構成によれば、ロボットは、直線駆動を含む部位の駆動について、該直線駆動の移動距離が短くなるように所定の動作の動作量を変更する。したがって、直線駆動を含む部位の駆動を部位間の干渉なく実行することができるという効果を奏する。
【００８７】
本発明の態様９に係るロボット（１）の制御方法は、所定の動作を行うロボット（１）の制御方法であって、上記所定の動作として、部位を駆動させる駆動制御ステップ（Ｓ２）と、上記駆動する部位が自ロボット内へ接触したことを検知する検知ステップ（Ｓ３）と、上記接触を検知したとき、上記所定の動作の動作量を変更する変更ステップ（Ｓ６）と、を含む。上記の構成によれば、上記の態様１と同様の作用効果を奏する。
【００８８】
本発明の各態様に係るロボット（１）は、コンピュータによって実現してもよく、この場合には、コンピュータを上記ロボット（１）が備える各部（ソフトウェア要素）として動作させることにより上記ロボット（１）をコンピュータにて実現させるロボット（１）の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【００８９】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【符号の説明】
【００９０】
１  ロボット    １１  記憶部    １２  センサ    １３  駆動部
１４  制御部    ２１  構成取得部（判定部）    ２２  目標設定部
２３  駆動制御部    ２４  干渉検知部（検知部）
２５  オフセット設定部（変更部）
【図１】
0006633209.tif 000002
【図２】
0006633209.tif 000003
【図３】
0006633209.tif 000004
【図４】
0006633209.tif 000005
【図５】
0006633209.tif 000006
【図６】
0006633209.tif 000007
【図７】
0006633209.tif 000008
【図８】
0006633209.tif 000009
【図９】
0006633209.tif 000010