(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】キャリブレーション装置およびキャリブレーションの自動設定方法
(51)【国際特許分類】
B25J 9/10 20060101AFI20240409BHJP
B25J 13/08 20060101ALI20240409BHJP
【FI】
B25J9/10 A
B25J13/08 A
(21)【出願番号】P 2020174358
(22)【出願日】2020-10-16
【審査請求日】2023-08-08
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】殿谷 徳和
(72)【発明者】
【氏名】松本 慎也
【審査官】牧 初
(56)【参考文献】
【文献】特開2019-217571(JP,A)
【文献】特開2020-144829(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/46
(57)【特許請求の範囲】
【請求項1】
センサによる物体の検出結果に基づいてキャリブレーションを行うキャリブレーション装置であって、
物体を検出するセンサまたは前記物体が取り付けられたロボットアームの姿勢を変更する範囲を、前記センサの視野サイズと前記物体のサイズとに基づいて決定する決定手段と、
前記決定手段により決定された前記範囲内での前記ロボットアームの姿勢の変更中に、前記ロボットアームの姿勢の情報と、前記センサによる前記物体の検出結果との組み合わせを繰り返し取得する取得手段と、
前記取得手段により取得された複数の前記組み合わせに基づいて、前記ロボットアームの姿勢と前記物体の検出結果との対応関係を決定するキャリブレーションを行うキャリブレーション手段と
を有することを特徴とするキャリブレーション装置。
【請求項2】
前記センサまたは前記物体は、前記ロボットアームの先端に取り付けられており、
前記決定手段は、前記ロボットアームの姿勢を変更する範囲として、前記ロボットアームの先端の位置を変更する範囲を決定する
ことを特徴とする請求項1に記載のキャリブレーション装置。
【請求項3】
前記センサまたは前記物体は、前記ロボットアームの先端に取り付けられており、
前記決定手段は、前記ロボットアームの姿勢を変更する範囲として、前記ロボットアームの先端の姿勢を変更する範囲を決定する
ことを特徴とする請求項1または2に記載のキャリブレーション装置。
【請求項4】
前記物体の検出結果は、前記物体の、前記センサにより検出された位置を含む
ことを特徴とする請求項1~3のいずれか1項に記載のキャリブレーション装置。
【請求項5】
前記物体の検出結果は、前記物体の、前記センサにより検出された姿勢を含む
ことを特徴とする請求項1~4のいずれか1項に記載のキャリブレーション装置。
【請求項6】
前記物体の検出結果の信頼度を算出する算出手段をさらに有する
ことを特徴とする請求項1~5のいずれか1項に記載のキャリブレーション装置。
【請求項7】
前記信頼度は、前記物体の表面上の、前記センサにより検出された各位置と、所定の設計データにより示された各位置との一致度である
ことを特徴とする請求項6に記載のキャリブレーション装置。
【請求項8】
前記キャリブレーション手段は、前記複数の組み合わせのうち、前記信頼度が所定の閾値以上の組み合わせに基づいて、前記キャリブレーションを行う
ことを特徴とする請求項6または7に記載のキャリブレーション装置。
【請求項9】
前記信頼度が所定の閾値以上となる前記ロボットアームの姿勢の範囲を、前記キャリブレーションの実行後において前記ロボットアームの姿勢を変更可能な範囲として記憶部に記録する記録手段をさらに有する
ことを特徴とする請求項6~8のいずれか1項に記載のキャリブレーション装置。
【請求項10】
センサによる物体の検出結果に基づいてキャリブレーションの自動設定を行う方法であって、
物体を検出するセンサまたは前記物体が取り付けられたロボットアームの姿勢を変更す
る範囲を、前記センサの視野サイズと前記物体のサイズとに基づいて決定する決定ステップと、
前記決定ステップにおいて決定された前記範囲内での前記ロボットアームの姿勢の変更中に、前記ロボットアームの姿勢の情報と、前記センサによる前記物体の検出結果との組み合わせを繰り返し取得する取得ステップと、
前記取得ステップにおいて取得された複数の前記組み合わせに基づいて、前記ロボットアームの姿勢と前記物体の検出結果との対応関係を決定するキャリブレーションを行うキャリブレーションステップと
を有することを特徴とするキャリブレーションの自動設定方法。
【請求項11】
請求項10に記載のキャリブレーションの自動設定方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットアームの姿勢と、センサによる物体の検出結果との対応関係を決定する技術に関する。
【背景技術】
【0002】
センサによる物体の検出結果に基づいてロボットアームの姿勢や動作を検出したり制御したりする技術(ハンドアイシステム、ビジュアルサーボ、ビジュアルフィードバックなど)が知られており、例えば特許文献1に開示されている。このような技術では、ロボットアームの姿勢や動作を高精度に検出したり制御したりできるようにするために、ロボットアームの姿勢とセンサの検出結果との対応関係を決定するキャリブレーションを行う必要がある。一般的に、ロボットアームの姿勢は、ロボットアームを基準に定められた座標系(ロボット座標系)で表され、センサの検出結果(物体の位置や姿勢など)は、センサを基準に定められた座標系(センサ座標系)で表される。そのため、キャリブレーションは、ロボット座標系とセンサ座標系の対応関係を決定する処理とも言える。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の一般的なキャリブレーションでは、ユーザが膨大な数のパラメータを入力する必要があり、操作が煩雑である。例えば、ユーザは、ロボットアームの姿勢が順次変更されるように、数十個の姿勢を順次指定する。
【0005】
特許文献1に開示の技術では、キャリブレーションの実行前に、ロボットを制御して(動作させて)ロボットに設置されたマークを移動させながら、カメラによって撮像された画像からマークを検出する。これにより、ユーザによって指定された画像範囲(撮像された画像の一部)に対応するロボットの動作範囲が計測される。そして、キャリブレーションの実行時には、計測された動作範囲内でマークを移動させるように、ロボットが制御される。しかしながら、特許文献1に開示の技術を用いたとしても、ユーザは画像範囲を指定しなければならない。また、キャリブレーションの実行前にロボットを動作させる必要があるため、キャリブレーションを素早く完了させることができない。
【0006】
また、ロボットアームとセンサの従来のキャリブレーションにおいては、センサから取得する情報の結果を見ながらロボットを動作させるスキルが必要であり、センサの計測可能領域やセンシング性能の最適なチューニングなどを行えるスキルも必要である。このため、正確なキャリブレーションを実行するには熟練した作業者(熟練したシステムインテグレータ)が必要となる課題もある。また、位置姿勢を補正するには、単なる2次元の画像だけではなく、3次元の画像情報を取り扱う必要があり、システムインテグレータに求められる技術知識が多く、キャリブレーションのための操作は簡易なものと言える状況ではない。現状、これらを扱える熟練技術者は少ないため、専門知識のない作業者でも簡単に早くキャリブレーションを行うことが要求されている。
【0007】
本発明は上記実情に鑑みなされたものであって、キャリブレーションを容易に且つ短時間で行うことができる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために本発明は、以下の構成を採用する。
【0009】
本発明の第一側面は、センサによる物体の検出結果に基づいてキャリブレーションを行うキャリブレーション装置であって、物体を検出するセンサまたは前記物体が取り付けられたロボットアームの姿勢を変更する範囲を、前記センサの視野サイズと前記物体のサイズとに基づいて決定する決定手段と、前記決定手段により決定された前記範囲内での前記ロボットアームの姿勢の変更中に、前記ロボットアームの姿勢の情報と、前記センサによる前記物体の検出結果との組み合わせを繰り返し取得する取得手段と、前記取得手段により取得された複数の前記組み合わせに基づいて、前記ロボットアームの姿勢と前記物体の検出結果との対応関係を決定するキャリブレーションを行うキャリブレーション手段とを有することを特徴とするキャリブレーション装置を提供する。
【0010】
キャリブレーションを行うためには、センサの計測可能な2次元平面の視野や3次元空間として計測可能な奥行方向を含むセンシング範囲に物体が入るようにロボットアームの姿勢を変更する必要がある。上述した構成によれば、ロボットアームの動作範囲(ロボットアームの姿勢を変更する範囲)が、センサの視野サイズと物体のサイズ(物体サイズ)とに基づいて自動で決定される。こうすることで、ロボットアームの動作範囲として、センサの視野に物体が入るような範囲を高精度に決定することができ、キャリブレーションが可能となる。また、ロボットアームを動作させずに短時間でロボットアームの動作範囲を決定することができるため、短時間でキャリブレーションを行うことができる。
【0011】
さらに、キャリブレーションを容易に(煩雑な操作無しで)行うことができる。例えば、視野サイズの情報はセンサから取得可能であるし、物体サイズの情報は物体の設計データから取得可能であるため、パラメータの入力といった操作無しでキャリブレーションを行うことができる。なお、視野サイズや物体サイズの情報はユーザによって入力されてもよい。ユーザは、視野サイズや物体サイズの情報を入力する操作を容易に行うことができるため、視野サイズと物体サイズの少なくとも一方の情報がユーザによって入力される場合であっても、簡単な操作のみでキャリブレーションを行うことができる。
【0012】
前記センサまたは前記物体は、前記ロボットアームの先端に取り付けられており、前記決定手段は、前記ロボットアームの姿勢を変更する範囲として、前記ロボットアームの先端の位置を変更する範囲を決定するとしてもよい。こうすることで、ロボットアームの先端の位置(ロボット座標系で表された位置)と、物体の検出結果(センサ座標系で表された結果)との対応関係を決定するキャリブレーションを行うことができる。
【0013】
前記センサまたは前記物体は、前記ロボットアームの先端に取り付けられており、前記決定手段は、前記ロボットアームの姿勢を変更する範囲として、前記ロボットアームの先端の姿勢を変更する範囲を決定するとしてもよい。こうすることで、ロボットアームの先端の姿勢(ロボット座標系で表された位置および姿勢)と、物体の検出結果(センサ座標系で表された結果)との対応関係を決定するキャリブレーションを行うことができる。ロボットアームの先端の位置と姿勢を考慮すれば、ロボットアームの先端の位置と姿勢の一方のみを考慮する場合よりも高精度なキャリブレーションを行うことができる。
【0014】
前記物体の検出結果は、前記物体の、前記センサにより検出された位置を含むとしてもよい。こうすることで、ロボットアームの姿勢(ロボット座標系で表された姿勢)と、物体の検出位置(センサにより検出された位置;センサ座標系で表された位置)との対応関係を決定するキャリブレーションを行うことができる。前記物体の検出結果は、前記物体の、前記センサにより検出された姿勢を含むとしてもよい。こうすることで、ロボットアームの姿勢(ロボット座標系で表された姿勢)と、物体の検出姿勢(センサにより検出さ
れた姿勢;センサ座標系で表された姿勢)との対応関係を決定するキャリブレーションを行うことができる。物体の検出位置と検出姿勢を考慮することで、物体の検出位置と検出姿勢の一方のみを考慮する場合よりも高精度なキャリブレーションを行うことができる。
【0015】
センサの視野に物体が入っていても、センサの視野における物体の位置(相対位置)に依っては、センサが物体を高精度に検出できない(物体の検出結果の信頼度が低い)ことがある。例えば、センサの視野の端部では、物体の領域と大きく異なる領域が、物体の領域として検出されることがある。このため、前記物体の検出結果の信頼度を算出する算出手段をさらに有するとしてもよい。前記信頼度は、前記物体の表面上の、前記センサにより検出された各位置と、所定の設計データにより示された各位置との一致度であるとしてもよい。
【0016】
信頼度が低い検出結果(物体の検出結果)を用いると、キャリブレーションの精度が低下してしまう。このため、前記キャリブレーション手段は、前記複数の組み合わせのうち、前記信頼度が所定の閾値以上の組み合わせに基づいて、前記キャリブレーションを行うとしてもよい。こうすることで、信頼度が低い検出結果が使用されなくなるため、高精度にキャリブレーションを行うことができる。
【0017】
キャリブレーションの実行後において、信頼度が低い検出結果(物体の検出結果)を取得して使用すると、ロボットアームの姿勢や動作を高精度に検出したり高精度に制御したりすることができない。このため、前記信頼度が所定の閾値以上となる前記ロボットアームの姿勢の範囲を、前記キャリブレーションの実行後において前記ロボットアームの姿勢を変更可能な範囲として記憶部に記録する記録手段をさらに有するとしてもよい。こうすることで、信頼度が低い検出結果が取得されにくくなるため、ロボットアームの姿勢や動作を高精度に検出したり高精度に制御したりすることができる。
【0018】
本発明の第二側面は、センサによる物体の検出結果に基づいてキャリブレーションの自動設定を行う方法であって、物体を検出するセンサまたは前記物体が取り付けられたロボットアームの姿勢を変更する範囲を、前記センサの視野サイズと前記物体のサイズとに基づいて決定する決定ステップと、前記決定ステップにおいて決定された前記範囲内での前記ロボットアームの姿勢の変更中に、前記ロボットアームの姿勢の情報と、前記センサによる前記物体の検出結果との組み合わせを繰り返し取得する取得ステップと、前記取得ステップにおいて取得された複数の前記組み合わせに基づいて、前記ロボットアームの姿勢と前記物体の検出結果との対応関係を決定するキャリブレーションを行うキャリブレーションステップとを有することを特徴とするキャリブレーションの自動設定方法を提供する。
【0019】
なお、本発明は、上記構成ないし機能の少なくとも一部を有するロボット、ロボットコントローラー、ロボットシステムなどとして捉えることができる。また、本発明は、上記処理の少なくとも一部を含む、キャリブレーションの自動設定方法、キャリブレーション方法、ロボットの制御方法、ロボットコントローラーの制御方法、又はロボットシステムの制御方法や、これらの方法をコンピュータに実行させるためのプログラム、又は、そのようなプログラムを非一時的に記録したコンピュータ読取可能な記録媒体として捉えることもできる。上記構成及び処理の各々は技術的な矛盾が生じない限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0020】
本発明によれば、キャリブレーションを容易に且つ短時間で行うことができる。
【図面の簡単な説明】
【0021】
【
図1】
図1A,1Bは、本発明が適用されたロボットシステムの大まかな構成例を示す模式図である。
【
図2】
図2は、本発明が適用されたキャリブレーション装置の構成例を示すブロック図である。
【
図3】
図3は、本発明の実施形態1に係るキャリブレーション装置の動作例を示すフローチャートである。
【
図4】
図4A~4Cは、ロボットアームの動作範囲を決定する方法の一例を示す模式図である。
【
図5】
図5は、ロボットアームの先端の姿勢が変更される様子の一例を示す模式図である。
【
図6】
図6は、本発明の実施形態2に係るキャリブレーション装置の構成例を示すブロック図である。
【
図7】
図7は、本発明の実施形態2に係るキャリブレーション装置の動作例を示すフローチャートである。
【
図8】
図8は、本発明の実施形態3に係るキャリブレーション装置の構成例を示すブロック図である。
【発明を実施するための形態】
【0022】
<適用例>
本発明の適用例について説明する。
図1A,1Bは、本発明が適用されたロボットシステムの大まかな構成例を示す模式図である。ロボットシステムは、キャリブレーション装置100、ロボットアーム200、センサ300、及び、物体400を有する。センサ300または物体400は、ロボットアーム200に取り付けられる。
図1Aでは、ロボットアーム200にセンサ300が取り付けられており、
図1Bでは、ロボットアーム200に物体400が取り付けられている。
図1Bでは、センサ300は、ロボットアーム200から離れた位置、具体的にはロボットアーム200が設置された部屋の天井に固定されている。
【0023】
ロボットアーム200は、姿勢を変更可能な装置であり、姿勢を変更することにより、例えば物体を掴んで移動させるといった動作を行うことができる。ロボットアーム200は、自らの姿勢を変化させることによって、センサ300(
図1Aの場合)または物体400(
図1Bの場合)を移動させる。ロボットアーム200は、例えば、垂直多関節ロボット、移動機構ロボット、パラレルリンクロボット、直動機構ロボットなど任意のタイプのロボットであり得る。本実施形態では、ロボットアーム200は、複数の関節を有するアーム型ロボットであり、各関節の角度を制御することによってセンサ300または物体400の位置(姿勢)を制御する多関節ロボットである。各関節部は、モータにより駆動されて各関節を回転させる駆動軸を備えている。
【0024】
センサ300は、物体400を検出可能なセンサである。例えば、センサ300として、各種カメラ(撮像部)、深度情報を取得する深度センサ、または距離画像を取得する距離画像センサを使用することができる。センサ300は、1次元方向の位置を検出可能な1Dセンサであってもよいし、2次元方向の位置や姿勢などを検出可能な2Dセンサであってもよいし、3次元方向の位置や姿勢などを検出可能な3Dセンサであってもよい。センサ300は、センサ300の視野(探索領域)に光を照射して照明する照射部や、画像を投影するプロジェクタを有していてもよい。
【0025】
センサ300は、センサ300から物体400(対象物)までの距離を取得してもよく、当該取得の方式は、アクティブ方式とパッシブ方式のいずれであってもよい。ここで、アクティブ方式とは、センサ300から投影した光を対象物にあてて、当該対象物での反射光を受光して距離を取得する方式である。一方、パッシブ方式とは、自然光や他の照明
によって照らされた対象物からの光を受光して距離を取得する方式である。ここで、アクティブ方式として、例えば、赤外光をプロジェクタが対象物に照射し、当該対象物にて反射した赤外光をカメラが受光することで、三角測量の原理により当該対象物までの距離を取得する方法(スポット法;TOF)を用いてもよい。また、アクティブ方式として、例えば、パターン画像をプロジェクタが対象物に照射し、当該対象物に映し出されたパターン画像をカメラが撮像することで、撮像したパターン画像の歪みに応じて当該対象物までの距離を取得する方法を用いてもよい。また、パッシブ方式として、互いに異なる2点の位置から対象物を撮像して、2つの撮像画像の差分から距離を取得する方法を用いてもよい。
【0026】
物体400は、後述するキャリブレーションに必要な物体である。物体400は3次元的(立体的)な形状を有していてもよいし、2次元的(平面的)な形状を有していてもよい。物体400は、ロボットアーム200や地面(床面)などに描かれたマークであってもよい。物体400が2次元的な形状の物体であれば、物体400を低コストで製造することができる。物体400は、キャリブレーション専用の物体であってもよいし、そうでなくてもよい。例えば、物体400は、ロボットアーム200が掴んで移動させるといった動作の対象とする物体であってもよい。物体400は、キャリブレーションの実行後において、ロボットアーム200の姿勢や動作を検出したり制御したりするために使用されてもよい。ロボットアーム200の姿勢の変化により、センサ300からの物体400の見え方が変われば、物体400の形状や用途(キャリブレーション以外の用途)は特に限定されない。
【0027】
なお、
図1A,1Bでは、キャリブレーション装置100、ロボットアーム200、及び、センサ300が互いに別体の装置であるが、この構成に限られない。例えば、キャリブレーション装置100は、ロボットアーム200の一部であってもよい。センサ300の一部または全部の機能がキャリブレーション装置100に設けられてもよい。例えば、センサ300は、センサ300の視野の計測データを取得する計測部と、計測データに基づき物体400を検出する検出部とを有してもよい。この場合に、検出部がキャリブレーション装置100に設けられてもよい。
【0028】
上述したキャリブレーションは、センサ300による物体400の検出結果に基づいてロボットアーム200の姿勢や動作を高精度に検出したり制御したりできるようにするために行われる。キャリブレーションは、ロボットアーム200の姿勢とセンサ300の検出結果との対応関係を決定する処理である。一般的に、ロボットアーム200の姿勢は、ロボットアーム200を基準に定められた座標系(ロボット座標系)で表され、センサ300の検出結果(物体400の位置や姿勢など)は、センサ300を基準に定められた座標系(センサ座標系)で表される。そのため、キャリブレーションは、ロボット座標系とセンサ座標系の対応関係を決定する処理とも言える。
【0029】
しかしながら、従来のキャリブレーションでは、操作が煩雑であったり、キャリブレーションを素早く完了させることができなかったりする。
【0030】
図2は、本発明が適用されたキャリブレーション装置100の構成例を示すブロック図である。キャリブレーション装置100は、上述したキャリブレーションを実行する装置であり、例えばパーソナルコンピュータまたはロボットコントローラーなどである。キャリブレーション装置100は、動作範囲決定部101、ロボット制御部102、情報取得部103、及び、キャリブレーション部104を有する。
【0031】
動作範囲決定部101は、センサ300の視野サイズの情報と、物体400のサイズ(物体サイズ)の情報とを取得し、視野サイズと物体サイズに基づいて、ロボットアーム2
00の姿勢を変更する範囲(ロボットアーム200の動作範囲)を決定する。ここで、視野サイズや物体サイズは1次元的なサイズ(例えば横幅や縦幅)であってもよいし、2次元的なサイズ(例えば横幅×縦幅)であってもよいし、3次元的なサイズ(例えば横幅×縦幅×厚さ)であってもよい。同様に、動作範囲は1次元的な範囲であってもよいし、2次元的な範囲であってもよいし、3次元的な範囲であってもよい。動作範囲決定部101は、本発明の決定手段の一例である。
【0032】
ロボット制御部102は、ロボットアーム200の姿勢や動作を制御する。例えば、キャリブレーションの実行時において、ロボット制御部102は、動作範囲決定部101により決定された動作範囲内で、ロボットアーム200の姿勢を変更する。なお、ロボット制御部102は、キャリブレーション装置100とは別体の装置(例えば、ロボットアーム200の姿勢や動作を制御するコントローラー)などに設けられてもよい。
【0033】
情報取得部103は、動作範囲決定部101により決定された動作範囲内でのロボットアーム200の姿勢の変更中に、ロボットアーム200の姿勢の情報と、センサ300による物体400の検出結果との組み合わせ(情報セット)を繰り返し取得する。情報取得部103は、本発明の取得手段の一例である。
【0034】
キャリブレーション部104は、情報取得部103により取得された複数の情報セット(ロボットアーム200の姿勢が互いに異なる複数の姿勢でそれぞれ取得された複数の情報セット)に基づいて、キャリブレーションを行う。そして、キャリブレーション部104は、キャリブレーションの結果をロボット制御部102へ設定する。キャリブレーション部104は、本発明のキャリブレーション手段の一例である。
【0035】
キャリブレーションを行うためには、センサ300の計測可能な2次元平面の視野や3次元空間として計測可能な奥行方向を含むセンシング範囲に物体400が入るようにロボットアーム200の姿勢を変更する必要がある。上述した構成によれば、ロボットアーム200の動作範囲が、センサ300の視野サイズと物体400のサイズ(物体サイズ)とに基づいて自動で決定される。こうすることで、ロボットアーム200の動作範囲として、センサ300の視野に物体400が入るような範囲を高精度に決定することができ、キャリブレーションが可能となる。また、ロボットアーム200を動作させずに短時間でロボットアーム200の動作範囲を決定することができるため、短時間でキャリブレーションを行うことができる。
【0036】
さらに、キャリブレーションを容易に(煩雑な操作無しで)行うことができる。例えば、視野サイズの情報はセンサ300から取得可能であるし、物体サイズの情報は物体400の設計データから取得可能であるため、パラメータの入力といった操作無しでキャリブレーションを行うことができる。設計データは、例えば、不図示の記憶装置に予め格納される。なお、視野サイズや物体サイズの情報はユーザによって入力されてもよい。ユーザは、視野サイズや物体サイズの情報を入力する操作を容易に行うことができるため、視野サイズと物体サイズの少なくとも一方の情報がユーザによって入力される場合であっても、簡単な操作のみでキャリブレーションを行うことができる。
【0037】
<実施形態1>
本発明の実施形態1について説明する。実施形態1において、ロボットシステムは、
図1Aまたは
図1Bに示す構成を有し、キャリブレーション装置100は、
図2に示す構成を有する。
【0038】
図3は、キャリブレーションの実行時におけるキャリブレーション装置100の動作例を示すフローチャートである。
図3の動作は、例えば、キャリブレーションの実行がユー
ザから指示されたことに応じて開始される。
図3の動作は、予め設定されたタイミングで開始されてもよい。
図3の動作は定期的に行われてもよいし、そうでなくてもよい。
【0039】
まず、動作範囲決定部101は、センサ300の視野サイズと、物体400のサイズとに基づいて、ロボットアーム200の姿勢を変更する範囲(ロボットアーム200の動作範囲)を決定する(ステップS301)。
【0040】
実施形態1では、
図1A,1Bに示すように、ロボットアーム200の先端にセンサ300または物体400が取り付けられている。このような構成の場合には、動作範囲決定部101は、ロボットアーム200の動作範囲として、ロボットアーム200の先端の位置を変更する範囲を決定してもよい。こうすることで、ロボットアーム200の先端の位置(ロボット座標系で表された位置)と、物体400の検出結果(センサ座標系で表された結果)との対応関係を決定するキャリブレーションを行うことができる。
【0041】
また、動作範囲決定部101は、ロボットアーム200の動作範囲として、ロボットアーム200の先端の姿勢を変更する範囲を決定してもよい。こうすることで、ロボットアーム200の先端の姿勢(ロボット座標系で表された位置および姿勢)と、物体400の検出結果(センサ座標系で表された結果)との対応関係を決定するキャリブレーションを行うことができる。ロボットアーム200の先端の位置と姿勢を考慮することで、ロボットアーム200の先端の位置と姿勢の一方のみを考慮する場合よりも高精度なキャリブレーションを行うことができる。
【0042】
さらに、物体400の検出結果は、物体400の検出位置(センサ300により検出された位置)を含んでもよい。こうすることで、ロボットアーム200の姿勢(ロボット座標系で表された姿勢)と、物体400の検出位置(センサ座標系で表された位置)との対応関係を決定するキャリブレーションを行うことができる。物体400の検出結果は、物体400の検出姿勢(センサ300により検出された姿勢)を含むとしてもよい。こうすることで、ロボットアーム200の姿勢(ロボット座標系で表された姿勢)と、物体400の検出姿勢(センサ座標系で表された姿勢)との対応関係を決定するキャリブレーションを行うことができる。物体400の検出位置と検出姿勢を考慮することで、物体400の検出位置と検出姿勢の一方のみを考慮する場合よりも高精度なキャリブレーションを行うことができる。
【0043】
ここで、ロボットアーム200の動作範囲を決定する方法について、具体的に説明する。まず、ロボットアーム200の先端の位置を2次元的に変更する場合の例を説明する。この場合は、
図4Aに示すように、動作範囲決定部101は、センサ300の視野サイズに基づいて、センサ300の2次元の視野の外接円(視野外接円)を求め、物体400のサイズに基づいて、物体400の外接円(物体外接円)を求める。そして、動作範囲決定部101は、視野の中心に物体400が配置された状態を基準として、「視野外接円の半径-物体外接円の半径」を半径とする範囲(円領域)を、動作範囲として決定する。視野外接円の半径が4cmであり、且つ、物体外接円の半径が1cmである場合には、
図4Bに示すように、視野の中心に物体400が配置された状態を基準として半径が4cmの範囲が、動作範囲として決定される。
【0044】
次に、ロボットアーム200の先端の位置を3次元的に変更する場合の例を説明する。この場合は、
図4Cに示すように、動作範囲決定部101は、センサ300の視野サイズに基づいて、センサ300の3次元の視野の外接球(視野外接球)を求め、物体400のサイズに基づいて、物体400の外接球(物体外接球)を求める。
図4Cの例では、センサ300の視野は、センサ300から高さ方向に10~50cmの範囲であり、20cmの横幅と縦幅を有する。つまり、センサ300の視野は、センサ300から高さ方向に1
0cm離れた位置に配置された、20(横幅)×20(縦幅)×40(高さ;厚さ)の直方体の範囲である。そして、動作範囲決定部101は、視野の中心に物体400が配置された状態を基準として、「視野外接球の半径-物体外接球の半径」を半径とする範囲(球領域)を、動作範囲として決定する。
【0045】
キャリブレーションが完了するまで、ロボットアーム200とセンサ300の対応関係は未知であるため、ロボットアーム200の姿勢変化に応じて、センサ300の視野に対する物体400の位置や姿勢がどのように変化するかも未知である。上述した外接円や外接球を用いることにより、センサ300の視野に物体400が入る範囲を含むように動作範囲を決定することができる。なお、動作範囲の決定方法は上記方法に限られず、動作範囲は、センサ300の視野に物体400が入る範囲を含むように決定されればよい。動作範囲の形状は、円状や球状でなくてもよい。
【0046】
図3の説明に戻る。ステップS301の次に、ロボット制御部102は、ステップS301で決定された動作範囲内で、ロボットアーム200の姿勢を変更する(ステップS302)。実施形態1では、ロボット制御部102は、ステップS302の処理を繰り返すことで、ステップS301で決定された動作範囲内を走査するように、ロボットアーム200の姿勢を順次変更する。
【0047】
ここで、ロボットアーム200の姿勢の1回の変更量が小さいほど、キャリブレーションの精度は高くなるが、キャリブレーションに要する時間が長くなる。一方で、1回の変更量が大きいほど、キャリブレーションに要する時間は短くなるが、キャリブレーションの精度は低くなる。このため、1回の変更量は、キャリブレーションの精度と時間を考慮して決定されることが好ましい。
【0048】
なお、ロボットアーム200の姿勢の1回の変更量は予め定められた固定値であってもよいし、センサ300の視野サイズや物体400のサイズなどに基づいて動作範囲決定部101またはロボット制御部102により決定されてもよい。
【0049】
ここで、ロボットアーム200の先端の位置を2次元的に変更する場合の例を説明する。この場合は、
図4Aに示すように、センサ300の2次元の視野の略中心に物体400が配置されるように、ロボットアーム200の姿勢が調整される。そして、変更後の物体外接円が変更前の物体外接円に重ならずに接触するように、物体外接円の直径が、ロボットアーム200の姿勢の1回の変更量として決定される。視野外接円の半径が4cmであり、且つ、物体外接円の半径が1cmである場合には、
図4Bに示すように、ロボットアーム200の先端の位置が2cmずつ移動させられる。
【0050】
次に、ロボットアーム200の先端の位置を3次元的に変更する場合の例を説明する。この場合は、センサ300の3次元の視野の略中心に物体400が配置されるように、ロボットアーム200の姿勢が調整される。そして、変更後の物体外接球が変更前の物体外接球に重ならずに接触するように、物体外接球の直径が、ロボットアーム200の姿勢の1回の変更量として決定される。
【0051】
より高精度なキャリブレーションを実現するためには、
図5に示すように、ロボットアーム200の先端の位置だけではなく、当該先端の姿勢も変更することが好ましい。例えば、センサ300の視野の中心に物体400が配置された状態を基準として、±30°の範囲でロボットアーム200の先端の姿勢が変更されてもよい。
【0052】
図3の説明に戻る。ステップS302の次に、情報取得部103は、ロボットアーム200の姿勢の情報と、センサ300による物体400の検出結果との組み合わせ(情報セ
ット)を取得する(ステップS303)。
【0053】
次に、情報取得部103は、ステップS303で物体400の検出結果が取得できたか否かを判定する(ステップS304)。物体400の検出結果が取得できたと判定された場合(ステップS304:YES)には、情報取得部103は、ステップS303で取得した情報セットをキャリブレーション部104へ出力する。そして、ステップS306へ処理が進められる。物体400の検出結果が取得できなかったと判定された場合(ステップS304:NO)には、ステップS305へ処理が進められる。情報取得部103が物体400の検出結果を取得できたか否かの判定は、センサ300が物体を検出できたか否かの判定とも言える。センサ300の視野に物体400が入っていない場合には、センサ300は物体400を検出できない。センサ300の視野に物体400が入っていても、視野における物体400の位置(相対位置)に依っては、センサ300は物体400を検出できないことがある。
【0054】
ステップS305では、情報取得部103は、ステップS303で取得した情報(ロボットアーム200の姿勢の情報)を削除する。そして、ステップS306へ処理が進められる。物体400の検出結果が取得されていない状態で取得された情報(ロボットアーム200の姿勢の情報)の使用は、キャリブレーションの精度を低下させる。このため、ステップS305では、そのような情報を削除する。
【0055】
ステップS306では、ロボット制御部102は、ステップS301で決定された動作範囲の走査が完了したか否かを判定する。動作範囲の走査が完了したと判定された場合(ステップS306:YES)にはステップS307へ処理が進められ、動作範囲の走査が完了していないと判定された場合(ステップS306:NO)にはステップS302へ処理が戻される。
【0056】
ステップS307では、キャリブレーション部104は、情報取得部103から出力された複数の情報セットに基づいて、キャリブレーションを行う。
【0057】
以上述べたように、実施形態1によれば、ロボットアーム200の動作範囲が、センサ300の視野サイズと物体400のサイズとに基づいて自動で決定される。こうすることで、キャリブレーションを容易に且つ短時間で行うことができる。
【0058】
<実施形態2>
本発明の実施形態2について説明する。実施形態2において、ロボットシステムは、
図1Aまたは
図1Bに示す構成を有する。
【0059】
センサ300の視野に物体400が入っていても、センサ300の視野における物体400の位置(相対位置)に依っては、センサ300が物体400を高精度に検出できない(物体400の検出結果の信頼度が低い)ことがある。例えば、センサ300の視野の端部では、物体400の領域と大きく異なる領域が、物体400の領域として検出されることがある。そして、信頼度が低い検出結果(物体400の検出結果)を用いると、キャリブレーションの精度が低下してしまう。そこで、実施形態2では、キャリブレーションを行う際に、物体400の検出結果の信頼度をさらに考慮する。
【0060】
図6は、実施形態2に係るキャリブレーション装置100の構成例を示すブロック図である。実施形態2に係るキャリブレーション装置100は、実施形態1(
図2)の構成要素の他に、信頼度算出部601をさらに有する。
【0061】
信頼度算出部601は、情報取得部103により取得された検出結果(センサ300に
よる物体400の検出結果)の信頼度を算出する。信頼度の算出方法は特に限定されないが、例えば、信頼度算出部601は、物体400の表面上の、センサ300により検出された各位置と、所定の設計データ(CADデータなど)により示された各位置とのマッチングを行い、それらの位置の一致度を信頼度として算出する。マッチングは2次元マッチングであってもよいし、3次元マッチングであってもよい。信頼度算出部601は、本発明の算出手段の一例である。
【0062】
そして、実施形態2では、キャリブレーション部104は、情報取得部103により取得された複数の情報セットのうち、信頼度算出部601により算出された信頼度が所定の閾値以上の情報セットに基づいて、キャリブレーションを行う。こうすることで、信頼度が低い検出結果(物体400の検出結果)が使用されなくなるため、高精度にキャリブレーションを行うことができる。
【0063】
図7は、キャリブレーションの実行時におけるキャリブレーション装置100の動作例を示すフローチャートである。ステップS701~S703の処理は、実施形態1(
図3)のステップS301~S303の処理と同じである。
【0064】
ステップS703の次に、信頼度算出部601は、ステップS703で取得された検出結果(物体400の検出結果)の信頼度を算出する(ステップS704)。
【0065】
次に、信頼度算出部601は、ステップS704で算出した信頼度が所定の閾値以上であるか否かを判定する(ステップS705)。信頼度が所定の閾値以上であると判定された場合(ステップS705:YES)には、信頼度算出部601は、ステップS703で取得された情報セットをキャリブレーション部104へ出力する。そして、ステップS707へ処理が進められる。信頼度が所定の閾値以上でない(信頼度が所定の閾値未満である)と判定された場合(ステップS705:NO)には、ステップS706へ処理が進められる。
【0066】
ステップS706では、信頼度算出部601は、ステップS303で取得された情報セット(ロボットアーム200の姿勢の情報と、センサ300による物体400の検出結果との組み合わせ)を削除する。そして、ステップS707へ処理が進められる。上述したように、物体400の検出結果の信頼度が低い情報セットの使用は、キャリブレーションの精度を低下させる。このため、ステップS706では、そのような情報セットを削除する。
【0067】
ステップS707では、ロボット制御部102は、ステップS701で決定された動作範囲の走査が完了したか否かを判定する。動作範囲の走査が完了したと判定された場合(ステップS707:YES)にはステップS708へ処理が進められ、動作範囲の走査が完了していないと判定された場合(ステップS707:NO)にはステップS702へ処理が戻される。
【0068】
ステップS708では、キャリブレーション部104は、信頼度算出部601から出力された複数の情報セットに基づいて、キャリブレーションを行う。
【0069】
以上述べたように、実施形態2によれば、信頼度算出部601により算出された信頼度が所定の閾値以上の情報セットに基づいて、キャリブレーションが行われる。こうすることで、信頼度が低い検出結果(物体400の検出結果)が使用されなくなるため、高精度にキャリブレーションを行うことができる。
【0070】
<実施形態3>
本発明の実施形態3について説明する。実施形態2において、ロボットシステムは、
図1Aまたは
図1Bに示す構成を有する。
【0071】
キャリブレーションの実行後において、信頼度が低い検出結果(物体400の検出結果)を取得して使用すると、ロボットアーム200の姿勢や動作を高精度に検出したり高精度に制御したりすることができない。そこで、実施形態3では、物体400の検出結果の信頼度が所定の閾値以上となるロボットアーム200の動作範囲(ロボットアーム200の姿勢の範囲)の情報を、記憶部に記録する。そして、キャリブレーションの実行後では、記憶部に記録された動作範囲でロボットアーム200の姿勢を変更する。こうすることで、信頼度が低い検出結果(物体400の検出結果)が取得されにくくなるため、ロボットアーム200の姿勢や動作を高精度に検出したり高精度に制御したりすることができる。
【0072】
図8は、実施形態3に係るキャリブレーション装置100の構成例を示すブロック図である。実施形態2に係るキャリブレーション装置100は、実施形態2(
図6)の構成要素の他に、動作範囲記録部801と記憶部802をさらに有する。なお、キャリブレーションの実行時におけるキャリブレーション装置100の動作は、実施形態1の動作(
図3)と同じであってもよいし、実施形態2の動作(
図7)と同じであってもよい。
【0073】
動作範囲記録部801は、信頼度算出部601の算出結果に基づいて、物体400の検出結果の信頼度が所定の閾値以上となるロボットアーム200の動作範囲(ロボットアーム200の姿勢の範囲)の情報を生成し、当該情報を記憶部802に記録する。動作範囲記録部801は、本発明の記録手段の一例である。
【0074】
動作範囲記録部801からの情報から、センサ300の信頼度が高い検出範囲すなわち三次元の計測可能領域が分かるため、センサ300固有の計測可能領域のバラつきを吸収したキャリブレーションが可能ということが言える。つまり、
図1Aや
図1Bのようなシーンでロボットアームとセンサが複数台並んだ生産ラインを想定した場合、各ロボットアームとセンサのセンシング可能領域の機差を考慮したキャリブレーションが可能であるということが言える。すなわちセンサ固有の計測可能領域がロボット制御部102へ自動的に伝達可能である。
【0075】
記憶部802は、様々な情報を記憶可能である。記憶部802は、キャリブレーション装置100とは別体の装置に設けられてもよいし、キャリブレーション装置100とは別体の記憶装置であってもよい。
【0076】
そして、実施形態3では、ロボット制御部102は、キャリブレーションの実行後において、記憶部802に記録された動作範囲でロボットアーム200の姿勢を変更する。
【0077】
以上述べたように、実施形態3によれば、信頼度算出部601により算出された信頼度が所定の閾値以上となるロボットアーム200の姿勢の範囲が、キャリブレーションの実行後においてロボットアーム200の姿勢を変更可能な範囲とされる。こうすることで、信頼度が低い検出結果(物体400の検出結果)が取得されにくくなるため、ロボットアーム200の姿勢や動作を高精度に検出したり高精度に制御したりすることができる。
【0078】
<その他>
上記実施形態は、本発明の構成例を例示的に説明するものに過ぎない。本発明は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
【0079】
<付記1>
センサによる物体の検出結果に基づいてキャリブレーションを行うキャリブレーション装置(100)であって、
物体を検出するセンサまたは前記物体が取り付けられたロボットアームの姿勢を変更する範囲を、前記センサの視野サイズと前記物体のサイズとに基づいて決定する決定手段(101)と、
前記決定手段により決定された前記範囲内での前記ロボットアームの姿勢の変更中に、前記ロボットアームの姿勢の情報と、前記センサによる前記物体の検出結果との組み合わせを繰り返し取得する取得手段(103)と、
前記取得手段により取得された複数の前記組み合わせに基づいて、前記ロボットアームの姿勢と前記物体の検出結果との対応関係を決定するキャリブレーションを行うキャリブレーション手段(104)と
を有することを特徴とするキャリブレーション装置(100)。
【0080】
<付記2>
センサによる物体の検出結果に基づいてキャリブレーションの自動設定を行う方法であって、
物体を検出するセンサまたは前記物体が取り付けられたロボットアームの姿勢を変更する範囲を、前記センサの視野サイズと前記物体のサイズとに基づいて決定する決定ステップ(S301,S701)と、
前記決定ステップにおいて決定された前記範囲内での前記ロボットアームの姿勢の変更中に、前記ロボットアームの姿勢の情報と、前記センサによる前記物体の検出結果との組み合わせを繰り返し取得する取得ステップ(S303,S703)と、
前記取得ステップにおいて取得された複数の前記組み合わせに基づいて、前記ロボットアームの姿勢と前記物体の検出結果との対応関係を決定するキャリブレーションを行うキャリブレーションステップ(S307,S708)と
を有することを特徴とするキャリブレーションの自動設定方法。
【符号の説明】
【0081】
100:キャリブレーション装置 101:動作範囲決定部
102:ロボット制御部 103:情報取得部 104:キャリブレーション部
200:ロボットアーム 300:センサ 400:物体
601:信頼度算出部 801:動作範囲記録部 802:記憶部