(57)【特許請求の範囲】
【請求項１】
物体を把持するロボットアームと、
前記物体における把持位置を決定する把持位置決定手段と
を有し、
前記ロボットアームは、
前記ロボットアームの先端に設けられ、物体を把持する把持部と、
前記ロボットアームを屈曲軸の周りに屈曲させる第１モータと、
前記ロボットアームの前記把持部側を旋回軸の周りに旋回させる第２モータと、
前記第２モータの駆動を前記ロボットアームの前記把持部側に伝達する傘歯車機構と
を備え、
前記第２モータに発生するトルクは、前記物体の重さに応じて前記屈曲軸の周りに発生し前記傘歯車機構を介して前記第２モータへ伝達される屈曲軸トルクと、前記物体の重心位置と前記把持位置との差に応じて前記旋回軸の周りに発生し前記傘歯車機構を介して前記第２モータへ伝達される旋回軸トルクとの和に関する値に対応し、
前記把持位置決定手段は、前記把持部が前記物体を把持した場合に前記屈曲軸トルクと前記旋回軸トルクとが互いに打ち消し合うような前記把持位置を決定する
把持ロボット。
【請求項２】
前記把持位置決定手段は、前記物体における重心位置に対応する長さと前記ロボットアームに関するモーメントアームとの和に対応する位置を、前記把持位置として決定する
請求項１に記載の把持ロボット。
【請求項３】
前記物体の長さを認識する認識手段
をさらに有し、
前記把持位置決定手段は、前記認識手段によって認識された物体の長さの半分と、前記モーメントアームとの和に対応する位置を、前記把持位置として決定する
請求項２に記載の把持ロボット。
【請求項４】
力覚センサと、
前記力覚センサによって得られた測定値から、前記物体の重心位置を判定する重心位置判定手段と
をさらに有し、
前記把持位置決定手段は、前記判定された重心位置に基づいて、前記把持位置を決定する
請求項１から３のいずれか１項に記載の把持ロボット。
【請求項５】
前記ロボットアームを上下反転させるように旋回させるアーム旋回手段
をさらに有する請求項１から４のいずれか１項に記載の把持ロボット。
【請求項６】
把持ロボットの制御方法であって、
前記把持ロボットは、
ロボットアームであって、
前記ロボットアームの先端に設けられ、物体を把持する把持部と、
前記ロボットアームを屈曲軸の周りに屈曲させる第１モータと、
前記ロボットアームの前記把持部側を旋回軸の周りに旋回させる第２モータと、
前記第２モータの駆動を前記ロボットアームの前記把持部側に伝達する傘歯車機構と
を備えるロボットアーム
を有し、
前記第２モータに発生するトルクは、前記物体の重さに応じて前記屈曲軸の周りに発生し前記傘歯車機構を介して前記第２モータへ伝達される屈曲軸トルクと、前記物体の重心位置と前記把持位置との差に応じて前記旋回軸の周りに発生し前記傘歯車機構を介して前記第２モータへ伝達される旋回軸トルクとの和に関する値に対応し、
前記把持部が前記物体を把持した場合に前記屈曲軸トルクと前記旋回軸トルクとが互いに打ち消し合うような前記把持位置を決定するステップと
を有する把持ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持ロボット及び把持ロボットの制御方法に関する。
【背景技術】
【０００２】
多軸の関節を有するロボットにおいて、ロボットアームが屈曲する際の回転軸（屈曲軸）と、物体を把持する把持部を旋回させる際の回転軸（旋回軸）とが離れていると、関節部が大型化する。また、屈曲軸と旋回軸との距離が遠いと、逆運動学によって関節角度を算出することが困難となる。したがって、屈曲軸と旋回軸との距離ができるだけ近いことが望まれる。
【０００３】
上記技術に関連して、特許文献１には、腕とハンドとを連結するマニピュレータの手首構造が記載されている。特許文献１にかかるマニピュレータの手首構造においては、屈曲駆動手段により屈曲動される旋回枠が設けられ、旋回枠に手首中間軸が回転自在に設けられ、手首中間軸は自在継手を介してハンド回転用駆動手段に連結されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】実公平４−５３９１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
単腕のロボットが長い物体を把持する場合、物体を把持する位置によっては、ロボットアームに大きな負荷モーメント（負荷トルク）が発生するおそれがある。例えば、ロボットが物体の重心から離れた位置等を把持する場合に、ロボットアームに大きな負荷モーメントが発生するおそれがある。このような場合、負荷モーメントがロボットアームの許容モーメントを超えないようにするため、ロボットの可搬重量（耐荷重）が小さくなり、ロボットによる物体の運搬が困難となるおそれがある。また、このような大きなモーメントが発生することを考慮してモータの出力を増大させると、モータの体格及びコストが増大する。一方、特許文献１にかかる技術では、マニピュレータに発生するモーメントについて考慮されていない。
【０００６】
本発明は、把持対象となる物体が長い場合であっても、ロボットアームに発生するモーメントを抑制することが可能な把持ロボット及び把持ロボットの制御方法を提供するものである。
【課題を解決するための手段】
【０００７】
本発明にかかる把持ロボットは、物体を把持するロボットアームと、前記物体における把持位置を決定する把持位置決定手段とを有し、前記ロボットアームは、前記ロボットアームの先端に設けられ、物体を把持する把持部と、前記ロボットアームを屈曲軸の周りに屈曲させる第１モータと、前記ロボットアームの前記把持部側を旋回軸の周りに旋回させる第２モータと、前記第２モータの駆動を前記ロボットアームの前記把持部側に伝達する傘歯車機構とを備え、前記第２モータに発生するトルクは、前記物体の重さに応じて前記屈曲軸の周りに発生し前記傘歯車機構を介して前記第２モータへ伝達される屈曲軸トルクと、前記物体の重心位置と前記把持位置との差に応じて前記旋回軸の周りに発生し前記傘歯車機構を介して前記第２モータへ伝達される旋回軸トルクとの和に関する値に対応し、前記把持位置決定手段は、前記把持部が前記物体を把持した場合に前記屈曲軸トルクと前記旋回軸トルクとが互いに打ち消し合うような前記把持位置を決定する。
【０００８】
また、本発明にかかる把持ロボットの制御方法は、把持ロボットの制御方法であって、前記把持ロボットは、ロボットアームであって、前記ロボットアームの先端に設けられ、物体を把持する把持部と、前記ロボットアームを屈曲軸の周りに屈曲させる第１モータと、前記ロボットアームの前記把持部側を旋回軸の周りに旋回させる第２モータと、前記第２モータの駆動を前記ロボットアームの前記把持部側に伝達する傘歯車機構とを備えるロボットアームを有し、前記第２モータに発生するトルクは、前記物体の重さに応じて前記屈曲軸の周りに発生し前記傘歯車機構を介して前記第２モータへ伝達される屈曲軸トルクと、前記物体の重心位置と前記把持位置との差に応じて前記旋回軸の周りに発生し前記傘歯車機構を介して前記第２モータへ伝達される旋回軸トルクとの和に関する値に対応し、前記把持部が前記物体を把持した場合に前記屈曲軸トルクと前記旋回軸トルクとが互いに打ち消し合うような前記把持位置を決定するステップとを有する。
【０００９】
本発明においては、ロボットアームを旋回させる第２モータに発生するトルクは、把持される物体の重さに応じて屈曲軸の周りに発生する屈曲軸トルクと、物体の重心位置と把持位置との差に応じて旋回軸の周りに発生する旋回軸トルクとの和に関する値に対応する。そして、本発明は、屈曲軸トルクと旋回軸トルクとが互いに打ち消し合うような把持位置を決定する。したがって、本発明は、第２モータに発生するトルクが抑制されるような把持位置を決定することが可能となる。これにより、ロボットアームに発生するモーメントを抑制するような位置で、把持部が物体を把持することが可能となる。したがって、本発明は、ロボットアームに発生するモーメントを抑制することが可能となる。
【００１０】
また、好ましくは、前記把持位置決定手段は、前記物体における重心位置に対応する長さと前記モーメントアームとの和に対応する位置を、前記把持位置として決定する。
本発明は、このように構成されていることによって、物体の重心位置及びモーメントアームを把握するとすぐに把持位置を算出することができる。したがって、本発明は、容易に把持位置を決定することが可能となる。
【００１１】
また、好ましくは、前記物体の長さを認識する認識手段をさらに有し、前記把持位置決定手段は、前記認識手段によって認識された物体の長さの半分と、前記モーメントアームとの和に対応する位置を、前記把持位置として決定する。
物体の重量分布が一様である場合、物体の長さを認識することによって、物体の長さから重心位置を把握することができる。これにより、容易に把持位置を算出することができる。したがって、本発明は、物体の重量分布が一様である場合に、さらに容易に把持位置を決定することが可能となる。
【００１２】
また、好ましくは、力覚センサと、前記力覚センサによって得られた測定値から、前記物体の重心位置を判定する重心位置判定手段とをさらに有し、前記把持位置決定手段は、前記判定された重心位置に基づいて、前記把持位置を決定する。
本発明は、このように構成されていることによって、物体の重心位置が予め認識されていない場合であっても、第２モータに発生するトルクを抑制することが可能となる。したがって、本発明は、物体の重心位置が偏っている場合であっても、ロボットアームに発生するモーメントを抑制することが可能となる。
【００１３】
また、好ましくは、前記ロボットアームを上下反転させるように旋回させるアーム旋回手段をさらに有する。
ロボットアームを上下反転させるように旋回させることによって、物体を把持する位置に制限がある場合であっても、屈曲軸トルクと旋回軸トルクとが互いに打ち消し合うような把持位置を決定することができる。したがって、本発明は、物体を把持する位置に制限がある場合であっても、ロボットアームに発生するモーメントを抑制することが可能となる。
【発明の効果】
【００１４】
本発明によれば、把持対象となる物体が長い場合であっても、ロボットアームに発生するモーメントを抑制することが可能な把持ロボット及び把持ロボットの制御方法を提供できる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１にかかる把持ロボットを示す図である。
【図２】図１に示した把持ロボットの自由度配置図である。
【図３】実施の形態１にかかる手首関節部の構造を示す図である。
【図４】実施の形態１にかかるロボットアームが物体を把持したときに旋回軸モータトルクが増幅される状態を示す図である。
【図５】実施の形態１にかかるロボットアームが物体を把持したときに旋回軸モータトルクが打ち消される状態を示す図である。
【図６】実施の形態１にかかる制御装置の構成を示す機能ブロック図である。
【図７】実施の形態１にかかる把持ロボットの制御方法を示すフローチャートである。
【図８】実施の形態１において把持位置を決定する方法を説明するための図である。
【図９】実施の形態１において把持位置を決定する方法を説明するための図である。
【図１０】実施の形態２において、ロボットアームが物体を把持している状態を示す図である。
【図１１】実施の形態３にかかる制御装置の構成を示す機能ブロック図である。
【図１２】実施の形態３にかかる把持ロボットが物体の重心位置を判定する方法を説明するための図である。
【発明を実施するための形態】
【００１６】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。
図１は、実施の形態１にかかる把持ロボット１を示す図である。また、図２は、図１に示した把持ロボット１の自由度配置図である。把持ロボット１は、胴体２と、台車４と、認識部１０（認識手段）と、把持ロボット１の動作を制御する制御装置４０と、ロボットアーム１００とを備える。把持ロボット１は、単腕のロボットである。また、制御装置４０は、例えばコンピュータとしての機能を有する。制御装置４０は、例えば胴体２に内蔵されているが、これに限られない。
【００１７】
胴体２は、胴体旋回部６を介して台車４に支持されている。胴体旋回部６が図２の矢印Ａに示すように回転することによって、胴体２が水平方向に旋回する。台車４には車輪が設けられており、制御装置４０の制御によって車輪を回転させることで、把持ロボット１が移動する。
【００１８】
認識部１０は、例えば胴体２の上部に設けられている。認識部１０は、ヘッド関節部２０を介して胴体２に支持されている。ヘッド関節部２０は、ヘッド旋回部２２及びヘッド屈曲部２４を有する。ヘッド旋回部２２及びヘッド屈曲部２４は、それぞれ、モータ等の回転駆動手段を有しており、制御装置４０の制御により回転動作を行う。ヘッド旋回部２２が矢印Ｂに示すように回転することで、認識部１０は水平方向に旋回する。また、ヘッド屈曲部２４が矢印Ｃに示すように回転することで、認識部１０はヘッド屈曲部２４の回転軸を中心として上又は下を向くように揺動する。
【００１９】
認識部１０は、後述するように、把持ロボット１が把持する物体の位置及び寸法（大きさ）を認識する。認識部１０は、例えば三次元カメラ又は平行ステレオカメラ等の三次元センサを用いて、三角測量法等によって、物体と背景とを識別し、物体の形状、位置及び寸法を認識する。これにより、認識部１０は、物体の位置データ（座標データ）及び物体の寸法を得る。
【００２０】
ロボットアーム１００は、胴体２に接続されている。ロボットアーム１００は、エンドエフェクタ１１０（把持部）と、アーム部１２０とを有する。エンドエフェクタ１１０は、ハンドとして機能する。エンドエフェクタ１１０は、ロボットアーム１００の先端（胴体２と反対側）に設けられており、アーム部１２０に支持されている。エンドエフェクタ１１０は、指１１２及び指１１４を有する。指１１２及び指１１４は、制御装置４０の制御により開閉動作を行う。エンドエフェクタ１１０は、指１１２と指１１４とで物体を挟み込むことで、物体を把持する。
【００２１】
アーム部１２０は、エンドエフェクタ側リンク１２２と、第１リンク１２４と、第２リンク１２６と、アーム旋回部１３２と、アーム屈曲部１３４と、手首関節部２００とから構成されている。第２リンク１２６は、アーム屈曲部１３４を介して胴体２に接続されている。また、アーム旋回部１３２を介して、第１リンク１２４と第２リンク１２６とが接続されている。また、手首関節部２００を介して、エンドエフェクタ側リンク１２２と第１リンク１２４とが接続されている。また、エンドエフェクタ側リンク１２２は、エンドエフェクタ１１０を手首関節部２００に接続している。なお、エンドエフェクタ側リンク１２２とエンドエフェクタ１１０との間に、力覚センサ１９０が設けられていてもよい。力覚センサ１９０については他の実施の形態において説明する。
【００２２】
アーム旋回部１３２及びアーム屈曲部１３４は、それぞれ、モータ等の回転駆動手段を有しており、制御装置４０の制御により回転動作を行う。アーム屈曲部１３４が矢印Ｄに示すように回転することで、ロボットアーム１００（第２リンク１２６）は、アーム屈曲部１３４の回転軸を中心として、胴体２に接近し又は胴体２から離反するように揺動する。また、アーム旋回部１３２が矢印Ｅに示すように回転することで、第１リンク１２４（及びその先端側の構成部分）が旋回する。
【００２３】
手首関節部２００は、後述するような構造により、屈曲軸２０２と旋回軸２０４とが略直交した２軸直交関節機構で構成されている。手首関節部２００は、屈曲軸２０２の周りに矢印Ｆ１に示すようにエンドエフェクタ側リンク１２２（及びエンドエフェクタ１１０）を揺動させる。これによって、アーム部１２０は、屈曲軸２０２の周りに屈曲する。また、手首関節部２００は、旋回軸２０４の周りに矢印Ｆ２に示すようにエンドエフェクタ側リンク１２２（及びエンドエフェクタ１１０）を旋回させる。これによって、アーム部１２０のエンドエフェクタ１１０側は、旋回軸２０４の周りに屈曲する。以下、詳述する。
【００２４】
図３は、実施の形態１にかかる手首関節部２００の構造を示す図である。手首関節部２００は、屈曲軸モータ２１０（第１モータ）と、屈曲軸プーリ２１６と、旋回軸モータ２２０（第２モータ）と、旋回軸プーリ２２６と、略Ｔ字型形状の関節構造体２３０と、マイタギア機構２４０（傘歯車機構）とを有する。屈曲軸プーリ２１６は、関節構造体２３０に設けられた屈曲側支持部２３２に固定されている。また、旋回軸プーリ２２６は、関節構造体２３０に設けられた旋回側支持部２３４に、回転可能に支持されている。ここで、屈曲軸プーリ２１６及び旋回軸プーリ２２６は、屈曲軸２０２の周りに回転するように構成されている。つまり、屈曲軸プーリ２１６の回転軸及び旋回軸プーリ２２６の回転軸は、同軸である。また、エンドエフェクタ側リンク１２２は、関節構造体２３０に設けられたエンドエフェクタ側支持部２３６に回転可能に支持されている。
【００２５】
マイタギア機構２４０は、プーリ側マイタギア２４２とエンドエフェクタ側マイタギア２４４とが互いに噛み合って構成されている。プーリ側マイタギア２４２は、旋回軸プーリ２２６に固定されており、旋回軸プーリ２２６と一体となって回転する。エンドエフェクタ側マイタギア２４４は、エンドエフェクタ側リンク１２２に固定されており、エンドエフェクタ側リンク１２２と一体となって回転する。
【００２６】
屈曲軸モータ２１０は、アーム部１２０を屈曲軸２０２の周りに屈曲させるための駆動源である。具体的には、屈曲軸モータ２１０のモータ軸２１０ａ及び屈曲軸プーリ２１６にはベルト２１４が掛けられている。屈曲軸モータ２１０が駆動するとモータ軸２１０ａが回転し、モータ軸２１０ａの回転駆動は、ベルト２１４を介して屈曲軸プーリ２１６に伝達される。屈曲軸プーリ２１６が回転すると、関節構造体２３０が、屈曲軸２０２の周りに回転する。これに伴って、エンドエフェクタ側リンク１２２が、屈曲軸２０２の周りに揺動する。これによって、アーム部１２０が屈曲軸２０２の周りに屈曲する。
【００２７】
旋回軸モータ２２０は、アーム部１２０のエンドエフェクタ側を旋回軸２０４の周りに旋回させるための駆動源である。具体的には、旋回軸モータ２２０のモータ軸２２０ａ及び旋回軸プーリ２２６にはベルト２２４が掛けられている。旋回軸モータ２２０が駆動するとモータ軸２２０ａが回転し、モータ軸２２０ａの回転駆動は、ベルト２２４を介して旋回軸プーリ２２６に伝達される。旋回軸プーリ２２６の回転に伴ってプーリ側マイタギア２４２が回転し、プーリ側マイタギア２４２の回転に伴ってエンドエフェクタ側マイタギア２４４が回転する。これによって、エンドエフェクタ側リンク１２２が、旋回軸２０４の周りに回転する。これによって、アーム部１２０のエンドエフェクタ側（及びエンドエフェクタ１１０）が旋回軸２０４の周りに旋回する。つまり、マイタギア機構２４０は、旋回軸モータ２２０の駆動を、アーム部１２０（ロボットアーム１００）のエンドエフェクタ側に伝達する機能を有する。
【００２８】
ここで、手首関節部２００には、アーム部１２０が屈曲軸２０２の周りに屈曲するときに、関節構造体２３０が屈曲軸２０２の周りに回転することに伴ってエンドエフェクタ側リンク１２２が回転しないように、差動機構が設けられている。具体的には、仮に、屈曲軸プーリ２１６と共に関節構造体２３０が屈曲軸２０２の周りに回転するときに旋回軸プーリ２２６が回転しないと、マイタギア機構２４０により、エンドエフェクタ側リンク１２２も回転してしまう。したがって、アーム部１２０が屈曲軸２０２の周りに屈曲するときにエンドエフェクタ側リンク１２２を回転させないように、差動機構により、旋回軸モータ２２０が旋回軸プーリ２２６を回転させるように構成されている。
【００２９】
また、この差動機構により、屈曲軸２０２の周りに図３の矢印Ｄｐ方向に負荷トルクが発生するとき、エンドエフェクタ側リンク１２２を回転させないようにするので、旋回軸プーリ２２６には、マイタギア機構２４０を介して、図３の矢印Ｄｒ２方向に負荷トルクが発生する。この状態でさらにエンドエフェクタ側リンク１２２に矢印Ｄｒ（矢印Ｄｒ１）方向に負荷トルクが発生すると、旋回軸プーリ２２６には、屈曲軸２０２周りの負荷トルクによるトルクに加えて、旋回軸２０４周りのトルクが、マイタギア機構２４０を介して、矢印Ｄｒ２方向に発生することとなる。
【００３０】
ここで、屈曲軸２０２に関する各パラメータ及び旋回軸２０４に関する各パラメータを、以下のように定義する。屈曲関節角度（関節構造体２３０の屈曲軸２０２周りの回転角度）をθｐとし、旋回関節角度（エンドエフェクタ側リンク１２２の旋回軸２０４周りの回転角度）をθｒとする。また、屈曲軸プーリ２１６の回転角度をθｐ１とし、旋回軸プーリ２２６の回転角度をθｐ２とする。また、屈曲軸トルク（屈曲軸２０２の周りに発生する負荷のトルク）をＴｐとし、旋回軸トルク（旋回軸２０４の周りに発生する負荷のトルク）をＴｒとする。また、屈曲軸プーリトルク（屈曲軸プーリ２１６にかかる負荷のトルク）をＴｐ１とし、旋回軸プーリトルク（旋回軸プーリ２２６にかかる負荷のトルク）をＴｐ２とする。また、屈曲軸モータトルク（屈曲軸モータ２１０にかかる負荷のトルク）をＴｍ１とし、旋回軸モータトルク（旋回軸モータ２２０にかかる負荷のトルク）をＴｍ２とする。また、屈曲軸モータ２１０のモータ軸２１０ａと屈曲軸プーリ２１６との間の減速比をｚ１とし、旋回軸モータ２２０のモータ軸２２０ａと旋回軸プーリ２２６との間の減速比をｚ２とする。
【００３１】
ここで、屈曲軸２０２に関するパラメータθｐ，θｐ１，Ｔｐ，Ｔｐ１については、図３の矢印Ｄｐ（矢印Ｄｐ１）の方向を正方向とする。また、屈曲軸プーリ２１６に矢印Ｄｐ１の方向に負荷トルクがかかると、屈曲軸モータ２１０のモータ軸２１０ａには矢印Ｄｐ２の方向に負荷トルクがかかるので、Ｔｍ１については、図３の矢印Ｄｐ２の方向を正方向とする。
【００３２】
一方、上述したように、エンドエフェクタ側リンク１２２に矢印Ｄｒ（矢印Ｄｒ１）方向に負荷トルクが発生すると、旋回軸プーリ２２６には、屈曲軸２０２の周りの負荷トルク（矢印Ｄｒ２方向を正とする）によるトルクに加えて、旋回軸２０４の周りのトルクが、マイタギア機構２４０を介して矢印Ｄｒ２方向に発生することとなる。したがって、旋回軸２０４に関するパラメータθｒ，Ｔｒについては、図３の矢印Ｄｒ（矢印Ｄｒ１）の方向を正方向とする。また、エンドエフェクタ側マイタギア２４４が矢印Ｄｒ１の方向に回転すると、プーリ側マイタギア２４２が矢印Ｄｒ２の方向に回転するので、θｐ２，Ｔｐ２については、図３の矢印Ｄｒ２の方向を正方向とする。同様に、旋回軸プーリ２２６に矢印Ｄｒ２の方向にトルクがかかると、旋回軸モータ２２０のモータ軸２２０ａには矢印Ｄｒ３の方向にトルクがかかるので、Ｔｍ２については、図３の矢印Ｄｒ３の方向を正方向とする。
【００３３】
このとき、上述した差動機構により、以下の式が成り立つ。
θｐ１＝θｐ［度］  （式１）
θｐ２＝θｐ＋θｒ［度］  （式２）
Ｔｍ１＝Ｔｐ１／ｚ１＝Ｔｐ／ｚ１［Ｎｍｍ］  （式３）
Ｔｍ２＝Ｔｐ２／ｚ２＝（Ｔｐ＋Ｔｒ）／ｚ２［Ｎｍｍ］  （式４）
【００３４】
つまり、屈曲軸モータトルクＴｍ１は、屈曲軸トルクＴｐによって求められるが、旋回軸モータトルクＴｍ２は、屈曲軸トルクＴｐと旋回軸トルクＴｒとの和によって求められる。ここで、屈曲軸トルクＴｐは、ロボットアーム１００が物体を把持したときに、物体の重さに応じで屈曲軸２０２の周りに発生する。そして、この屈曲軸トルクＴｐは、マイタギア機構２４０を介して、旋回軸モータ２２０へ伝達される。また、旋回軸トルクＴｒは、ロボットアーム１００が物体を把持したときに、物体の重心位置と物体を把持した位置との差に応じて発生する。そして、この旋回軸トルクＴｒは、マイタギア機構２４０を介して、旋回軸モータ２２０へ伝達される。
【００３５】
以下、ロボットアーム１００が、長い物体９０を把持したときに旋回軸モータトルクＴｍ２について説明する。
図４は、実施の形態１にかかるロボットアーム１００が物体９０を把持したときに旋回軸モータトルクＴｍ２が増幅される状態を示す図である。一方、図５は、実施の形態１にかかるロボットアーム１００が物体９０を把持したときに旋回軸モータトルクＴｍ２が打ち消される状態を示す図である。
【００３６】
図４に示す状態のとき、屈曲軸２０２の周りには、正方向（図３の矢印Ｄｐの方向）に屈曲軸トルクＴｐが発生する。つまり、このとき、Ｔｐは正（Ｔｐ＞０）である。一方、図４に示すように、把持ロボット１から見て（第１リンク１２４の側からエンドエフェクタ１１０の側を見て）右側（旋回軸プーリ２２６がある側）に張り出すように、エンドエフェクタ１１０が物体９０を把持している。したがって、旋回軸２０４の周りには、正方向（図３の矢印Ｄｒの方向）に旋回軸トルクＴｒが発生する。つまり、このとき、Ｔｒは正（Ｔｒ＞０）である。したがって、上記の式４から、Ｔｐ＋Ｔｒ＞Ｔｐとなり、旋回軸モータトルクＴｍ２は、増幅されている。
【００３７】
一方、図５に示す状態のとき、図４の状態と同様に屈曲軸２０２の周りには、正方向（図３の矢印Ｄｐの方向）に屈曲軸トルクＴｐ（＞０）が発生する。一方、図５に示すように、把持ロボット１から見て左側（旋回軸プーリ２２６がない側）に張り出すように、エンドエフェクタ１１０が物体９０を把持している。したがって、旋回軸２０４の周りには、負方向（図３の矢印Ｄｒの方向とは反対の方向）に旋回軸トルクＴｒが発生する。つまり、このとき、Ｔｒは負（Ｔｒ＜０）である。したがって、上記の式４から、Ｔｐ＋Ｔｒ＜Ｔｐとなり、旋回軸モータトルクＴｍ２は、屈曲軸トルクＴｐと旋回軸トルクＴｒとが互いに打ち消し合うようにすることで、打ち消されている。本実施の形態にかかる把持ロボット１は、このように旋回軸モータトルクＴｍ２が打ち消されるように、物体９０を把持する位置を決定して、物体９０を把持するように構成されている。
【００３８】
図６は、実施の形態１にかかる制御装置４０の構成を示す機能ブロック図である。制御装置４０は、主要なハードウェア構成として、ＣＰＵ（Central Processing Unit）４２と、ＲＯＭ（Read Only Memory）４４と、ＲＡＭ（Random Access Memory）４６とを有する。ＣＰＵ４２は、制御処理及び演算処理等を行う演算装置としての機能を有する。ＲＯＭ４４は、ＣＰＵ４２によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。ＲＡＭ４６は、処理データ等を一時的に記憶するための機能を有する。
【００３９】
また、制御装置４０は、物体情報取得部５２、アームリーチング姿勢決定部５４、モーメントアーム算出部５６、把持位置決定部５８及びロボット制御部６０（以下、「各構成要素」と称する）を有する。物体情報取得部５２、アームリーチング姿勢決定部５４、モーメントアーム算出部５６、把持位置決定部５８及びロボット制御部６０は、それぞれ、物体情報取得手段、アームリーチング姿勢決定手段、モーメントアーム算出部手段、把持位置決定手段及びロボット制御手段としての機能を有する。各構成要素は、例えば、ＣＰＵ４２がＲＯＭ４４に記憶されたプログラムを実行することによって実現可能である。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールするようにしてもよい。なお、各構成要素は、上記のようにソフトウェアによって実現されることに限定されず、何らかの回路素子等のハードウェアによって実現されてもよい。各構成要素の機能については、図７を用いて説明する。
【００４０】
図７は、実施の形態１にかかる把持ロボット１の制御方法を示すフローチャートである。また、図８及び図９は、実施の形態１において把持位置を決定する方法を説明するための図である。ここで、物体９０の長さをｂ［ｍｍ］とし、物体９０の重量をｍ［Ｎ］とする。また、実施の形態１においては、物体９０の重量分布は一様であるとする。つまり、物体９０の重心点９４は、物体９０の中央の位置である。なお、物体９０の重量ｍについては、制御装置４０に予め記憶されていてもよいし、エンドエフェクタ１１０が任意の位置で物体９０を把持することで力覚センサ１９０を用いて重量ｍを算出してもよい。
【００４１】
また、旋回軸トルクＴｒの正方向は矢印Ｄｒに示す方向であるが、このとき、図８及び図９に示すように、把持点９２には、時計回り（矢印Ｍの方向）にモーメントが発生している。ここで、把持点９２は、旋回軸２０４上にあると近似できる。したがって、把持点９２に発生するモーメント（旋回軸トルクＴｒ）の正方向は、矢印Ｄｒと同じ方向となる、時計回りである矢印Ｍの方向である。この場合、物体９０の左端点を、物体９０における位置の基準点９０ａとする。なお、把持点９２に発生するモーメント（旋回軸トルクＴｒ）の正方向を反時計回り（矢印Ｍとは反対方向）とした場合、物体９０における位置の基準点は、物体９０の右端点となる。
【００４２】
まず、ステップＳ１０２において、把持ロボット１は、物体９０の位置及び寸法ｂを認識する。具体的には、認識部１０は、上述した方法で、物体９０の位置及び寸法ｂを認識する。そして、物体情報取得部５２は、認識部１０から、物体９０の位置及び寸法を示す物体情報を取得する。
【００４３】
次に、ステップＳ１０４において、把持ロボット１は、アームリーチング姿勢を決定する。具体的には、アームリーチング姿勢決定部５４は、取得された物体情報を用いて、アームリーチング姿勢を決定する。例えば、アームリーチング姿勢決定部５４は、物体の環境を認識して、物体の置かれた場所（例えば床上又は棚等）及び物体の形状（例えば取っ手があるか否か）に応じて、アームをリーチングさせる方向を決定する。なお、アームリーチングの方法は、これらの方法に限られない。
【００４４】
次に、ステップＳ１０６において、把持ロボット１は、モーメントアームＬ［ｍｍ］を算出する。具体的には、モーメントアーム算出部５６は、決定されたアームリーチング姿勢から、屈曲軸２０２から把持点までのモーメントアームＬを算出する。ここで、把持点とは、エンドエフェクタ１１０の指１１２及び指１１４の先端位置である。物体９０の太さが太い場合、指１１２及び指１１４は大きく広がるので、指１１２及び指１１４の先端位置は、第１リンク１２４側に移動する。したがって、モーメントアームＬは短くなる。一方、物体９０の太さが細い場合、指１１２及び指１１４はあまり広がらないので、モーメントアームＬは長くなる。
【００４５】
次に、ステップＳ１０８において、把持ロボット１は、把持点９２を決定する。具体的には、把持位置決定部５８は、モーメントアームＬ及び物体９０の長さｂを用いて、基準点９０ａから把持点９２までの距離である把持位置ａ［ｍｍ］を算出する。以下、図９を用いて、把持位置決定部５８が把持位置ａを算出する方法を説明する。
【００４６】
屈曲軸トルクＴｐ［Ｎｍｍ］は、物体９０の重量ｍとモーメントアームＬとの積となるので、屈曲軸トルクＴｐ［Ｎｍｍ］は、Ｔｐ＝ｍＬ（式５）である。また、把持点９２（旋回軸２０４）を中心とする時計回り（矢印Ｍの方向）の旋回軸トルクＴｒ［Ｎｍｍ］は、以下に説明するようにして算出される。
【００４７】
重心点９４には下方向（矢印Ｇの方向）に重量ｍ［Ｎ］がかかっている。また、実施の形態１においては、重心点９４は物体９０の中央にあるので、基準点９０ａから重心点９４までの距離である重心位置は、ｂ／２［ｍｍ］となる。したがって、重心点９４と把持点９２との間の距離は、（ａ−ｂ／２）［ｍｍ］となる。ここで、旋回軸トルクＴｒは、重心点９４にかかる重量と、重心点９４と把持点９２との間の距離との積であるが、旋回軸トルクＴｒの正方向は矢印Ｍの方向であるので、重心点９４にかかる力は、−ｍ［Ｎ］となる。したがって、旋回軸トルクＴｒ［Ｎｍｍ］は、以下の式６を用いて算出される。
Ｔｒ＝−ｍ（ａ−ｂ／２）＝ｍ（ｂ−２ａ）／２  （式６）
また、このとき、式５及び式６より、以下の式７が得られる。
Ｔｐ＋Ｔｒ＝ｍＬ＋ｍ（ｂ−２ａ）／２  （式７）
【００４８】
ここで、式４より、旋回軸モータトルクＴｍ２［Ｎｍｍ］の絶対値を最小とするには、Ｔｐ＋Ｔｒ＝０とすればよい。このとき、式７から以下の式８が得られる。把持位置決定部５８は、以下の式８を用いて、把持位置ａを算出する。
Ｔｐ＋Ｔｒ＝ｍＬ＋ｍ（ｂ−２ａ）／２＝０
ｍＬ＝−ｍ（ｂ−２ａ）／２
ａ＝（２Ｌ＋ｂ）／２  （式８）
【００４９】
つまり、エンドエフェクタ１１０が式８で示された把持位置ａの把持点９２で物体９０を把持すると、屈曲軸トルクＴｐと旋回軸トルクＴｒとが互いに打ち消しあうことによって、旋回軸モータトルクＴｍ２が最小（式８では０［Ｎｍｍ］）となる。また、上記式８を用いることによって、把持位置決定部５８は、物体９０の長さｂ及びモーメントアームＬから、容易に、把持位置ａを算出することが可能となる。なお、式８は、ａ＝Ｌ＋ｂ／２と表される。ここで、Ｌはモーメントアームであり、ｂ／２は、物体９０における重心位置に対応する長さである。言い換えると、重心位置は、物体９０の長さｂの半分の位置に対応する。つまり、把持位置決定部５８は、物体９０における重心位置に対応する長さとモーメントアームとの和に対応する位置を、把持位置として決定する。
【００５０】
次に、ステップＳ１１０において、把持ロボット１は、物体９０を把持する。具体的には、ロボット制御部６０は、把持位置ａ＝（２Ｌ＋ｂ）／２である把持点９２で物体９０を把持するように、アーム部１２０及びエンドエフェクタ１１０の動作を制御する。これによって、ロボットアーム１００が物体９０を把持したときの、旋回軸モータトルクＴｍ２を最小とすることが可能となる。
【００５１】
なお、ａ≦ｂであるので、式８が成り立つのは、以下の式９のときである。
（２Ｌ＋ｂ）／２≦ｂ
ｂ≧２Ｌ  （式９）
言い換えると、ｂ＜２Ｌのとき、つまり物体９０の長さがモーメントアームＬに対してあまり長くないとき、式８の解が成立しない。ここで、式７より、Ｔｐ＋Ｔｒは、ａの一次式であり、単調減少である。したがって、旋回軸モータトルクＴｍ２をできるだけ小さくするためには、ａを最大値であるｂとすればよい。したがって、把持位置決定部５８は、ｂ＜２Ｌのとき、ａ＝ｂと決定する。このとき、エンドエフェクタ１１０は、物体９０の右端を把持することとなる。なお、実際の把持位置は、マニピュレータの精度及び認識部１０における認識の精度を考慮して、ある程度ｂよりも小さな位置としてもよい。
【００５２】
上述したように、本実施の形態にかかる把持ロボット１は、物体９０の大きさ（寸法ｂ）から把持位置ａを決定して物体９０を把持することにより、旋回軸モータトルクＴｍ２を抑制することが可能となる。つまり、本実施の形態においては、ロボットアーム１００に発生するモーメントを抑制することが可能となる。
【００５３】
双腕のロボットであれば、長い物体を把持する場合、２つのロボットアームそれぞれの把持位置をできるだけ離して把持することで、モーメントの影響を受けにくくすることができるが、単腕のロボットでは、このようなことはできない。したがって、双腕のロボットと比較してモーメントの影響を受けやすい。一方、本実施の形態においては、単腕のロボットであっても、出力の小さなモータ（アクチュエータ）を用いて、長い物体等の大きなモーメント（トルク）が発生し得る物体を把持することが可能となる。また、これにより、アーム及びモータの体格を小さくすることが可能となり、コストの削減することが可能となる。逆に言うと、アーム及びモータの体格を大きくすることなく、把持ロボット１の可搬重量を向上させることが可能となる。また、ロボットアームに発生するモーメントを抑制することができるので、ロボットがバランスを崩すことなく作業を行うことが可能となる。また、実施の形態１のように物体９０の重量分布が一様である場合に、物体の長さを認識することで、容易に把持位置を算出することが可能となる。
【００５４】
（実施の形態２）
次に、実施の形態２について説明する。実施の形態２においては、物体９０を把持する位置に制限がある点で、実施の形態１と異なる。
図１０は、実施の形態２において、ロボットアーム１００が物体９０を把持している状態を示す図である。
【００５５】
実施の形態１においては、旋回軸モータトルクＴｍ２を小さくするためには、式８より、図５に示すように、エンドエフェクタ１１０が、物体９０の（把持ロボット１から見て）右側を把持する必要がある。しかしながら、物体９０の形状、及び物体９０が置かれている場所等によっては、物体９０の右側を把持することができず、物体９０の左側を把持しなければならない場合がある。このような場合、制御装置４０のロボット制御部６０は、アーム旋回部１３２（アーム旋回手段）を、１８０度回転させるように制御する。これによって、手首関節部２００が、１８０度回転し、上下反転する。
【００５６】
このとき、図１０に示すように、屈曲軸トルクＴｐの正方向は、図５等に示した向きとは反対方向となる。一方、旋回軸トルクＴｒの正方向は、図５等に示した向きと同じである。したがって、図１０に示すように、エンドエフェクタ１１０が、物体９０の（把持ロボット１から見て）左側を把持することで、Ｔｐ＜０、Ｔｒ＞０となる。したがって、式７より、旋回軸モータトルクＴｍ２を小さくすることが可能となる。つまり、実施の形態においては、物体９０を把持する位置に制限がある場合であっても、旋回軸モータトルクＴｍ２を抑制することが可能となる。
【００５７】
（実施の形態３）
次に、実施の形態３について説明する。実施の形態３においては、物体９０の重心位置を把持ロボット１が予め認識していない点で、実施の形態１と異なる。実施の形態１においては、物体９０の重量分布は一様であるとしたが、実際には、例えばハンマー等のように、重心が偏っている物体も存在する。実施の形態３においては、把持ロボット１は、力覚センサ１９０を用いて、重心位置を判定する。
【００５８】
図１１は、実施の形態３にかかる制御装置４０の構成を示す機能ブロック図である。また、図１２は、実施の形態３にかかる把持ロボット１が物体９０の重心位置を判定する方法を説明するための図である。実施の形態３にかかる制御装置４０のハードウェア構成は、実施の形態１にかかる制御装置４０のハードウェア構成と実質的に同じである。一方、実施の形態３にかかる制御装置４０は、実施の形態１にかかる制御装置４０の各構成要素に加え、重心位置判定部７０（重心位置判定手段）をさらに有する点で、実施の形態１と異なる。
【００５９】
重心位置判定部７０は、把持位置を決定する前に（図７のＳ１０８の前に）、物体９０の重心点９４に対応する重心位置ｘ［ｍｍ］を決定する。ここで、重心位置ｘは、基準点９０ａから重心点９４までの距離である。具体的には、重心位置判定部７０は、物体９０の基準点９０ａの近傍の仮把持点９６を仮に把持するように、エンドエフェクタ１１０を制御する。
【００６０】
エンドエフェクタ１１０が物体９０の仮把持点９６を把持したとき、力覚センサ１９０は、重力方向の荷重Ｆｘ［Ｎ］と、旋回軸２０４の周りのモーメント（旋回軸モーメント）Ｍｚ［Ｎｍｍ］を測定する。力覚センサ１９０による測定後、重心位置判定部７０は、物体９０を離すように、エンドエフェクタ１１０を制御する。
【００６１】
このとき、以下の式１０により、重心位置ｘが得られる。
ｍ＝Ｆｘ
Ｍｚ＝ｍｘ
ｘ＝Ｍｚ／Ｆｘ  （式１０）
【００６２】
ここで、重心点９４と把持点９２との距離は、（ａ−ｘ）［ｍｍ］である。したがって、式１０より、式６と同様にして、把持位置決定部５８は、旋回軸トルクＴｒ［Ｎｍｍ］を、以下の式１１を用いて算出する。
Ｔｒ＝−ｍ（ａ−ｘ）＝ｍ（Ｍｚ／Ｆｘ−ａ）  （式１１）
【００６３】
ここで、旋回軸モータトルクＴｍ２［Ｎｍｍ］の絶対値を最小とするには、Ｔｐ＋Ｔｒ＝０とすればよいので、把持位置決定部５８は、以下の式１２を用いて、把持位置ａを算出する。
Ｔｐ＋Ｔｒ＝ｍＬ＋ｍ（Ｍｚ／Ｆｘ−ａ）＝０
ｍＬ＝−ｍ（Ｍｚ／Ｆｘ−ａ）
ａ＝Ｌ＋Ｍｚ／Ｆｘ  （式１２）
【００６４】
このように、実施の形態３においては、物体９０の重心位置が予め認識されていない場合であっても、旋回軸モータトルクＴｍ２を抑制することが可能となる。つまり、実施の形態３においても、ロボットアーム１００に発生するモーメントを抑制することが可能となる。また、上記式１２を用いることによって、把持位置決定部５８は、力覚センサ１９０によって得られた測定値（荷重Ｆｘ及び旋回軸モーメントＭｚ）及びモーメントアームＬから、容易に、把持位置ａを算出することが可能となる。ここで、Ｌはモーメントアームであり、Ｍｚ／Ｆｘは、物体９０における重心位置に対応する長さである。つまり、把持位置決定部５８は、物体９０における重心位置に対応する長さとモーメントアームとの和に対応する位置を、把持位置として決定する。
【００６５】
（変形例）
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述した実施の形態においては、マイタギアを用いているが、マイタギアの代わりに、ベベルギア等の任意の傘歯車を用いてもよい。
【００６６】
また、上述した実施の形態においては、制御装置４０は、胴体２に内蔵されているとしたが、これに限られない。制御装置４０は、把持ロボット１と物理的に一体でなくてもよく、把持ロボット１と有線又は無線を介して通信可能に接続されてもよい。
【００６７】
また、上述した実施の形態においては、屈曲軸トルクの正方向を図３における矢印Ｄｐの方向とし、旋回軸トルクの正方向を図３における矢印Ｄｒの方向としたが、これに限られない。屈曲軸トルクの正方向は、図３における矢印Ｄｐと反対方向としてもよく、この場合、旋回軸トルクの正方向は、図３における矢印Ｄｒと反対方向としてもよい。
【００６８】
また、図７に示した制御方法を示すフローチャートの全てのステップが必須ではない。例えば、Ｓ１０４の処理はなくてもよい。また、モーメントアームＬが一定であれば、Ｓ１０６の処理はなくてもよい。また、実施の形態３においては、Ｓ１０２の処理（特に物体９０の寸法の認識処理）はなくてもよい。
【００６９】
また、上述した各実施の形態は、互いに適用され得る。例えば、実施の形態３と実施の形態１とを組み合わせてもよい。また、実施の形態２は、実施の形態１及び実施の形態３の少なくとも一方と組み合わされ得る。
【符号の説明】
【００７０】
１  把持ロボット
１０  認識部
４０  制御装置
５２  物体情報取得部
５６  モーメントアーム算出部
５８  把持位置決定部
６０  ロボット制御部
７０  重心位置判定部
９０  物体
１００  ロボットアーム
１１０  エンドエフェクタ
１２０  アーム部
１２２  エンドエフェクタ側リンク
１９０  力覚センサ
２００  手首関節部
２０２  屈曲軸
２０４  旋回軸
２１０  屈曲軸モータ
２１６  屈曲軸プーリ
２２０  旋回軸モータ
２２６  旋回軸プーリ
２３０  関節構造体
２４０  マイタギア機構
２４２  プーリ側マイタギア
２４４  エンドエフェクタ側マイタギア
【図１】
0006319128.tif 000002
【図２】
0006319128.tif 000003
【図３】
0006319128.tif 000004
【図４】
0006319128.tif 000005
【図５】
0006319128.tif 000006
【図６】
0006319128.tif 000007
【図７】
0006319128.tif 000008
【図８】
0006319128.tif 000009
【図９】
0006319128.tif 000010
【図１０】
0006319128.tif 000011
【図１１】
0006319128.tif 000012
【図１２】
0006319128.tif 000013