(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024176558
(43)【公開日】2024-12-19
(54)【発明の名称】情報処理装置、産業用装置制御システム及び情報処理方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20241212BHJP
【FI】
B25J13/08 A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023095147
(22)【出願日】2023-06-09
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】中島 寛
(72)【発明者】
【氏名】木下 拓也
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS12
3C707BS12
3C707HS27
3C707KS17
3C707KS20
3C707KS35
3C707KT01
3C707KT06
3C707KV06
3C707KW05
3C707KX10
(57)【要約】
【課題】従来よりもロボットアームなどの産業用装置の処理に必要な情報を設定するための効率を向上させることができる情報処理装置、産業用装置制御システム及び情報処理方法を提供する。
【解決手段】情報処理装置(200)は、産業用装置が扱う対象物W1を撮像する撮像部(201)からの信号に基づいて、対象物(W1)の面に表示された記号(C1、C2)を撮像した撮像情報を取得する撮像情報取得部(203)と、面の位置を示す位置情報を取得する位置情報取得部(205)と、撮像情報取得部によって取得された撮像情報に基づいて、面の方向を示す方向情報を取得する方向情報取得部(204)と、位置情報取得部によって取得された位置情報と、方向情報取得部によって取得された方向情報と、に基づいて、対象物に対する所定の処理を実行するために必要な処理情報を生成する処理情報生成部(206)と、を備えた。
【選択図】
図1
【特許請求の範囲】
【請求項1】
産業用装置が扱う対象物を撮像する撮像部からの信号に基づいて、前記対象物の面に表示された記号を撮像した撮像情報を取得する撮像情報取得部と、
前記面の位置を示す位置情報を取得する位置情報取得部と、
前記撮像情報取得部によって取得された前記撮像情報に基づいて、前記面の方向を示す方向情報を取得する方向情報取得部と、
前記位置情報取得部によって取得された前記位置情報と、前記方向情報取得部によって取得された前記方向情報と、に基づいて、前記対象物に対する所定の処理を実行するために必要な処理情報を生成する処理情報生成部と、を備えた
ことを特徴とする情報処理装置。
【請求項2】
前記記号は、2次元コードを含み、
前記撮像情報取得部は、前記2次元コードの復号によって得られる復号情報と、前記記号の外観から得られる幾何情報と、を含む撮像情報を取得する
ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記産業用装置の所定部位が前記処理情報生成部によって生成された前記処理情報に従って移動するための、前記産業用装置に対する指令値を演算する指令値演算部を備えた
ことを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記撮像情報取得部は、前記撮像部からの信号に基づいて、前記対象物の第1面に表示された第1記号を撮像した第1撮像情報と、前記第1面に隣接配置された前記対象物の第2面に表示された第2記号を撮像した第2撮像情報と、を取得し、
前記位置情報取得部は、前記第1面の位置を示す第1位置情報と、前記第2面の位置を示す第2位置情報と、を取得し、
前記方向情報取得部は、前記撮像情報取得部によって取得された前記第1撮像情報及び前記第2撮像情報に基づいて、前記第1面の方向を示す第1方向情報と前記第2面の方向を示す第2方向情報とを取得し、
前記処理情報生成部は、前記位置情報取得部によって取得された前記第1位置情報及び前記第2位置情報と、前記方向情報取得部によって取得された前記第1方向情報及び前記第2方向情報と、に基づいて得られた、前記第1面と前記第2面とによって形成される稜線に基づく処理情報を生成する
ことを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記対象物の幾何情報を取得する幾何情報取得部を備え、
前記処理情報生成部は、前記位置情報取得部によって取得された前記位置情報と、前記方向情報取得部によって取得された前記方向情報と、前記幾何情報取得部によって取得された前記対象物の前記幾何情報と、に基づいて、前記処理情報を生成する
ことを特徴とする請求項1記載の情報処理装置。
【請求項6】
前記対象物の幾何情報を取得する幾何情報取得部と、
前記対象物の前記幾何情報に基づいて、前記処理情報に従った前記産業用装置の前記所定部位の移動を制限する制限部と、を備えた
ことを特徴とする請求項3記載の情報処理装置。
【請求項7】
請求項1乃至5のいずれか1項記載の情報処理装置と、
前記処理情報生成部によって生成された前記処理情報に基づいて、前記産業用装置を制御する産業用装置制御装置と、を備えた
ことを特徴とする産業用装置制御システム。
【請求項8】
撮像情報取得部と、位置情報取得部と、方向情報取得部と、処理情報生成部と、を備えた装置が行う情報処理方法であって、
前記撮像情報取得部が、産業用装置が扱う対象物を撮像する撮像部からの信号に基づいて、前記対象物の面に表示された記号を撮像した撮像情報を取得するステップと、
前記位置情報取得部が、前記面の位置を示す位置情報を取得するステップと、
前記方向情報取得部が、前記撮像情報取得部によって取得された前記撮像情報に基づいて、前記面の方向を示す方向情報を取得するステップと、
前記処理情報生成部が、前記位置情報取得部によって取得された前記位置情報と、前記方向情報取得部によって取得された前記方向情報と、に基づいて、前記対象物に対する所定の処理を実行するために必要な処理情報を生成するステップと、を備えた
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、産業用装置制御システム及び情報処理方法に関する。
【背景技術】
【0002】
一般に、産業用の加工装置や搬送装置やロボットアームなどの産業用装置に所定の処理をさせる際、例えば予めロボットアームに対する教示を行い、ロボットアームの所定部位の軌道をロボット制御装置に記憶させる。従来、ロボットアーム(アーム)に対する教示を行う方法として、操作者がロボットアームに直接触れて外力を加えて操作することによる直接教示(リードスルー教示)と呼ばれる方法が開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されたような直接教示によるロボットアームの制御は、操作者がロボットアームを操作した際の所定部位の軌道によって、ロボットアームが作業を行う際にロボットアームの動作を制御するための指令値が決定される。このため、例えば、ロボットアームの動作に正確性が求められるワークの研磨作業等、ロボットアームの作業によっては、過剰に丁寧な直接教示になってしまえば効率が悪くなり、逆に効率を重視して雑な直接教示になってしまえばロボットアームの動作に十分な正確性が得られない場合があるという課題がある。
【0005】
本開示は、上記課題を解決するものであって、従来よりもロボットアームなどの産業用装置の処理に必要な情報を設定するための効率を向上させ、結果として産業用装置の動作の正確性を向上させることができる情報処理装置、産業用装置制御システム及び情報処理方法を提供することを目的としている。
【課題を解決するための手段】
【0006】
本開示に係る情報処理装置は、対象物を撮像する撮像部からの信号に基づいて、対象物の面に表示された記号を撮像した撮像情報を取得する撮像情報取得部と、面の位置を示す位置情報を取得する位置情報取得部と、撮像情報取得部によって取得された撮像情報に基づいて、面の方向を示す方向情報を取得する方向情報取得部と、位置情報取得部によって取得された位置情報と、方向情報取得部によって取得された方向情報と、に基づいて、対象物に対する所定の処理を実行するために必要な処理情報を生成する処理情報生成部と、を備えたことを特徴とする。
【発明の効果】
【0007】
本開示によれば、情報処理装置が対象物の面の位置と当該面の方向とに基づいて、例えばロボットアームの所定部位の軌道を決定するために必要な情報(処理情報)を生成するので、ロボットアームに対する直接教示に基づいて軌道を生成する場合などと比較して、ロボットアームなどの産業用装置の処理に必要な情報を設定するための効率を向上させ、結果として産業用装置の動作の正確性を向上させることができる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態1に係るロボット制御システムを示す概略図。
【
図2】実施の形態1に係るロボット制御システムの構成を示すブロック図。
【
図3】実施の形態1に係る指令値演算装置のハードウェア構成の一例を示す図。
【
図4】実施の形態1に係る指令値演算装置のハードウェア構成の一例を示す図。
【
図5】実施の形態1に係る指令値演算装置が行う処理を示すフローチャート。
【
図6】実施の形態1に係る指令値演算装置が、ワークの面の位置を示す位置情報及び面の方向を示す方向情報を取得するために、ワークの面に2つのマーカが表示されている例を示す図。
【
図7】実施の形態1に係る指令値演算装置が、ワークの面の位置を示す位置情報及び面の方向を示す方向情報を取得するために、ワークの面に4つのマーカが表示されている例を示す図。
【
図8】実施の形態1に係る指令値演算装置が、ワークの面の位置を示す位置情報及び面の方向を示す方向情報を取得するために、ワークの稜線に沿ってマーカが表示されている例を示す図。
【
図9】実施の形態1に係る指令値演算装置が、ロボットアームの所定部位の軌道を生成する範囲を設定するために、ワークの1つの面に2つのマーカが表示されている例を示す図。
【
図10】実施の形態1に係る指令値演算装置が、ロボットアームの所定部位の軌道を生成する範囲を設定するために、ワークの1つの面に4つのマーカが表示されている例を示す図。
【
図11】実施の形態1に係る指令値演算装置が、ロボットアームの所定部位の軌道を生成する範囲を設定するために、円筒状の面を有するワークの面にマーカが表示されている例を示す図。
【
図12】実施の形態1に係る指令値演算装置が、ロボットアームの所定部位の軌道を生成する範囲を設定するために、曲面を有するワークの面にマーカが表示されている例を示す図。
【
図13】実施の形態1に係る指令値演算装置が、ロボットアームの所定部位の軌道を生成する範囲を設定するために、球面を有するワークの面にマーカが表示されている例を示す図。
【
図14】実施の形態2に係るロボット制御システムの構成を示すブロック図。
【
図15】実施の形態2に係る指令値演算装置が行う処理を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、本開示に係る実施の形態について図面を参照しながら詳細に説明する。なお、本開示に係る産業用装置制御システムの代表的な適用例として、ロボット制御システムについて説明するが、本開示はロボットに限らず、対象物を搬送する搬送装置、対象物の加工を行う加工装置等の産業用装置に広く適用可能である。
実施の形態1.
図1は、実施の形態1に係るロボット制御システム1の構成例を示す図である。
図1に示すように、ロボット制御システム1は、ロボットアーム100と、情報処理装置としての指令値演算装置200と、ロボット制御装置300と、を備えている。
【0010】
ロボットアーム100は、互いに相対移動可能な2以上の複数のリンクと、先端に取り付けられているエンドエフェクタ104と、を有している。複数のリンクは、それぞれ特定の中心軸線を回動中心として隣接するリンク同士が相対的に回動可能になるように、互いに連結されている。例えば、ロボットアーム100は、6個の関節を有する6軸垂直多関節ロボットとして構成されている。ロボットアーム100は、1つ又は複数のリンクが移動することで、エンドエフェクタ104によって作業対象であるワークW1に対する作業を行う。
【0011】
例えば、ロボットアーム100は、エンドエフェクタ104である加工ツールを有しており、加工ツールを回転させながら複数のリンクが移動することで、ワークW1の加工作業又は研磨作業を行う。なお、ロボットアームがワークW1に対して行う作業は、少なくとも作業の一部において、ロボットアームの特定部位がワークに対して移動する工程を含む作業であればよく、例えば、ロボットアームの所定部位によってワークを溶接する作業であってもよいし、ロボットアームの所定部位によってワークに接着剤を塗布する作業であってもよいし、ロボットアームの所定部位によってワークに外力を与えることでワークを移動又は変形させる作業であってもよいし、ワークに接触して又は接触せずにワークから何らかの情報を取得する作業であってもよい。
【0012】
指令値演算装置200は、ロボットアーム100が作業対象であるワークW1に対する作業を行うための、ロボットアーム100に対する指令値を演算する。例えば、指令値演算装置200は、ロボットアーム100の所定部位が予め設定されている軌道に沿って移動するための所定部位の位置に係る指令値を演算する。
【0013】
ロボット制御装置300は、指令値演算装置200及びロボットアーム100と有線又は無線によって電気的に接続されており、指令値演算装置200によって演算された指令値に基づいて、ロボットアーム100を制御する。例えば、ロボット制御装置300は、指令値演算装置200によって演算された指令値に基づいてロボットアーム100に電力を供給することで、ロボットアーム100がワークW1に対する作業を行う際の、ロボットアーム100の所定部位の位置を制御する。
【0014】
なお、ロボット制御装置は、指令値演算装置200によって演算された指令値に基づいてロボットアームに制御信号を出力することで、ロボットアーム100を制御するように構成されていてもよい。また、このようにロボット制御装置が構成されている場合、ロボットアームは、図示しない電源装置を介して電力の供給を受けるように構成されていてもよい。また、ロボット制御装置は、指令値演算装置及びロボットアーム100と電気的に直接接続されているものに限らず、図示しない他の装置を介してこれらと間接的に接続されていてもよいし、指令値演算装置を介してロボットアームと間接的に接続されていてもよい。
【0015】
図2は、実施の形態1に係るロボット制御システム1の構成を示すブロック図である。
図2に示すように、ロボットアーム100は、各関節に対応する複数のトルクセンサ101、複数のモータ102及び複数のエンコーダ103を有している。モータ102は、ロボット制御装置300からの電力供給に基づいて、対応する関節で連結された複数のリンクを互いに回動させる。例えば、モータ102は、サーボモータによって構成されている。エンコーダ103は、対応する関節の回動角度を検知して、検知した回動角度に応じた信号を出力する。
【0016】
トルクセンサ101は、対応する関節に印加されたトルクを検知する。言い換えると、トルクセンサ101は、対応する関節に作用するトルクを検知する。トルクセンサ101は、トルクを検知すると、検知したトルクの大きさに応じた信号を出力する。例えば、トルクセンサ101は、ひずみゲージ式のトルクセンサによって構成されている。なお、トルクセンサは、静電容量式、磁歪式、光学式等、他の方式によってトルクを検知するセンサであってもよい。
【0017】
指令値演算装置200は、撮像部201と、装置位置取得部202と、撮像情報取得部203と、マーカ方向取得部204と、マーカ位置取得部205と、軌道生成部206と、指令値演算部207と、記憶部208と、入力部209と、表示部210と、を備えている。なお、軌道生成部206は、本開示をロボット制御システムに適用した場合に、対象物(ワークW1)に対する処理情報に従ってロボットアームを移動させる軌道も生成するものであり、本開示の処理情報生成部に相当する。また、上述したロボット制御装置は、本開示において、情報処理生成部によって生成された処理情報に基づいて、産業用装置を制御する産業用装置制御装置に相当する。また、指令値演算装置200の撮像部201などは、スマートグラス等の眼鏡型のウェアラブルデバイスによって構成してもよい。
【0018】
撮像部201は、ワークW1を撮像し、撮像によって得られた光学情報に応じた信号を出力する。例えば、撮像部201は、CCD(Charge Coupled Device)画像センサ、CMOS(Complementary Metal Oxide Semiconductor)画像センサ等の画像センサによって構成されている。
【0019】
装置位置取得部202は、撮像部201の位置に関する情報を取得する。例えば、装置位置取得部202は、撮像部201の位置に関する情報として、所定の3次元座標系における撮像部201の位置を示す装置位置情報と、当該3次元座標系における撮像部201の撮像方向を示す装置方向情報と、を取得する。具体的には、装置位置取得部202は、撮像部201の位置に関する情報として、ロボットアーム100の固定部(根元部)を基準とする3次元座標系における撮像部201の位置を示す装置位置情報と、当該3次元座標系における撮像部201の撮像方向を示す装置方向情報と、を取得する。
【0020】
例えば、装置位置取得部202は、ロボットアーム100の所定部位を撮像する撮像部201からの信号と、撮像部201に対するロボットアーム100の所定部位の位置を示す情報と、に基づいて装置位置情報を取得し、ロボットアーム100の所定部位を撮像する撮像部201からの信号に基づいて、装置方向情報を取得する。具体的には、装置位置取得部202は、ロボットアーム100の所定部位を撮像する撮像部201からの信号と、撮像部201からロボットアーム100の所定部位までの距離を測定する図示しない測距センサからの測距情報と、に基づいて装置位置情報を取得する。また、装置位置取得部202は、ロボットアーム100の所定部位を撮像する撮像部201からの信号と、装置位置情報と、に基づいて、装置方向情報を取得する。
【0021】
また、装置位置取得部202は、撮像部201の位置及び撮像部201の撮像方向のいずれか一方又は両方が変化した際に、撮像部201の位置の変化量及び撮像部201の撮像方向の変化量を取得する。例えば、装置位置取得部202は、撮像部201が受ける加速度の大きさを検知する図示しない加速度センサからの情報に基づいて、ロボットアーム100の固定部を基準とする3次元座標系における撮像部201の位置の変化量及び撮像部201の撮像方向の変化量を取得する。なお、以下の記載において、ロボットアーム100の固定部を基準とする3次元座標系を、基準座標系ともいう。
【0022】
撮像情報取得部203は、撮像部201からの信号に基づいて、ワークW1のいずれかの面に表示された記号としてのマーカC1、C2を撮像した撮像情報を取得する。例えば、撮像情報取得部203は、QRコード(登録商標)等の2次元コードを含むマーカC1、C2の復号によって得られる復号情報を取得するマーカ情報取得部203aと、マーカC1、C2の外観から得られる幾何情報を取得するマーカ形状取得部203bと、を有し、これら復号情報と幾何情報とを含む撮像情報を取得する。
【0023】
マーカC1、C2は、ワークW1のいずれかの面に表示されているため、ワークW1と撮像部201との相対位置に応じて、見かけの形状が変化する。マーカ形状取得部203bは、このように、ワークW1と撮像部201との相対位置に応じて変化する、マーカC1、C2の見かけの形状を含む幾何情報を取得する。マーカC1、C2は、ワークW1の所定の面に貼り付けられるラベルに印刷されたものであってもよいし、ワークW1の所定の面に直接印刷されたものであってもよいし、ワークW1の所定の面に図示しないプロジェクタ等によって投影されることで表示されるものであってもよい。あるいは、状況次第では、マーカC1、C2を手や治具を介してかざすような形で、実質的な表示状態を作る手順であってもよい。
【0024】
位置情報取得部としてのマーカ位置取得部205は、撮像部201に対するマーカC1、C2の位置を示す位置情報を取得する。具体的には、マーカ位置取得部205は、マーカC1、C2を撮像した撮像情報と、撮像部201からマーカC1、C2までの距離を測定する図示しない測距センサからの測距情報と、に基づいて、撮像部201に対するマーカC1、C2の位置を示す位置情報を取得する。なお、マーカC1、C2は、ワークW1のいずれかの面に表示されているため、マーカC1、C2の位置を示す位置情報は、マーカC1、C2が表示されているワークW1の面の位置を示す情報であるといえる。
【0025】
方向情報取得部としてのマーカ方向取得部204は、マーカC1、C2を撮像した撮像情報と、マーカC1、C2の位置を示す位置情報と、に基づいて、マーカC1、C2の方向を示す方向情報を取得する。例えば、マーカ方向取得部204は、マーカC1、C2の外観から得られる幾何情報と、マーカC1、C2の位置を示す位置情報と、に基づいて、撮像部201の撮像方向に対するマーカC1、C2の方向を示す方向情報を取得する。また、例えば、マーカ方向取得部204は、マーカC1、C2の外観から得られる幾何情報と、マーカC1、C2の位置を示す位置情報と、に基づいて、基準座標系におけるマーカC1、C2の方向を示す方向情報を取得する。なお、マーカC1、C2は、ワークW1のいずれかの面に表示されているため、マーカC1、C2の方向を示す方向情報は、マーカC1、C2が表示されているワークW1の面の方向を示す情報であるといえる。
【0026】
軌道生成部206は、マーカ位置取得部205によって取得された位置情報と、マーカ方向取得部204によって取得された方向情報と、に基づいて、ワークW1に対するロボットアーム100の所定部位の軌道を生成する。例えば、軌道生成部206は、マーカ位置取得部205によって取得された位置情報と、装置位置取得部202によって取得された装置位置情報と、に基づいて、基準座標系におけるワークW1の所定の面の位置を示す情報を取得し、マーカ方向取得部204によって取得された方向情報と、装置位置取得部202によって取得された装置方向情報と、に基づいて、基準座標系におけるワークW1の所定の面の方向を示す情報を取得し、取得したこれらの情報に基づいて、ワークW1に対するロボットアーム100の所定部位の軌道を生成する。より具体的には、例えば所定の面が複数の平面であり、これらの位置情報と方向情報に基づいて、数学的な幾何学方程式を解くことで、異なる平面と平面の交線の位置や長さを3次元の直線方程式の範囲として算出する。あるいは、数学的な幾何学方程式を解くことで、異なる平行な平面と平面の面間距離を数値で算出する。そして、これらの算出結果は、ワークW1に対してロボットアーム100が所定の処理を実行するために必要な処理情報であり、これらの処理情報が生成されることで、さらにロボットアーム100の所定部位の軌道を生成することが可能になる。
【0027】
指令値演算部207は、ロボットアーム100の所定部位が軌道生成部206によって生成された軌道に沿って移動するための、ロボットアーム100に対する指令値を演算する。例えば、指令値演算部207は、ロボットアーム100のエンドエフェクタ104が軌道生成部206によって生成された軌道に沿って移動するための、ロボットアーム100に対するエンドエフェクタ104の位置の指令値を演算する。
【0028】
記憶部208は、指令値演算装置400が各種処理を行う際に参照されるデータ、パラメータ、プログラム等の各種情報を記憶する。
【0029】
入力部209は、指令値演算装置200の外部の装置からの入力信号を受付ける。例えば、入力部209は、指令値演算装置200を操作する操作者からの入力操作に応じた入力信号を受付ける。具体的には、入力部209は、ボタン、キーボード、マウス、タッチパネル等の図示しない入力装置から、当該入力装置に対する操作者の入力操作に応じた入力信号を受付ける。
【0030】
表示部210は、指令値演算装置200が各種処理を行うことによって取得した情報、指令値演算装置200が外部の装置から取得した情報、記憶部208に記憶されている情報等を表示させる。例えば、表示部210は、可視光を透過するヘッドマウントディスプレイによって構成されている。なお、指令値演算装置200は、表示部210以外の全ての構成がヘッドマウントディスプレイと一体的に構成されていてもよいし、一部の構成がヘッドマウントディスプレイとは独立して構成されていてもよい。指令値演算装置200の各構成が行う処理の詳細については、後述する。
【0031】
ロボット制御装置300は、指令値演算部207によって演算された指令値に基づいて、ロボットアーム100を制御する。言い換えると、ロボット制御装置300は、軌道生成部206によって生成された軌道に基づいて、ロボットアーム100を制御する。ロボット制御装置300は、駆動制御部301と、記憶部302と、を備えている。
【0032】
駆動制御部301は、指令値演算部207によって演算された指令値と、ロボットアーム100のトルクセンサ101及びエンコーダ103からの信号と、に基づいて、ロボットアーム100のモータ102の動作を制御する。例えば、駆動制御部301は、指令値演算部207によって演算された指令値と、ロボットアーム100のトルクセンサ101及びエンコーダ103からの信号と、に基づいて、ロボットアーム100のモータ102に電力を供給することで、モータ102の動作を制御する。記憶部302は、ロボット制御装置300がロボットアーム100を制御する際に参照されるデータ、パラメータ、プログラム等の各種情報を記憶する。
【0033】
次に、
図3及び
図4を参照して、指令値演算装置200のハードウェア構成について説明する。
図3は、実施の形態1に係る指令値演算装置200のハードウェア構成の一例を示すブロック図であり、
図4は、実施の形態1に係る指令値演算装置200の
図3とは異なるハードウェア構成の一例を示すブロック図である。例えば、
図3に示すように、指令値演算装置200は、プロセッサ200a、メモリ200b及びI/Oポート200cを有し、メモリ200bに格納されているプログラムをプロセッサ200aが読み出して実行するように構成されている。メモリ200bは、例えば、RAM、ROM、フラッシュメモリ、EPROM、EEPROM等の、不揮発性又は揮発性の半導体メモリであってよい。また、メモリ200bは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等であってもよい。さらにメモリ200bは、HDD又はSSDであってもよい。
【0034】
また、例えば、
図4に示すように、指令値演算装置200は、専用のハードウェアである処理回路200d及びI/Oポート200cを有している。処理回路200dは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、システムLSI(Large-Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はこれらの組み合わせによって構成される。指令値演算装置200の各機能は、これらプロセッサ200a又は専用のハードウェアである処理回路200dがソフトウェア、ファームウェア又はソフトウェアとファームウェアとの組合せであるプログラムを実行することによって実現される。
【0035】
次に、
図5乃至
図13を参照して、実施の形態1に係る指令値演算装置200が行う処理の詳細について説明する。
図5は、実施の形態1に係る指令値演算装置200が行う情報処理方法に係る処理を示すフローチャートである。
【0036】
図5に示すように、処理を開始すると、指令値演算装置200は、装置位置情報及び装置方向情報を取得する(ステップST1)。例えば、この処理において、装置位置取得部202は、撮像部201の位置に関する情報として、基準座標系における撮像部201の位置を示す装置位置情報と、基準座標系における撮像部201の撮像方向を示す装置方向情報と、を取得している。
【0037】
具体的には、この処理において、装置位置取得部202は、ロボットアーム100の固定部の所定の面に表示されている図示しないマーカを撮像部201が撮像した際の、撮像部201と当該マーカとの距離を測定することにより、撮像部201に対する当該マーカが表示されている面の位置の情報を取得する。また、この処理において、装置位置取得部202は、ロボットアーム100の固定部の所定の面に表示されている図示しないマーカを撮像する撮像部201からの信号と、撮像部201に対する当該マーカが表示されている面の位置の情報と、に基づいて、撮像部201の撮像方向に対するロボットアーム100の固定部の所定の面の方向を示す情報を取得する。また、この処理において、装置位置取得部202は、これら取得した情報に基づいて、基準座標系における撮像部201の位置を示す装置位置情報と、当該3次元座標系における撮像部201の撮像方向を示す装置方向情報と、を取得する。
【0038】
また、例えば、装置位置取得部202は、装置位置情報及び装置方向情報を取得した後、当該3次元座標系における撮像部201の位置及び撮像方向の変化量を随時取得することで、任意の時刻における撮像部201の位置及び撮像方向を取得することを可能にしている。
【0039】
ステップST1の処理を行うと、指令値演算装置200は、マーカの復号情報を取得する(ステップST2)。この処理において、撮像情報取得部203は、マーカ情報取得部203aによって、撮像部201からの信号に基づいてマーカに含まれる2次元コードを復号し、復号情報を取得している。例えば、復号情報は、複数のマーカのいずれのマーカであるかを識別するための情報、ワークの複数の面のいずれの面に表示されているマーカであるかを識別するための情報、複数のワークのいずれのワークに表示されているマーカであるかを識別するための情報、ワークに表示されているマーカとロボットアームに表示されているマーカとを識別するための情報等である。
【0040】
ステップST2の処理を行うと、指令値演算装置200は、マーカの幾何情報を取得する(ステップST3)。この処理において、撮像情報取得部203は、マーカ形状取得部203bによって、撮像部201からの信号に基づいてマーカの外観から得られる幾何情報を取得している。
【0041】
ステップST3の処理を行うと、指令値演算装置200は、マーカの位置情報及びマーカの方向情報を取得する(ステップST4)。例えば、この処理において、マーカ位置取得部205は、撮像部201からマーカまでの距離の測定結果に基づいて、マーカの位置情報を取得し、マーカ方向取得部204は、マーカの位置情報及びマーカの外観から得られる幾何情報に基づいて、マーカの方向を示す方向情報を取得する。言い換えると、この処理において、マーカ位置取得部205は、撮像部201から、マーカまでの距離の測定結果に基づいて、ワークW1の面の位置情報を取得し、マーカ方向取得部204は、面の位置情報及び撮像情報に基づいて、ワークW1の面の方向を示す方向情報を取得している。
【0042】
図6は、指令値演算装置200が、ワークW1の面の位置を示す位置情報及び面の方向を示す方向情報を取得するために、ワークW1の面に2つのマーカC1、C2が表示されている例を示す図である。
図6に示すように、第1面と、第1面に隣接配置された第2面と、を有するワークW1において、第1記号としての第1マーカC1を第1面に表示させることで、指令値演算装置200は、撮像部201の位置に対する第1マーカC1の位置を示す第1位置情報と、撮像部201の撮像方向に対する第1面の方向を示す第1方向情報を取得する。
【0043】
具体的には、まず、マーカ位置取得部205は、第1マーカを撮像した第1撮像情報に基づいて、矩形の第1マーカの所定の外形線である第1線L11と、第1線L11と交差する第2線L12と、を検出する。次に、マーカ位置取得部205は、第1撮像情報に基づいて、第1線L11と第2線L12との交点である第1点P1と、第1線L11の第1点P1とは反対側の端点である第2点P2と、第2線L12の第1点P1とは反対側の端点である第3点P3と、を検出する。次に、マーカ位置取得部205は、撮像部201から各第1点P1~第3点P3までの距離の測定結果に基づいて、撮像部201に対する各第1点P1~第3点P3の位置を示す位置情報を取得する。なお、マーカ内で計測可能なマーカとしての原点位置自体は外形線上に配置できるとは限らず、その場合、計測可能な原点位置と外形線の位置関係を予め把握しておけばよい。
【0044】
次に、マーカ方向取得部204は、装置位置取得部202によって取得されたロボットアーム100の固定部に対する撮像部201の装置位置情報と、マーカ位置取得部205によって取得された各第1点P1~第3点P3の位置情報と、撮像情報取得部203によって取得された第1マーカC1の幾何情報と、に基づいて、ロボットアーム100の固定部に対する第1点P1~第3点P3を含む面の方向を示す方向情報を取得する。言い換えると、マーカ方向取得部204は、装置位置情報と、各第1点P1~第3点P3の位置情報と、第1マーカC1の幾何情報と、に基づいて、基準座標系における第1点P1~第3点P3を含む面を算出する。例えば、第1点P1~第3点P3を含む面が平面であることが予め分かっている場合、第1点P1~第3点P3を含む平面を示す式は、以下の数式(1)によって示される。
a1x+b1y+c1z+1=0 ・・・(1)
【0045】
なお、基準座標系における第1点P1~第3点P3の座標を(x,y,z)で表した場合、第1点P1の座標(x1,y1,z1)、第2点P2の座標(x2,y2,z2)、第3点P3の座標(x3,y3,z3)をそれぞれ数式(1)に代入することで、係数a1、b1、c1を求めることができる。このように、基準座標系において第1点P1~第3点P3を含む平面の式を示す情報は、撮像部201の撮像方向に対する第1面の方向を示す第1方向情報であるといえる。
【0046】
同様に、第1面と、第1面に隣接配置された第2面と、を有するワークW1において、第2記号としての第2マーカC2を第2面に表示させることで、指令値演算装置200は、第2マーカを撮像した第2撮像情報に基づいて、第2面の位置を示す第2位置情報、及び第2面の方向を示す第2方向情報を取得することができる。このように、指令値演算装置200は、ワークW1の各面に表示されているマーカを撮像した撮像情報に基づいて、ワークW1の各面の位置及び方向を算出している。言い換えると、ワークW1の各面に表示されているマーカの位置を示す位置情報及びマーカの姿勢を示す姿勢情報に基づいて、各面を基準とする座標系を取得し、当該座標系に基づいて、各面の位置及び方向を算出している。
【0047】
ステップST4の処理を行うと、指令値演算装置200は、第1位置情報、第1方向情報、第2面の位置を示す第2位置情報、第2方向情報、に基づいて、ワークW1に対するロボットアーム100の所定部の軌道を生成する(ステップST5)。例えば、この処理において、軌道生成部206は、エンドエフェクタ104が第1面に沿って移動するエンドエフェクタ104の軌道、及びエンドエフェクタ104が第2面に沿って移動するエンドエフェクタ104の軌道のいずれか一方又は両方を生成する。また、例えば、この処理において、軌道生成部206は、エンドエフェクタ104が第1面と第2面との交線である稜線E1に沿って移動する、エンドエフェクタ104の軌道を生成する。例えば、第1面と第2面とによって形成される稜線E1を示す式は、第1面を示す式と、第2面を示す式と、によって算出される。このように、数式(1)の形で与えられる第1面を示す式と第2面を示す式がマーカの位置情報と方向情報から自動的に求められ、これらの式から一般に知られている数学的な幾何学方程式を解く方法で、ワークW1の形状に関する情報である処理情報に相当する稜線E1を示す式が自動的に算出されるので、ロボットアームの処理に必要な情報(処理情報)を設定するための効率が向上する。
【0048】
ステップST5の処理を行うと、指令値演算装置200は、軌道生成部206によって生成された軌道を表示部210に表示させる(ステップST6)。この処理において、指令値演算装置200は、ロボットアーム100による作業を開始する前に、軌道生成部206によって生成されたロボットアーム100の所定部位の軌道を操作者に示すことで、操作者が軌道の妥当性を事前に評価することを可能にしている。
【0049】
ステップST6の処理を行うと、指令値演算装置200は、ロボットアーム100の所定部位が軌道生成部206によって生成された軌道に沿って移動するための、ロボットアーム100に対する指令値を演算する(ステップST7)。例えば、この処理において、指令値演算部207は、エンドエフェクタ104が軌道生成部206によって生成された軌道に沿って移動するための、ロボットアーム100に対する指令値を演算する。なお、この処理において、指令値演算部207は、ロボットアーム100の所定部位が軌道生成部206によって生成された軌道に沿って移動するための指令値に加えて、所定部位の移動速度の指令値、エンドエフェクタ104の動作速度の指令値、エンドエフェクタ104がワークW1に与える外力の指令値等を演算してもよい。
【0050】
ステップST7の処理を行うと、指令値演算装置200は、指令値演算部207によって演算された指令値をロボット制御装置300へ出力し(ステップST8)、処理を終了する。
【0051】
次に、
図6とは異なる態様でワークにマーカを表示させる場合の処理について説明する。
図7は、実施の形態1に係る指令値演算装置200が、ワークW1の面の位置を示す位置情報及び面の方向を示す方向情報を取得するために、ワークW1の面に4つのマーカが表示されている例を示す図である。具体的には、ワークW1の第1面に第1マーカC1が表示され、第1面に隣接配置された第2面に第2マーカC2が表示され、第1面及び第2面に隣接配置された第3面に第3マーカC3が表示され、第1面及び第2面に隣接配置されてかつ第3面に対向配置された第4面に第4マーカC4が表示されている。
【0052】
このように第1マーカC1~第4マーカC4が表示されていることにより、指令値演算装置200は、稜線E1の端点P4及びP5の位置を示す情報を取得することが可能になり、例えば、ロボットアーム100の所定部位が移動する際の軌道の始点及び終点の位置を設定することが可能になる。なお、指令値演算装置200は、稜線E1の端点P4及びP5の両方の位置を示す情報を取得するものに限らず、第3マーカC3及び第4マーカC4のいずれか一方のみが表示されている場合、稜線E1の端点P4及びP5のいずれか一方の位置を示す情報を取得してもよい。
【0053】
図8は、実施の形態1に係る指令値演算装置200が、ワークW1の面の位置を示す位置情報及び面の方向を示す方向情報を取得するために、ワークW1の稜線E1に沿ってマーカC1、C2が表示されている例を示す図である。具体的には、指令値演算装置200が、ワークW1の面の稜線の位置を示す位置情報及び面の稜線の方向を示す方向情報を取得するために、ワークW1の稜線E1とマーカC1、C2の所定の外形線とが一致するように、マーカC1、C2が表示されている。このようにワークW1にマーカが表示されていることにより、指令値演算装置200は、2つの面を算出してからこれらの面の交線を算出するという処理を行うことなく、マーカによって直接ワークW1の稜線E1の位置及び方向を示す情報を取得することが可能になる。
【0054】
なお、ワークW1の稜線E1と外形線とが一致するように複数のマーカが表示されている場合に限らず、ワークW1の稜線E1と外形線とが一致するように1つのマーカが表示されている場合であっても、指令値演算装置200は、稜線E1の位置及び方向を示す情報を取得することができる。ただし、ワークW1の稜線E1と外形線とが一致するように複数のマーカが表示されている場合、これら複数のマーカの各外形線に基づいて取得される稜線E1の位置及び方向の平均値、中央値等の代表値を採用することにより、ロボットアーム100の動作の正確性をさらに向上させることが可能になる。
【0055】
図9は、実施の形態1に係る指令値演算装置200が、ロボットアーム100の所定部位の軌道を生成する範囲を設定するために、ワークW1の1つの面に2つのマーカが表示されている例を示す図である。例えば、
図9に示すように、ワークW1のいずれか1つの面に第1マーカC8と第2マーカC9とが表示されている場合、指令値演算装置200は、第1マーカC8の所定の外形線である第1線L8、第1線L8の端点P8、及び第2マーカC9の頂点P9によって定義される矩形の領域A1内において、ロボットアーム100の所定部位の軌道を生成するように構成されていてもよい。なお、マーカ内で計測可能なマーカとしての原点位置は、
図9の例では第1マーカC8であれば、マーカ内に示される右上の小さな矩形の右上の頂点位置になる。
【0056】
図10は、実施の形態1に係る指令値演算装置200が、ロボットアーム100の所定部位の軌道を生成する範囲を設定するために、ワークW1の1つの面に4つのマーカが表示されている例を示す図である。例えば、
図10に示すように、ワークW1のいずれか1つの面に第1マーカC10、第2マーカC11、第3マーカC12及び第4マーカC13が表示されている場合、指令値演算装置200は、第1マーカC10の所定の外形線である第1線L10、第2マーカC11の所定の外形線である第2線L11、第3マーカC12の所定の外形線である第3線L12、及び第4マーカC13の所定の外形線である第4線L13によって定義される領域A2内において、ロボットアーム100の所定部位の軌道を生成するように構成されていてもよい。
【0057】
なお、指令値演算装置200が、面の位置を示す位置情報及び面の方向を示す方向情報を取得する対象となるワークの面は、平面であるものに限定されない。例えば、ワークの面は、曲面であってもよい。
図11は、実施の形態1に係る指令値演算装置200が、ロボットアーム100の所定部位の軌道を生成する範囲を設定するために、円筒状の面を有するワークW2の面にマーカが表示されている例を示す図である。例えば、
図11に示すように、ワークW2の円筒状の面の稜線E2と、各マーカの所定の外形線又は外形線の端点と、が一致するように、複数のマーカが表示されている場合、指令値演算装置200は、これら複数のマーカの外形線又は外形線の端点P15、P16、P17によって定義される円形状の稜線E2に沿って、ロボットアーム100の所定部位の軌道を生成するように構成されていてもよい。
【0058】
図12は、実施の形態1に係る指令値演算装置200が、ロボットアーム100の所定部位の軌道を生成する範囲を設定するために、曲面を有するワークW3の面にマーカが表示されている例を示す図である。例えば、
図12に示すように、ワークW3の曲線状の稜線E3と、各マーカの所定の外形線又は外形線の端点と、が一致するように、十分な数のマーカが表示されている場合、指令値演算装置200は、これら複数のマーカの外形線又は外形線の端点によって定義される曲線状の稜線E3に沿って、ロボットアーム100の所定部位の軌道を生成するように構成されていてもよい。
【0059】
図13は、実施の形態1に係る指令値演算装置200が、ロボットアーム100の所定部位の軌道を生成する範囲を設定するために、球面を有するワークW4の面にマーカが表示されている例を示す図である。例えば、
図13に示すように、ワークW4の曲面と、各マーカの所定の頂点(外形線の端点)と、が一致するように、十分な数のマーカが表示されている場合、指令値演算装置200は、これら複数の頂点によって定義される曲面F1に沿って、ロボットアーム100の所定部位の軌道を生成するように構成されていてもよい。曲面F1が球面である場合、当該曲面F1は、4つのマーカを表示させることで特定が可能になる。
【0060】
以上、実施の形態1に係るロボット制御システム1は、ワークW1を撮像する撮像部201からの信号に基づいて、ワークW1の面に表示されたマーカを撮像した撮像情報を取得する撮像情報取得部203と、面の位置を示す位置情報を取得するマーカ位置取得部205と、撮像情報取得部203によって取得された撮像情報に基づいて、面の方向を示す方向情報を取得するマーカ方向取得部204と、マーカ位置取得部205によって取得された位置情報と、マーカ方向取得部204によって取得された方向情報と、に基づいて、ワークW1に対するロボットアーム100の所定部位の軌道を生成する軌道生成部206と、を備えている。
【0061】
このように構成されていることにより、ロボット制御システム1は、ワークW1の面の位置と当該面の方向とに基づいてロボットアーム100の所定部位の軌道を生成するので、ロボットアームに対する直接教示に基づいて軌道を生成する場合と比較して、ロボットアームの動作の正確性を向上させることができる。
【0062】
なお、実施の形態1に係る指令値演算装置200は、マーカ位置取得部205によって取得された位置情報と、マーカ方向取得部204によって取得された方向情報と、に基づいて、ワークに対するロボットアーム100の所定部位の軌道を生成するように構成されているが、ロボットアーム100の所定部位の軌道を、他の情報に基づいて生成するように構成されていてもよい。例えば、指令値演算装置は、マーカ位置取得部205によって取得された位置情報、及びマーカ方向取得部204によって取得された方向情報に加えて、予め設定されている各種条件、操作者による数値入力、外部の装置から取得したパラメータ及び外部の装置から取得したプログラム等、他の情報に基づいてロボットアーム100の所定部位の軌道を生成するように構成されていてもよいし、ロボットアーム100の所定部位の軌道の一部を、操作者による直接教示に基づいて生成するように構成されていてもよい。また、指令値演算装置は、図示しない外部の装置、又は操作者による入力部209への入力操作によって、ワークの標準的あるいは原則的な寸法、位置、形状等を示す幾何情報を取得する幾何情報取得部を備え、軌道生成部は、位置情報取得部によって取得された位置情報と、方向情報取得部によって取得された方向情報と、幾何情報取得部によって取得されたワークの幾何情報と、に基づいて、軌道を生成するように構成されていてもよく、軌道の一部を位置情報取得部によって取得された位置情報と、方向情報取得部によって取得された方向情報と、に基づいて生成し、軌道の他の部分を幾何情報取得部によって取得されたワークの幾何情報に基づいて生成するように構成されていてもよい。
【0063】
実施の形態2.
次に、実施の形態2に係るロボット制御システムについて説明する。実施の形態2に係るロボット制御システムは、実施の形態1に係るロボット制御システム1に対し、指令値演算装置の一部の構成が異なるが、他の構成については実施の形態1に係るロボット制御システム1と同様であり、実施の形態1に係るロボット制御システム1と同様の構成については、同一の名称又は同一の符号を付して説明を省略する。
【0064】
図14は、実施の形態2に係るロボット制御システムの構成を示すブロック図である。
図14に示すように、実施の形態2に係るロボット制御システムは、ロボットアーム100と、情報処理装置としての指令値演算装置400と、ロボット制御装置300と、を備えている指令値演算装置400は、撮像部201と、装置位置取得部202と、撮像情報取得部203と、マーカ方向取得部204と、マーカ位置取得部205と、軌道生成部206と、対象物情報取得部211と、制限部としての判定部212と、指令値演算部207と、記憶部208と、入力部209と、表示部210と、を備えている。
【0065】
対象物情報取得部211は、ワークの幾何情報を取得する。例えば、対象物情報取得部211は、図示しない外部の装置、又は操作者による入力部209への入力操作によって、ワークの標準的あるいは原則的な寸法、位置、形状等を示す幾何情報を取得する。判定部212は、対象物情報取得部211によって取得されたワークの幾何情報に基づいて、軌道生成部206によって生成された軌道に沿ったロボットアームの所定部位の移動を制限する。例えば、判定部212は、軌道生成部206によって生成された軌道と、対象物情報取得部211によって取得されたワークの幾何情報と、を比較し、軌道生成部206によって生成された軌道の問題の有無を判定する。言い換えると、判定部212は、軌道生成部206によって生成された軌道と、対象物情報取得部211によって取得されたワークの幾何情報と、を比較し、軌道生成部206によって生成された軌道の妥当性を判定する。
【0066】
例えば、判定部212は、軌道生成部206によって生成された軌道と、対象物情報取得部211によって取得されたワークの幾何情報と、を比較し、軌道生成部206によって生成された軌道に基づいて特定されるワークの幾何情報と、対象物情報取得部211によって取得されたワークの幾何情報と、の差が、予め設定されている閾値以上であるか否かを判定し、当該差が閾値以上である場合、指令値演算部207によって演算される指令値の出力を制限することで、軌道生成部206によって生成された軌道に沿ったロボットアームの所定部位の移動を制限する。
【0067】
図15は、実施の形態2に係る指令値演算装置400が行う情報処理方法に係る処理を示すフローチャートである。ステップST6の処理を行うと、指令値演算装置400は、ワークの幾何情報である対象物情報を取得する(ステップST9)。ステップST9の処理を行うと、指令値演算装置400は、ステップST9で取得したワークの幾何情報に基づいて、ステップST6で生成した軌道に問題があるか否かを判定する(ステップST10)。ステップST10の処理において、軌道に問題があると判定された場合(ステップST10のYES)、指令値演算装置400は、ロボットアーム100を制御するための指令値をロボット制御装置300へ出力せずに処理を終了する。また、ステップST10の処理において、軌道に問題がないと判定された場合(ステップST10のNO)、指令値演算装置400は、ステップST7の処理を行う。このように、実施の形態2に係る指令値演算装置400は、対象物情報取得部211によって取得されたワークの幾何情報に基づいて、生成された軌道の妥当性を判定することができるので、妥当性が低い軌道に基づいてロボットアーム100が制御されることを抑制し、ロボットアーム100の動作の正確性を向上させることが可能になる。
【0068】
以上、実施の形態2に係るロボット制御システムは、トルク計測値から接触力に起因する他軸誤差ならびにロボットアームの質量に起因する他軸誤差を除去した値を用いて力制御を実施するため、作業中にロボットアームが大きく姿勢を変える作業(例えば、ロボットアームの手先に設置したリュータを金属板の縁に倣わせて面取りする作業等)の場合でも、ロボットアームは正確な力を作業対象に印加することができ、加工品質を改善することができる。
【0069】
なお、本開示は、各実施の形態の自由な組合せ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0070】
1 :ロボット制御システム
100 :ロボットアーム
101 :トルクセンサ
102 :モータ
103 :エンコーダ
104 :エンドエフェクタ
200 :指令値演算装置(情報処理装置)
201 :撮像部
202 :装置位置取得部
203 :撮像情報取得部
203a :マーカ情報取得部
203b :マーカ形状取得部
204 :マーカ方向取得部(方向情報取得部)
205 :マーカ位置取得部(位置情報取得部)
206 :軌道生成部(処理情報生成部)
207 :指令値演算部
208 :記憶部
209 :入力部
210 :表示部
211 :対象物情報取得部(幾何情報取得部)
212 :判定部(制限部)
300 :ロボット制御装置(産業用装置制御装置)
301 :駆動制御部
302 :記憶部
400 :指令値演算装置
C1 :マーカ(第1マーカ)
C2 :マーカ(第2マーカ)
W1 :ワーク