(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-12
(45)【発行日】2024-11-20
(54)【発明の名称】ロボットシステム、およびロボットシステムの制御方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20241113BHJP
【FI】
B25J13/08 A
(21)【出願番号】P 2021042526
(22)【出願日】2021-03-16
【審査請求日】2023-05-11
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】半田 翔一
(72)【発明者】
【氏名】菅原 俊晴
(72)【発明者】
【氏名】北村 毅
(72)【発明者】
【氏名】西垣戸 貴臣
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2016-120558(JP,A)
【文献】特開2021-024052(JP,A)
【文献】特開2000-024978(JP,A)
【文献】実公平07-003760(JP,Y2)
【文献】特許第6079352(JP,B2)
【文献】特開2006-110705(JP,A)
【文献】特開2017-100202(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
複数のエンコーダを備えた多関節型のロボットと、前記ロボットによる作業範囲を撮像するセンサと、前記センサからの情報に基づいて前記ロボットの駆動を制御する制御装置とを有するロボットシステムであって、
前記制御装置は、
前記ロボットに装着した作業用のツールの先端のセンサ座標系における座標を、前記センサからの情報に基づいて認識する認識部と、
前記ロボットに対する前記
作業用のツールの先端位置をツールオフセットとし、前記
作業用のツールの先端が前記センサ座標系に設定した基準座標に一致するように、前記ツールオフセットと前記認識部からの情報に基づいて前記ロボットの姿勢を変更するロボット制御部と、
前記変更した各姿勢のロボットのエンコーダからエンコーダ値を読み取るエンコーダ読取部と、
前記エンコーダ読取部で読み取った前記各姿勢においてのエンコーダ値に基づいて、前記ツールオフセットの校正値を算出するツールオフセット算出部とを備
え、
前記作業用のツールは、前記認識部によって前記作業用のツールの先端を認識することを補助するマーカを備え、
前記認識部は、前記センサからの情報に基づいて前記マーカを認識し、認識したマーカに基づいて前記先端を認識する
ロボットシステム。
【請求項2】
前記
作業用のツールは、柱状の先端面を吸着面としたベローズであり、
前記認識部は、前記センサからの情報に基づいて前記吸着面の周縁を認識し、認識した前記周縁に基づいて前記吸着面の中心を前記
作業用のツールの先端として認識する
請求項
1に記載のロボットシステム。
【請求項3】
前記
作業用のツールは、複数の指を備えたグリッパであり、
前記認識部は、前記複数の指の何れかに設定した任意の点を前記
作業用のツールの先端として認識する
請求項
1に記載のロボットシステム。
【請求項4】
前記センサは、二次元カメラである
請求項1~
3のうちの何れか1項に記載のロボットシステム。
【請求項5】
前記ロボット制御部は、前記
作業用のツールによる作業を実施していないアイドルタイムを検知した場合に、前記ロボットの姿勢を変更する制御を行う
請求項1~
4のうちの何れか1項に記載のロボットシステム。
【請求項6】
前記ロボット制御部は、前記
作業用のツールによる作業の失敗を検知した場合に、前記ロボットの姿勢を変更する制御を行う
請求項1~
4のうちの何れか1項に記載のロボットシステム。
【請求項7】
複数のエンコーダを備えた多関節型のロボットと、前記ロボットによる作業範囲を撮像するセンサと、前記センサからの情報に基づいて前記ロボットの駆動を制御する制御装置とを有するロボットシステムの制御方法であって、
前記制御装置の認識部が、前記ロボットに装着した作業用のツールの先端のセンサ座標系における座標を、前記センサからの情報に基づいて認識し、
前記制御装置のロボット制御部が、前記ロボットに対する前記
作業用のツールの先端位置をツールオフセットとし、前記
作業用のツールの先端が前記センサ座標系に設定した基準座標に一致するように、前記ツールオフセットと前記認識部からの情報に基づいて前記ロボットの姿勢を変更し、
前記制御装置のエンコーダ読取部が、前記変更した各姿勢のロボットのエンコーダからエンコーダ値を読み取り、
前記制御装置のツールオフセット算出部が、前記エンコーダ読取部で読み取った前記各姿勢においてのエンコーダ値に基づいて、前記ツールオフセットの校正値を算出
し、
前記制御装置の認識部は、前記作業用のツールの先端のセンサ座標系における座標を認識する際、前記作業用のツールが備える前記先端の認識を補助するマーカを認識し、認識したマーカに基づいて前記先端を認識する
ロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステム、およびロボットシステムの制御方法に関する。
【背景技術】
【0002】
ロボットが自ら認知、判断、および操作を行うロボットシステムに関する技術として、下記特許文献1に開示の技術がある。この特許文献1には、「ロボットシステム1は、スキャナ2、ロボット3、制御装置5を備え、エンドエフェクタ40に固定した球体70を用いることで、スキャナ座標系からロボット座標系へのキャリブレーションを高精度且つ自動で行う。…制御装置5は、ハンド部42を様々な位置姿勢に移動させたときの球体70の点群データをスキャナ2から取得し、球体70の位置を推定する。制御装置5は、各算出処理で推定された球体70の位置データに基づき、キャリブレーションの回転成分RVと並進成分SVを推定する。」と記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述した技術では、ハンド部を様々な位置姿勢に移動させたときの球体の点群データをスキャナから取得している。このためスキャナから得られるデータは、スキャナを構成するレンズのひずみを含む値となり、キャリブレーションの精度を低下させる要因となっている。
【0005】
そこで本発明は、高精度なキャリブレーションが可能なロボットシステムおよびロボットシステムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、複数のエンコーダを備えた多関節型のロボットと、前記ロボットによる作業範囲を撮像するセンサと、前記センサからの情報に基づいて前記ロボットの駆動を制御する制御装置とを有するロボットシステムであって、前記制御装置は、前記ロボットに装着した作業用のツールの先端のセンサ座標系における座標を、前記センサからの情報に基づいて認識する認識部と、前記ロボットに対する前記ツールの先端位置をツールオフセットとし、前記ツールの先端が前記センサ座標系に設定した基準座標に一致するように、前記ツールオフセットと前記認識部からの情報に基づいて前記ロボットの姿勢を変更する制御部と、前記変更した各姿勢のロボットのエンコーダからエンコーダ値を読み取るエンコーダ読取部と、前記エンコーダ読取部で読み取った前記各姿勢においてのエンコーダ値に基づいて、前記ツールオフセットの校正値を算出するツールオフセット算出部とを備えたロボットシステムである。
【発明の効果】
【0007】
本発明によれば、高精度なキャリブレーションが可能なロボットシステムおよびロボットシステムの制御方法を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係るロボットシステムの構成図である。
【
図2】第1実施形態に係るロボットシステムの要部の構成図である。
【
図3】第1実施形態に係るロボットシステムの機能ブロック図である。
【
図4】第1実施形態に係るロボットシステムの先端座標記憶部が保存するツールの先端の座標データの一例を示す図である。
【
図5】第1実施形態に係るロボットの姿勢制御の第1の例を示す図である。
【
図6】第1実施形態に係るロボットの姿勢制御の第2の例を示す図である。
【
図7】第1実施形態に係るロボットの各姿勢においてのツール先端の制御の一例を示す図である。
【
図8】第1実施形態に係るロボットシステムのロボット姿勢記憶部が保存するロボット姿勢データの一例を示す図である。
【
図9】第1実施形態に係るロボットシステムの制御方法を示すフローチャートである。
【
図10】第1実施形態の制御方法において基準座標にツールの先端位置のX座標を一致させる手順を示す図である。
【
図11】第1実施形態の制御方法において基準座標にツールの先端位置のY座標を一致させる手順を示す図である。
【
図12】第1実施形態の制御方法において基準座標にツールの先端位置のZ座標を一致させる手順を示す図である。
【
図13】第2実施形態に係るロボットシステムの要部の構成図(その1)である。
【
図14】第2実施形態に係るロボットシステムの要部の構成図(その2)である。
【
図15】第3実施形態に係るロボットシステムの要部の構成図である。
【
図16】第3実施形態に係るロボットシステムの要部を説明するための図である。
【発明を実施するための形態】
【0009】
以下、本発明を適用した実施の形態を図面に基づいて詳細に説明する。なお、各実施の形態においては、同様の構成要素には同一の符号を付し、同様の構成要素についての重複する説明は省略する。
【0010】
≪第1実施形態≫
-ロボットシステム-
図1は、第1実施形態に係るロボットシステム1の構成図である。この図に示すロボットシステム1は、ロボットが自ら認知、判断および操作する自律ロボットにより、ターゲットとなるワーク[W]をピック&プレイスするピッキングシステムである。ピック&プレイスとは、ターゲットとなるワーク[W]を保持(ピック)して移動し、所望の位置に置く(プレシス)一連の動作である。このようなロボットシステム1は、ロボット10、センサ20、入力装置30、制御装置40、供給コンベア50、および載置台60を備えている。次にこれらの構成を順に説明する。
【0011】
<ロボット10>
ロボット10は、供給コンベア50から供給されたワーク[W]を保持し、保持したワーク[W]を移動して載置台60の上部に載置する。このロボット10は、一例として3つの関節11,12,13と、3つのアーム14,15,16を交互につなぎ合わせた多関節型のロボットである。また、ロボット10は、ここでの図示を省略したエンコーダを備え、エンコーダで測定した測定値(エンコーダ値)のフィードバックにより、各関節11,12,13の回転方向および揺動方向の角度が自在に制御される6軸ロボットである。
【0012】
このようなロボット10は、ワーク[W]を保持するための様々なツール100が装着される。ロボット10において、ツール100が装着される位置は、例えばロボット10における先端側のアーム16の末端であって、手首と呼ばれる部位が挙げられるが、他の部位でもよい。
【0013】
図2は、第1実施形態に係るロボットシステムの要部の構成図であり、ロボット10に装着するツール100の構成を説明する図である。ツール100は、ワーク[W]を保持可能な構成のものであればよく、ここでは例えばワーク[W]を吸着によって保持するベローズであることとする。このツール100は、ロボット10の先端側のアーム16から延設された円柱状の外径形状を有し、その先端側の底面を吸着面101としている。吸着面101は、中央部に吸引開口102を有し、吸引開口102からの吸引によってワーク[W](
図1参照)を吸着面101に保持する。
【0014】
<センサ20>
図1に戻り、センサ20は、供給コンベア50から供給されたワーク[W]の位置および形状に関する情報を取得するためのものである。このようなセンサ20は、レンズを有し、例えば周辺の映像を二次元または三次元で認識するカメラであって、位置情報の精度の点からは二次元カメラであることが好ましい。二次元カメラは、例えばRGB画像をセンシングデータとして出力する。センサ20は、ロボット10、供給コンベア50、および載置台60の設置個所を位置測定の範囲とし、例えば天井や壁などに設置されていることとする。また複数のセンサ20によって、位置測定の範囲の情報を取得する構成であってもよい。さらにカメラ以外の他のセンサがついていてもよい。
【0015】
<入力装置30>
入力装置30は、ロボット10の動作を指示するための入力を行う装置であり、例えばタッチパネル型の入力端末、キーボード、または操作ボタンなどである。入力装置30が指示するロボット10の動作は、ここでは少なくともピッキング動作およびツール100のキャリブレーション動作である。ここでツール100のキャリブレーション動作とは、ロボット10におけるツール100の取り付け位置に対するツール100の先端位置、すなわちツールオフセットの校正(誤差補正)を行うための動作である。このような入力装置30は、ロボット10と一体に形成されているか、次に説明する制御装置40と一体に形成されていてもよい。
【0016】
<制御装置40>
制御装置40は、入力装置30から入力された情報と、センサ20で取得した情報とに基づいて、ピッキング動作またはキャリブレーション動作を実行するための制御を実施する。このような制御装置40は、計算機によって構成されている。計算機は、いわゆるコンピュータとして用いられるハードウェアである。計算機は、CPU(Central Processing Unit:中央処理装置)、ROM(Read Only Memory)、RAM(Random Access Memory)を備える。さらに、計算機は、不揮発性ストレージおよびネットワークインタフェースとを備える。
【0017】
図3は、第1実施形態に係るロボットシステム1の機能ブロック図であり、主として制御装置40の機能構成を説明するためのブロック図である。以下、
図3に基づき、先の
図1、
図2および他の必要図を参照し、制御装置40の構成を説明する。なお、制御装置40を構成する各部は、その一部、または全部がロボット10と一体に形成されていてもよく、クラウドに設けられていてもよい。
【0018】
制御装置40は、ロボット10と、センサ20と、入力装置30とに、それぞれ接続されている。この接続は、有線接続でも無線接続でもよい。また制御装置40は、認識部41、基準座標保持部42、軌道計画部43、制御部44、エンコーダ読取部45、ロボット姿勢記憶部46、およびツールオフセット算出部47を有する。これらの各機能部分は、制御装置40を構成する計算機のCPUがROMに記憶されているプログラムを読み出すことにより、以下のような各機能を実行する。
【0019】
[認識部41]
認識部41は、センサ20から取得した情報(センシングデータ)に基づいて、センサ20によって認識された各部についてのセンサ座標系の位置を認識する。
【0020】
このような認識部41は、入力装置30からピッキング動作の指示が入力された場合には、センサ20から取得した情報に基づいて、センサ座標系におけるワーク[W](
図1参照)の位置を認識し、認識した位置情報を軌道計画部43に送る。
【0021】
また認識部41は、入力装置30からキャリブレーション動作の指示が入力された場合には、センサ20から取得した情報に基づいて、ロボット10に装着したツール100の先端[P]についての、センサ座標系における位置を認識する。この場合、ツール100の先端[P](
図2参照)は、ツール100の先端側の任意の設定点であって、図示した例においては、例えばツール100の吸着面101の中心点であり、吸引開口102の中心点であることとする。
【0022】
認識部41は、ツール100の先端[P]を認識するのに際して、先ずセンサ20から取得したセンシングデータに基づいて、先端[P]を中心とする吸着面101の周縁をマーカ[M]として認識する。なお、マーカ[M]となる吸着面101の周縁は、センサ20によって認識し易いように着色してもよい。認識部41はマーカ[M]を認識した後、例えば事前の入力によって保持しているマーカ[M]と先端[P]との位置関係の情報に基づいて、センサ座標系における先端[P]の位置を算出し、算出した位置を先端[P]の座標(先端座標)として認識する。
【0023】
また、認識部41は、入力装置30からキャリブレーション動作の指示が入力された場合において、初回に認識した先端座標を基準座標保持部42に送信する。さらに、初回以外の回で認識した先端座標を軌道計画部43に送信する。なお、キャリブレーション動作の際の、認識部41によるツール100の先端[P]の位置(先端座標)の認識のタイミングは、以降のロボットシステムの制御方法において詳細に説明する。
【0024】
[基準座標保持部42]
基準座標保持部42は、認識部41から送信された先端座標を、ツール100の先端[P]の基準座標[Sp]として保持する。
図4は、第1実施形態に係るロボットシステム1の基準座標保持部42が保存するツール100の先端[P]の基準座標[Sp]の一例を示す図である。この
図4に示す基準座標[Sp]は、例えばセンサ20内の基準点からのずれとして認識される。基準座標保持部42は、センサ20内の基準点、およびセンサ20内で定義された姿勢データにおいて、X、Y、およびZ方向に何センチメートル離れた位置に先端[P]が認識されたかを記憶する。なお、基準座標保持部42による基準座標[Sp]の保存のタイミングは、以降のロボットシステムの制御方法において詳細に説明する。
【0025】
[軌道計画部43(ロボット制御部)]
軌道計画部43は、次の制御部44とともにロボット制御部を構成する部分である。この軌道計画部43は、入力装置30からの指示と、認識部41から取得した先端座標、および基準座標保持部42から取得した基準座標とに基づいて、ロボット10の軌道を計画する。軌道計画部43は、計画した軌道を制御部44に送信する。
【0026】
このような軌道計画部43は、入力装置30からピッキング動作の指示が入力された場合には、認識部41から取得したワーク[W]の位置情報に基づいて、ワーク[W]をピック&プレイスするためのロボット10の軌道を計画する。
【0027】
また軌道計画部43は、入力装置30からキャリブレーション動作の指示が入力された場合には、基準座標保持部42に保存された基準座標[Sp]に対してツール先端[P]を一致させるためのロボット10の軌道を計画する。なお、軌道計画部43によるキャリブレーション動作の際のロボット10の軌道計画の詳細は、以降のロボットシステムの制御方法において詳細に説明する。
【0028】
[制御部44(ロボット制御部)]
制御部44は、先の軌道計画部43とともにロボット制御部を構成する部分であり、軌道計画部43から取得した軌道と、予め保持しているツールオフセットとに基づいて、ロボット10の動作を制御する。
【0029】
制御部44は、入力装置30からピッキング動作の指示が入力された場合には、ツール100の先端[P]がワーク[W]をピック&プレイスするように、ロボット10の動作を制御する。
【0030】
また制御部44は、入力装置30からキャリブレーション動作の指示が入力された場合に、ロボット10のキャリブレーション動作のための制御を実施する。の場合、制御部44は、ツール100の先端[P]が、センサ20においてセンシング可能な所定位置となるように、軌道計画部43から取得した軌道計画に基づいてロボット10の動作を制御する。なお、制御装置40が、ピッキング動作の失敗を検知する検知部、さらにはピッキング動作をしていないアイドルタイムの発生を判断する判断部を有している場合、制御部44は、これらの検知部での検知および判断部での判断に基づいて、ロボット10のキャリブレーション動作のための制御を自動的に開始してもよい。
【0031】
さらにこの場合、制御部44は、基準座標保持部42に保存された基準座標[Sp]に対して先端[P]を一致させた異なる各姿勢となるように、ロボット10の姿勢を制御する。
図5および
図6は、第1実施形態に係るロボット10の姿勢制御の第1の例および第2の例を示す図である。これらの図に示すように、制御部44は、ツール100の先端[P]を、センサ20の座標系における基準座標[Sp]に一致させるように、ロボット10の姿勢を変化させる。
【0032】
またこの場合、制御部44は、ロボット10を異なる各姿勢に変化させた状態において、基準座標保持部42に保存された基準座標[Sp]に対してツール100の先端[P]を一致させるように、各姿勢に変化させたロボット10の動作を制御する。
図7は、第1実施形態に係るロボットの各姿勢においてのツール100の先端[P]の制御の一例を示す図である。この図に示すように、制御部44は、姿勢を変化させたロボット10におけるツール100の先端[P]を、センサ座標系における基準座標[Sp]に一致させるように、ロボット10の動作を制御する。なお、制御部44によるロボット10の動作制御の詳細は、以降のロボットシステムの制御方法において詳細に説明する。
【0033】
[エンコーダ読取部45]
エンコーダ読取部45は、ロボット10に設けられた各エンコーダの測定値(エンコーダ値)を読み取る。このエンコーダ読取部45は、読み取った複数のエンコーダ値を、制御部44に送信する。
【0034】
[ロボット姿勢記憶部46]
ロボット姿勢記憶部46は、ロボット10の姿勢データを記憶する。ロボット姿勢記憶部46が記憶するロボット10の姿勢データは、基準座標保持部42に保存された基準座標[Sp]に対して、ツール100の先端[P]の座標を一致させた各姿勢においてのエンコーダ値である。
【0035】
図8は、第1実施形態に係るロボットシステムのロボット姿勢記憶部が保存するロボットの姿勢データの一例を示す図である。
図8に示すように、ロボット姿勢記憶部46は、後で説明するツールオフセットを求めるために必要な数の姿勢データを保存する。ここで各姿勢データは、ロボット10の姿勢を変更した各状態において、ツール100の先端[P]を基準座標[Sp]に対して一致せた状態においての各エンコーダ値である。一例としてロボット10が6軸ロボットであるとすると、1つ(各回)の姿勢データは、6軸(j1~j6)の角度データ(エンコーダ値)によって構成される。この場合、ツールオフセットを求めるために必要な姿勢データ数は3以上である。なお、ロボット姿勢記憶部46による姿勢データの保持のタイミングの詳細は、以降のロボットシステムの制御方法において詳細に説明する。
【0036】
[ツールオフセット算出部47]
ツールオフセット算出部47は、ロボット姿勢記憶部46に保存されている複数の姿勢データに基づいて、例えば特許文献1に記載の方法により、ツールオフセットを算出する。ここでツールオフセットとは、ロボット10に装着された状態においてのロボット10に対するツール100の先端[P]の位置である。ツールオフセットに誤差が生じている場合には、ツール100の先端[P]が同一点に配置されるようにロボット10の駆動を制御した場合であっても、ロボット10の姿勢によってツール100の先端が配置される位置にも差が生じてしまう。なおツールオフセット算出部47は、算出したツールオフセットを、ツールオフセットの校正値として制御部44に送信する。制御部44は、もともと保持しているツールツールオフセットを、受信したツールオフセットの校正値で上書きする。
【0037】
<供給コンベア50>
供給コンベア50は、ピッキングのターゲットであるワーク[W]を、ロボット10がワーク[W]を保持し易い位置に運搬する。ワーク[W]は、図示したような箱[W1]などに入っているものに限定されず、供給コンベア50から単体で供給されてもよい。
【0038】
<載置台60>
載置台60は、ロボット10が保持したワーク[W]を載置するための台である。
【0039】
-ロボットシステム1の制御方法-
図9は、第1実施形態に係るロボットシステムの制御方法を示すフローチャートであって、
図1~
図8を用いて説明した制御装置40に保持された制御プログラムによって実行されるツール100のキャリブレーションの手順を示している。以下、
図9のフローチャートに沿って、先の
図1~
図8、および必要に応じた他の図を参照しつつ、ロボットシステムの制御方法を説明する。なお、このフローは、例えば入力装置30にいて、キャリブレーションの指示が入力されたこと、または制御装置40が、ピッキング動作の失敗を検知したこと、さらにはピッキング動作をしていないアイドルタイムの発生を判断したことをトリガーとして開始される。
【0040】
<ステップS101>
先ず、ステップS101において、制御部44はツール100のマーカ[M](
図2参照)が、センサ20の画角に入るよう、ロボット10を制御する。このときのロボット10の姿勢は任意である。
【0041】
<ステップS102>
S102において、認識部41は、センサ20から取得したセンシングデータから、ツール100に設定したマーカ[M]の位置を認識する。ここで認識するマーカ[M]の位置は、センサ座標系における位置である。
【0042】
<ステップS103>
ステップS103において、認識部41は、マーカ[M]の位置から、ツール100の先端[P]の位置、すなわち先端座標を認識する。この際、認識部41は、例えば事前の入力によって保持しているマーカ[M]と先端[P]との位置関係の情報に基づいて、センサ座標系における先端[P]の座標を、先端座標として算出し、先端座標を認識する。認識した先端座標は、基準座標保持部42に送信する。
【0043】
なお、ここでは、ステップS102において認識したマーカ[M]におけるマーカ像の寸法を測長しておく。ツール100が円柱形状であれば、マーカ像は円または楕円であるため、マーカ像の寸法としては、少なくとも長辺の長さ、短辺の長さ、および円の直径の何れかであることとする。
【0044】
<ステップS104>
ステップS104において、認識部41は、先のステップS103におけるツール100の先端座標の認識が、本キャリブレーションのフローにおける初回の認識であるか否かの判定を実施する。初回である(YES)と判定した場合、認識部41は、ステップS103で認識したツール100の先端座標とマーカ像の寸法を、基準座標保持部42に送信してステップS105に進む。一方、初回ではない(NO)と判定した場合、認識部41は、ステップS103で認識したツール100の先端座標を、軌道計画部43に送信してステップS201に進む。
【0045】
<ステップS105>
ステップS105において、基準座標保持部42は、認識部41から受信した先端座標とマーカ像の寸法を、ツールの先端[P]の基準座標[Sp]として保存する(
図4参照)。その後、ステップS106に進む。
【0046】
<ステップS106>
ステップS106において、ロボット姿勢記憶部46は、エンコーダ読取部45で読み取った複数(ここでは6個)のエンコーダの測定値を、ロボット10の姿勢データとして保存する(
図8参照)。
【0047】
<ステップS107>
ステップS107において、ロボット姿勢記憶部46は、ステップS106で姿勢データを保存した回数が、所定回数に達したか否かの判定を実施する。ここで所定回数は、以降に実施するツールオフセットの算出(ステップS302)に必要な姿勢データ数以上に設定される。ロボット10が6軸ロボットの場合には、ツールオフセットの算出に必要な姿勢データ数は3以上であり、例えば所定回数が4回に設定されていることとする。ロボット姿勢記憶部46は、所定回数に達した(YES)と判断した場合にはステップS301に進み、所定回数に達していない(NO)と判断した場合にはステップS108に進む。
【0048】
<ステップS108>
ステップS108において、制御部44は、ロボット10の姿勢を変更し、変更した姿勢においてツール100の先端[P]が、基準座標保持部42に保持された基準座標[Sp]となるようにロボット10の姿勢を制御する。ここでの姿勢の制御は、エンコーダ値に基づく制御であることとする。その後、ステップS102に戻り、ステップS102およびステップS103を順に実施してツール100の先端座標を認識し、ステップS104に進んで先端座標を軌道計画部43に送信してステップS201に進む。
【0049】
<ステップS201>
一方、S201は、ステップS104において、ツール100の先端座標の認識が初回の認識ではないと判断して進んだステップである。この場合、軌道計画部43は、姿勢を変更したロボット10におけるツール100の先端座標を、認識部41から受信した状態となっている。このステップS201において、軌道計画部43は、基準座標保持部42に保持されている先端[P]の基準座標[Sp]を取得し、ステップS202に進む。
【0050】
<ステップS202>
ステップS202において、軌道計画部43は、ステップS108において姿勢を変更したロボット10におけるツール100の先端[P]を、基準座標[Sp]に一致させるための軌道を計画する。また、制御部44は、軌道の計画に基づいてロボット10を制御することで、ツール100の先端[P]を基準座標[Sp]に一致させる。
【0051】
ここで軌道計画部43は、基準座標保持部42から取得した基準座標[Sp]と、認識部41から受信した先端座標との差分がゼロとなるような軌道を計画する。認識部41から受信した先端座標は、ステップS108において姿勢を変更したロボット10におけるツール100の先端座標である。軌道計画部43は、計画した軌道を制御部44に送信する。制御部44は、軌道計画部43から送信された軌道の計画に基づいてロボット10を制御し、ツール100の先端[P]を基準座標[Sp]に一致させる(
図7参照)。この際、制御部44は、逐次に修正された軌道計画に基づいて、ロボット10を制御する構成とする構成としてもよい。この場合、軌道計画部43は、認識部41からツール100の先端[P]のセンサ座標系上の位置を周期的に取得し、逐次に軌道を修正することにより、軌道計画の精度を向上させることができる。
【0052】
ここで、
図10~
図12は、第1実施形態の制御方法において基準座標[Sp]にツール100の先端位置のX座標、Y座標、およびZ座標を一致させる手順を示す図である。これらの図は、それぞれ二次元カメラを用いたセンサ20(
図5、
図6参照)での撮像画90であり、ツール100の先端[P]を中心にしたマーカ[M](
図2参照)の像(マーカ像90m)が認識できている状態を示している。ここでマーカ[M]は、
図2に示したように円柱形状のツール100の先端[P]を中心とする吸着面101の周縁である。したがって
図10~
図12に示すように、マーカ像90mは、円または楕円の像として認識される。以下、これらの
図10~
図12に基づいて、ステップS201およびステップS202において、ツール100の先端[P]を基準座標[Sp]に一致させる手順の具体的な一例を説明する。
【0053】
先ず
図10に示すように、基準座標[Sp]と、現時点で認識されているツール100のマーカ像90mから算出されるツール100の先端座標とのX座標の差がゼロとなるように、軌道計画部43が軌道を計画する。この計画にしたがって、制御部44がロボット10の駆動を制御する。この際、ランダムな軌道によってロボット10を制御してX座標の差が0になった瞬間にロボット10の動作を止めるよう制御してもよいし、X方向の差を動的に監視しながら、X座標の差が0になるようにフィードバック制御をしてもよいし、他の方法でもよい。
【0054】
次に、以上と同様の手順で、
図11に示すように、基準座標[Sp]と、現時点で認識されているツール100のマーカ像90mから算出されるツール100の先端座標とのセンサ座標系におけるY座標の差をゼロとする。
【0055】
その後、
図12示すように、現時点で認識されているツール100のマーカ像90mの長辺の長さ[L90]が、初回に認識された基準座標[Sp]のマーカ像の長辺の長さと、同じ大きさとなるように、軌道計画部43が軌道を計画する。なお、初回に認識された基準座標[Sp]のマーカ像の寸法は、ステップS102において測長され、ステップS105において基準座標保持部42に合わせて保存しておくこととする。
【0056】
この計画にしたがって、制御部44がロボット10の駆動を制御し、センサ座標系におけるZ座標の差をゼロとする。なお、上述したZ座標の調整は、マーカ像の短辺の長さを一致させるようにしてもよい。
【0057】
以上のような制御は、高精度にセンシングが可能な二次元カメラをセンサ20として用いた制御であるため、ツール100の先端[P]の位置を高精度に制御することが可能である。さらに比較的、高精度な認識手法が存在する楕円もしくは円を対象に認識し、先端[P]位置を求めるので、より高精度な位置合わせが可能である。
【0058】
なお以上説明した座標の差が0となる座標の一致の判断は、軌道計画部43で実施してもよい。また、一致の判定部を制御装置40内に実装し、判定部において、認識部41で認識された先端[P]の位置と、基準座標保持部42から取得した先端[P]の基準座標[Sp]との重なりを判定してもよい。また、他の方法で実施してもよい。
【0059】
制御部44は、ツール100の先端[P]が、基準座標[Sp]に一致したことが判断された後、先に説明したステップS106に進む。これにより、ロボット姿勢記憶部46は、この時点においてエンコーダ読取部45で読み取ったエンコーダ値を、ロボット10の姿勢データとして保存する(ステップS106、
図8参照)。
【0060】
<ステップS301>
一方、ステップS301は、ステップS107において、姿勢データを保存した回数が、所定回数に達した(YES)と判断して進んだステップである。このステップS301において、ツールオフセット算出部47は、ロボット姿勢記憶部46に保存されている複数の姿勢データに基づいて、ツールオフセットを算出する。この際、ツールオフセット算出部47は、ロボット姿勢記憶部46に保存されている複数の姿勢データに基づいて、ツール100の各先端座標を算出し、基準座標[Sp]との差(誤差)が最小となるようなツールオフセットを算出する。ツールオフセット算出部47は、算出したツールオフセットを、ツールオフセットの校正値とし制御部44に送信する。
【0061】
<ステップS302>
ステップS302において、制御部44は、もともと保持しているツールオフセットの初期値を、受信したツールオフセットの校正値で上書きし、ツールオフセットを更新してキャリブレーションを終了させる。
【0062】
なお以上の説明においては、ツールオフセットは、制御部44が予め保持していることとしたが、ツールオフセットは軌道計画部43が予め保持していてもよい。この場合、軌道計画部43は、入力装置30からの指示と、認識部41から取得した先端座標、および基準座標保持部42から取得した基準座標と、保持しているツールオフセットとに基づいて、ロボット10の軌道を計画する。
【0063】
またこの場合、先のステップS301においてツールオフセット算出部47は、ツールオフセットの校正値を軌道計画部43に送信する。また本ステップS302においては、軌道計画部43が、もともと保持しているツールオフセットの初期値を、受信したツールオフセットの校正値で上書きし、ツールオフセットを更新してキャリブレーションを終了させる。
【0064】
-第1実施形態の効果-
以上説明した第1実施形態は、ツール100の先端[P]をセンサ座標系における基準座標[Sp]に一致させるように各姿勢のロボット10を制御し、各姿勢においてのロボット10の姿勢データに基づいて、ツールオフセットを算出する構成である。このため、各姿勢のロボット10の制御においては、センサ20を構成するレンズのひずみの影響を受けることなく、ツール100の先端[P]をセンサ座標系における基準座標[Sp]に一致させることができる。これによりセンサ20を構成するレンズのひずみを考慮することなく各姿勢のロボットを制御することができ、この結果ひずみの影響を含まない姿勢データに基づいて精度の良いツールオフセットを算出し、キャリブレーションの精度の向上を図ることが可能である。
【0065】
また、人手を介さずに自動でキャリブレーションを遂行することが可能である。したがって、ピッキング失敗やピッキングのアイドルタイムの発生を検知し、自動的にキャリブレーション動作を開始する構成とすることも可能である。これにより、ピッキングの失敗率の削減やスループットの向上を図ることができる。
【0066】
≪第2実施形態≫
-ロボットシステム-
図13および
図14は、第2実施形態に係るロボットシステム2の要部の構成図(その1)および(その2)である。これらの図に示すロボットシステム2が、
図1~
図12を用いて説明した第1実施形態のロボットシステム1と異なるところは、ロボット10に装着されるツール200の構成にある。またセンサ20は、三次元カメラである。さらに以降のロボットシステムの制御方法で説明するように、
図3に示した制御装置40の認識部41におけるツール200の先端の認識の手順が異なる。他の構成は、第1実施形態のロボットシステム1と同様である。
【0067】
図13、
図14に示すツール200は、グリッパであって、複数本の指201を有し、複数本の指201によってここでの図示を省略したワークを保持する。ツール200が有する指201の本数は、図面においては2本であるが、3本またはそれ以上であってもよい。
【0068】
認識部41(
図3参照)は、例えば複数の指201の先端の中心位置をツール200の先端[P]として認識する。認識部41は、先ずセンサ20から取得したセンシングデータに基づいて、ツール200を構成する各指201の先端をマーカ[M]として認識する。なお、マーカ[M]となる各指201の先端は、センサ20によって認識し易いように着色してもよい。認識部41はマーカ[M]を認識した後、例えば事前の入力によって保持しているマーカ[M]と先端[P]との位置関係の情報に基づいて、センサ座標系における先端[P]の位置を算出し、算出した位置を先端[P]の座標(先端座標)として認識する。
【0069】
-ロボットシステムの制御方法-
第2実施形態におけるロボットシステムの制御方法は、
図9を用いて説明した第1実施形態のロボットシステムの制御方法において、ステップS102およびステップS202が異なるのみである。
【0070】
すなわち、ステップS102において、認識部41(
図3参照)は、センシングデータから、指201の先端をマーカ[M](
図13,
図14参照)の位置として認識する。なお、次のステップS103においては、認識部41は、複数のマーカ[M]の位置から、ツール200の先端[P]の位置、すなわち先端座標を認識すればよい。この際、認識部41は、例えば事前の入力によって保持している複数のマーカ[M]と先端[P]との位置関係の情報に基づいて、センサ座標系における先端[P]の座標を、先端座標として算出し、先端座標を認識する。認識した先端座標は、基準座標保持部42に送信する。
【0071】
またステップS202において、ツール200の先端[P]を基準座標[Sp]に一致させる場合、軌道計画部43は、センサ20として用いた三次元カメラからのセンシングデータに基づく制御を実施すればよい。すなわち、認識部41で認識された先端座標のX座標、Y座標、およびZ座標を、基準座標[Sp]のX座標、Y座標、およびZ座標に一致させるように軌道を計画すればよい。
【0072】
-第2実施形態の効果-
このような第2実施形態であっても、第1実施形態と同様に、センサ20を構成するひずみの影響を含まない姿勢データに基づいて、精度の良いツールオフセットを算出し、キャリブレーションの精度の向上を図ることが可能である。また、自動的にキャリブレーション動作を開始する構成とすることも可能であり、ピッキングの失敗率の削減やスループットの向上を図ることができる。
【0073】
≪第3実施形態≫
-ロボットシステム-
図15は、第3実施形態に係るロボットシステム3の要部の構成図である。この図に示すロボットシステム3が、
図1~
図12を用いて説明した第1実施形態のロボットシステム1と異なるところは、ロボット10に装着されるツール300の構成にある。またセンサ20は、二次元カメラを用いることが好ましい。さらに以降のロボットシステムの制御方法で説明するように、
図3に示した制御装置40の認識部41におけるツール300の先端の認識の手順が異なる。他の構成は、第1実施形態のロボットシステム1と同様である。
【0074】
図15に示すツール300は、グリッパであって、複数本の指301を有し、複数本の指301によってここでの図示を省略したワークを保持する。ツール300が有する指301の本数は、図面においては2本であるが、3本またはそれ以上であってもよい。また特に、これらの指301のうちの少なくとも1つは、ワークを保持する面に窪み301aを有する。
【0075】
図16は、第3実施形態に係るロボットシステム3の要部を説明するための図であって、ツール300の構成を説明するための図である。
図15および
図16に示すように、窪み301aは、以降に説明するキャリブレーション動作において、マーカ[M]となる所定の径を有する球体を所定状態で確実に保持することが可能な形状を有している。
【0076】
認識部41(
図3参照)は、ツール300においてワークを保持する面側に設定した任意の一点を、ツール300の先端[P](
図15参照)として認識する。例えばここでは、1つの指301に設けた窪み301aの中心を、先端[P]とする。認識部41は、先ずセンサ20から取得したセンシングデータに基づいて、ツール300に所定状態で保持された所定の径を有する球体を、マーカ[M]として認識する。認識部41はマーカ[M]を認識した後、例えば事前の入力によって保持しているマーカ[M]と先端[P]との位置関係の情報に基づいて、センサ座標系における先端[P]の位置を算出し、算出した位置を先端[P]の座標(先端座標)として認識する。
【0077】
-ロボットシステムの制御方法-
第3実施形態におけるロボットシステムの制御方法は、
図9を用いて説明した第1実施形態のロボットシステムの制御方法において、ステップS101の前に、マーカ[M]となる所定の径を有する球体をツール300で保持するステップを有する。マーカ[M]となる球体は、ロボット10の手の届く範囲で、かつ通常のピッキング動作に影響のない場所に配置されていることとする。ツールオフセットの誤差が大きい場合、マーカ[M]を保持する際に、ツール300によるマーカ[M]の保持位置にずれが生じるが、ツール300に設けた窪み301aによってそのずれは吸収され、マーカ[M]を所定状態で保持することができる。
【0078】
またその後は、ステップS102が異なるのみである。すなわち、ステップS102において、認識部41(
図3参照)は、センシングデータから、球体からなるマーカ[M]の位置を認識すればよい。なお、次のステップS103においては、認識部41は、複数のマーカ[M]の位置から、ツール300の先端[P]の位置、すなわち先端座標を認識すればよい。この際、認識部41は、例えば事前の入力によって保持している複数のマーカ[M]と先端[P]との位置関係の情報に基づいて、センサ座標系における先端[P]の座標を、先端座標として算出し、先端座標を認識する。認識した先端座標は、基準座標保持部42に送信する。
【0079】
ただし、ステップS101およびステップS108においては、マーカ[M]がセンサ20によって確認できるように、ロボット10の姿勢を制御する。またステップS202において、ツール200の先端[P]を基準座標[Sp]に一致させる場合には、第1実施形態において
図10~
図12を用いて説明した手順で、センサ20として用いた二次元カメラからのセンシングデータに基づく制御を実施すればよい。
【0080】
-第3実施形態の効果-
このような第3実施形態であっても、第1実施形態と同様に、センサ20を構成するひずみの影響を含まない姿勢データに基づいて、精度の良いツールオフセットを算出し、キャリブレーションの精度の向上を図ることが可能である。また自動的にキャリブレーション動作を開始する構成とすることも可能であり、ピッキングの失敗率の削減やスループットの向上を図ることができる。
【0081】
なお、本発明は上記した各実施形態に限定されるものではなく、さらに様々な変形例が含まれる。例えば、上記した実施形態は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。例えば、ロボット10に装着する作業用のツールは、ベローズやグリッパに限定さえることはなく、他のツールであってもよい。また、マーカ[M]は、先端[P]を認識することを補助するものであればよく、円形や球に限定さえることはなく、他の形状(四角、三角など)の印や、他の形状(立方体、円錐、四角錘、円柱など)の立体でもよい。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【0082】
1,2,3…ロボットシステム
10…ロボット
20…センサ
40…制御装置
41…認識部
42…基準座標保持部
43…軌道計画部(ロボット制御部)
44…制御部(ロボット制御部)
45…エンコーダ読取部
46…ロボット姿勢記憶部
47…ツールオフセット算出部
100,200,300…ツール
[P]…先端
[M]…マーカ