(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-06
(45)【発行日】2024-11-14
(54)【発明の名称】ロボット制御装置、ロボット制御システム、及びロボット制御方法
(51)【国際特許分類】
B25J 19/04 20060101AFI20241107BHJP
G05B 19/19 20060101ALI20241107BHJP
B25J 9/10 20060101ALI20241107BHJP
B25J 13/08 20060101ALI20241107BHJP
【FI】
B25J19/04
G05B19/19 H
B25J9/10 A
B25J13/08 A
(21)【出願番号】P 2023540414
(86)(22)【出願日】2022-08-04
(86)【国際出願番号】 JP2022030010
(87)【国際公開番号】W WO2023013739
(87)【国際公開日】2023-02-09
【審査請求日】2024-02-01
(31)【優先権主張番号】P 2021128491
(32)【優先日】2021-08-04
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006633
【氏名又は名称】京セラ株式会社
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100132045
【氏名又は名称】坪内 伸
(74)【代理人】
【識別番号】100195534
【氏名又は名称】内海 一成
(72)【発明者】
【氏名】グラシア フィデリア
(72)【発明者】
【氏名】石田 敬之
(72)【発明者】
【氏名】森 雅人
(72)【発明者】
【氏名】内竹 真洋
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2009-142903(JP,A)
【文献】特開平05-277973(JP,A)
【文献】中国特許出願公開第110148187(CN,A)
【文献】特開2010-172986(JP,A)
【文献】特開昭64-002104(JP,A)
【文献】特開2019-177450(JP,A)
【文献】特開2018-094653(JP,A)
【文献】特開2019-217571(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/416
(57)【特許請求の範囲】
【請求項1】
ロボットを制御する制御部を備え、
前記制御部は、
前記ロボットの動作空間において設定された第1キャリブレーション範囲に含まれる少なくとも1つの第1キャリブレーション位置において、前記ロボットの第1キャリブレーションを実行し、
前記第1キャリブレーション範囲の一部の範囲である第2キャリブレーション範囲に含まれるとともに、前記少なくとも1つの前記第1キャリブレーション位置よりも高密度に設定された少なくとも1つの第2キャリブレーション位置において、前記ロボットの第2キャリブレーションを実行する、
ロボット制御装置。
【請求項2】
前記第2キャリブレーション位置は、前記ロボットが作業を実行する空間において、前記ロボットの作業の精度に基づいて定まる密度で設定される、請求項1に記載のロボット制御装置。
【請求項3】
前記制御部は、前記ロボットの動作空間の撮影画像に基づいて、前記第1キャリブレーション及び前記第2キャリブレーションを実行する、請求項
1に記載のロボット制御装置。
【請求項4】
請求項1から3までのいずれか一項に記載のロボット制御装置と、前記ロボットとを備える、ロボット制御システム。
【請求項5】
ロボットを制御する制御部が、前記ロボットの動作空間において設定された第1キャリブレーション範囲に含まれる少なくとも1つの第1キャリブレーション位置において、前記ロボットの第1キャリブレーションを実行することと、
前記制御部が、前記第1キャリブレーション範囲の一部の範囲である第2キャリブレーション範囲に含まれるとともに、前記少なくとも1つの前記第1キャリブレーション位置よりも高密度に設定された少なくとも1つの第2キャリブレーション位置において、前記ロボットの第2キャリブレーションを実行することと
を含む、ロボット制御方法。
【発明の詳細な説明】
【関連出願へのクロスリファレンス】
【0001】
本出願は、日本国特許出願2021-128491号(2021年8月4日出願)の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
【技術分野】
【0002】
本開示は、ロボット制御装置、ロボット制御システム、及びロボット制御方法に関する。
【背景技術】
【0003】
従来、キャリブレーション作業を自動で手間をかけることなく行うことを可能としたロボットビジョンシステムが知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【0005】
本開示の一実施形態に係るロボット制御装置は、ロボットを制御する制御部を備える。前記制御部は、前記ロボットの動作空間において設定された第1キャリブレーション範囲に含まれる少なくとも1つの第1キャリブレーション位置において、前記ロボットの第1キャリブレーションを実行する。前記制御部は、少なくとも1つの第2キャリブレーション位置において、前記ロボットの第2キャリブレーションを実行する。前記少なくとも1つの第2キャリブレーション位置は、前記第1キャリブレーション範囲の一部の範囲である第2キャリブレーション範囲に含まれるとともに、前記少なくとも1つの前記第1キャリブレーション位置よりも高密度に設定される。
【0006】
本開示の一実施形態に係るロボット制御システムは、前記ロボット制御装置と、前記ロボットとを備える。
【0007】
本開示の一実施形態に係るロボット制御方法は、ロボットを制御する制御部が、前記ロボットの動作空間において設定された第1キャリブレーション範囲に含まれる少なくとも1つの第1キャリブレーション位置において、前記ロボットの第1キャリブレーションを実行することを含む。前記ロボット制御方法は、前記制御部が、前記第1キャリブレーション範囲の一部の範囲である第2キャリブレーション範囲に含まれるとともに、前記少なくとも1つの前記第1キャリブレーション位置よりも高密度に設定された少なくとも1つの第2キャリブレーション位置において、前記ロボットの第2キャリブレーションを実行することを含む。
【図面の簡単な説明】
【0008】
【
図1】一実施形態に係るロボット制御システムの構成例を示すブロック図である。
【
図2】一実施形態に係るロボット制御システムの構成例を示す模式図である。
【
図3】キャリブレーション範囲の一例を示す模式図である。
【
図4】一実施形態に係るロボット制御方法として第1キャリブレーションを実行する手順例を示すフローチャートである。
【
図5】一実施形態に係るロボット制御方法として第2キャリブレーションを実行する手順例を示すフローチャートである。
【発明を実施するための形態】
【0009】
ロボット作業においてキャリブレーション作業の短縮が求められる。本開示の一実施形態に係るロボット制御装置、ロボット制御システム、及びロボット制御方法によれば、キャリブレーション作業が短縮され得る。
【0010】
(ロボット制御システム1の概要)
図1及び
図2に例示されるように、一実施形態に係るロボット制御システム1は、ロボット40と、ロボット制御装置10と、空間情報取得部20とを備える。ロボット40は、所定の動作空間において動作する。空間情報取得部20は、ロボット40が動作する動作空間のデプス情報を生成する。空間情報取得部20は、後述するように、動作空間に存在する物体50の表面に位置する測定点までの距離を算出する。空間情報取得部20から測定点までの距離は、デプスとも称される。デプス情報は、各測定点について測定したデプスに関する情報である。言い換えれば、デプス情報は、動作空間に存在する物体50の表面に位置する測定点までの距離に関する情報である。デプス情報は、空間情報取得部20から見た方向とその方向のデプスとを関連づけたデプスマップとして表されてもよい。空間情報取得部20は、(X,Y,Z)座標系に基づいて動作空間のデプス情報を生成する。ロボット制御装置10は、空間情報取得部20で生成されたデプス情報に基づいてロボット40を動作させる。ロボット制御装置10は、(X_RB,Y_RB,Z_RB)座標系に基づいてロボット40を動作させる。
【0011】
(X_RB,Y_RB,Z_RB)座標系は、ロボット40の座標系とも称される。(X,Y,Z)座標系は、空間情報取得部20の座標系とも称される。ロボット40の座標系は、空間情報取得部20の座標系と同じ座標系として設定されてもよいし、異なる座標系として設定されてもよい。ロボット40の座標系が空間情報取得部20の座標系と異なる座標系として設定される場合、ロボット制御装置10は、空間情報取得部20の座標系で生成されたデプス情報を、ロボット40の座標系に変換して用いる。
【0012】
ロボット40及びロボット制御装置10の数は、例示されるように1台に限られず2台以上であってもよい。空間情報取得部20の数は、例示されるように、1つの動作空間に対して1台であってもよいし、2台以上であってもよい。以下、各構成部が具体的に説明される。
【0013】
<ロボット制御装置10>
ロボット制御装置10は、制御部11と、記憶部12とを備える。
【0014】
制御部11は、ロボット制御装置10の種々の機能を実現するために、少なくとも1つのプロセッサを含んで構成されてよい。プロセッサは、ロボット制御装置10の種々の機能を実現するプログラムを実行しうる。プロセッサは、単一の集積回路として実現されてよい。集積回路は、IC(Integrated Circuit)とも称される。プロセッサは、複数の通信可能に接続された集積回路及びディスクリート回路として実現されてよい。プロセッサは、CPU(Central Processing Unit)を含んで構成されてよい。プロセッサは、DSP(Digital Signal Processor)又はGPU(Graphics Processing Unit)を含んで構成されてもよい。プロセッサは、他の種々の既知の技術に基づいて実現されてよい。
【0015】
記憶部12は、磁気ディスク等の電磁記憶媒体を含んで構成されてよいし、半導体メモリ又は磁気メモリ等のメモリを含んで構成されてもよい。記憶部12は、HDD(Hard Disk Drive)として構成されてもよいしSSD(Solid State Drive)として構成されてもよい。記憶部12は、各種情報及び制御部11で実行されるプログラム等を格納する。記憶部12は、制御部11のワークメモリとして機能してよい。制御部11が記憶部12の少なくとも一部を含んで構成されてもよい。
【0016】
ロボット制御装置10は、空間情報取得部20及びロボット40と有線又は無線で通信可能に構成される通信デバイスを更に備えてもよい。通信デバイスは、種々の通信規格に基づく通信方式で通信可能に構成されてよい。通信デバイスは、既知の通信技術により構成することができる。通信デバイスのハードウェア等の詳細な説明は省略される。通信デバイスの機能は、1つのインタフェースによって実現されてもよいし、接続先別にそれぞれ別体のインタフェースによって実現されてもよい。制御部11が空間情報取得部20及びロボット40と通信可能に構成されてもよい。制御部11が通信デバイスを含んで構成されてもよい。
【0017】
<ロボット40>
ロボット40は、
図2に例示されるように、アーム42と、アーム42に取り付けられるエンドエフェクタ44と、エンドエフェクタ44に設置されているマーク46とを備える。なお、マーク46は、エンドエフェクタ44ではなく、アーム42に設置されていてもよい。
【0018】
アーム42は、例えば、6軸又は7軸の垂直多関節ロボットとして構成されてよい。アーム42は、3軸又は4軸の水平多関節ロボット又はスカラロボットとして構成されてもよい。アーム42は、2軸又は3軸の直交ロボットとして構成されてもよい。アーム42は、パラレルリンクロボット等として構成されてもよい。アーム42を構成する軸の数は、例示したものに限られない。
【0019】
エンドエフェクタ44は、例えば、作業対象物を把持できるように構成される把持ハンドを含んでよい。把持ハンドは、複数の指を有してよい。把持ハンドの指の数は、2つ以上であってよい。把持ハンドの指は、1つ以上の関節を有してよい。エンドエフェクタ44は、作業対象物を吸着できるように構成される吸着ハンドを含んでもよい。エンドエフェクタ44は、作業対象物を掬うことができるように構成される掬いハンドを含んでもよい。エンドエフェクタ44は、ドリル等の工具を含み、作業対象物に穴を開ける作業等の種々の加工を実施できるように構成されてもよい。エンドエフェクタ44は、これらの例に限られず、他の種々の動作ができるように構成されてよい。
【0020】
ロボット40は、アーム42を動作させることによって、エンドエフェクタ44の位置を制御できる。エンドエフェクタ44は、作業対象物に対して作用する方向の基準となる軸を有してもよい。エンドエフェクタ44が軸を有する場合、ロボット40は、アーム42を動作させることによって、エンドエフェクタ44の軸の方向を制御できる。ロボット40は、エンドエフェクタ44が作業対象物に作用する動作の開始及び終了を制御する。ロボット40は、エンドエフェクタ44の位置、又は、エンドエフェクタ44の軸の方向を制御しつつ、エンドエフェクタ44の動作を制御することによって、作業対象物を動かしたり加工したりすることができる。
【0021】
ロボット40は、ロボット40の各構成部の状態を検出するセンサを更に備えてよい。センサは、ロボット40の各構成部の現実の位置若しくは姿勢、又は、ロボット40の各構成部の速度若しくは加速度に関する情報を検出してよい。センサは、ロボット40の各構成部に作用する力を検出してもよい。センサは、ロボット40の各構成部を駆動するモータに流れる電流又はモータのトルクを検出してもよい。センサは、ロボット40の実際の動作の結果として得られる情報を検出できる。ロボット制御装置10は、センサの検出結果を取得することによって、ロボット40の実際の動作の結果を把握することができる。つまり、ロボット制御装置10は、センサの検出結果に基づいてロボット40の状態を取得できる。
【0022】
ロボット制御装置10は、空間情報取得部20でマーク46を撮影した画像に基づいてマーク46の位置、又は、マーク46が設置されているエンドエフェクタ44の位置を認識する。また、ロボット制御装置10は、空間情報取得部20でマーク46を撮影した画像に基づいてロボット40の状態を認識する。ロボット制御装置10は、センサの検出結果に基づいて取得したロボット40の状態と、マーク46を写した画像に基づいて取得したロボット40の状態とを比較することによって、ロボット40のキャリブレーションを実行できる。
【0023】
<空間情報取得部20>
空間情報取得部20は、ロボット40の動作空間に関する空間情報を取得する。空間情報取得部20は、動作空間を撮影し、空間情報として動作空間の画像を取得してよい。空間情報取得部20は、
図2に例示されるように、動作空間に存在する物体50を撮影してよい。空間情報取得部20は、カメラとして構成されてよい。3Dステレオカメラは、動作空間に存在する物体50を撮影し、動作空間に存在する物体50の表面に位置する測定点までの距離をデプスとして算出し、デプス情報を生成する。空間情報取得部20は、3Dステレオカメラとして構成されてもよい。空間情報取得部20は、LiDAR(light detection and ranging)として構成されてもよい。LiDARは、動作空間に存在する物体50の表面に位置する測定点までの距離を測定し、デプス情報を生成する。つまり、空間情報取得部20は、空間情報として動作空間のデプス情報を取得してよい。空間情報取得部20は、これらに限られず種々のデバイスとして構成されてもよい。空間情報取得部20は、空間情報として、動作空間の画像又はデプス情報に限られず他の種々の情報を取得してよい。空間情報取得部20は、撮像素子を備えてよい。空間情報取得部20は、光学系を更に備えてよい。空間情報取得部20は、動作空間を撮影した画像をロボット制御装置10に出力してよい。空間情報取得部20は、ロボット40の動作空間におけるデプス情報を生成してロボット制御装置10に出力してもよい。空間情報取得部20は、ロボット40の動作空間における点群情報を生成してロボット制御装置10に出力してもよい。すなわち、空間情報取得部20は、空間情報を、点群データの形式で出力してもよい。言い換えれば、点群情報は、空間情報を有していてもよい。点群情報は、動作空間に存在する物体50の表面に位置する各測定点の集合の情報であり、各測定点の座標情報又は色情報を含む情報である。点群情報は、測定空間内の物体50を複数の点で表すデータであるともいえる。空間情報が点群データの形式であることによって、空間情報取得部20で取得された初期データに基づく空間情報よりも、データ密度を小さくすることができる。
【0024】
空間情報取得部20は、FOV(Field Of View)を有する。FOVは、空間情報取得部20の撮影範囲に対応する。空間情報取得部20は、FOVに含まれる範囲を撮影できる。空間情報取得部20の実視野サイズは、空間情報取得部20のFOVと、デプス情報とに基づいて定まる。ロボット制御装置10は、空間情報取得部20の実視野サイズと、空間情報取得部20が撮影したロボット40のマーク46を含む画像とに基づいて、ロボット40のマーク46の位置及び姿勢を取得できる。具体的に、ロボット制御装置10は、マーク46を写した画像を所定のアルゴリズムで解析することによって、画像に基づいてマーク46の位置及び姿勢を算出できる。所定のアルゴリズムは、例えば、数式又はテーブル等を含んでよいし、演算処理を特定するプログラムを含んでもよい。所定のアルゴリズムは、画像に基づく算出結果を補正するためのパラメータを含んでもよい。
【0025】
(ロボット制御装置10の動作例)
ロボット制御装置10は、動作空間に存在する物体50等の作業対象に作用するようにロボット40を動作させたり、物体50を避けるようにロボット40を動作させたりする。ロボット制御装置10は、物体50を空間情報取得部20で写した撮影画像に基づいて、物体50に作用したり物体50を避けたりするようにロボット40を動作させる。
【0026】
<キャリブレーション>
ロボット制御装置10の制御部11は、空間情報取得部20の撮影画像に写ったマーク46の位置及び姿勢に基づいてロボット40の状態を取得し、ロボット40と物体50との位置関係を取得できる。一方で、制御部11は、例えばアーム42などに設置されたエンコーダなどのロボット40のセンサに基づいてロボット40の状態を取得する。ロボット40のセンサに基づく状態は、空間情報取得部20の撮影画像に基づく状態よりもロボット40の位置及び姿勢を高精度に表す。したがって、制御部11は、空間情報取得部20の撮影画像に基づくロボット40の状態を、ロボット40のセンサに基づくロボット40の状態に一致させることによって、ロボット40を動作空間において高精度で制御できる。空間情報取得部20の撮影画像に基づくロボット40の状態を、ロボット40のセンサに基づくロボット40の状態に一致させる作業は、キャリブレーションとも称される。具体的に、制御部11は、空間情報取得部20の(X,Y,Z)座標系をロボット40の(X_RB,Y_RB,Z_RB)座標系に一致させるようにキャリブレーションを実行する。制御部11は、空間情報取得部20の座標系とロボット40の座標系との相対位置関係を推定し、推定した相対位置関係に基づいて空間情報取得部20の座標系をロボット40の座標系に合わせてよい。
【0027】
制御部11は、空間情報取得部20のFOVの少なくとも一部をキャリブレーション範囲としてキャリブレーションを実行してよい。本実施形態において、制御部11は、
図2及び
図3に示される第1キャリブレーション範囲60と、第2キャリブレーション範囲62とにおいてキャリブレーションを実行する。第1キャリブレーション範囲60は、第2キャリブレーション範囲62を含む。言い換えれば、第2キャリブレーション範囲62は、第1キャリブレーション範囲60の一部の範囲に対応する。第1キャリブレーション範囲60は、
図2及び
図3において二点鎖線で囲まれた領域として示されている。第2キャリブレーション範囲62は、
図2及び
図3において破線で囲まれた領域として示されている。第1キャリブレーション範囲60及び第2キャリブレーション範囲62は、区別されない場合、単にキャリブレーション範囲と称される。キャリブレーション範囲は、ロボット40のキャリブレーションを実行する範囲に対応する。キャリブレーション範囲は、ロボット40の作業領域を含んでよい。キャリブレーション範囲は、ロボット40の作業領域とFOVとが重なる範囲であってよい。
【0028】
また、制御部11は、キャリブレーション範囲の中に、キャリブレーションを実行するための点を設定する。キャリブレーションを実行するための点は、キャリブレーション位置とも称される。第1キャリブレーション範囲60の中に設定されるキャリブレーション位置は、第1キャリブレーション位置とも称される。第2キャリブレーション範囲62の中に設定されるキャリブレーション位置は、第2キャリブレーション位置とも称される。なお、第2キャリブレーション位置は、第1キャリブレーション位置とは異なる位置に設定される。
【0029】
制御部11は、ロボット40のマーク46をキャリブレーション位置に移動させて空間情報取得部20によってマーク46を撮影させる。制御部11は、マーク46を写した画像に基づいてマーク46の位置及び姿勢を算出する。制御部11は、ロボット40のセンサの検出結果に基づいて定まるマーク46の位置及び姿勢に対して、画像に基づいて算出したマーク46の位置及び姿勢を一致させるように、画像に基づくマーク46の位置及び姿勢を補正する。画像に基づくマーク46の位置及び姿勢の補正がキャリブレーションに対応する。マーク46の位置及び姿勢は、先端位置姿勢とも称される。キャリブレーションは、先端位置姿勢の補正に対応する。キャリブレーション位置は、先端位置姿勢を補正する位置に対応する。
【0030】
具体的に、制御部11は、以下説明するようにキャリブレーションを実行してよい。制御部11は、ロボット40のマーク46をキャリブレーション位置に移動させるためのロボット40の制御情報を生成する。制御部11は、制御情報に基づいてロボット40を動作させ、ロボット40のマーク46をキャリブレーション位置に移動させる。制御部11は、マーク46を写した画像を空間情報取得部20から取得する。制御部11は、画像に基づいてマーク46の位置及び姿勢を算出する。画像に基づいて算出したマーク46の位置及び姿勢は、画像に基づく先端位置姿勢とも称される。制御部11は、ロボット40のセンサの検出結果に基づいて定まるマーク46の位置及び姿勢を算出する。センサの検出結果に基づいて算出したマーク46の位置及び姿勢は、センサに基づく先端位置姿勢とも称される。制御部11は、画像に基づく先端位置姿勢と、センサに基づく先端位置姿勢とを比較する。制御部11は、画像に基づく先端位置姿勢がセンサに基づく先端位置姿勢に一致するように、画像に基づく先端位置姿勢を補正する。制御部11は、画像に基づく先端位置姿勢を算出するアルゴリズムを補正してよい。制御部11は、アルゴリズムに含まれるパラメータを補正してよいし、数式、テーブル又はプログラムを補正してもよい。複数のキャリブレーション位置が設定されている場合、制御部11は、各キャリブレーション位置にロボット40を移動させ、各キャリブレーション位置においてマーク46を写した画像を取得し、画像に基づく先端位置姿勢を補正する。
【0031】
なお、上記の例では、マーク46の位置及び姿勢に対して、キャリブレーションを行なっているが、キャリブレーションを行なう箇所は、マーク46の位置及び姿勢に限られない。すなわち、制御部11は、予めマーク46の位置と、キャリブレーションを行なうロボット40の一部であるキャリブレーション対象部との位置関係を記憶しておき、画像に基づくマーク46の位置及び姿勢からキャリブレーション対象部の位置及び姿勢を算出してもよい。そして、ロボット40のセンサの検出結果に基づくキャリブレーション対象部の位置及び姿勢と比較することによってキャリブレーションを行なうことができる。したがって、マーク46の位置及び姿勢以外でもキャリブレーションを行なうことが可能になる。また、上記の例では、キャリブレーション対象部はロボット40の先端位置姿勢であったが、位置及び姿勢が算出可能な個所であれば、キャリブレーション対象部はロボット40の先端位置姿勢に限られない。
【0032】
<<キャリブレーションアイテム>>
制御部11は、キャリブレーションを実行する前に、あらかじめキャリブレーション範囲を設定する。また、制御部11は、キャリブレーション範囲に含まれるキャリブレーション位置を設定する。制御部11は、第1キャリブレーション範囲60の中に少なくとも1つの第1キャリブレーション位置を設定する。制御部11は、第2キャリブレーション範囲62の中に少なくとも1つの第2キャリブレーション位置を設定する。制御部11は、第2キャリブレーション位置の密度が第1キャリブレーション位置の密度よりも高くなるようにキャリブレーション位置を設定する。言い換えれば、制御部11は、第2キャリブレーション位置を第1キャリブレーション位置よりも高密度で設定する。逆に言えば、制御部11は、第1キャリブレーション位置を第2キャリブレーション位置よりも低密度で設定する。また、第2キャリブレーション位置の数は、第1キャリブレーション位置の数以上であってもよい。
【0033】
制御部11は、キャリブレーション位置にロボット40を移動させるようにロボット40の制御情報を生成する。制御部11は、ロボット40を移動させたときの先端位置姿勢とロボット40のマーク46の認識結果とを特定する情報をキャリブレーションアイテムとして生成する。ロボット40の動作空間において設定された第1キャリブレーション範囲60に含まれる少なくとも1つの第1キャリブレーション位置にロボット40を移動させたときの先端位置姿勢とロボット40のマーク46の認識結果とを特定するキャリブレーションアイテムは、第1キャリブレーションアイテムとも称される。ロボット40の動作空間において設定された第2キャリブレーション範囲62に含まれる少なくとも1つの第2キャリブレーション位置にロボット40を移動させたときの先端位置姿勢とロボット40のマーク46の認識結果とを特定するキャリブレーションアイテムは、第2キャリブレーションアイテムとも称される。なお、キャリブレーションアイテムは、例えば、座標に関する情報である。具体的には、キャリブレーションアイテムは、例えば、ロボット40をキャリブレーション位置に移動させたときのロボット40のセンサの検出結果に基づく先端位置姿勢を示す座標情報、又は空間情報取得部20によって認識されたマーク46の認識結果に基づく先端位置姿勢を示す座標情報などである。
【0034】
制御部11は、以下に説明するようにキャリブレーションアイテムを生成してよい。
【0035】
制御部11は、例えば空間情報取得部20から空間情報取得部20の実視野サイズに関する情報、又は、FOVに関する情報を取得する。制御部11は、空間情報取得部20の実視野サイズ又はFOVとロボット40の作業領域とに基づいて、キャリブレーション範囲を設定する。制御部11は、ロボット40の動作空間における物体50の位置に基づいてキャリブレーション範囲を設定してよい。制御部11は、空間情報取得部20で検出した物体50のデプス情報又は点群情報に基づいて、キャリブレーション範囲を設定してよい。また、制御部11は、例えば、第1キャリブレーション範囲60を実視野サイズとFOVに基づいて設定してもよい。また、制御部11は、例えば、第2キャリブレーション範囲62を作業領域に基づいて設定してもよい。なお、キャリブレーション範囲は、複数の第2キャリブレーション範囲62を有していてもよい。制御部11は、例えば、ロボット40にピックアンドプレイスの動作をさせる場合に、作業領域として、対象物を把持する場所および対象物を置く場所のそれぞれに第2キャリブレーション範囲62を設定してもよい。
図2及び
図3において、第1キャリブレーション範囲60の形状は、四角錐台形状に設定されている。第2キャリブレーション範囲62の形状は、直方体形状に設定されている。キャリブレーション範囲の形状は、これらに限られず他の種々の形状に設定されてよい。
【0036】
制御部11は、ロボット40のセンサに基づく先端位置姿勢と、空間情報取得部20の画像に基づく先端位置姿勢とを一致させる。具体的に、制御部11は、ロボット40を第1位置に移動させる。制御部11は、ロボット40のマーク46が所定の位置及び姿勢となるようにロボット40を動作させる制御情報を生成し、制御情報に基づいてロボット40を制御することによってロボット40を第1位置に移動させる。第1位置は、空間情報取得部20のFOVに含まれる所定の位置であってよい。第1位置は、例えば空間情報取得部20のFOVの中心位置であってよい。制御部11は、ロボット40が第1位置に移動したときのマーク46の画像を取得し、マーク46の位置及び姿勢を画像に基づく先端位置姿勢として算出する。また、制御部11は、センサに基づく先端位置姿勢を算出する。制御部11は、画像に基づく先端位置姿勢と、センサに基づく先端位置姿勢との比較に基づいて、ロボット40の位置が画像内においてセンサの検出結果に基づく第1位置となるようにロボット40の制御情報を補正する。制御部11は、補正した制御情報に基づいてロボット40を動かすことによって、ロボット40の座標系におけるロボット40の位置と空間情報取得部20の座標系におけるロボット40の位置とが一致するようにロボット40の状態を更新する。つまり、制御部11は、ロボット40の位置が画像内において第1位置になるようにロボット40の状態を更新するともいえる。
【0037】
制御部11は、キャリブレーション範囲の中で、少なくとも1つのキャリブレーション位置の候補となる位置を生成してもよい。少なくとも1つのキャリブレーション位置の候補となる位置は、少なくとも1つの第2位置とも称される。制御部11は、第1位置を、少なくとも1つの第2位置の1つとして設定してもよい。また、制御部11は、少なくとも1つの第2位置を第1位置とは異なる位置に設定してもよい。また、制御部11は、第1キャリブレーション範囲60及び第2キャリブレーション範囲62のそれぞれにおいて設定された第1位置又は少なくとも1つの第2位置の中から第1キャリブレーション位置及び第2キャリブレーション位置を選択すればよい。少なくとも1つの第2位置は、キャリブレーション範囲の角又は辺に配置された点を含んでいてもよい。または、少なくとも1つの第2位置は、キャリブレーション範囲の内部に配された点を含んでいてもよい。制御部11は、ロボット40の動作をシミュレーションすることによって、ロボット40が第2位置に移動した場合のロボット40の状態を推定する。つまり、制御部11は、ロボット40が第2位置に移動すると仮定した場合のロボット40の状態を算出する。言い換えれば、ロボット40が、第1キャリブレーション位置又は第2キャリブレーション位置に移動すると仮定した場合のロボット40の状態を推定する。その結果、制御部11は、ロボット40が第1キャリブレーション位置及び第2キャリブレーション位置などの第2位置に移動可能か否かを判定することができる。
【0038】
なお、後述するように、第1キャリブレーションは、第1キャリブレーション位置で実行されるキャリブレーションであり、低い密度で設定された位置(広い間隔で設定された位置)で簡易的に実行されるキャリブレーションである。したがって、制御部11は、第1キャリブレーションを実行することによって、ロボット40を少ない動作で補正できる。第2キャリブレーションは、第2キャリブレーション位置で実行されるキャリブレーションであり、高い密度で設定された位置(狭い間隔で設定された位置)で更に詳細に実行されるキャリブレーションである。したがって、制御部11は、第2キャリブレーションを実行することによって、ロボット40の動作を高精度に補正できる。
【0039】
制御部11は、第2位置に移動すると仮定した場合のロボット40の状態が物体50に接触しない状態であり、関節可動域内である状態であり、かつ、特異点でない状態である場合、第2位置をキャリブレーション位置として登録する。制御部11は、第2位置をキャリブレーション位置として登録する場合、ロボット40を第2位置に移動させたときのロボット40のセンサの検出結果に基づく先端位置姿勢とロボット40のマーク46の認識結果に基づく先端位置姿勢とのそれぞれを特定する情報を複数のキャリブレーションアイテムとして生成する。制御部11は、第2位置をキャリブレーション位置として登録しない場合、新たに異なる位置の第2位置を生成し、新たな第2位置をキャリブレーション位置として登録できるか判定してもよい。制御部11は、ロボット40の関節の角度を表す数値が可動域内である場合、ロボット40の状態が関節制限でない状態であると判定してもよい。制御部11は、ロボット40の関節の角度を表す数値が可動域外である場合、ロボット40の状態が関節制限状態であると判定してもよい。
【0040】
特異点は、ロボット40の構造的にロボット40を制御できなくなる姿勢に対応する。ロボット40を動作させる軌道に特異点が含まれている場合、ロボット40は特異点付近において高速に移動(暴走)し、特異点で停止してしまう。ロボット40の特異点は、以下の(1)~(3)の3種類である。
(1)作業領域の外側限界の近くまでにロボット40を制御するときの作業領域外の点。(作業領域は、ロボット40の動作空間に対応する領域である。)
(2)作業領域内であっても、ロボットベースの真上と真下にロボット40を制御するときの点。
(3)ロボット40のアーム42の先端の関節より1つ前の関節角度がゼロ又は180度になる点(手首整列特異点)。
【0041】
制御部11は、ロボット40の状態を表す数値が特異点となる状態を表す数値に一致した場合に、ロボット40の状態が特異点の状態であると判定してもよい。制御部11は、ロボット40の状態を表す数値と特異点となる状態を表す数値との差が所定値未満である場合に、ロボット40の状態が特異点の状態であると判定してもよい。ロボット40の状態を表す数値は、例えばアーム42の関節の角度を含んでもよいし、ロボット40を駆動するモータのトルクを含んでもよい。
【0042】
以上述べてきたように、制御部11は、キャリブレーション範囲を設定し、キャリブレーション範囲の中でキャリブレーション位置を設定する。また、制御部11は、ロボット40をキャリブレーション位置に移動させたときのロボット40の先端位置姿勢を特定する情報としてキャリブレーションアイテムを生成できる。
【0043】
<<キャリブレーションの実行>>
制御部11は、マーク46の認識結果に関する先端位置姿勢のキャリブレーションアイテムが、ロボット40のセンサの検出結果に関する先端位置姿勢のキャリブレーションアイテムに一致するようにキャリブレーションを実行する。具体的に、制御部11は、キャリブレーション位置にロボット40を移動させる。制御部11は、空間情報取得部20によって、ロボット40がキャリブレーション位置に移動したときのロボット40のマーク46の認識結果を取得する。制御部11は、ロボット40のセンサに基づく先端位置姿勢のキャリブレーションアイテムに対する、マーク46の認識結果として取得された先端位置姿勢のキャリブレーションアイテムの相対位置関係を算出する。相対位置関係は、両者のキャリブレーションアイテムの間の座標の差及び角度の差に対応する。制御部11は、両者のキャリブレーションアイテムに対する相対位置関係に対応する座標の誤差及び角度の誤差がゼロ又はゼロに近くなるように(つまり、誤差が所定値未満になるように)空間情報取得部20の座標系を補正してロボット40の座標系に合わせる。このようにすることで、制御部11は、ロボット40がキャリブレーション位置に移動したときのマーク46の認識結果をロボット40のセンサで特定される先端位置姿勢に一致させることによって、相対位置関係を算出できる。なお、制御部11は、ロボット40のセンサで特定される先端位置姿勢を、マーク46の認識結果で認識される先端位置姿勢に一致させるようにしてもよい。
【0044】
制御部11は、キャリブレーションアイテムを生成することによって、キャリブレーション位置を設定できる。逆に言えば、キャリブレーション位置は、キャリブレーションアイテムを生成するためにロボット40を移動させる位置に対応する。制御部11は、キャリブレーション位置をロボット40の制御に適用することによってロボット40をキャリブレーション位置に移動させてキャリブレーションを実行できる。第1キャリブレーションアイテムを適用するキャリブレーションは、第1キャリブレーションとも称される。第2キャリブレーションアイテムを適用するキャリブレーションは、第2キャリブレーションとも称される。制御部11は、第1キャリブレーション位置をロボット40の制御に適用することによってロボット40を第1キャリブレーション位置に移動させて第1キャリブレーションを実行できる。制御部11は、第2キャリブレーション位置をロボット40の制御に適用することによってロボット40を第2キャリブレーション位置に移動させて第2キャリブレーションを実行できる。
【0045】
制御部11は、第1キャリブレーションと第2キャリブレーションとをそれぞれ実行する。制御部11は、第1キャリブレーションを実行することによって、ロボット40を少ない動作で補正できる。一方で、制御部11は、第2キャリブレーションを実行することによって、ロボット40の動作を高精度に補正できる。第1キャリブレーションは、第1キャリブレーション位置で実行されるキャリブレーションであり、低い密度で設定された位置(広い間隔で設定された位置)で簡易的に実行されるキャリブレーションである。したがって、制御部11は、第1キャリブレーションを実行することによって、ロボット40を少ない動作で補正できる。第2キャリブレーションは、第2キャリブレーション位置で実行されるキャリブレーションであり、高い密度で設定された位置(狭い間隔で設定された位置)で更に詳細に実行されるキャリブレーションである。したがって、制御部11は、第2キャリブレーションを実行することによって、ロボット40の動作を高精度に補正できる。
【0046】
また、第1キャリブレーションは、ロボット40に作業させる内容によらず必要になるキャリブレーションであってもよい。また、第2キャリブレーションは、ロボット40に作業させる内容に応じて必要になるキャリブレーションであってもよい。言い換えれば、第1キャリブレーション範囲60は、ロボット40の作業内容によらず一定の範囲であってもよいし、第2キャリブレーション範囲62は、ロボット40の作業内容に応じて異なるサイズで設定される範囲であってもよい。
【0047】
制御部11は、ロボット40による作業を開始する前にキャリブレーションを実行する。制御部11は、ロボット40による作業が可能な精度でロボット40を補正できるように、第1キャリブレーションだけを実行してもよい。
【0048】
制御部11は、第1キャリブレーションの実行後に第2キャリブレーションを実行してもよい。制御部11は、第1キャリブレーションの実行後にロボット40による作業を開始し、ロボット40による作業の実行中に第2キャリブレーションを実行してもよい。この場合、制御部11は、第1キャリブレーションアイテムを、ロボット40の作業開始前にあらかじめ生成する。また、制御部11は、第2キャリブレーションアイテムを、ロボット40の作業開始前にあらかじめ生成してもよいし、ロボット40の作業中に生成してもよい。
【0049】
具体的に、制御部11は、第1キャリブレーションを実行することによって補正した座標系において、ロボット40による作業を開始する。制御部11は、ロボット40の位置及び姿勢を、作業において定められた位置及び姿勢に制御する。制御部11は、作業において定められた位置及び姿勢にロボット40を制御したときに、マーク46を空間情報取得部20で認識することによって、画像に基づく先端位置姿勢を取得する。また、制御部11は、ロボット40のセンサの検出結果に基づいてセンサに基づく先端位置姿勢を取得する。制御部11は、画像に基づく先端位置姿勢とセンサに基づく先端位置姿勢とに基づいてキャリブレーションを実行できる。
【0050】
制御部11は、作業において定められた位置及び姿勢にロボット40を制御したときのロボット40の先端位置姿勢をキャリブレーション位置として登録してよい。制御部11は、キャリブレーション位置と、キャリブレーション位置におけるマーク46の認識結果とを特定するキャリブレーションアイテムを、第2キャリブレーションアイテムとして生成する。
【0051】
制御部11は、第1キャリブレーション位置の密度よりも第2キャリブレーション位置の密度が高くなるように、第2キャリブレーションアイテムを生成してよい。逆に言えば、制御部11は、ロボット40の作業内容に基づいて定まる第2キャリブレーション位置の密度に基づいて、第1キャリブレーションアイテムを生成してよい。具体的に、制御部11は、ロボット40の作業を開始する前に実行する第1キャリブレーションに適用する第1キャリブレーション位置の密度が第2キャリブレーション位置の密度よりも低くなるように第1キャリブレーション位置を設定してよい。第1キャリブレーション位置におけるキャリブレーションは、簡易的に実行されるキャリブレーションである。第2キャリブレーション位置におけるキャリブレーションは、更に詳細に実行されるキャリブレーションである。第1キャリブレーション位置の密度が第2キャリブレーション位置の密度よりも低くなるように第1キャリブレーション位置が設定されることによって、簡易的に実行されるキャリブレーションである第1キャリブレーションの負荷が低減され得る。
【0052】
また、制御部11は、第2キャリブレーション位置を、ロボット40の動作空間のうちロボット40が作業を実行する空間において、ロボット40の作業の精度に基づいて定まる密度で設定してよい。このようにすることで、第2キャリブレーション位置が適切な密度で設定され得る。
【0053】
(ロボット制御方法の手順例)
ロボット制御装置10の制御部11は、
図4及び
図5に例示されるフローチャートの手順を含むロボット制御方法を実行してもよい。ロボット制御方法は、制御部11を構成するプロセッサに実行させるロボット制御プログラムとして実現されてもよい。ロボット制御プログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されてよい。
【0054】
まず、制御部11は、第1キャリブレーションとして
図4に例示されるフローチャートの手順を実行する。制御部11は、ロボット40を第1キャリブレーション位置へ移動させる(ステップS1)。制御部11は、センサの検出結果に基づいてロボット40が移動した第1キャリブレーション位置におけるロボット40の状態を取得する(ステップS2)。制御部11は、ロボット40が移動した第1キャリブレーション位置におけるマーク46の認識結果を取得する(ステップS3)。
【0055】
制御部11は、第1キャリブレーション位置にロボット40を移動させたときの相対位置関係及び誤差を算出する(ステップS4)。具体的に、制御部11は、マーク46の認識結果に基づいて画像に基づく先端位置姿勢を取得し、センサの検出結果に基づいてセンサに基づく先端位置姿勢を取得する。制御部11は、画像に基づく先端位置姿勢とセンサに基づく先端位置姿勢との相対位置関係及び誤差を算出する。制御部11は、誤差として、総合キャリブレーション誤差を計算してもよい。
【0056】
制御部11は、第1キャリブレーションアイテムに含まれる全てのキャリブレーションアイテムで相対位置関係及び誤差の算出を完了したか判定する(ステップS5)。制御部11は、全てのキャリブレーションアイテムで相対位置関係及び誤差の算出を完了していない場合(ステップS5:NO)、ステップS1の手順に戻って完了していないキャリブレーションアイテムにおける動作を繰り返す。制御部11は、全てのキャリブレーションアイテムで相対位置関係及び誤差の算出を完了した場合(ステップS5:YES)、各キャリブレーションアイテムで算出した相対位置関係及び誤差に基づいて座標系を補正する(ステップS6)。具体的に、制御部11は、空間情報取得部20の座標系を補正してロボット40の座標系に合わせる。制御部11は、ステップS6の手順の実行後、
図4のフローチャートの手順の実行を終了する。
【0057】
次に、制御部11は、第2キャリブレーションとして
図5に例示されるフローチャートの手順を実行する。
図5の手順例において、第2キャリブレーションアイテムはあらかじめ設定されていないとする。
【0058】
制御部11は、ロボット40の作業を開始する(ステップS11)。制御部11は、ロボット40が作業のために移動した所定位置におけるロボット40の状態を取得する(ステップS12)。制御部11は、ロボット40が作業のために移動した所定位置においてマーク46の認識結果を取得する(ステップS13)。ステップS12及びS13において、所定位置は、ロボット40の先端位置姿勢に対応する。制御部11は、ロボット40の作業で移動する位置の一部を所定位置としてよい。制御部11は、ロボット40の作業で一時的に静止する位置を所定位置としてよい。
【0059】
制御部11は、所定位置におけるロボット40の先端位置姿勢の相対位置関係及び誤差を算出する(ステップS14)。制御部11は、誤差が閾値より大きいか判定する(ステップS15)。具体的に、制御部11は、位置及び姿勢それぞれの誤差をまとめた1つの評価値を算出し、評価値と閾値とを比較してよい。この場合、誤差が大きいほど評価値が大きい値で算出されるとする。また、制御部11は、位置の誤差の大きさ、及び、姿勢の誤差の大きさをそれぞれ閾値と比較してもよい。位置の誤差の大きさと比較する閾値は、第1閾値とも称される。姿勢の誤差の大きさと比較する閾値は、第2閾値とも称される。制御部11は、位置の誤差の大きさが第1閾値より大きいこと、又は、姿勢の誤差の大きさが第2閾値より大きいことの少なくとも一方が成立する場合に、誤差が閾値より大きいと判定してよい。制御部11は、位置の誤差の大きさが第1閾値より大きい、かつ、姿勢の誤差の大きさが第2閾値より大きい場合に、誤差が閾値より大きいと判定してよい。
【0060】
制御部11は、誤差が閾値より大きくない場合(ステップS15:NO)、つまり誤差が閾値以下である場合、第2キャリブレーション位置として所定位置を登録する(ステップS16)。具体的に、制御部11は、所定位置を第2キャリブレーション位置とする第2キャリブレーションアイテムを生成し、記憶部12に格納してよい。一方、制御部11は、誤差が閾値より大きい場合(ステップS15:YES)、所定位置を第2キャリブレーション位置として登録せずにステップS12の手順に戻り、次の所定位置においてステップS12からS16までの動作を繰り返す。
【0061】
制御部11は、ロボット40の作業が完了したか判定する(ステップS17)。制御部11は、ロボット40の作業が完了していない場合(ステップS17:NO)、ステップS12の手順に戻り、次の所定位置においてステップS12からS16までの動作を繰り返す。制御部11は、ロボット40の作業が完了した場合(ステップS17:YES)、
図5のフローチャートの手順の実行を終了する。
【0062】
(小括)
以上述べてきたように、本実施形態に係るロボット制御装置10及びロボット制御方法によれば、第1キャリブレーションと第2キャリブレーションとが分けて実行される。第1キャリブレーションにおいて設定される第1キャリブレーション位置の密度が第2キャリブレーションにおいて設定される第2キャリブレーション位置の密度よりも低く設定されることによって、第1キャリブレーションの負荷が低減され得る。その結果、第1キャリブレーションが短縮され得る。また、第1キャリブレーションを実行した後に、ロボット40の作業が開始され得る。その結果、ロボット40に作業を実行させるために必要なキャリブレーション作業が短縮され得る。
【0063】
また、本実施形態に係るロボット制御装置10及びロボット制御方法によれば、ロボット40に作業を実行させる間に第2キャリブレーションが実行され得る。また、ロボット40が作業を実行する範囲において第2キャリブレーションが実行され得る。このようにすることで、キャリブレーションが効率的に実行される。また、キャリブレーションが高精度で実行され得る。
【0064】
なお、上述したように、キャリブレーションによって空間情報取得部20の座標系とロボット40の座標系との関係が特定される。本実施形態において、空間情報取得部20の座標系とロボット40の座標系とは一致する。ここで、種々の原因によって、座標系の関係が変化することがある。座標系の関係は、ロボット40又はロボット制御システム1に異常が発生したときに変化し得る。座標系の関係は、ロボット40を停止したとき、又は、ロボット40を起動するときに変化し得る。
【0065】
この場合、制御部11は、少なくとも1回のキャリブレーションを実行したロボット40を通常に起動するとき又は異常発生から回復させるために起動するときに、キャリブレーションによって特定されていた座標系の関係が変化しているか判定してもよい。仮に、座標系の関係が変化していなければ、制御部11は、座標系の関係の補正又はキャリブレーションを実行せずにすむ。一方で、ロボット40を起動するときに座標系の関係が変化していれば、制御部11は、座標系の関係を補正できるか判定する。制御部11は、座標系の関係を補正できる場合、座標系の関係を補正し、キャリブレーションを実行しない。制御部11は、座標系の関係を補正できない場合、再度、第1キャリブレーション及び第2キャリブレーションを実行することによって、座標系の関係をあらためて特定してよい。
【0066】
言い換えれば、ロボット40が停止した時に、又はロボット40を起動するときに、第1キャリブレーション及び第2キャリブレーションの必要性について判定してもよい。また、ロボット40が停止したときは、異常停止したときに限られず、指定された作業を完了したときであってもよい。また、ロボット40を起動するときは、異常停止した後に起動するときに限られず、指定された作業を開始するときであってもよい。
【0067】
さらに、第2キャリブレーションは、作業内容が変更するごとに行ってもよい。または、第2キャリブレーションは、作業内容が変更するごとに、キャリブレーションによって特定されていた座標系の関係が変化しているか判定してもよい。仮に、座標系の関係が変化していなければ、制御部11は、座標系の関係の補正又はキャリブレーションを実行せずにすむ。一方で、ロボット40を起動するときに座標系の関係が変化していれば、制御部11は、座標系の関係を補正できるか判定する。制御部11は、座標系の関係を補正できる場合、座標系の関係を補正し、キャリブレーションを実行しない。制御部11は、座標系の関係を補正できない場合、再度、第2キャリブレーションを実行することによって、座標系の関係をあらためて特定してよい。なお、作業内容の変更時におけるキャリブレーションは、第2キャリブレーションのみ行なってもよい。
【0068】
制御部11は、キャリブレーションの再実行を判定するときに、以下に説明するように、ロボット40の座標系と空間情報取得部20の座標系との関係が変化したか判定し、再キャリブレーションが必要か判定する。
【0069】
制御部11は、ロボット40を計測位置に移動させる。制御部11は、計測位置をキャリブレーション範囲に含まれる点に設定する。計測位置は、例えばキャリブレーション位置の一部を含んでいてもよい。計測位置は、例えばキャリブレーション範囲の角の点を含んでいてもよい。計測位置は、例えば、上記で説明した第1位置または第2位置を含んでいてもよいし、第1位置および第2位置とは異なる位置を含んでいてもよい。計測位置は、前回のキャリブレーションで使用したキャリブレーション位置を含んでいてもよいし、前回のキャリブレーション位置とは異なる位置を含んでいてもよい。制御部11は、例えばキャリブレーション範囲の内部の点を計測位置として設定してもよい。制御部11は、これらの点に限られず、キャリブレーション範囲に含まれる種々の点を計測位置として設定してよい。
【0070】
制御部11は、ロボット40を計測位置に移動させたときのマーク46の認識結果を取得する。制御部11は、マーク46の認識結果に基づいてロボット40の位置を計測結果として算出する。制御部11は、計測位置の初期値と計測結果との差を算出する。制御部11は、センサの検出結果に基づいてロボット40を計測位置に移動させているので、センサに基づくロボット40の位置を算出せずに、設定した計測位置そのものと計測結果との差を算出してよい。制御部11は、ロボット40を計測位置に移動させたときのセンサの検出結果を取得し、この検出結果からセンサに基づくロボット40の位置を計測位置として算出し、算出した計測位置を計測位置の初期値として、計測結果との差を算出してもよい。
【0071】
制御部11は、計測位置の初期値と計測結果との差に基づいて座標系の関係を補正するか判定する。例えば、制御部11は、計測位置の初期値と計測結果との差が所定の閾値より大きい場合に、座標系の関係を補正すると判定する。制御部11は、複数の計測位置で計測結果を取得した場合、少なくとも1つの計測位置の初期値とその計測結果との差が所定の閾値より大きい場合に、座標系の関係を補正すると判定する。制御部11は、計測位置の初期値と計測結果との差が所定の閾値以下である場合に、座標系の関係の補正、及び、再キャリブレーションが必要ないと判定する。制御部11は、所定の閾値を適宜設定してよい。制御部11は、例えばロボット40の動作時の位置精度の仕様に基づいて、所定の閾値を設定してよい。
【0072】
制御部11は、座標系の関係を補正する場合、ロボット40の座標系に空間情報取得部20の座標系を合わせるように、空間情報取得部20の座標系を補正してよい。制御部11は、空間情報取得部20の座標系にロボット40の座標系を合わせるように、ロボット40の座標系を補正してもよい。
【0073】
具体的に、制御部11は、空間情報取得部20の座標系又はロボット40の座標系を、回転させたり並進させたりして補正してよい。制御部11は、空間情報取得部20の座標系又はロボット40の座標系を、拡大させたり縮小させたりして補正してよい。制御部11は、空間情報取得部20の座標系又はロボット40の座標系の歪みを補正してもよい。制御部11は、座標系の補正に基づいて、計測位置の補正値を算出してもよい。
【0074】
制御部11は、1つの計測位置においてロボット40の先端位置姿勢を取得し、マーク46の向きを表す回転角等の情報に基づいて、座標系を並進方向だけでなく回転方向に補正してもよい。
【0075】
本開示に係る実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は改変を行うことが可能であることに注意されたい。従って、これらの変形又は改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部等を1つに組み合わせたり、或いは分割したりすることが可能である。
【0076】
本開示に記載された構成要件の全て、及び/又は、開示された全ての方法、又は、処理の全てのステップについては、これらの特徴が相互に排他的である組合せを除き、任意の組合せで組み合わせることができる。また、本開示に記載された特徴の各々は、明示的に否定されない限り、同一の目的、同等の目的、または類似する目的のために働く代替の特徴に置換することができる。したがって、明示的に否定されない限り、開示された特徴の各々は、包括的な一連の同一、又は、均等となる特徴の一例にすぎない。
【0077】
さらに、本開示に係る実施形態は、上述した実施形態のいずれの具体的構成にも制限されるものではない。本開示に係る実施形態は、本開示に記載された全ての新規な特徴、又は、それらの組合せ、あるいは記載された全ての新規な方法、又は、処理のステップ、又は、それらの組合せに拡張することができる。
【符号の説明】
【0078】
1 ロボット制御システム
10 ロボット制御装置(11:制御部、12:記憶部)
20 空間情報取得部
40 ロボット(42:アーム、44:エンドエフェクタ、46:マーク)
50 物体
60 第1キャリブレーション範囲
62 第2キャリブレーション範囲