(57)【要約】【課題】複数の校正したい領域でのマニピュレーターの間の校正を効率的に行うことができるロボットシステムを提供すること。【解決手段】ロボットは、第１アームと、第２アームと、第１力センサーと、を備え、第１アームの先端と第２アームの先端との位置関係を一定にした状態で第１アームと第２アームとを動作させ、第１アームの座標系と第２アームの座標系との座標変換行列を算出する。【選択図】図４
2016120556.tif 000002
【特許請求の範囲】
【請求項１】
第１アームと、第２アームと、第１力センサーと、を備え、
前記第１アームの先端と前記第２アームの先端との位置関係を一定にした状態で前記第１アームと前記第２アームとを動作させ、前記第１アームの座標系と前記第２アームの座標系との座標変換行列を算出する、
ロボット。
【請求項２】
請求項１に記載のロボットであって、
第２力センサーを備え、
前記第１力センサーと前記第２力センサーから取得される情報に基づいて、前記第１アームと前記第２アームのうち少なくとも一方を前記第１力センサーと前記第２力センサーのうちいずれか一方又は両方の出力値に基づいて動作させる、
ロボット。
【請求項３】
請求項１又は２に記載のロボットであって、
前記第１アームの先端と前記第２アームの先端とを向かい合わせ、前記第１アームと前記第２アームのうち一方が他方に対して所定の大きさの力を加え続ける状態を保持し、前記位置関係を一定にした状態で前記第１アームと前記第２アームを動作させる、
ロボット。
【請求項４】
請求項３に記載のロボットであって、
前記第１アームの先端と前記第２アームの先端との間に治具を挟み込ませ、前記所定の大きさの力を加え続ける状態を保持する、
ロボット。
【請求項５】
請求項１から４のうちいずれか一項に記載のロボットであって、
前記第１アームの所定位置又は前記第２アームの所定位置と、校正したい領域内の３以上の計測点のそれぞれとを一致させ、前記計測点のそれぞれにおいて前記第１アームの所定位置及び前記第２アームの所定位置とともに動く予め決められた点の位置を前記第１アームの座標系及び前記第２アームの座標系で算出し、前記計測点のそれぞれにおいて算出された前記第１アームの座標系及び前記第２アームの座標系での前記予め決められた点の位置に基づいて前記座標変換行列を算出する、
ロボット。
【請求項６】
第１アームと、第２アームと、第１力センサーと、を備えるロボットと、
前記ロボットを動作させる制御装置と、を含み、
前記制御装置は、
前記第１アームの先端と前記第２アームの先端との位置関係を一定にした状態で前記第１アームと前記第２アームとを動作させ、前記第１アームの座標系と前記第２アームの座標系との座標変換行列を算出する、
ロボットシステム。
【請求項７】
ロボットが備える第１アームの先端と、前記ロボットが備える第２アームの先端との位置関係を一定にした状態で前記第１アームと前記第２アームとを動作させ、前記第１アームの座標系と前記第２アームの座標系との座標変換行列を算出する、
制御装置。
【請求項８】
ロボットが備える第１アームの先端と、前記ロボットが備える第２アームの先端との位置関係を一定にした状態で前記第１アームと前記第２アームとを動作させ、前記第１アームの座標系と前記第２アームの座標系との座標変換行列を算出する、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、ロボットシステム、制御装置、及び制御方法に関する。
【背景技術】
【０００２】
ロボットに精度の高い作業を行わせるため、ロボットの機構や撮像装置、作業環境等の校正について研究・開発が行われている。
【０００３】
これに関し、複数のマニピュレーターで協調作業を行うために、複数のロボットの位置合わせを行う発明が行われている（特許文献１、特許文献２参照）。
【０００４】
例えば、特許文献１に記載の産業用ロボットシステムは、第１のマニピュレーターと第２のマニピュレーターを備える。そして、この特許文献１の産業用ロボットシステムでは、ある回転部に取り付けられた１点の位置を、回転部の回転角を変えながら、第１及び第２のマニピュレーターに対して３回教示することにより、第１及び第２のマニピュレーター間の相対位置及び姿勢を計算する。
【０００５】
また、特許文献２に記載の複数ロボットの相対位置関係取得方式では、第１のロボットに力覚センサ及び形状が既知の面を有する面状ツールを取り付け、第２のロボットに針状ツールを取り付け、針状ツールを面状ツールに所定の力で静的に接触させた状態にする。また、この方式では、力覚センサーで検出される力成分，トルク成分及び第１のロボットの姿勢より力点（接触点）の第１のロボットのベース座標系の位置を求め、さらに第２のロボットの該第２のロボットのベース座標系上の針状ツール先端位置を求める。なお、この方式では、同一直線上にない３点に対して針状ツールを面状ツールに同様に接触させて各々のロボット座標系上の位置を求める。そして、この方式では、これら３点より第１のロボットのベース座標系で表した第２のロボットのベース座標系の同次変換行列の６つのパラメーターを決定し、第１のロボットと第２のロボットの位置関係を得る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３０７０３２９号公報
【特許文献２】特開平５−１１１８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数のアームを備えるロボットにおいて、上記の特許文献１及び特許文献２に記載のロボットでは、アームを構成するマニピュレーターの間の相対的な位置関係を３点以上計測することにより、複数のアームの間の相対的な位置及び姿勢を算出している。しかしながら、特許文献１及び特許文献２のロボットでは、手作業により３点以上の計測点を教示しなければならず、さらに複数のアームの間の相対的な位置及び姿勢を複数の作業領域で校正する場合、作業領域の数だけ校正作業を繰り返さなければならず、多くの作業時間と労力が必要であった。
【０００８】
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、複数の校正したい領域でのマニピュレーターの間の校正を効率的に行うことができるロボット、ロボットシステム、制御装置、及び制御方法を提供する。
【課題を解決するための手段】
【０００９】
本発明の一態様は、第１アームと、第２アームと、第１力センサーと、を備え、前記第１アームの先端と前記第２アームの先端との位置関係を一定にした状態で前記第１アームと前記第２アームとを動作させ、前記第１アームの座標系と前記第２アームの座標系との座標変換行列を算出する、ロボットである。
この構成により、ロボットは、第１アームと、第２アームと、第１力センサーと、を備え、第１アームの先端と第２アームの先端との位置関係を一定にした状態で第１アームと第２アームとを動作させ、第１アームの座標系と第２アームの座標系との座標変換行列を算出する。これにより、ロボットシステムは、複数の校正したい領域でのマニピュレーターの間の校正を効率的に行うことができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、第２力センサーを備え、前記第１力センサーと前記第２力センサーから取得される情報に基づいて、前記第１アームと前記第２アームのうち少なくとも一方を前記第１力センサーと前記第２力センサーのうちいずれか一方又は両方の出力値に基づいて動作させる、構成が用いられてもよい。
この構成により、ロボットは、第１力センサーと第２力センサーから取得される情報に基づいて、第１アームと第２アームのうち少なくとも一方を第１力センサーと第２力センサーのうちいずれか一方又は両方の出力値に基づいて動作させる。これにより、ロボットは、第１力センサーと第２力センサーのうちいずれか一方又は両方の出力値に基づく制御によって第１アームの先端と第２アームの先端の位置関係を一定にした状態で第１アームと第２アームを動作させることができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記第１アームの先端と前記第２アームの先端とを向かい合わせ、前記第１アームと前記第２アームのうち一方が他方に対して所定の大きさの力を加え続ける状態を保持し、前記位置関係を一定にした状態で前記第１アームと前記第２アームを動作させる、構成が用いられてもよい。
この構成により、ロボットは、第１アームの先端と第２アームの先端とを向かい合わせ、第１アームと第２アームのうち一方が他方に対して所定の大きさの力を加え続ける状態を保持し、第１アームの先端と第２アームの先端との位置関係を一定にした状態で第１アームと第２アームを動作させる。これにより、ロボットは、第１アームの先端の位置と第２アームの先端の位置関係がずれてしまうことを抑制することができる。
【００１２】
また、本発明の他の態様は、ロボットにおいて、前記第１アームの先端と前記第２アームの先端との間に治具を挟み込ませ、前記所定の大きさの力を加え続ける状態を保持する、構成が用いられてもよい。
この構成により、ロボットは、第１アームの先端と第２アームの先端との間に治具を挟み込ませ、所定の大きさの力を加え続ける状態を保持する。これにより、ロボットは、治具によって第１アームの先端の位置と第２アームの先端の位置との位置関係がずれてしまうことをより確実に抑制することができる。
【００１３】
また、本発明の他の態様は、ロボットにおいて、前記第１アームの所定位置又は前記第２アームの所定位置と、校正したい領域内の３以上の計測点のそれぞれとを一致させ、前記計測点のそれぞれにおいて前記第１アームの所定位置及び前記第２アームの所定位置とともに動く予め決められた点の位置を前記第１アームの座標系及び前記第２アームの座標系で算出し、前記計測点のそれぞれにおいて算出された前記第１アームの座標系及び前記第２アームの座標系での前記予め決められた点の位置に基づいて前記座標変換行列を算出する、構成が用いられてもよい。
この構成により、ロボットは、第１アームの所定位置又は第２アームの所定位置と、校正したい領域内の３以上の計測点のそれぞれとを一致させ、計測点のそれぞれにおいて第１アームの所定位置及び第２アームの所定位置とともに動く予め決められた点の位置を第１アームの座標系及び第２アームの座標系で算出し、計測点のそれぞれにおいて算出された第１アームの座標系及び第２アームの座標系での予め決められた点の位置に基づいて座標変換行列を算出する。これにより、ロボットは、計測点のそれぞれにおいて算出された第１アームの座標系及び第２アームの座標系での予め決められた点の位置に基づいて座標変換行列によりマニピュレーターの間の校正を行うことができる。
【００１４】
また、本発明の他の態様は、第１アームと、第２アームと、第１力センサーと、を備えるロボットと、前記ロボットを動作させる制御装置と、を含み、前記制御装置は、前記第１アームの先端と前記第２アームの先端との位置関係を一定にした状態で前記第１アームと前記第２アームとを動作させ、前記第１アームの座標系と前記第２アームの座標系との座標変換行列を算出する、ロボットシステムである。
この構成により、ロボットシステムは、第１アームの先端と第２アームの先端との位置関係を一定にした状態で第１アームと第２アームとを動作させ、第１アームの座標系と第２アームの座標系との座標変換行列を算出する。これにより、ロボットシステムは、複数の校正したい領域でのマニピュレーターの間の校正を効率的に行うことができる。
【００１５】
また、本発明の他の態様は、ロボットが備える第１アームの先端と、前記ロボットが備える第２アームの先端との位置関係を一定にした状態で前記第１アームと前記第２アームとを動作させ、前記第１アームの座標系と前記第２アームの座標系との座標変換行列を算出する、制御装置である。
この構成により、制御装置は、ロボットが備える第１アームの先端と、ロボットが備える第２アームの先端との位置関係を一定にした状態で第１アームと第２アームとを動作させ、第１アームの座標系と第２アームの座標系との座標変換行列を算出する。これにより、制御装置は、複数の校正したい領域でのマニピュレーターの間の校正を効率的に行うことができる。
【００１６】
また、本発明の他の態様は、ロボットが備える第１アームの先端と、前記ロボットが備える第２アームの先端との位置関係を一定にした状態で前記第１アームと前記第２アームとを動作させ、前記第１アームの座標系と前記第２アームの座標系との座標変換行列を算出する、制御方法である。
この構成により、制御方法は、ロボットが備える第１アームの先端と、ロボットが備える第２アームの先端との位置関係を一定にした状態で第１アームと第２アームとを動作させ、第１アームの座標系と第２アームの座標系との座標変換行列を算出する。これにより、制御方法は、複数の校正したい領域でのマニピュレーターの間の校正を効率的に行うことができる。
【００１７】
以上により、ロボットシステム、ロボット、制御装置、及び制御方法は、第１アームの先端と第２アームの先端との位置関係を一定にした状態で第１アームと第２アームとを動作させ、第１アームの座標系と第２アームの座標系との座標変換行列を算出する。これにより、ロボットシステム、ロボット、制御装置、及び制御方法は、複数の校正したい領域でのマニピュレーターの間の校正を効率的に行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態に係るロボットシステム１の一例を示す構成図である。
【図２】治具５０の一例を示す図である。
【図３】制御装置３０のハードウェア構成の一例を示す図である。
【図４】制御装置３０の機能構成の一例を示す図である。
【図５】制御装置３０によるマニピュレーターの校正処理の流れの一例を示すフローチャートである。
【図６】第１エンドエフェクターＥＮＤ１及び第２エンドエフェクターＥＮＤ２により治具５０が把持された状態の一例を示す図である。
【図７】校正領域と、校正領域内の複数の計測点とを例示する図である。
【図８】治具５０ａの一例を示す図である。
【図９】第２実施形態に係るロボットシステム２の一例を示す構成図である。
【図１０】制御装置３０ａの機能構成の一例を示す図である。
【図１１】制御装置３０ａがロボット２０に所定の協調作業を行わせる処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
＜第１実施形態＞
以下、本発明の第１実施形態について、図面を参照して説明する。図１は、本発明の第１実施形態に係るロボットシステム１の一例を示す構成図である。ロボットシステム１は、複数のマニピュレーターを備えるロボット２０と、制御装置３０を備える。
【００２０】
まず、ロボットシステム１が具備するロボット２０と制御装置３０について説明する。
ロボット２０は、第１動撮像部１１と、第２動撮像部１２と、第１固定撮像部２１と、第２固定撮像部２２と、第１力センサー２３−１と、第２力センサー２３−２と、物体を把持可能な爪部を備える第１エンドエフェクターＥＮＤ１と、物体を把持可能な爪部を備える第２エンドエフェクターＥＮＤ２と、第１マニピュレーターＭＮＰ１と、第２マニピュレーターＭＮＰ２と、図示しない複数のアクチュエーターを備えた双腕ロボットである。
【００２１】
双腕ロボットとは、第１アームと第２アームの２本のアーム（腕）を有するロボットを示す。第１アームは、第１エンドエフェクターＥＮＤ１と第１マニピュレーターＭＮＰ１（又は、第１マニピュレーターＭＮＰ１のみ）によって構成される。また、第２アームは、第２エンドエフェクターＥＮＤ２と第２マニピュレーターＭＮＰ２（又は、第２マニピュレーターＭＮＰ２のみ）によって構成される。なお、ロボット２０は、双腕ロボットに代えて、３本以上のアームを有するロボットであってもよい。なお、以下の説明では、第１マニピュレーターＭＮＰ１又は第１エンドエフェクターＥＮＤ１の動作は、第１アームの動作を示す。また、以下の説明では、第２マニピュレーターＭＮＰ２又は第２エンドエフェクターＥＮＤ２の動作は、第２アームの動作を示す。
【００２２】
また、複数のアクチュエーターはそれぞれ、第１マニピュレーターＭＮＰ１が備える各関節、及び第２マニピュレーターＭＮＰ２が備える各関節に備えられる。これら複数のアクチュエーターの回転角を示す情報は、それぞれのアクチュエーターに係るエンコーダーにより出力される。
【００２３】
第１アームは、７軸垂直多関節型となっており、支持台と第１マニピュレーターＭＮＰ１と第１エンドエフェクターＥＮＤ１とがアクチュエーターによる連携した動作によって７軸の自由度の動作を行うことができる。なお、第１アームは、６自由度（６軸）以下で動作するものであってもよく、８自由度（８軸）以上で動作するものであってもよい。また、第１アームは、第１動撮像部１１を備える。
【００２４】
第１動撮像部１１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。第１動撮像部１１は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。
【００２５】
なお、第１動撮像部１１と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。第１動撮像部１１は、図１に示したように第１腕を構成する第１マニピュレーターＭＮＰ１の一部に備えられており、第１アームの動きによって移動することが可能である。
【００２６】
第２アームは、７軸垂直多関節型となっており、支持台と第２マニピュレーターＭＮＰ２と第２エンドエフェクターＥＮＤ２とがアクチュエーターによる連携した動作によって６軸の自由度の動作を行うことができる。なお、第２アームは、６自由度（６軸）以下で動作するものであってもよく、８自由度（８軸）以上で動作するものであってもよい。また、第２アームは、第２動撮像部１２を備える。
【００２７】
第２動撮像部１２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第２動撮像部１２は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２動撮像部１２と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。第２動撮像部１２は、図１に示したように第２腕を構成する第２マニピュレーターＭＮＰ２の一部に備えられており、第２アームの動きによって移動することが可能である。
【００２８】
第１固定撮像部２１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第１固定撮像部２１は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２動撮像部１２と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００２９】
第２固定撮像部２２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第２固定撮像部２２は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２固定撮像部２２と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
なお、本実施形態において、ロボット２０は、第１動撮像部１１、第２動撮像部１２、第１固定撮像部２１、第２固定撮像部２２の一部又は全部を備えない構成であってもよい。
【００３０】
第１力センサー２３−１は、ロボット２０の第１エンドエフェクターＥＮＤ１と第１マニピュレーターＭＮＰ１との間に備えられている。第１力センサー２３−１は、第１エンドエフェクターＥＮＤ１に作用した力やモーメントを検出する。第１力センサー２３−１は、検出した力やモーメントを示す情報（以下、力センサー情報と称する）を、通信により制御装置３０へ出力する。
【００３１】
第２力センサー２３−２は、第２エンドエフェクターＥＮＤ２と第２マニピュレーターＭＮＰ２との間に備えられている。第２力センサー２３−２は、第２エンドエフェクターＥＮＤ２に作用した力やモーメントを検出する。第２力センサー２３−２は、検出した力やモーメントを示す情報（以下、力センサー情報と称する）を、通信により制御装置３０へ出力する。第１力センサー２３−１と第２力センサー２３−２のうちいずれか一方又は両方により検出された力センサー情報は、例えば、制御装置３０によるロボット２０の力センサー情報に基づく制御（例えば、コンプライアンス制御等）等に用いられる。なお、以下では、第１力センサー２３−１と第２力センサー２３−２を区別する必要が無い限り、まとめて力センサー２３と称して説明する。また、本実施形態において、ロボット２０は、第１力センサー２３−１と第２力センサー２３−２のうちいずれか一方を備えない構成であってもよい。力センサー情報に含まれる力の大きさやモーメントの大きさを示す値は、力センサーの出力値の一例である。
【００３２】
ロボット２０が備える第１動撮像部１１、第２動撮像部１２、第１固定撮像部２１、第２固定撮像部２２、第１力センサー２３−１、第２力センサー２３−２、第１エンドエフェクターＥＮＤ１、第２エンドエフェクターＥＮＤ２、第１マニピュレーターＭＮＰ１、第２マニピュレーターＭＮＰ２、図示しない複数のアクチュエーターのそれぞれ（以下、ロボット２０が備える各機能部と称する）は、例えば、ロボット２０に内蔵されている制御装置３０とケーブルによって通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、ロボット２０が備える各機能部と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続されてもよい。
【００３３】
本実施形態において、ロボット２０が備える各機能部は、ロボット２０に内蔵された制御装置３０から制御信号を取得し、取得した制御信号に基づいて第１マニピュレーターＭＮＰ１、第１エンドエフェクターＥＮＤ１、第２マニピュレーターＭＮＰ２、第２エンドエフェクターＥＮＤ２を動かす。
【００３４】
また、ロボット２０は、制御装置３０を内蔵し、内蔵された制御装置３０により制御される。なお、ロボット２０は、制御装置３０を内蔵する構成に代えて、外部に設置された制御装置３０により制御される構成であってもよい。
【００３５】
制御装置３０は、ＧＵＩ（Graphical  User  Interface）を介したユーザーからの操作（例えば、ジョグ（ＪＯＧ）操作等）を受け付け、受け付けられた操作に基づいた動作を行うようにロボット２０を制御する。
【００３６】
次に、ロボットシステム１についての概要を説明する。
ロボットシステム１は、ロボット２０が備える複数のマニピュレーター（この一例において、２つのマニピュレーター）の間の校正を行う。以下では、説明の便宜上、ロボット２０が備える複数のマニピュレーターの間の校正を、単にマニピュレーターの校正と称して説明する。
【００３７】
ロボットシステム１が行うマニピュレーターの校正とは、第１ＴＣＰ（Tool  Center  Point）の位置と、第２ＴＣＰの位置とを共通の座標系において表すことができるように、第１座標系における第１ＴＣＰの位置を第２座標系における位置に変換（補正）する、又は第２座標系における第２ＴＣＰの位置を第１座標系における位置に変換することを示す。ロボットシステム１は、このマニピュレーターの校正を行うため、第１座標系における第１ＴＣＰの位置を第２座標系における位置に変換（補正）する座標変換行列を算出する、又は第２座標系における第２ＴＣＰの位置を第１座標系における位置に変換する座標変換行列を算出する。
【００３８】
ここで、第１ＴＣＰとは、第１マニピュレーターＭＮＰ１のＴＣＰを示す。また、第２ＴＣＰとは、第２マニピュレーターＭＮＰ２のＴＣＰを示す。なお、第１ＴＣＰは、第１アームの所定位置の一例である。また、第２ＴＣＰは、第２アームの所定位置の一例である。また、第１座標系とは、第１ＴＣＰの位置を表す座標系を示す。また、第２座標系とは、第２ＴＣＰの位置を表す座標系を示す。なお、第１座標系は、第１アームの座標系の一例である。また、第２座標系は、第２アームの座標系の一例である。
【００３９】
マニピュレーターの校正により、ロボットシステム１は、算出された座標変換行列に基づいて、ロボット２０に所定の協調作業を高い精度で行わせることができる。所定の協調作業とは、第１マニピュレーターＭＮＰ１と第２マニピュレーターＭＮＰ２の両方により行う作業であり、例えば、第１座標系又は第２座標系において第１ＴＣＰの位置と、第２ＴＣＰの位置とをそれぞれ同じ位置（例えば、ある位置Ｘ）に移動させて行う作業である。
【００４０】
より具体的には、所定の協調作業とは、この一例において、ロボット２０が第１マニピュレーターＭＮＰ１に設けられた第１エンドエフェクターＥＮＤ１によって把持している物体を、第１エンドエフェクターＥＮＤ１から第２マニピュレーターＭＮＰ２に設けられた第２エンドエフェクターＥＮＤ２に受け渡す（把持させる）作業等である。なお、以下では、第１座標系と第２座標系の間の座標変換行列を、単に座標変換行列と称して説明する。
【００４１】
なお、以下では、説明の便宜上、順運動学に基づいて算出される第１座標系における第１ＴＣＰの位置と、実際の第１ＴＣＰの位置とが一致するように第１マニピュレーターＭＮＰ１の校正が行われており、順運動学に基づいて算出される第２座標系における第２ＴＣＰの位置と、実際の第２ＴＣＰの位置とが一致するように第２マニピュレーターＭＮＰ２の校正が行われている場合について説明する。
【００４２】
また、ロボットシステム１は、座標変換行列を算出する際、第１エンドエフェクターＥＮＤ１と、第２エンドエフェクターＥＮＤ２の両方により図１に示した作業台ＴＢ上に配置された治具５０を把持する。作業台ＴＢは、例えば、テーブル等の台であるが、治具５０を配置可能な床面等、他の台であってもよい。
【００４３】
ここで、図２を参照して、治具５０について説明する。図２は、治具５０の一例を示す図である。治具５０の材質は、例えば、金属等であるが、これに代えて、プラスチック等、他の材質であってもよい。また、治具５０の形状は、方形薄板の仕切板５１のある面に所定の長さの円柱形状の円柱部５２が設けられ、円柱部５２が設けられた面とは反対側の仕切板５１の面に、円柱部５２と同じ形状・構造・大きさを有する円柱部５３が設けられている。また、円柱部５２の上面に直交する中心軸と、円柱部５３の上面に直交する中心軸とは、図２に示した中心軸Ｌと一致するように設けられている。中心軸Ｌは、例えば、仕切板５１の円柱部５２及び円柱部５３がそれぞれ設けられた面に直交する軸であり、仕切板５１の重心を通る軸である。
【００４４】
ロボットシステム１は、図２に示した治具５０の円柱部５２を第１エンドエフェクターＥＮＤ１により把持させる。この際、ロボットシステム１は、第１エンドエフェクターＥＮＤ１の爪部の先端を、仕切板５１の円柱部５２が設けられた面に接触させる。また、ロボットシステム１は、図２に示した治具５０の円柱部５３を第２エンドエフェクターＥＮＤ２により把持させる。この際、ロボットシステム１は、第２エンドエフェクターＥＮＤ２の爪部の先端を、仕切板５１の円柱部５３が設けられた面に接触させる。
【００４５】
そして、ロボットシステム１は、第１エンドエフェクターＥＮＤ１と第２エンドエフェクターＥＮＤ２のうちいずれか一方又は両方を力センサー情報に基づく制御によって動作させる。この力センサー情報に基づく制御により、ロボットシステム１は、第１エンドエフェクターＥＮＤ１の爪部の先端が仕切板５１の円柱部５２が設けられた面に所定の大きさの力で押し付けられ、第２エンドエフェクターＥＮＤ２の爪部の先端が、仕切板５１の円柱部５３が設けられた面に所定の大きさの力で押し付けられる状態を実現する。以下では、説明の便宜上、この状態を、押付状態と称して説明する。
【００４６】
押付状態において、第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端とは、仕切板５１に押し付けられ続けるため、相対的な位置関係が固定される（一定にされる）。すなわち、ロボットシステム１は、押付状態を実現することで、第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係を固定する（一定にする）。なお、第１エンドエフェクターＥＮＤ１の爪部の先端は、第１アームの先端の一例である。また、第２エンドエフェクターＥＮＤ２の爪部の先端は、第２アームの先端の一例である。
【００４７】
治具５０は、このように第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係を固定することが出来れば、図２に示した構造や形状に限定されない。また、ロボットシステム１は、治具５０を用いずに、他の方法によって第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係を固定してもよい。
【００４８】
第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係が固定されると、第１ＴＣＰの位置と第２ＴＣＰの位置との相対的な位置関係も固定される。従って、以下では、第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係を固定することを、ＴＣＰの位置関係を固定すると称して説明する。ＴＣＰの位置関係とは、第１ＴＣＰの位置と第２ＴＣＰの位置の相対的な位置関係を示す。
【００４９】
なお、本実施形態において、ロボットシステム１は、第１エンドエフェクターＥＮＤ１と第２エンドエフェクターＥＮＤ２の両方によって治具５０を挟み込むように把持して押付状態を実現することにより、第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係を固定したが、第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係を固定する方法はこれに限られない。
【００５０】
例えば、ロボットシステム１は、第１エンドエフェクターＥＮＤ１の爪部の先端に、第２エンドエフェクターＥＮＤ２の爪部の先端を接触させ、力センサー情報に基づく制御により押付状態を実現することにより、第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係を固定してもよい。
【００５１】
この場合、ロボットシステム１は、押付状態を実現することにより、第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との接触位置がずれてしまうことを抑制することができ、その結果、第１エンドエフェクターＥＮＤ１の爪部の先端と、第２エンドエフェクターＥＮＤ２の爪部の先端との相対的な位置関係を固定することができる。
【００５２】
ロボットシステム１は、力センサー情報に基づく制御に基づいてＴＣＰの位置関係を固定させたまま、校正領域においてマニピュレーターの校正を行う。校正領域とは、マニピュレーターの校正によって所定の協調作業を高い精度でロボット２０に行わせたい作業領域を示す。校正領域の形状は、この一例において立方体であるとするが、これに代えて、直方体や正四面体等、他の三次元形状であってもよい。なお、校正領域は、校正したい領域の一例である。
【００５３】
校正領域におけるマニピュレーターの校正において、ロボットシステム１は、第１ＴＣＰの位置又は第２ＴＣＰの位置を、校正領域内の複数の計測点のそれぞれと一致させる。そして、ロボットシステム１は、第１ＴＣＰの位置又は第２ＴＣＰの位置と一致したそれぞれの計測点において、第１座標系における第１ＴＣＰの位置と治具５０の構造情報（例えば、寸法や形状を示す情報等）とに基づいて第１座標系における治具５０の所定部位の位置を算出し、第２座標系における第２ＴＣＰの位置と治具５０の構造情報とに基づいて第２座標系における治具５０の所定部位の位置を算出する。治具５０の所定部位の位置は、第１アームの所定位置及び第２アームの所定位置とともに動く予め決められた点の位置の一例である。
【００５４】
この一例において、校正領域内の複数の計測点とは、立方体形状の校正領域における各頂点を示すが、これに代えて、校正領域に含まれる３点以上の他の点であってもよい。また、以下では、各計測点での第１座標系における治具５０の所定部位の位置を示す情報と、各計測点での第２座標系における治具５０の所定部位の位置を示す情報とをまとめて計測点情報と称して説明する。また、以下では、治具５０の所定部位の位置を、単に治具位置と称して説明する。治具位置は、例えば、治具５０の重心の位置であるが、これに代えて、治具５０に係る他の部位の位置であってもよい。
【００５５】
なお、ロボットシステム１は、各計測点での計測点情報を算出する際、第１座標系における第１ＴＣＰの位置と、第２座標系における第２ＴＣＰの位置を順運動学に基づいて算出する。ロボットシステム１は、各計測点での計測点情報に基づいて座標変換行列を算出する。校正領域が複数ある場合、ロボットシステム１は、これらの処理を繰り返すことで、校正領域毎に座標変換行列を算出する。校正領域毎の座標変換行列を算出した後、ロボットシステム１は、校正領域毎の座標変換行列に基づいて、校正領域毎に所定の協調作業をロボット２０に行わせる。以下では、このロボットシステム１における座標変換行列の算出処理について説明する。
【００５６】
次に、図３を参照して、制御装置３０のハードウェア構成について説明する。図３は、制御装置３０のハードウェア構成の一例を示す図である。制御装置３０は、例えば、ＣＰＵ（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）等のハードウェア機能部であってもよい。
【００６０】
制御部３６は、制御装置３０の全体を制御する。また、制御部３６は、マニピュレーターの校正処理の全体を制御する。より具体的には、制御部３６は、入力受付部３３により受け付けられた操作（例えば、ＧＵＩ（Graphical  User  Interface）を介したジョグ操作）に基づいてロボット２０を動かすようにロボット制御部４１を制御する。
【００６１】
本実施形態では、制御部３６がＧＵＩを介して入力受付部３３から操作を受け付ける場合について説明する。なお、制御部３６は、これに代えて、ＧＵＩを介さずにスイッチやボタン等を介して操作を受け付ける構成であってもよい。また、このＧＵＩには、ロボット２０を動かすジョグ画面や、第１マニピュレーターＭＮＰ１の校正用情報取得動作を開始させるボタン、第２マニピュレーターＭＮＰ２の校正用情報取得動作を開始させるボタン等が含まれるとする。
【００６２】
制御部３６は、表示制御部４０と、ロボット制御部４１と、力センサー情報取得部４２と、回転角取得部４３と、校正領域情報読込部４４と、ＴＣＰ位置算出部４５、治具位置算出部４６と、座標変換行列算出部４７を備える。
表示制御部４０は、ロボット２０が備える２つのマニピュレーターの間の校正処理に係るＧＵＩを生成し、生成されたＧＵＩを表示部３５に表示させる。このＧＵＩには、例えば、ロボット２０が備える２つのマニピュレーターの間の校正処理を開始させるためのボタンや、ロボット２０をジョグ操作するためのジョグ等が含まれる。
【００６３】
ロボット制御部４１は、制御部３６からの要求に応じた動作を行うようにロボット２０を制御する。また、ロボット制御部４１は、力センサー情報取得部４２から力センサー２３により検出される力センサー情報を取得し、取得された力センサー情報に基づく制御によりロボット２０を制御する。また、ロボット制御部４１は、座標変換行列算出部４７により校正領域毎に算出された座標変換行列に基づいて、各校正領域において所定の協調作業を行うようにロボット２０を制御する。
【００６４】
力センサー情報取得部４２は、力センサー２３により検出される力センサー情報を取得する。
回転角取得部４３は、ロボット２０が備える複数のアクチュエーターがそれぞれ備えるエンコーダーから、回転角を示す情報を取得する。そして、回転角取得部４３は、取得された複数の回転角を示す情報と、その時点でのロボット２０の姿勢を示す情報とを対応付け、計測点情報として記憶部３２に記憶させる。ロボット２０の姿勢を示す情報とは、例えば、姿勢を区別するためのＩＤ等であるが、姿勢を区別することが可能であれば他の情報であってもよい。
校正領域情報読込部４４は、記憶部３２に予め記憶された校正領域を示す情報を記憶部３２から読み込む。校正領域を示す情報には、校正領域を識別する情報と、校正領域内の計測点の位置を示す情報等が含まれる。
【００６５】
ＴＣＰ位置算出部４５は、回転角取得部４３により取得された第１マニピュレーターＭＮＰ１の複数のアクチュエーターそれぞれに係る回転角に基づいて、第１座標系における第１ＴＣＰの位置を順運動学に基づいて算出する。また、ＴＣＰ位置算出部４５は、回転角取得部４３により取得された第２マニピュレーターＭＮＰ２の複数のアクチュエーターそれぞれに係る回転角に基づいて、第２座標系における第２ＴＣＰの位置を順運動学に基づいて算出する。
【００６６】
治具位置算出部４６は、記憶部３２に予め記憶された治具５０の構造情報を読み込む。治具位置算出部４６は、校正領域内の複数の計測点毎に、読み込まれた治具５０の構造を示す情報と、算出された第１座標系における第１ＴＣＰの位置とに基づいて、第１座標系における治具位置を算出する。また、治具位置算出部４６は、校正領域内の複数の計測点毎に、読み込まれた治具５０の構造情報と、算出された第２座標系における第２ＴＣＰの位置とに基づいて、第２座標系における治具位置を算出する。
座標変換行列算出部４７は、治具位置算出部４６により算出された第１座標系における治具位置及び第２座標系における治具位置に基づいて座標変換行列を算出する。
【００６７】
以下、図５を参照して、制御装置３０によるマニピュレーターの校正処理について説明する。図５は、制御装置３０によるマニピュレーターの校正処理の流れの一例を示すフローチャートである。まず、表示制御部４０は、マニピュレーターの校正処理に係るＧＵＩを表示部３５に表示させる（ステップＳ１００）。次に、ロボット制御部４１は、ステップＳ１００で表示部３５に表示されたＧＵＩを介して入力受付部３３によりユーザーから受け付けられたジョグ操作に基づいて、ロボット２０に第１エンドエフェクターＥＮＤ１及び第２エンドエフェクターＥＮＤ２によって治具５０を把持させ、ＴＣＰの位置関係を固定する（ステップＳ１１０）。
【００６８】
ここで、図６を参照して、第１エンドエフェクターＥＮＤ１及び第２エンドエフェクターＥＮＤ２による治具５０の把持について説明する。図６は、第１エンドエフェクターＥＮＤ１及び第２エンドエフェクターＥＮＤ２により治具５０が把持された状態の一例を示す図である。図６に示したように、第１エンドエフェクターＥＮＤ１は、治具５０の円柱部５２を把持し、第１エンドエフェクターＥＮＤ１の複数の爪部の先端のそれぞれを仕切板５１の円柱部５２が設けられた面に接触させる。また、第２エンドエフェクターＥＮＤ２は、治具５０の円柱部５３を把持し、第２エンドエフェクターＥＮＤ２の複数の爪部の先端のそれぞれを仕切板５１の円柱部５３が設けられた面に接触させる。
【００６９】
図６に示したように第１エンドエフェクターＥＮＤ１及び第２エンドエフェクターＥＮＤ２により治具５０を把持させることで、ロボット制御部４１は、ステップＳ１３０において力センサー情報に基づく制御により前述した押付状態を実現し、ＴＣＰの位置関係を固定することができる。なお、図６において、点Ｔ１は、第１ＴＣＰを示し、点Ｔ２は、第２ＴＣＰを示す。また、点Ｇは、治具位置を示す。押付状態においてＴＣＰの位置関係が固定された場合、第１ＴＣＰと治具位置の間の相対的な位置関係、及び第２ＴＣＰと治具位置の間の相対的な位置関係も固定される。
【００７０】
ステップＳ１１０でＴＣＰの位置関係が固定された後、制御部３６は、ステップＳ１００で表示部３５に表示されたＧＵＩを介してユーザーからマニピュレーターの校正処理の開始操作を受け付ける（ステップＳ１２０）。この一例において、マニピュレーターの校正処理の開始操作は、前述のＧＵＩに表示されたマニピュレーターの校正処理の開始ボタンを押下（クリック）する操作であるとするが、他の操作であってもよい。
【００７１】
次に、ロボット制御部４１は、第１マニピュレーターＭＮＰ１及び第２マニピュレーターＭＮＰ２による力センサー情報に基づく制御を開始する（ステップＳ１３０）。この第１マニピュレーターＭＮＰ１及び第２マニピュレーターＭＮＰ２による力センサー情報に基づく制御は、図６に示したように第１エンドエフェクターＥＮＤ１の爪部の先端と第２エンドエフェクターＥＮＤ２の爪部の先端によって押付状態を実現する。
【００７２】
より具体的には、この押付状態とは、第１アームの先端（この一例において、第１エンドエフェクターＥＮＤ１の爪部の先端）と第２アームの先端（この一例において、第２エンドエフェクターＥＮＤ２の爪部の先端）とが向かい合わせで、第１アームと第２アームのうちの一方が他方に対して所定の大きさの力を加え続ける状態を示す。
【００７３】
次に、ロボット制御部４１は、第１マニピュレーターＭＮＰ１と第２マニピュレーターＭＮＰ２のいずれか一方の力センサー情報に基づく制御を停止させる（ステップＳ１４０）。以下では、説明の便宜上、第１マニピュレーターＭＮＰ１の力センサー情報に基づく制御を停止させた場合について説明する。また、以下では、力センサー情報に基づく制御を停止させた方のマニピュレーターを、主マニピュレーターと称し、他方のマニピュレーターを従マニピュレーターと称して説明する。すなわち、この一例において、第１マニピュレーターＭＮＰ１は、主マニピュレーターであり、第２マニピュレーターＭＮＰ２は、従マニピュレーターである。
【００７４】
ステップＳ１４０で主マニピュレーターの力センサー情報に基づく制御を停止させることで、ロボット制御部４１は、従マニピュレーターの力センサー情報に基づく制御により、従マニピュレーターを主マニピュレーターに追従させる。この追従とは、主マニピュレーターのＴＣＰ（この一例において、第１ＴＣＰ）の動きとともに、従マニピュレーターのＴＣＰ（この一例において、第２ＴＣＰ）を動かすことで、押付状態を実現し続け、その結果、ＴＣＰの位置関係を固定し続けることを示す。また、この追従の際、従マニピュレーターの力センサー情報に基づく制御によって、従マニピュレーターが主マニピュレーターに対して所定の大きさの力を加え続ける押付状態を保持する。
【００７５】
次に、校正領域情報読込部４４は、記憶部３２から校正領域を示す情報を読み込む（ステップＳ１５０）。次に、制御部３６は、ステップＳ１５０で校正領域情報読込部４４により読み込まれた校正領域を示す情報に基づいて１以上の校正領域から校正領域を１つずつ選択し、選択された校正領域毎にステップＳ１７０からステップＳ２２０までの処理を繰り返し行う（ステップＳ１６０）。制御部３６は、ステップＳ１６０で選択された校正領域内の複数の計測点から１つずつ計測点を選択し、選択された計測点毎にステップＳ１８０からステップＳ２１０までの処理を繰り返し行う（ステップＳ１７０）。
【００７６】
ロボット制御部４１は、第１ＴＣＰを移動させることで、ステップＳ１７０で選択された計測点に第１ＴＣＰ（この一例における主マニピュレーターのＴＣＰ）の位置を一致させる（ステップＳ１８０）。次に、ロボット制御部４１は、ステップＳ１８０における第１ＴＣＰの移動に伴う第２マニピュレーターＭＮＰ２（この一例における従マニピュレーター）の振動が収まるまで待機する（ステップＳ１９０）。
【００７７】
より具体的には、ロボット制御部４１は、この一例において、所定時間が経過するまで待機し、その後、ステップＳ２００の処理に遷移するが、これに代えて、力センサー２３によって第１マニピュレーターＭＮＰ１又は第２マニピュレーターＭＮＰ２の振動の単位時間当たりの振動数を測定し、測定された振動数が予め決められた閾値以下になるまで待機する構成等であってもよい。この待機により、制御部３６は、第１ＴＣＰの位置及び第２ＴＣＰの位置を順運動学によって高い精度で算出することができる。
【００７８】
次に、回転角取得部４３は、第１マニピュレーターＭＮＰ１の複数のアクチュエーターそれぞれが備えるエンコーダーから、第１マニピュレーターＭＮＰ１に係る複数の回転角を示す情報を取得する。また、回転角取得部４３は、第２マニピュレーターＭＮＰ２の複数のアクチュエーターそれぞれが備えるエンコーダーから、第２マニピュレーターＭＮＰ２に係る複数の回転角を示す情報を取得する。ＴＣＰ位置算出部４５は、回転角取得部４３により取得された第１マニピュレーターＭＮＰ１に係る複数の回転角に基づいて、第１ＴＣＰの位置を算出する。また、ＴＣＰ位置算出部４５は、回転角取得部４３により取得された第２マニピュレーターＭＮＰ２に係る複数の回転角に基づいて、第２ＴＣＰの位置を算出する（ステップＳ２００）。
【００７９】
次に、治具位置算出部４６は、記憶部３２から治具５０の構造情報を読み込む。そして、治具位置算出部４６は、ステップＳ２００でＴＣＰ位置算出部４５により算出された第１ＴＣＰの位置と、読み込まれた治具５０の構造情報とに基づいて、第１座標系における治具位置を算出する。また、治具位置算出部４６は、ステップＳ２００でＴＣＰ位置算出部４５により算出された第２ＴＣＰの位置と、読み込まれた治具５０の構造情報とに基づいて、第２座標系における治具位置を算出する。
【００８０】
治具位置算出部４６は、算出された第１座標系における治具位置と、第２座標系における治具位置と、ステップＳ１６０で選択された校正領域を識別する情報と、ステップＳ１７０で選択された計測点を識別する情報とを対応付けた計測点情報を生成する。治具位置算出部４６は、生成された計測点情報を記憶部３２に記憶させる（ステップＳ２１０）。
【００８１】
このように、ステップＳ１８０からステップＳ２１０までの処理を繰り返すことで、制御部３６は、ステップＳ１６０で選択された校正領域内の複数の計測点のそれぞれ毎の計測点情報を記憶部３２に記憶させる。ステップＳ１８０からステップＳ２１０までの繰り返し処理が終わった（ステップＳ２１５）後、座標変換行列算出部４７は、ステップＳ１６０で選択された校正領域内の複数の計測点のそれぞれ毎の計測点情報を記憶部３２から読み込む。そして、座標変換行列算出部４７は、読み込まれた複数の計測点情報に基づいて、ステップＳ１６０で選択された校正領域における座標変換行列を算出する（ステップＳ２２０）。そして、座標変換行列算出部４７は、ステップＳ１７０からステップＳ２２０までの繰り返し処理を終了する（ステップＳ２２５）。
【００８２】
なお、上記のステップＳ１６０からステップＳ２２５までの処理において、主マニピュレーター（この一例において、第１マニピュレーターＭＮＰ１）の力センサー情報に基づく制御を停止させた場合について説明したが、ロボットシステムは、主マニピュレーター及び従マニピュレーターの両方を力センサー情報に基づく制御によって動作させ、ステップＳ１６０からステップＳ２２０までの処理を行う構成であってもよい。
【００８３】
このように、ステップＳ１７０からステップＳ２２０までの処理を繰り返すことで、制御部３６は、１以上の校正領域毎の座標変換行列を算出することができる。
ここで、図７を参照して、図６におけるステップＳ１６０からステップＳ２２５までの処理についての説明を補足する。図７は、校正領域と、校正領域内の複数の計測点とを例示する図である。
【００８４】
図７（Ａ）には、校正領域が１つの例を示す。図７（Ｂ）には、校正領域が３つの例を示す。図７（Ｃ）には、校正領域が４つの例を示す。また、図７（Ａ）〜（Ｃ）において、立方体Ｍ１〜Ｍ４はそれぞれ、校正領域を示す。以下では、立方体Ｍ１〜Ｍ４をそれぞれ、校正領域Ｍ１〜Ｍ４と称して説明する。また、図７（Ａ）において、校正領域Ｍ１を示す立方体の頂点Ｎ１〜Ｎ８は、校正領域Ｍ１に係る複数の計測点のそれぞれを示す。以下では、これらの立方体の頂点Ｎ１〜Ｎ８をそれぞれ、計測点Ｎ１〜Ｎ８と称して説明する。
【００８５】
例えば、図７（Ａ）のように校正領域が１つの場合、制御部３６の各機能部は、第１ＴＣＰの位置又は第２ＴＣＰの位置を、これら計測点Ｎ１〜Ｎ８のそれぞれに一致させる。そして、制御部３６の各機能部は、第１ＴＣＰの位置又は第２ＴＣＰの位置が、これら計測点Ｎ１〜Ｎ８のそれぞれに一致するたびに、治具位置を算出し、算出された治具位置に基づく計測点情報を記憶部３２に記憶させる。
【００８６】
図７（Ｂ）や図７（Ｃ）のように校正領域が複数の場合、制御部３６の各機能部は、複数の校正領域から校正領域を１つずつ選択し、選択された校正領域毎にステップＳ１７０からステップＳ２２０までの処理を繰り返し行い、校正領域毎の座標変換行列を算出する。 なお、各校正領域Ｍ１からＭ４において座標変換行列を算出する場合に、異なる校正領域間に重複する計測点があり既に治具位置を算出済の計測点がある際、制御部３６の各機能部は、重複する計測点での治具位置の算出をスキップし、前回算出時のデータを参照するようにしてもよい。また、図７において立方体形状の校正領域Ｍ１〜Ｍ４を示しているが、これは一例に過ぎず、校正領域は、直方体状や楕円状や球状等、種々の形状の領域であってもよい。
【００８７】
＜第１実施形態の変形例＞
以下、本発明の第１実施形態の変形例１について説明する。第１実施形態の変形例に係るロボットシステム１は、上記の第１実施形態における治具５０を用いたマニピュレーターの校正に代えて、治具５０ａを用いたマニピュレーターの校正を行う。
【００８８】
図８は、治具５０ａの一例を示す図である。治具５０ａは、第１エンドエフェクターＥＮＤ１により把持する部位が、円柱部５２に代えて、把持部５２ａが仕切板５１の面に設けられている。把持部５２ａは、仕切板５１に接合している断面が十字型の柱の形状を有する。また、治具５０ａは、第２エンドエフェクターＥＮＤ２により把持する部位が、円柱部５３に代えて、把持部５３ａが仕切板５１の把持部５２ａが設けられた面とは反対側の面に設けられている。把持部５３ａは、仕切板５１に接合している断面が十字型の柱の形状を有する。
【００８９】
ロボットシステム１は、この治具５０ａを第１エンドエフェクターＥＮＤ１及び第２エンドエフェクターＥＮＤ２により把持することで、ＴＣＰの位置関係を固定する。これにより、ロボットシステム１は、上記で説明したようにマニピュレーターの校正を行うことができる。
【００９０】
以上説明したように、第１実施形態に係るロボットシステム１は、第１ＴＣＰの位置と第２ＴＣＰの位置との相対的な位置関係を一定にした状態で第１マニピュレーターＭＮＰ１（すなわち、第１腕）と第２マニピュレーターＭＮＰ２（すなわち、第２腕）とを動作させ、第１座標系と第２座標系との間の座標変換行列を算出する。これにより、ロボットシステム１は、複数の校正領域でのマニピュレーターの校正を効率的に行うことができる。
【００９１】
また、ロボットシステム１は、第１力センサー２３−１と第２力センサー２３−２から取得される力センサー情報に基づいて、第１マニピュレーターＭＮＰ１と第２マニピュレーターＭＮＰ２のうち少なくとも一方を力センサー情報に基づく制御で動作させる。これにより、ロボットシステム１は、力センサー情報に基づく制御によって第１ＴＣＰの位置と第２ＴＣＰの位置との相対的な位置関係を一定にした状態で第１マニピュレーターＭＮＰ１と第２マニピュレーターＭＮＰ２を動作させることができる。
【００９２】
また、ロボットシステム１は、第１エンドエフェクターＥＮＤ１と第２エンドエフェクターＥＮＤ２とを向かい合わせ、第１マニピュレーターＭＮＰ１と第２マニピュレーターＭＮＰ２のうち一方が他方に対して所定の大きさの力を加え続ける状態を保持し、第１ＴＣＰの位置と第２ＴＣＰの位置との相対的な位置関係を一定にした状態で第１マニピュレーターＭＮＰ１と第２マニピュレーターＭＮＰ２を動作させる。これにより、ロボットシステム１は、第１ＴＣＰの位置と第２ＴＣＰの位置との相対的な位置関係がずれてしまうことを抑制することができる。
【００９３】
また、ロボットシステム１は、第１エンドエフェクターＥＮＤ１と第２エンドエフェクターＥＮＤ２との間に治具５０を挟み込ませ、第１マニピュレーターＭＮＰ１と第２マニピュレーターＭＮＰ２のうち一方が他方に対して所定の大きさの力を加え続ける状態を保持する。これにより、ロボットシステム１は、治具５０によって第１ＴＣＰの位置と第２ＴＣＰの位置との相対的な位置関係がずれてしまうことをより確実に抑制することができる。
【００９４】
また、ロボットシステム１は、第１ＴＣＰの位置又は第２ＴＣＰの位置と、校正したい領域内の３以上の計測点のそれぞれとを一致させ、計測点のそれぞれにおいて第１ＴＣＰの位置及び第２ＴＣＰの位置とともに動く治具位置を第１座標系及び第２座標系で算出し、計測点のそれぞれにおいて算出された第１座標系及び第２座標系での治具位置に基づいて座標変換行列を算出する。これにより、ロボットシステム１は、計測点のそれぞれにおいて算出された第１座標系及び第２座標系での治具位置に基づいて座標変換行列によりマニピュレーターの校正を行うことができる。
【００９５】
＜第２実施形態＞
以下、本発明の第２実施形態について、図面を参照して説明する。図９は、第２実施形態に係るロボットシステム２の一例を示す構成図である。以下では、第１実施形態において説明した方法により算出された座標変換行列に基づいてロボット２０に所定の協調作業を行わせる一例について説明する。第２実施形態に係るロボットシステム２は、ロボット２０と、制御装置３０ａを備える。なお、第２実施形態では、第１の実施形態と同様な構成部には、同じ符号を付してある。
【００９６】
ロボットシステム２は、ロボット２０が備える第１マニピュレーターＭＮＰ１及び第２マニピュレーターＭＮＰ２の両方により、所定の協調作業を行わせる。本実施形態における所定の協調作業とは、第１エンドエフェクターＥＮＤ１により図９に示した作業対象Ｗを把持して所定の待機位置まで移動させ、その後、第１エンドエフェクターＥＮＤ１から第２エンドエフェクターＥＮＤ２に作業対象Ｗを受け渡し、第２エンドエフェクターＥＮＤ２により所定の配置位置に作業対象Ｗを配置する作業を示す。
【００９７】
なお、図９に示した制御装置３０ａは、第１実施形態に係る制御装置３０が、第１実施形態において説明した方法によって第１座標系と第２座標系の間の座標変換行列を算出した後の状態である。
【００９８】
作業対象Ｗは、第３エンドエフェクターＥＮＤ３と第４エンドエフェクターＥＮＤ４のうちいずれか一方又は両方によって把持可能な大きさと形状を有する物体であり、例えば、産業機械等に用いられる部品（ネジやボルト等）である。図９において、作業対象Ｗは、直方体形状の物体として示したが、他の形状や大きさの物体であってもよい。
【００９９】
ロボット２０が備える第１固定撮像部２１と第２固定撮像部２２は、作業対象Ｗを含む範囲をステレオ撮像する。以下では、第１固定撮像部２１と第２固定撮像部２２にステレオ撮像された画像を、ステレオ撮像画像と称して説明する。このステレオ撮像画像は、静止画像であるとするが、これに代えて、動画像であってもよい。
【０１００】
制御装置３０ａは、第１実施形態において説明した方法によって第１マニピュレーターＭＮＰ１と第２マニピュレーターＭＮＰ２それぞれの校正を行う。また、制御装置３０ａは、作業対象Ｗを含む範囲を、第１固定撮像部２１及び第２固定撮像部２２にステレオ撮像させ、撮像されたステレオ撮像画像に基づいてパターンマッチング等により作業対象Ｗを検出する。制御装置３０ａは、ステレオ撮像画像から検出された作業対象Ｗの、第１座標系又は第２座標系における位置及び姿勢を算出する。以下では、制御装置３０ａは、ステレオ撮像画像から検出された作業対象Ｗの、第１座標系における位置及び姿勢を算出する場合について説明する。
【０１０１】
制御装置３０ａは、第１座標系における作業対象Ｗの位置及び姿勢に基づいて、第１エンドエフェクターＥＮＤ１に作業対象Ｗを把持させる。そして、制御装置３０ａは、第１エンドエフェクターＥＮＤ１により把持された作業対象Ｗを、所定の待機位置まで移動させる。制御装置３０ａは、第１座標系により表される所定の待機位置における作業対象Ｗの位置及び姿勢を、座標変換行列に基づいて第２座標系における作業対象Ｗの位置及び姿勢へ変換する。
【０１０２】
制御装置３０ａは、第１エンドエフェクターＥＮＤ１が把持している作業対象Ｗを、第２エンドエフェクターＥＮＤ２により把持させ、第１エンドエフェクターＥＮＤ１によって作業対象Ｗが把持された状態を解放する。そして、制御装置３０ａは、第２エンドエフェクターＥＮＤ２により把持された作業対象Ｗを所定の配置位置へ配置させる。なお、この一例において、第１座標系の位置と、ステレオ撮像画像上の位置とは、予めキャリブレーションによって対応付けられているとする。
【０１０３】
次に、図１０を参照して、制御装置３０ａの機能構成について説明する。図１０は、制御装置３０ａの機能構成の一例を示す図である。制御装置３０ａは、記憶部３２と、入力受付部３３と、表示部３５と、制御部３６ａと、画像取得部５５を備える。制御部３６ａが備える機能部のうち一部又は全部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【０１０４】
画像取得部５５は、第１固定撮像部２１及び第２固定撮像部２２によりステレオ撮像されたステレオ撮像画像を取得する。画像取得部５５は、取得したステレオ撮像画像を制御部３６ａに出力する。
制御部３６ａは、制御装置３０ａの全体を制御する。制御部３６ａは、ロボット制御部４１と、撮像制御部４８と、位置姿勢算出部４９と、座標変換部５４を備える。
【０１０５】
ロボット制御部４１は、位置姿勢算出部４９により算出された第１座標系における作業対象Ｗの位置及び姿勢に基づいてロボット２０に所定の作業を行わせる。また、第２マニピュレーターＭＮＰ２に作業を行わせる際、ロボット制御部４１は、座標変換部５４により座標変換行列に基づいて第１座標系における作業対象Ｗの位置及び姿勢から変換された第２座標系における作業対象の位置及び姿勢に基づいて、第２マニピュレーターＭＮＰ２を動作させる。
【０１０６】
撮像制御部４８は、第１固定撮像部２１及び第２固定撮像部２２に作業対象Ｗを含む範囲をステレオ撮像させる。
位置姿勢算出部４９は、画像取得部５５から取得したステレオ撮像画像に基づいて、作業対象Ｗを検出し、検出された作業対象Ｗの第１座標系における位置及び姿勢を算出する。
【０１０７】
座標変換部５４は、記憶部３２に記憶された座標変換行列を読み込み、読み込まれた座標変換行列に基づいて第１座標系における作業対象Ｗの位置及び姿勢を、第２座標系における位置及び姿勢に変換する。なお、座標変換部５４は、ロボット２０に行わせる所定の協調作業を行う作業領域が複数ある場合、それぞれの作業領域に対応する校正領域を識別する情報に基づいて、作業領域毎の座標変換行列を記憶部３２から読み込み、読み込まれた座標変換行列に基づいてロボット２０に所定の協調作業を行わせるとする。
【０１０８】
以下、図１１を参照して、制御装置３０ａがロボット２０に所定の協調作業を行わせる処理について説明する。図１１は、制御装置３０ａがロボット２０に所定の協調作業を行わせる処理の流れの一例を示すフローチャートである。まず、撮像制御部４８は、第１固定撮像部２１及び第２固定撮像部２２に作業対象Ｗを含む範囲をステレオ撮像させる（ステップＳ３００）。次に、画像取得部５５は、第１固定撮像部２１及び第２固定撮像部２２によりステレオ撮像されたステレオ撮像画像を取得し、取得されたステレオ撮像画像を制御部３６ａに出力する（ステップＳ３１０）。
【０１０９】
次に、位置姿勢算出部４９は、ステップＳ３１０で画像取得部５５から取得されたステレオ撮像画像から作業対象Ｗを検出する。そして、位置姿勢算出部４９は、検出された作業対象Ｗの第１座標系における位置及び姿勢を算出する（ステップＳ３２０）。次に、ロボット制御部４１は、ステップＳ３２０において算出された作業対象Ｗの第１座標系における位置及び姿勢に基づいて、第１エンドエフェクターＥＮＤ１に作業対象Ｗを把持させる（ステップＳ３３０）。
【０１１０】
次に、ロボット制御部４１は、第１エンドエフェクターＥＮＤ１により把持された作業対象Ｗを所定の待機位置へ移動させる（ステップＳ３４０）。次に、座標変換部５４は、記憶部３２から座標変換行列を読み込む。座標変換部５４は、読み込まれた座標変換行列に基づいて、ステップＳ３４０において所定の待機位置に移動された作業対象Ｗの第１座標系における位置及び姿勢を、作業対象Ｗの第２座標系における位置及び姿勢に変換する（ステップＳ３５０）。
【０１１１】
次に、ロボット制御部４１は、第１エンドエフェクターＥＮＤ１により把持されている作業対象Ｗを、第２エンドエフェクターＥＮＤ２により把持させ、作業対象Ｗから第１エンドエフェクターＥＮＤ１を離させる（ステップＳ３６０）。次に、ロボット制御部４１は、第２エンドエフェクターＥＮＤ２により把持された作業対象Ｗを、第２エンドエフェクターＥＮＤ２に所定の配置位置へ配置させる（ステップＳ３７０）。
【０１１２】
以上説明したように、本実施形態におけるロボットシステム２は、第１実施形態において説明した方法により算出された座標変換行列に基づいて第１座標系における作業対象Ｗの位置及び姿勢を、第２座標系における作業対象Ｗの位置及び姿勢に変換する。これにより、ロボットシステム２は、ロボット２０に所定の協調作業を高い精度で行わせることができる。
【０１１３】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１１４】
また、以上に説明した装置（例えば、ロボットシステム１の制御装置３０、ロボットシステム２の制御装置３０ａ）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１１５】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【０１１６】
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１１７】
１、２  ロボットシステム、１１  第１動撮像部、１２  第２動撮像部、２０  ロボット、２１  第１固定撮像部、２２  第２固定撮像部、２３、力センサー、２３−１  第１力センサー、２３−２  第２力センサー、３０、３０ａ  制御装置、３１  ＣＰＵ、３２  記憶部、３３  入力受付部、３４  通信部、３５  表示部、３６、３６ａ  制御部、４０  表示制御部、４１  ロボット制御部、４２  力センサー情報取得部、４３  回転角取得部、４４  校正領域情報読込部、４５  ＴＣＰ位置算出部、４６  治具位置算出部、４７  座標変換行列算出部、４８  撮像制御部、４９  位置姿勢算出部、５０、５０ａ  治具、５１  仕切板、５２、５３  円柱部、５２ａ、５３ａ  把持部、５４  座標変換部、５５  画像取得部
【図１】
2016120556.tif 000003
【図２】
2016120556.tif 000004
【図３】
2016120556.tif 000005
【図４】
2016120556.tif 000006
【図５】
2016120556.tif 000007
【図６】
2016120556.tif 000008
【図７】
2016120556.tif 000009
【図８】
2016120556.tif 000010
【図９】
2016120556.tif 000011
【図１０】
2016120556.tif 000012
【図１１】
2016120556.tif 000013