(57)【要約】【課題】アームの無駄な動きを抑えて部品等の把持対象物の把持を円滑かつ迅速に行うことのできるロボット、ロボット制御装置およびロボットの駆動方法を提供すること。【解決手段】ロボット１００は、複数の関節機構を備え、先端部にハンド４００を連結可能なアーム２８０と、ハンド４００によって部品５００の位置姿勢を検知する部品位置姿勢取得部９１２と、部品位置姿勢取得部９１２の検知結果に基づいて、部品５００を把持するときのハンド４００の位置姿勢を定めた把持パターンを生成するハンド位置姿勢生成部９１３と、現在のアーム２８０およびハンド４００の位置姿勢である基準位置姿勢を取得する基準位置姿勢取得部９１４と、ハンド位置姿勢生成部９１３によって生成された把持パターンが複数ある場合に、基準位置姿勢に基づいて１つの前記把持パターンを選択する把持パターン選択部９１５とを有する。【選択図】図５
2014240106.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節機構を備え、先端部にハンドを連結可能なアームと、
前記アームに連結された前記ハンドによって把持される把持対象物の位置姿勢を検知する対象物位置姿勢検知部と、
前記対象物位置姿勢検知部の検知結果に基づいて、前記把持対象物を把持するときの前記ハンドの位置姿勢を定めた把持パターンを生成するハンド位置姿勢生成部と、
前記ハンドで前記把持対象物を把持するための駆動を開始するときの前記アームおよび前記ハンドの位置姿勢である基準位置姿勢を取得する基準位置姿勢取得部と、
前記ハンド位置姿勢生成部によって生成された前記把持パターンが複数ある場合に、前記基準位置姿勢に基づいて１つの前記把持パターンを選択する把持パターン選択部と、を有することを特徴とするロボット。
【請求項２】
前記把持パターン選択部は、前記複数の把持パターンの中から、前記基準位置姿勢から前記ハンドで前記把持対象物を把持するまでの時間が最も短い把持パターンを選択する請求項１に記載のロボット。
【請求項３】
前記把持パターンは、前記把持対象物を把持する把持動作に移る際の前記ハンドの位置姿勢であるハンド位置姿勢と、前記ハンド位置姿勢での前記ハンドの第１開閉量と、前記把持対象物を把持する状態での前記ハンドの第２開閉量と、を含んでいる請求項２に記載のロボット。
【請求項４】
前記ハンド位置姿勢生成部は、前記ハンド位置姿勢を、前記ハンドを表すハンドポリゴンデータと前記把持対象物を表す把持対象物ポリゴンデータとを用いたシミュレーションによって生成する請求項３に記載のロボット。
【請求項５】
前記シミュレーションによって、実環境で再現することのできる前記ハンド位置姿勢か否かを判断する請求項４に記載のロボット。
【請求項６】
前記把持パターン選択部は、前記ハンド位置姿勢を実現する前記アームの位置姿勢であるアーム位置姿勢を取得し、前記基準位置姿勢と前記アーム位置姿勢の差、前記基準位置姿勢における前記ハンドの開閉量と前記第１開閉量の差、および、前記第１開閉量と前記第２開閉量の差に基づいて前記時間を求める請求項３ないし５のいずれか一項に記載のロボット。
【請求項７】
複数の関節機構を備え、先端部にハンドを連結可能なアームを有するロボットの駆動を制御するロボット制御装置であって、
前記アームに連結された前記ハンドによって把持される把持対象物の位置姿勢を検知する対象物位置姿勢検知部と、
前記対象物位置姿勢検知部の検知結果に基づいて、前記把持対象物を把持するときの前記ハンドの位置姿勢を定めた把持パターンを生成するハンド位置姿勢生成部と、
前記ハンドで前記把持対象物を把持するための駆動を開始するときの前記アームおよび前記ハンドの位置姿勢である基準位置姿勢を取得する基準位置姿勢取得部と、
前記ハンド位置姿勢生成部によって生成された前記把持パターンが複数ある場合に、前記基準位置姿勢に基づいて１つの前記把持パターンを選択する把持パターン選択部と、を有し、
前記把持パターン選択部で選択された前記把持パターンで前記アームおよび前記ハンドを駆動することを特徴とするロボット制御装置。
【請求項８】
複数の関節機構を備え、先端部にハンドが連結されたアームを備えるロボットの駆動方法であって、
前記ハンドによって把持される把持対象物の位置姿勢に基づいて、前記把持対象物を把持するときの前記ハンドの位置姿勢を定めた把持パターンを生成し、生成された前記把持パターンが複数ある場合に、前記ハンドで前記把持対象物を把持するための駆動を開始するときの前記アームおよび前記ハンドの位置姿勢に基づいて１つの前記把持パターンを選択し、選択した前記把持パターンで前記アームおよび前記ハンドを駆動することを特徴とするロボットの駆動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボット制御装置およびロボットの駆動方法に関するものである。
【背景技術】
【０００２】
例えば、腕時計のような精密機器等を製造する製造工程で用いることができるロボットとして、少なくとも１つの関節を有するアームと、アームに取り付けられたハンドとを有するロボットが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平２−１４５２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載のロボットは、作業台上の部品を撮影するカメラと、カメラからの画像データから部品の重心、姿勢、種類等を特定する部品画像処理装置と、部品画像処理装置で得られた情報に基づいてハンドの部品把持位置を決定する把持位置決定装置と、把持位置決定装置からの指令値によってアームおよびハンドを駆動するロボットコントローラと、を有している。そのため、このような構成によれば、確実な把持動作を行うことができる。しかしながら、特許文献１に記載のロボットでは、把持位置決定装置で決定される把持位置が現在のアームの姿勢を考慮していないため、部品を把持するためのアームの動きに無駄が生じ、高速かつ確実な部品の把持を行うことができない。
本発明の目的は、アームの無駄な動きを抑えて部品等の把持対象物の把持を円滑かつ迅速に行うことのできるロボット、ロボット制御装置およびロボットの駆動方法を提供することにある。
【課題を解決するための手段】
【０００５】
このような目的は、下記の本発明により達成される。
本発明のロボットは、複数の関節機構を備え、先端部にハンドを連結可能なアームと、
前記アームに連結された前記ハンドによって把持される把持対象物の位置姿勢を検知する対象物位置姿勢検知部と、
前記対象物位置姿勢検知部の検知結果に基づいて、前記把持対象物を把持するときの前記ハンドの位置姿勢を定めた把持パターンを生成するハンド位置姿勢生成部と、
前記ハンドで前記把持対象物を把持するための駆動を開始するときの前記アームおよび前記ハンドの位置姿勢である基準位置姿勢を取得する基準位置姿勢取得部と、
前記ハンド位置姿勢生成部によって生成された前記把持パターンが複数ある場合に、前記基準位置姿勢に基づいて１つの前記把持パターンを選択する把持パターン選択部と、を有することを特徴とするロボット。
これにより、アームの無駄な動きを抑えて部品等の把持対象物の把持を円滑かつ迅速に行うことのできるロボットを提供することができる。
【０００６】
本発明のロボットでは、前記把持パターン選択部は、前記複数の把持パターンの中から、前記基準位置姿勢から前記ハンドで前記把持対象物を把持するまでの時間が最も短い把持パターンを選択することが好ましい。
これにより、より短時間で把持対象物を把持することができる。
本発明のロボットでは、前記把持パターンは、前記把持対象物を把持する把持動作に移る際の前記ハンドの位置姿勢であるハンド位置姿勢と、前記ハンド位置姿勢での前記ハンドの第１開閉量と、前記把持対象物を把持する状態での前記ハンドの第２開閉量と、を含んでいることが好ましい。
これにより、ロボットを精度良く駆動することができる。
【０００７】
本発明のロボットでは、前記ハンド位置姿勢生成部は、前記ハンド位置姿勢を、前記ハンドを表すハンドポリゴンデータと前記把持対象物を表す把持対象物ポリゴンデータとを用いたシミュレーションによって生成することが好ましい。
これにより、簡単に、把持パターンを生成することができる。
本発明のロボットでは、前記シミュレーションによって、実環境で再現することのできる前記ハンド位置姿勢か否かを判断することが好ましい。
これにより、対象物の把持を確実に行うことができる。また、対象物とアームまたはハンドとの不本意な接触を防止でき、部品の破損や飛散を防止することができる。
【０００８】
本発明のロボットでは、前記把持パターン選択部は、前記ハンド位置姿勢を実現する前記アームの位置姿勢であるアーム位置姿勢を取得し、前記基準位置姿勢と前記アーム位置姿勢の差、前記基準位置姿勢における前記ハンドの開閉量と前記第１開閉量の差、および、前記第１開閉量と前記第２開閉量の差に基づいて前記時間を求めることが好ましい。
これにより、簡単に、把持にかかる時間を求めることができる。
【０００９】
本発明のロボット制御装置は、複数の関節機構を備え、先端部にハンドを連結可能なアームを有するロボットの駆動を制御するロボット制御装置であって、
前記アームに連結された前記ハンドによって把持される把持対象物の位置姿勢を検知する対象物位置姿勢検知部と、
前記対象物位置姿勢検知部の検知結果に基づいて、前記把持対象物を把持するときの前記ハンドの位置姿勢を定めた把持パターンを生成するハンド位置姿勢生成部と、
前記ハンドで前記把持対象物を把持するための駆動を開始するときの前記アームおよび前記ハンドの位置姿勢である基準位置姿勢を取得する基準位置姿勢取得部と、
前記ハンド位置姿勢生成部によって生成された前記把持パターンが複数ある場合に、前記基準位置姿勢に基づいて１つの前記把持パターンを選択する把持パターン選択部と、を有し、
前記把持パターン選択部で選択された前記把持パターンで前記アームおよび前記ハンドを駆動することを特徴とする。
これにより、アームの無駄な動きを抑えて部品等の把持対象物の把持を円滑かつ迅速に行うことのできるロボット制御装置を提供することができる。
【００１０】
本発明のロボットの駆動方法は、複数の関節機構を備え、先端部にハンドが連結されたアームを備えるロボットの駆動方法であって、
前記ハンドによって把持される把持対象物の位置姿勢に基づいて、前記把持対象物を把持するときの前記ハンドの位置姿勢を定めた把持パターンを生成し、生成された前記把持パターンが複数ある場合に、前記ハンドで前記把持対象物を把持するための駆動を開始するときの前記アームおよび前記ハンドの位置姿勢に基づいて１つの前記把持パターンを選択し、選択した前記把持パターンで前記アームおよび前記ハンドを駆動することを特徴とする。
これにより、アームの無駄な動きを抑えて部品等の把持対象物の把持を円滑かつ迅速に行うことのできるロボットの駆動方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のロボットの好適な実施形態を示す斜視図である。
【図２】図１に示すロボットの回動軸を表す図である。
【図３】図１に示すロボットが有するロボット制御部を示すブロック図である。
【図４】図１に示すロボットに装着されるハンドを示す図である。
【図５】図１に示すロボットが有するロボット制御部を示すブロック図である。
【図６】ロボット制御部での処理を説明する図である。
【図７】ロボット制御部での処理を説明する図である。
【図８】ロボット制御部での処理を説明する図である。
【図９】ロボット制御部での処理を説明する図である。
【図１０】ロボット制御部での処理を説明する図である。
【図１１】ロボット制御部での処理を説明する図である。
【図１２】ロボット制御部での処理を説明する図である。
【図１３】ロボット制御部での処理を説明する図である。
【図１４】ロボット制御部での処理を説明する図である。
【発明を実施するための形態】
【００１２】
以下、本発明のロボットおよびロボットの駆動方法を添付図面に示す好適な実施形態に基づいて詳細に説明する。
図１は、本発明のロボットの好適な実施形態を示す斜視図である。図２は、図１に示すロボットの回動軸を表す図である。図３は、図１に示すロボットが有するロボット制御部を示すブロック図である。図４は、図１に示すロボットに装着されるハンドを示す図である。図５は、図１に示すロボットが有するロボット制御部を示すブロック図である。図６ないし１４は、それぞれ、ロボット制御部での処理を説明する図である。
図１に示すロボット１００は、多軸ロボットであり、例えば、腕時計のような精密機器等を製造する製造工程で用いることができる。このようなロボット１００は、ロボット本体２００と、ロボット本体２００の作動を制御するロボット制御部（ロボット制御装置）９００とを有している。
【００１３】
（ロボット本体）
図１および図２に示すように、ロボット本体２００は、例えば床に固定されたベース（基台）２１０と、関節機構３１０を介してベース２１０に連結された第１リンク２２０と、関節機構３２０を介して第１リンク２２０に連結された第２リンク２３０と、関節機構３３０を介して第２リンク２３０の先端に連結された第３リンク２４０と、関節機構３４０を介して第３リンク２４０の先端に連結された第４リンク２５０と、関節機構３５０を介して第４リンク２５０の先端に連結された第５リンク２６０と、関節機構３６０を介して第５リンク２６０の先端に連結された第６リンク２７０と、を有している。また、第６リンク２７０にはハンド接続部２７１が設けられており、ハンド接続部２７１には、ロボット１００に実行させる作業に応じたハンド（エンドエフェクター）４００が装着される。なお、以下では、第１リンク２２０〜第６リンク２７０および関節機構３１０〜３６０を合わせて「アーム２８０」とも言う。
【００１４】
図２に示すように、関節機構３１０は、第１リンク２２０をベース２１０に対して鉛直な回動軸Ｏ１まわりに回動させ、関節機構３２０は、第２リンク２３０を第１リンク２２０に対して回動軸Ｏ１に直交する回動軸Ｏ２まわりに回動させ、関節機構３３０は、第３リンク２４０を第２リンク２３０に対して回動軸Ｏ２と平行な回動軸Ｏ３まわりに回動させ、関節機構３４０は、第４リンク２５０を第３リンク２４０に対して回動軸Ｏ３に直交する回動軸Ｏ４まわりに回動させ、関節機構３５０は、第５リンク２６０を第４リンク２５０に対して回動軸Ｏ４に直交する回動軸Ｏ５まわりに回動させ、関節機構３６０は、第６リンク２７０を第５リンク２６０に対して回動軸Ｏ５に直交する回動軸Ｏ６まわりに回動させる。
【００１５】
本実施形態のロボット１００では、各関節機構３１０〜３６０の角速度（すなわち、第１リンク２２０の回動軸Ｏ１まわりの角速度、第２リンク２３０の回動軸Ｏ２まわりの角速度、第３リンク２４０の回動軸Ｏ３まわりの角速度、第４リンク２５０の回動軸Ｏ４まわりの角速度、第５リンク２６０の回動軸Ｏ５まわりの角速度、および、第６リンク２７０の回動軸Ｏ６まわりの角速度）が等しく設定されている。ただし、これに限定されず、各関節機構３１０〜３６０の角速度は、互いに異なっていてもよい。
【００１６】
関節機構３１０、３２０、３３０、３４０、３５０、３６０としては、それぞれ、特に限定されない。図３に示すように、本実施形態の関節機構３１０、３２０、３３０、３４０、３５０、３６０は、互いに同様の構成をしており、モーター（駆動源）３１１、３２１、３３１、３４１、３５１、３６１と、モーター３１１、３２１、３３１、３４１、３５１、３６１の回転速度を減じる減速機（図示せず）と、モーター３１１、３２１、３３１、３４１、３５１、３６１の回転角度を検知する位置センサー３１２、３２２、３３２、３４２、３５２、３６２とを有している。なお、モーター３１１、３２１、３３１、３４１、３５１、３６１としては、例えば、ＡＣサーボモーター、ＤＣサーボモーター等のサーボモーターを用いることができ、減速機としては、例えば、遊星ギア型の減速機、ハーモニックドライブ（「ハーモニックドライブ」は登録商標）等を用いることができ、位置センサー３１２、３２２、３３２、３４２、３５２、３６２としては、例えば、エンコーダー、ロータリーエンコーダー、レゾルバー、ポテンショメーター等を用いることができる。
【００１７】
アーム２８０の先端に取り付けられたハンド４００は、例えば、部品（把持対象物）を把持する機能を有している。ハンド４００の構成は実行させる作業によって異なるが、本実施形態では、図４（ａ）に示すように、第１の指４１０と第２の指４２０を有する構成とすることができる。また、ハンド４００では、第１の指４１０が固定されており、図４（ｂ）に示すように、第２の指４２０を第１の指４１０に対して接近または離間させることにより部品５００を把持する。第２の指４２０の移動は、例えば、ハンド４００内に内蔵され、モーター４３１と位置センサー４３２とを有する駆動機構４３０によって行われる。モーター４３１および位置センサー４３２としては、前述したモーター３１１および位置センサー３１２と同様のものを用いることができる。なお、ハンド４００では、第１の指４１０の内面（第２の指４２０と対向する面）４１１と、第２の指の内面（第１の指４１０と対向する面）４２１とで部品を挟持するため、以下では、説明の便宜上、内面４１１、４２１を把持面４１１、４２１とも言う。また、第１、第２の指４１０、４２０を用いて部品を把持する動作を「把持動作」とも言う。
【００１８】
このような構成のハンド４００とハンド接続部２７１との間には、力覚センサーが配置されていてもよい。力覚センサーは、ハンド４００に加えられる外力を検出する機能を有しており、力覚センサーが検出する力をロボット制御部９００にフィードバックすることで、ロボット１００による作業をより精密に実行することができる。また、力覚センサーが検出する力やモーメントによって、ハンド４００の障害物への接触等を検知することができる。そのため、障害物回避動作、対象物損傷回避動作等を容易に行うことができる。このような力覚センサーとしては、互いに直交する３軸の各軸の力成分とモーメント成分を検出することができる公知の力覚センサーを用いることができる。
【００１９】
（ロボット制御部）
図１に示すように、ロボット制御部９００は、部品を把持するときのアーム２８０およびハンド４００の位置・姿勢を決定する位置姿勢決定部９１０と、位置姿勢決定部９１０で決められた位置・姿勢となるようにアーム２８０およびハンド４００を駆動する駆動制御部９２０とを有している。
【００２０】
図３に示すように、駆動制御部９２０は、位置センサー３１２からのフィードバックを得ながらモーター３１１の駆動を制御する第１駆動源制御部９２１と、位置センサー３２２からのフィードバックを得ながらモーター３２１の駆動を制御する第２駆動源制御部９２２と、位置センサー３３２からのフィードバックを得ながらモーター３３１の駆動を制御する第３駆動源制御部９２３と、位置センサー３４２からのフィードバックを得ながらモーター３４１の駆動を制御する第４駆動源制御部９２４と、位置センサー３５２からのフィードバックを得ながらモーター３５１の駆動を制御する第５駆動源制御部９２５と、位置センサー３６２からのフィードバックを得ながらモーター３６１の駆動を制御する第６駆動源制御部９２６と、位置センサー４３２からのフィードバックを得ながらモーター４３１の駆動を制御する第７駆動源制御部９２７と、を有している。これにより、駆動制御部９２０は、モーター３１１、３２１、３３１、３４１、３５１、３６１、４３１をそれぞれ独立して駆動することができるため、効率的に、アーム２８０およびハンド４００を所定の位置姿勢とすることができる。
【００２１】
図５に示すように、位置姿勢決定部９１０は、形状記憶部９１１と、部品位置姿勢取得部（対象物位置姿勢検知部）９１２と、ハンド位置姿勢生成部９１３と、基準位置姿勢取得部９１４と、把持パターン選択部９１５と、を有している。
形状記憶部９１１には、予め、ハンド４００の外形形状を表すポリゴンデータ（ハンドポリゴンデータ）ＰＤ４００と部品（把持対象物）５００の外形形状を表すポリゴンデータ（把持対象物ポリゴンデータ）ＰＤ５００とが記憶されている。また、部品位置姿勢取得部９１２は、作業台１０００上にある部品５００の位置姿勢を取得する。また、ハンド位置姿勢生成部９１３は、部品５００を把持するときのハンド４００の位置姿勢および第１、第２の指４１０、４２０の開閉量を定めた把持パターンを生成する。また、基準位置姿勢取得部９１４は、現在のアーム２８０およびハンド４００の位置姿勢を取得する。また、把持パターン選択部９１５は、ハンド位置姿勢生成部９１３で生成された把持パターンが複数ある場合に、その中から定められた基準に基づいて最適な１つの把持パターンを選択する。以下、位置姿勢決定部９１０での処理を具体的に説明する。
【００２２】
部品位置姿勢取得部９１２は、作業台１０００上の部品５００の位置および姿勢を取得する。取得方法としては、特に限定されないが、本実施形態では、図５に示すように、作業台１０００の上方に配置されたカメラ（撮像手段）８００で作業台１０００上の部品５００を撮像し、得られた画像データを解析することによって部品５００の作業台１０００上での位置および姿勢を取得する。なお、カメラ８００としては、作業台１０００上の部品５００の位置および姿勢を取得するための専用のカメラを用いてもよいし、例えば、ロボット１００を監視するための監視カメラを利用してもよいし、ロボット１００に設けられたカメラを利用してもよい。
【００２３】
ハンド位置姿勢生成部９１３は、形状記憶部９１１に記憶されているポリゴンデータＰＤ４００、ＰＤ５００と、部品位置姿勢取得部９１２が取得した部品５００の位置姿勢に関するデータとを読み出し、仮想空間内において作業台１０００に対する部品５００の位置姿勢を再現し、以下の処理（シミュレーション）を行う。これにより、簡単に、後述する把持パターンを生成することができる。
【００２４】
まず、ハンド位置姿勢生成部９１３は、把持動作を行う際に、ハンド４００の部品５００と接触させる面と、部品５００の前記面と接触させる面とを決定する。代表して、ハンド４００の部品５００と接触させる面として把持面４１１を選択し、部品５００の把持面４１１と接触させる面として面５０１を選択した場合について説明する。次に、ハンド位置姿勢生成部９１３は、図６（ａ）に示すように、ポリゴンデータＰＤ４００から把持面４１１を表すポリゴンＰＯＬＹ４１１を選択するとともにポリゴンＰＯＬＹ４１１内に基準点ＰＯ４１１を設定し、同様に、ポリゴンデータＰＤ５００から面５０１を表すポリゴンＰＯＬＹ５０１を選択するとともにポリゴンＰＯＬＹ５０１内に基準点ＰＯ５０１を設定する（ステップ１−１）。
【００２５】
次に、ハンド位置姿勢生成部９１３は、図６（ｂ）に示すように、選択したＰＯＬＹ４１１、ＰＯＬＹ５０１が互いに平行となり、かつ、基準点ＰＯ４１１、ＰＯ５０１が一致するように、ポリゴンデータＰＤ４００を並進回転変換する（ステップ１−２）。なお、以下では、ステップ１−２の並進回転変換を並進回転変換Ｃ１とする。次に、ハンド位置姿勢生成部９１３は、図７（ａ）に示すように、並進回転変換Ｃ１を適用したポリゴンデータＰＤ４００を、基準点ＰＯ４１１をポリゴンＰＯＬＹ５０１と同一平面上の所定位置までずらすように並進変換するとともに、図７（ｂ）に示すように、基準点ＰＯ４１１を通りＰＯＬＹ４１１に直交する軸まわりに定められた回転角度で回転変換し、ハンド４００が面５０１以外で部品５００または作業台１０００に衝突するか否かを確認し、「衝突あり」か「衝突なし」か、を判断する（ステップ１−３）。なお、以下では、ステップ１−３の並進変換を並進変換Ｃ２とし、回転変換を回転変換Ｃ３とする。以上で、部品５００の面５０１に対するシミュレーションが終了する。
【００２６】
ハンド位置姿勢生成部９１３は、部品５００の面５０１以外の面（ポリゴンデータＰＤ５００に含まれるポリゴンＰＯＬＹ５０１以外のポリゴン）についても面５０１と同様にしてステップ１−１〜ステップ１−３のシミュレーションを繰り返し行う。なお、このシミュレーションは、部品５００の全ての面（ポリゴンデータＰＤ５００に含まれる全てのポリゴン）について行ってもよいし、部品５００の外形形状に基づいて予め選択された任意の面（把持に適していると思われる面）についてのみシミュレーションを行ってもよい。全ての面についてシミュレーションを行うと、より多くの情報が得られより効率的な制御を行うことができ、選択された面についてのみシミュレーションを行うと、シミュレーションの量（演算量）が減り、シミュレーションにかかる時間が短くなる。
【００２７】
次に、ハンド位置姿勢生成部９１３は、ステップ１−３にて、「衝突なし」と判断されたケース、つまりハンド４００の位置姿勢を実環境（現実）に再現できるケースを選択する。これにより、部品５００の把持を確実に行うことができる。また、部品５００とアーム２８０またはハンド４００との不本意な接触を防止でき、部品５００の破損や飛散を防止することができる。
【００２８】
以下では、説明の便宜上、「衝突なし」と判断されたケースとして、図８（ａ）に示すケース１と、図８（ｂ）に示すケース２とが選択された場合について説明する。ケース１は、ハンド４００の部品５００と接触させる面を把持面４１１とし、部品５００の把持面４１１と接触させる面を面５０１とした場合であり、ケース２は、ハンド４００の部品５００と接触させる面を把持面４１１とし、部品５００の把持面４１１と接触させる面を面５０１と対向する面５０２とした場合である。
なお、参考までに、「衝突あり」とされるケースとしては、例えば、図９（ａ）、（ｂ）に示すケースが挙げられる。
【００２９】
次に、ハンド位置姿勢生成部９１３は、ケース１について、並進回転変換Ｃ１、並進変換Ｃ２および回転変換Ｃ３を適用したポリゴンデータＰＤ４００から、部品５００を把持するときのハンド４００の位置姿勢（ハンド位置姿勢ＨＰ）を決定する。このようにして決定されたハンド位置姿勢ＨＰは、確実に、現実に再現できるものとなる。さらに、ハンド位置姿勢生成部９１３は、決定したハンド位置姿勢ＨＰにて、ハンド４００の第２の指４２０を閉じ、その把持面４２１を部品５００に接触させた状態（すなわち把持面４１１、４２１で部品５００を挟持した状態）での把持面４１１、４１２の離間距離（閉じ量）Ｄ１を求める。また、把持動作に移行する前には、ハンド４００を離間距離Ｄ１に対して十分に開いた状態としておかなければならないため、ハンド位置姿勢生成部９１３は、さらに、把持動作に移行する際の把持面４１１、４２１の離間距離（開き量）Ｄ２を決定する。そして、ハンド位置姿勢生成部９１３は、下記の表１のように、上記のように決定したハンド位置姿勢ＨＰ、離間距離Ｄ１、Ｄ２の組み合わせを把持パターン１として生成し記憶する。これと同様にして、ハンド位置姿勢生成部９１３は、ケース２についてもハンド位置姿勢ＨＰ、離間距離Ｄ１、Ｄ２を決定し、これらの組み合わせを把持パターン２として生成し記憶する。このような把持パターンに従えば、ロボット１００を精度良く駆動することができる。
【００３０】
【表１】
2014240106.tif 000003
【００３１】
ハンド位置姿勢ＨＰは、例えば、予め部品５００に設定されている部品基準座表系との関係で設定することができる。図１０に示すように、部品５００には、部品基準座表系（Ｘ，Ｙ，Ｚ）が設定されており、ハンド４００には、基準点Ｐと、基準点Ｐからハンド４００の先端に延びる主方向Ａと、基準点Ｐから延び、主方向Ａに直交し第２の指４２０へ向けて延びる副方向Ｂとが設定されている。そのため、部品基準座表系内での基準点Ｐの位置と、方向Ａ、Ｂの向きを定めることによって、ハンド位置姿勢ＨＰを簡単に設定することができる。例えば、ケース１では、図１０（ａ）に示すように、ハンド４００の基準点Ｐの座標（Ｘ，Ｙ，Ｚ）が（２．０，１７．０，０．０）であり、主方向Ａが−Ｙ軸側を向き、副方向Ｂが＋Ｘ軸側を向くことが設定されている。また、ケース２では、図１０（ｂ）に示すように、ハンド４００の基準点Ｐの座標（Ｘ，Ｙ，Ｚ）が（−２．０，１７．０，０．０）であり、主方向Ａが−Ｙ軸側を向き、副方向Ｂが−Ｘ軸側を向くことが設定されている。
【００３２】
基準位置姿勢取得部９１４は、現在のアーム２８０およびハンド４００の位置姿勢である基準位置姿勢ＢＰを取得する。ここで、前記「現在」の位置姿勢とは、部品５００を把持するための処理に移行する直前の位置姿勢の意味であって、必ずしも、現時刻の位置姿勢の意味ではない。例えば、現時刻において、アーム２８０およびハンド４００が別の処理を実行中の場合には、その処理を終えて、部品５００を把持するための処理に移行する直前の姿勢を言い、１つの処理を終えると必ず所定姿勢に戻ってから次の処理に移行するようにプログラムされている場合には、前記所定姿勢を言う。なお、基準位置姿勢ＢＰは、下記の表２に示すように、各関節機構３１０〜３６０の回転角およびハンド４００の開閉量（第１、第２の指４１０、４２０の離間距離）で表すことができる。なお、回転角や開閉量は、各位置センサー３１２〜３６２、４３２からの出力で検知することができる。
【００３３】
【表２】
2014240106.tif 000004
【００３４】
把持パターン選択部９１５は、基準位置姿勢ＢＰに基づいて、ハンド位置姿勢生成部９１３が生成した複数の把持パターン１、２のうちから、所定条件を満足する把持パターンを１つ選択する。前記所定条件としては、特に限定されないが、例えば、基準位置姿勢ＢＰから部品５００を把持するまでにかかる時間Ｔが最も短くなる条件が挙げられる。このような条件で把持パターンを選択することで、部品５００の把持を円滑かつ迅速（短時間）に行うことができ、ロボット１００の処理能力が向上する。また、アーム２８０の無駄な動きが抑えられ、省電力化を図ることもできる。
【００３５】
具体的には、把持パターン選択部９１５は、まず、把持パターン１について、ハンド４００を基準位置姿勢ＢＰからハンド位置姿勢ＨＰとするアーム２８０の動きが可能でるか否か、すなわちアーム２８０がハンド４００をハンド位置姿勢ＨＰとする姿勢をとれるか否かを、各関節機構３１０〜３６０の可動域を考慮して確認する（図１１参照）。また、この際、把持パターン選択部９１５は、ハンド４００を基準位置姿勢ＢＰからハンド位置姿勢ＨＰとする際に、アーム２８０またはハンド４００がロボット１００の周囲にある障害物（部品５００、作業台１０００、壁等）に衝突するか否かを合わせて確認する。ハンド４００をハンド位置姿勢ＨＰとすることができ、かつ障害物への衝突が無い場合には、下記の表３のように、ハンド位置姿勢ＨＰを実現するアーム２８０の姿勢をアーム位置姿勢ＡＰとして設定する。
【００３６】
【表３】
2014240106.tif 000005
【００３７】
次に、把持パターン選択部９１５は、基準位置姿勢ＢＰから部品５００を把持するまでにかかる時間Ｔを求める。この時間Ｔの求め方は、ロボット１００の構成によって異なる。
例えば、ロボット１００が、まず、基準位置姿勢ＢＰでハンド４００の開閉量をＤ２とし、その後、アーム位置姿勢ＡＰ（ハンド位置姿勢ＨＰ）とし、その後、ハンド４００の開閉量をＤ１とすることで部品５００を把持する設定の場合、時間Ｔは、基準位置姿勢ＢＰからハンド４００の開閉量をＤ２とするのにかかる時間Ｔ１と、基準位置姿勢ＢＰからアーム位置姿勢ＡＰ（ハンド位置姿勢ＨＰ）とするのにかかる時間Ｔ２と、ハンド４００の開閉量をＤ１とするのにかかる時間Ｔ３とを加算することで簡単に求まる。別の例として、ロボット１００が、まず、基準位置姿勢ＢＰからハンド４００の開閉量をＤ２としつつアーム位置姿勢ＡＰ（ハンド位置姿勢ＨＰ）とし、その後、ハンド４００の開閉量をＤ１とすることで部品５００を把持する設定の場合、時間Ｔは、時間Ｔ１、Ｔ２のうちの長い方と、時間Ｔ３とを加算することで簡単に求まる。
【００３８】
時間Ｔ１、Ｔ３は、それぞれ、第２の指４２０の移動距離と移動速度とに基づいて求めることができる。一方、時間Ｔ２は、ロボット１００の構成によっても異なるが、例えば、アーム２８０を基準位置姿勢ＢＰからアーム位置姿勢ＡＰとする際に、各関節機構３１０〜３６０の駆動を同時に開始するように設定されている場合には、関節機構３１０〜３６０のうちで回動角が最も大きい関節機構の回動角と角速度とに基づいて求めることができる。
【００３９】
より具体的に説明すると、前述したように、ロボット１００が、まず、基準位置姿勢ＢＰでハンド４００の開閉量をＤ２とし、その後、アーム位置姿勢ＡＰとし、その後、ハンド４００の開閉量をＤ１とすることで部品５００を把持する設定の場合、時間Ｔは、下記の式（１）で求めることができる。なお、以下では、説明の便宜上、基準位置姿勢ＢＰでハンド４００の開閉量をＤ２とするのを「ハンド開動作」とも言い、ハンド４００の開閉量をＤ２からＤ１とするのを「ハンド閉動作」とも言う。
【００４０】
【数１】
2014240106.tif 000006
【００４１】
ただし、式（１）中、
Δｉ：把持パターンｉで把持動作を行った場合の時間Ｔ、
ｕｍ：把持動作直前のハンドのｍ方向成分のハンド開閉量（基準位置姿勢ＢＰでのハンド４００の開閉量）、
ｕｏｉｍ：把持パターンｉのハンド開動作のロボットハンドｍ方向成分のハンド開閉量（開閉量Ｄ２）、
ｕｃｉｍ：把持パターンｉのハンド閉動作のロボットハンドｍ方向成分のハンド開閉量（開閉量Ｄ１）、
θｎ：基準位置姿勢ＢＰでのアーム２８０の第ｎ関節機構の角度、
θａｉｎ：アーム位置姿勢ＡＰでのアーム２８０の第ｎ関節機構の角度、
Ｍ：ハンド４００の開閉方向成分数、
Ｎ：アーム２８０の関節機構の数、
αｍ：ハンド開動作／閉動作のハンド４００の開閉方向ｍ成分の動作速度（第２の指４２０の動作速度）、
βｎ：基準位置姿勢ＢＰからアーム位置姿勢ＡＰとするときの関節機構３１０〜３６０の角速度
【００４２】
【数２】
2014240106.tif 000007
である。
【００４３】
把持パターン選択部９１５は、上述の把持パターン１と同様にして、把持パターン２についても時間Ｔを求める。そして、把持パターン１、２のうちで、時間Ｔが短い方の把持パターン（例えば、把持パターン１）を選択する。把持パターン選択部９１５で選択された把持パターン１と把持パターン１を実現するアーム位置姿勢ＡＰは、駆動制御部９２０に送られ、駆動制御部９２０は、受け取った把持パターン１およびアーム位置姿勢ＡＰに基づいてロボット１００の駆動を制御する。これにより、部品５００の把持を短時間で行うことができ、ロボット１００の処理能力が向上する。また、アーム２８０の無駄な動きが抑えられ、省電力化を図ることもできる。
【００４４】
以上、位置姿勢決定部９１０での処理を具体的に説明した。
部品５００の姿勢が上記とは異なる場合についても、位置姿勢決定部９１０は、上記と同様の処理を行う。例えば、図１２に示すようにして部品５００が作業台１０００に置かれている場合には、ハンド位置姿勢生成部９１３は、「衝突なし」と判断されたケースとして、例えば、図１３（ａ）に示すケース１、同図（ｂ）に示すケース２、同図（ｃ）に示すケース３を選択し、これら各ケース１、２、３について、ハンド位置姿勢ＨＰ、開閉量Ｄ１、Ｄ２の情報を含む把持パターン１、２、３を生成する。なお、参考までに、「衝突あり」とされるケースとしては、例えば、図１４（ａ）、（ｂ）、（ｃ）、（ｄ）に示すケースが挙げられる。次に、把持パターン選択部９１５が、基準位置姿勢ＢＰに基づいて、ハンド位置姿勢生成部９１３が生成した複数の把持パターン１、２のうちから時間Ｔが最も短くなるパターンを選択する。そして、駆動制御部９２０は、選択された把持パターンに基づいてロボット１００の駆動を制御する。
【００４５】
以上、本発明のロボット、ロボット制御装置およびロボットの駆動方法を、図示の実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物が付加されていてもよい。
また、前記実施形態では、ロボットの関節機構の数が６であるが、本発明では、これに限定されず、ロボットの関節機構の数は、１〜５であってもよいし、７以上であってもよい。
【符号の説明】
【００４６】
１００……ロボット  ２００……ロボット本体  ２１０……ベース  ２２０……第１リンク  ２３０……第２リンク  ２４０……第３リンク  ２５０……第４リンク  ２６０……第５リンク  ２７０……第６リンク  ２７１……ハンド接続部  ２８０……アーム  ３１０、３２０、３３０、３４０、３５０、３６０……関節機構  ３１１、３２１、３３１、３４１、３５１、３６１……モーター  ３１２、３２２、３３２、３４２、３５２、３６２……位置センサー  ４００……ハンド  ４１０……第１の指  ４１１……把持面（内面）  ４２０……第２の指  ４２１……把持面（内面）  ４３０……駆動機構  ４３１……モーター  ４３２……位置センサー  ５００……部品  ５０１、５０２……面  ８００……カメラ  ９００……ロボット制御部  ９１０……位置姿勢決定部  ９１１……形状記憶部  ９１２……部品位置姿勢取得部  ９１３……ハンド位置姿勢生成部  ９１４……基準位置姿勢取得部  ９１５……把持パターン選択部  ９２０……駆動制御部  ９２１……第１駆動源制御部  ９２２……第２駆動源制御部  ９２３……第３駆動源制御部  ９２４……第４駆動源制御部  ９２５……第５駆動源制御部  ９２６……第６駆動源制御部  ９２７……第７駆動源制御部  １０００……作業台  Ａ……主方向  Ｂ……副方向  Ｄ１、Ｄ２……離間距離（開閉量）  Ｏ１、Ｏ２、Ｏ３、Ｏ４、Ｏ５、Ｏ６……回動軸  Ｐ……基準点  ＰＤ４００、ＰＤ５００……ポリゴンデータ  ＰＯ４１１、ＰＯ５０１……基準点  ＰＯＬＹ４１１、ＰＯＬＹ５０１……ポリゴン
【図１】
2014240106.tif 000008
【図２】
2014240106.tif 000009
【図３】
2014240106.tif 000010
【図４】
2014240106.tif 000011
【図５】
2014240106.tif 000012
【図６】
2014240106.tif 000013
【図７】
2014240106.tif 000014
【図８】
2014240106.tif 000015
【図９】
2014240106.tif 000016
【図１０】
2014240106.tif 000017
【図１１】
2014240106.tif 000018
【図１２】
2014240106.tif 000019
【図１３】
2014240106.tif 000020
【図１４】
2014240106.tif 000021