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