JP2018001393A - ロボット装置、ロボット制御方法、プログラム及び記録媒体 - Google Patents
ロボット装置、ロボット制御方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2018001393A JP2018001393A JP2016136417A JP2016136417A JP2018001393A JP 2018001393 A JP2018001393 A JP 2018001393A JP 2016136417 A JP2016136417 A JP 2016136417A JP 2016136417 A JP2016136417 A JP 2016136417A JP 2018001393 A JP2018001393 A JP 2018001393A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- teaching
- teaching point
- information
- imaging
- 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
Links
Images
Abstract
【課題】ロボットの生産作業中に教示点を補正する。【解決手段】CPU401は、ロボット200を教示点の情報に従って動作させる(動作処理)。CPU401は、動作処理にてロボット200の動作に用いた教示点が撮像用教示点である場合には、ステレオカメラ300に撮像を行わせ、ワークW1の特徴点が写り込んだ撮像画像を、ステレオカメラ300から取得する(撮像処理)。CPU401は、撮像画像からワークW1の特徴点の位置を計測する(計測処理)。CPU401は、計測処理による計測結果に基づいて、特徴点の基準に対するずれ量を求める(計算処理)。CPU401は、ロボット200の次の動作に用いる教示点の情報を、ずれ量に応じて補正する(補正処理)。CPU401は、これらの処理を、ロボット200に生産作業を行わせながら、繰り返し実行する。【選択図】図1
Description
本発明は、ロボットに生産作業を行わせる教示点を補正する技術に関する。
近年、人手による組立作業等の生産作業に代えて、ロボットによる生産作業が実現化されてきている。ロボットは、教示された複数の教示点に順次動作することにより、生産作業を実現している。
一般に、教示点を効率よく作成するために、CADデータで生成された仮想空間上の仮想ロボットを用いて、ロボットの制御装置に教示するオフライン教示が採用されている。オフライン教示により教示点を作成する際に使用されるのは、ワーク等の作業対象物の3次元形状データ、ロボットとワークの相対位置姿勢を表すデータ等である。これらのデータは、ロボットの動作精度やワークの加工・組立誤差などの様々な誤差要因を考慮できない。したがって、オフライン教示で作成した教示点(仮想教示点)のパラメータ値は、現実のロボットで必要な教示点のパラメータ値とは大きく異なる。これらの誤差要因を考慮して予め仮想教示点を個別に補正することは、極めて困難である。
そこで組立作業等の生産作業でロボットを実動作させる前に、作業対象物とエンドエフェクタに治具をそれぞれ設置し、治具間の相対位置姿勢のずれが基準内に収まるようにロボットを操作装置で手動操作して、仮想教示点を修正する方法が行われる。しかし、このような手作業で行う仮想教示点の修正では、作業時間が膨大となり、生産装置の立上リードタイムが増加する原因となっていた。
これに対し、特許文献1では、これら複数の仮想教示点を、視覚センサを用いて補正する方法が提案されている。具体的に説明すると、まず、作業対象物に予めマーカを設置しておき、ロボットに生産作業を行わせる前に、複数の仮想教示点の中から1つの仮想教示点を選択し、ロボットを選択した仮想教示点に移動させる。そして、この状態でロボットに搭載した視覚センサで作業対象物を撮像させてマーカ位置を計測し、この計測結果から仮想教示点の補正量を取得して、複数の仮想教示点の全てを同じ補正量で補正する。生産作業では、補正した教示点によりロボットを再生運転させる。
しかしながら、特許文献1に記載の方法では、作業対象物が教示を行った位置からずれて設置されるような場合や、ロボットの姿勢に応じて又はロボットの経時変化により、ロボットの手先の位置姿勢のずれ量が変化するような場合には対応できない。例えばロボットの姿勢に応じて関節のねじれ角度が変化するので、ロボットの手先の位置姿勢のずれ量が変化する。またロボットの各リンクが温度変化により伸縮すると、ロボットの手先の位置姿勢のずれ量が変化する。また、ロボットの経年劣化によっても、ロボットの手先の位置姿勢のずれ量が変化する。このようにロボットの生産作業に先立って予め教示点を補正しておく方法では、さまざまな要因でロボットの手先の位置姿勢や作業対象物の位置姿勢が変化に対応することができなかった。そのため、ロボットが生産作業で作業対象物を掴み損なうなどの作業の失敗が発生するおそれがあり、前もって教示点を補正しておく方法は、精密な作業には不向きであった。
更に、特許文献1に記載の方法では、作業対象物が時々刻々と変化する場合(例えば振動するような場合)にも対応できない。このような場合、精密な作業を実現するためには、作業対象物が静止するまで待機する必要があり、生産のタクトタイムが長くなっていた。
そこで、本発明は、ロボットの生産作業中に教示点を補正することを目的とする。
本発明のロボット装置は、生産作業を行うロボットと、前記ロボットに取り付けられた撮像部と、前記撮像部に前記生産作業の作業対象物を撮像させる姿勢を前記ロボットにとらせる撮像用教示点を複数含む、一連の複数の教示点の情報を記憶する記憶部と、前記記憶部から複数の教示点の情報を読み出し、前記ロボットに前記生産作業を行わせるよう前記ロボットの動作を制御する制御部と、を備え、前記制御部は、前記ロボットを教示点の情報に従って動作させる動作処理と、前記動作処理にて前記ロボットの動作に用いた教示点が前記撮像用教示点である場合には、前記撮像部に撮像を行わせ、前記作業対象物の特徴点が写り込んだ撮像画像を、前記撮像部から取得する撮像処理と、前記撮像画像から前記作業対象物の特徴点の位置を計測する計測処理と、前記計測処理による計測結果に基づいて、前記特徴点の基準に対するずれ量を求める計算処理と、前記ロボットの次の動作に用いる教示点の情報を、前記ずれ量に応じて補正する補正処理とを、前記ロボットに前記生産作業を行わせながら、繰り返し実行することを特徴とする。
本発明によれば、ロボットに生産作業を行わせながら、順次、次の教示点を補正していくため、ロボットによる精密な生産作業を実現することができる。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、第1実施形態に係るロボット装置の概略構成を示す説明図である。ロボット装置100は、生産ラインに配置される生産装置である。ロボット装置100は、架台150に固定されたロボット200と、ロボット200に取り付けられた撮像部であるステレオカメラ300と、ロボット200及びステレオカメラ300の動作を制御する制御装置400と、を備えている。また、ロボット装置100は、オフライン教示により教示点(仮想教示点)を生成する教示装置500と、記憶部であるNAS600と、を備えている。制御装置400、教示装置500及びNAS600は有線LAN650で接続されている。架台150の上には、生産作業の作業対象物であるワークW1を載せる置き台160が設けられている。NAS600には、教示装置500により生成された教示点の情報が記憶される。制御装置400は、NAS600から教示点の情報を読み出し、ロボット200の動作を制御する。ユーザは、ロボット200が配置された現場に居続ける必要はなく、ロボット200にトラブルが生じた場合には、遠隔地に配置された教示装置500からNAS600の教示点の情報を修正し、ロボット200のトラブルに対処することができる。
図1は、第1実施形態に係るロボット装置の概略構成を示す説明図である。ロボット装置100は、生産ラインに配置される生産装置である。ロボット装置100は、架台150に固定されたロボット200と、ロボット200に取り付けられた撮像部であるステレオカメラ300と、ロボット200及びステレオカメラ300の動作を制御する制御装置400と、を備えている。また、ロボット装置100は、オフライン教示により教示点(仮想教示点)を生成する教示装置500と、記憶部であるNAS600と、を備えている。制御装置400、教示装置500及びNAS600は有線LAN650で接続されている。架台150の上には、生産作業の作業対象物であるワークW1を載せる置き台160が設けられている。NAS600には、教示装置500により生成された教示点の情報が記憶される。制御装置400は、NAS600から教示点の情報を読み出し、ロボット200の動作を制御する。ユーザは、ロボット200が配置された現場に居続ける必要はなく、ロボット200にトラブルが生じた場合には、遠隔地に配置された教示装置500からNAS600の教示点の情報を修正し、ロボット200のトラブルに対処することができる。
ロボット200は、生産作業(例えば組立作業)を行うものであり、ロボットアーム201と、ロボットアーム201に取り付けられたエンドエフェクタとしてのロボットハンド202と、を有している。ロボットアーム201は、垂直多関節(例えば6関節)のロボットアームである。ロボットハンド202は、開閉する複数のフィンガー(ピンセット)を有しており、ワークW1を把持することができる。
ここで、ワークW1は、3つ以上の特徴点を有している。特徴点としては、ワークW1自体の形状上の特徴点、例えば穴や角であってもよいし、予め黒丸等のマーカをつけることが可能であれば、マーカを付与してもよい。
ステレオカメラ300は、被写体であるワークW1をステレオ画像で撮像するカメラ(3次元視覚センサ)であり、2つのカメラで構成されている。ステレオカメラ300は、ロボットハンド202に取り付けられている。本実施形態では、撮像部であるステレオカメラ300は、パッシブ式のステレオ法の3次元視覚センサであるが、アクティブ式の光レーザ法、アクティブステレオ法、照度差ステレオ法の3次元視覚センサでもよい。
制御装置400及び教示装置500は、それぞれコンピュータで構成されている。各装置400,500は、汎用コンピュータの構成要素を組み合わせることで構成されている。制御装置400は、ロボット制御処理と画像処理を行う機能を有している。
制御装置400には、液晶モニタ等のディスプレイで構成された表示装置411と、キーボードやマウス等で構成された入力装置421とが接続されている。表示装置411には、ロボット200の状態等が表示される。入力装置421は、ユーザがロボットアーム201のリンクパラメータ等を入力したり、緊急時にロボット200の動作を停止させる操作を行ったりする操作装置である。
また、制御装置400には、表示装置411とは別に、液晶モニタ等のディスプレイで構成された表示装置412と、入力装置421とは別に、キーボードやマウス等で構成された入力装置422とが接続されている。表示装置412には、画像処理状態や画像処理結果が表示される。入力装置422は、画像処理を行う上でユーザが各種パラメータを指定できる操作装置である。なお、表示装置411,412を、別々のディスプレイで構成したが、大画面の1つのディスプレイで構成してもよい。また、入力装置421,422についても、共通化してもよい。
また、教示装置500には、液晶モニタ等のディスプレイで構成された表示装置511と、ジョイスティックやティーチングペンダントで構成された入力装置521とが接続されている。
制御装置400は、制御部であるCPU401、メモリ402、HDD403、ロボット制御通信ボード404、画像入力ボード405、画像表示ボード406,407、USB通信ボード408及びLANボード409を有して構成されている。メモリ402を除く各構成要素は、CPU401から延びたPCIEバス450により接続されている。
CPU401は、マルチのCPU又はマルチコアのCPUであり、複数の演算を並列処理することができる。即ち、本実施形態では、CPU401は、ステレオカメラ300でワークW1を撮像して得られた画像データの画像処理と、ロボット200の動作の制御処理とをリアルタイムに並行して行う。そのため、本実施形態では、画像処理とロボット制御処理が、それぞれ異なるCPUまたはCPUコアで実行される。これにより、画像処理とロボット制御処理を互いに時間的に干渉せずに独立して行うことができ、画像処理とロボット制御処理において、互いにデータのやりとりを高速で行うことができる。
メモリ402は、RAM及びROMで構成され、CPU401に接続されている。HDD403には、後述するロボット制御方法の各工程を実行するためのプログラム410が記録されている。
ロボット制御通信ボード404は、ロボット200に接続され、ロボット200と通信を行うインタフェースである。画像入力ボード405は、ステレオカメラ300に接続され、ステレオカメラ300と通信を行うインタフェースである。画像表示ボード406は、表示装置411に接続され、表示装置411に表示させる画像データを送信するインタフェースである。画像表示ボード407は、表示装置412に接続され、表示装置412に表示させる画像データを送信するインタフェースである。USB通信ボード408は、入力装置421,422が接続され、入力装置421,422における入力データを受信するインタフェースである。LANボード409は、他の装置500,600とデータ通信を行うインタフェースであり、有線LAN650が接続されている。
教示装置500は、教示部であるCPU501、メモリ502、HDD503、LANボード504、画像表示ボード505及びUSB通信ボード506を有して構成されている。メモリ502を除く各構成要素は、CPU501から延びたPCIEバス550により接続されている。
CPU501は、演算処理を行う。メモリ502は、RAM及びROMで構成され、CPU501に接続されている。HDD503には、オフライン教示の演算処理をCPU501に行わせるためのプログラム510が記録されている。
画像表示ボード505は、表示装置511に接続され、表示装置511に表示させる画像データを送信するインタフェースである。USB通信ボード506は、入力装置521が接続され、入力装置521における入力データを受信するインタフェースである。LANボード504は、他の装置400,600とデータ通信を行うインタフェースであり、有線LAN650が接続されている。
なお、第1実施形態では、コンピュータ読み取り可能な記録媒体がHDD403,503であり、HDD403,503にプログラム410,510が格納される場合について説明するが、これに限定するものではない。プログラム410,510は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ROMや、記録ディスク、外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、USBメモリ等の不揮発性メモリ等を用いることができる。
図2は、第1実施形態に係るロボット装置の機能を示すブロック図である。図1に示す制御部としてのCPU401が、HDD403に格納されたプログラム410に従って動作することで、画像処理部461、範囲指定部462、ロボット制御部463及び教示データ演算部464として機能する。図1に示すNAS600は、教示点格納部660として機能する。図1に示す教示部としてのCPU501が、HDD503に格納されたプログラム510に従って動作することで、教示点作成部561として機能する。図1に示すHDD503は、データ格納部562として機能する。
ここで、ロボット200の手先、つまりエンドエフェクタであるロボットハンド202には、基準点であるツールセンターポイント(TCP)が設定される。TCPは、位置を表す3つのパラメータ(x,y,z)と、姿勢を表す3つのパラメータ(α,β,γ)、即ち6つのパラメータ(x,y,z,α,β,γ)で表され、タスク空間上では、1つの点としてみなすことができる。つまり、タスク空間は、これら6つの座標軸で規定された空間である。このTCPの動作目標位置として、教示点が設定される。
ロボット制御部463は、補間命令に従って教示点間を補間し、補間により得られた教示点(補間教示点)を含む複数の教示点からなる、TCPが辿る軌道データを生成する。ここで、教示点間を補間する補間方法としては、直線補間、円弧補間、Spline補間、B−Spline補間、ベジェ曲線など、種々の方法がある。
ロボット制御部463は、軌道データから各関節の関節角度に対応する角度指令に逆運動学計算に基づき変換する。そして、ロボット制御部463は、各関節角度に対応する角度値を各関節に配置した不図示のロータリーエンコーダから取得し、各関節の角度値が角度指令に近づくように、ロボット200(ロボットアーム201)の動作を制御する。
データ格納部562には、ロボットアーム201、ロボットハンド202、ステレオカメラ300、架台150、置き台160及びワークW1の大きさや配置等の3次元形状データであるCADデータが予め格納(記憶)されている。
教示点作成部561は、CADデータで仮想空間を作り出し、ユーザの操作に従い、仮想空間中の仮想ロボットアームや仮想ロボットハンドを動かし、ロボット200の軌道データの基となる補間前の教示点(仮想教示点)を作成する。
教示点作成部561への指示は、ジョイスティックやティーチングペンダント等の入力装置521により作業者であるユーザが行う。教示点作成部561は、表示装置511に仮想ロボットアームや仮想ロボットハンド、仮想作業対象物である仮想ワークを仮想空間として表示させる。そして、教示点作成部561は、ユーザの指示に従い、仮想ロボットアームや仮想ロボットハンド、仮想ワークを動かし、その結果を表示装置511に表示させる。したがって、ユーザは、表示装置511を見ながら、入力装置521を用いて、仮想ロボットアームや仮想ロボットハンドを動かすことができる。また、教示点作成部561は、ユーザの指示に従い、表示装置511に表示させる仮想空間の視点を変えたり、ポイントを拡大したりする。これにより、ユーザは詳細な位置関係を確認することができる。
教示点作成部561は、ユーザの操作に従い、生成した仮想教示点を、順次、教示点格納部660に格納させる。このようにして教示点格納部660には、教示点作成部561で作成された一連の複数の仮想教示点が記憶される。
具体的には、ユーザが入力装置521を用いて仮想ロボットアームや仮想ロボットハンドを動かす指示と、教示点の記録指示を教示点作成部561に行うことで、仮想教示点が設定される。これにより教示点作成部561は、教示点格納部660に仮想教示点の情報を記憶させる。この教示作業により、ロボット200に生産作業を行わせる始点から終点までの一連の複数の仮想教示点が作成され、複数の仮想教示点が教示点格納部660に記憶される。
教示点格納部660に記憶されている仮想教示点は、データ格納部562に格納された各種のCADデータに基づき、仮想空間上で生成した理想の教示点である。そのため、実際のロボットアーム201やロボットハンド202に、その仮想教示点を実際のロボット座標に変換して動作させただけでは、ワークW1に対して、適切な作業を行うことができないことがある。これは、以下の1〜8の誤差要因があり、作業に必要な十分な精度を確保できないためである。
1.ロボット200とワークW1との位置関係を表すデータの誤差。(例えば、ワークW1がトレイ等に置かれた機械部品等である場合、ワークW1がいつでも精密な位置関係でトレイに置かれるとは限らない。)
2.ロボット200自体の組み立て誤差。
3.ロボットアーム201自体の重量やロボットハンド202及びステレオカメラ300の重量によるロボットアーム201の撓みからくる誤差。
4.ロボットハンド202の加工、組み立てに起因する誤差。
5.ワークW1の加工誤差。
6.ロボット200の動作により生じる誤差。(例えば、内部歯車のバックラッシュに起因するヒステリシス誤差。)
7.ロボット200の動作環境温度により各部機械部品の熱膨張が発生することを起因とする温度ドリフト。
8.ロボット200の経年使用により発生する経年誤差。
2.ロボット200自体の組み立て誤差。
3.ロボットアーム201自体の重量やロボットハンド202及びステレオカメラ300の重量によるロボットアーム201の撓みからくる誤差。
4.ロボットハンド202の加工、組み立てに起因する誤差。
5.ワークW1の加工誤差。
6.ロボット200の動作により生じる誤差。(例えば、内部歯車のバックラッシュに起因するヒステリシス誤差。)
7.ロボット200の動作環境温度により各部機械部品の熱膨張が発生することを起因とする温度ドリフト。
8.ロボット200の経年使用により発生する経年誤差。
これら1〜8の誤差要因を予め正確に評価して、仮想教示点に反映することは困難であり、特に、7,8の誤差要因のように時々刻々と変化する誤差に関しては、予め仮想教示点に反映することは不可能である。
本実施形態では、上記1〜8の誤差要因に対応するため、生産作業中に、画像処理部461は、ワークW1をステレオカメラ300に撮像させる。画像処理部461は、ワークW1の特徴点が写り込んだ撮像画像を画像処理することで、実空間上のロボットハンド202を基準としたワークW1の特徴点の位置を計測する。
教示データ演算部464は、教示点の補正を行う機能ブロックである。教示データ演算部464は、仮想空間上の仮想ロボットハンドを基準とした仮想ワークの仮想特徴点の位置と、実空間上のロボットハンド202を基準としたワークW1の特徴点の位置とを比較する。教示データ演算部464は、仮想特徴点と特徴点との相対的な位置ずれ量を相殺するようにロボット200の次の仮想教示点を補正することにより、ロボット200の次の教示点を求める。補正後の教示点は、ロボット制御部463にて入力され、ロボット200の制御の目標値となる。即ち、ロボット制御部463は、ロボット200の動作に用いた教示点の情報と、補正した次の教示点の情報との間を補間し、この補間により得られた補間教示点の情報に従って、次の補正後の教示点までロボット200を動作させる。
ここで、教示点格納部660に記憶させる一連の複数の教示点には、ステレオカメラ300にワークW1を撮像させる姿勢をロボット200にとらせる撮像用教示点が複数含まれている。つまり、ロボット200を撮像用教示点に従って動作させると、ステレオカメラ300の撮像可能範囲(画角)にワークW1が入り込むことになり、ステレオカメラ300によりワークW1を撮像することができる。
ところで、ワークW1の特徴点の位置を計測する画像処理を、画像全領域に対して行うのは非効率であり、処理時間も長くなる。そこで、第1実施形態では、画像処理部461は、ワークW1が写り込んだ撮像画像として、ステレオカメラ300での撮像により得られた全範囲の画像のうち部分範囲(画像処理範囲)の画像を取得する。具体的には、画像処理部461は、ステレオカメラ300から得られた全範囲の画像中、範囲指定部462により指定された画像処理範囲の画像のみを抜き出して画像処理をする。ステレオカメラ300の撮像可能範囲よりも狭い画像処理範囲の情報(座標値)は、予め教示点格納部660に教示点と対応付けて記憶させておく。範囲指定部462は、ロボット制御部463から得られた教示点の情報と、この教示点の情報に対応付けられた画像処理範囲の情報に基づき、画像処理範囲を画像処理部461に指示する。これにより、画像処理部461は、画像処理範囲の画像をワークW1が写り込んだ撮像画像として取得することができる。
この教示点格納部660に記憶させる、撮像可能範囲よりも狭い画像処理範囲の情報(座標値)は、教示点作成部561にて仮想教示点と共に作成する。
以下、画像処理範囲の設定動作について説明する。教示点作成部561は、仮想教示点を設定したときに、仮想ロボットに搭載された仮想ロボットカメラから見える仮想画像を、表示装置511に表示させる。教示点作成部561は、ユーザによる入力装置521の操作により仮想画像の中で画像処理範囲が指定されるのを待ち受け、画像処理範囲が指定されたとき、画像処理範囲の情報(座標値)も、仮想教示点の情報と対応付けて教示点格納部660に記憶させる。
第1実施形態では、撮像部は左右2つのカメラを有するステレオカメラ300である。したがって、各カメラでワークW1を撮像することにより2つの撮像画像が得られるため、仮想画像も2つ存在することになる。即ち、1つの仮想教示点の情報に対して、2つの画像処理範囲の情報を設定することになる。
図3(a)は、ある仮想教示点に仮想ロボットを動作させたときの仮想ステレオカメラ300Iの位置姿勢を示す模式図である。図3(b)は、仮想ステレオカメラ300Iが図3(a)の姿勢のときに仮想ステレオカメラ300Iの一方の仮想カメラから見える仮想画像を示す説明図である。図3(c)は、仮想ステレオカメラ300Iが図3(a)の姿勢のときに仮想ステレオカメラ300Iの他方の仮想カメラから見える仮想画像を示す説明図である。
また、図3(d)は、仮想ステレオカメラ300Iの別の位置姿勢を示す模式図である。図3(e)は、仮想ステレオカメラ300Iが図3(d)の姿勢のときに仮想ステレオカメラ300Iの一方の仮想カメラから見える仮想画像を示す説明図である。図3(f)は、仮想ステレオカメラ300Iが図3(d)の姿勢のときに仮想ステレオカメラ300Iの他方の仮想カメラから見える仮想画像を示す説明図である。
図3(a)及び図3(d)に示すように、仮想ワークWI1に対する仮想ステレオカメラ300Iの位置姿勢が変化すると、仮想ステレオカメラ300Iの左右2つの仮想ステレオカメラから見える仮想ワークWI1の大きさ及び位置が変化する。即ち、仮想画像IR,ILに写る仮想ワークWI1の大きさ及び位置が図3(b)、図3(c)、図3(e)及び図3(f)に示すように変化する。
教示点作成部561は、ユーザによる入力装置521の操作に従い、仮想ロボットを仮想教示点に動作させるとともに、そのときに仮想ステレオカメラから見える仮想画像IR,ILを表示装置511に表示させる。ユーザは、この表示を見て、仮想ワークWI1を包含するよう、部分範囲である画像処理範囲VR,VLを設定すればよい。教示点作成部561は、仮想画像IR,ILからユーザによる入力装置521の操作により指定された部分範囲である画像処理範囲VR,VLの情報を、仮想教示点の情報と対応付けて、教示点格納部660に記憶させる。
ここで、教示点作成部561で作成される仮想画像IR,ILは、実空間と同じにはならないため、画像処理範囲VR,VLは、余裕を見て設定するのが好ましい。画像処理範囲VR,VLは、推定されるワークW1の変動量分以上の大きさで設定すればよい。例えば、推定される変動分の2倍以上広めに設定しておけばよい。
以上、画像処理部461は、画像全体を画像処理するのではなく、部分範囲の画像を処理すればよいので、大幅に画像処理時間を短縮することが可能になる。これは、実動作中のロボット200の制御にフィードバックする上で、遅れ要素を大きく削減できるため、大幅にロボット200の応答性を向上させることができる。
第1実施形態では、画像処理範囲と対応付けられた教示点が、撮像用教示点である。画像処理部461は、ロボット200を動作させたときに用いた教示点が撮像用教示点であれば、ステレオカメラ300にワークW1の撮像を行わせる。換言すれば、画像処理部461は、ロボット200を動作させたときに用いた教示点が撮像用教示点でなければ、ステレオカメラ300に撮像動作を行わせない。
本実施形態では、画像処理部461は、一定サイズの画像をステレオカメラ300から取り込み、取得した画像の中から画像処理範囲の画像を抽出する。なお、ステレオカメラ300自体に、撮像する画像処理範囲を指示してステレオカメラ300に画像処理範囲の画像のみを出力させることも可能である。この場合、ステレオカメラ300から画像処理部461に画像を転送する転送時間が削減されるため、ロボット200の高速な応答動作が可能となる。
また、本実施形態では、画像処理範囲を、ユーザが手動で指示する場合について説明したが、これに限定するものではなく、教示点作成部561がユーザに設定された仮想教示点に応じて自動的に作成してもよい。データ格納部562には、予めワークW1の大きさ等のCADデータが格納されているので、教示点作成部561は、仮想ワークが写り込む画像処理範囲を、予め設定した所定の条件で自動的に決定し、教示点格納部660に記憶させればよい。
ここで、教示点作成部561は、仮想教示点に対応付けて画像処理範囲を設定した場合、この仮想教示点に仮想ロボットを動作させたときの仮想ロボットハンドに対する仮想ワークの仮想特徴点の相対的な位置も計算し、教示点格納部660に記憶させる。この仮想特徴点の位置が、実際のステレオカメラ300で撮像したときのワークW1の位置ずれ量を算出するときの基準となる。
仮に、仮想空間上で設定した仮想教示点に従ってロボット200を動作させた場合、前述したとおりロボット200には様々な誤差要因が含まれており、ロボットハンド202の位置に数[mm]程度の誤差が生じてしまう。
本実施形態では、この誤差を解消するため、教示データ演算部464は、ステレオカメラ300の計測結果を用いてロボット200に動作させる次の教示点の情報(パラメータ値)を順次補正する。ここで、本実施形態では、NAS600に記憶されている教示点の情報を補正するのではなく、NAS600から読み出した教示点の情報を補正する。
以下、教示データ演算部464の機能について説明する。ここで、ロボットには複数の座標系が存在する。図4(a)は、座標系を説明するための図である。作業対象物であるワークW1には、3つ以上の特徴点Qi(i=0,1,2)を用意しておく。
ステレオカメラ300を用いたロボットの動作を説明するには、3つの座標系を考える必要がある。座標系Mは、ワークW1に設けた特徴点Qiの座標系(特徴点座標系)である。座標系Cは、ステレオカメラ300の座標系(カメラ座標系)である。座標系Hは、ロボット200の手先、即ちロボットハンド202の座標系(ハンド座標系)である。
本実施形態では、仮想空間を示す座標系oと実空間を示す座標系nがある。この結果、以下の6つの座標系を考える必要がある。即ち、仮想空間における仮想特徴点座標系Mo、仮想カメラ座標系Co及び仮想ハンド座標系Hoと、実空間における実特徴点座標系Mn、実カメラ座標系Cn及び実ハンド座標系Hnである。更に、特徴点Qiも同様に、仮想空間における特徴点MoQiと、実空間における特徴点MnQiが存在する。これらの特徴点MoQi,MnQiは、いずれも特徴点座標系Mである。なお、左上付き文字は、特徴点がどの座標系で記述されているかを示す。
ここで、仮想ハンド座標系Hoに対する実ハンド座標系Hnのずれ量を求めることは、このずれ量を相殺する補正量を求めることと等価である。このずれ量を相殺する補正量は、HnTHoという同次変換行列で表される。
このHnTHoは、実ハンド座標系Hnから見た任意の点を、仮想ハンド座標系Hoに変換する同次変換行列を示す。同次変換行列HnTHoは、回転3成分、並進3成分の全6自由度の移動量を示す。つまり、同次変換行列HnTHoが、今回の教示点に従うロボット200の動作で発生したずれ量を相殺する、次回の仮想教示点を補正する補正量である。CPUは、ずれ量、つまり補正量として、同次変換行列HnTHoを求める。
以下、同次変換行列HnTHoの求め方について具体的に説明する。図4(b)は、同次変換行列HnTHoの求め方を説明するための図である。まず、仮想特徴点座標系Moと仮想ハンド座標系Hoは、以下の関係が成立する。
HoQi=HoTMo MoQi (i=0,1,2) ・・・(1)
式(1)の関係は、HDD503であるデータ格納部562に記憶されており、教示点作成部561は式(1)を解くことで、予め同次変換行列HoTMoを求めておく。
式(1)の関係は、HDD503であるデータ格納部562に記憶されており、教示点作成部561は式(1)を解くことで、予め同次変換行列HoTMoを求めておく。
次に、画像処理部461は、実空間においてステレオカメラ300で撮像した撮像画像からワークW1の特徴点CnPi(i=0,1,2)の位置を求める。
カメラ−ハンド間のキャリブレーション行列をHnTCnとすると、実ハンド座標系Hnにおける各特徴点HnQiの位置は、以下のように表すことができる。
HnQi=HnTCn CnQi (i=0,1,2) ・・・(2)
なお、カメラ−ハンド間のキャリブレーション行列HnTCnを求める方法は、各種の公知の方法が知られているため、ここでは説明を省略する。画像処理部461は、式(2)の関係式から特徴点HnQiの位置を求める。
なお、カメラ−ハンド間のキャリブレーション行列HnTCnを求める方法は、各種の公知の方法が知られているため、ここでは説明を省略する。画像処理部461は、式(2)の関係式から特徴点HnQiの位置を求める。
次に、特徴点MnQiは、メカ的な拘束条件から既知であるため、以下の式(3)となる。
HnQi=HnTMn MnQi (i=0,1,2) ・・・(3)
教示データ演算部464は、画像処理部461から特徴点HnQiの位置データを取得する。ここで、特徴点座標系の各点はメカ的に精度がある程度補償できるため、Mo≒Mnと仮定することができる。したがって、HnTMn≒HnTMoと仮定できる。このことから、同次変換行列HnTHoは、以下の式(4)で求めることができる。
教示データ演算部464は、画像処理部461から特徴点HnQiの位置データを取得する。ここで、特徴点座標系の各点はメカ的に精度がある程度補償できるため、Mo≒Mnと仮定することができる。したがって、HnTMn≒HnTMoと仮定できる。このことから、同次変換行列HnTHoは、以下の式(4)で求めることができる。
HnTHo=HnTMo(HoTMo)−1 ・・・(4)
即ち教示データ演算部464は、画像処理部461から得られた特徴点HnQiの位置から同次変換行列HnTMoを求め、同次変換行列HnTMoと教示点作成部561から得られた同次変換行列HoTMoとで補正量である同次変換行列HnTHoを求める。
即ち教示データ演算部464は、画像処理部461から得られた特徴点HnQiの位置から同次変換行列HnTMoを求め、同次変換行列HnTMoと教示点作成部561から得られた同次変換行列HoTMoとで補正量である同次変換行列HnTHoを求める。
なお、補正量である同次変換行列HnTHoは、教示点毎に求めることになる。例えば、k番目の教示点に対応する補正量を、HnTHo(k)と表記する。
本実施形態では、上記の原理に基づき、ロボット200に生産作業を行わせながら、ロボット200の次の動作に用いる次の教示点を補正する動作を行う。この補正の一連の動きを詳細に説明する。
ここで、教示点作成部561は、仮想教示点の情報(データ)に対応付けて、前述の画像処理範囲の情報(データ)、および前の仮想教示点から次の仮想教示点への相対的な移動量の情報(データ)を予め作成し、教示点格納部660に記憶させておく。
図5(a)は、教示点格納部660に記憶されている、仮想教示点のデータ、画像処理範囲のデータ、及び前の仮想教示点から次の仮想教示点への相対的な移動量のデータを示す説明図である。ここで、HoPは、仮想環境で作成したロボットの仮想教示点であり、アーム等のリンクパラメータを介して、仮想ハンド座標系Hoに対応している。
教示点作成部561は、仮想空間上の教示点HoPk−1と教示点HoPkと間の関係である移動量ΔTk−1を、変換行列Ho(k−1)THo(k)を同じくリンクパラメータを介して変換して求めておく。図5(a)では、変換行列Ho(k−1)THo(k)を、変換した移動量ΔTk−1で示してある。教示点作成部561は、仮想教示点HoPk−1と対応付けて、画像処理範囲Vk−1と、移動量ΔTk−1(つまりHo(k−1)THo(k))とを教示点格納部660に記憶させておく。
そして、ロボット200に生産作業を行わせる際には、教示データ演算部454は、教示点格納部660から移動対象となる教示点の情報(画像処理範囲の情報、移動量の情報も含む)を順次、又は全ての教示点の情報を一括で読み出す。
図5(b)は、生産作業中にロボット200が動作を補正する状態を、各座標系でどのような関係にあるかを示す説明図である。HoPk−1に対応するハンド座標系は、Hn(k−1)、Mn、M0、H0(k−1)の関係から、相対移動量Hn(k−1)TH0(k−1)を求め、ΔTk−1を算出する。ロボット200が次の教示点に移動する段階で、もともとの相対移動量にΔTk−1が加わりロボット200は移動する。そして、再びHoPkに対応するハンド座標系で、Hn(k)、Mn、M0、H0(k)の関係から、相対移動量Hn(k)TH0(k)を求め、ΔTkを算出し、これを教示点がある限り繰り返す。最終教示点mに達した段階で、ΔTmは限りなく小さくなっているが、目標とする精度に達していない時は、今度は、教示点を固定して、補正を繰り返す動きをしてもよい。H0(m)、Hn(m)、Hn(m+1)、Hn(m+2)の記載は、この時の動作を示している。すなわち、補正量は、H0(m)、Mn、M0を固定したまま、Hn(m)に補正値を加え、Hn(m+1)に移動後、再度、補正量を求める。この補正量が所定の値より、小さければ終了する。大きければ、再度、補正値を加え、Hn(m+2)に移動させる事を繰り返す。このように動作させる事で、ロボット200の作動中に教示位置を修正しつつ移動させる事ができ、その結果、最終的な位置精度に収束するまでの時間を短くするメリットがある。更に、所定の精度が、得られない場合は、H0(m)、Mn、M0を固定したまま補正動作を繰り返すことで、所定の精度も得られる。
図6は、生産作業をロボット200に行わせているときのロボット制御方法を示すフローチャートであり、特に、教示点と画像処理範囲の設定の関係を示す。まず、教示データ演算部464は、始点を表すk=1の教示点HoPk−1の情報、即ち教示点HoP0の情報を選択する(S1)。教示データ演算部464は、対象となっているのが始点であるため、教示点HoP0の補正は行わず、そのまま動作に用いる教示点HnP0として、ロボット制御部463に出力する(S2)。ロボット制御部463は、教示データ演算部464から取得した教示点HoP0の情報に従ってロボット200を動作させる(S3:動作処理、動作工程)。
教示データ演算部464は、次の教示点HoPkがあるか否かを判断し(S4)、次の教示点がなければ(S4:No)、終点であるのでそのまま終了する。教示データ演算部464は、次の教示点HoPkがある場合(S4:Yes)、教示点HoPk−1の情報に対応付けられた画像処理範囲Vk−1の情報が設定されているか否かを判断する(S5)。即ち、教示データ演算部464は、教示点HoPk−1が撮像用教示点であるか否かを判断していることになる。
次に、教示データ演算部464は、画像処理範囲Vk−1の情報が設定されてない場合、即ちステップS3にてロボット200の動作に用いた教示点が撮像用教示点ではない場合には(S5:No)、撮像は行わず、ステップS11に進む。教示データ演算部464は、ステップS11において、以前に補正量(ずれ量)である同次変換行列HnTHoを求めていたか否かを判断する(S11)。教示データ演算部464は、始点にロボットを動作させたときには、以前に同次変換行列HnTHoを求めていないので(S11:No)、k=k+1とする、即ち次の教示点の情報を選択して今の教示点の情報とし(S13)、ステップS2の処理に戻る。
つまり、教示データ演算部464は、教示点HoPk−1の補正は行わず、動作に用いる教示点HnPk−1として、ロボット制御部463に出力する(S2)。ロボット制御部463は、教示データ演算部464から取得した教示点HnPk−1の情報に従ってロボット200を動作させる(S3:動作処理、動作工程)。
ここで、ステップS3において、ロボット制御部463は、前回のステップS3の処理にてロボット200の移動に用いた教示点HnPk−2の情報と、次の教示点HnPk−1の情報との間を補間する。そして、ロボット制御部463は、補間した情報(補間教示点の情報)に従って教示点HnPk−1までロボット200を動作させる。
教示データ演算部464は、次の教示点HoPkがあるか否かを判断し(S4)、次の教示点がなければ(S4:No)、終点であるのでそのまま終了する。教示データ演算部464は、次の教示点HoPkがある場合(S4:Yes)、ロボット200の動作に用いた教示点HoPk−1の情報に対応付けられた画像処理範囲Vk−1の情報が設定されているか否かを判断する(S5)。
教示データ演算部464は、画像処理範囲Vk−1の情報が設定されている場合、即ちステップS3にてロボット200の動作に用いた教示点が撮像用教示点である場合(S5:Yes)、ステレオカメラ300に撮像を行わせる(S6:撮像処理、撮像工程)。
具体的には、教示データ演算部464は、画像処理部461に撮像指令を送り、画像処理部461は、撮像指令に従ってステレオカメラ300に撮像を行わせる。そして、画像処理部461は、ステップS6において、ワークW1が写り込んだ撮像画像を、ステレオカメラ300から取得する。具体的には、画像処理部461は、画像処理範囲Vk−1の画像を取得する。
画像処理部461は、得られた撮像画像から、前述した演算によりワークW1の特徴点HnQiの位置を計測する(S7:計測処理、計測工程)。ここで、画像処理部461にて画像処理に用いられる撮像画像は、画像処理範囲Vk−1の画像である。画像処理による特徴点の抽出には、通常パターンマッチング等の手法がつかわれる。この手法は演算負荷が高いため、画素数が少ないほど演算時間を短縮することができる。そのため、画像処理範囲Vk−1の画像から特徴点を抽出する処理は、全画像から特徴点を抽出する処理よりも画素数が少ないので演算負荷が低くなる。よって、画像処理に要する演算時間を短縮することができ、ロボット200の制御応答性、即ちロボット200の稼働速度を上げることができる。
なお、以上の説明において、ワークW1が写った範囲全体を範囲指定する場合を例に説明したが、より計算速度を速くするため、特徴点毎に、画像処理範囲を設定してもよい。
教示データ演算部464は、ステップS7による計測結果に基づいて、特徴点HnQiの基準(具体的には、特徴点HoQi)に対するずれ量と等価な補正量である同次変換行列HnTHo(k−1)を求める(S8:計算処理、計算工程)。
同次変換行列HnTHo(k−1)は、ロボット200の動作に用いた教示点HnPk−1のずれ量を解消するのに必要な補正量であるが、未だロボット200の動作に使用していない次の教示点HnPkを求めるのに用いる。つまり、ずれ量が所定範囲に収束するまで教示点HnPk−1を補正する収束演算は行わず、1度だけ以前の動作に伴うずれ量に基づいて補正が反映された次の教示点HnPkを求める。
よって、教示データ演算部464は、ロボット200の次の動作に用いる教示点の情報を、同次変換行列HnTHo(k−1)に応じて補正する(S9:補正処理、補正工程)。具体的に説明すると、教示データ演算部464は、計算した同次変換行列HnTHo(k−1)と、読み出した変換行列Ho(k−1)THo(k)と、動作に用いた教示点HnPk−1とを掛け算することで、補正された次の教示点HnPkを算出する。そして、教示データ演算部464は、k=k+1とする、即ち次の教示点の情報を選択して今の教示点の情報とし(S10)、ステップS3の処理に戻る。撮像用教示点は、複数存在するため、ロボット200に生産作業を行わせながら、ステップS3〜S10の処理を繰り返し実行することになる。なお、本フローの説明では教示点の続く限りの補正にとどめたが、最終教示点においても、求める誤差範囲に達していない場合は、教示点を固定して、補正動作を繰り返し求める誤差範囲に到達した時点で、補正動作を停止してもよい。なお、この場合の画像処理範囲は、最終指定範囲で固定すればよい。
第1実施形態では、ロボット200の動作に用いた教示点を所定範囲に収束するまで補正する収束演算は行わず、補正後の教示点にロボット200を動作させながら次の教示点を補正する処理を繰り返す。これにより、ロボット200の手先は生産作業中に理想の位置姿勢に近づいていくことになる。したがって、生産作業の前に、予め全ての教示点を補正しておく必要がない。そして、置き台160に載置されたワークW1の位置姿勢や大きさに応じて、時々刻々と教示点が修正されるので、生産作業中にワークW1の位置姿勢や大きさが変化しても、精密な作業をロボット200に行わせることができる。
教示データ演算部464は、撮像を行わない場合、ステップS11の判断において、以前にずれ量(補正量)を求めていると判断したときには、ロボット200の次の動作に用いる教示点の情報を、以前に求めたずれ量(補正量)に応じて補正する(S12)。その後、ステップS10の処理に移行する。具体的に説明すると、教示データ演算部464は、読み出した変換行列Ho(k−1)THo(k)と、既に以前の補正量が反映された教示点HnPk−1とを掛け算して、次の教示点HnPkを算出する。よって、前の教示点HnPk−1を算出したときと同じ補正量で教示点HoPkを補正して次の教示点HnPkを算出したことになる。これにより、撮像処理を行わない場合であっても、以前の補正量で次に用いる教示点が補正されるので、ロボット200の動作精度を安定させることができる。
以上、第1実施形態によれば、ロボット200に生産作業を行わせながら、順次、次の教示点を補正していくため、ワークW1の位置姿勢又は大きさが生産作業中に変化しても、ロボット200による精密な生産作業を実現することができる。また、ワークW1やロボット200が振動していても、ロボット200の動作を停止させることなく、ロボット200の動作を継続させながら教示点を補正していくため、ロボット200による精密な生産作業を実現することができる。更に、ロボット200の経年劣化や、軌道が変化するために生じるヒステリシスによるロボット200の手先位置の再現精度の劣化があっても、連続的に教示点が補正されるため、ロボット200による精密な生産作業を実現することができる。
[第2実施形態]
次に、第2実施形態に係るロボット装置によるロボット制御方法について説明する。図7は、第2実施形態に係るロボット装置の機能を示すブロック図である。なお、ロボット装置のハードウェア構成は第1実施形態と同様であるため、説明を省略する。
次に、第2実施形態に係るロボット装置によるロボット制御方法について説明する。図7は、第2実施形態に係るロボット装置の機能を示すブロック図である。なお、ロボット装置のハードウェア構成は第1実施形態と同様であるため、説明を省略する。
第1実施形態では、画像処理範囲が仮想教示点に1対1の関係で対応付けられており、ロボット200の動作に用いた教示点と補正後の教示点間の補間教示点に対しては、画像処理範囲は設定せずに、そのままロボット200の動作に用いた。第2実施形態では、仮想教示点間を補間し、かつ画像処理範囲間も同様に補間する場合について説明する。第2実施形態では、図7に示すように、範囲指定部462と教示データ演算部464の間に、信号のやり取りを行うラインが入っている。
教示データ演算部464は、教示点格納部660から読み出した複数の仮想教示点を補間して新たな複数の仮想教示点の情報を生成する。更に、教示データ演算部464は、教示点格納部660から読み出した複数の仮想教示点に、連続する複数の撮像用教示点が含まれる場合には、各撮像用教示点に対応付けられた画像処理範囲の間を補間して、新たな複数の画像処理範囲の情報を生成する。
以下、具体例を挙げて説明する。図8は、教示点の補間動作と画像処理範囲の補間動作を説明するための模式図である。図8に示すように、教示点格納部660から読み出した連続する複数の撮像用教示点が教示点Pk−1,Pkであったとする。そして、教示データ演算部464が、教示点Pk−1と教示点Pkとを時系列補間して、教示点Pk−0.5を生成したものとする。なお、教示点Pk−0.5は、ロボット200の特異点とならないように設定する必要がある。
教示データ演算部464は、教示点Pk−1から教示点Pkまでの補間を線形補間で行ったとすると、各教示点Pk−1,Pkに対応付けられた画像処理範囲の間の補間も同様に線形補間で行う。ここで、教示点Pk−1には、2つの画像処理範囲VRk−1,VLk−1が対応付けられており、教示点Pkには、2つの画像処理範囲VRk,VLkが対応付けられている。したがって、教示データ演算部464は、画像処理範囲VRk−1と画像処理範囲VRkとの間を補間して、画像処理範囲VRk−0.5を生成し、画像処理範囲VLk−1と画像処理範囲VLkとの間を補間して、画像処理範囲VLk−0.5を生成する。この演算処理は、ロボット200を教示点に動作させる前に行えばよい。新たな教示点と新たな画像処理範囲を設定した後は、第1実施形態で説明した図6のフローチャートに従って動作させればよい。
画像処理範囲の設定は、仮想教示点間の補間方法と同様の補間方法で行うのが好適である。また、上記の例では、単純に教示点を2倍にする補間であるが、L倍(Lは任意の自然数)に補間することも可能である。
第2実施形態によれば、教示点作成部561で作成した仮想教示点の点数が少ない場合であっても、補間により教示点の点数とこれに対応付けられる画像処理範囲の点数を増やすことができる。これにより、ロボット200により精密な生産作業を行わせることができる。また、ユーザによる教示作業も時間短縮することができ、生産性が向上する。
なお、生産作業に先立って、毎回上述の演算を行ってもよいが、演算負荷の軽減のため、上述の演算により求めた仮想教示点間の補間教示点の情報と、補間教示点に対応付けた画像処理範囲の情報は、教示点作成部561に記憶させておくのがよい。
[変形例]
第1実施形態では、ロボット制御部463が教示点間を補間する場合について説明したが、これに限定するものではない。教示点作成部561が、仮想ロボットを用いた教示により教示点列の情報をユーザの操作に従い生成し、該教示点列の間を補間して、教示点格納部660に記憶させる複数の教示点の情報を生成してもよい。つまり、ロボット200の生産作業中に軌道を計算するのではなく、予めロボット200の軌道を計算しておいてもよい。この場合、仮想教示点の点数は非常に多くなるが、ロボット制御部463の演算負荷は軽減する。撮像用教示点に対応付ける画像処理範囲の設定作業は、第1実施形態で説明したようにユーザが行えばよい。
第1実施形態では、ロボット制御部463が教示点間を補間する場合について説明したが、これに限定するものではない。教示点作成部561が、仮想ロボットを用いた教示により教示点列の情報をユーザの操作に従い生成し、該教示点列の間を補間して、教示点格納部660に記憶させる複数の教示点の情報を生成してもよい。つまり、ロボット200の生産作業中に軌道を計算するのではなく、予めロボット200の軌道を計算しておいてもよい。この場合、仮想教示点の点数は非常に多くなるが、ロボット制御部463の演算負荷は軽減する。撮像用教示点に対応付ける画像処理範囲の設定作業は、第1実施形態で説明したようにユーザが行えばよい。
よって、ロボット200に生産作業を行わせているときには、教示点作成部561において既に補間演算を行っているので、ロボット制御部463は補間演算を行わなくてよい。したがって、ロボット制御部463(CPU401)におけるロボット200の実際の生産作業時に演算負荷が軽減するため、ロボット200の制御応答性が向上する。線形補間以外の複雑な補間を行う場合、特に有効である。
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、上述の実施形態では、制御装置400を、同一のPCIEバス上に複数のプログラムを同時に実行できる1つのコンピュータとして説明したが、制御装置400を複数のコンピュータに分けて分散処理を行わせてもよい。
また、上述の実施形態では、記憶部がNAS600である場合について説明したが、これに限定するものではなく、制御装置400又は教示装置500に含まれる記憶装置であってもよい。
100…ロボット装置、200…ロボット、300…ステレオカメラ(撮像部)、401…CPU(制御部)、501…CPU(教示部)、600…NAS(記憶部)
Claims (11)
- 生産作業を行うロボットと、
前記ロボットに取り付けられた撮像部と、
前記撮像部に前記生産作業の作業対象物を撮像させる姿勢を前記ロボットにとらせる撮像用教示点を複数含む、一連の複数の教示点の情報を記憶する記憶部と、
前記記憶部から複数の教示点の情報を読み出し、前記ロボットに前記生産作業を行わせるよう前記ロボットの動作を制御する制御部と、を備え、
前記制御部は、
前記ロボットを教示点の情報に従って動作させる動作処理と、
前記動作処理にて前記ロボットの動作に用いた教示点が前記撮像用教示点である場合には、前記撮像部に撮像を行わせ、前記作業対象物の特徴点が写り込んだ撮像画像を、前記撮像部から取得する撮像処理と、
前記撮像画像から前記作業対象物の特徴点の位置を計測する計測処理と、
前記計測処理による計測結果に基づいて、前記特徴点の基準に対するずれ量を求める計算処理と、
前記ロボットの次の動作に用いる教示点の情報を、前記ずれ量に応じて補正する補正処理とを、前記ロボットに前記生産作業を行わせながら、繰り返し実行することを特徴とするロボット装置。 - 前記制御部は、
前記動作処理にて前記ロボットの動作に用いた教示点が前記撮像用教示点ではなく、かつ以前に前記ずれ量を求めているときには、前記ロボットの次の動作に用いる教示点の情報を、以前に求めた前記ずれ量に応じて補正する処理を実行することを特徴とする請求項1に記載のロボット装置。 - 前記記憶部は、更に、前記撮像用教示点の情報と対応付けて前記撮像部の撮像可能範囲よりも狭い部分範囲の情報を記憶しており、
前記制御部は、前記撮像処理では、前記撮像画像として前記部分範囲の画像を取得することを特徴とする請求項1又は2に記載のロボット装置。 - 前記記憶部に記憶させる前記部分範囲の情報は、ユーザの操作に従って設定されることを特徴とする請求項3に記載のロボット装置。
- 前記記憶部に記憶させる複数の教示点の情報を、仮想ロボットを用いた教示によりユーザの操作に従い生成する教示部を、更に備えたことを特徴とする請求項1乃至4のいずれか1項に記載のロボット装置。
- 前記制御部は、前記動作処理にて前記ロボットの動作に用いた教示点の情報と、前記補正処理にて補正した次の教示点の情報との間を補間し、該補間した情報に従って前記ロボットを動作させることを特徴とする請求項1乃至5のいずれか1項に記載のロボット装置。
- 仮想ロボットを用いた教示により教示点列の情報をユーザの操作に従い生成し、該教示点列の間を補間して、前記記憶部に記憶させる複数の教示点の情報を生成する教示部を、更に備えたことを特徴とする請求項1乃至4のいずれか1項に記載のロボット装置。
- 前記制御部は、
前記記憶部から読み出した複数の教示点を補間して新たな複数の教示点の情報を生成し、かつ前記記憶部から読み出した複数の教示点に、連続する複数の前記撮像用教示点が含まれる場合には、前記各撮像用教示点に対応付けられた部分範囲の間を補間して、新たな複数の部分範囲の情報を生成することを特徴とする請求項3又は4に記載のロボット装置。 - 制御部が、撮像部に生産作業の作業対象物を撮像させる姿勢をロボットにとらせる撮像用教示点を複数含む、一連の複数の教示点の情報を記憶部から読み出して、前記ロボットに前記生産作業を行わせるよう前記ロボットの動作を制御するロボット制御方法であって、
前記制御部が、前記ロボットを教示点の情報に従って動作させる動作工程と、
前記制御部が、前記動作工程にて前記ロボットの動作に用いた教示点が前記撮像用教示点である場合には、前記撮像部に撮像を行わせ、前記作業対象物の特徴点が写り込んだ撮像画像を、前記撮像部から取得する撮像工程と、
前記制御部が、前記撮像画像から前記作業対象物の特徴点の位置を計測する計測工程と、
前記制御部が、前記計測工程による計測結果に基づいて、前記特徴点の基準に対するずれ量を求める計算工程と、
前記制御部が、前記ロボットの次の動作に用いる教示点の情報を、前記ずれ量に応じて補正する補正工程と、を備え、
前記動作工程、前記撮像工程、前記計測工程、前記計算工程及び前記補正工程を、前記ロボットに前記生産作業を行わせながら繰り返し実行することを特徴とするロボット制御方法。 - コンピュータに請求項9に記載のロボット制御方法の各工程を実行させるためのプログラム。
- 請求項10に記載のプログラムを記録した、コンピュータが読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016136417A JP2018001393A (ja) | 2016-07-08 | 2016-07-08 | ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016136417A JP2018001393A (ja) | 2016-07-08 | 2016-07-08 | ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018001393A true JP2018001393A (ja) | 2018-01-11 |
Family
ID=60945149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016136417A Pending JP2018001393A (ja) | 2016-07-08 | 2016-07-08 | ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018001393A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020021615A1 (ja) * | 2018-07-24 | 2020-01-30 | 株式会社Fuji | ワーク自動搬送機 |
JP2020082274A (ja) * | 2018-11-26 | 2020-06-04 | キヤノン株式会社 | 画像処理装置およびその制御方法、プログラム |
JP2020082273A (ja) * | 2018-11-26 | 2020-06-04 | キヤノン株式会社 | 画像処理装置およびその制御方法、プログラム |
JP2021070149A (ja) * | 2019-10-30 | 2021-05-06 | 株式会社Yoods | ロボット制御システム、ロボット制御装置、ロボット制御方法及びプログラム |
CN113469485A (zh) * | 2020-03-30 | 2021-10-01 | 株式会社安川电机 | 处理物制造装置、方法、系统、计算机可读存储介质 |
WO2021200438A1 (ja) * | 2020-03-31 | 2021-10-07 | ミネベアミツミ株式会社 | 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置 |
WO2022004774A1 (ja) * | 2020-07-02 | 2022-01-06 | 川崎重工業株式会社 | 表示システム及びロボットシステム |
CN114290324A (zh) * | 2020-10-07 | 2022-04-08 | 精工爱普生株式会社 | 带式输送机校准方法、机器人控制方法、机器人系统及存储介质 |
-
2016
- 2016-07-08 JP JP2016136417A patent/JP2018001393A/ja active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020021615A1 (ja) * | 2018-07-24 | 2020-01-30 | 株式会社Fuji | ワーク自動搬送機 |
CN112469533A (zh) * | 2018-07-24 | 2021-03-09 | 株式会社富士 | 工件自动输送机 |
JPWO2020021615A1 (ja) * | 2018-07-24 | 2021-05-13 | 株式会社Fuji | ワーク自動搬送機 |
JP7041747B2 (ja) | 2018-07-24 | 2022-03-24 | 株式会社Fuji | ワーク自動搬送機 |
JP2020082274A (ja) * | 2018-11-26 | 2020-06-04 | キヤノン株式会社 | 画像処理装置およびその制御方法、プログラム |
JP2020082273A (ja) * | 2018-11-26 | 2020-06-04 | キヤノン株式会社 | 画像処理装置およびその制御方法、プログラム |
JP7337495B2 (ja) | 2018-11-26 | 2023-09-04 | キヤノン株式会社 | 画像処理装置およびその制御方法、プログラム |
JP7250489B2 (ja) | 2018-11-26 | 2023-04-03 | キヤノン株式会社 | 画像処理装置およびその制御方法、プログラム |
WO2021235030A1 (ja) * | 2019-10-30 | 2021-11-25 | 株式会社Yoods | ロボット制御システム、ロボット制御装置、ロボット制御方法及びプログラム |
JP7199101B2 (ja) | 2019-10-30 | 2023-01-05 | 株式会社Yoods | ロボット制御システム、ロボット制御装置、ロボット制御方法及びプログラム |
JP2021070149A (ja) * | 2019-10-30 | 2021-05-06 | 株式会社Yoods | ロボット制御システム、ロボット制御装置、ロボット制御方法及びプログラム |
CN113469485A (zh) * | 2020-03-30 | 2021-10-01 | 株式会社安川电机 | 处理物制造装置、方法、系统、计算机可读存储介质 |
WO2021200438A1 (ja) * | 2020-03-31 | 2021-10-07 | ミネベアミツミ株式会社 | 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置 |
JP7423387B2 (ja) | 2020-03-31 | 2024-01-29 | ミネベアミツミ株式会社 | 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置 |
WO2022004774A1 (ja) * | 2020-07-02 | 2022-01-06 | 川崎重工業株式会社 | 表示システム及びロボットシステム |
JP7462046B2 (ja) | 2020-07-02 | 2024-04-04 | 川崎重工業株式会社 | ロボットシステム |
CN114290324A (zh) * | 2020-10-07 | 2022-04-08 | 精工爱普生株式会社 | 带式输送机校准方法、机器人控制方法、机器人系统及存储介质 |
CN114290324B (zh) * | 2020-10-07 | 2023-12-01 | 精工爱普生株式会社 | 带式输送机校准方法、机器人控制方法、机器人系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018001393A (ja) | ロボット装置、ロボット制御方法、プログラム及び記録媒体 | |
JP6108860B2 (ja) | ロボットシステム及びロボットシステムの制御方法 | |
JP7207851B2 (ja) | 制御方法、ロボットシステム、物品の製造方法、プログラム及び記録媒体 | |
JP4271232B2 (ja) | ロボットのオフラインプログラミングを実行するための装置、方法、プログラム及び記録媒体 | |
JP6335460B2 (ja) | ロボットシステムの制御装置及び指令値生成方法、並びにロボットシステムの制御方法 | |
JP5670416B2 (ja) | ロボットシステム表示装置 | |
JP7326911B2 (ja) | 制御システムおよび制御方法 | |
KR102280663B1 (ko) | 비전 가이드 로봇 암 교정 방법 | |
KR20200093464A (ko) | 로봇 모션 용 비전 시스템의 자동 핸드-아이 캘리브레이션을 위한 시스템 및 방법 | |
JP5949242B2 (ja) | ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム | |
JP4021413B2 (ja) | 計測装置 | |
JP6661028B2 (ja) | 作業位置補正方法 | |
JP6445092B2 (ja) | ロボットの教示のための情報を表示するロボットシステム | |
JP2015182144A (ja) | ロボットシステムおよびロボットシステムの校正方法 | |
JPWO2017064851A1 (ja) | ロボット教示方法及びロボットアーム制御装置 | |
JP2017170599A (ja) | ロボットを用いた位置決め装置 | |
JP6466661B2 (ja) | ロボットの教示点変換方法、装置、及びロボットセル | |
JPWO2018043525A1 (ja) | ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法 | |
JP3349652B2 (ja) | オフラインティーチング方法 | |
JP2017170571A (ja) | ロボット、ロボット制御装置、及びロボットシステム | |
JP2019155556A (ja) | ロボットの制御装置、ロボット、ロボットシステム、並びに、カメラの校正方法 | |
JP2019081239A (ja) | ロボットシステム | |
JPWO2007138756A1 (ja) | 回転中心点算出方法、回転軸線算出方法、プログラムの作成方法、動作方法およびロボット装置 | |
JP6410411B2 (ja) | パターンマッチング装置及びパターンマッチング方法 | |
JP5806105B2 (ja) | パラメータ補正方法および制御システム |