(57)【要約】【課題】ロボットが把持対象物を把持するための把持姿勢の候補が複数あるときに、モーション生成処理を並行して実行することなく、モーション生成の処理時間を短縮する。【解決手段】制御装置は、ロボットが把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボットを制御する。この制御装置は、ロボットが把持対象物を把持することのできる把持姿勢の候補を複数受け付ける把持姿勢受付部と、複数の把持姿勢の候補のそれぞれと、ロボットの初期姿勢とに基づいて、複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、複数の把持姿勢の候補の中から把持姿勢を選択する把持姿勢選択部と、初期姿勢から選択された把持姿勢までの間のロボットのモーションを生成するモーション生成部と、を備える。【選択図】図３
2019155509.tif 000002
【特許請求の範囲】
【請求項１】
ロボットが把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボットを制御する制御装置であって、
前記ロボットが前記把持対象物を把持することのできる把持姿勢の候補を複数受け付ける把持姿勢受付部と、
前記複数の把持姿勢の候補のそれぞれと、前記ロボットの初期姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択する把持姿勢選択部と、
前記初期姿勢から前記選択された把持姿勢までの間の前記ロボットのモーションを生成するモーション生成部と、
を備える制御装置。
【請求項２】
ロボットが把持対象物を把持して所定の配置位置まで運搬するためのモーションを生成し、当該モーションに基づいて前記ロボットを制御する制御装置であって、
前記ロボットが前記把持対象物を把持することのできる把持姿勢の候補を複数受け付ける把持姿勢受付部と、
前記複数の把持姿勢の候補のそれぞれと、前記ロボットの初期姿勢及び前記把持対象物を前記配置位置に配置することのできる配置姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択する把持姿勢選択部と、
前記初期姿勢から前記選択された把持姿勢までの間の前記ロボットのモーションを生成し、さらに、前記選択された把持姿勢から前記配置姿勢までの間の前記ロボットのモーションを生成するモーション生成部と、
を備える制御装置。
【請求項３】
前記初期姿勢と前記複数の把持姿勢の候補とに基づいて中間姿勢を生成する中間姿勢生成部をさらに備え、
前記把持姿勢選択部は、前記初期姿勢に基づく評価からは把持姿勢を選択することができなかったとき、前記初期姿勢にかえて前記中間姿勢を用いて、前記複数の把持姿勢の候補のそれぞれと前記中間姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択する、
請求項１または２記載の制御装置。
【請求項４】
前記ロボットが有する各軸の速度を含む仕様情報を格納するロボット仕様データ保持部をさらに備え、
前記把持姿勢選択部は、前記ロボット仕様データ保持部に格納された前記仕様情報を用いて、前記ロボットの動作時間も考慮して前記複数の把持姿勢の候補を評価する、
請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
前記初期姿勢として、前記ロボットから取得した前記ロボットの現在の姿勢を用いる、
請求項１から４のいずれか１項に記載の制御装置。
【請求項６】
前記ロボットのエンドエフェクタと当該エンドエフェクタによって把持される把持対象物との相対的な関係を格納する把持情報保持部と、
センサから取得された把持対象物の位置及び向きと、前記把持情報保持部に格納された前記エンドエフェクタと前記把持対象物との相対的な関係とに基づいて、把持姿勢の候補を複数算出して、前記把持姿勢受付部に渡す把持姿勢算出部と、をさらに備える
請求項１から５のいずれか１項に記載の制御装置。
【請求項７】
前記ロボットはシミュレータを含む、
請求項１から６のいずれか１項に記載の制御装置。
【請求項８】
ロボットが把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボットを制御するための制御装置による制御方法であって、
前記ロボットが前記把持対象物を把持することのできる把持姿勢の候補を複数受け付けるステップと、
前記複数の把持姿勢の候補のそれぞれと、前記ロボットの初期姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択するステップと、
前記初期姿勢から前記選択された把持姿勢までの間の前記ロボットのモーションを生成するステップと、
を備える制御方法。
【請求項９】
ロボットが把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボットを制御するためのコンピュータに、
前記ロボットが前記把持対象物を把持することのできる把持姿勢の候補を複数受け付けるステップと、
前記複数の把持姿勢の候補のそれぞれと、前記ロボットの初期姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択するステップと、
前記初期姿勢から前記選択された把持姿勢までの間の前記ロボットのモーションを生成するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ロボットの制御装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、ロボットに動作の始点となる初期の姿勢（初期姿勢）と動作の終点となる目標の姿勢（目標姿勢）を与え、当該初期姿勢から目標姿勢までの間のモーションを自動的に生成する手法が知られている。
【０００３】
特許文献１には、移動体が把持対象物を把持して運搬するために、当該移動体の移動経路を探索する経路探索装置において、把持位置の候補が複数入力されると、順次、初期位置と把持位置の各候補とを結ぶ移動経路の生成を試み、移動経路の生成に成功した候補の中から把持位置を決定することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５９６２５６０号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ロボットを初期位置から目標位置まで移動させる移動経路や、ロボットを初期姿勢から目標姿勢まで動作させるモーションを自動的に生成する処理には、様々な手法を用いることができるが、計算負荷が低く、移動経路やモーション生成の算出可能性の高い手法が比較的よく用いられている。しかしそれらの手法においても、ロボットの初期姿勢と目標姿勢によっては、モーション生成が完了するまでの処理時間が長くかかる場合がある。
そのため、特許文献１に記載された経路探索装置では、把持位置の候補が複数ある場合に、把持位置の候補ごとに、移動経路の生成処理を並行して実行することにより、全体として処理時間を短縮しようとするものであるが、移動経路の生成処理を並行して同時に実行するため、移動経路を生成するための計算負荷が高くなっていた。
【０００６】
そこで、本発明は、ロボットが把持対象物を把持するための把持姿勢の候補が複数あるときに、モーション生成処理を並行して実行することなく、モーション生成の処理時間を短縮できる技術を提供する。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る制御装置は、ロボットが把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボットを制御する。この制御装置は、ロボットが把持対象物を把持することのできる把持姿勢の候補を複数受け付ける把持姿勢受付部と、複数の把持姿勢の候補のそれぞれと、ロボットの初期姿勢とに基づいて、複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、複数の把持姿勢の候補の中から把持姿勢を選択する把持姿勢選択部と、初期姿勢から選択された把持姿勢までの間のロボットのモーションを生成するモーション生成部と、を備える。
【０００８】
この態様によれば、把持対象物の把持姿勢を決定する際に、少なくとも初期姿勢と把持姿勢候補とに基づいて各把持姿勢候補を評価することによって、複数の把持姿勢候補の中から適切な把持姿勢を選択することができる。これにより、モーション生成処理を実行することなく、初期姿勢から把持姿勢までの間のモーション生成に要する処理時間を短縮することができる。
【０００９】
なお、本開示において、「モーション」とは、ロボットが動作を開始する始点となる姿勢（以下「開始姿勢」ともいう。）から、動作を終了する終点となる姿勢（以下「終了姿勢」ともいう。）までの動作のことを言うものであるが、当該動作によってロボットが開始姿勢から終了姿勢に至るまでの経路を示すこともある。また、「動作計画」ないし「経路計画」とは、ロボットの開始姿勢と終了姿勢が与えられたときに、実空間上でロボット自身や障害物と干渉することなく、開始姿勢から終了姿勢まで動作するための指令値を作成することである。
【００１０】
また、ロボットは制御用のパラメータを与えられることにより動作する。例えば、多関節ロボットの場合、各ジョイントの角度が制御用パラメータとして与えられることにより、ロボットは動作する。本開示において、ロボットの「姿勢」とは、ロボットに制御用パラメータ（多関節ロボットならば各ジョイントの角度）が与えられたときのロボットの幾何的な体勢のことを言う。また、ロボットにある姿勢をとらせるための制御用パラメータの集合のこと、「姿勢」と呼ぶこともある。
【００１１】
本開示の他の態様に係る制御装置は、ロボットが把持対象物を把持して所定の配置位置まで運搬するためのモーションを生成し、当該モーションに基づいて前記ロボットを制御する。この制御装置は、ロボットが把持対象物を把持することのできる把持姿勢の候補を複数受け付ける把持姿勢受付部と、複数の把持姿勢の候補のそれぞれと、ロボットの初期姿勢及び把持対象物を配置位置に配置することのできる配置姿勢とに基づいて、複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、複数の把持姿勢の候補の中から把持姿勢を選択する把持姿勢選択部と、初期姿勢から選択された把持姿勢までの間のロボットのモーションを生成し、さらに、選択された把持姿勢から配置姿勢までの間のロボットのモーションを生成するモーション生成部と、を備える。
【００１２】
この態様によれば、把持対象物の把持姿勢を選択する際に、少なくとも初期姿勢と把持姿勢候補と配置姿勢とに基づいて各把持姿勢候補を評価することによって、複数の把持姿勢候補の中から適切な把持姿勢候補を選択することができる。これにより、モーション生成処理を実行することなく、初期姿勢から把持姿勢を経て配置姿勢に至るまでの間のモーション生成に要する処理時間を短縮することができる。
【００１３】
上記各態様において、初期姿勢と複数の把持姿勢の候補とに基づいて中間姿勢を生成する中間姿勢生成部をさらに備え、把持姿勢選択部は、初期姿勢に基づく評価からは把持姿勢を選択することができなかったとき、初期姿勢にかえて中間姿勢を用いて、複数の把持姿勢の候補のそれぞれと中間姿勢とに基づいて、複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、複数の把持姿勢の候補の中から把持姿勢を選択してもよい。
【００１４】
この態様によれば中間姿勢を用いて複数の把持姿勢の候補を評価することにより、適切な把持姿勢を選択することができる。これにより、初期姿勢からは適切な把持姿勢を選択できない場合であっても、適切な把持姿勢候補を絞り込むことができるため、初期姿勢から適切な把持姿勢までのモーションをより確実に生成することができるようになる。
【００１５】
上記各態様において、ロボットが有する各軸の速度を含む仕様情報を格納するロボット仕様データ保持部をさらに備え、把持姿勢選択部は、ロボット仕様データ保持部に格納された仕様情報を用いて、ロボットの動作時間も考慮して前記複数の把持姿勢の候補を評価してもよい。
【００１６】
この態様によればロボットが有する各軸の速度を含む仕様情報を用いて把持姿勢を選択することにより、ロボットの動作時間も考慮したモーションを生成できるようになる。
【００１７】
上記各態様において、初期姿勢として、ロボットから取得した前記ロボットの現在の姿勢を用いてもよい。
【００１８】
この態様によれば、ロボットの現在の姿勢を初期姿勢として使用することで、実用性を損ねずにユーザの入力の負担を減らすことができる。
【００１９】
上記各態様において、ロボットのエンドエフェクタと当該エンドエフェクタによって把持される把持対象物との相対的な関係を格納する把持情報保持部と、センサから取得された把持対象物の位置及び向きと、前記把持情報保持部に格納された前記エンドエフェクタと前記把持対象物との相対的な関係とに基づいて、把持姿勢の候補を複数算出して、前記把持姿勢受付部に渡す把持姿勢算出部と、をさらに備えてもよい。
【００２０】
この態様によれば、把持姿勢の候補が、把持情報保持部に登録されたエンドエフェクタと把持対象物との相対的関係と当該把持対象物の位置及び向きとに基づいて算出されるため、実用性を損ねずにユーザの入力の負担を減らすことができる。
【００２１】
上記各態様において、ロボットはシミュレータであってもよい。この態様によれば、ロボット実機が無くてもモーションを作成することができる。
【００２２】
本開示の一態様に係る制御方法は、ロボットが把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいてロボットを制御するための制御装置による制御方法である。この方法は、ロボットが把持対象物を把持することのできる把持姿勢の候補を複数受け付けるステップと、複数の把持姿勢の候補のそれぞれと、ロボットの初期姿勢とに基づいて、複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、複数の把持姿勢の候補の中から把持姿勢を選択するステップと、初期姿勢から選択された把持姿勢までの間のロボットのモーションを生成するステップと、を備える。
【００２３】
この態様によれば、把持対象物の把持姿勢を決定する際に、少なくとも初期姿勢と把持姿勢候補とに基づいて各把持姿勢候補を評価することによって、複数の把持姿勢候補の中から適切な把持姿勢を選択することができる。これにより、モーション生成処理を実行することなく、初期姿勢から把持姿勢までの間のモーション生成に要する処理時間を短縮することができる。
【００２４】
本開示の一態様に係るプログラムは、ロボットが把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボットを制御するためのコンピュータに、ロボットが把持対象物を把持することのできる把持姿勢の候補を複数受け付けるステップと、複数の把持姿勢の候補のそれぞれと、ロボットの初期姿勢とに基づいて、複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、複数の把持姿勢の候補の中から把持姿勢を選択するステップと、初期姿勢から選択された把持姿勢までの間のロボットのモーションを生成するステップと、を実行させる。
【００２５】
この態様によれば、把持対象物の把持姿勢を決定する際に、少なくとも初期姿勢と把持姿勢候補とに基づいて各把持姿勢候補を評価することによって、複数の把持姿勢候補の中から適切な把持姿勢を選択することができる。これにより、モーション生成処理を実行することなく、初期姿勢から把持姿勢までの間のモーション生成に要する処理時間を短縮することができる。
【発明の効果】
【００２６】
本発明によれば、ロボットが把持対象物を把持するための把持姿勢の候補が複数あるときに、モーション生成処理を並行して実行することなく、モーション生成の処理時間を短縮できる技術を提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本実施形態に係るロボット制御システム１の概略構成を示す図である。
【図２】第１実施形態に係る制御装置１０のハードウェア構成の一例を示す図である。
【図３】第１実施形態に係る制御装置１０の機能ブロックの一例を示す図である。
【図４】初期姿勢に対して、把持姿勢候補が２つある場合を例示した図である。
【図５】初期姿勢と把持姿勢候補をコンフィギュレーション空間上にサンプリングした図である。
【図６】初期姿勢に対して、把持姿勢候補が２つあり、ワーク把持後に配置位置まで運搬する場合を例示した図である。
【図７】初期姿勢と把持姿勢候補と配置姿勢とをコンフィギュレーション空間上にサンプリングした図である。
【図８】第１実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。
【図９】第２実施形態に係る制御装置１０の機能ブロックの一例を示す図である。
【図１０】第２実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。
【図１１】第３実施形態に係る制御装置１０の機能ブロックの一例を示す図である。
【図１２】初期姿勢と把持姿勢の２つの候補とをコンフィギュレーション空間上にサンプリングした図である。
【図１３】第３実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。
【図１４】第４実施形態に係る制御装置１０の機能ブロックの一例を示す図である。
【図１５】第４実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。
【図１６】第５実施形態に係る制御装置１０の機能ブロックの一例を示す図である。
【図１７】第５実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下、本発明の一側面に係る実施の形態を図面に基づいて説明する。本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更又は改良され得るととともに、本発明には、その等価物も含まれる。なお、同一符号は、同一の構成要素を示すものとし、重複する説明は省略する。
【００２９】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態（以下「第１実施形態」ともいう。）に係るロボット制御システム１の概略構成を示す図である。同図に示すとおり、ロボット制御システム１は、制御装置１０と、制御装置１０により制御されるロボット２０とを備える。
【００３０】
制御装置１０は、ロボット２０の動作を制御するコンピュータシステムである。制御装置１０は、例えば、ロボット２０がワークを把持して運搬するためのモーションを生成し、当該モーションに基づいてロボット２０を制御するものであってよい。制御装置１０の詳細は後述する。
【００３１】
ロボット２０は、例えば、多関節ロボット、直交ロボット、又はパラレルリンクロボットなどのロボットであってよいが、これに限られない。ロボット２０は、自律的に動作するマニピュレータとして動作し、例えば、部品の組み立て、搬送、塗装、検査、研磨、又は洗浄などの用途に用いることができるものであってよい。
【００３２】
本実施形態において、制御装置１０は、ロボット２０の初期姿勢と目標姿勢が与えられたとき、当該初期姿勢から目標姿勢までの間のモーションを生成する。本実施形態では、初期姿勢から目標姿勢に至る動作の途中において、ロボット２０が取り得る姿勢の候補（以下「候補姿勢」ともいう。）が複数与えられたとき、制御装置１０は、複数の候補姿勢をそれぞれ評価し、評価結果に基づいて、どの候補姿勢を選択することが適切であるかを、モーション生成処理を実行する前に判断する。制御装置１０は、このようにして選択された候補姿勢を用いて、初期姿勢から、選択された候補姿勢を経て目標姿勢に至るまでの間のモーションを生成する。
【００３３】
ここで、複数の候補姿勢は、初期姿勢から目標姿勢に至る動作の途中に限られず、目標姿勢が複数の候補姿勢を含んでもよいし、また、初期姿勢が複数の候補姿勢を含んでもよい。目標姿勢が複数の候補姿勢を含む場合、制御装置１０は、複数の候補姿勢の中から選択された候補姿勢を目標姿勢とし、初期姿勢から選択された候補姿勢に至るまでのモーションを生成する。また、初期姿勢が複数の候補姿勢を含む場合、制御装置１０は、選択された候補姿勢を初期姿勢とし、そこから目標姿勢に至るまでのモーションを生成する。
【００３４】
次に、候補姿勢の評価について説明する。本実施形態において、制御装置１０は、少なくともロボット２０の姿勢を引数として含む所定の評価関数に基づいて、当該候補姿勢の評価値を算出することによって、各候補姿勢を評価してよい。例えば、制御装置１０は、初期姿勢と候補姿勢と目標姿勢とを引数とする評価関数に基づいて、各候補姿勢の評価値を算出し、評価値が所定の基準を満たす候補姿勢を適切な姿勢であると判断し、選択してよい。また、別の評価の例として、初期姿勢と候補姿勢を引数とする第１の評価関数及び当該候補姿勢と目標姿勢を引数とする第２の評価関数に基づいて、各候補姿勢の第１及び第２の評価値を算出し、これらが所定の基準を満たす候補姿勢を、適切な姿勢であると判断し、選択してもよい。なお、目標姿勢が複数の候補姿勢を含む場合は、第１の評価関数を利用すればよく、初期姿勢が複数の候補姿勢を含む場合は、第２の評価関数を利用すればよい。また、評価関数は、例えば、より適切な候補姿勢の評価値が低くなるものであってもよいが、これに限らず、種々の評価関数を用いることができる。
【００３５】
評価関数は、例えば、初期姿勢と候補姿勢の間のノルム及び候補姿勢と目標姿勢の間のノルムを含むものであってよい。ここで、ノルムとは、コンフィギュレーション空間を含む所定のベクトル空間における姿勢間の距離を与える任意の関数であってよい。なお、ここでいう「距離」は、ユークリッド距離に限られない。「コンフィギュレーション」とはロボットの姿勢のことであり、ロボットに制御用パラメータが与えられたときのロボットの幾何的な体勢、または、ロボットにある姿勢をとらせるための制御用パラメータの集合のことであり、これら制御パラメータを自由度ごとに座標軸にとったベクトル空間のことをコンフィギュレーション空間と呼ぶ。また、評価関数は、所定の姿勢でワークを把持する際の把持の成功率、初期姿勢から目標姿勢までの動作の処理時間、その他任意の観点に基づく所定の評価をすることのできる関数を採用してよい。また、評価関数は、ロボット２０の仕様に関する情報（例えば、各ジョイントの回転速度や可動域等）を引数として含んでもよい。
【００３６】
これにより、例えば、制御装置１０は、把持姿勢の候補が複数与えられたとき、ロボット２０の初期姿勢と把持姿勢候補とに基づいて、各把持姿勢候補を、姿勢間のコンフィギュレーション空間中の距離などを用いて、把持の成功率、処理時間等の観点に基づく所定の評価をすることにより、モーション生成処理を実行することなく、適切な把持姿勢を選択することができる。その後、制御装置１０は、選択された把持姿勢を用いて、モーションを生成する。
【００３７】
なお、複数の候補姿勢は、離散的に与えられてもよいし、連続的に与えられてもよい。また、初期姿勢から目標姿勢に至るまでの間に、複数の候補姿勢が、複数セット与えられてもよい。例えば、複数の候補姿勢が２セット与えられる場合、制御装置１０は、まず、所定の評価関数に基づいて、第１のセットの中から第１の候補姿勢を選択し、第２のセットの中から第２の候補姿勢を選択する。その後、制御装置１０は、初期姿勢から、選択された第１の候補姿勢及び第２の候補姿勢を経て目標姿勢に至るまでの間のモーションを生成する。
【００３８】
ここで、ワークは、本発明の「把持対象物」の一例である。候補姿勢は、本発明の「把持姿勢の候補」の一例である。目標姿勢は、本発明の「配置姿勢」の一例であってもよいし、目標姿勢は「配置姿勢」を含む概念であると考えてもよい。
【００３９】
§２  構成例
＜ロボット２０の構成＞
図１に示すように、第１実施形態において、ロボット２０は、ベース２２と、ワークを把持するためのエンドエフェクタ２４と、ベース２２とエンドエフェクタ２４を接続するアーム２６とを備えるものとする。アーム２６は、複数のリンクＬｋ（ｋは自然数）と、リンク同士を連結する複数のジョイントＪｉ（ｉは自然数）により構成される。リンクＬｋには、ジョイントＪｉを駆動するための図示しないモータが内蔵され、後述するモーション生成部１５０からロボット２０に対して出力される制御信号に基づいて制御される。また、各ジョイントＪｉには、回転角度等を検出するための図示しない角度センサが内蔵されていてもよく、計測された角度値等は、制御装置１０に対して出力される構成となっている。
【００４０】
エンドエフェクタ２４は、アーム２６の先端に取り付けられており、指状の把持具を開閉させることによりワークを把持できるように構成されている。エンドエフェクタ２４は複数の指の開閉による把持機構を持つグリッパのほか、ワークを吸着する機構を持つものやそれらの機構の組み合わせによるもの、または特別な機構を持たなくとも、たとえば針や板状の治具等によってワークを保持できるものであってもよい。また、ロボット２０上又はロボット２０の周辺に、後述するセンサ３０（例えば、カメラ等）を設けて、ワークを検出できるようにしてもよい。
【００４１】
なお、ロボット２０は、ファクトリーオートメーションに用いられる産業ロボットに限定されるものではなく、例えば、サービス業に用いられるロボット（例えば、オペレーティングロボット、医療用ロボット、掃除ロボット、レスキューロボット、セキュリティロボットなど）やその他のロボットであってもよい。また、実際の作業に用いられるロボット実機のかわりに、シミュレータの中に設定された仮想のロボットであってもよい。シミュレータを用いて、モーションを確定するための試行演習をする際に、本実施形態に係る把持姿勢選択手法を適用して、最適なモーションを効率良く生成することが可能である。
【００４２】
＜制御装置１０のハードウェア構成＞
図２は、第１実施形態に係る制御装置１０のハードウェア構成の一例を示す図である。同図に示すとおり、制御装置１０は、その物理的構成として、入力装置１１と、表示部１２と、外部インタフェース（Ｉ／Ｆ）１３と、メモリ１４と、ＣＰＵ（Central Processing Unit）１５と、記憶装置１６とを備える。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。なお、本例では制御装置１０が一台のコンピュータで構成される場合について説明するが、制御装置１０は、複数のコンピュータを用いて実現されてもよい。また、図２で示す構成は一例であり、制御装置１０はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【００４３】
入力装置１１は、ユーザからデータの入力を受け付けるものであり、例えば、キーボード、マウス及びタッチパネルを含んでよい。表示部１２は、ＣＰＵ１５による演算結果を視覚的に表示するものであり、例えば、ＬＣＤ（Liquid Crystal Display）により構成されてよい。
【００４４】
外部Ｉ／Ｆ１３は、制御装置１０を他の機器に接続するインタフェースである。外部Ｉ／Ｆ１３は、ロボット２０やセンサ３０と、例えば専用の通信インタフェースやイーサネット（登録商標）により接続されて、ロボット２０やセンサ３０から情報を受信したり、ロボット２０の動作を制御するための制御データを送信したりしてよい。
【００４５】
メモリ１４は、データの書き換え及び／又は読み出しが可能な記憶部であり、例えば半導体記憶素子で構成されてよい。メモリ１４は、データの書き換えが可能なＲＡＭ（Random Access Memory）とデータの読み出しが可能なＲＯＭ（Read Only Memory）によって構成されてもよい。メモリ１４は、ＣＰＵ１５が実行する制御プログラム、入力装置１１や外部Ｉ／Ｆ１３から入力される入力データ及び表示部１２や外部Ｉ／Ｆ１３に出力される出力データといったデータを記憶してよい。なお、これらは例示であって、メモリ１４には、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
【００４６】
ＣＰＵ１５は、メモリ１４に記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。ＣＰＵ１５は、複数の把持姿勢の候補を評価していずれか１つを選択する制御プログラムや、選択された把持姿勢に基づいてロボット２０のモーションを生成し、生成されたモーションに基づいてロボット２０の動作を制御する制御プログラムを実行する演算部である。ＣＰＵ１５は、入力装置１１や外部Ｉ／Ｆ１３から種々の入力データを受け取り、入力データの演算結果を表示部１２に表示したり、外部Ｉ／Ｆ１３から出力したり、メモリ１４や記憶装置１６に格納したりする。
【００４７】
本実施形態における制御装置１０では、ＣＰＵ１５が制御プログラムを実行することにより、ＣＰＵ１５によって、後述する把持姿勢受付部１２０、把持姿勢選択部１３０、開始終了姿勢入力部１４０及びモーション生成部１５０の動作が実現される。制御プログラムは、メモリ１４や記憶装置１６等のコンピュータ読み取り可能な記憶媒体に記憶されて提供されてもよいし、外部Ｉ／Ｆ１３により接続される通信ネットワークを介して提供されてもよい。ＣＰＵ１５によって制御プログラムを実行する際は、制御プログラムをメモリ１４内のＲＡＭに展開し、ＲＡＭに展開された制御プログラムをＣＰＵ１５によって解釈及び実行することとしてよい。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、制御装置１０は、ＣＰＵ１５とメモリ１４が一体化したＬＳＩ（Large-Scale Integration）を備えていてもよい。
【００４８】
＜制御装置１０の機能構成＞
次に、制御装置１０の構成について説明する。図３は、第１実施形態に係る制御装置１０の機能ブロックの一例を示す図である。同図に示すとおり、制御装置１０は、把持姿勢受付部１２０と、把持姿勢選択部１３０と、開始終了姿勢入力部１４０と、モーション生成部１５０とを備える。また、同図中、入力装置１１は、ユーザからデータの入力を受け付けるための物理的構成であり、ロボット２０は、制御装置１０により制御される対象であることは、上述のとおりである。
【００４９】
入力装置１１は、ロボット２０の初期姿勢、把持姿勢の候補及び／又は配置姿勢を入力することができる。本実施形態において、ユーザは、入力装置１１を用いて、表示部１２に表示されるロボット２０の姿勢をＧＵＩ（Graphical User Interface）により変化させることにより、所望の姿勢を設定することができるように構成されてもよい。
【００５０】
なお、ロボット２０の姿勢は、ＧＵＩを用いて特定しなくてもよい。たとえば、ユーザは、入力装置１１であるキーボードを用いて、直接、ロボット２０の各ジョイントの角度の集合を入力して、姿勢を特定することもできる。その場合、入力された角度の情報に基づいて、ロボット２０の姿勢を表示部１２に表示させてもよい。あるいは、ユーザがＧＵＩ等により特定したロボット２０の手先部の空間座標（x, y, z, roll, pitch, yaw）に基づいて、キネマティクス情報を用いて、ロボット２０の各ジョイントの角度を算出することで、姿勢に関する情報を取得するように構成してもよい。
【００５１】
把持姿勢受付部１２０は、ロボット２０がワークを把持することのできる把持姿勢の候補を受け付ける。一般に、ある位置にあるワークを把持するためのロボット２０の姿勢（把持姿勢）は複数存在する。そこで、把持姿勢受付部１２０は、複数の把持姿勢の候補を受け付けることができる。把持姿勢受付部１２０は、ユーザが入力装置１１を用いて入力した把持姿勢を候補として受け付けてもよい。受け付けられた複数の把持姿勢の候補は、把持姿勢選択部１３０に通知される。
【００５２】
把持姿勢選択部１３０は、複数の把持姿勢の候補をそれぞれ評価し、各候補それぞれの評価に基づいて、複数の候補の中から適切な把持姿勢を１つ選択する。例えば、把持姿勢選択部１３０は、ロボット２０の初期姿勢と把持姿勢とに基づいて、姿勢間のコンフィギュレーション空間中の距離などを用いて、把持の成功率、処理時間等の観点に基づく把持姿勢の評価を行うことができる。例えば、把持成功率に基づく優先度が設定されており、優先度が高いものを適切な把持姿勢として選択してもよい。このとき、把持姿勢選択部１３０は、ユーザから入力された初期姿勢と、把持姿勢受付部１２０から通知された複数の把持姿勢の候補とを比較して、各候補を評価することにより、適切な把持姿勢を選択する。選択された把持姿勢は、開始終了姿勢入力部に通知される。把持姿勢選択部１３０における具体的な評価例については、後述する。
【００５３】
開始終了姿勢入力部１４０は、モーション生成部１５０に対して、ロボット２０の動作計画における開始姿勢と終了姿勢を入力する。本実施形態では、例えば、ユーザが入力装置１１から入力した初期姿勢を開始姿勢とし、把持姿勢選択部１３０で選択された把持姿勢を終了姿勢として、モーション生成部１５０に通知する。
【００５４】
モーション生成部１５０は、開始終了姿勢入力部から通知された開始姿勢から終了姿勢までの間のロボット２０のモーションを生成する。上述の例のように、開始姿勢及び終了姿勢として、ユーザが入力装置１１から入力した初期姿勢及び把持姿勢選択部１３０で選択された把持姿勢が与えられたとき、モーション生成部１５０は、初期姿勢から把持姿勢までの間のロボット２０のモーションを生成する。なお、モーションを生成するアルゴリズムは、既知の手法や今後開発される手法を採用し得る。例えば、既知の手法として、確率的ロードマップ法、軌跡最適化法、セル分解法、ポテンシャル法などが挙げられる。
【００５５】
§３  動作例
次に、図４から図７を用いて、把持姿勢選択部１３０における把持姿勢の候補（以下「把持姿勢候補」や単に「候補」ともいう。）の評価例について説明する。
【００５６】
＜初期姿勢から把持姿勢まで＞
図４は、初期姿勢に対して、把持姿勢候補が２つある場合を例示した図である。ここでは、説明のため、ジョイントが２つの２軸ロボットアームを前提に説明するが、ジョイントの数を２つに限定する趣旨ではなく、ジョイントの数は任意である。この例では、図４（Ａ）に示すとおり、初期姿勢４１は、第１のジョイントＪ１の角度が１０度、第２のジョイントＪ２の角度が１０度であるものとする。なお、理解を容易にするため、以後、第１のジョイントＪ１と第２のジョイントＪ２の角度を、（Ｊ１，Ｊ２）＝（１０°，１０°）などと表す。
【００５７】
このとき、ワークを把持できる把持姿勢候補が、図４（Ｂ）に示すとおり２つあるものとする。第１候補４３ａは、（Ｊ１，Ｊ２）＝（２０°，５０°）であり、第２候補４３ｂは、（Ｊ１，Ｊ２）＝（７０°，−５０°）である。
【００５８】
図５は、初期姿勢と把持姿勢候補をコンフィギュレーション空間上にサンプリングした図である。同図においては、横軸が第１のジョイントＪ１の角度、縦軸が第２のジョイントＪ２の角度からなるベクトル空間に、初期姿勢４１と、２つの把持姿勢候補４３ａ，４３ｂがプロットされている。開始姿勢から終了姿勢までの間のモーションを生成する処理において、開始姿勢と終了姿勢の値が近いほうが、処理の成功率が高く、処理時間も短くなるという傾向がある。そこで、例えば、把持姿勢選択部１３０は、図５において初期姿勢４１に距離がより近い第１候補４３ａをより適切な把持姿勢であるものと評価して、第１候補４３ａを把持姿勢として選択する。
【００５９】
各把持姿勢候補を評価するための評価式としては、任意の評価式を採用し得るが、例えば、初期姿勢と把持姿勢候補の距離に基づく評価式として次の式を用いてもよい。
【数１】
2019155509.tif 000003
ここで、ｊｓ，ｉは初期姿勢のジョイントＪｉのジョイント値、ｊｃ，ｉはある把持姿勢候補のジョイントＪｉのジョイント値を表す。ここでは、ジョイント値は角度である。把持姿勢選択部１３０は、各把持姿勢候補ごとにこの評価値Ｃを算出し、評価値Ｃが最小となるもの、閾値以下のもの、などの条件を満たす把持姿勢候補を選択する。また、初期姿勢と把持姿勢候補の距離に基づく評価式として、ユークリッド距離などを使用してもよい。
【００６０】
また、評価値については、ジョイントの値域［ｊｉｍｉｎ，ｊｉｍａｘ］やジョイントの動作速度ｖｉを考慮した、以下のような変形も考えられる。
【数２】
2019155509.tif 000004
【数３】
2019155509.tif 000005
ここで、ジョイントの値域［ｊｉｍｉｎ，ｊｉｍａｘ］とは、例えば、ジョイントＪｉの可動域（可動する角度の下限ｊｉｍｉｎと上限ｊｉｍａｘ）であり、ジョイントの動作速度ｖｉとは、ジョイントＪｉの回転速度である。Ｃｎｏｒｍはロボットの動きやすさ、Ｃｔｉｍｅはロボットの動作にかかる時間も考慮に入れた評価値であり、例えば、後者はロボットの動作時間を勘案して把持姿勢の選択する際に用いることができる。
【００６１】
＜初期姿勢から把持姿勢を経て配置姿勢まで＞
次に、ロボット２０がワークを把持した後、所定の配置位置まで運搬する場合の、把持姿勢の選択について説明する。
【００６２】
このとき、把持姿勢選択部１３０は、ロボット２０の初期姿勢と把持姿勢候補と配置姿勢とに基づいて、把持姿勢候補の評価を行うことができる。また、開始終了姿勢入力部１４０は、例えば、ユーザが入力装置１１から入力した初期姿勢と配置姿勢を受け取り、さらに、把持姿勢選択部１３０から選択された把持姿勢を受け取ると、まず、初期姿勢を開始姿勢とし、選択された把持姿勢を終了姿勢として、モーション生成部１５０に通知して、初期姿勢から選択された把持姿勢までのモーションを生成させた後、次に、選択された把持姿勢を開始姿勢とし、配置姿勢を終了姿勢として、モーション生成部１５０に通知して、選択された把持姿勢から配置姿勢までのモーションを生成させる。
【００６３】
図６は、初期姿勢に対して、把持姿勢候補が２つあり、ワーク把持後に配置位置まで運搬する場合を例示した図である。ここでも、図４と同様に、説明のため、２軸ロボットアームを前提に説明するが、ジョイントの数はこれに限定されず、任意である。
【００６４】
図６（Ａ）及び（Ｂ）に示すとおり、初期姿勢４１と２つの把持姿勢候補４３ａ，４３ｂは、図４の例と同じである。この例ではさらに、ワークを把持した後、図６（Ｃ）に示すとおり、（Ｊ１，Ｊ２）＝（７０°，−７０°）によって表される配置姿勢４５までロボット２０を動作させて、ワークを配置位置まで運搬する。
【００６５】
図７は、初期姿勢と把持姿勢候補と配置姿勢とをコンフィギュレーション空間上にサンプリングした図である。同図においては、図５と同様、横軸が第１のジョイントＪ１の角度、縦軸が第２のジョイントＪ２の角度からなるベクトル空間に、初期姿勢４１と、２つの把持姿勢候補４３ａ，４３ｂに加え、配置姿勢４５がプロットされている。このとき、把持姿勢選択部１３０は、初期姿勢４１から第１候補４３ａを経由して配置姿勢４５に至る経路と、初期姿勢４１から第２候補４３ｂを経由して配置姿勢４５に至る経路とで、２つの把持姿勢候補４３ａ，４３ｂをそれぞれ評価する。
【００６６】
例えば、数１と同様の距離に基づく評価式を用いる場合、初期姿勢と把持姿勢候補に数１を適用して算出した第１の評価値と、把持姿勢候補と配置姿勢に数１を適用した算出した第２の評価値の和を取ることによって、初期姿勢から把持姿勢候補を経由して配置姿勢に至る経路全体の評価値を求めてもよい。
【００６７】
この例では、第１候補４３ａを経由した場合の距離に基づく評価値Ｃ１は、
Ｃ１＝初期姿勢４１と第１候補４３ａの距離＋第１候補４３ａと配置位置の距離
＝｛｜２０−１０｜＋｜５０−１０｜｝＋｛｜７０−２０｜＋｜−７０−５０｜｝
＝２２０
であり、他方、第２候補４３ｂを経由した場合の距離に基づく評価値Ｃ２は、
Ｃ２＝初期姿勢４１と第２候補４３ｂの距離＋第２候補４３ｂと配置位置の距離
＝｛｜７０−１０｜＋｜−５０−１０｜｝＋｛｜７０−７０｜＋｜−７０＋５０｜｝
＝１４０
である。したがって、初期姿勢から配置姿勢までの経路全体では、図４及び図５に示す例と異なり、第２候補４３ｂの方がより高い評価となる。したがって、この例では、第２候補４３ｂが把持姿勢として選択される。
【００６８】
なお、図７において、初期姿勢４１から２つの候補４３ａ，４３ｂの区間及び２つの候補４３ａ，４３ｂから配置姿勢４５までの区間のうち、第１姿勢４３ａから配置姿勢４５までの区間の距離が最長となっている。一般に、コンフィギュレーション空間における距離が長くなるとモーションを生成するための計算に要する処理時間が指数関数的に伸びることから、配置姿勢まで含む経路全体でみれば、最長の区間を有する第１姿勢４３ａの方が、モーションを生成できないリスクが高いという一般的な理解とも整合する。
【００６９】
＜第１実施形態のフローチャート＞
次に、第１実施形態における処理フローを説明する。
【００７０】
図８は、第１実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。同図に示すとおり、まず、ユーザは入力装置１１を用いて、ロボット２０の初期姿勢を入力する（ステップＳ１０）。また、ユーザは、必要に応じて配置姿勢を入力してもよい。入力された初期姿勢は、把持姿勢選択部１３０と開始終了姿勢入力部１４０に通知される。また、配置姿勢が入力されたとき、配置姿勢は、把持姿勢選択部１３０と開始終了姿勢入力部１４０に通知される。
【００７１】
続いて、ユーザは入力装置１１を用いて、ロボット２０がワークを把持するための把持姿勢候補を複数入力する（ステップＳ２０）。入力された複数の把持姿勢候補は、把持受付部１２０を介して把持姿勢選択部１３０に通知される。
【００７２】
把持姿勢選択部１３０は、初期姿勢と把持姿勢候補とに基づいて、また、配置姿勢が通知されたときはさらに配置姿勢にも基づいて、各把持姿勢候補を評価し、評価値に基づいてより適切な把持姿勢を選択する（ステップＳ３０）。選択された把持姿勢は、開始終了姿勢入力部１４０に通知される。
【００７３】
開始終了姿勢入力部１４０は、初期姿勢と選択された把持姿勢をモーション生成部１５０に渡す。また、配置姿勢が通知されているときは、これに加えて、選択された把持姿勢と配置姿勢をモーション生成部１５０に渡す。モーション生成部１５０は、初期姿勢から選択された把持姿勢までのモーションを生成し、さらに、配置姿勢が通知されているときは、選択された把持姿勢から配置姿勢までのモーションも生成する（ステップＳ４０）。
【００７４】
そして、モーション生成部１５０は、生成されたモーションに基づいて、ロボット２０の動作を制御する（ステップ５０）。
【００７５】
こうして、本実施形態によれば、モーション生成部１５０で把持姿勢を含むモーションの生成処理を実施する前処理の段階で、初期姿勢から把持姿勢までの経路、又は、初期姿勢から把持姿勢を経由して配置姿勢に至るまでの経路全体で、複数の把持姿勢候補の中から、適切な把持姿勢を選択することができるため、モーション生成に要する処理時間を短縮することができる。
【００７６】
§４  他の実施形態
＜第２実施形態＞
図９は、第２実施形態に係る制御装置１０の機能ブロックの一例を示す図である。第２実施形態は、第１実施形態に中間姿勢生成部１６０が追加されたものであり、中間姿勢生成部１６０以外の構成は、特に説明しない限り、第１実施形態と同様である。
【００７７】
把持姿勢選択部１３０が、複数の把持姿勢候補の中から適切な把持姿勢を見つけられなかったとき、中間姿勢生成部１６０に、初期姿勢と複数の把持姿勢候補を通知する。なお、把持姿勢選択部１３０が、適切な把持姿勢を見つけられない場合としては、例えば、各候補ごとに算出された評価値が、所定の閾値（把持位置として選択されるための最低ライン）をいずれも満たさない場合が挙げられる。
【００７８】
中間姿勢生成部１６０は、把持姿勢選択部１３０から初期姿勢と複数の把持姿勢候補を受け取ると、初期姿勢から中間姿勢まで、及び、中間姿勢から把持姿勢候補までの間で、いずれもモーションを生成できるような中間姿勢を生成する。例えば、中間姿勢生成部１６０は、初期姿勢と複数の把持姿勢候補間の各ジョイント値の中間値をとる姿勢を、中間姿勢として求めてもよい。その後、把持姿勢選択部１３０は、中間姿勢と複数の把持姿勢候補とを比較して、各候補ごとの評価値を算出し、より適切な把持姿勢を選択する。
【００７９】
図１０は、第２実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。第１実施形態と比べて、ステップＳ３２とＳ３４が追加されている。
【００８０】
ステップＳ３０で把持姿勢選択部１３０が複数の把持姿勢候補の中から適切なものを選択する際に、適切な把持姿勢候補の有無を判別し（ステップＳ３２）、適切な把持姿勢候補が無かったとき（ステップＳ３２：Ｎｏ）、中間姿勢生成部１６０が、中間姿勢を生成する（ステップＳ３４）。そして、中間姿勢を利用して、より適切な把持姿勢を選択する。ステップＳ３２で適切な把持姿勢候補が有る場合（ステップＳ３２：Ｙｅｓ）、その適切な把持姿勢候補に基づいて、また、ステップＳ３４で中間姿勢が生成された場合は、当該中間姿勢を利用して選択された把持姿勢候補に基づいて、モーションが生成される（ステップＳ４０）。
【００８１】
上述のとおり、モーション生成部１５０におけるモーションの生成処理の計算時間は、姿勢間の距離に対して指数関数的に増大する。第２実施形態によれば、モーション生成部１５０に初期姿勢と把持姿勢を渡して、初期姿勢から把持姿勢までのモーションを生成させるかわりに、一又は複数の把持姿勢に対して適切な中間姿勢を追加して、初期姿勢から中間姿勢までと、中間姿勢から把持姿勢までに分けて、それぞれでモーションを生成させることにより、モーション生成に要する処理時間を短縮することができる。また、ロボット２０の現在姿勢や目標姿勢からモーションを生成しようとすると成功率や処理速度が下がってしまう場合に、現在姿勢から中間姿勢まで、及び、中間姿勢から把持姿勢までのそれぞれで成功率や処理時間が短くなるような中間姿勢を追加することで、トータルの成功率や処理時間を向上できる。
【００８２】
＜第３実施形態＞
図１１は、第３実施形態に係る制御装置１０の機能ブロックの一例を示す図である。第３実施形態は、第１実施形態にロボット仕様データベース（ロボット仕様ＤＢ）１７０が追加されたものであり、ロボット仕様ＤＢ１７０以外の構成は、特に説明しない限り、第１実施形態と同様である。なお、ロボット仕様ＤＢ１７０は、本発明の「ロボット仕様データ保持部」の一例である。
【００８３】
ロボット仕様ＤＢ１７０には、ロボット２０の仕様に関する情報が格納されている。ロボット２０の仕様に関する情報としては、例えば、ロボット２０を構成する各リンクＬｎの長さや、各ジョイントＪｍの回転速度、可動域、トルク等が挙げられる。
【００８４】
把持姿勢選択部１３０は、ユーザから入力された初期姿勢と、把持姿勢受付部１２０から通知された複数の把持姿勢候補と、ロボット仕様ＤＢ１７０から読み出した仕様情報を勘案し、各把持姿勢候補を評価する。例えば、把持姿勢選択部１３０は、ロボット仕様ＤＢ１７０からジョイントＪｍの回転速度を読み出して、成功率と処理時間だけでなく、ロボット２０の動作時間まで考慮した評価を行うことで、ロボット２０の動作時間を考慮した把持姿勢を選択し、選択された把持姿勢を開始終了姿勢入力部１４０に通知する。
【００８５】
次に、ロボットの動作速度を考慮した評価について説明する。
図１２は、初期姿勢と把持姿勢の２つの候補とをコンフィギュレーション空間上にサンプリングした図である。同図に示す例において、初期姿勢５１は、（Ｊ１，Ｊ２）＝（０°，０°）である。また、把持姿勢の第１候補５３ａは、（Ｊ１，Ｊ２）＝（５０°，０°）であり、第２候補５３ｂは、（Ｊ１，Ｊ２）＝（２５°，２５°）であるものとする。
【００８６】
一般に、ロボットのジョイントＪｍの回転速度はトルクとのトレードオフであり、全て同じとは限らない。通常は、ベースに近い方がロボット自体の重量を考慮して高トルクとなっており、低速である。そのため、初期姿勢と把持姿勢候補のコンフィギュレーション空間中の距離が等しい場合でも、使用するジョイントの組み合わせによって動作時間が異なることがある。ロボット制御において、一般には、動作時間が短い方が望ましい。
【００８７】
図１２に示す例において、数１で示した距離に基づく評価式を用いると、第１候補５３ａの評価値Ｃ１は、Ｃ１＝｜５０−０｜＋｜０−０｜＝５０であり、第２候補５３ｂの評価値Ｃ２も、Ｃ２＝｜２５−０｜＋｜２５−０｜＝５０であり、同じ評価値となる。
【００８８】
ここで、ジョイントＪ１の回転速度が毎秒１０°であり、ジョイントＪ２の回転速度が毎秒２０°であるとする。このとき、数３で示した動作速度を考慮した評価式を用いると、第１候補５３ａと第２候補５３ｂの評価値Ｃ１，Ｃ２はそれぞれ、
Ｃ１＝ｍａｘ（｜５０−０｜／１０，｜０−０｜／２０）＝５秒
Ｃ２＝ｍａｘ（｜２５−０｜／１０，｜２５−０｜／２０）＝２．５秒
となり、第２候補５３ｂの方が、動作時間がより短くなる可能性が高く、有用であるといえる。したがって、この例で動作速度を考慮した評価式を用いる場合、把持姿勢選択部１３０は、第２候補５３ｂを把持姿勢として選択する。
【００８９】
このように、ロボットのジョイントの回転速度も考慮して把持姿勢を決定することにより、高速なジョイントを優先的に使用したモーションを生成して動作を高速に実行できるようになる。また、距離が等しい場合に限らず、距離と動作時間それぞれに重み付けをした評価式を用いることにより、成功率と動作時間の優先度を変更することも可能である。
【００９０】
図１３は、第３実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。第１実施形態と比べて、ステップＳ２５が追加されている。
【００９１】
把持姿勢選択部１３０は、ステップＳ２０でユーザが入力した複数の把持姿勢候補が通知された後、ロボット仕様ＤＢ１７０から、ロボット２０の仕様情報を読み出す（ステップＳ２５）。そして、把持姿勢選択部１３０は、読み出した仕様情報も考慮して、把持姿勢を選択する（ステップＳ３０）。
【００９２】
＜第４実施形態＞
図１４は、第４実施形態に係る制御装置１０の機能ブロックの一例を示す図である。第４実施形態は、ロボット２０から制御装置１０に、ロボット２０の現在の姿勢（現在姿勢）が通知されるほかは、特に説明しない限り、第１実施形態と同様である。
【００９３】
第４実施形態では、ロボット２０が、把持姿勢選択部１３０と開始終了姿勢入力部１４０に対して、ロボット２０の現在姿勢を、初期姿勢としてフィードバックする。把持姿勢選択部１３０は、ユーザが入力装置１１から入力した初期姿勢の代わりに、ロボット２０から受け取った現在姿勢を初期姿勢として、把持姿勢を選択する。また、開始終了姿勢入力部１４０は、ロボット２０から受け取った現在姿勢を初期姿勢として、モーション生成部１５０に渡して、モーションを生成させる。これにより、初期姿勢をユーザが与える必要なく、ロボット２０の現在の姿勢を使用することで、実用性を損ねずにユーザの入力の負担を減らすことができる。
【００９４】
図１５は、第４実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。第１実施形態と比べて、ステップＳ５が追加されている。
【００９５】
まず、ロボット２０が現在姿勢を検出して、検出された現在姿勢を制御装置１０にフィードバックする。これにより、制御装置１０は、ロボット２０の現在姿勢を取得する（ステップＳ５）。制御装置１０は、現在姿勢を初期姿勢として、把持姿勢選択部１３０と開始終了姿勢入力部１４０に渡すため、ステップＳ１０において、ユーザから初期姿勢の入力を受け付ける必要はない。
【００９６】
＜第５実施形態＞
図１６は、第５実施形態に係る制御装置１０の機能ブロックの一例を示す図である。第５実施形態は、センサ３０によって検出されたワークの位置に基づいて、把持姿勢の候補を算出するものであり、第１実施形態に、把持情報登録データベース（把持情報登録ＤＢ）１８０と把持姿勢算出部１９０とが追加されたものである。また、ロボット２０上又はロボット２０の周辺に、ワークの位置及び向き等を検出するためのセンサ３０が設けられている。これら以外の構成は、特に説明しない限り、第１実施形態と同様である。なお、把持情報登録ＤＢ１８０は、本発明の「把持情報保持部」の一例である。
【００９７】
把持情報登録ＤＢ１８０は、把持に関する情報が登録されている。把持に関する情報としては、例えば、ワークとエンドエフェクタ２４の相対的な関係の情報が挙げられる。より具体的には、エンドエフェクタ２４の基準座標系と、ワークの基準座標系に対して、エンドエフェクタ２４がワークを把持したときのワークとエンドエフェクタ２４の基準座標系間のアフィン変換を表す行列を、把持情報としてよい。
【００９８】
把持姿勢算出部１９０は、センサ３０で計測したワークの位置及び向きと、把持情報登録ＤＢ１８０に登録されたワークとエンドエフェクタ２４の相対的な関係の情報から、把持姿勢候補を計算する。例えば、センサ３０によって計測されたワーク位置及び向きに、上述の変換行列を適用することで、ワークを把持するときのエンドエフェクタ２４の空間的な把持姿勢を求めることができる。算出された把持姿勢は、把持姿勢受付部１２０に通知される。
【００９９】
把持姿勢受付部１２０は、入力装置１１から入力された把持姿勢候補又は把持姿勢算出部１９０から通知された把持姿勢候補を、把持姿勢選択部１３０に通知する。把持姿勢の候補は、事前に登録されたワークとエンドエフェクタ２４の相対的関係と、ワークの位置及び向きから算出されるため、実用性を損ねずにユーザの入力の負担を減らすことができる。
【０１００】
図１７は、第５実施形態におけるロボット制御システム１の処理の流れを示すフローチャートである。第１実施形態と比べて、ステップＳ１１〜Ｓ１５が追加されている。
【０１０１】
ステップ１０で、ユーザから初期姿勢等が入力された後、又は、ユーザによる初期姿勢等の入力と並行して、センサ３０はワークの位置及び向きを計測する（Ｓ１１）。把持姿勢算出部１９０は、センサ３０で計測された結果を受け取り、ワークの位置及び向きを認識する（Ｓ１２）。また、把持姿勢算出部１９０は、把持情報登録ＤＢ１８０から把持情報を読み出す（Ｓ１３）。そして、ワークの位置及び向きと把持情報とに基づいて、エンドエフェクタ２４の姿勢（把持手先姿勢）を計算する（Ｓ１４）。計算された把持手先姿勢に対して逆キネマティクス演算により、把持姿勢の候補を算出する（Ｓ１５）。
【０１０２】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【０１０３】
上述の実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
【０１０４】
（付記１）
ロボット（２０）が把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボット（２０）を制御する制御装置（１０）であって、
前記ロボット（２０）が前記把持対象物を把持することのできる把持姿勢の候補を複数受け付ける把持姿勢受付部（１２０）と、
前記複数の把持姿勢の候補のそれぞれと、前記ロボット（２０）の初期姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択する把持姿勢選択部（１３０）と、
前記初期姿勢から前記選択された把持姿勢までの間の前記ロボット（２０）のモーションを生成するモーション生成部（１５０）と、
を備える制御装置（１０）。
【０１０５】
（付記２）
ロボット（２０）が把持対象物を把持して所定の配置位置まで運搬するためのモーションを生成し、当該モーションに基づいて前記ロボット（２０）を制御する制御装置（１０）であって、
前記ロボット（２０）が前記把持対象物を把持することのできる把持姿勢の候補を複数受け付ける把持姿勢受付部（１２０）と、
前記複数の把持姿勢の候補のそれぞれと、前記ロボット（２０）の初期姿勢及び前記把持対象物を前記配置位置に配置することのできる配置姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択する把持姿勢選択部（１３０）と、
前記初期姿勢から前記選択された把持姿勢までの間の前記ロボット（２０）のモーションを生成し、さらに、前記選択された把持姿勢から前記配置姿勢までの間の前記ロボット（２０）のモーションを生成するモーション生成部（１５０）と、
を備える制御装置（１０）。
【０１０６】
（付記３）
前記初期姿勢と前記複数の把持姿勢の候補とに基づいて中間姿勢を生成する中間姿勢生成部（１６０）をさらに備え、
前記把持姿勢選択部（１３０）は、前記初期姿勢に基づく評価からは把持姿勢を選択することができなかったとき、前記初期姿勢にかえて前記中間姿勢を用いて、前記複数の把持姿勢の候補のそれぞれと前記中間姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択する、
付記１または２記載の制御装置（１０）。
【０１０７】
（付記４）
前記ロボット（２０）が有する各軸の速度を含む仕様情報を格納するロボット仕様データ保持部（１７０）をさらに備え、
前記把持姿勢選択部（１３０）は、前記ロボット仕様データ保持部（１７０）に格納された前記仕様情報を用いて、前記ロボット（２０）の動作時間も考慮して前記複数の把持姿勢の候補を評価する、
付記１から３のいずれか１つに記載の制御装置（１０）。
【０１０８】
（付記５）
前記初期姿勢として、前記ロボット（２０）から取得した前記ロボット（２０）の現在の姿勢を用いる、
付記１から４のいずれか１つに記載の制御装置（１０）。
【０１０９】
（付記６）
前記ロボット（２０）のエンドエフェクタ（２４）と当該エンドエフェクタ（２４）によって把持される把持対象物との相対的な関係を格納する把持情報保持部（１８０）と、
センサ（３０）から取得された把持対象物の位置及び向きと、前記把持情報保持部（１８０）に格納された前記エンドエフェクタ（２４）と前記把持対象物との相対的な関係とに基づいて、把持姿勢の候補を複数算出して、前記把持姿勢受付部（１２０）に渡す把持姿勢算出部（１９０）と、をさらに備える
付記１から５のいずれか１つに記載の制御装置（１０）。
【０１１０】
（付記７）
前記ロボット（２０）はシミュレータを含む、
付記１から６のいずれか１つに記載の制御装置（１０）。
【０１１１】
（付記８）
ロボット（２０）が把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボット（２０）を制御するための制御装置（１０）による制御方法であって、
前記ロボット（２０）が前記把持対象物を把持することのできる把持姿勢の候補を複数受け付けるステップと、
前記複数の把持姿勢の候補のそれぞれと、前記ロボット（２０）の初期姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択するステップと、
前記初期姿勢から前記選択された把持姿勢までの間の前記ロボット（２０）のモーションを生成するステップと、
を備える制御方法。
【０１１２】
（付記９）
ロボット（２０）が把持対象物を把持して運搬するためのモーションを生成し、当該モーションに基づいて前記ロボット（２０）を制御するためのコンピュータに、
前記ロボット（２０）が前記把持対象物を把持することのできる把持姿勢の候補を複数受け付けるステップと、
前記複数の把持姿勢の候補のそれぞれと、前記ロボット（２０）の初期姿勢とに基づいて、前記複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、前記複数の把持姿勢の候補の中から把持姿勢を選択するステップと、
前記初期姿勢から前記選択された把持姿勢までの間の前記ロボット（２０）のモーションを生成するステップと、
を実行させるためのプログラム。
【符号の説明】
【０１１３】
１…ロボット制御システム、１０…制御装置、１１…入力装置、１２…表示部、１３…外部インタフェース、１４…メモリ、１５…ＣＰＵ、１６…記憶装置、２０…ロボット、２２…ベース、２４…エンドエフェクタ、２６…アーム、Ｌｎ…リンク、Ｊｍ…ジョイント、３０…センサ、１２０…把持姿勢受付部、１３０…把持姿勢選択部、１４０…開始終了姿勢入力部、１５０…モーション生成部、１６０…中間姿勢生成部、１７０…ロボット仕様データベース、１８０…把持情報登録データベース、１９０…把持姿勢算出部
【図１】
2019155509.tif 000006
【図２】
2019155509.tif 000007
【図３】
2019155509.tif 000008
【図４】
2019155509.tif 000009
【図５】
2019155509.tif 000010
【図６】
2019155509.tif 000011
【図７】
2019155509.tif 000012
【図８】
2019155509.tif 000013
【図９】
2019155509.tif 000014
【図１０】
2019155509.tif 000015
【図１１】
2019155509.tif 000016
【図１２】
2019155509.tif 000017
【図１３】
2019155509.tif 000018
【図１４】
2019155509.tif 000019
【図１５】
2019155509.tif 000020
【図１６】
2019155509.tif 000021
【図１７】
2019155509.tif 000022