JP2016120557A - ロボット、及びロボット校正システム - Google Patents

ロボット、及びロボット校正システム Download PDF

Info

Publication number
JP2016120557A
JP2016120557A JP2014261874A JP2014261874A JP2016120557A JP 2016120557 A JP2016120557 A JP 2016120557A JP 2014261874 A JP2014261874 A JP 2014261874A JP 2014261874 A JP2014261874 A JP 2014261874A JP 2016120557 A JP2016120557 A JP 2016120557A
Authority
JP
Japan
Prior art keywords
robot
calibration
manipulator
force sensor
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014261874A
Other languages
English (en)
Inventor
太郎 石毛
Taro Ishige
太郎 石毛
郁馬 降▲旗▼
Ikuma Furuhata
郁馬 降▲旗▼
Original Assignee
セイコーエプソン株式会社
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by セイコーエプソン株式会社, Seiko Epson Corp filed Critical セイコーエプソン株式会社
Priority to JP2014261874A priority Critical patent/JP2016120557A/ja
Publication of JP2016120557A publication Critical patent/JP2016120557A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】容易にマニピュレーターの校正を行うことができるロボットを提供すること。
【解決手段】ロボットは、アームと、力センサーとを備え、アームの先端の回転軸上とは異なる位置に1の部位を有する第1部材の1の部位を第2部材と1の距離となるように移動させた後に、少なくとも力センサーの出力値に基づいてアームを複数の姿勢にすることにより校正する。
【選択図】図7

Description

この発明は、ロボット、及びロボット校正システムに関する。
ロボットに精度の高い作業を行わせるため、ロボットの機構や撮像装置、作業環境等の校正について研究・開発が行われている。
これに関し、外部の計測装置を使わずにマニピュレーターのTCP(Tool Center Point)を何らかの治具によって機構的に拘束、もしくはマニピュレーター同士を連結することで、マニピュレーターの校正を行う方法が知られている(特許文献1、非特許文献1参照)。
マニピュレーターの駆動とともに移動するTCPの位置は、マニピュレーターが備える複数のアクチュエーターそれぞれの回転角を与えることによって順運動学に基づいて算出することができる。しかし、与えられた回転角が実現されるようにそれらのアクチュエーターを駆動させた場合に到達する実際のTCPの位置は、マニピュレーターを構成する部材の弾性等による誤差の影響によって、算出されたTCPの位置と異なる位置となる場合がある。この明細書では、マニピュレーターの校正とは、このような実際のTCPの位置と算出されたTCPの位置との差が小さくなるように各アクチュエーターの回転角を補正することを示す。
特開2013−184236号公報
http://www.cs.utah.edu/~jmh/Papers/Hollerbach_IJRR96.pdf 「The Calibration Index And Taxonomy for Robot Kinematics Calibration Methods(John M.Hollerbach, et al.): Closed Loop Kinematic Calibration」
しかし、従来の方法では、校正に用いる治具と、当該治具に接触させるマニピュレーターの所定部位とが接触する部分に大きな負荷が掛かることによってマニピュレーターと治具とが外れたり変形したりする場合があり、正確な校正を行うことができなくなる場合があった。
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、正確に作業を行うことのできるためのロボット、及びロボット校正システムを提供する。
本発明の一態様は、アームと、力センサーとを備え、前記アームの先端の回転軸上とは異なる位置に1の部位を有する第1部材の前記1の部位を第2部材と1の距離となるように移動させた後に、少なくとも前記力センサーの出力値に基づいて前記アームを複数の姿勢にすることにより校正する、ロボットである。
この構成により、ロボットは、アームの先端の回転軸上とは異なる位置に1の部位を有する第1部材の1の部位を第2部材と1の距離となるように移動させた後に、少なくとも力センサーの出力値に基づいてアームを複数の姿勢にすることにより校正する。これにより、ロボットは、容易にマニピュレーターの校正を行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記1の距離は、略0である、構成が用いられてもよい。
この構成により、ロボットは、第1部材の1の部位を第2部材と距離が0となるように移動させた後に、少なくとも力センサーの出力値に基づいてアームを複数の姿勢にすることにより校正する。これにより、ロボットは、第1部材の1の部位を第2部材に接触させた状態を保ったまま、アームに1以上の姿勢を取らせることによりアームの校正を行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記第1部材の前記1の部位を前記第2部材と前記1の距離となるように移動させた後、前記第1部材の前記1の部位を前記第2部材と前記1の距離とは異なる他の距離となるように移動させて前記力センサーの初期化を行い、前記第1部材の前記1の部位を前記第2部材と前記1の距離となるように移動させる、構成が用いられてもよい。
この構成により、ロボットは、第1部材の1の部位を第2部材と1の距離となるように移動させた後、第1部材の1の部位を第2部材と1の距離とは異なる他の距離となるように移動させて力センサーの初期化を行い、第1部材の1の部位を第2部材と1の距離となるように移動させる。これにより、ロボットは、力センサーに加わる重力等の外力による誤差を抑制することができる。
また、本発明の他の態様は、ロボットにおいて、前記力センサーの前記初期化を行う際、前記第1部材の振動が収まるまで待機した後、前記初期化を行い、前記第1部材の前記1の部位を前記第2部材と前記1の距離となるように移動させる、構成が用いられてもよい。
この構成により、ロボットは、力センサーの初期化を行う際、第1部材の振動が収まるまで待機した後、力センサーの初期化を行い、第1部材の1の部位を第2部材と1の距離となるように移動させる。これにより、ロボットは、第1部材の振動により生じる力センサーの初期化における誤差を抑制することができる。
また、本発明の他の態様は、ロボットにおいて、前記第2部材には前記第1部材の前記1の部位の少なくとも一部が嵌まる凹部が設けられ、前記制御装置は、前記第1部材の前記1の部位を前記力センサーの出力値に基づいた制御により前記第2部材の前記凹部に嵌めて、前記第1部材の前記1の部位の位置を固定する、構成が用いられてもよい。
この構成により、ロボットは、第1部材の1の部位を力センサーの出力値に基づいた制御により第2部材の凹部に嵌めて、第1部材の1の部位の位置を固定する。これにより、ロボットは、第1部材の1の部位の位置を固定したままアームを複数の姿勢にして校正することができる。
また、本発明の他の態様は、ロボットにおいて、2以上の前記アームを備え、前記制御装置は、前記2以上の前記アームを一括で校正する、構成が用いられてもよい。
この構成により、ロボットは、2以上のアームを一括で校正する。これにより、ロボットは、2以上のアームによる協調作業の精度を向上させることができる。
また、本発明の他の態様は、ロボットにおいて、撮像部と、移動機構と、を備え、前記アームの座標軸に対して前記撮像部を校正し、前記撮像部は、前記移動機構よりも上に設置され、前記アームの座標軸は、前記移動機構よりも上に設定され、前記アームの座標軸は、前記撮像部と所定の位置関係にある、構成が用いられてもよい。
この構成により、ロボットは、アームの座標軸に対して撮像部を校正する。これにより、ロボットは、キャリブレーションの手間を軽減することができる。
また、本発明の他の態様は、ロボットにおいて、前記第1部材の前記1の部位を前記第2部材と前記1の距離となるように移動させた後に、少なくとも前記力センサーの出力値に基づいて前記アームを複数の姿勢にすることにより校正する第1校正と、前記第1部材の前記1の部位を前記第2部材と2の距離となるように離した後に、前記第1部材の前記1の部位を前記第2部材と3の距離となるように移動させた後に、少なくとも前記力センサーの出力値に基づいて前記アームを前記第1校正における複数の前記姿勢とは異なる姿勢を1つ以上取らせることにより校正する第2校正と、を行う、構成が用いられてもよい。
この構成により、ロボットは、第1部材の1の部位を第2部材と1の距離となるように移動させた後に、少なくとも力センサーの出力値に基づいてアームを複数の姿勢にすることにより校正する第1校正と、第1部材の1の部位を第2部材と2の距離となるように離した後に、第1部材の1の部位を第2部材と3の距離となるように移動させた後に、少なくとも力センサーの出力値に基づいてアームを第1校正における複数の姿勢とは異なる姿勢を1つ以上取らせることにより校正する第2校正と、を行う。これにより、ロボットは、複数の姿勢におけるマニピュレーターの動作の精度を平均化することができる。
また、本発明の他の態様は、アームと、力センサーとを備えるロボットと、前記ロボットを動作させる制御装置と、前記アームの先端の回転軸上とは異なる位置に1の部位を有する第1部材と、第2部材と、を含み、前記制御装置は、前記第1部材の前記1の部位を前記第2部材と1の距離となるように移動させた後に、少なくとも前記力センサーの出力値に基づいて前記アームを複数の姿勢にすることにより校正する、ロボット校正システムである。
この構成により、ロボット校正システムは、第1部材の1の部位を第2部材と1の距離となるように移動させた後に、少なくとも力センサーの出力値に基づいてアームを複数の姿勢にすることにより校正する。これにより、ロボット校正システムは、容易にマニピュレーターの校正を行うことができる。
以上により、ロボット、及びロボット校正システムは、アームの先端の回転軸上とは異なる位置に1の部位を有する第1部材の1の部位を第2部材と1の距離となるように移動させた後に、少なくとも力センサーの出力値に基づいてアームを複数の姿勢にすることにより校正する。これにより、ロボット、及びロボット校正システムは、容易にマニピュレーターの校正を行うことができる。
本実施形態に係るロボット校正システム1の一例を示す構成図である。 治具Jの一例を示す図である。 校正用情報取得動作に応じてTCPの位置が変化せず、TCPの姿勢が変化する状況の一例を示す図である。 ロボット20が備える第1マニピュレーターMNP1及び第2マニピュレーターMNP2の各関節と、ロボット20の腰軸とを例示する図である。 第1エンドエフェクターEND1の一例を示す図である。 制御装置30のハードウェア構成の一例を示す図である。 制御装置30の機能構成の一例を示す図である。 制御装置30が第1マニピュレーターMNP1及び第2マニピュレーターMNP2の校正を終えるまでの処理の流れの一例を示すフローチャートである。 第1マニピュレーターMNP1の姿勢を例示する図である。 第2実施形態に係るロボット校正システム2の一例を示す構成図である。 制御装置30aの機能構成の一例を示す図である。 制御装置30aがロボット20aに所定の作業を行わせる処理の流れの一例を示すフローチャートである。
<第1実施形態>
以下、本発明の第1実施形態について、図面を参照して説明する。図1は、第1実施形態に係るロボット校正システム1の一例を示す構成図である。ロボット校正システム1は、ロボット20と、制御装置30を備える。ロボット校正システム1は、図1に示した治具Jを用いてロボット20が備えるマニピュレーターの校正を行う。ここで、ロボット校正システム1が行うマニピュレーターの校正について説明する。ロボット校正システム1は、ロボット20のマニピュレーターが備える複数のアクチュエーターそれぞれの回転角を示す情報を、各アクチュエーターに接続される(又は備える)エンコーダーから取得する。以下、説明の便宜上、アクチュエーターの回転角を、単に回転角と称して説明する。
ロボット校正システム1は、各エンコーダーから取得された回転角から、順運動学によって現在のマニピュレーターのTCPの位置を制御装置30により算出する。以下では、説明の便宜上、マニピュレーターのTCPの位置を、単にTCPの位置と称して説明する。ロボット校正システム1は、この算出されたTCPの位置に基づいて、マニピュレーターにより各種の作業を行うようにロボット20を制御する。
しかし、算出されたTCPの位置は、マニピュレーターを構成する部材の弾性によって生じる誤差や、アクチュエーターの回転に係る誤差等によって、実際のTCPの位置と異なる位置を示す場合がある。例えば、マニピュレーターが1つのアクチュエーターのみを備えている場合を考えると、エンコーダーから取得された回転角をθとし、算出された第1TCP位置と実際のTCPの位置が一致する場合のアクチュエーターの回転角をφとした時、この補正は、以下の式(1)に示すように、ある値η(正又は負のいずれかの値)を回転角θに加算することによって行われる。
φ=θ+η ・・・(1)
以下では、上記の式(1)に示したようなアクチュエーターの回転角を補正するための値ηを、ジョイントオフセットと称して説明する。従って、ロボット校正システム1が行うマニピュレーターの校正とは、換言すると、マニピュレーターが備える複数のアクチュエーターそれぞれの回転角毎にジョイントオフセットを算出し、算出されたジョイントオフセットによってマニピュレーターが備える複数のアクチュエーターそれぞれの回転角を補正することを示す。以下では、説明の便宜上、マニピュレーターが備える複数のアクチュエーターそれぞれの回転角毎のジョイントオフセットを、単にジョイントオフセットと称して説明する。
このマニピュレーターの校正により、ロボット校正システム1は、順運動学によって算出されるTCPの位置と、実際のTCPの位置を精度よく一致させることができる。その結果、ロボット校正システム1は、ロボット20が備えるマニピュレーターに高い精度の作業を行わせることができる。以下では、このマニピュレーターの校正のうち、ロボット校正システム1がアクチュエーターの回転角を補正するジョイントオフセットを算出し、算出されたジョイントオフセットを制御装置30に教示する(記憶させる)までの処理について説明する。
このようなマニピュレーターの校正を行う際、ロボット校正システム1は、TCPの位置をある位置に固定する。ロボット校正システム1は、TCPの位置をある位置に固定するため、治具Jを用いる。ロボット校正システム1は、ロボット20が備えるエンドエフェクターの所定部位を治具Jの上面に設けられた凹部Hに接触させる。エンドエフェクターの所定部位は、例えば、第1エンドエフェクターEND1に設けられた突起状の部位の先端である。この先端には、球が設けられている。この球の中心には、第1TCP位置が設定されている。治具Jの上面に設けられた凹部Hは、このようなエンドエフェクターの所定部位が接触した場合、治具Jの上面に沿った方向へのエンドエフェクターの所定部位の動きを固定する。
以下では、説明の便宜上、エンドエフェクターの所定部位を凹部Hに接触させることで、治具Jの上面に沿った方向へエンドエフェクターの所定部位が動かないようにすることを、第1エンドエフェクターEND1の所定部位を凹部Hに嵌めると称して説明する。また、以下では、説明の便宜上、TCPの位置が固定されるある位置を、固定位置Xと称して説明する。
すなわち、ロボット校正システム1は、TCPの位置を固定位置Xに固定するため、エンドエフェクターの所定部位を凹部Hに嵌める。そして、ロボット校正システム1は、エンドエフェクターの所定部位を凹部Hに嵌めたままの状態で、校正用情報取得動作をロボット20に行わせる。
ここで、エンドエフェクターの所定部位を凹部Hに嵌めたままの状態とは、TCPの位置が固定位置Xに固定されるが、TCPの姿勢は固定されない状態を示す。この一例において、マニピュレーターのTCPの姿勢は、CPU(Central Processing Unit)の計算上、エンドエフェクターの所定部位の姿勢と一致した値を設定して用いる。そして、エンドエフェクターの所定部位の姿勢は、エンドエフェクターの所定部位に設定された座標軸の方向によって規定される。なお、TCPの姿勢は、他の部位の姿勢と一致するように設定されてもよい。
また、校正用情報取得動作とは、エンドエフェクターの所定部位を治具Jの凹部Hに嵌めたままの状態で、ロボット20の姿勢を変更する動作を示す。ロボット20の姿勢とは、ロボット20が備える複数のアクチュエーター(マニピュレーターが備えるアクチュエーターと、ロボット20においてマニピュレーターが備えるアクチュエーター以外の他のアクチュエーターとを含む)それぞれの回転角によって指定される。
TCPの位置は、エンドエフェクターの所定部位が凹部Hに嵌められたままであるため、校正用情報取得動作によって動くことはない。一方、TCPの姿勢は、校正用情報取得動作によって変化する。このように校正用情報取得動作に応じてTCPの位置が変化せず、TCPの姿勢が変化する状況を実現するためには、エンドエフェクターの所定部位の形状は、球状であることが望ましいが、校正用情報取得動作によってTCPの位置が固定位置Xから変化しなければ他の形状であってもよい。
ここで、治具Jについて説明する。治具Jは、作業台TBの上面に設置されている。作業台TBとは、テーブル等の台であるが、これに代えて、床面や壁面等、治具Jを設置できる他の物体であってもよい。治具Jは、例えば、上面に凹部Hが設けられた板状の金属である。なお、治具Jは、凹部Hが設けられていれば、床面や壁面等、他の物体であってもよい。
図2は、治具Jの一例を示す図である。図2に示したように、治具Jの上面には、円錐状の凹部Hが設けられている。なお、この凹部Hは、エンドエフェクターの所定部位を嵌めることで、TCPの位置を固定位置Xに固定したままTCPの姿勢を変化させることができる形状であれば他の形状でもよく、例えば、すり鉢状等であってもよい。治具Jは、第2部材の一例である。
ここで、図3を参照して、校正用情報取得動作に応じてTCPの位置が変化せず、TCPの姿勢が変化する状況について説明する。図3は、校正用情報取得動作に応じてTCPの位置が変化せず、TCPの姿勢が変化する状況の一例を示す図である。ロボット校正システム1は、治具Jの凹部Hにエンドエフェクターの所定部位Oを嵌めたままの状態を保持するため、治具Jの上面に対して鉛直下方に向かって所定部位Oを凹部Hに力F1で押しつけ続ける。
この際、ロボット校正システム1は、例えば、インピーダンス制御等の力制御によって治具Jを破壊しないように所定の大きさの力F1で所定部位Oを凹部Hに押しつけ続ける。このようにすることで、TCPの位置は、固定位置Xに固定され、治具Jの上面に沿った方向へ移動することができなくなる(固定される)。従って、この状態を保持したまま、校正用情報取得動作によってエンドエフェクターが、例えば、矢印F2に沿って動いた場合、所定部位Oの姿勢(すなわち、TCPの姿勢)は変化するが、所定部位Oの位置(すなわち、TCPの位置)は変化しない。
ロボット校正システム1は、エンドエフェクターの所定部位を凹部Hに嵌めたまま校正用情報取得動作をロボット20に行わせることで、ロボット20の姿勢を変化させる毎に、ロボット20が備える複数のアクチュエーターそれぞれに係るエンコーダーから、回転角を示す情報を取得する。ロボット校正システム1は、取得された複数の回転角を示す情報と、その時のロボット20の姿勢を示す情報とを対応付けて、校正用情報として記憶する。なお、エンドエフェクターの所定部位は、TCPの位置と一致させることが可能な部位であればよく、マニピュレーターの所定部位等の他の部位であってもよい。
ロボット校正システム1は、上記で説明した処理により記憶された校正用情報に基づいて、順運動学からロボット20の姿勢毎にTCPの位置を算出する方程式を導出する。これらの導出された方程式は、各エンコーダーから取得されたアクチュエーターそれぞれの回転角を入力パラメーターとし、TCPの位置を表す座標(3つの座標値)と、ジョイントオフセットとを未知数とする方程式である。なお、TCPの位置は、マニピュレーターのロボット座標系によって表される。
ロボット校正システム1は、導出された方程式による連立方程式をを最急降下法やニュートン法、レーベンバーグ・マーカート法等のような非線形最適化計算によって解くことにより、未知数であるTCPの位置を表す座標と、ジョイントオフセットを算出する。そして、ロボット校正システム1は、算出されたジョイントオフセットに基づいてマニピュレーターの校正を行う。この校正により、ロボット校正システム1は、治具Jを含む作業領域や治具Jの近傍の作業領域において、マニピュレーターに高い精度の作業をロボット20に行わせることができる。
ここで、ロボット校正システム1が具備するロボット20と制御装置30について説明する。なお、本実施形態では、一例として、ロボット20が2つのマニピュレーターを備える場合について説明する。
ロボット20は、第1動撮像部11と、第2動撮像部12と、第1固定撮像部21と、第2固定撮像部22と、第1力センサー23−1と、第2力センサー23−2と、第1エンドエフェクターEND1と、第2エンドエフェクターEND2と、第1マニピュレーターMNP1と、第2マニピュレーターMNP2と、図示しない複数のアクチュエーターを備えた双腕ロボットである。双腕ロボットとは、2本のアーム(腕)を有するロボットを示し、本実施形態では、第1エンドエフェクターEND1と第1マニピュレーターMNP1によって構成されるアーム(以下、第1アームと称する)と、第2エンドエフェクターEND2と第2マニピュレーターMNP2によって構成されるアーム(以下、第2アームと称する)との2本のアームを有する。
なお、ロボット20は、双腕ロボットに代えて、単腕ロボットであってもよい。単腕ロボットとは、1本のアームを有するロボットを示し、例えば、前述の第1アームと第2アームのうちいずれか一方を有するロボットを示す。また、ロボット20は、双腕ロボットに代えて、3腕以上のロボットであってもよい。3腕以上のロボットとは、3本以上のアームを有するロボットを示す。また、ロボット20は、さらに制御装置30を内蔵し、内蔵された制御装置30により制御される。なお、ロボット20は、制御装置30を内蔵する構成に代えて、外部に設置された制御装置30により制御される構成であってもよい。
また、複数のアクチュエーターはそれぞれ、第1マニピュレーターMNP1が備える各関節、第2マニピュレーターMNP2が備える各関節、図1に示したロボット20の腰部Cに備えられる。なお、腰部Cは、ロボット20の第1マニピュレーターMNP1及び第2マニピュレーターMNP2を含む部分全体をアクチュエーターにより回転させることが可能な位置であれば、他の位置であってもよい。以下では、説明の便宜上、ロボット20の腰部Cに備えられたアクチュエーターを、ロボット20の腰軸と称して説明する。なお、腰部Cは、本体部の一例であり、腰軸は、本体部の軸の一例である。
図4を参照して、ロボット20が備える第1マニピュレーターMNP1、第2マニピュレーターMNP2の各関節と、ロボット20の腰軸について説明する。図4は、ロボット20が備える第1マニピュレーターMNP1及び第2マニピュレーターMNP2の各関節と、ロボット20の腰軸とを例示する図である。図4に示すように、第1マニピュレーターMNP1は、J01〜J07によって示される7つの関節、すなわち7つのアクチュエーターを備える。
また、第2マニピュレーターMNP2は、J11〜J17によって示される7つの関節、すなわち7つのアクチュエーターを備える。また、腰部Cには、J0によって示される腰軸、すなわちアクチュエーターを備える。腰軸J0、関節J01〜J07、関節J11〜J17はそれぞれ、図4に示した矢印に沿って回転する。この回転の回転角を示す情報を、それぞれのアクチュエーターに係るエンコーダーが出力する。なお、図4に示したように、第1固定撮像部21及び第2固定撮像部22は、腰軸J0とともに動くように、腰部Cよりも上側に設置されている。なお、第1マニピュレーターMNP1又は第2マニピュレーターMNP2が備える複数のアクチュエーターそれぞれの回転角は、アームを制御するためのパラメーターの一例である。
ここで、図5を参照して、ロボット20が備える第1エンドエフェクターEND1について説明する。なお、第2エンドエフェクターEND2は、第1エンドエフェクターEND1と同様の構造を持つため説明を省略する。図5は、第1エンドエフェクターEND1の一例を示す図である。図5に示したように、第1エンドエフェクターEND1は、突起部位Pを備え、その突起部位Pの先端には球TCP1が設けられている。
以下では、この先端の球TCP1を、先端球TCP1と称して説明する。前述のエンドエフェクターの所定部位とは、この先端球を示す。つまり、第1エンドエフェクターEND1の所定部位とは、先端球TCP1を示す。また、先端球TCP1は、先端球TCP1の中心の位置が第1マニピュレーターMNP1のTCPの位置と一致するように設けられる(又は、第1マニピュレーターMNP1のTCPの位置を先端球TCP1の中心の位置と一致するように設定する)。なお、以下では、第2エンドエフェクターEND2の所定部位を、先端球TCP2と称して説明する。また、以下では、説明の便宜上、先端球TCP1の中心の位置を先端球TCP1の位置と称し、先端球TCP2の中心の位置を先端球TCP2の位置と称して説明する。なお、先端球TCP1と先端球TCP2のそれぞれは、第1部材の一例である。また、この一例において、第1エンドエフェクターEND1の所定部位が球である場合について説明するが、第1エンドエフェクターEND1の所定部位は、第1TCP位置が固定位置Xに固定することができれば、球である必要は無く、他の形状であってもよい。
突起部位Pは、突起部位の長手方向に延びている中心軸CL2と、第1マニピュレーターMNP1のフランジの中心を通る中心軸CL1とがオフセットOFだけ離れるように第1エンドエフェクターEND1に設けられている。以下では、このように先端球TCP1の中心軸CL2が、第1マニピュレーターMNP1の中心軸CL1からオフセットOFだけ離れている構造を、オフセット構造と称して説明する。
本実施形態において、第1エンドエフェクターEND1は、第1マニピュレーターMNP1を校正するための専用のエンドエフェクターであるとするが、これに代えて、オフセット構造を有する所定部位を備える他のエンドエフェクターであってもよい。なお、中心軸CL1は、図4に示した関節J07の回転軸であり、アームの先端の回転軸の一例である。また、第2エンドエフェクターEND2における中心軸CL1は、図4に示した関節J17の回転軸であり、アームの先端の回転軸の一例である。
図1に戻る。第1アームは、7軸垂直多関節型となっており、支持台と第1マニピュレーターMNP1と第1エンドエフェクターEND1とがアクチュエーターによる連携した動作によって7軸の自由度の動作を行うことができる。なお、第1腕は、6自由度(6軸)以下で動作するものであってもよく、8自由度(8軸)以上で動作するものであってもよい。また、第1アームは、第1動撮像部11を備える。
第1動撮像部11は、例えば、集光された光を電気信号に変換する撮像素子であるCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を備えたカメラである。
第1動撮像部11は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる。なお、第1動撮像部11と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。第1動撮像部11は、図1に示したように第1アームを構成する第1マニピュレーターMNP1の一部に備えられており、第1アームの動きによって移動することが可能である。
第2アームは、7軸垂直多関節型となっており、支持台と第2マニピュレーターMNP2と第2エンドエフェクターEND2とがアクチュエーターによる連携した動作によって6軸の自由度の動作を行うことができる。なお、第2アームは、6自由度(6軸)以下で動作するものであってもよく、8自由度(8軸)以上で動作するものであってもよい。また、第2アームは、第2動撮像部12を備える。
第2動撮像部12は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。
第2動撮像部12は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2動撮像部12と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。第2動撮像部12は、図1に示したように第2アームを構成する第2マニピュレーターMNP2の一部に備えられており、第2アームの動きによって移動することが可能である。
第1固定撮像部21は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。第1固定撮像部21は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2動撮像部12と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
第2固定撮像部22は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。第2固定撮像部22は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2固定撮像部22と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
なお、本実施形態において、ロボット20は、第1動撮像部11、第2動撮像部12、第1固定撮像部21、第2固定撮像部22の一部又は全部を備えない構成であってもよい。
第1力センサー23−1は、ロボット20の第1エンドエフェクターEND1と第1マニピュレーターMNP1との間に備えられている。第1力センサー23−1は、第1エンドエフェクターEND1に作用した力やモーメントを検出する。第1力センサー23−1は、検出した力やモーメントを示す情報(以下、力センサー情報と称する)を、通信により制御装置30へ出力する。
第2力センサー23−2は、第2エンドエフェクターEND2と第2マニピュレーターMNP2との間に備えられている。第2力センサー23−2は、第2エンドエフェクターEND2に作用した力やモーメントを検出する。第2力センサー23−2は、検出した力やモーメントを示す情報(以下、力センサー情報と称する)を、通信により制御装置30へ出力する。第1力センサー23−1と第2力センサー23−2のうちいずれか一方又は両方により検出された力センサー情報は、例えば、制御装置30によるロボット20の力制御等に用いられる。なお、以下では、第1力センサー23−1と第2力センサー23−2を区別する必要が無い限り、まとめて力センサー23と称して説明する。なお、力センサー情報に含まれる力の大きさやモーメントの大きさを示す値は、力センサーの出力値の一例である。
ロボット20が備える第1動撮像部11、第2動撮像部12、第1固定撮像部21、第2固定撮像部22、第1力センサー23−1、第2力センサー23−2、第1エンドエフェクターEND1、第2エンドエフェクターEND2、第1マニピュレーターMNP1、第2マニピュレーターMNP2、図示しない複数のアクチュエーターのそれぞれ(以下、ロボット20が備える各機能部と称する)は、例えば、ロボット20に内蔵されている制御装置30とケーブルによって通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、ロボット20が備える各機能部と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続されてもよい。
本実施形態において、ロボット20が備える各機能部は、ロボット20に内蔵された制御装置30から入力された制御信号を取得し、取得した制御信号に基づいて第1マニピュレーターMNP1及び第2マニピュレーターMNP2の校正用情報取得動作を行う。
制御装置30は、ユーザーにより行われたジョグ操作等の操作を受け付け、受け付けられた操作に基づいた動作をロボット20に行わせる。また、制御装置30は、ロボット20に校正用情報取得動作を行わせる。制御装置30は、ロボット20が行う校正用情報取得動作に基づいて、ロボット20が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセットを算出する。そして、制御装置30は、算出されたジョイントオフセットを記憶する。
次に、図6を参照して、制御装置30のハードウェア構成について説明する。図6は、制御装置30のハードウェア構成の一例を示す図である。制御装置30は、例えば、CPU31と、記憶部32と、入力受付部33と、通信部34と、表示部35を備え、通信部34を介してロボット20と通信を行う。これらの構成要素は、バスBusを介して相互に通信可能に接続されている。CPU31は、記憶部32に格納された各種プログラムを実行する。
記憶部32は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含み、制御装置30が処理する各種情報や画像、プログラム等を格納する。なお、記憶部32は、制御装置30に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
入力受付部33は、例えば、キーボードやマウス、タッチパッド等を備えたティーチングペンダントや、その他の入力装置である。なお、入力受付部33は、タッチパネルとして表示部と一体に構成されてもよい。
通信部34は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネルである。
次に、図7を参照して、制御装置30の機能構成について説明する。図7は、制御装置30の機能構成の一例を示す図である。制御装置30は、記憶部32と、入力受付部33と、表示部35と、制御部36を備える。制御部36が備える機能部のうち一部又は全部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
制御部36は、制御装置30の全体を制御する。制御部36は、表示制御部40と、校正制御部41を備える。
表示制御部40は、マニピュレーターの校正処理においてユーザーにより行われる操作を補助するGUI(Graphical User Interface)を生成し、生成されたGUIを表示部35に表示させる。このGUIには、例えば、マニピュレーターの校正処理を開始させるためのボタンや、ロボット20をジョグ操作するためのジョグ等が含まれる。
校正制御部41は、ロボット制御部42と、力センサー初期化部43と、力センサー情報取得部44と、回転角取得部45と、ジョイントオフセット算出部46と、誤差評価部47と、教示部48を備える。校正制御部41は、第1マニピュレーターMNP1及び第2マニピュレーターMNP2の校正に係る処理の全体を制御する。
より具体的には、校正制御部41は、入力受付部33により受け付けられた操作(例えば、GUIを介したジョグ操作)に基づいてロボット制御部42によりロボット20を動かす。なお、本実施形態において、校正制御部41がGUIを介して入力受付部33から操作を受け付ける場合について説明するが、校正制御部41がGUIを介さずにスイッチやボタン等を介して操作を受け付ける構成であってもよい。また、このGUIには、ロボット20を動かすジョグ画面や、第1マニピュレーターMNP1の校正用情報取得動作を開始させるボタン、第2マニピュレーターMNP2の校正用情報取得動作を開始させるボタン等が含まれる。
ロボット制御部42は、校正制御部41からの要求に応じてロボット20を動作させる。また、ロボット制御部42は、力センサー情報取得部44から力センサー23により検出される力センサー情報を取得し、取得された力センサー情報に基づいた制御によりロボット20を制御する。力センサー情報に基づいた制御とは、例えば、インピーダンス制御等の力制御を示す。
力センサー初期化部43は、力センサー23により検出される力センサー情報のゼロ点を設定(初期化)する。例えば、力センサー初期化部43は、力センサー23から重力以外検出されていない状態において、力センサー23により検出されている重力の大きさをゼロ点とする。以下では、このような処理を、力センサー23の初期化と称して説明する。
力センサー情報取得部44は、力センサー23により検出される力センサー情報を取得する。そして、力センサー情報取得部44は、取得された力センサー情報をロボット制御部42に出力する。
回転角取得部45は、ロボット20が備える複数のアクチュエーターに係るエンコーダーから、回転角を示す情報を取得する。そして、回転角取得部45は、取得された複数の回転角を示す情報と、その時点でのロボット20の姿勢を示す情報(例えば、姿勢を区別するためのID等)とを対応付け、校正用情報として記憶部32に記憶させる。
ジョイントオフセット算出部46は、記憶部32により記憶された校正用情報を取得する。ジョイントオフセット算出部46は、取得された校正用情報に基づいて、第1マニピュレーターMNP1及び第2マニピュレーターMNP2が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセットを算出する。ジョイントオフセット算出部46は、算出されたジョイントオフセットを示す情報を記憶部32に記憶させる。
誤差評価部47は、記憶部32に記憶された校正用情報を1つずつ読み込み、読み込まれた校正用情報毎に、校正用情報に含まれる回転角を示す情報と、記憶部32に記憶されたジョイントオフセットを示す情報とに基づく順運動学によって、第1マニピュレーターMNP1のTCPの位置を算出する。
そして、誤差評価部47は、校正用情報毎(すなわち、ロボット20の姿勢毎)に算出されたすべての第1マニピュレーターMNP1のTCPの位置に基づいて、それら第1マニピュレーターMNP1のTCPの位置のばらつきの度合いを示す量を算出する。以下では、この一例として、このばらつき度合いを示す量が、標準偏差である場合について説明する。すなわち、誤差評価部47は、校正用情報毎に算出されたすべての第1マニピュレーターMNP1のTCPの位置に基づいて、それらの第1マニピュレーターMNP1のTCPの位置の標準偏差を、第1標準偏差として算出する。なお、ばらつき度合いを示す量は、標準偏差に代えて、例えば、分散や標準誤差等であってもよい。誤差評価部47は、算出された第1標準偏差が所定値未満であるか否かを判定(評価)する。
また、誤差評価部47は、記憶部32に記憶された校正用情報を1つずつ読み込み、読み込まれた校正用情報毎に、校正用情報に含まれる回転角を示す情報と、記憶部32により記憶されたジョイントオフセットを示す情報とに基づく順運動学によって、第2マニピュレーターMNP2のTCPの位置を算出する。そして、誤差評価部47は、校正用情報毎(すなわち、ロボット20の姿勢毎)に算出されたすべての第2マニピュレーターMNP2のTCPの位置に基づいて、それら第2マニピュレーターMNP2のTCPの位置の標準偏差を、第2標準偏差として算出する。誤差評価部47は、算出された第2標準偏差が所定値未満であるか否かを判定(評価)する。
教示部48は、誤差評価部47により算出された第1標準偏差及び第2標準偏差の両方が所定値X1未満であると誤差評価部47が判定した場合、第1マニピュレーターMNP1及び第2マニピュレーターMNP2が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセットを、記憶部32に記憶させる。なお、教示部48は、第1標準偏差が所定値X1未満であるか否かを判定し、第2標準偏差が所定値X1とは異なる所定値X2未満であるか否かを判定する構成であってもよい。
以下、図8を参照して、制御装置30が第1マニピュレーターMNP1及び第2マニピュレーターMNP2の校正を終えるまでの処理について説明する。図8は、制御装置30が第1マニピュレーターMNP1及び第2マニピュレーターMNP2の校正を終えるまでの処理の流れの一例を示すフローチャートである。まず、表示制御部40は、マニピュレーターの校正処理においてユーザーが行う操作を補助するGUIを表示部35に表示させる(ステップS100)。
次に、制御部36は、ロボット20が備えるマニピュレーター(すなわち、第1マニピュレーターMNP1と第2マニピュレーターMNP2)毎に、ステップS120からステップS220までの処理を繰り返し行う(ステップS110)。以下では、説明の便宜上、最初に第1マニピュレーターMNP1に対してステップS120からステップS220までの処理を行い、次に第2マニピュレーターMNP2に対してステップS120からステップS220までの処理を行う場合について説明する。
そのため、ステップS120からステップS220までの処理については、主に第1マニピュレーターMNP1に対しての処理について説明する。なお、制御部36は、最初に第2マニピュレーターMNP2に対してステップS120からステップS220までの処理を行い、次に第1マニピュレーターMNP1に対してステップS120からステップS220までの処理を行う構成であってもよい。
ロボット制御部42は、ステップS100で表示部35に表示されたGUIを介して入力受付部33により受け付けられたユーザーからのジョグ操作に基づいて、第1エンドエフェクターEND1の先端球TCP1を治具Jの凹部Hに嵌める(ステップS120)。次に、校正制御部41は、ステップS100で表示部35に表示されたGUIを介して第1マニピュレーターMNP1の校正処理を開始するための操作(例えば、第1マニピュレーターMNP1の校正処理を開始するボタンのクリック)を入力受付部33により受け付ける(ステップS130)。
次に、ロボット制御部42は、治具Jの凹部Hに嵌められた先端球TCP1を、治具Jの凹部Hから所定方向に所定距離だけ移動させる。そして、力センサー初期化部43は、この時点で第1力センサー23−1の初期化を行う(ステップS140)。なお、所定方向は、例えば、鉛直上方であるが、他の方向であってもよい。また、所定距離は、先端球TCP1が凹部Hから離れる距離であれば良いが、先端球TCP1が凹部Hから離れている間に、振動等によって凹部Hが設けられた治具Jの上面に沿った方向に先端球TCP1の位置がずれない(もしくは、ずれたとしても力センサー情報に基づいた制御によって先端球TCP1を凹部Hの内壁に沿わせることで容易にずれる前の位置に戻せる)程度の距離が望ましい。
なお、先端球TCP1が治具J1の凹部H1から離れている間に、治具J1の上面に沿った方向に先端球TCP1の位置がずれる原因は、先端球TCP1の振動の他にも、この段階で各アクチュエーターの回転角を補正するジョイントオフセットが算出されていないことによる先端球TCP1の位置を移動させる際の誤差や、力センサー23の値の振動(増減)等も考えられる。また、力センサー初期化部43は、ロボット制御部42が治具Jの凹部Hに嵌められた先端球TCP1を、治具Jの凹部Hから所定方向に所定距離だけ移動させた後に力センサー23の初期化を行う構成に代えて、治具Jの凹部Hに先端球TCP1が嵌められる前に力センサー23の初期化を行う構成であってもよい。つまり、力センサー23の初期化が行われる前に、必ず先端球TCP1が治具Jの凹部Hに嵌められる必要は無い。
また、ロボット制御部42は、治具Jの凹部Hに嵌められた先端球TCP1を、治具Jの凹部Hから所定方向に所定距離だけ移動させた後、先端球TCP1(又は第1マニピュレーターMNP1)の振動が収まるまで待機する。より具体的には、ロボット制御部42は、この待機において、所定時間が経過するまで待機し、その後、ステップS150の処理に遷移する。なお、ロボット制御部42は、これに代えて、第1力センサー23−1によって第1マニピュレーターMNP1の振動の単位時間当たりの振動数を測定し、測定された振動数が予め決められた閾値以下になるまで待機する構成等であってもよい。
次に、ロボット制御部42は、先端球TCP1を再び治具Jの凹部Hに嵌めるために、ステップS140における所定方向と逆方向に移動させる。この際、ロボット制御部42は、力センサー情報取得部44から力センサー情報を取得し、取得された力センサー情報に基づいた制御により、先端球TCP1が治具Jの凹部Hに嵌まるまで先端球TCP1を移動させる(ステップS150)。先端球TCP1を治具Jの凹部Hに嵌めた後、ロボット制御部42は、凹部Hに嵌められた先端球TCP1に対して、鉛直下方に所定の大きさの力を加える。そして、ロボット制御部42は、ステップS140における所定方向の逆方向に所定の大きさの力を加えた状態を保持したまま、ステップS160からステップS220までの処理を行う。
なお、もしロボット制御部42が力センサー情報に基づいた制御を行わずに先端球TCP1を治具Jの凹部Hに嵌めた場合、治具Jの凹部Hと、先端球TCP1とが接触する部分に大きな負荷が掛かる場合がある。この場合、先端球TCP1は、治具Jの凹部Hから外れてしまう可能性が高い。また、この場合、先端球TCP1を有する第1エンドエフェクターEND1と、治具Jとのうちいずれか一方又は両方は、変形してしまう場合がある。これらの事象が起こると、ロボット校正システム1は、第1マニピュレーターMNP1の校正を正確に行うことができない。それ故、ロボット校正システム1は、第1力センサー23−1から取得される力センサー情報に基づいた制御により、先端球TCP1を治具Jの凹部Hに嵌める。
次に、回転角取得部45は、ロボット20の腰部C及び第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれに係るエンコーダーから、回転角を示す情報を取得する(ステップS160)。この回転角を示す情報を取得する際、ロボット制御部42は、第1力センサー23−1によって第1マニピュレーターMNP1の振動の単位時間当たりの振動数を測定し、測定された振動数が予め決められた閾値以下になるまで待機する。これにより、ロボット制御部42は、各アクチュエーターの回転角が、第1マニピュレーターMNP1の振動によって変化してしまうことを抑制することができる。
次に、回転角取得部45は、ステップS160で取得された回転角を示す情報に、現在のロボット20の姿勢を示す情報を対応付けた校正用情報を記憶部32に記憶させる(ステップS170)。次に、校正制御部41は、記憶部32に記憶された校正用情報の数が予め定められた規定数以上であるか否かを判定する(ステップS180)。
ここで、この規定数は、ジョイントオフセット算出部46がジョイントオフセットを算出する時に用いる連立方程式の未知数の数以上であれば良く、この一例においては、10であるとする。なお、ステップS190で変更される姿勢によって、第1マニピュレーターMNP1が備える複数のアクチュエーターがそれぞれ一定角以上動くように第1校正用情報を取得するのが望ましい。。
記憶部32に記憶された校正用情報の数が予め定められた規定数以上ではないと校正制御部41が判定した場合(ステップS180−No)、ロボット制御部42は、第1マニピュレーターMNP1の姿勢を次の姿勢に変更し(ステップS190)、その後、変更された第1マニピュレーターMNP1の姿勢においてステップS160からステップS190までの処理を行う。なお、ロボット制御部42は、ステップS190の処理において、力センサー情報に基づいた制御によって先端球TCP1を治具Jの凹部Hに嵌めた状態を保持したまま、第1マニピュレーターMNP1の姿勢を次の姿勢に変更するようにロボット20を制御する。
ここで、ロボット制御部42は、第1マニピュレーターMNP1の姿勢を次の姿勢に変更する際、第1マニピュレーターMNP1の姿勢を示す情報を順に読み込み、読み込まれた順に第1マニピュレーターMNP1の姿勢を変更する構成であってもよく、第1マニピュレーターMNP1の姿勢をランダムに変更する構成等であってもよい。以下では、ロボット制御部42が記憶部32に記憶された姿勢を示す情報を順に読み込み、読み込まれた順に第1マニピュレーターMNP1の姿勢を変更する場合について説明する。なお、第1マニピュレーターMNP1及び第2マニピュレーターMNP2の姿勢のそれぞれは、アームの姿勢の一例である。
一方、記憶部32に記憶された校正用情報の数が予め定められた規定数以上であると校正制御部41が判定した場合(ステップS180−Yes)、ロボット制御部42は、第1マニピュレーターMNP1の姿勢を、ステップS150で先端球TCP1を治具Jの凹部Hに嵌めた時の第1マニピュレーターMNP1の姿勢に変更する(ステップS200)。図8において、この制御を、マニピュレーターの姿勢の初期化と称している。
ここで、図9を参照して、ステップS190でロボット制御部42が第1マニピュレーターMNP1の姿勢を変更する処理について説明する。図9は、第1マニピュレーターMNP1の姿勢を例示する図である。図9(A)には、第1マニピュレーターMNP1の姿勢の一例を示す。図9(B)には、第1マニピュレーターMNP1の姿勢の他の例を示す。図9(C)には、第1マニピュレーターMNP1の姿勢の更に他の例を示す。
ロボット制御部42は、先端球TCP1を治具Jの凹部Hに嵌めた状態を保持しながら、例えば、図9(A)に示した第1マニピュレーターMNP1の姿勢から、図9(B)や図9(C)に示した第1マニピュレーターMNP1の姿勢へと第1マニピュレーターMNP1の姿勢を変更する。このように姿勢を変更することで、先端球TCP1の中心に設定されている第1マニピュレーターMNP1のTCPの位置を固定位置Xから変えることなく、第1マニピュレーターMNP1の姿勢毎に異なる複数の回転角であって第1マニピュレーターMNP1に備えられた複数のアクチュエーターそれぞれの回転角を取得することができる。
次に、ロボット制御部42は、ロボット20の腰軸を所定回数以上変更させたか否かを判定する(ステップS210)。ロボット20の腰軸を所定回数以上変更させていないと判定した場合(ステップS210−No)、ロボット制御部42は、腰軸の姿勢を次の姿勢に変更するようにロボット20を制御し(ステップS220)、その後、変更された腰軸の姿勢においてステップS160からステップS220までの処理を行う。なお、ロボット制御部42は、ステップS220の処理において、力センサー情報に基づいた制御によって先端球TCP1を治具Jの凹部Hに嵌めた状態を保持したまま、腰軸の姿勢を次の姿勢に変更するようにロボット20を制御する。
一方、ロボット20の腰軸を所定回数以上変更させたとロボット制御部42が判定した場合(ステップS210−Yes)、ロボット制御部42は、ステップS110に戻り、第2マニピュレーターMNP2に対して再びステップS120からステップS220までの処理を行う(ステップS225)。なお、ステップS160〜ステップS220までの処理は、上述した校正用情報取得動作を第1マニピュレーターMNP1及び第2マニピュレーターMNP2のそれぞれに行わせる処理の一例である。
第2マニピュレーターMNP2に対するステップS160〜ステップS220までの処理が終わった後、ジョイントオフセット算出部46は、記憶部32に記憶された校正用情報をすべて読み込む。ジョイントオフセット算出部46は、読み込まれたすべての校正用情報に基づいて、第1マニピュレーターMNP1及び第2マニピュレーターMNP2のそれぞれに備えられた複数のアクチュエーターに係るジョイントオフセットを算出し、算出されたジョイントオフセットを示す情報を記憶部32に記憶させる(ステップS230)。
なお、ステップS230におけるジョイントオフセットを示す情報の記憶部32への記憶は、ステップS240における処理においてジョイントオフセットを用いるための一時的な記憶であり、前述のジョイントオフセットの教示とは異なる。
ここで、ジョイントオフセット算出部46によるジョイントオフセットの算出処理について説明する。順運動学では、第1マニピュレーターMNP1に係る校正用情報毎(すなわち、ロボット20の腰軸の姿勢と第1マニピュレーターMNP1の姿勢との組み合わせ毎)に、第1マニピュレーターMNP1のTCPの位置を算出する方程式が得られる。これら第1マニピュレーターMNP1のTCPの位置を算出する方程式の入力パラメーターは、腰軸のアクチュエーターの回転角と、第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれの回転角である。また、これら第1マニピュレーターMNP1のTCPの位置を算出する方程式の未知数は、第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセット(7つのジョイントオフセット)と、第1マニピュレーターMNP1のTCPの位置を示す座標(3つの座標値)である。
また、順運動学では、第2マニピュレーターMNP2に係る校正用情報毎(すなわち、ロボット20の腰軸の姿勢と第2マニピュレーターMNP2の姿勢との組み合わせ毎)に、第2マニピュレーターMNP2のTCPの位置を算出する方程式が得られる。これら第2マニピュレーターMNP2のTCPの位置を算出する方程式の入力パラメーターは、腰軸のアクチュエーターの回転角と、第2マニピュレーターMNP2が備える複数のアクチュエーターそれぞれの回転角である。また、これら第2マニピュレーターMNP2のTCPの位置を算出する方程式の未知数は、第2マニピュレーターMNP2が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセット(7つのジョイントオフセット)と、第2マニピュレーターMNP2のTCPの位置を示す座標(3つの座標値)である。
ここで、ロボット校正システム1において、第1マニピュレーターMNP1のTCPの位置を算出する方程式それぞれに含まれる第1マニピュレーターMNP1のTCPの位置を示す座標と、第2マニピュレーターMNP2のTCPの位置を算出する方程式それぞれに含まれる第2マニピュレーターMNP2のTCPの位置を示す座標とは、校正用情報取得動作が行われている間、第1マニピュレーターMNP1のTCPの位置と、第2マニピュレーターMNP2のTCPの位置とが固定位置Xに固定されていた為、共通の値でなければならない。これを利用し、ジョイントオフセット算出部46は、第1マニピュレーターMNP1のTCPの位置を算出する方程式と、第2マニピュレーターMNP2のTCPの位置を算出する方程式による連立方程式を一括して解く。
その結果、ジョイントオフセット算出部46は、第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセットと、第2マニピュレーターMNP2が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセットとを算出する。また、この算出の際、ジョイントオフセット算出部46は、第1マニピュレーターMNP1のTCPの位置と、第2マニピュレーターMNP2のTCPの位置とを、ある1つの座標系において表される位置として算出する。以下では、この座標系を共有ロボット座標系と称する。
算出されたジョイントオフセットにより、ロボット校正システム1は、治具Jを含む作業領域や治具Jの近傍の作業領域において、第1マニピュレーターMNP1と第2マニピュレーターMNP2との協調作業の精度を向上させることができる。協調作業とは、第1マニピュレーターMNP1のTCPの位置と、第2マニピュレーターMNP2のTCPの位置とをそれぞれ同じ位置に移動させ、第1マニピュレーターMNP1及び第2マニピュレーターMNP2の両方により行う作業である。
なお、マニピュレーターのTCPの位置を固定位置Xに固定して得られた校正用情報に基づいて導出された複数の方程式による連立方程式を解くことによってジョイントオフセットを算出する方法では、マニピュレーターの根元(エンドエフェクターが備えられる側とは反対側の端部)のアクチュエーターの回転角を補正するジョイントオフセットを算出しようとしても、順運動学に係る数学上、不定となってしまう。
しかし、ロボット校正システム1では、マニピュレーターの根元のアクチュエーターに対応するアクチュエーターが、ロボット20の腰軸のアクチュエーターとなっている。そのため、ロボット校正システム1は、第1マニピュレーターMNP1及び第2マニピュレーターMNP2それぞれが備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセットを、すべて算出することができる。
また、ロボット校正システム1は、算出された第1ジョイントオフセット及び第2ジョイントオフセットによって第1マニピュレーターMNP1及び第2マニピュレーターMNP2それぞれの校正を行い、且つ腰軸を固定することで、治具Jを含む作業領域や治具Jの近傍の作業領域において、第1マニピュレーターMNP1及び第2マニピュレーターMNP2による協調作業の精度を向上させることができる。また、ロボット校正システム1は、算出された第1ジョイントオフセット及び第2ジョイントオフセットによって第1マニピュレーターMNP1及び第2マニピュレーターMNP2それぞれの校正を行い、且つ腰軸を固定することで、治具Jを含む作業領域や治具Jの近傍の作業領域において、第1マニピュレーターMNP1及び第2マニピュレーターMNP2のそれぞれによって行う作業の精度を向上させることができる。なお、ロボット校正システム1は、他の装置を用いて腰軸のアクチュエーターのジョイントオフセットを算出させ、算出されたジョイントオフセットによって腰軸のアクチュエーターの校正を行う構成であってもよい。
また、もし第1エンドエフェクターEND1と第2エンドエフェクターEND2のそれぞれがオフセット構造を有していない場合、ロボット校正システム1は、第1マニピュレーターMNP1の先端に備えられた関節J07のアクチュエーターの回転角に対するジョイントオフセットと、第2マニピュレーターMNP2の先端に備えられた関節J17のアクチュエーターの回転角に対するジョイントオフセットとが不定となってしまうことにより算出することができない。これは、先端球TCP1を治具Jの凹部Hに嵌めた状態を保持したまま第1マニピュレーターMNP1の姿勢を如何様に変更したとしても、第1マニピュレーターMNP1の先端に備えられた関節J07のアクチュエーターの回転角が変化せず、先端球TCP2を治具Jの凹部Hに嵌めた状態を保持したまま第2マニピュレーターMNP2の姿勢を如何様に変更したとしても、第2マニピュレーターMNP2の先端に備えられた関節J17のアクチュエーターの回転角が変化しないためである。
これに対し、図5に示したように第1エンドエフェクターEND1と第2エンドエフェクターEND2それぞれがオフセット構造を有している場合、ロボット校正システム1は、第1マニピュレーターMNP1と第2マニピュレーターMNP2のそれぞれが備えるすべてのアクチュエーターの回転角に対するジョイントオフセットを算出することができる。これにより、ロボット校正システム1は、関節J07及び関節J17それぞれに備えられたアクチュエーターの回転角に対するジョイントオフセットを、他の装置によって算出することなく、第1マニピュレーターMNP1及び第2マニピュレーターMNP2の校正を一括して行うことができる。
次に、誤差評価部47は、ステップS230で記憶部32に記憶された第1マニピュレーターMNP1に係るジョイントオフセットを示す情報を記憶部32から読み込む。また、誤差評価部47は、ステップS170で記憶された第1マニピュレーターMNP1に係るすべての校正用情報を記憶部32から1つずつ読み込む。誤差評価部47は、読み込まれた校正用情報毎に、校正用情報に含まれる回転角と、読み込まれたジョイントオフセットとに基づく順運動学により、第1マニピュレーターMNP1のTCPの位置を算出する。そして、誤差評価部47は、校正用情報毎(すなわち、ロボット20の姿勢毎)に算出されたすべての第1マニピュレーターMNP1のTCPの位置に基づいて、それらのTCPの位置の標準偏差を、第1標準偏差として算出する。
また、誤差評価部47は、ステップS230で記憶部32に記憶された第2マニピュレーターMNP2に係るジョイントオフセットを示す情報を記憶部32から読み込む。そして、誤差評価部47は、ステップS170で記憶された第2マニピュレーターMNP2に係るすべての校正用情報を記憶部32から1つずつ読み込む。誤差評価部47は、読み込まれた校正用情報毎に、校正用情報に含まれる回転角と、読み込まれたジョイントオフセットとに基づく順運動学により、第2マニピュレーターMNP2のTCPの位置を算出する。そして、誤差評価部47は、校正用情報毎(すなわち、ロボット20の姿勢毎)に算出されたすべての第2マニピュレーターMNP2のTCPの位置に基づいて、それらのTCPの位置の標準偏差を、第2標準偏差として算出する(ステップS240)。
次に、誤差評価部47は、第1標準偏差と、第2標準偏差との両方がそれぞれ所定値未満であるか否かを判定(評価)する(ステップS250)。ステップS240で算出された第1標準偏差と、ステップS240で算出された第2標準偏差とのうちいずれか一方が所定値未満ではないと誤差評価部47が判定した場合(ステップS250−No)、ロボット制御部42は、ステップS110に戻り、第1マニピュレーターMNP1及び第2マニピュレーターMNP2に係る校正用情報を取得し直すことで、ジョイントオフセットを算出し直す。
一方、ステップS240で算出された第1標準偏差と、ステップS240で算出された第2標準偏差との両方が所定値X1未満であると誤差評価部47が判定した場合(ステップS250−Yes)、教示部48は、ステップS230で算出されたジョイントオフセットを記憶部32に記憶させる(ステップS260)。ステップS260における第1ジョイントオフセットを示す情報と第2ジョイントオフセットを示す情報との記憶部32への記憶は、前述の第1ジョイントオフセット及び第2ジョイントオフセットの教示を示す。なお、ステップS240で算出された第1標準偏差と、ステップS240で算出された第2標準偏差とのうちいずれか一方が所定値未満ではないと誤差評価部47が判定した場合、教示部48は、所定値未満であると判定された一方の標準偏差に係るマニピュレーター(第1マニピュレーターMNP1と第2マニピュレーターMNP2のうちのいずれか)のジョイントオフセットであって、ステップS230で算出されたジョイントオフセットを記憶部32に記憶させる構成であってもよい。
なお、本実施形態では、教示部48は、ステップS240で算出された第1標準偏差と、ステップS240で算出された第2標準偏差との両方が所定値X1未満であるか否かを判定する構成であるとしたが、これに代えて、ステップS240で算出された第1標準偏差と、ステップS240で算出された第2標準偏差とのうちいずれか一方が所定値X1未満であると誤差評価部47が判定した場合、ステップS230で算出されたジョイントオフセットを記憶部32に記憶させる(教示する)構成であってもよい。また、先端球TCP1と凹部Hとの相対位置関係が固定されている際の先端球TCP1と凹部Hとの間の距離は、例えば、凹部Hの最も深い部分(この一例において、凹部Hの中心)の位置から、先端球TCP1の凹部Hに接触する点までの距離であるが、他の2点間の距離であってもよい。先端球TCP1と凹部Hとの相対位置関係が固定されている際の先端球TCP1と凹部Hとの間の距離は、1の距離の一例である。また、先端球TCP2と凹部Hとの相対位置関係が固定されている際の先端球TCP2と凹部Hとの間の距離は、例えば、凹部Hの最も深い部分(この一例において、凹部Hの中心)の位置から、先端球TCP1の凹部Hに接触する点までの距離であるが、他の2点間の距離であってもよい。
<第1実施形態の変形例>
以下、本発明の第1実施形態の変形例について説明する。第1実施形態の変形例に係るロボット校正システム1は、先端球TCP1を治具Jの凹部Hに嵌めた状態で第1マニピュレーターMNP1を複数の姿勢にし、第1マニピュレーターMNP1の校正を行う第1校正と、先端球TCP1を治具Jの凹部Hから離した後、先端球TCP1を治具Jの凹部Hに再び嵌めた状態で第1マニピュレーターMNP1を第1校正における複数の姿勢とは異なる姿勢にすることにより、第1マニピュレーターMNP1の校正を行う第2校正と、を行う。また、ロボット校正システム1は、第2マニピュレーターMNP2に対しても、第1マニピュレーターMNP1に対する処理と同様の処理を行い、第1校正と第2校正を行う。
以下では、第1マニピュレーターMNP1の校正について説明する。第2マニピュレーターMNP2の校正についての説明は、以下の説明の第1マニピュレーターMNP1を第2マニピュレーターMNP2に読み換えたものとする。
以下、第1実施形態の変形例に係るロボット校正システム1についての具体例を説明する。
ロボット校正システム1は、図8に示したステップS120からステップS220までの処理を、第1マニピュレーターMNP1に対して行う。そして、ロボット校正システム1は、ステップS170において第1マニピュレーターMNP1に係る校正用情報を取得する。
この校正用情報を取得する際、ロボット校正システム1は、第1マニピュレーターMNP1の姿勢を、先端球TCP1を治具Jの凹部Hに嵌めた状態を保持したまま変更可能な複数の姿勢にし、第1マニピュレーターMNP1に係る校正用情報を取得する。先端球TCP1を治具Jの凹部Hに嵌めたまま変更可能な複数の姿勢について説明する。先端球TCP1を治具Jの凹部Hに嵌めたままの状態(つまり、先端球TCP1の中心の位置を固定したままの状態)において、第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれの回転可能な範囲は、アクチュエーター毎にある範囲に制限される(例えば、第1マニピュレーターMNP1を構成する部材同士が接触してしまう等により制限される)。
このある範囲は、第1マニピュレーターMNP1の形状等の構造によって決まる。以下では、説明の便宜上、このアクチュエーター毎のある範囲を可動範囲と称して説明する。従って、ロボット校正システム1は、第1マニピュレーターMNP1に係る校正用情報を取得する際、第1マニピュレーターMNP1の姿勢を、第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれをアクチュエーター毎の可動範囲を超えずに回転させることによって実現する姿勢にして、第1マニピュレーターMNP1に係る校正用情報を取得する。以下では、説明の便宜上、第1校正において第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれをアクチュエーター毎の可動範囲を超えずに回転させることによって実現する第1マニピュレーターMNP1の姿勢を、まとめて第1姿勢と称して説明する。
第1マニピュレーターMNP1に係る校正用情報を取得した後、ロボット校正システム1は、取得した第1マニピュレーターMNP1に係る複数の校正用情報に基づいて順運動学から導出された複数の方程式による連立方程式を解く。ロボット校正システム1は、この連立方程式を解くことによって得られたジョイントオフセットにより、第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセットを算出する。ロボット校正システム1は、算出されたジョイントオフセットに基づいて第1マニピュレーターMNP1の校正を行う。上述の第1校正は、この校正を示す。
ロボット校正システム1は、第1マニピュレーターMNP1に対して第1校正を行った後、治具Jの凹部Hに嵌めたままの先端球TCP1を、治具Jの凹部Hから離す。そして、ロボット校正システム1は、そして、ロボット校正システム1は、第1マニピュレーターMNP1の姿勢を、第1姿勢に含まれる姿勢から第2姿勢に含まれる姿勢のいずれかに変更する。
ここで、第2姿勢に含まれる姿勢とは、第1TCP位置を固定位置Xから離さなければ、第1姿勢から連続的に移行できない姿勢を示す。第1マニピュレーターMNP1が備える複数のアクチュエーターのそれぞれの回転可能な範囲は、アクチュエーター毎にある範囲に制限される。このある範囲は、第1マニピュレーターMNP1の形状等の構造によって決まる。以下では、説明の便宜上、このアクチュエーター毎のある範囲を可動範囲と称して説明する。これを踏まえて、第2姿勢に含まれる姿勢は、例えば、先端球TCP1を治具Jの凹部Hに嵌めた状態を保持したまま第1姿勢に含まれる姿勢から移り変わろうとすると、第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれのうち、少なくとも1つのアクチュエーターを当該アクチュエーターの可動範囲を超えて回転させなければ実現することが不可能な複数の姿勢である。また、第2姿勢に含まれる姿勢は、例えば、第1TCP位置を複数の固定位置のいずれかに固定したまま第1姿勢に含まれる姿勢から移り変わろうとすると、第1マニピュレーターMNP1を構成する部材同士が衝突してしまう複数の姿勢である。
ロボット校正システム1は、第1マニピュレーターMNP1の姿勢を第2姿勢に含まれる姿勢のいずれかの姿勢にし、再び先端球TCP1を治具Jの凹部Hに嵌める。そして、ロボット校正システム1は、第1校正の場合と同様に、先端球TCP1を治具Jの凹部Hに嵌めた状態を保持したまま、変更可能な複数の姿勢(つまり、第2姿勢のいずれかの姿勢)にし、第1マニピュレーターMNP1に係る校正用情報を取得する。
ロボット校正システム1は、取得した第1マニピュレーターMNP1に係る複数の校正用情報と、第1校正において取得された第1マニピュレーターMNP1に係る校正用情報との両方に基づいて順運動学から導出された複数の方程式による連立方程式を解く。ロボット校正システム1は、この連立方程式を解くことによって得られたジョイントオフセットにより、第1マニピュレーターMNP1が備える複数のアクチュエーターそれぞれの回転角を補正するジョイントオフセットを算出する。ロボット校正システム1は、算出されたジョイントオフセットに基づいて第1マニピュレーターMNP1の校正を行う。以下では、この校正を第2校正と称して説明する。
第1校正のみを行った場合、ロボット校正システム1は、第1姿勢に含まれる姿勢と第2姿勢に含まれる姿勢との両方を伴う作業を第1マニピュレーターMNP1に行わせる場合、第1マニピュレーターMNP1の姿勢が第1姿勢に含まれる姿勢における動作を第1マニピュレーターMNP1に高い精度で行わせることができたとしても、第1マニピュレーターMNP1の姿勢が第2姿勢に含まれる姿勢における第1マニピュレーターMNP1の動作の精度を保証できない。
一方、第1校正の後に第2校正を行った場合、ロボット校正システム1は、第1マニピュレーターMNP1の姿勢が第1姿勢に含まれる姿勢における動作と、第1マニピュレーターMNP1の姿勢が第2姿勢に含まれる姿勢における動作との両方の精度を、ある精度の範囲内に保証することができる。つまり、ロボット校正システム1は、第1校正を行った後に第2校正を行うことにより、第1マニピュレーターMNP1の複数の姿勢毎の動作の精度を、平均化することができる。
なお、ロボット校正システム1は、第1校正の後に第2校正を行った場合、より汎用的なジョイントオフセットを自動的に校正することができる。汎用的とは、第1姿勢に含まれる姿勢に近い姿勢を用いた作業の精度を向上させることができるだけではなく、第1姿勢及び第2姿勢のそれぞれに含まれる姿勢に近い姿勢を用いた作業の精度を向上させることができることを意味する。また、ロボット校正システム1は、第1マニピュレーターMNP1の姿勢を、第1姿勢に含まれる姿勢から、第2姿勢に含まれる姿勢へ移行させる際、第1校正の結果を用いることにより、第1TCP位置を治具Jの凹部Hから離したとしても、ある精度で当該凹部Hへ第1TCPの位置を戻すことができる。
以上説明したように、本実施形態におけるロボット校正システム1は、先端球TCP1を治具Jと1の距離となるように移動させた後に、少なくとも力センサー23から取得された力センサー情報に基づいて第1マニピュレーターMNP1を複数の姿勢にし、先端球TCP2を治具Jと1の距離となるように移動させた後に、少なくとも力センサー23から取得された力センサー情報に基づいて第2マニピュレーターMNP2を複数の姿勢にして、第1マニピュレーターMNP1と第2マニピュレーターMNP2を校正する。これにより、ロボット校正システム1は、容易に第1マニピュレーターMNP1と第2マニピュレーターMNP2の校正を行うことができる。
また、ロボット校正システム1は、先端球TCP1を治具と距離が0となるように移動させた後に、少なくとも力センサー23から取得された力センサー情報に基づいて第1マニピュレーターMNP1を複数の姿勢にし、先端球TCP2を治具と距離が0となるように移動させた後に、少なくとも力センサー23から取得された力センサー情報に基づいて第2マニピュレーターMNP2を複数の姿勢にして、第1マニピュレーターMNP1と第2マニピュレーターMNP2を校正する。これにより、ロボット校正システム1は、第1部材の1の部位を第2部材に接触させた状態を保ったまま、アームに1以上の姿勢を取らせることによりアームの校正を行うことができる。
また、ロボット校正システム1は、先端球TCP1を治具Jと1の距離となるように移動させた後、先端球TCP1を治具Jと1の距離とは異なる他の距離となるように移動させて力センサー23の初期化を行い、先端球TCP1を治具Jと1の距離となるように移動させる。これにより、ロボット校正システム1は、力センサー23に加わる重力等の外力による誤差を抑制することができる。
また、ロボット校正システム1は、力センサー23の初期化を行う際、第1エンドエフェクターEND1の振動が収まるまで待機した後、力センサー23の初期化を行い、先端球TCP1を治具Jと1の距離となるように移動させる。これにより、ロボット校正システム1は、第1エンドエフェクターEND1の振動により生じる力センサー23の初期化における誤差を抑制することができる。
また、ロボット校正システム1は、先端球TCP1を力センサー23から取得された力センサー情報に基づいた制御により治具の凹部Hに嵌めて、先端球TCP1の位置を固定する。これにより、ロボット校正システム1は、先端球TCP1の位置を固定したまま第1マニピュレーターMNP1を複数の姿勢にして校正することができる。また、ロボット校正システム1は、先端球TCP2を力センサー23から取得された力センサー情報に基づいた制御により治具の凹部Hに嵌めて、先端球TCP2の位置を固定する。これにより、ロボット校正システム1は、先端球TCP2の位置を固定したまま第2マニピュレーターMNP2を複数の姿勢にして校正することができる。
また、ロボット校正システム1は、第1マニピュレーターMNP1と第2マニピュレーターMNP2を一括で校正する。これにより、ロボット校正システム1は、第1マニピュレーターMNP1と第2マニピュレーターMNP2による協調作業の精度を向上させることができる。
また、ロボット校正システム1は、先端球TCP1を治具Jと1の距離となるように移動させた後に、少なくとも力センサー23から取得された力センサー情報に基づいて第1マニピュレーターMNP1を複数の姿勢にすることにより校正する第1校正と、先端球TCP1を治具Jと2の距離となるように離した後に、先端球TCP1を治具Jと3の距離となるように移動させた後に、少なくとも力センサー23から取得された力センサー情報に基づいて第1マニピュレーターMNP1を第1校正における複数の姿勢とは異なる姿勢を1つ以上取らせることにより校正する第2校正と、を行う。また、ロボット校正システム1は、先端球TCP2を治具Jと1の距離となるように移動させた後に、少なくとも力センサー23から取得された力センサー情報に基づいて第2マニピュレーターMNP2を複数の姿勢にすることにより校正する第1校正と、先端球TCP2を治具Jと2の距離となるように離した後に、先端球TCP2を治具Jと3の距離となるように移動させた後に、少なくとも力センサー23から取得された力センサー情報に基づいて第2マニピュレーターMNP2を第1校正における複数の姿勢とは異なる姿勢を1つ以上取らせることにより校正する第2校正と、を行う。これにより、ロボット校正システム1は、複数の姿勢におけるマニピュレーターの動作の精度を平均化することができる。
<第2実施形態>
以下、本発明の第2実施形態について、図面を参照して説明する。図10は、第2実施形態に係るロボット校正システム2の一例を示す構成図である。第2実施形態に係るロボット校正システム2は、ロボット20aと、制御装置30aを備える。なお、第2実施形態では、第1の実施形態と同様な構成部には、同じ符号を付してある。
ロボット校正システム2は、第1実施形態において説明した方法によって第1マニピュレーターMNP1及び第2マニピュレーターMNP2それぞれの校正を行い、その後、作業台TBの上面に配置された作業対象Mを所定位置に配置し直す作業をロボット20aに行わせる。以下では、この作業を所定の作業と称して説明する。
図10に示したロボット20aは、第1実施形態に係るロボット20に対して、第1実施形態において説明した方法によって第1マニピュレーターMNP1及び第2マニピュレーターMNP2それぞれの校正が行われた後の状態である。また、ロボット20aは、ロボット20が備えていた第1エンドエフェクターEND1及び第2エンドエフェクターEND2に代えて、作業対象Mを把持可能な爪部をそれぞれ備える第3エンドエフェクターEND3及び第4エンドエフェクターEND4を備える。以下では、ロボット20aは、第1マニピュレーターMNP1及び第2マニピュレーターMNP2の校正が行われた後、第1エンドエフェクターEND1及び第2エンドエフェクターEND2を、第3エンドエフェクターEND3及び第4エンドエフェクターEND4に付け替えられたとして説明する。
作業対象Mは、第3エンドエフェクターEND3と第4エンドエフェクターEND4のうちいずれか一方又は両方によって把持可能な大きさと形状を有する物体であり、例えば、産業機械等に用いられる部品(ネジやボルト等)である。図10において、作業対象Mは、直方体形状の物体として示したが、他の形状や大きさの物体であってもよい。
第1固定撮像部21と第2固定撮像部22は、腰部Cに備えられた腰軸J0とともに動くように、ロボット20aの腰部Cよりも上部に設けられる。また、第1固定撮像部21と第2固定撮像部22は、撮像可能な範囲をステレオ撮像する。以下では、第1固定撮像部21と第2固定撮像部22にステレオ撮像された画像を、ステレオ撮像画像と称して説明する。ここで、撮像可能な範囲とは、ロボット20aが腰軸J0を回転させることによって第1固定撮像部21及び第2固定撮像部22によりステレオ撮像が可能なすべての範囲を示す。なお、作業対象Mと、作業対象Mを配置する所定位置は、その範囲に含まれているとする。
なお、ステレオ撮像画像は、静止画像であるとするが、これに代えて、動画像であってもよい。また、第1固定撮像部21には、第1カメラ座標系が設定されているとする。また、第2固定撮像部22には、第2カメラ座標系が設定されているとする。第1カメラ座標系の原点と、第2カメラ座標系の原点とは、腰軸J0の延長線上の任意の位置に設定されればよい。また、共有ロボット座標系における位置と、第1カメラ座標系における位置とは、予め何らかのキャリブレーションによって対応付けられているとする。また、共有ロボット座標系における位置と、第2カメラ座標系における位置とは、予め何らかのキャリブレーションによって対応付けられているとする。
ロボット20aが備える各機能部(第1動撮像部11、第2動撮像部12、第1固定撮像部21、第2固定撮像部22、第1力センサー23−1、第2力センサー23−2、第3エンドエフェクターEND3、第4エンドエフェクターEND4、第1マニピュレーターMNP1、第2マニピュレーターMNP2、図示しない複数のアクチュエーターのそれぞれ)は、制御装置30aから入力された制御信号に基づいて制御される。ロボット20aは、第3エンドエフェクターEND3と第4エンドエフェクターEND4のうちいずれか一方又は両方によって作業対象Mを把持し、把持した作業対象Mを所定位置まで移動させて配置する。
制御装置30aは、第1実施形態において説明した方法によって第1マニピュレーターMNP1と第2マニピュレーターMNP2それぞれの校正を行う。また、ロボット20aの第1エンドエフェクターEND1及び第2エンドエフェクターEND2がユーザーにより第3エンドエフェクターEND3及び第4エンドエフェクターEND4に付け替えられた後、制御装置30aは、第1固定撮像部21及び第2固定撮像部22が撮像可能な範囲を、第1固定撮像部21及び第2固定撮像部22にステレオ撮像させ、撮像されたステレオ撮像画像に基づいてパターンマッチング等により作業対象Mを検出する。制御装置30aは、作業対象Mが検出されるまで、腰軸J0の姿勢を変えながら(腰軸J0の回転角を変えながら)繰り返し行う。制御装置30aは、ステレオ撮像画像から作業対象Mが検出された場合、そのステレオ撮像画像に基づいてカメラ座標系における作業対象Mの位置及び姿勢を算出する。
制御装置30aは、カメラ座標系における作業対象Mの位置及び姿勢を、共有ロボット座標系における位置及び姿勢に変換する。そして、制御装置30aは、この変換によって得られた共有ロボット座標系における作業対象Mの位置及び姿勢と、予め行われた第1マニピュレーターMNP1及び第2マニピュレーターMNP2の校正において算出された各ジョイントオフセットとに基づいて、第1マニピュレーターMNP1が備える複数のアクチュエーターと、第2マニピュレーターMNP2が備える複数のアクチュエーターとのそれぞれの回転角を算出する。制御装置30aは、第1マニピュレーターMNP1が備える複数のアクチュエーターと、第2マニピュレーターMNP2が備える複数のアクチュエーターとのそれぞれの回転角を、算出した回転角となるように制御し、第3エンドエフェクターEND3と、第4エンドエフェクターEND4とを作業対象Mを把持可能な位置へと移動させる。その後、制御装置30aは、作業対象Mを第3エンドエフェクターEND3と第4エンドエフェクターEND4のうちいずれか一方又は両方によって把持させ、把持された作業対象Mを所定位置に配置させる。
なお、カメラ座標系における位置と、共有ロボット座標系における位置とは、予め何らかのキャリブレーションによって対応付けられているとする。このキャリブレーションは、撮像部の校正の一例である。また、共有ロボット座標系の原点の位置は、ロボット20aに予め決められた位置に設定され、例えば、腰軸J0の回転軸上の任意の位置等である。ここで、この予め決められた位置とは、腰軸J0が回転(移動)した場合においても、カメラ座標系と共有ロボット座標系の相対的な位置及び姿勢(位置関係)が変化しない位置のことである。
この一例では、共有ロボット座標系の原点の位置が、カメラ座標系の原点の位置と一致しており、腰軸J0の回転とともにカメラ座標系の原点の位置及び姿勢と共有ロボット座標系の原点の位置及び姿勢とが同じ位置及び姿勢に変化する場合について説明する。なお、共有ロボット座標系の原点の位置は、腰軸J0が回転(移動)した場合においても、カメラ座標系と共有ロボット座標系の相対的な位置及び姿勢(位置関係)が変化しない位置であれば、カメラ座標系の原点の位置と一致している必要は無い。
ここで、図1に示したように、第1固定撮像部21及び第2固定撮像部22は、腰軸J0とともに動くように設置されているため、カメラ座標系における位置と共有ロボット座標系における位置との対応付けは、腰軸J0が回転するたびにずれることがない。従って、予め一度だけキャリブレーションを行うことで、カメラ座標系における位置と共有ロボット座標系における位置との対応付け(すなわち、腰軸J0の校正)は、その後、カメラ座標系の原点の位置及び姿勢と、共有ロボット座標系の原点の位置及び姿勢との相対的な位置及び姿勢が変更されない限り行う必要がない。なお、共有ロボット座標系の座標軸は、アームの座標軸の一例である。また、カメラ座標系の原点の位置及び姿勢と、共有ロボット座標系の原点の位置及び姿勢との相対的な位置及び姿勢は、アームの座標軸と前記撮像部との所定の位置関係の一例である。
次に、図11を参照して、制御装置30aの機能構成について説明する。図11は、制御装置30aの機能構成の一例を示す図である。制御装置30aは、記憶部32と、入力受付部33と、表示部35と、制御部36aと、画像取得部50を備える。制御部36aが備える機能部のうち一部又は全部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
画像取得部50は、第1固定撮像部21及び第2固定撮像部22によりステレオ撮像されたステレオ撮像画像を取得する。画像取得部50は、取得したステレオ撮像画像を制御部36aに出力する。
制御部36aは、制御装置30aの全体を制御する。制御部36aは、表示制御部40と、校正制御部41と、撮像制御部51と、検出制御部52と、位置姿勢算出部53と、ロボット制御部54を備える。
撮像制御部51は、第1固定撮像部21及び第2固定撮像部22に撮像可能な範囲をステレオ撮像させる。
検出制御部52は、画像取得部50から取得されたステレオ撮像画像に基づいて、ステレオ撮像画像からパターンマッチング等によって作業対象Mを検出する。この検出の際、検出制御部52は、ステレオ撮像画像から作業対象Mが検出されたか否かを判定する。その判定の結果、検出制御部52は、ステレオ撮像画像から作業対象Mが検出されなかった場合、ロボット20aの腰軸J0を所定角度だけ回転させるようにロボット制御部54を制御する。
位置姿勢算出部53は、ステレオ撮像画像から作業対象Mが検出されたと検出制御部52が判定した場合、そのステレオ撮像画像に基づいてロボット座標系における作業対象Mの位置及び姿勢を算出する。
ロボット制御部54は、位置姿勢算出部53により算出されたロボット座標系における作業対象Mの位置及び姿勢に基づいてロボット20aに所定の作業を行わせる。
以下、図12を参照して、制御装置30aがロボット20aに所定の作業を行わせる処理について説明する。図12は、制御装置30aがロボット20aに所定の作業を行わせる処理の流れの一例を示すフローチャートである。まず、撮像制御部51は、第1固定撮像部21及び第2固定撮像部22に撮像可能な範囲をステレオ撮像させる(ステップS300)。次に、画像取得部50は、第1固定撮像部21及び第2固定撮像部22によりステレオ撮像されたステレオ撮像画像を取得し、取得されたステレオ撮像画像を制御部36aに出力する(ステップS310)。
次に、検出制御部52は、ステップS310で画像取得部50から取得されたステレオ撮像画像から作業対象Mを検出する(ステップS320)。次に、検出制御部52は、ステップS320で作業対象Mがステレオ撮像画像から検出されたか否かを判定する(ステップS330)。作業対象Mがステレオ撮像画像から検出されていないと検出制御部52が判定した場合(ステップS330−No)、ロボット制御部54は、腰軸J0の姿勢が変わるように腰軸J0を所定角度だけ回転させ(ステップS360)、その後、撮像制御部51が、ステップS300に戻って第1固定撮像部21及び第2固定撮像部22に撮像可能な範囲をステレオ撮像させる。
一方、作業対象Mがステレオ撮像画像から検出されたと検出制御部52が判定した場合(ステップS330−Yes)、位置姿勢算出部53は、ステップS310で画像取得部50により取得されたステレオ撮像画像に基づいて、ロボット座標系における作業対象Mの位置及び姿勢を算出する(ステップS340)。次に、ロボット制御部54は、ステップS340で算出されたロボット座標系における作業対象Mの位置及び姿勢に基づいてロボット20aに所定の作業を行わせる(ステップS350)。
以上説明したように、第2実施形態に係るロボット校正システム2は、共有ロボット座標系に対してカメラ座標系を校正する。これにより、ロボット校正システム2は、キャリブレーションの手間を軽減することができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、ロボット校正システム1の制御装置30、ロボット校正システム2の制御装置30a)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM:Random Access Memory)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
1、2 ロボット校正システム、11 第1動撮像部、12 第2動撮像部、20、20a ロボット、21 第1固定撮像部、22 第2固定撮像部、23 力センサー、23−1 第1力センサー、23−2 第2力センサー、30、30a 制御装置、31 CPU、32 記憶部、33 入力受付部、34 通信部、35 表示部、36、36a 制御部、40 表示制御部、41 校正制御部、42、54 ロボット制御部、43 力センサー初期化部、44 力センサー情報取得部、45 回転角取得部、46 ジョイントオフセット算出部、47 誤差評価部、48 教示部、50 画像取得部、51 撮像制御部、52 検出制御部、53 位置姿勢算出部

Claims (9)

  1. アームと、力センサーとを備え、
    前記アームの先端の回転軸上とは異なる位置に1の部位を有する第1部材の前記1の部位を第2部材と1の距離となるように移動させた後に、少なくとも前記力センサーの出力値に基づいて前記アームを複数の姿勢にすることにより校正する、
    ロボット。
  2. 請求項1に記載のロボットであって、
    前記1の距離は、略0である、
    ロボット。
  3. 請求項1又は2に記載のロボットであって、
    前記第1部材の前記1の部位を前記第2部材と前記1の距離となるように移動させた後、前記第1部材の前記1の部位を前記第2部材と前記1の距離とは異なる他の距離となるように移動させて前記力センサーの初期化を行い、前記第1部材の前記1の部位を前記第2部材と前記1の距離となるように移動させる、
    ロボット。
  4. 請求項3に記載のロボットであって、
    前記力センサーの前記初期化を行う際、前記第1部材の振動が収まるまで待機した後、前記初期化を行い、前記第1部材の前記1の部位を前記第2部材と前記1の距離となるように移動させる、
    ロボット。
  5. 請求項1から4のうちいずれか一項に記載のロボットであって、
    前記第2部材には前記第1部材の前記1の部位の少なくとも一部が嵌まる凹部が設けられ、
    前記第1部材の前記1の部位を前記力センサーの出力値に基づいた制御により前記第2部材の前記凹部に嵌めて、前記第1部材の前記1の部位の位置を固定する、
    ロボット。
  6. 請求項1から5のうちいずれか一項に記載のロボットであって、
    2以上の前記アームを備え、
    前記2以上の前記アームを一括で校正する、
    ロボット。
  7. 請求項1から6のうちいずれか一項に記載のロボットであって、
    撮像部と、移動機構と、を備え、
    前記アームの座標軸に対して前記撮像部を校正し、
    前記撮像部は、前記移動機構よりも上に設置され、
    前記アームの座標軸は、前記移動機構よりも上に設定され、
    前記アームの座標軸は、前記撮像部と所定の位置関係にある、
    ロボット。
  8. 請求項1から7のうちいずれか一項に記載のロボットであって、
    前記第1部材の前記1の部位を前記第2部材と前記1の距離となるように移動させた後に、少なくとも前記力センサーの出力値に基づいて前記アームを複数の姿勢にすることにより校正する第1校正と、
    前記第1部材の前記1の部位を前記第2部材と2の距離となるように離した後に、前記第1部材の前記1の部位を前記第2部材と3の距離となるように移動させた後に、少なくとも前記力センサーの出力値に基づいて前記アームを前記第1校正における複数の前記姿勢とは異なる姿勢を1つ以上取らせることにより校正する第2校正と、を行う、
    ロボット。
  9. アームと、力センサーとを備えるロボットと、
    前記ロボットを動作させる制御装置と、
    前記アームの先端の回転軸上とは異なる位置に1の部位を有する第1部材と、
    第2部材と、を含み、
    前記制御装置は、
    前記第1部材の前記1の部位を前記第2部材と1の距離となるように移動させた後に、少なくとも前記力センサーの出力値に基づいて前記アームを複数の姿勢にすることにより校正する、
    ロボット校正システム。
JP2014261874A 2014-12-25 2014-12-25 ロボット、及びロボット校正システム Pending JP2016120557A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014261874A JP2016120557A (ja) 2014-12-25 2014-12-25 ロボット、及びロボット校正システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014261874A JP2016120557A (ja) 2014-12-25 2014-12-25 ロボット、及びロボット校正システム

Publications (1)

Publication Number Publication Date
JP2016120557A true JP2016120557A (ja) 2016-07-07

Family

ID=56326908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014261874A Pending JP2016120557A (ja) 2014-12-25 2014-12-25 ロボット、及びロボット校正システム

Country Status (1)

Country Link
JP (1) JP2016120557A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020051748A1 (zh) * 2018-09-10 2020-03-19 深圳配天智能技术研究院有限公司 标定方法及标定装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020051748A1 (zh) * 2018-09-10 2020-03-19 深圳配天智能技术研究院有限公司 标定方法及标定装置

Similar Documents

Publication Publication Date Title
US20160184996A1 (en) Robot, robot system, control apparatus, and control method
JP6380828B2 (ja) ロボット、ロボットシステム、制御装置、及び制御方法
JP6357949B2 (ja) 制御システム、ロボットシステム、及び制御方法
US9586321B2 (en) Robot, control method of robot, and control device of robot
JP2016185572A (ja) ロボット、ロボット制御装置およびロボットシステム
US20170203434A1 (en) Robot and robot system
JP6648469B2 (ja) ロボットシステム、及びロボット制御装置
JP6665450B2 (ja) ロボット、制御装置、及びロボットシステム
US20160306340A1 (en) Robot and control device
JP2016120557A (ja) ロボット、及びロボット校正システム
JP2016120558A (ja) ロボット、及びロボットシステム
JP2016120530A (ja) ロボット、及びロボット校正システム
JP2018015855A (ja) ロボット制御装置、ロボット、及びロボットシステム
JP2016120555A (ja) ロボット、ロボットシステム、制御装置、及び制御方法
JP2016120531A (ja) ロボット、及びロボット校正システム
JP2016120554A (ja) ロボット、ロボットシステム、制御装置、及び制御方法
JP2015221485A (ja) ロボット、ロボットシステム、制御装置、及び制御方法
JP2016120556A (ja) ロボット、ロボットシステム、制御装置、及び制御方法
JP2019042837A (ja) ロボット、ロボット制御装置、ロボットシステム、及びロボット制御方法
JP2016013590A (ja) 教示装置、及びロボットシステム
JP2016217778A (ja) 制御システム、ロボットシステム、及び制御方法
JP2015226967A (ja) ロボット、ロボットシステム、制御装置、及び制御方法
JP2017100197A (ja) ロボット、及び制御方法
JP2019034386A (ja) ロボット制御装置、ロボット、ロボットシステム、及びロボット制御方法
US20170277167A1 (en) Robot system, robot control device, and robot