(57)【要約】【課題】ロボットが行う作業の精度を向上させることができるロボットを提供すること。【解決手段】撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における前記対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、前記複数の前記変換情報の中から１つの前記変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業を行う、ロボット。【選択図】図３
2017170571.tif 000002
【特許請求の範囲】
【請求項１】
撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における前記対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、前記複数の前記変換情報の中から１つの前記変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業を行う、
ロボット。
【請求項２】
前記変換情報には、前記撮像部座標系における位置を示す位置情報が対応付けられており、
前記変換情報に対応付けられた前記位置情報が示す位置と、前記撮像画像から検出された前記対象物の前記撮像部座標系における位置とが最も近い前記変換情報を前記対象変換情報として選択する、
請求項１に記載のロボット。
【請求項３】
前記変換情報には更に、前記撮像部座標系における姿勢を示す姿勢情報が対応付けられており、
前記変換情報に対応付けられた前記姿勢情報が示す姿勢と、前記撮像画像から検出された前記対象物の前記撮像部座標系における姿勢とが最も近い前記変換情報を前記対象変換情報として選択する、
請求項２に記載のロボット。
【請求項４】
７つ以上の関節を有し、
前記変換情報には更に、前記ロボットが備える関節のうちの３つの旋回関節を結ぶことによって形成される三角形を含む平面である対象平面の基準平面に対する角度である冗長回転角を示す冗長回転角情報が対応付けられており、
前記変換情報に対応付けられた前記冗長回転角情報が示す前記冗長回転角と、予め入力された前記冗長回転角とが最も近い前記変換情報を前記対象変換情報として選択する、
請求項２又は３に記載のロボット。
【請求項５】
前記変換情報には更に、前記ロボットが備える各関節のうちの回転角が互いに１８０°異なる２つの回転角のいずれであっても制御点の位置及び姿勢を第１位置及び第１姿勢と一致させることが可能な関節であるフリップ可能関節の回転角を、互いに１８０°異なる２つの回転角のうちの小さい方の回転角と大きい方の回転角とのいずれにするかを示すポーズ情報が対応付けられており、
前記変換情報に対応付けられた前記ポーズ情報と、予め入力された前記ポーズ情報とが一致する前記変換情報を前記対象変換情報として選択する、
請求項２から４のうちいずれか一項に記載のロボット。
【請求項６】
前記ロボットが前記作業を行う領域を複数の分割領域に分割し、前記分割領域に応じた複数の測定点毎に１以上の前記変換情報を生成する、
請求項１から５のうちいずれか一項に記載のロボット。
【請求項７】
前記測定点毎に、前記測定点に前記ロボットの制御点を一致させてから前記変換情報を生成する処理を実行する、
請求項６に記載のロボット。
【請求項８】
前記処理は、前記ロボットの制御点の前記第１座標系における位置を保持したまま、前記制御点の前記第１座標系における姿勢を変更する毎に前記変換情報を生成する処理である、
請求項７に記載のロボット。
【請求項９】
７つ以上の関節を有し、
前記処理は、前記制御点の前記第１座標系における位置を保持したまま、前記ロボットが備える関節のうちの３つの旋回関節を結ぶことによって形成される三角形を含む平面である対象平面の基準平面に対する角度である冗長回転角を変更する毎に前記変換情報を生成する処理である、
請求項７又は８に記載のロボット。
【請求項１０】
前記処理は、前記制御点の前記第１座標系における位置を保持したまま、前記ロボットが備える各関節のうちの回転角が互いに１８０°異なる２つの回転角のいずれであっても制御点の位置及び姿勢を第１位置及び第１姿勢と一致させることが可能な関節であるフリップ可能関節の回転角を、互いに１８０°異なる２つの回転角のうちの小さい方の回転角と大きい方の回転角とのいずれかに変更する毎に前記変換情報を生成する処理である、
請求項７から９のうちいずれか一項に記載のロボット。
【請求項１１】
前記変換情報には更に、前記撮像部の前記第１座標系における位置及び姿勢である撮像位置姿勢を示す撮像位置姿勢情報が対応付けられており、
前記変換情報に対応付けられた前記撮像位置姿勢情報が示す前記撮像位置姿勢と、予め入力された前記撮像位置姿勢とが一致する前記変換情報を前記対象変換情報として選択する、
請求項２から１０のうちいずれか一項に記載のロボット。
【請求項１２】
前記第１情報は、第１行列であり、
前記第２情報は、第２行列であり、
前記変換情報は、変換行列であり、
前記第１座標系は、ロボット座標系である、
請求項１から１１のうちいずれか一項に記載のロボット。
【請求項１３】
撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における前記対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、前記複数の前記変換情報の中から１つの前記変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業をロボットに行わせる、
ロボット制御装置。
【請求項１４】
撮像部と、
ロボットと、
前記撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における前記対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、前記複数の前記変換情報の中から１つの前記変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業を前記ロボットに行わせるロボット制御装置と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、ロボット制御装置、及びロボットシステムに関する。
【背景技術】
【０００２】
撮像部により撮像された撮像画像に基づいてロボットに所定の作業を行わせる技術の研究や開発が行われている。
【０００３】
これに関し、目標点に対してパラメーターを適用して座標変換を行うことでロボットの動作を制御するロボットの動作制御装置において、ロボットの動作空間を複数の領域に分割し、分割された動作空間毎に測定点を設定してパラメーターを導出し、導出された動作空間毎のパラメーターのうち目標点が属する動作空間のパラメーターを選択し、目標点に対して選択されたパラメーターを適用して座標変換を行うことでロボットの動作を制御するロボットの動作制御装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１４８８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような動作制御装置では、目標点においてロボットのＴＣＰの姿勢を変化させずにロボットの各関節の回転角を変化させた場合、当該回転角を変化させる前の当該ＴＣＰの位置及び姿勢と、当該回転角を変化させた後の当該ＴＣＰの位置及び姿勢とが、ロボットを構成する各部材の剛性等による誤差によってずれてしまう場合があった。その結果、当該動作制御装置では、ロボットに行わせる作業の精度を向上させることが困難な場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における前記対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、前記複数の前記変換情報の中から１つの前記変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業を行う、ロボットである。
この構成により、ロボットは、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における当該対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、複数の変換情報の中から１つの変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業を行う。これにより、ロボットは、ロボットが行う作業の精度を向上させることができる。
【０００７】
また、本発明の他の態様は、ロボットにおいて、前記変換情報には、前記撮像部座標系における位置を示す位置情報が対応付けられており、前記変換情報に対応付けられた前記位置情報が示す位置と、前記撮像画像から検出された前記対象物の前記撮像部座標系における位置とが最も近い前記変換情報を前記対象変換情報として選択する、構成が用いられてもよい。
この構成により、ロボットは、変換情報に対応付けられた位置情報が示す位置と、撮像画像から検出された対象物の撮像部座標系における位置とが最も近い変換情報を対象変換情報として選択する。これにより、ロボットは、位置情報が対応付けられた変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、前記変換情報には更に、前記撮像部座標系における姿勢を示す姿勢情報が対応付けられており、前記変換情報に対応付けられた前記姿勢情報が示す姿勢と、前記撮像画像から検出された前記対象物の前記撮像部座標系における姿勢とが最も近い前記変換情報を前記対象変換情報として選択する、構成が用いられてもよい。
この構成により、ロボットは、変換情報には更に、撮像部座標系における姿勢を示す姿勢情報が対応付けられており、変換情報に対応付けられた姿勢情報が示す姿勢と、撮像画像から検出された対象物の撮像部座標系における姿勢とが最も近い変換情報を対象変換情報として選択する。これにより、ロボットは、姿勢情報が対応付けられた変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、７つ以上の関節を有し、前記変換情報には更に、前記ロボットが備える関節のうちの３つの旋回関節を結ぶことによって形成される三角形を含む平面である対象平面の基準平面に対する角度である冗長回転角を示す冗長回転角情報が対応付けられており、前記変換情報に対応付けられた前記冗長回転角情報が示す前記冗長回転角と、予め入力された前記冗長回転角とが最も近い前記変換情報を前記対象変換情報として選択する、構成が用いられてもよい。
この構成により、ロボットは、変換情報に対応付けられた冗長回転角情報が示す冗長回転角と、予め入力された冗長回転角とが最も近い変換情報を対象変換情報として選択する。これにより、ロボットは、冗長回転角情報が対応付けられた変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、前記変換情報には更に、前記ロボットが備える各関節のうちの回転角が互いに１８０°異なる２つの回転角のいずれであっても制御点の位置及び姿勢を第１位置及び第１姿勢と一致させることが可能な関節であるフリップ可能関節の回転角を、互いに１８０°異なる２つの回転角のうちの小さい方の回転角と大きい方の回転角とのいずれにするかを示すポーズ情報が対応付けられており、前記変換情報に対応付けられた前記ポーズ情報と、予め入力された前記ポーズ情報とが一致する前記変換情報を前記対象変換情報として選択する、構成が用いられてもよい。
この構成により、ロボットは、変換情報に対応付けられたポーズ情報と、予め入力されたポーズ情報とが一致する変換情報を対象変換情報として選択する。これにより、ロボットは、ポーズ情報が対応付けられた変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記ロボットが前記作業を行う領域を複数の分割領域に分割し、前記分割領域に応じた複数の測定点毎に１以上の前記変換情報を生成する、構成が用いられてもよい。
この構成により、ロボットは、ロボットが作業を行う領域を複数の分割領域に分割し、分割領域に応じた複数の測定点毎に１以上の変換情報を生成する。これにより、ロボットは、分割領域に応じた複数の測定点毎に生成された１以上の変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【００１２】
また、本発明の他の態様は、ロボットにおいて、前記測定点毎に、前記測定点に前記ロボットの制御点を一致させてから前記変換情報を生成する処理を実行する、構成が用いられてもよい。
この構成により、ロボットは、測定点毎に、測定点にロボットの制御点を一致させてから変換情報を生成する処理を実行する。これにより、ロボットは、測定点毎に実行された処理であって変換情報を生成する処理によって生成された変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【００１３】
また、本発明の他の態様は、ロボットにおいて、前記処理は、前記ロボットの制御点の前記第１座標系における位置を保持したまま、前記制御点の前記第１座標系における姿勢を変更する毎に前記変換情報を生成する処理である、構成が用いられてもよい。
この構成により、ロボットは、制御点の第１座標系における位置を保持したまま、制御点の第１座標系における姿勢を変更する毎に変換情報を生成する処理である。これにより、ロボットは、測定点毎に、測定点にロボットの制御点を一致させた状態を保持したまま、制御点の第１座標系における姿勢を変更する毎に変換情報を生成する処理によって生成された変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【００１４】
また、本発明の他の態様は、ロボットにおいて、７つ以上の関節を有し、前記処理は、前記制御点の前記第１座標系における位置を保持したまま、前記ロボットが備える関節のうちの３つの旋回関節を結ぶことによって形成される三角形を含む平面である対象平面の基準平面に対する角度である冗長回転角を変更する毎に前記変換情報を生成する処理である、構成が用いられてもよい。
この構成により、ロボットは、制御点の第１座標系における位置を保持したまま、ロボットが備える関節のうちの３つの旋回関節を結ぶことによって形成される三角形を含む平面である対象平面の基準平面に対する角度である冗長回転角を変更する毎に変換情報を生成する処理を実行する。これにより、ロボットは、測定点毎に、測定点にロボットの制御点を一致させた状態を保持したまま、冗長回転角を変更する毎に変換情報を生成する処理によって生成された変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【００１５】
また、本発明の他の態様は、ロボットにおいて、前記処理は、前記制御点の前記第１座標系における位置を保持したまま、前記ロボットが備える各関節のうちの回転角が互いに１８０°異なる２つの回転角のいずれであっても制御点の位置及び姿勢を第１位置及び第１姿勢と一致させることが可能な関節であるフリップ可能関節の回転角を、互いに１８０°異なる２つの回転角のうちの小さい方の回転角と大きい方の回転角とのいずれかに変更する毎に前記変換情報を生成する処理である、構成が用いられてもよい。
この構成により、ロボットは、ロボットが備える各関節のうちの回転角が互いに１８０°異なる２つの回転角のいずれであっても制御点の位置及び姿勢を第１位置及び第１姿勢と一致させることが可能な関節であるフリップ可能関節の回転角を、互いに１８０°異なる２つの回転角のうちの小さい方の回転角と大きい方の回転角とのいずれかに変更する毎に変換情報を生成する処理を実行する。これにより、ロボットは、測定点毎に、測定点にロボットの制御点を一致させた状態を保持したまま、フリップ可能関節の回転角を変更する毎に変換情報を生成する処理によって生成された変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【００１６】
また、本発明の他の態様は、ロボットにおいて、前記変換情報には更に、前記撮像部の前記第１座標系における位置及び姿勢である撮像位置姿勢を示す撮像位置姿勢情報が対応付けられており、前記変換情報に対応付けられた前記撮像位置姿勢情報が示す前記撮像位置姿勢と、予め入力された前記撮像位置姿勢とが一致する前記変換情報を前記対象変換情報として選択する、構成が用いられてもよい。
この構成により、ロボットは、変換情報に対応付けられた撮像位置姿勢情報が示す撮像位置姿勢と、予め入力された撮像位置姿勢とが一致する変換情報を対象変換情報として選択する。これにより、ロボットは、撮像位置姿勢情報が対応付けられた変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【００１７】
また、本発明の他の態様は、ロボットにおいて、前記第１情報は、第１行列であり、前記第２情報は、第２行列であり、前記変換情報は、変換行列であり、前記第１座標系は、ロボット座標系である、構成が用いられてもよい。
この構成により、ロボットは、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１行列を、ロボット座標系における当該対象物の位置及び姿勢を表す第２行列に変換する変換行列が複数あり、複数の変換行列の中から１つの変換行列を対象変換行列として選択し、選択した当該変換行列に基づいて所定の作業を行う。これにより、ロボットは、ロボットが行う作業の精度を向上させることができる。
【００１８】
また、本発明の他の態様は、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における前記対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、前記複数の前記変換情報の中から１つの前記変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業をロボットに行わせる、ロボット制御装置である。
この構成により、ロボット制御装置は、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、複数の変換情報の中から１つの変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業をロボットに行わせる。これにより、ロボット制御装置は、ロボットが行う作業の精度を向上させることができる。
【００１９】
また、本発明の他の態様は、撮像部と、ロボットと、前記撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における前記対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、前記複数の前記変換情報の中から１つの前記変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業を前記ロボットに行わせるロボット制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムは、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、複数の変換情報の中から１つの変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業をロボットに行わせる。これにより、ロボットシステムは、ロボットが行う作業の精度を向上させることができる。
【００２０】
以上により、ロボットは、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における当該対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、複数の変換情報の中から１つの変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業を行う。これにより、ロボットは、ロボットが行う作業の精度を向上させることができる。
また、ロボット制御装置、及びロボットシステムは、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１情報を、第１座標系における対象物の位置及び姿勢を表す第２情報に変換する変換情報が複数あり、複数の変換情報の中から１つの変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業をロボットに行わせる。これにより、ロボット制御装置、及びロボットシステムは、ロボットが行う作業の精度を向上させることができる。
【図面の簡単な説明】
【００２１】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図３】ロボット制御装置３０の機能構成の一例を示す図である。
【図４】ロボット制御装置３０が複数の変換行列の中から所定の条件を満たす変換行列を対象変換行列として選択する処理の流れの一例を示すフローチャートである。
【図５】変換行列テーブルの一例を示す図である。
【図６】ロボット制御装置３０が変換行列を生成する処理の流れの一例を示すフローチャートである。
【図７】複数の分割領域に分割された作業領域ＲＡと測定点とを例示する図である。
【図８】変換行列テーブルの他の例を示す図である。
【図９】複数の第１行列及び第２行列が、冗長回転角情報と、ポーズ情報とに対応付けられて格納されている変換行列テーブルの一例を示す図である。
【発明を実施するための形態】
【００２２】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００２３】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、撮像部１０と、ロボット２０と、ロボット制御装置３０を備える。
【００２４】
撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、撮像部１０は、ロボット２０が作業を行う作業領域ＲＡを含む範囲を撮像可能な位置に設置される。
【００２５】
撮像部１０は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、撮像部１０は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２６】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボットや、直角座標ロボット等の他のロボットであってもよい。直角座標ロボットは、例えば、ガントリロボットである。
【００２７】
アームＡは、エンドエフェクターＥと、マニピュレーターＭを備える。
エンドエフェクターＥは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターＥは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【００２８】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２９】
マニピュレーターＭは、関節Ｊ１〜関節Ｊ７の７つの関節を備える。また、関節Ｊ１〜関節Ｊ７のそれぞれは、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、７軸垂直多関節型のアームである。アームＡは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える７つの関節それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、アームＡは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００３０】
アームＡが７軸の自由度で動作する場合、アームＡは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これによりアームＡは、例えば、動作が滑らかになり、更にアームＡの周辺に存在する物体との干渉を容易に回避することができる。また、アームＡが７軸の自由度で動作する場合、アームＡの制御は、アームＡが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００３１】
この一例において、関節Ｊ１、関節Ｊ３、関節Ｊ５、関節Ｊ７のそれぞれは、回転関節である。回転関節は、回動軸の回動によって回動軸に接続された２つのリンク間の角度を変化させない関節である。リンクは、マニピュレーターＭが有する部材であって関節間を繋ぐ部材である。また、関節Ｊ２、関節Ｊ４、関節Ｊ６のそれぞれは、旋回関節である。旋回関節は、回動軸の回動によって回動軸に接続された２つのリンク間の角度を変化させる関節である。
【００３２】
マニピュレーターＭが備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。また、各アクチュエーターは、エンコーダーを備えている。各エンコーダーは、各エンコーダーが備えられたアクチュエーターの回転角を示す情報をロボット制御装置３０に出力する。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３３】
ロボット制御装置３０は、この一例において、ロボットコントローラーである。ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、ロボット２０を動作させる制御信号を生成する。ロボット制御装置３０は、生成した制御信号をロボット２０に出力し、ロボット２０に所定の作業を行わせる。
【００３４】
＜ロボットが行う所定の作業＞
以下、ロボット２０が行う所定の作業について説明する。図１に示した例では、作業台ＴＢの上面に物体Ｏが載置されている。作業台ＴＢは、例えば、テーブルである。なお、作業台ＴＢは、テーブルに代えて、床面や棚等の物体Ｏを載置可能な物体であれば如何なる物体であってもよい。
【００３５】
物体Ｏは、例えば、産業用の部品や部材、製品等である。なお、物体Ｏは、これに代えて、産業用と異なる日用品の部品や部材、製品等や、生体等の他の物体であってもよい。図１に示した例では、物体Ｏが直方体形状の物体として表されている。なお、物体Ｏの形状は、直方体形状に代えて、他の形状であってもよい。物体Ｏが有する面のうちの作業台ＴＢの上面と接面している面と反対側の面には、マーカーＭＫが設けられている。マーカーＭＫは、ロボット座標系ＲＣにおける物体Ｏの重心の位置及び姿勢を示す印である。図１では、マーカーＭＫは、物体Ｏの当該面上における長方形状の印として示されている。なお、マーカーＭＫは、これに代えて、当該位置及び姿勢を示す物体Ｏの一部であってもよい。また、マーカーＭＫは、長方形状に代えて、他の形状であってもよい。
【００３６】
ロボット２０は、所定の作業として、エンドエフェクターＥにより物体Ｏを把持し、把持した物体Ｏを図示しない所定の給材領域に配置する作業を行う。なお、所定の作業は、これに代えて、他の作業であってもよい。
【００３７】
＜ロボット制御装置が行う処理の概要＞
以下、ロボット制御装置３０が行う処理の概要について説明する。
【００３８】
ロボット制御装置３０は、エンドエフェクターＥに予め対応付けられた位置に、エンドエフェクターＥとともに動く制御点Ｔを設定する。エンドエフェクターＥに予め対応付けられた位置は、例えば、エンドエフェクターＥの重心の位置である。制御点Ｔは、例えば、ＴＣＰ（Tool  Center  Point）である。なお、制御点Ｔは、ＴＣＰに代えて、マニピュレーターＭの一部に対応付けられた仮想的な点等の他の仮想的な点であってもよい。すなわち、制御点Ｔは、エンドエフェクターＥに対応付けられた位置に代えて、エンドエフェクターＥの他の部位の位置に設定される構成であってもよく、マニピュレーターＭに対応付けられた何らかの位置に設定される構成であってもよい。
【００３９】
制御点Ｔには、制御点Ｔの位置を示す情報である制御点位置情報と、制御点Ｔの姿勢を示す情報である制御点姿勢情報とが対応付けられている。なお、制御点Ｔには、これらに加えて、他の情報が対応付けられる構成であってもよい。制御点位置情報及び制御点姿勢情報をロボット制御装置３０が指定（決定）すると、制御点Ｔの位置及び姿勢が決まる。当該位置及び姿勢は、ロボット座標系ＲＣにおける位置及び姿勢である。ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定する。ロボット制御装置３０は、アームＡを動作させ、ロボット制御装置３０が指定した制御点位置情報が示す位置に制御点Ｔの位置を一致させるとともに、ロボット制御装置３０が指定した制御点姿勢情報が示す姿勢に制御点Ｔの姿勢を一致させる。以下では、説明の便宜上、ロボット制御装置３０が指定した制御点位置情報が示す位置を目標位置と称し、ロボット制御装置３０が指定した制御点姿勢情報が示す姿勢を目標姿勢と称して説明する。すなわち、ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット２０を動作させ、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢と一致させる。
【００４０】
この一例において、制御点Ｔの位置は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔの姿勢は、制御点座標系ＴＣの各座標軸のロボット座標系ＲＣにおける方向によって表される。制御点座標系ＴＣは、制御点Ｔとともに動くように制御点Ｔに対応付けられた三次元局所座標系である。
【００４１】
ロボット制御装置３０は、ユーザーから予め入力された制御点設定情報に基づいて制御点Ｔを設定する。制御点設定情報は、例えば、エンドエフェクターＥの重心の位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターＥに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターＭに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ロボット２０の他の部位に対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
【００４２】
ロボット制御装置３０は、撮像部１０に作業領域ＲＡを含む範囲を撮像させる。ロボット制御装置３０は、撮像部１０が撮像した撮像画像を取得する。ロボット制御装置３０は、撮像部１０から取得した撮像画像に基づいて、当該撮像画像に含まれる対象物の位置及び姿勢を検出する。当該位置及び姿勢は、撮像部座標系ＣＣにおける対象物の位置及び姿勢である。対象物は、例えば、エンドエフェクターＥの一部又は全部、マニピュレーターＭの一部又は全部、ロボット２０と別体の物体等である。以下では、一例として、当該対象物が図１に示した物体Ｏである場合について説明する。撮像部座標系ＣＣは、撮像部１０が撮像した撮像画像上の位置及び姿勢を表す三次元局所座標系である。
【００４３】
すなわち、ロボット制御装置３０は、撮像部１０から取得した撮像画像から撮像部座標系ＣＣにおける物体Ｏの位置及び姿勢を検出する。物体Ｏの位置及び姿勢は、物体Ｏに対応付けられた位置及び姿勢である。以下では、一例として、物体Ｏの位置及び姿勢が、ユーザーにより予め入力された把持位置及び把持姿勢によって表される場合について説明する。把持位置及び把持姿勢は、物体ＯをエンドエフェクターＥに把持させる直前においてロボット制御装置３０が制御点Ｔの位置及び姿勢を一致させる目標の位置及び姿勢のことである。なお、物体Ｏの位置及び姿勢は、把持位置及び把持姿勢に代えて、物体Ｏに対応付けられた他の位置及び姿勢によって表される構成であってもよい。
【００４４】
より具体的には、ロボット制御装置３０は、撮像部１０から取得した撮像画像からマーカーＭＫを検出する。ロボット制御装置３０は、検出したマーカーＭＫに基づいて、撮像部座標系ＣＣにおける物体Ｏの重心の位置及び姿勢を検出する。そして、ロボット制御装置３０は、検出した当該位置及び姿勢と、ユーザーにより予め入力された把持位置姿勢情報とに基づいて、撮像部座標系ＣＣにおける物体Ｏの位置及び姿勢を検出する。把持位置姿勢情報は、物体Ｏの重心の位置及び姿勢からの相対的な位置及び姿勢として前述の把持位置及び把持姿勢を示す情報である。なお、ロボット制御装置３０は、例えば、パターンマッチング等によって当該撮像画像から撮像部座標系ＣＣにおける物体Ｏの重心の位置及び姿勢を検出する構成であってもよい。
【００４５】
ロボット制御装置３０は、撮像部１０から取得した撮像画像から検出した撮像部座標系ＣＣにおける物体Ｏの位置及び姿勢に基づいて、当該位置及び姿勢を表す第１情報を算出する。ロボット制御装置３０は、算出した第１情報を、物体Ｏの第１座標系における位置及び姿勢を表す第２情報へと変換する。ロボット制御装置３０は、変換した第２情報が表わす位置を示す情報を制御点位置情報として指定し、変換した第２情報が表わす姿勢を示す情報を制御点姿勢情報として指定する。ロボット制御装置３０は、指定した制御点位置情報及び制御点姿勢情報に基づいて、第１座標系における制御点Ｔの位置及び姿勢が、第１座標系における目標位置及び目標姿勢に変化するように、マニピュレーターＭの各関節を回転させる制御信号を生成する。ロボット制御装置３０は、生成した制御信号をロボット２０に出力し、第１座標系における制御点Ｔの位置及び姿勢を、第１座標系における目標位置及び目標姿勢である把持位置及び把持姿勢に一致させる。そして、ロボット制御装置３０は、物体ＯをエンドエフェクターＥに把持させる。ロボット制御装置３０は、ユーザーにより予め入力された給材領域の位置を示す情報に基づいて、エンドエフェクターＥにより把持された物体Ｏを図示しない給材領域に配置する。このように、ロボット制御装置３０は、ロボット２０に所定の作業を行わせる。
【００４６】
以下では、一例として、第１情報が第１行列ＣＴＴＣＰである場合について説明する。この場合、第２情報は、第２行列ＲＴＴＣＰである。なお、第１情報は、第１行列ＣＴＴＣＰに代えて、第１行列ＣＴＴＣＰが有する各成分を表す情報を含むデータベースや、当該情報を表す複数の方程式を示す情報等の他の情報であってもよい。この場合、第２情報は、第１情報に応じた情報である。また、以下では、一例として、第１座標系がロボット座標系ＲＣである場合について説明する。なお、第１座標系は、ロボット座標系ＲＣに代えて、ワールド座標系等の他の座標系であってもよい。
【００４７】
すなわち、ロボット制御装置３０は、撮像部１０から取得した撮像画像から検出した撮像部座標系ＣＣにおける物体Ｏの位置及び姿勢に基づいて、当該位置及び姿勢を表す第１行列ＣＴＴＣＰを算出する。ロボット制御装置３０は、算出した第１行列ＣＴＴＣＰを、物体Ｏのロボット座標系ＲＣにおける位置及び姿勢を表す第２行列ＲＴＴＣＰへと変換する。ロボット制御装置３０は、変換した第２行列ＲＴＴＣＰが表わす位置を示す情報を制御点位置情報として指定し、変換した第２行列ＲＴＴＣＰが表わす姿勢を示す情報を制御点姿勢情報として指定する。ロボット制御装置３０は、指定した制御点位置情報及び制御点姿勢情報に基づいて、ロボット座標系ＲＣにおける制御点Ｔの位置及び姿勢が、ロボット座標系ＲＣにおける目標位置及び目標姿勢に変化するように、マニピュレーターＭの各関節を回転させる制御信号を生成する。ロボット制御装置３０は、生成した制御信号をロボット２０に出力し、ロボット座標系ＲＣにおける制御点Ｔの位置及び姿勢を、ロボット座標系ＲＣにおける目標位置及び目標姿勢である把持位置及び把持姿勢に一致させる。そして、ロボット制御装置３０は、物体ＯをエンドエフェクターＥに把持させる。ロボット制御装置３０は、ユーザーにより予め入力された給材領域の位置を示す情報に基づいて、エンドエフェクターＥにより把持された物体Ｏを図示しない給材領域に配置する。このように、ロボット制御装置３０は、ロボット２０に所定の作業を行わせる。
【００４８】
ロボット制御装置３０が第１行列ＣＴＴＣＰを第２行列ＲＴＴＣＰに変換する際、ロボット制御装置３０には、第１行列ＣＴＴＣＰを第２行列ＲＴＴＣＰに変換する変換情報が予め記憶されている。ロボット制御装置３０は、複数の変換情報の中から１つの変換情報を対象変換情報として選択し、選択した対象変換情報に基づいて第１行列ＣＴＴＣＰを第２行列ＲＴＴＣＰに変換する。これにより、ロボット制御装置３０は、所定の作業をロボット２０に行わせる。
【００４９】
以下では、一例として、変換情報が変換行列ＲＴＣである場合について説明する。なお、変換情報は、これに代えて、変換行列ＲＴＣが有する各成分を表す情報を含むデータベースや、当該情報を表す複数の方程式を示す情報等の他の情報であってもよい。
【００５０】
すなわち、ロボット制御装置３０が第１行列ＣＴＴＣＰを第２行列ＲＴＴＣＰに変換する際、ロボット制御装置３０には、第１行列ＣＴＴＣＰを第２行列ＲＴＴＣＰに変換する変換行列ＲＴＣが予め記憶されている。ロボット制御装置３０は、複数の変換行列ＲＴＣの中から１つの変換行列ＲＴＣを対象変換行列ＲＴＣとして選択し、選択した対象変換行列ＲＴＣに基づいて第１行列ＣＴＴＣＰを第２行列ＲＴＴＣＰに変換する。これにより、ロボット制御装置３０は、所定の作業をロボット２０に行わせる。以下では、ロボット制御装置３０が複数の変換行列ＲＴＣの中から１つの変換行列ＲＴＣを対象変換行列ＲＴＣとして選択する処理について詳しく説明する。また、以下では、ロボット制御装置３０が複数の変換行列ＲＴＣを生成する処理について詳しく説明する。
【００５１】
ここで、変換行列ＲＴＣと、第１行列ＣＴＴＣＰ及び第２行列ＲＴＴＣＰとの関係は、以下に示した式（１）、式（２）によって表される。
【００５２】
【数１】
2017170571.tif 000003
【００５３】
上記の式（２）は、第１行列ＣＴＴＣＰの逆行列を表している。なお、以下では、説明の便宜上、第１行列ＣＴＴＣＰを単に第１行列と称し、第２行列ＲＴＴＣＰを単に第２行列と称し、変換行列ＲＴＣを単に変換行列と称して説明する。
【００５４】
＜ロボット制御装置のハードウェア構成＞
以下、図２を参照し、ロボット制御装置３０のハードウェア構成について説明する。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００５５】
ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。また、ロボット制御装置３０は、通信部３４を介してロボット２０と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。
【００５６】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部３２は、ロボット制御装置３０が処理する各種情報や画像、動作プログラムを含む各種のプログラム、前述の把持位置姿勢情報、変換行列テーブル等を格納する。変換行列テーブルは、前述の複数の変換行列のそれぞれが格納されたテーブルである。
【００５７】
入力受付部３３は、例えば、表示部３５と一体に構成されたタッチパネルである。なお、入力受付部３３は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００５８】
＜ロボット制御装置の機能構成＞
以下、図３を参照し、ロボット制御装置３０の機能構成について説明する。図３は、ロボット制御装置３０の機能構成の一例を示す図である。
【００５９】
ロボット制御装置３０は、記憶部３２と、制御部３６を備える。
【００６０】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、撮像制御部３６１と、画像取得部３６２と、算出部３６３と、変換行列選択部３６４と、行列変換部３６５と、回転角情報取得部３６６と、変換行列生成部３６７と、記憶制御部３６８と、ロボット制御部３６９と、検出部３７０を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００６１】
撮像制御部３６１は、撮像部１０に作業領域ＲＡを含む範囲を撮像させる。
画像取得部３６２は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。
算出部３６３は、画像取得部３６２が取得した撮像画像から検出部３７０が検出した物体Ｏの位置及び姿勢を表す第１行列を算出する。当該位置及び姿勢は、撮像部座標系ＣＣにおける位置及び姿勢である。また、算出部３６３は、検出部３７０が検出した制御点Ｔの位置及び姿勢を表す第１行列を算出する。当該位置及び姿勢は、撮像部座標系ＣＣにおける位置及び姿勢である。また、算出部３６３は、回転角情報取得部３６６が取得した回転角情報と、順運動学とに基づいて、制御点Ｔの位置及び姿勢を算出する。算出部３６３は、算出した当該位置及び姿勢を表す第２行列を算出する。当該位置及び姿勢は、ロボット座標系ＲＣにおける位置及び姿勢である。
【００６２】
変換行列選択部３６４は、記憶部３２に記憶された変換行列テーブルを読み出す。変換行列選択部３６４は、読み出した変換行列テーブルに格納された複数の変換行列から所定の条件を満たす変換行列を対象変換行列として選択する。
行列変換部３６５は、変換行列選択部３６４が選択した対象変換行列に基づいて、算出部３６３が算出した第１行列を第２行列に変換する。
【００６３】
回転角情報取得部３６６は、マニピュレーターＭの各関節が備えるアクチュエーターの回転角を示す回転角情報を、当該アクチュエーターのそれぞれが備えるエンコーダーから取得する。
変換行列生成部３６７は、算出部３６３が算出した第１行列及び第２行列に基づいて、変換行列を生成する。当該第１行列は、撮像部座標系ＣＣにおける制御点Ｔの位置及び姿勢を表す第１行列である。当該第２行列は、ロボット座標系ＲＣにおける制御点Ｔの位置及び姿勢を表す第２行列である。
【００６４】
記憶制御部３６８は、変換行列テーブルを記憶部３２の記憶領域内に生成する。記憶制御部３６８は、当該記憶領域内に生成した変換行列テーブルに、変換行列生成部３６７が生成した変換行列を格納する。
ロボット制御部３６９は、行列変換部３６５が変換した第２行列が表わす位置及び姿勢に基づいてロボット２０を動作させ、ロボット２０に所定の作業を行わせる。
検出部３７０は、画像取得部３６２が取得した撮像画像から撮像部座標系ＣＣにおける物体Ｏの位置及び姿勢を検出する。また、検出部３７０は、画像取得部３６２が取得した撮像画像から撮像部座標系ＣＣにおける制御点Ｔの位置及び姿勢を検出する。
【００６５】
＜ロボット制御装置が変換行列を選択する処理＞
以下、図４を参照し、ロボット制御装置３０が複数の変換行列の中から所定の条件を満たす変換行列を対象変換行列として選択する処理について説明する。図４は、ロボット制御装置３０が複数の変換行列の中から所定の条件を満たす変換行列を対象変換行列として選択する処理の流れの一例を示すフローチャートである。なお、図４に示したフローチャートの処理では、複数の変換行列を格納した変換行列テーブルが予め記憶部３２に記憶されている場合について説明する。
【００６６】
撮像制御部３６１は、撮像部１０に作業領域ＲＡを含む範囲を撮像させる（ステップＳ１１０）。次に、画像取得部３６２は、ステップＳ１１０において撮像部１０が撮像した撮像画像を撮像部１０から取得する（ステップＳ１２０）。
【００６７】
次に、検出部３７０は、ステップＳ１２０において画像取得部３６２が取得した撮像画像に含まれる物体Ｏの位置及び姿勢を検出する検出処理を実行する（ステップＳ１３０）。当該位置及び姿勢は、撮像部座標系ＣＣにおける位置及び姿勢である。例えば、検出部３７０は、当該物体Ｏに設けられたマーカーＭＫを検出する。検出部３７０は、検出したマーカーＭＫが示す位置及び姿勢を検出する。当該位置及び姿勢は、撮像部座標系ＣＣにおける物体Ｏの重心の位置及び姿勢である。検出部３７０は、記憶部３２に予め記憶された把持位置姿勢情報を読み出す。検出部３７０は、読み出した把持位置姿勢情報と、検出したマーカーＭＫが示す位置及び姿勢とに基づいて、物体Ｏの位置及び姿勢を検出する。
【００６８】
なお、検出部３７０は、マーカーＭＫによって撮像部座標系ＣＣにおける物体Ｏの重心の位置及び姿勢を検出する構成に代えて、パターンマッチング等の他の手法によって当該撮像画像から当該位置及び姿勢を検出する構成であってもよい。パターンマッチングによって当該位置及び姿勢を検出する場合、検出部３７０は、記憶部３２に予め記憶された物体Ｏのリファレンスモデルに基づくパターンマッチングによって当該撮像画像から当該位置及び姿勢を検出する。物体Ｏのリファレンスモデルは、物体Ｏの三次元形状、色彩、模様等を三次元モデル化して得られた三次元モデルデータであり、例えば、ＣＧ（Computer  Graphics）によって表される。
【００６９】
次に、変換行列選択部３６４は、記憶部３２に予め記憶された変換行列テーブルの中から所定の条件を満たす変換行列を対象変換行列として選択する（ステップＳ１４０）。ここで、ステップＳ１４０の処理について説明する。変換行列選択部３６４は、記憶部３２に予め記憶された冗長回転角情報と、ポーズ情報とを読み出す。
【００７０】
冗長回転角情報は、冗長回転角（冗長自由度）を示す情報である。冗長回転角は、この一例において、基準平面に対する対象平面の角度のことである。対象平面は、ある位置及び姿勢である位置姿勢ＸＸと制御点Ｔの位置及び姿勢とが一致している場合において、マニピュレーターＭが備える関節のうちの関節Ｊ２と、関節Ｊ４と、関節Ｊ６とのそれぞれを直線により結ぶことによって形成される三角形を含む平面である。より具体的には、例えば、対象平面は、アームＡが備える関節のうちの関節Ｊ２の重心の位置と、関節Ｊ４の重心の位置と、関節Ｊ６の重心の位置とのそれぞれを直線により結ぶことによって形成される三角形を含む平面である。なお、対象平面は、これに代えて、関節Ｊ２の他の位置と、関節Ｊ４の他の位置と、関節Ｊ６の他の位置とのそれぞれを直線により結ぶことによって形成される三角形を含む平面であってもよい。基準平面は、関節Ｊ１、関節Ｊ２、関節Ｊ４、関節Ｊ５、関節Ｊ６、関節Ｊ７の６つの関節を備えるアームの制御点の位置及び姿勢が前述の位置姿勢ＸＸと一致している場合において、当該アームが備える関節のうちの関節Ｊ２、関節Ｊ４、関節Ｊ６のそれぞれを直線によって結ぶことによって形成される三角形を含む平面のことである。より具体的には、例えば、基準平面は、当該アームが備える関節のうちの関節Ｊ２の重心の位置と、関節Ｊ４の重心の位置と、関節Ｊ６の重心の位置とのそれぞれを直線により結ぶことによって形成される三角形を含む平面である。なお、基準平面は、これに代えて、当該アームが備える関節のうちの関節Ｊ２の他の位置と、関節Ｊ４の他の位置と、関節Ｊ６の他の位置とのそれぞれを直線により結ぶことによって形成される三角形を含む平面であってもよい。
【００７１】
マニピュレーターＭは、関節Ｊ１〜関節Ｊ７の７つの関節を備えているため、位置姿勢ＸＸと制御点Ｔの位置及び姿勢とが一致している場合において制御点Ｔの位置及び姿勢を変化させずに、対象平面の基準平面に対する角度を変化させることができる。
【００７２】
ポーズ情報は、マニピュレーターＭの関節のうちのフリップ可能関節の回転角を、互いに１８０°異なる２つの回転角のうちの小さい方の回転角と大きい方の回転角とのいずれにするかを指定する情報である。フリップ可能関節は、マニピュレーターＭの各関節のうちの回転角が互いに１８０°異なる２つの回転角のいずれであっても制御点Ｔの位置及び姿勢を第１位置及び第１姿勢と一致させることが可能な関節である。第１位置は、ユーザーが所望する位置である。当該位置は、ロボット座標系ＲＣにおける位置である。第１姿勢は、ユーザーが所望する姿勢である。当該姿勢は、ロボット座標系ＲＣにおける姿勢である。この一例において、フリップ可能関節は、関節Ｊ２、関節Ｊ４、関節Ｊ６の３つの関節のそれぞれである。
【００７３】
また、変換行列選択部３６４は、記憶部３２に予め記憶された変換行列テーブルを記憶部３２から読み出す。ここで、図５を参照し、変換行列テーブルについて説明する。図５は、変換行列テーブルの一例を示す図である。図５に示したように、変換行列テーブルには、複数の変換行列が、位置を示す位置情報と、姿勢を示す姿勢情報と、冗長回転角情報と、ポーズ情報とに対応付けられて格納されている。変換行列テーブル内において、複数の変換行列のそれぞれは、変換行列に対応付けられた位置情報が示す位置と、姿勢情報が示す姿勢と、冗長回転角情報が示す冗長回転角と、ポーズ情報との少なくとも１つが互いに異なる。なお、変換行列テーブルには、位置情報と、姿勢情報と、冗長回転角情報と、ポーズ情報との一部が対応付けられた変換行列が格納されている構成であってもよく、位置情報と、姿勢情報と、冗長回転角情報と、ポーズ情報との一部又は全部に代えて、他の情報が対応付けられた変換行列が格納されている構成であってもよい。
【００７４】
変換行列選択部３６４は、記憶部３２から読み出した変換行列テーブルの中から所定の条件を満たす１つの変換行列を対象変換行列として選択する。所定の条件は、この一例において、以下に示す１）〜４）の４つの条件のすべてを満たすことである。なお、所定の条件は、当該４つの条件のうちの一部の条件を満たす構成であってもよく、当該４つの条件の一部又は全部に代えて、他の条件を満たす構成であってもよい。
【００７５】
１）ステップＳ１３０において検出部３７０が検出した物体Ｏの位置に最も近い位置を示す位置情報が対応付けられた変換行列であること。当該位置は、撮像部座標系ＣＣにおける位置である。
２）ステップＳ１３０において検出部３７０が検出した物体Ｏの姿勢に最も近い姿勢を示す姿勢情報が対応付けられた変換行列であること。当該姿勢は、撮像部座標系ＣＣにおける姿勢である。
３）記憶部３２に予め記憶された冗長回転角情報、すなわちユーザーから予め入力された冗長回転角情報が示す冗長回転角に最も近い冗長回転角を示す冗長回転角情報が対応付けられた変換行列であること。
４）記憶部３２に予め記憶されたポーズ情報、すなわちユーザーから予め入力されたポーズ情報と一致するポーズ情報が対応付けられた変換行列であること。
【００７６】
変換行列選択部３６４は、ステップＳ１３０において検出部３７０が検出した物体Ｏの位置であって撮像部座標系ＣＣにおける位置と、各変換行列に対応付けられた位置情報が示す位置との距離を算出する。変換行列選択部３６４は、当該位置情報の中から、算出した当該距離が最も短くなる位置を示す位置情報を特定する。変換行列選択部３６４は、特定した位置情報に対応付けられた変換行列を、上記の１）の条件を満たす変換行列として特定する。
【００７７】
また、変換行列選択部３６４は、ステップＳ１３０において検出部３７０が検出した物体Ｏの姿勢であって撮像部座標系ＣＣにおける姿勢と、各変換行列に対応付けられた姿勢情報が示す姿勢とのずれを算出する。変換行列選択部３６４は、当該姿勢情報の中から、算出した当該ずれが最も小さくなる姿勢を示す姿勢情報を特定する。当該ずれは、例えば、変換行列に対応付けられた姿勢情報が示す姿勢と、ステップＳ１３０において検出部３７０が検出した物体Ｏの姿勢であって撮像部座標系ＣＣにおける姿勢との差分を表す３つのオイラー角を成分として有するベクトルのノルムによって表される。なお、当該ずれは、これに代えて、他の量によって表される構成であってもよい。変換行列選択部３６４は、特定した姿勢情報に対応付けられた変換行列を、上記の２）の条件を満たす変換行列として特定する。
【００７８】
また、変換行列選択部３６４は、記憶部３２に予め記憶された冗長回転角情報が示す冗長回転角と、各変換行列に対応付けられた冗長回転角情報が示す冗長回転角との差分を算出する。変換行列選択部３６４は、当該冗長回転角情報の中から、算出した当該差分が最も小さくなる冗長回転角を示す冗長回転角情報を特定する。変換行列選択部３６４は、特定した冗長回転角情報に対応付けられた変換行列を、上記の３）の条件を満たす変換行列として特定する。
【００７９】
また、変換行列選択部３６４は、記憶部３２に予め記憶されたポーズ情報と一致するポーズ情報が対応付けられた変換行列を、上記の４）の条件を満たす変換行列として特定する。
このようにして、変換行列選択部３６４は、ステップＳ１４０において、変換行列テーブルに格納された複数の変換行列の中から所定の条件を満たす１つの変換行列を対象変換行列として選択する。
【００８０】
次に、算出部３６３は、ステップＳ１３０において検出部３７０が検出した物体Ｏの位置及び姿勢を表す第１行列を算出する算出処理を実行する（ステップＳ１４５）。当該位置及び姿勢は、撮像部座標系ＣＣにおける位置及び姿勢である。次に、行列変換部３６５は、ステップＳ１４０において変換行列選択部３６４が選択した対象変換行列に基づいて、ステップＳ１４５において算出部３６３が算出した第１行列を第２行列に変換する変換処理を実行する（ステップＳ１５０）。具体的には、行列変換部３６５は、以下に示した式（３）のように、当該対象変換行列を当該第１行列に乗算した結果として当該第１行列を第２行列に変換する。
【００８１】
【数２】
2017170571.tif 000004
【００８２】
次に、ロボット制御部３６９は、ステップＳ１５０において変換した第２行列が表わす位置を示す情報を制御点位置情報として指定し、当該第２行列が表わす姿勢を示す情報を制御点姿勢情報として指定する。当該位置は、ロボット座標系ＲＣにおける物体Ｏの位置である。当該姿勢は、ロボット座標系ＲＣにおける物体Ｏの姿勢である。そして、ロボット制御部３６９は、制御点Ｔの位置及び姿勢を、制御点位置情報が示す位置及び制御点姿勢情報が示す姿勢に一致させる。
【００８３】
この際、ロボット制御部３６９は、冗長回転角が、冗長回転角が記憶部３２に予め記憶された冗長回転角情報が示す冗長回転角と一致する場合の関節Ｊ１〜関節Ｊ７それぞれの回転角を算出する。具体的には、ロボット制御部３６９は、当該回転角を算出するため、制御点位置情報が示す位置及び制御点姿勢情報が示す姿勢と、記憶部３２に予め記憶された第１構造情報とに基づいて、前述の基準平面を算出する。当該基準平面は、制御点Ｔの位置及び姿勢と制御点位置情報が示す位置及び制御点姿勢情報が示す姿勢とが一致している場合における基準平面である。第１構造情報は、関節Ｊ３がない場合の仮想的なアームＡが備える各部材の大きさや形状等の当該アームＡの構造を示す情報である。ロボット制御部３６９は、対象平面の当該基準面に対する角度、すなわち冗長回転角が記憶部３２に予め記憶された冗長回転角情報が示す冗長回転角と一致する場合の関節Ｊ１〜関節Ｊ７それぞれの回転角を算出する。この際、ロボット制御部３６９は、制御点位置情報が示す位置及び制御点姿勢情報が示す姿勢と、算出した基準平面と、記憶部３２に予め記憶された第２構造情報とに基づいて当該回転角を算出する。この際、ロボット制御部３６９は、関節Ｊ２、関節Ｊ４、関節Ｊ６それぞれの回転角を、ポーズ情報が指定する回転角と一致させる。第２構造情報は、アームＡが備える各部材の大きさや形状等の当該アームＡの構造を示す情報である。ロボット制御部３６９は、算出した当該回転角と、関節Ｊ１〜関節Ｊ７それぞれの回転角とを一致させることによって制御点Ｔを移動させる。そして、ロボット制御部３６９は、エンドエフェクターＥに物体Ｏを把持させる。ロボット制御部３６９は、エンドエフェクターＥにより把持された物体Ｏを、記憶部３２に予め記憶された給材領域の位置を示す情報に基づいて、図示しない給材領域に配置し（ステップＳ１６０）、処理を終了する。
【００８４】
このように、ロボット制御装置３０は、撮像部１０により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系ＣＣにおける物体Ｏの位置及び姿勢を表す第１行列を、ロボット座標系ＲＣにおける物体Ｏの位置及び姿勢を表す第２行列に変換する変換行列が複数あり、複数の変換行列の中から１つの変換行列を対象変換行列として選択し、選択した当該変換行列に基づいて所定の作業をロボット２０に行わせる。これにより、ロボット制御装置３０は、ロボット２０が行う作業の精度を向上させることができる。また、ロボット制御装置３０は、所定の条件を満たす対象変換行列に基づいて当該第１行列を当該第２行列に変換するため、撮像部１０により撮像された撮像画像から検出された物体ＯをエンドエフェクターＥにより把持する際、エンドエフェクターＥと物体Ｏとの相対的な位置関係をユーザーが所望する位置関係に精度よく一致させることができる。その結果、ロボット制御装置３０は、エンドエフェクターＥによって物体Ｏを持ち直させる動作等を行わせる必要が少なくなり、ロボット２０が作業を行うために要する時間を短縮することができる。
【００８５】
また、ロボット制御装置３０は、所定の条件を満たす対象変換行列に基づいて当該第１行列を当該第２行列に変換するため、エンドエフェクターＥにより物体Ｏを把持させる際の作業領域ＲＡ内の環境に応じてマニピュレーターＭの状態を変化させた場合に生じる誤差を抑制することができる。当該環境は、物体Ｏの位置及び姿勢や、物体Ｏの周囲に配置された他の物体、物体Ｏと壁面との位置関係等によって表される環境のことである。また、当該状態は、マニピュレーターＭの各関節の回転角によって表される状態のことである。当該誤差は、ロボット２０を構成する各部材の剛性等によって生じる誤差であって制御点Ｔの位置及び姿勢についての誤差である。当該誤差は、ポーズ情報、冗長回転角、制御点Ｔの姿勢のうちの少なくとも１つを変える毎に生じる。ロボット制御装置３０は、所定の条件を満たす変換行列に基づいてロボット２０に所定の作業を行わせることにより、当該誤差を抑制することができる。
【００８６】
＜ロボット制御装置が変換行列を生成する処理＞
以下、図６及び図７を参照し、ロボット制御装置３０が変換行列を生成する処理について説明する。図６は、ロボット制御装置３０が変換行列を生成する処理の流れの一例を示すフローチャートである。なお、図６に示したフローチャートの処理では、作業領域ＲＡを示す領域情報が予め記憶部３２に記憶されている場合について説明する。また、以下では、作業領域ＲＡが直方体形状の領域である場合について説明する。なお、作業領域ＲＡの形状は、直方体形状に代えて、他の形状であってもよい。
【００８７】
変換行列生成部３６７は、記憶部３２に予め記憶された領域情報を記憶部３２から読み出す。変換行列生成部３６７は、記憶部３２から読み出した領域情報が示す作業領域ＲＡを、複数の分割領域に分割する（ステップＳ２１０）。例えば、変換行列生成部３６７は、直方体形状の作業領域ＲＡを、互いに体積が同じ立方体形状の分割領域がロボット座標系ＲＣにおける各座標軸方向に隙間なく並ぶように分割する。なお、分割領域の形状は、立方体形状に代えて、他の形状であってもよい。また、複数の分割領域の一部又は全部の体積は、互いに異なる体積であってもよい。また、複数の分割領域の一部又は全部の形状は、互いに異なる形状であってもよい。
【００８８】
次に、変換行列生成部３６７は、ステップＳ２１０において作業領域ＲＡを分割した分割領域に応じた複数の測定点を生成する（ステップＳ２２０）。測定点は、制御点Ｔを一致させる仮想的な点のことである。測定点には、測定点の位置を示す測定点位置情報と、測定点の姿勢を示す測定点姿勢情報とが対応付けられている。この一例において、測定点と制御点Ｔとが一致することは、測定点の位置及び姿勢と、制御点Ｔの位置及び姿勢とが一致することを意味する。以下では、一例として、すべての測定点の姿勢が同じ姿勢である場合について説明する。なお、測定点の一部又は全部の姿勢は、これに代えて、互いに異なる姿勢であってもよい。
【００８９】
ここで、図７を参照し、複数の分割領域に分割された作業領域ＲＡと測定点とについて説明する。図７は、複数の分割領域に分割された作業領域ＲＡと測定点とを例示する図である。図７に示した例では、作業領域ＲＡは、点線で区切られた８つの分割領域に分割されている。これらの分割領域は、前述したように、互いに体積が同じ立方体形状の分割領域である。
【００９０】
変換行列生成部３６７は、例えば、作業領域ＲＡを８つの分割領域に区切る線（図７に示した例では、点線）同士が交わる位置を特定する。変換行列生成部３６７は、分割領域に応じた測定点として、特定した位置に仮想的な点を生成する。変換行列生成部３６７は、生成した測定点毎に、測定点の位置を示す測定点位置情報と測定点の姿勢を示す測定点姿勢情報とを測定点に対応付ける。複数の測定点それぞれの姿勢は、如何なる姿勢であってもよい。また、複数の測定点の一部又は全部の姿勢は、互いに異なる姿勢であってもよく、互いに同じ姿勢であってもよい。図７に示した例では、当該点線同士が交わる位置に示した丸印が各測定点を示している。
【００９１】
ステップＳ２２０において生成した複数の測定点を生成した後、回転角情報取得部３６６と、変換行列生成部３６７と、記憶制御部３６８と、ロボット制御部３６９と、検出部３７０とのそれぞれは、生成した複数の測定点毎に、ステップＳ２４０〜ステップＳ３４０の処理を繰り返し行う（ステップＳ２３０）。
【００９２】
ロボット制御部３６９は、制御点Ｔを移動させ、ステップＳ２３０において選択された測定点に制御点Ｔを一致させる（ステップＳ２４０）。そして、回転角情報取得部３６６と、変換行列生成部３６７と、記憶制御部３６８と、ロボット制御部３６９と、検出部３７０とのそれぞれは、変換行列を生成する処理として、ステップＳ２５０〜ステップＳ３４０の処理を実行する。
【００９３】
ステップＳ２２０において選択された測定点に制御点Ｔが一致した後、ロボット制御部３６９は、記憶部３２に予め記憶された複数の試験姿勢を示す試験姿勢情報を記憶部３２から読み出す。そして、ロボット制御部３６９は、読み出した試験姿勢情報が示す複数の試験姿勢毎に、ステップＳ２６０〜ステップＳ３４０の処理を繰り返し行う（ステップＳ２５０）。
【００９４】
複数の試験姿勢には、例えば、制御点Ｔの姿勢を基準となる姿勢から、０°〜３６０°の範囲において制御点座標系ＴＣにおけるＸ軸周りに第１所定角度ずつ回転させた姿勢のそれぞれと、０°〜３６０°の範囲において制御点Ｔの姿勢を基準となる姿勢から制御点座標系ＴＣにおけるＹ軸周りに第２所定角度ずつ回転させた姿勢のそれぞれと、０°〜３６０°の範囲において制御点Ｔの姿勢を基準となる姿勢から制御点座標系ＴＣにおけるＺ軸周りに第３所定角度ずつ回転させた姿勢のそれぞれとが含まれる。制御点Ｔの姿勢のうちの基準となる姿勢は、例えば、制御点座標系ＴＣの各座標軸がロボット座標系ＲＣの各座標軸と一致する姿勢である。
【００９５】
第１所定角度は、例えば、３０°である。なお、第１所定角度は、３０°に代えて、３６０°を等分割することができる角度であれば３０°より小さな角度であってもよく、３０°より大きな角度であってもよい。第２所定角度は、例えば、３０°である。また、第２所定角度は、３０°に代えて、３６０°を等分割することができる角度であれば３０°より小さな角度であってもよく、３０°より大きな角度であってもよい。第３所定角度は、例えば、３０°である。また、第３所定角度は、３０°に代えて、３６０°を等分割することができる角度であれば３０°より小さな角度であってもよく、３０°より大きな角度であってもよい。
【００９６】
なお、制御点Ｔの姿勢のうちの基準となる姿勢は、これに代えて、他の姿勢であってもよい。また、複数の試験姿勢には、これらの姿勢に代えて、他の姿勢が含まれる構成であってもよい。当該他の姿勢は、例えば、０°〜３６０°の範囲において制御点座標系ＴＣにおけるＸ軸周り、Ｙ軸周りの順に第４所定角度ずつ回転させた姿勢のそれぞれ等である。この場合、第４所定角度は、例えば、３０°である。第４所定角度は、３０°に代えて、３６０°を等分割することができる角度であれば３０°より小さな角度であってもよく、３０°より大きな角度であってもよい。
【００９７】
ステップＳ２５０において試験姿勢を選択した後、ロボット制御部３６９は、記憶部３２に予め記憶された複数の試験冗長回転角を示す試験冗長回転角情報を記憶部３２から読み出す。そして、ロボット制御部３６９は、読み出した試験冗長回転角情報が示す複数の試験冗長回転角毎に、ステップＳ２７０〜ステップＳ３４０の処理を繰り返し行う（ステップＳ２６０）。
【００９８】
複数の試験冗長回転角には、例えば、冗長回転角を基準となる冗長回転角から、０°〜３６０°の範囲において第５所定角度ずつ回転させた冗長回転角のそれぞれが含まれる。冗長回転角のうちの基準となる冗長回転角は、例えば、０°である。なお、当該基準となる冗長回転角は、これに代えて、他の冗長回転角であってもよい。第５所定角度は、例えば、２０°である。なお、第５所定角度は、２０°に代えて、３６０°を等分割することができる角度であれば２０°より小さな角度であってもよく、２０°より大きな角度であってもよい。
【００９９】
ステップＳ２６０において試験冗長回転角を選択した後、ロボット制御部３６９は、記憶部３２に予め記憶された複数の試験ポーズ情報を記憶部３２から読み出す。そして、ロボット制御部３６９は、読み出した複数の試験ポーズ情報毎に、ステップＳ２８０〜ステップＳ３４０の処理を繰り返し行う（ステップＳ２７０）。
【０１００】
複数の試験ポーズ情報のそれぞれは、例えば、回転角を互いに１８０°異なる２つの回転角のうちの小さい方の回転角と大きい方の回転角とのいずれにするかを示す情報の組み合わせであって、フリップ可能関節である関節Ｊ２、関節Ｊ４、関節Ｊ６それぞれの当該情報の組み合わせのうちの一部が互いに異なる。
【０１０１】
ステップＳ２７０において試験ポーズ情報を選択した後、ロボット制御部３６９は、制御点Ｔの姿勢を変化させ、ステップＳ２５０において選択した試験姿勢と制御点Ｔの姿勢を一致させる。試験姿勢と制御点Ｔの姿勢とを一致させる際、ロボット制御部３６９は、制御点Ｔの位置及び姿勢が試験位置及び試験姿勢と一致している場合の基準平面を算出する。ロボット制御部３６９は、算出した基準平面に基づいて冗長回転角を回転させ、ステップＳ２６０において選択した試験冗長回転角と、冗長回転角とを一致させる。また、試験姿勢と制御点Ｔの姿勢とを一致させる際、ロボット制御部３６９は、ステップＳ２７０において選択した試験ポーズ情報に基づいてフリップ可能関節を回転させ、フリップ可能関節それぞれの回転角を、当該試験ポーズ情報が指定する回転角と一致させる（ステップＳ２８０）。
【０１０２】
次に、撮像制御部３６１は、撮像部１０に作業領域ＲＡを含む範囲を撮像させる（ステップＳ２９０）。次に、画像取得部３６２は、ステップＳ２９０において撮像部１０が撮像した撮像画像を撮像部１０から取得する（ステップＳ３００）。次に、検出部３７０は、ステップＳ３００において画像取得部３６２が取得した撮像画像に含まれる制御点Ｔの位置及び姿勢を検出する検出処理を実行する（ステップＳ３１０）。当該位置及び姿勢は、撮像部座標系ＣＣにおける位置及び姿勢である。例えば、検出部３７０は、記憶部３２に予め記憶されたエンドエフェクターＥのリファレンスモデルに基づくパターンマッチングによって当該撮像画像から当該位置及び姿勢を検出する。エンドエフェクターＥのリファレンスモデルは、エンドエフェクターＥの三次元形状、色彩、模様等を三次元モデル化して得られた三次元モデルデータであり、例えば、ＣＧによって表される。なお、検出部３７０は、パターンマッチングに代えて、エンドエフェクターＥにマーカーを設け、当該マーカーによって当該位置及び姿勢を検出する手法等の他の手法によって当該撮像画像から当該位置及び姿勢を検出する構成であってもよい。
【０１０３】
次に、回転角情報取得部３６６は、マニピュレーターＭの各関節が備えるアクチュエーターの回転角を示す回転角情報を、当該アクチュエーターが備えるエンコーダーから取得する。そして、算出部３６３は、回転角情報取得部３６６が当該エンコーダーから取得した回転角情報と、順運動学とに基づいて、ロボット座標系ＲＣにおける制御点Ｔの位置及び姿勢を算出する算出処理を実行する（ステップＳ３２０）。次に、算出部３６３は、ステップＳ３１０において検出された制御点Ｔの位置及び姿勢であって撮像部座標系ＣＣにおける位置及び姿勢を表す第１行列と、ステップＳ３２０において算出した制御点Ｔの位置及び姿勢であってロボット座標系ＲＣにおける位置及び姿勢を表す第２行列とを算出する。そして、変換行列生成部３６７は、算出部３６３が算出した当該第１行列及び当該第２行列と、上記の式（１）とに基づいて変換行列を生成する（ステップＳ３３０）。次に、記憶制御部３６８は、ステップＳ３３０において生成された変換行列に、ステップＳ２３０において選択された測定点の位置を示す位置情報と、ステップＳ２５０において選択された試験姿勢を示す姿勢情報と、ステップＳ２６０において選択された試験冗長回転角を示す冗長回転角情報と、ステップＳ２７０において選択された試験ポーズ情報とを対応付けて記憶部３２に記憶された変換行列テーブルに格納する（ステップＳ３４０）。この際、記憶制御部３６８は、記憶部３２の記憶領域内に変換行列テーブルが存在しない場合、当該記憶領域内に変換行列テーブルを生成する。
【０１０４】
ステップＳ２７０〜ステップＳ３４０の処理を未選択の試験ポーズ情報がなくなるまで繰り返し行った後、回転角情報取得部３６６と、変換行列生成部３６７と、記憶制御部３６８と、ロボット制御部３６９と、検出部３７０とのそれぞれは、ステップＳ２６０において次の試験冗長回転角を選択し、再びステップＳ２７０〜ステップＳ３４０の処理を行う。
【０１０５】
また、ステップＳ２６０〜ステップＳ３４０の処理を未選択の試験冗長回転角がなくなるまで繰り返し行った後、回転角情報取得部３６６と、変換行列生成部３６７と、記憶制御部３６８と、ロボット制御部３６９と、検出部３７０とのそれぞれは、ステップＳ２５０において次の試験姿勢を選択し、再びステップＳ２６０〜ステップＳ３４０の処理を行う。
【０１０６】
また、ステップＳ２５０〜ステップＳ３４０の処理を未選択の試験姿勢がなくなるまで繰り返し行った後、回転角情報取得部３６６と、変換行列生成部３６７と、記憶制御部３６８と、ロボット制御部３６９と、検出部３７０とのそれぞれは、ステップＳ２３０において次の測定点を選択し、再びステップＳ２４０〜ステップＳ３４０の処理を行う。
【０１０７】
このような繰り返し処理により、ロボット制御装置３０は、図５に示したような位置情報と姿勢情報と冗長回転角情報とポーズ情報とが対応付けられた変換行列を複数生成することができる。これにより、ロボット制御装置３０は、分割領域に応じた複数の測定点毎に生成された１以上の変換行列に基づいて、ロボットが行う作業の精度を向上させることができる。
【０１０８】
＜実施形態の変形例＞
以下、図８を参照し、実施形態の変形例について説明する。
図８は、変換行列テーブルの他の例を示す図である。実施形態において説明した変換行列には、図８に示すように、ロボット座標系ＲＣにおける撮像部１０の位置及び姿勢を示す撮像部位置姿勢情報が対応付けられる構成であってもよい。ロボット座標系ＲＣにおける撮像部１０の位置は、この一例において、撮像部１０の重心の位置によって表される。また、撮像部１０のロボット座標系ＲＣにおける姿勢は、撮像部姿勢座標系の各座標軸のロボット座標系ＲＣにおける方向によって表される。撮像部姿勢座標系は、撮像部１０の位置に対応付けられた三次元局所座標系である。
【０１０９】
この場合、ロボット制御装置３０は、複数の撮像部試験位置及び撮像部試験姿勢のそれぞれと、ロボット座標系ＲＣにおける撮像部１０の位置及び姿勢とを一致させる毎に、図６に示したフローチャートの処理を実行する。そして、ロボット制御装置３０は、当該処理を実行した結果として得られた変換行列のそれぞれに対して、当該処理が実行されている間において設置されていた撮像部１０の撮像部試験位置及び撮像部試験姿勢を示す撮像部位置姿勢情報を対応付ける。
【０１１０】
ロボット制御装置３０は、撮像部位置姿勢情報が対応付けられた複数の変換行列の中から対象変換行列を選択する際、ユーザーにより予め入力された情報であって現在の撮像部１０の位置及び姿勢と最も近い位置及び姿勢を示す撮像部位置姿勢情報が対応付けられた複数の変換行列を選択する。そして、ロボット制御装置３０は、選択した複数の変換行列の中から、前述の所定の条件を満たす変換行列を対象変換行列として選択する。
【０１１１】
これにより、ロボット制御装置３０は、撮像部１０の位置及び姿勢を変えた場合であっても、変換行列を生成し直すことなく、撮像位置姿勢情報が対応付けられた変換行列に基づいて、ロボットが行う作業の精度を向上させることができる。
【０１１２】
＜実施形態の他の変形例＞
上記において説明した実施形態において、撮像部１０は、ロボット２０と別体としてロボットシステム１に備えられていたが、これに代えて、ロボット２０が備える構成であってもよい。この場合、上記の実施形態の変形例において説明したように、変換行列には、撮像部位置姿勢情報が対応付けられる。
【０１１３】
また、ロボット制御部３６９は、図６に示したステップＳ２５０において、試験姿勢情報が示す複数の試験姿勢の中から制御点Ｔの姿勢を一致させることが不可能な試験姿勢を除外し、残った１以上の試験姿勢毎にステップＳ２６０〜ステップＳ３４０の処理を繰り返し行う構成であってもよい。
【０１１４】
また、ロボット制御部３６９は、図６に示したステップＳ２６０において、試験冗長回転角情報が示す複数の試験冗長回転角の中から冗長回転角を一致させることが不可能な試験冗長回転角を除外し、残った１以上の試験冗長回転角毎にステップＳ２７０〜ステップＳ３４０の処理を繰り返し行う構成であってもよい。
【０１１５】
また、上記において説明した変換行列は、撮像部座標系ＣＣにおける位置及び姿勢を表す第１行列を、ロボット座標系ＲＣにおける位置及び姿勢を表す第２行列に変換する変換行列であったが、これに代えて、他の２つの座標系における位置及び姿勢のそれぞれを表す行列のうちの一方を他方に変換させる行列であってもよい。例えば、２つのロボット２０を備えるロボットシステムにおいて、１つ目のロボット２０におけるロボット座標系における位置及び姿勢を表す第１行列を、２つ目のロボット２０におけるロボット座標系における位置及び姿勢を表す第２行列に変換する変換行列であってもよい。この場合、ロボット制御装置３０は、複数の当該変換行列の中から所定の条件を満たす変換行列を選択し、選択した変換行列に基づいて、これら２つのロボット２０に協働作業を高い精度で行わせることができる。協働作業は、ある対象物に対して２つのロボット２０がそれぞれ異なる作業を同じ期間内に行う作業のことである。
【０１１６】
また、上記において説明した変換行列テーブルには、複数の変換行列が、位置及び姿勢を表す位置姿勢行列と、冗長回転角情報と、ポーズ情報とに対応付けられて格納されている構成であったが、これに代えて、複数の第１行列及び第２行列が、冗長回転角情報と、ポーズ情報とに対応付けられて格納されている構成であってもよい。
【０１１７】
この場合、図６に示したフローチャートにおけるステップＳ３３０の処理において算出部３６３は、ステップＳ３１０において検出された制御点Ｔの位置及び姿勢であって撮像部座標系ＣＣにおける位置及び姿勢を表す第１行列と、ステップＳ３２０において算出した制御点Ｔの位置及び姿勢であってロボット座標系ＲＣにおける位置及び姿勢を表す第２行列とを算出する。そして、ステップＳ３４０の処理において変換行列生成部３６７は、当該第１行列及び当該第２行列に、ステップＳ２６０において選択された試験冗長回転角を示す冗長回転角情報と、ステップＳ２７０において選択された試験ポーズ情報とを対応付けて記憶部３２に記憶された変換行列テーブルに格納する。
【０１１８】
図９は、複数の第１行列及び第２行列が、冗長回転角情報と、ポーズ情報とに対応付けられて格納されている変換行列テーブルの一例を示す図である。図９に示したように、当該変換行列テーブルには、複数の第１行列及び第２行列が、冗長回転角情報と、ポーズ情報とに対応付けられて格納されている。当該変換行列テーブル内において、複数の第１行列及び第２行列のそれぞれは、第１行列及び第２行列に対応付けられた冗長回転角情報が示す冗長回転角と、ポーズ情報との少なくとも１つが互いに異なる。なお、変換行列テーブルには、冗長回転角情報と、ポーズ情報との一部が対応付けられた第１行列及び第２行列が格納されている構成であってもよく、冗長回転角情報と、ポーズ情報とのうち一方又は両方に代えて、他の情報が対応付けられた第１行列及び第２行列が格納されている構成であってもよい。
【０１１９】
変換行列テーブルが図９に示したようなテーブルであった場合、図４に示したフローチャートにおけるステップＳ１４０において変換行列選択部３６４は、記憶部３２に予め記憶された冗長回転角情報と、ポーズ情報とを読み出す。そして、変換行列選択部３６４は、記憶部３２から読み出した変換行列テーブルの中から所定の第２条件を満たす１つのレコードを対象レコードとして選択する。所定の第２条件は、この一例において、以下に示す１Ａ）〜３Ａ）の３つの条件のすべてを満たすことである。なお、所定の第２条件は、当該３つの条件のうちの一部の条件を満たす構成であってもよく、当該３つの条件の一部又は全部に代えて、他の条件を満たす構成であってもよい。
【０１２０】
１Ａ）ステップＳ１３０において検出部３７０が検出した物体Ｏの位置及び姿勢に最も近い位置及び姿勢を表す第２行列を含むレコードであること。当該位置及び姿勢は、撮像部座標系ＣＣにおける位置及び姿勢である。
２Ａ）記憶部３２に予め記憶された冗長回転角情報、すなわちユーザーから予め入力された冗長回転角情報が示す冗長回転角に最も近い冗長回転角を示す冗長回転角情報が対応付けられた第２行列を含むレコードであること。
３Ａ）記憶部３２に予め記憶されたポーズ情報、すなわちユーザーから予め入力されたポーズ情報と一致するポーズ情報が対応付けられた第２行列を含むレコードであること。
【０１２１】
変換行列選択部３６４がステップＳ１４０において対象レコードを変換行列テーブルの中から選択した後、変換行列生成部３６７は、対象レコードに含まれる第１行列及び第２行列と、上記の式（１）とに基づいて変換行列を対象変換行列として生成する。そして、ステップＳ１５０において行列変換部３６５は、変換行列選択部３６４が生成した当該対象変換行列に基づいて、ステップＳ１４５において算出部３６３が算出した第１行列を第２行列に変換する変換処理を実行する。
【０１２２】
このように、変換行列テーブルが図９に示したようなテーブルであった場合であっても、ロボット制御装置３０は、撮像部１０により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系ＣＣにおける物体Ｏの位置及び姿勢を表す第１行列を、ロボット座標系ＲＣにおける物体Ｏの位置及び姿勢を表す第２行列に変換する変換行列を生成する。そして、ロボット制御装置３０は、生成した変換行列に基づいて所定の作業を行う。これにより、ロボット２０は、ロボット２０が行う作業の精度を向上させることができる。
【０１２３】
以上のように、ロボット２０は、撮像部（この一例において、撮像部１０）により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系（この一例において、撮像部座標系ＣＣ）における対象物（この一例において、物体Ｏ）の位置及び姿勢を表す第１情報（この一例において、第１行列）を、第１座標系（この一例において、ロボット座標系ＲＣ）における当該対象物の位置及び姿勢を表す第２情報（この一例において、第２行列）に変換する変換情報（この一例において、変換行列）が複数あり、複数の変換情報の中から１つの変換情報を対象変換情報として選択し、選択した当該変換情報に基づいて所定の作業を行う。これにより、ロボット２０は、ロボット２０が行う作業の精度を向上させることができる。
【０１２４】
また、ロボット２０は、変換情報に対応付けられた位置情報が示す位置と、撮像画像から検出された対象物の撮像部座標系における位置とが最も近い変換情報を対象変換情報として選択する。これにより、ロボット２０は、位置情報が対応付けられた変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１２５】
また、ロボット２０は、変換情報には更に、撮像部座標系における姿勢を示す姿勢情報が対応付けられており、変換情報に対応付けられた姿勢情報が示す姿勢と、撮像画像から検出された対象物の撮像部座標系における姿勢とが最も近い変換情報を対象変換情報として選択する。これにより、ロボット２０は、姿勢情報が対応付けられた変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１２６】
また、ロボット２０は、変換情報に対応付けられた冗長回転角情報が示す冗長回転角と、予め入力された冗長回転角とが最も近い変換情報を対象変換情報として選択する。これにより、ロボット２０は、冗長回転角情報が対応付けられた変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１２７】
また、ロボット２０は、変換情報に対応付けられたポーズ情報と、予め入力されたポーズ情報とが一致する変換情報を対象変換情報として選択する。これにより、ロボット２０は、ポーズ情報が対応付けられた変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１２８】
また、ロボット２０は、ロボット２０が作業を行う領域（この一例において、作業領域ＲＡ）を複数の分割領域に分割し、分割領域に応じた複数の測定点毎に１以上の変換情報を生成する。これにより、ロボット２０は、分割領域に応じた複数の測定点毎に生成された１以上の変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１２９】
また、ロボット２０は、測定点毎に、測定点にロボット２０の制御点（この一例において、制御点Ｔ）を一致させてから変換情報を生成する処理を実行する。これにより、ロボット２０は、測定点毎に実行された処理であって変換情報を生成する処理によって生成された変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１３０】
また、ロボット２０は、制御点の第１座標系における位置を保持したまま、制御点の第１座標系における姿勢を変更する毎に変換情報を生成する処理である。これにより、ロボット２０は、測定点毎に、測定点にロボットの制御点を一致させた状態を保持したまま、制御点のロボット座標系における姿勢を変更する毎に変換情報を生成する処理によって生成された変換情報に基づいて、ロボットが行う作業の精度を向上させることができる。
【０１３１】
また、ロボット２０は、制御点のロボット座標系における位置を保持したまま、ロボット２０が備える関節のうちの３つの旋回関節を結ぶことによって形成される三角形を含む平面である対象平面の基準平面に対する角度である冗長回転角を変更する毎に変換情報を生成する処理を実行する。これにより、ロボット２０は、測定点毎に、測定点にロボットの制御点を一致させた状態を保持したまま、冗長回転角を変更する毎に変換情報を生成する処理によって生成された変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１３２】
また、ロボット２０は、ロボットが備える各関節のうちの回転角が互いに１８０°異なる２つの回転角のいずれであっても制御点の位置及び姿勢を第１位置及び第１姿勢と一致させることが可能な関節であるフリップ可能関節（この一例において、関節Ｊ２、関節Ｊ４、関節Ｊ６）の回転角を、互いに１８０°異なる２つの回転角のうちの小さい方の回転角と大きい方の回転角とのいずれかに変更する毎に変換情報を生成する処理を実行する。これにより、ロボット２０は、測定点毎に、測定点にロボット２０の制御点を一致させた状態を保持したまま、フリップ可能関節の回転角を変更する毎に変換情報を生成する処理によって生成された変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１３３】
また、ロボット２０は、変換情報に対応付けられた撮像位置姿勢情報が示す撮像位置姿勢と、予め入力された撮像位置姿勢とが一致する変換情報を対象変換情報として選択する。これにより、ロボット２０は、撮像位置姿勢情報が対応付けられた変換情報に基づいて、ロボット２０が行う作業の精度を向上させることができる。
【０１３４】
また、ロボット２０は、撮像部により撮像された撮像画像上の位置及び姿勢を表す撮像部座標系における対象物の位置及び姿勢を表す第１行列を、ロボット座標系（この一例において、ロボット座標系ＲＣ）における当該対象物の位置及び姿勢を表す第２行列に変換する変換行列が複数あり、複数の変換行列の中から１つの変換行列を対象変換行列として選択し、選択した当該変換行列に基づいて所定の作業を行う。これにより、ロボット２０は、ロボット２０が行う作業の精度を向上させることができる。
【０１３５】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１３６】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１３７】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１３８】
１…ロボットシステム、２０…ロボット、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、３６１…撮像制御部、３６２…画像取得部、３６３…算出部、３６４…変換行列選択部、３６５…行列変換部、３６６…回転角情報取得部、３６７…変換行列生成部、３６８…記憶制御部、３６９…ロボット制御部、３７０…検出部
【図１】
2017170571.tif 000005
【図２】
2017170571.tif 000006
【図３】
2017170571.tif 000007
【図４】
2017170571.tif 000008
【図５】
2017170571.tif 000009
【図６】
2017170571.tif 000010
【図７】
2017170571.tif 000011
【図８】
2017170571.tif 000012
【図９】
2017170571.tif 000013