JP2017030070A - ロボット動作計算装置、ロボット動作計算方法及びコンピュータプログラム - Google Patents

ロボット動作計算装置、ロボット動作計算方法及びコンピュータプログラム Download PDF

Info

Publication number
JP2017030070A
JP2017030070A JP2015150479A JP2015150479A JP2017030070A JP 2017030070 A JP2017030070 A JP 2017030070A JP 2015150479 A JP2015150479 A JP 2015150479A JP 2015150479 A JP2015150479 A JP 2015150479A JP 2017030070 A JP2017030070 A JP 2017030070A
Authority
JP
Japan
Prior art keywords
robot
work
information
motion
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
Application number
JP2015150479A
Other languages
English (en)
Inventor
伸明 ▲桑▼原
伸明 ▲桑▼原
Nobuaki Kuwahara
小林 一彦
Kazuhiko Kobayashi
一彦 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015150479A priority Critical patent/JP2017030070A/ja
Publication of JP2017030070A publication Critical patent/JP2017030070A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】ロボットの動作効率をより向上させることができるロボット動作計算装置を提供する。
【解決手段】ロボットが行う作業の情報である作業情報と、ロボットの情報である作業条件情報とに基づいて、ロボットの第1の作業の動作情報を計算する第1の計算手段と、計算された第1の作業の動作情報に基づいて、ロボットに第1の作業を実行させる第1の実行手段と、ロボットが前記第1の作業の動作を実行する間にロボットが備える撮像手段が撮像した画像情報を入力する画像入力手段と、作業情報及び作業条件情報と、画像情報とに基づいて、第1の作業に後続する第2の作業の動作情報を計算する第2の計算手段と、計算された第2の作業の動作情報に基づいて、ロボットに第2の作業を実行させる第2の実行手段と、を備える。
【選択図】図1

Description

本発明は、ロボットの動作を自動で計算するためのロボット動作計算装置、ロボット動作計算方法及びそのコンピュータプログラムに関する。
生産や組み立ての効率化を図るために、ロボットアーム等のロボットの動作を自動で計算するシステムが近年注目を集めている。このロボット動作計算において、例えば6軸アームのロボットなどに代表されるように、高い自由度を備えたロボットの場合、その動作を探索するための空間(解空間)が膨大となる。このため、その空間から最適な動作を見いだすための計算に長時間を要してしまう。
これに対して、下記特許文献1は、中間計算値をオフラインのテーブルデータとして記憶しておくことによって、ロボットの動作軌道(軌跡)の計算の高速化を図る技術を開示する。この特許文献1においては、ロボットのカメラが常に注視点方向を向いた状態での目標への円弧軌道を計算し、カメラをこの円弧軌道に沿って移動させる。
特開2011−41990号公報
しかしながら、特許文献1に記載の構成では、ロボットの動作の計算を高速化することはできても、ロボットの作業の効率については考慮されていない。すなわち、特許文献1では、撮像対象物を撮像する機能を備えるロボットにおいて、撮像対象物までの距離を維持したまま、かつ、撮像するためのカメラが注視点方向を向いた状態で、移動先座標までの円弧軌道を計算する。このように特許文献1では、撮像動作に関する制御は行えるが、他のロボット作業の動作を考慮した制御ではない。
このため、特許文献1では、ロボット動作中に撮像装置による撮像動作を考慮したロボットの動作を算出することができない。その結果、ワークのピッキング作業等の動作と、撮像装置よる撮像のためにロボットの動作とを、共に実行しようとすると、ロボットの動作時間が全体として増大してしまう。したがって、ロボットを用いた作業の生産性が低下するという課題があった。
本発明は、上記の課題に鑑み、撮像を伴うロボットの動作計算において、ロボットの動作効率をより向上させることができるロボット動作計算装置、ロボット動作計算方法及びコンピュータプログラムを提供することを目的とする。
(1)上記課題を解決するために、本願発明に係るロボット動作計算装置の一態様は、ロボットが行う作業の情報を作業情報として保持し、前記ロボットの情報を作業条件情報として保持する保持手段と、前記保持手段に保持される前記作業情報及び前記作業条件情報に基づいて、前記ロボットの第1の作業の動作情報を計算する第1の計算手段と、前記第1の計算手段によって計算された第1の作業の動作情報に基づいて、前記ロボットに前記第1の作業を実行させる第1の実行手段と、前記ロボットが前記第1の作業の動作を実行する間に前記ロボットが備える撮像手段が撮像した画像情報を入力する画像入力手段と、前記作業情報及び前記作業条件情報と、前記画像情報とに基づいて、前記第1の作業に後続する第2の作業の動作情報を計算する第2の計算手段と、前記第2の計算手段により計算された前記第2の作業の動作情報に基づいて、前記ロボットに前記第2の作業を実行させる第2の実行手段と、を備える。
(2)また、本発明の他の一態様に係るロボット動作計算方法は、保持手段に保持される、ロボットが行う作業の情報である作業情報と、前記ロボットの情報である作業条件情報と、に基づいて、前記ロボットの第1の作業の動作情報を計算するステップと、計算された前記ロボットの第1の作業の動作情報に基づいて、前記ロボットに前記第1の作業を実行させるステップと、前記ロボットが前記第1の作業の動作を実行する間に前記ロボットが備える撮像手段が撮像した画像情報を入力するステップと、前記作業情報及び前記作業条件情報と、前記画像情報と、に基づいて、前記第1の作業に後続する第2の作業の動作情報を計算するステップと、計算された前記ロボットの第2の作業の動作情報に基づいて、前記ロボットに前記第2の作業を実行させるステップと、を含む。
本発明によれば、撮像を伴うロボットの動作計算において、ロボットの動作効率をより向上させることができる。
本発明の実施形態1及び実施形態2におけるロボット動作計算装置の全体構成の一例を示す図である。 実施形態1及び実施形態2におけるロボットの動作の動作例を説明する図である。 ロボットが行う撮像作業の情報が記載されたXMLファイルの内容の一例を示す図である。 ロボットが行う作業の情報が記載されたXMLファイルの内容の一例を示す図である。 ロボットの身体の情報が記載されたXMLファイルの内容の一例を示す図である。 作業条件保持部が保持するロボットの身体の構成要素を説明する図である。 撮像装置の情報が記載されたXMLファイルの内容の一例を示す図である。 ロボットの周囲にある障害物の情報が記載されたXMLファイルの内容の一例を示す図である。 ロボットの動作の計算方法を示す図である。 ロボットの動作の計算方法の具体的な計算の手順を説明する図である。 ロボットの動作の情報(動作経路)の計算方法の結果を説明する図である。 実施形態1及び実施形態2のロボット動作計算装置の動作を示すフローチャートである。 実施形態2のロボット動作計算装置が実行するロボットの動作計算の方法を示す図である。 実施形態3のロボット動作計算システムの全体構成を示す図である。 実施形態3の動作例を示す図である。 実施形態3のロボットが行う作業の情報が記載されたXMLファイルの内容の一例を示す図である。 実施形態で説明した各部のハードウエア構成の一例を示す図である。
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
実施形態1
図1は、本発明の実施形態1に係るロボット動作計算装置101の構成図を示す。
実施形態1において、ロボット動作計算装置101は、作業情報保持部(保持手段)102と、作業条件保持部(保持手段)103と、作業管理部104と、動作計算部105と、動作情報保持部106と、第1動作実行部107と、第2動作実行部108と、第1撮像情報入力部109と、第1撮像情報処理部110と、を備える。
作業情報保持部102は、ロボットを動作させる作業と撮像装置を用いる作業の情報を、作業情報として保持する。
作業条件保持部103は、ロボットの情報及びロボットの周囲の環境の情報を、作業条件(作業条件情報)として保持する。
作業管理部104は、作業情報保持部102及び作業条件保持部103から、ロボットの動作計算に必要な情報を抽出する。
動作計算部105は、作業管理部104が抽出した情報に基づいて、ロボットの動作の情報を計算する。
動作情報保持部106は、動作計算部105が計算したロボットの動作情報を保持する。
第1動作実行部107は、動作情報保持部106から出力される撮像装置210での撮像を含むロボットの動作情報でロボットを動作させる。
第2動作実行部108は、動作情報保持部106が出力するロボットの動作情報でロボットを動作させる。
第1撮像情報入力部109は、ロボットの動作中に撮像装置からの画像を入力する。
第1撮像情報処理部110は、第1撮像情報入力部109が入力する画像を処理し、処理した情報を動作計算部105に対して出力する。
(動作例)
まず、図1に示すロボット動作計算装置101が、ロボットを制御してどのような動作を行わせることができるのか説明する。その後、その動作と関連づけながら、ロボット動作計算装置101の各部を説明していく。
本実施形態1のロボット動作計算装置101は、例えば、ロボットに、第1の部品を組み付ける作業と、第2の部品を組み付ける為の組み付け先を撮像する作業とを、1つのロボット動作で行えるように、当該ロボットの動作を計算して求める。
具体的には、ロボット動作計算装置101は、例えば、以下のような処理を実行する。
まず、第1の部品組み付け時に撮像された第2の部品の組み付け先の画像を処理し、第2の部品の組み付け先の情報を抽出する。次に、抽出した第2の部品の組み付け先の情報から、第2の部品を組み付ける動作を生成する。このような処理によって、ロボットの作業に必要な時間を短縮することができる。
図2は、本実施形態1のロボット動作計算装置101を適用してロボットに複数の動作を共に行わせた作業例について説明する図である。
図2の例においては、ロボット204は複数のリンクを備えたアーム型ロボットであり、先端部分にハンド205、及び、撮像装置210が備えられている。ロボット204は、典型的には、ハンドビジョンセンサ付きのロボットハンドでよい。また、ロボット204には、ロボット204のリンク部分に座標系203が定義されている。
図2の例においては、座標系203は、図2に向かって左方向にX座標軸、上方向にZ座標軸、図面奥行き方向にY座標軸が設定されている。
撮像装置210は、撮像装置210を制御する撮像制御装置201に接続されている。同様にロボット204は、ロボットを制御するロボット制御装置202に接続されている。
撮像制御装置201、ロボット制御装置202はそれぞれロボット動作計算装置101に接続されている。
撮像制御装置201及びロボット制御装置202は、ロボット動作計算装置101が計算して求めたロボット動作情報に基づいて、撮像装置210及びロボット204をそれぞれ動作させる。
図2の例においては、ロボット204は、部品206を把持しており、部品206を組み付ける対象である部品212に組み付けようとしている。組み付け対象である部品212は作業台211の上に配置されている。作業台211の上には、さらに、他の部品209が配置されている。
組み付け相手の部品212には部品206を組み付ける為の組み付け先207が存在する。組み付け先207は、部品206を組み付ける場所であり、凹部、孔部、穴部等の形状をなしている場合もあるが、単なる場所、部位であってもよい。以下、本文では、組み付け先とは、このような場所や部位を意味する。
また、組み付け相手の部品212には、さらに部品209を組み付ける為の組み付け先208も存在する。
ロボット204は、ロボット制御装置202の制御を受けて、ロボット動作計算装置101が計算して求めたロボット動作情報に基づき動作を行う。具体的には、ロボット204は、例えば、予め撮像装置210によって計測された組み付け先207の位置姿勢に基づき、現在ハンド205で把持している部品206を組み付ける動作を行うものとする。
このとき、ロボット204は、把持している部品206を組み付け先207に移動させる間に、部品209の組み付け先である組み付け先208を撮像装置210によって撮像する。そして、撮像装置210が撮像した画像は、撮像制御装置201を介して、ロボット動作計算装置101に送出される。ロボット動作計算装置101は、撮像画像に基づき、部品209の組み付け先208の位置姿勢を算出する。算出した組み付け先208の位置姿勢は、ロボット204が部品209を組み付ける動作を行う際に利用される。
ロボット204は、部品206を組み付け先207に組み付けた後、部品209を把持し、部品209の組み付け先208に部品209を組み付ける。この際、先に求めた組み付け先208の位置姿勢が利用される。
先に述べたように、ここで利用される組み付け先208の位置姿勢は、ロボット204が部品206を組み付ける動作中に撮像装置210が撮像した画像に基づき、事前にロボット動作計算装置101が算出している。
このため、ロボット204が、組み付け先208を撮像する動作を別途行わなくとも、ロボット動作計算装置101は、次の部品209の組み付け先208の位置姿勢を求めることができる。その結果、ロボット204は、部品209の組み付け先208を撮像する動作を経由する動作よりも、短い移動経路の動作によって、部品209を組み付け先208へ組み付けることができる。
このように、本実施形態1においては、部品206の組み付け動作中に、部品209の組み付け先208の撮像を行うことによって、部品209を組み付け先208に組み付けるまでのロボットの動作時間を短縮できる。つまり、ロボット204の動作の効率が向上し、例えば生産ライン等に本実施形態1を適用すれば生産性の向上が期待される。
こうして、実施形態1は、複数の作業とビジョンセンサの特性と、ロボットの特性に基づいて、ビジョンセンサの位置姿勢を考慮してロボットの動作軌道の生成を行っている。
次に、図2で説明したロボットの動作と関連づけながら、図1の例で示したロボット動作計算装置101の各部位について、詳細に説明する。
(作業情報保持部102)
作業情報保持部102は、ロボットが行う作業の情報を作業情報として保持している。
作業情報保持部102が保持しているロボットが行う作業情報には、作業の属性、作業の名前、作業を行う為に完了していなくてはならない先行する他の作業、及び、作業の属性に依存する各種項目が含まれてよい。
図3は、作業情報保持部102が保持するロボットが行う作業の情報の詳細の一例を示す。
図3の例に示すように、ロボット204が行う作業の情報は、例えば、XML(Extensible Markup Language)形式の電子ファイルを用いて、作業情報保持部102において保持してよい。
図3の例に示すように、ロボット204が実行する1つの作業は、タグ<task>で囲まれる項目に記載される。具体的には、タグ<task>から、タグ</task>の間に、1つの作業の情報が記載される。このようなXMLファイル中の各タグ中の情報の記載によって、ロボット204が行う作業の情報が保持されている。
1つの作業は、作業の属性を表す項目として、タグ<type>を有する。
タグ<type>で囲まれる項目では、ロボット204を動作させる作業には「manipulation」と記載されており、また撮像を行う作業には「vision」と記載されている。これによって、ロボット204の作業の種類を表しているが、タグ<type>で囲まれる項目には、他の種類の記述を記載してもよい。
また、ロボット204の1つの作業には、それぞれ名前がつけられており、タグ<name>で囲まれる項目に、当該名前が記載される。
それぞれの作業を行う為に完了していなくてはならない他の作業について、タグ<requirement>で囲まれる項目に当該他の作業の名前が記載される。タグ<requirement>の情報により、作業の依存関係が明確になり、作業の順番を決定することができる。
次に、作業のタグ<type>で囲まれた項目に記載される作業属性ごと固有(特有)の項目について説明する。まず、図3を参照し、タグ<type>に「vision」と記載された、撮像の作業特有の項目について説明する。
タグ<type>に「vision」と記載されている場合は、撮像の作業を意味し、この場合、撮像する時の撮像装置の位置姿勢に関する項目が記載されている。
具体的には、この位置姿勢のうち、位置については、タグ<xyz>に記載され、姿勢については、タグ<rpy>に記載される。
次に、図4を参照し、図4に示されている作業の記載中に含まれる特有の項目について説明する。
図4において、作業のタグ<type>に「manipulation」と記載されている。タグ<type>に「manipulation」と記載された場合は、ロボット204を動作させる作業を意味する。
タグ<start>には、ロボット204の作業開始時の関節の状態と、作業開始時のハンド205の状態又は行うべき動作が記載されている。また、タグ<joint>はロボット204の各関節の名前と、その関節の角度が記載される。
本実施形態1においては、ロボット204は例えば6軸のロボットであるため、タグ<joint>は6個存在している。図4の例においては、各関節の名前はタグ<name>に記載され、各関節の関節角の値はタグ<value>に記載される。また、タグ<hand>には、ハンド205の状態や動作の内容が記載される。
本実施形態1においては、ロボット動作計算装置101及びロボット制御装置202は、ハンド205がタグ<hand>に書かれた状態(又は動作)となるように、ロボット204及びハンド205を制御する。
例えば、図4の作業名task1のタグ<start>中のタグ<hand>に記載された、「grab parts1」は、部品206の把持をする動作を意味するものとする。
次に、タグ<end>には、ロボット204の作業終了時の関節の状態や動作と、ハンド205の状態や動作が記載されてよい。
図4の例における作業名task1においては、タグ<end>中のタグ<hand>には、「release parts1」と記載されており、これは、部品206(parts1)を組み付け先207に組み付ける動作を意味する。ここで、組み付け先207の位置姿勢は、撮像装置210を用いた作業名task0で既に計測されている。
作業名task1では、タグ<end>中のタグ<data requirement>で作業名task0が指定されており、作業名task0で既に計測された組み付け先207の位置姿勢をdataとして呼び出される。
なお、作業名task1は、タグ<requirement>で指定されているので、task1を実行する際には、既に実行が完了している。
このように、呼び出された組み付け先207の位置姿勢のデータを元にして、例えば、逆運動学に基づいて、ロボット204のそれぞれの関節の関節角を導出することができる。
導出されたロボット204の各間関節の関節角は、タグ<end>のタグ<joint>中に記載(挿入)される。このような動作によって、組み付け先の位置姿勢のデータを取得しつつ、ロボット204を制御することができる。
(作業条件保持部103)
図1に戻り、次に、作業条件保持部103について、図5〜8を参照して詳細に説明する。
作業条件保持部103は、ロボット204が作業を行う為の環境の情報を、作業条件(作業条件情報)として保持している。具体的には、ロボット204の身体に関する情報と、撮像装置210の情報と、ロボット204の周囲に存在する障害物の情報であり、その他の情報が含まれていてもよい。
作業条件保持部103も、作業情報保持部102と同様に、例えば、XML形式の電子ファイルを用いて上記情報を保持している。以下、作業条件保持部103が保持する情報について説明する。
まず図5、6に基づき、作業条件保持部103が保持しているロボット204の身体の情報について説明する。図5は、ロボット204の身体の情報を記載しているXML形式の電子ファイルの記載内容を示す。図5の例に示すように、ロボット204の身体の情報は、タグ<robot>に記載される。
タグ<robot>内のタグ<name>にはロボットの名前が記載される。図5の例においては、ロボットの名前が「204」と記載されている。また、図5の例に示すように、ロボット204の身体に関する情報は、リンク(タグ<link>)とジョイント(タグ<joint>)で記載されてよい。
図6は、ロボット204のリンクとジョイントの関係を説明する図である。
ロボット204は6軸のアーム型のロボットなので、リンクが7個備えており、ジョイントは6個備えられている。
説明を簡略化するため、以下、図6中の2個のリンクと、そのリンク同士を連結する1個のジョイント1つを例として用いて説明する。
図6において、ロボット204は、リンク601と、リンク603と、を備えている。
また、ロボット204は、リンク601とリンク603とを連結するジョイント602を備えている。ここで、リンク601、リンク603の名前はそれぞれ例えば「l1」「l2」であり、ジョイント602の名前は例えば「j1」である。本実施形態1においては、ジョイント602は例えば座標系203のZ軸回りに回転する。
次に、図6で説明したリンク601、リンク603と、ジョイント602の関係が、作業条件(作業条件情報)としてどのように記載されるか、図5を用いて説明する。リンク601とリンク603と、ジョイント602とに関して、それぞれタグ<link>、タグ<joint>に、それらに関する情報が記載される。
図6では、タグ<link>が、主としてリンクの形状情報を記載する。また、タグ<link>中には、当該タグが表すリンクの名前であるタグ<name>が記載される。図5の例では、名前「l1」が<name>l1</name>のように記載されている。本実施形態1におけるリンク「l1」(リンク601)は円柱形状なので、その形状がタグ<cylinder>中に記載される。
タグ<cylinder>中においては、リンクl1(リンク601)の形状である円柱の長さの情報をタグ<length>に、その円柱の半径の情報をタグ<radius>に、それぞれ記載する。図5の例では、リンクl1(リンク601)の長さの情報として「0.2」が記載され、リンクl1(リンク601)の半径の情報として「0.2」が記載されている。リンク「l2」についても、同様に記載がされる。
図5において、ジョイント「j1」の情報は、タグ<joint>に記載されている。
タグ<joint>中には、タグ<type>が記載され、図5の例においては当該タグ<type>にはその値として「revolute」と記載されている。
これは、ジョイントj1(ジョイント602)がリンク同士を回転させるジョイントであることを表す。タグ<joint>中のタグ<parent link>は親リンクを、タグ<child link>は子リンクを、それぞれ表す。これらのタグによって、連結するリンク及びそれらの主従関係が表されている。
図5において、親リンクは「l1」(リンク601)、子リンクは「l2」(リンク603)である。
タグ<joint>中のタグ<axis>は、ジョイントj1(ジョイント602)の回転軸を表している。
図5の例においては、<joint>z</joint>と記載することによって、ジョイント「j1」がz軸回りに回転するものであることを表している。
また、タグ<joint>中のタグ<xyz>は座標系203上のジョイントの位置(座標)を表している。図5の例においては、X、Y、Z座標値が、それぞれ、「0」、「0」、「0.3」であるとされている。
作業条件保持部103は、撮像装置210の情報も保持している。撮像装置210の情報も、上記リンク601等と同様に、例えばXML形式の電子ファイルに記載することによって保持されている。
図7は、撮像装置210の情報の内容の一例を示す。図7の例に示すように、撮像装置210の情報は、タグ<camera>に、その内容が記載される。まず、撮像装置210の名前は、タグ<camera>中のタグ<name>に記載してよい。図7の例においては、撮像装置210の名前は「camera1」と記載されている。
また、タグ<camera>中のタグ<type>には、撮像装置210が、2次元の画像を取得可能な撮像装置なのか、距離情報も含めた3次元の情報を取得可能な撮像装置なのか識別する情報が記載される。図7の例においては、当該タグ<type>に「2D」と記載され、撮像装置210が2次元の画像を取得可能であることが記載されている。
以下、タグ<camera>中に記載してよい各種タグを説明する。タグ<focal_length>には、撮像装置210のレンズの焦点距離(例えば5mm)が記載される。タグ<format>には、撮像装置210のCCDやCMOSなどの撮像素子のサイズ(例えば、5.0mm×4.0mm)が記載される。タグ<resolution>には撮像装置210の撮像素子の解像度(例えば、1024×768)が記載される。タグ<f_number>には、撮像装置210のレンズのF値(例えばF1.4)が記載される。
タグ<link>には、撮像装置210が取り付けられているロボット204の構成要素が記載されている。図7の例においては、取り付けられている構成として、ロボット204のリンク「l6」であることが記載されている。タグ<xyz>には、撮像装置210が取り付けられているロボット204の構成要素から当該撮像装置210までの相対位置が記載される。図7の例においては、撮像装置210が取り付けられているリンク「l6」の座標系上における、当該撮像装置210までの相対位置(例えば、X座標、Y座標、Z座標が、「0」、「0」、「0.3」)が記載される。
同様に、タグ<rpy>には、リンク「l6」の座標系上における、撮像装置210の相対姿勢(例えば、X座標、Y座標、Z座標における姿勢(向き)が「0」、「0」、「0」)が記載される。
次に、図8に基づき、作業条件保持部103が保持する、ロボット204の周囲にある障害物に関する情報を説明する。この情報も、XML形式の電子ファイルに記載することによって保持されてよい。
図8は、障害物の情報が記載されたXML形式の電子ファイルの内容を示す。図8の例においては、障害物はタグ<obstacle>に1つの障害物が記載される。障害物の名前はタグ<obstacle>中に記載されるタグ<name>に記載する。
以下、タグ<obstacle>中に記載される各種タグについて説明する。障害物の形状の種類を、タグ<type>に記載する。図8の例では障害物の形状の種類は箱型であり、タグ<type>に「box」と記載される。
また、タグ<size>には、当該箱型の障害物の3辺の大きさを記載する。図8の例では、「0.8」「0.8」「0.4」が記載されている。また、タグ<xyz>には、座標系203上の当該箱型の障害物の位置を記載する。図8の例では、X座標、Y座標、Z座標のそれぞれが、「0.3」「0.2」「0.1」と記載されている。また、タグ<rpy>には、座標系203上における当該箱型の障害物の姿勢が記載される。図8の例では、当該障害物の姿勢が、X座標、Y座標、Z座標について、「0」「0」「0」と記載されている。
以上、作業条件保持部103は、上記の情報(作業条件情報)を保持するが、用途や条件に応じて他の様々な作業条件に関する情報(温度、湿度、気圧、照度、風速等)をさらに保持してよい。なお、本実施形態1では、各種の情報をXML形式の電子ファイルで保持する例を説明するが、他のファイル形式で保持してもよい。以下、後述する実施形態2、3でも同様である。
図1に戻り、作業管理部104は、作業情報保持部102に保持されている作業情報を参照し、作業の依存関係から、優先する作業を決定し、作業の情報を動作計算部105に出力する。さらに、作業管理部104は、作業条件保持部103からロボット204の身体に関する情報と、撮像装置210の情報と、ロボット204の周囲にある障害物の情報と、を読み出し、動作計算部105に出力する。
図1の例において、動作計算部105は、作業管理部104から入力された作業情報と、ロボット204の身体に関する情報と、撮像装置210の情報と、ロボット204の周囲にある障害物の情報を取得する。動作計算部105は、これらの情報に基づいて、ロボット204の動作を計算し、動作情報保持部106に出力する。
また、第1撮像情報処理部110は、撮像装置210が撮像した組み付け先の位置姿勢の情報を、動作計算部105に対して出力する。動作計算部105は、第1撮像情報処理部110から、組み付け先の位置姿勢の情報が供給された場合は、この組み付け先の位置姿勢情報も用いてロボット204の動作を計算する。
(ロボット204の動作計算)
ロボット204の動作の計算方法について、図9〜図12を用いて詳細に述べる。
図9は、ロボット204のジョイントの角度の範囲を模式的に縦軸及び横軸にとって定義した角度空間901、及び、角度空間901と関連付けられたロボット204の作業中の姿勢、を示す。
本実施形態1においては、ロボット204は6軸のロボットである為、ジョイントの角度の空間(角度空間901)は、本来6次元の空間になるが、ここでは説明をわかりやすくする為に2次元の空間として説明する。
図9(a)は、作業の開始時におけるロボット204の姿勢908を示す。ロボット204のジョイント902の角度が、角度空間901の縦軸に割り当てて構成されている。この際、当該ジョイント902の名称は、「j3」である。また、同様にロボット204のジョイント903の角度が、角度空間901の横軸に割り当てて構成されている。この際、当該ジョイント903の名称は、「j5」である。
図9(a)の例に示すように、ロボット204の作業開始時の姿勢908を、角度空間901上で表したものが点904(start点)で示される。図9(c)の例に示すように、ロボット204の作業終了時の姿勢910を、角度空間901上で表したものが点905(end点)で示される。
同様に、図9(b)に示すように、ロボット204の撮像装置210の撮像時の姿勢909を、角度空間901上で表したものが撮像角度姿勢906(vision点)で示される。
また、図9の例においては、ジョイントの角度空間901上で、障害物911が示されている。この障害物911は、ロボット204が障害物又はロボット204自身と干渉するようなジョイントの角度範囲(姿勢)で表されている。
図9に示すように、ロボット204の動作を計算するということは、障害物911を避け撮像装置210が撮像する時の姿勢906(vision点)を経由し作業開始時の姿勢904(start点)から作業終了時の姿勢905(end点)まで到達する動作経路907を導き出すことである。
次に、動作計算部105が動作経路907を導出する方法について、図10、11を用いて説明する。動作経路907を導く方法は、ロボット204の経路探索の手法として、例えばRRT(Rapidly exploring Random Trees)を用いて実行されてよいが、他の探索手法を用いて実行してもよい。
RRTを用いることで、複雑な経路であっても短時間で経路を探索することがきる。図10は、図9の例で示した角度空間901を用いて、RRTのアルゴリズムを説明する図である。図10の例において、RRTを実行するためには、まず図9の例で示したジョイントの角度の空間901中で、ランダムに点1001を定める。
次に、点1001の最も近傍である点1003を、これまで作成した経路(木構造)上から選択する。図10の例においては、ある程度探索が進み、始点である作業開始時の姿勢904から解(の候補)である木構造が構成されている様子を示す。ここで、予め設定された長さで、点1003から、ランダムに定めた点1001の方向に線を延ばし、延ばした線を線1004とする。図10の例に示すように、この延ばした線1004の先の頂点が点1002である。
新たに作成した線1004及びその頂点である点1002が、いずれかの障害物911と干渉していない場合は、線1004及び点1002を作業開始時の姿勢904から伸びる木構造データの一部に加える。他方、新たに作成した線1004及びその頂点である点1002が、いずれかの障害物911と干渉している場合は、木構造データは変化させない。再び、ランダムに点を定める処理からここまでの処理を繰り返す。
このようにして、作業開始時の姿勢904から、求める経路(の候補)である木構造を順次延ばしていく。
以上のような動作を、動作計算部105は、撮像装置210で撮像する時の撮像時の姿勢906、作業開始時の姿勢904、作業終了時の姿勢905、のそれぞれの点から繰り返し行う。動作計算部105は、作成している木構造データが、他のいずれかの姿勢に到達した場合、処理を終了する。
図11は、このような処理を繰り返した結果、ぞれぞれの撮像時の姿勢906、作業開始時の姿勢904、作業終了時の姿勢905から延ばしていった木構造データが、他の角度姿勢の点に到達した様子を示す。図11の例に示すように、撮像装置を用いる撮像時の姿勢906、作業開始時の姿勢904、作業終了時の姿勢905から延びた線が相互に連結することによって、動作計算部105は動作経路907を求めることができる。
図1に戻り、動作情報保持部106は、動作計算部105が計算したロボット204の動作情報(動作経路907)を保持しておく。ロボット204が実際に動作する前に動作の情報を予め計算し保持しておくことによって、動作の情報の計算待ちによってロボット204の動作を停止させる可能性を低減することができる。
ここで、動作情報保持部106は、動作計算部105が計算したロボット204の動作情報(動作経路907)が撮像装置210を用いる情報を含む場合は、ロボット204の動作の情報を第1動作実行部107に出力する。他方、動作計算部105が計算したロボット204の動作の情報(動作経路907)が撮像装置210を用いる情報を含まない場合は、ロボット204の動作の情報を第2動作実行部108に出力する。
第1動作実行部107は、動作情報保持部106から供給された撮像装置210を用いる動作を含むロボット204の動作情報を、ロボット制御装置202及び撮像制御装置201に出力する。
第1撮像情報入力部109は、撮像装置210が撮像した画像を入力する。図1、図2の例に示すように、この撮像装置210が撮像した画像は、撮像制御装置201を介して、第1撮像情報入力部109に供給される。第1撮像情報入力部109は、供給された画像を、第1撮像画像処理部110に出力する。
第1撮像情報処理部110は、撮像装置210が撮像した画像を第1撮像情報入力部から入力し、この撮像装置210が撮像した画像を処理する。図2の例に示すように、本実施形態1に係る第1撮像情報処理部110は、例えば、組み付け先208が撮像された画像から、組み付け先208の位置姿勢を求める処理を行う。第1撮像情報処理部110は、その処理結果を、動作計算部105に対して出力する。
第2動作実行部108は、動作情報保持部106から入力されたロボット204の動作情報を、ロボット制御装置202に出力する。
図12は、本実施形態1に係るロボット動作計算装置101の処理を示すフローチャートであり、図12のフローチャートを用いて、本実施形態1に係るロボット動作計算装置101の処理手順について説明する。
S1201において、作業管理部104は、作業情報保持部102の作業情報を参照し、それぞれの作業の依存関係から、優先する作業を決定し、実行すべき作業の情報を動作計算部105に出力する。また、作業管理部104は、作業条件保持部103からロボット204自身の身体に関する情報と、撮像装置210の情報と、ロボット204の周囲にある障害物の情報と、を含む作業条件(作業条件情報)を読み出し、動作計算部105に出力する。
S1202において、動作計算部105は、作業管理部104から入力された作業情報と作業条件とに基づいてロボット204の動作を計算する。また、第1撮像情報処理部110が、撮像画像に基づき算出された組み付け先の位置姿勢の情報を保持している場合には、その情報も用いてロボット204の動作を計算する。動作計算部105は、このようにして計算して求めたロボット204の動作の情報を、動作情報保持部106に出力する。
S1203において、動作情報保持部106は、動作計算部105から入力されたロボット204の動作の情報に撮像装置210を用いる情報があるか否か判断し、当該情報がある場合は、S1204に移行する。他方、動作情報保持部106は、動作計算部105から入力されたロボット204の動作の情報に撮像装置210を用いる情報がないと判断した場合は、S1206に移行する。
S1204において、動作情報保持部106は、ロボット204の動作情報を第1動作実行部107に出力する。第1動作実行部107は、動作情報保持部106から入力されたロボット204の動作情報を、ロボット制御装置202及び撮像制御装置201に出力する。これにより、ロボット制御装置202は、当該動作情報に基づきロボット204を制御し動作させる。撮像制御装置201は、撮像装置210を制御し、撮像等の動作を行わせる。
S1205において、第1撮像情報入力部109が、撮像装置210が撮像した画像を入力する。第1撮像情報入力部109は、入力した画像を第1撮像情報処理部110に供給する。第1撮像情報処理部110は、撮像装置210が撮像した画像を処理する。具体的には、第1撮像情報処理部110は、撮像画像に基づき算出された(撮像画像から得られた)組み付け先208等の位置姿勢等を算出し、当該該処理結果を、動作計算部105に出力する。
S1206において、動作情報保持部106は、ロボット204の動作情報を第2動作実行部108に出力する。第2動作実行部108は、動作情報保持部106から供給されてきたロボット204の動作情報を、ロボット制御装置202に出力する。これにより、ロボット制御装置202は、当該動作情報に基づきロボット204を制御し、動作させる。ロボット204が所望の動作を実行することによって、所望の作業が行われる。
S1207において、作業管理部104は、作業情報保持部102の作業情報を参照し、作業が完了しているかを判断する。その結果、作業が完了していると判断すれば、処理を終了させ、作業が未完了であると判断すれば、ステップS1201に戻る。
以上述べた構成及び動作によれば、本実施形態1に係るロボット動作計算装置101は、第1の部品を組み付ける作業と、第2の部品を組み付ける為の組み付け先を撮像する作業をロボットの1つの動作で行えるように動作を計算する。詳細に言えば、第1の部品である部品206の組み付け動作中に、第2の部品である部品209の組み付け先208の撮像を行い、組み付け先208の位置姿勢を算出する。そして、第1の部品(例えば、部品206)組み付け時に撮像された第2の部品(例えば、部品209)の組み付け先の画像を処理し、第2の部品の組み付け先の情報を抽出する。
その結果、抽出した第2の部品の組み付け先(例えば、組み付け先208)の情報から、第2の部品を組み付ける動作を生成するので、ロボット204の作業時間を短縮し、生産性を向上するという効果を奏する。
実施形態2
実施形態2に係るロボット動作計算装置は、実施形態1で説明したロボット動作計算装置の処理に加えて、ロボットの動作計算時に撮像装置を用いる作業を挿入する動作と、撮像装置を用いる作業を挿入しない動作の両方を計算する。
そして、計算した両方の動作を比較し、作業時間が短くなる動作を選択する。このように構成することで、ロボットの作業時間を短縮し、生産性をより向上させるようにしたものである。本実施形態2は、実施形態1で説明した、図1のロボット動作計算装置101のブロック構成図において、動作計算部105以外の構成は同一であり、説明を省略する。以下、本実施形態2における動作計算部105について、その動作を説明する。
図13は、実施形態1における図9に相当する図であり、動作計算部105のロボット204の動作の計算方法を示す。以下、この図13を用いて、本実施形態2に係る動作計算部105のロボット204の動作の計算方法について説明する。
図13の例において、ロボット204のジョイントの角度の空間1301が示されており、この角度の空間は、実施形態1の図9に示す角度の空間901と同様の空間である。図13に示すように、当該ジョイントの角度の空間1301には、ロボット204の部品組み付け作業における作業開始時の姿勢1302(start点)、作業終了時の姿勢1303(end点)が存在する。
また、ロボット204の撮像装置210を用いて撮像する時の撮像時の姿勢1304も(vision点)存在する。図13において、ジョイントの角度の空間1301上に障害物1305が存在する。この障害物1305は、ロボット204が障害物又はロボット204自身と干渉してしまう姿勢(のジョイントの角度範囲)とする。
図13の例に示すように、実施形態2の動作計算部105は、実施形態1と同様、障害物1305を避け、撮像装置210を用いる撮像時の姿勢1304を経由し、作業開始時の姿勢1302から作業終了時の姿勢1303まで到達する動作経路1307を計算する。さらに、実施形態2における動作計算部105は、障害物1305を避け、撮像装置210を用いる撮像時の姿勢1304を経由せずに、作業開始時の姿勢1302から作業終了時の姿勢1303まで到達する動作経路1306も計算する。
次に、動作計算部105は、動作経路1306と動作経路1307の長さを比較し、より短い方の動作経路を選択し、動作情報保持部106に選択した動作経路を出力する。本実施形態2では、例えば動作経路1306を出力する。
ここで、複数の作業がある場合は、動作計算部105は、複数の作業全てを完了する時点までの動作時間がより短くなるような動作経路を選択して、動作情報保持部106に選択した動作経路を出力してよい。具体的には、動作計算部105が、複動作経路1306を選択した場合と、動作経路1307を選択した場合と、のそれぞれの場合について、その後の作業の動作経路も計算し、作業全てが完了する時間の総計がより短くなるような動作経路を選択すればよい。
つまり、作業単体では動作経路1306のほうが動作経路1307よりも短いが、その後の作業の動作経路を計算した場合に、動作経路1307を選択した方が、作業全てが完了する時間の総計が短くなるような複数の作業が存在する可能性がある。そのような場合は、動作計算部105は、動作経路1307を選択し、動作情報保持部106に出力すればよい。
以上説明したように、本実施形態2に係る構成によれば、ロボット204の動作計算時に、撮像装置210を用いる作業を挿入した場合の動作と、撮像装置210を用いる作業を挿入しない場合の動作の両方について動作の情報(動作経路)を計算する。そして、計算した動作を比較し、作業時間がより短くなる方の動作の情報(動作経路)を選択する。このように構成することで、ロボットの作業時間をより短縮し、生産性が向上するという効果を奏する。
実施形態3
本実施形態3に係るロボット動作計算装置は、複数台、例えば2台のロボットを接続して、それらを制御する構成を備える。実施形態3においては、第1のロボットには解像度の低い撮像装置が、第2のロボットには解像度の高い撮像装置が、それぞれ据え付けられている例を説明する。
図14に示すように、実施形態3に係るロボット動作計算装置1410は、第1のロボットに対して、第1の部品を組み付ける作業と、第2の部品を組み付ける為の組み付け先を撮像する作業と、を第1のロボットの1つの動作で行えるように動作を計算する。
実施形態3において、ロボット動作計算装置1410は、例えば、第1の部品の組み付け時に、第1のロボットの解像度の低い撮像装置で撮像された第2の部品の組み付け先の画像を処理し、第2の部品の組み付け先の概略の位置姿勢を抽出する。
そして、ロボット動作計算装置1410は、抽出した第2の部品の組み付け先の概略の位置姿勢に対して、さらに第2の部品の組み付け先を撮像する作業と第2の部品を組み付ける動作を1つの動作で行えるように動作の情報(動作経路)を計算する。この動作経路の計算は、第2のロボット向けの動作経路である。ロボット動作計算装置1410は、上で述べた第2のロボット向けの動作経路を、第2のロボットに対して適用する。その結果、本実施形態3に係るロボット動作計算装置は、第2のロボットに対して、第2のロボットの解像度の高い撮像装置で、第2の部品の組み付け先を撮像させる。
次に、本実施形態3に係るロボット動作計算装置1410は、この撮像で得られた画像を処理することによって、第2の部品の組み付け先の詳細な位置姿勢を抽出する。ロボット動作計算装置1410は、このようにして得られた、その第2の部品の組み付け先の詳細な位置姿勢に基づいて、第2のロボットの第2の部品を組み付ける動作(動作経路)を補正する。そして、補正後の動作経路を用いて第2のロボットを制御することで、第2のロボットはより高精度で効率的に第2の部品を組み付けることができる。
(動作例)
図14は、本実施形態3に係るロボット動作計算装置1410を用いてロボットを制御した場合の動作例を示す。図14の動作例では、実施形態1で説明した動作例の構成に加えて、2台目のロボット1403が追加されている。図14の例に示すように、ロボット1403は、実施形態1で既に説明したロボット204とほぼ同様の構成を有するロボットである。ロボット1403にはハンド1405及び撮像装置1404が据え付けられている。
撮像装置1404は、この撮像装置1404を制御する撮像制御装置1401に接続されている。同様に、ロボット1403は、ロボット1403を制御するロボット制御装置1402に接続されている。撮像制御装置1401及びロボット制御装置1402は、それぞれロボット動作計算装置1410に接続されている。
ロボット動作計算装置1410は、計算したロボット動作情報に基づき、ロボット1403の動作をロボット制御装置1402に送信する。これによって、ロボット動作計算装置1410は、ロボット制御装置1402を介して、ロボット1403を動作させることができる。
同様に、ロボット動作計算装置1410は、ロボット動作計算装置1410が計算したロボット動作情報に基づき、撮像装置1404の動作を撮像制御装置1401に送信する。これによって、ロボット動作計算装置1410は、撮像制御装置1401を介して、ロボット1403に備え付けられた撮像装置1404に撮像等の動作を行わせることができる。
本実施形態3において、ロボット1403は、部品209が例えば精密部品であって、組み付け先208に対して精密に組み込むという作業を行うものとする。また、ロボット1403に備えられている撮像装置1404は、撮像装置210よりも解像度の高い撮像装置であるものとして説明を行う。
具体的には、例えば、撮像装置210の解像度は1024×768であり、撮像装置1404の解像度は2048×1536であるとする。
ロボット204は、ロボット動作計算装置1410で計算されたロボットの動作の情報に基づいて、所定の動作を実行する。ここでは、図14に示すように、ロボット204は、撮像装置210によって予め計測された組み付け先207に対して現在ハンド205で把持している部品206を組み付ける動作を行う。
このとき、ロボット204が、ロボット204のハンド205が把持している部品206を組み付け先207に移動させる間に、部品209の組み付け先である組み付け先208を撮像装置210によって撮像する。そして、ロボット動作計算装置1410は、撮像装置201が撮像した画像を入力して画像処理を行い、組み付け先208の概略の位置姿勢を算出する。
ロボット204が、部品206を組み付け先207に組み付け中に、ロボット1403は、そのハンド1405で部品209を把持し、概略の位置姿勢が求められた組み付け先208に向けて当該部品209を移動させる動作を実行する。
ここで、ロボット1403は、部品209の組み付け先208に向けて、部品209を移動させる動作中に、撮像装置1404を用いて組み付け先208を撮像する。このようにして撮像装置1404が撮像した画像は、撮像制御装置1401を経由してロボット動作計算装置1401に送出される。ロボット動作計算装置1410は、当該画像を処理することによって、部品209の組み付け先208の詳細な位置姿勢を算出する。
したがって、ロボット動作計算装置1410は、算出された詳細な位置姿勢に基づき、より正確なロボットの動作の情報(動作経路)を算出し直す(概略の位置姿勢を補正する)ことができる。ロボット動作計算装置1410は、この補正されたロボットの動作の情報に基づき、ロボット1403の動作を、ロボット制御装置1402に出力する。
このようにして、ロボット1403は、部品209の組み付け先208の概略の位置姿勢に基づいて決定された動作を、より詳細な位置姿勢に基づいた動作に補正することができる。その結果、ロボット1403は、より精密に部品209を組み付け先208に組み付けることができる。
このように、ロボット204が部品206の組み付け動作中に、撮像手段210が、部品209の組み付け先208の撮像を行い、部品209の組み付け先208の概略の位置姿勢を算出しておく。従って、ロボット動作計算装置1410は、組み付け先208の概略の位置姿勢に基づき、ロボット1403を、部品209の組み付け先208に向けて移動させる動作を開始させることができる。
そして、ロボット動作計算装置1410が、部品209の組み付け先208の詳細な位置姿勢を算出することができた後は、ロボット動作計算装置1410は、その詳細な位置姿勢に基づき、算出したロボットの動作の情報をより精密に補正することができる。
したがって、ロボット動作計算装置1410は、ロボット1403に、部品209を組み付け先208により精密に取り付けさせることができる。
このように、実施形態3で説明した動作例によれば、部品209を組み付けるまでのロボットの1403の動作時間を短縮することができる。つまり、ロボットの動作効率がより向上し、生産性が向上する。
図15は、実施形態3に係るロボット動作計算装置1410の構成を示す。図15を用いて、ロボット動作計算装置1410の構成について実施形態1に係るロボット動作計算装置101と異なる部分を中心に説明を行う。実施形態3のロボット動作計算装置1410は、図1記載の実施形態1のロボット動作計算装置101に対して、第2撮像情報入力部1501と、第2撮像情報処理部1502が追加されている。
実施形態3に係るロボット動作計算装置1410の作業情報保持部(保持手段)102は、実施形態1の撮像の作業の属性に対して、作業の要求解像度の項目が追加されている。図16は、本実施形態3に係るロボット動作計算装置1410の作業情報保持部102が保持する作業情報の記述の一例を示す。
実施形態3においても、実施形態1と同様に、作業保持部102は、作業情報をXML形式の電子ファイルで保持している。図16の例に示すように、図4の例と比べて、要求解像度の項目が追加記載されている。具体的には、図6の例においては、タグ<resolution>の部分に要求解像度の内容が記載される。
図16では、3つの作業task0、task2、task4が記載されており、task0とtask2においては、要求解像度として、「1024×768」が記載されている。また、図6の例においては、task4において、要求解像度として、「2048×1536」が記載されている。
作業条件保持部(保持手段)103は、実施形態1の説明と同様に、ロボット204及びロボット1403自身の身体に関する情報(作業条件情報)と、撮像装置210及び撮像装置1404の情報(作業条件情報)と、を保持している。また、作業条件保持部103は、実施形態1の説明と同様に、ロボット204及びロボット1403及びロボットの周囲にある障害物の情報を保持している。
実施形態3においては、実施形態1と異なり、ロボットと撮像装置が複数存在するため、ロボット204とロボット1403の身体に関する情報と、撮像装置210と撮像装置1404の情報とを、それぞれ保持している。
作業管理部104は、作業情報保持部102の作業情報を参照し、作業の依存関係から、優先して実行する作業を決定し、決定した作業の情報を動作計算部105に出力する。加えて、本実施形態3においては、作業の要求解像度に応じて、その作業をロボット204とロボット1403のどちらで行うべきかを判断し、この判断した結果である情報を、動作計算部105に出力する。
さらに、作業管理部104は、作業条件保持部103からロボット204自身の身体に関する情報と、撮像装置210の情報と、ロボット204の周囲にある障害物の情報を読み出し、動作計算部105に出力する。作業管理部104は、作業条件保持部103からロボット1403自身の身体に関する情報と、撮像装置1404の情報と、ロボット1403の周囲にある障害物の情報も読み出して、動作計算部105に出力する。動作計算部105の構成や動作は実施形態1で説明したのと同様である。
実施形態3においては、動作情報保持部106は、動作計算部105で計算されたロボット204、ロボット1403の動作の情報(動作経路)を保持しておく。動作情報保持部106は、その動作情報がロボット204の動作の情報であれば、第1動作実行部107に対して出力し、その動作情報がロボット1403の動作の情報であれば、第2動作実行部108に対して出力する。
第1動作実行部107は、ロボット204の動作の情報を、ロボット制御装置202及び撮像制御装置201に対して出力する。また、第1撮像情報入力部109は、撮像装置210が撮像した画像を入力する。第1撮像情報入力部109は、入力した画像を、第1撮像画像処理部110に出力する。
第1撮像情報処理部110は、第1撮像情報入力部から供給された画像を処理する。実施形態3に係る第1撮像情報処理部110は、例えば、組み付け先208が撮像された画像から、組み付け先208の概略の位置姿勢を求める処理を行う。そして第、1撮像情報処理部110は、処理結果を動作計算部105に対して出力する。
第2動作実行部108は、ロボット1403の動作情報を、ロボット制御装置1402及び撮像制御装置201に対して出力する。第2撮像情報入力部1301は、撮像装置1404が撮像した画像を入力する。第2撮像情報入力部1301は、入力した画像を、第2撮像画像処理部1302に出力する。
第2撮像情報処理部1302は、第2撮像情報入力部1301から供給された画像を処理する。実施形態3に係る第2撮像情報処理部1302は、例えば、組み付け先208が撮像された画像から、組み付け先208の詳細な位置姿勢を求める処理を行う。そして第2撮像情報処理部1302は、処理結果を動作計算部105に対して出力する。
次に、図12に示したフローチャートを用いて、実施形態3に係るロボット動作計算装置1410の処理の流れについて説明する。
まず、S1201において、作業管理部104は、作業情報保持部102の作業情報を参照し、作業の依存関係から、優先する作業を決定する。また、作業管理部104は、作業条件保持部103からロボット204、ロボット1403の身体に関する情報と、撮像装置210、1404の情報と、ロボット204、1403の周囲にある障害物の情報と、を読み出す。そして、作業管理部104は、読み出した情報を動作計算部105に対して出力する。
さらに、作業管理部104は、これら読み出した情報に基づき、上記決定した作業を、ロボット204と、ロボット1403どちらのロボットで行うか決定する。そして、作業管理部104は、作業情報保持部から読み出した作業の情報と、決定した作業を行わせるロボットとを、動作計算部105に出力する。さらに、作業管理部104は、作業条件保持部103から、ロボット204、1403の身体に関する情報と、撮像装置210、1404の情報と、ロボット204、1403の周囲にある障害物の情報を動作計算部105に出力する。
S1202において、動作計算部105は、作業管理部104から供給された作業情報と、ロボット204、1403自身の身体に関する情報と、撮像装置210、1404の情報と、ロボット204、1403の周囲にある障害物の情報とを入力する。そして、動作計算部105は、入力されたこれらの情報に基づいてロボット204又はロボット1404の動作を計算し、計算して求めた動作の情報を動作情報保持部106に出力する。
また、第1撮像情報処理部110が撮像画像から得られた所定の部品の組み付け先の位置姿勢の情報を保持している場合には、動作計算部105は、その情報も用いてロボット204又はロボット1403の動作を計算し、動作情報保持部106に出力する。 なお、第2撮像情報処理部1502が所定の部品の組み付け先の位置姿勢の情報を保持している場合も、同様に、動作計算部105は、その情報も用いてロボット204又はロボット1403の動作を計算して、その計算結果を動作情報保持部106に出力する。
S1203において、動作情報保持部106は、動作計算部105から入力されたロボットの動作情報に撮像装置を用いる情報があるか否か判断する。判断の結果、動作計算部105から入力されたロボットの動作の情報に撮像装置を用いる情報がある場合であれば、S1204に処理が進む。一方、動作計算部105から入力されたロボットの動作の情報に撮像装置を用いる情報がない場合、S1206に処理が進む。
S1204において、第1動作実行部107又は第2動作実行部108は、動作情報保持部106から入力されたロボット204又はロボット1403の動作情報を、ロボット制御装置202又はロボット制御装置1402に出力する。
加えて、第1動作実行部107は、動作情報保持部106から入力されたロボット204の動作情報を撮像制御装置201にも出力する。または、第2動作実行部108は、動作情報保持部106から入力されロボット1403の動作情報を撮像制御装置1401に出力する。その結果、ロボット204又はロボット1403が動作し作業を行う。同様に、撮像装置210又は撮像装置1404が撮像等の作業を行う。
S1205において、第1撮像情報入力部109又は第2撮像情報入力部1401が上記S1204において撮像した画像を、撮像装置210又は撮像装置1404から入力する。ロボット動作計算装置1410は、第1撮像情報入力部109又は第2撮像情報入力部1401から当該画像を入力する。
ここで、第1撮像情報入力部109が画像を入力した場合は、第1撮像情報処理部110が撮像した画像を処理する。一方、第2撮像情報入力部1501が画像を入力した場合は、第2撮像情報処理部1502が撮像した画像を処理する。いずれの画像処理の処理結果も、動作計算部105に出力される。
S1206において、第1動作実行部107又は第2動作実行部108は、動作情報保持部106から入力されたロボット204又はロボット1403の動作情報を、ロボット制御装置202又はロボット制御装置1402に出力する。この結果、ロボット204又はロボット1403が動作し、所望の作業を実行する。
S1207において、作業管理部104は、作業情報保持部102の作業情報を参照し、作業が完了しているか判断する。作業が完了していると判断されれば、処理を終了する。作業が未完了であると判断されれば、ステップS1201に戻る。
本実施形態3において以上説明した構成によれば、ロボット動作計算装置1410を、ロボット動作計算装置1410に複数台、例えば2台のロボットを接続した構成とする。
本実施形態3においては、まず第1のロボットには、解像度の低い撮像装置、第2のロボットには解像度の高い撮像装置が備えられている例を説明した。そして、第1のロボットに対して、第1の部品を組み付ける作業と、第2の部品を組み付ける為の組み付け先を撮像する作業をロボットの1つの動作で行えるように動作を計算する。そして、第1の部品組み付け時に第1のロボットの解像度の低い撮像装置で撮像された第2の部品の組み付け先の画像を処理し、第2の部品の組み付け先の概略の位置姿勢を抽出している。
このようにして抽出した第2の部品の組み付け先の概略の位置姿勢に対して、さらに第2の部品の組み付け先を撮像する作業と第2の部品を組み付ける動作を1つの動作で行うことができるように動作を計算する。そして、第2のロボットは、第2のロボットの解像度の高い撮像装置で撮像された第2の第2の部品の組み付け先の画像を処理し、第2の部品の組み付け先の詳細な位置姿勢を抽出することができる。
この第2の部品の組み付け先の詳細な位置姿勢に基づいて、第2のロボットが第2の部品を組み付ける動作を補正し、第2の部品を組み付ける。このような構成によって、本実施形態3によれば、ロボットの作業時間をより短縮し、生産性を向上するという効果を奏する。
なお、本実施形態3においては、説明をわかりやすくするために、2台の撮像装置の間で解像度が異なる例を説明したが、解像度が異ならない場合でも適用することができる。その場合でも、2台のロボットを協調して動作(他方のロボットの組み付け先を一方のロボットが先行して撮影する等)させることによって、ロボット群を効率的に動作させることができる。
以上説明したように、上記各実施形態では、ロボット動作中の撮像装置による撮像を考慮したロボットの動作を算出する。特にロボット動作中に撮像した画像に基づいて、ロボットの動作を計算することで、ロボットを用いた作業の生産性を向上させている。撮像以外のロボットの各種動作に関しても、本発明の原理を適用することができ、同様に作業時間の短縮等を図ることができる。
(他の構成例)
また、上記各実施形態は、以下の処理を実行することによっても実現される。即ち、上述した各実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給することによって実現してよい。その場合、当該システム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して処理を実行する。また、そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供してもよい。
図17は、上記各実施形態の各部を構成することのできるコンピュータ1720の構成の例を示す。例えば、図1の例に示すロボット動作計算装置101を、コンピュータ1720で構成してもよい。また、ロボット動作計算装置101の各部を、それぞれコンピュータ(例えばコンピュータ1720)で構成してもよい。図15の例に示すロボット動作計算装置1410についても、同様にコンピュータ1720で構成してよい。
CPU1721は、ROM1722や、RAM1723、外部メモリ1724等に格納されたプログラムを実行することによって、上記各実施形態の各部を実現する。例えば、ロボット動作計算装置101の各部の機能を実現する。ROM1722、RAM1723、外部メモリ1724には、上記各実施形態で説明した各部の機能を実現するプログラムを格納することができる。
また、例えば、図1の例で示した作業情報保持部102、作業条件保持部103において保持される作業情報や作業条件等の情報が格納されてよい。上記実施形態では、主としてXML形式の電子ファイルで各情報が記憶される例を示したが、他の形式でもよい。
また、入力部1725は、例えば、撮像装置210が撮像した画像を入力する第1撮像画像入力部109等として動作することができる。また、表示部1726は、操作者に対して、ロボットの制御の結果、処理の結果等を表示することができる。通信I/F1727は、外部と通信を行うインターフェースであり、インターネット等を通じてロボット204等を操作することなどを実現することができる。
外部メモリ1724は、ハードディスクや、半導体記憶装置等であり、プログラムや、上記実施形態で説明した各種の情報を格納することができる。コンピュータ1720の上記説明した各部はバス1728によって相互に接続されている。図1の例で示した撮像制御装置201や、ロボット制御装置202等を、このバス1728に接続するように構成することもできる。
また、上記各実施形態では、アーム型のロボットを中心に説明したが、所定の作業を行うロボットであればどのようなロボットにも応用することができる。また、撮像以外の作業を用いたロボットでも、本発明を応用することができる。また、ロボットの台数にも制限はなく、3台以上のロボットを用いてもよい。また、同種のロボットだけでなく、異種のロボット同士が協調動作するように構成することもできる。
以上、本発明の実施形態について詳細に説明したが、これら実施形態は、本発明を実施するにあたっての具体例を示したに過ぎず、本発明の技術的範囲は、上記実施形態に限定されるものではない。本発明は、その趣旨を逸脱しない範囲において種々の変更が可能であり、それらも本発明の技術的範囲に含まれる。
101・・・ロボット動作計算装置、102・・・作業情報保持部、103・・・作業条件保持部、104・・・作業管理部、105・・・動作計算部、106・・・動作情報保持部、107・・・第1動作実行部、108・・・第2動作実行部、109・・・第1撮像情報入力部、110・・・第1撮像情報処理部

Claims (10)

  1. ロボットが行う作業の情報を作業情報として保持し、前記ロボットの情報を作業条件情報として保持する保持手段と、
    前記保持手段に保持される前記作業情報及び前記作業条件情報に基づいて、前記ロボットの第1の作業の動作情報を計算する第1の計算手段と、
    前記第1の計算手段によって計算された第1の作業の動作情報に基づいて、前記ロボットに前記第1の作業を実行させる第1の実行手段と、
    前記ロボットが前記第1の作業の動作を実行する間に前記ロボットが備える撮像手段が撮像した画像情報を入力する画像入力手段と、
    前記作業情報及び前記作業条件情報と、前記画像情報とに基づいて、前記第1の作業に後続する第2の作業の動作情報を計算する第2の計算手段と、
    前記第2の計算手段により計算された前記第2の作業の動作情報に基づいて、前記ロボットに前記第2の作業を実行させる第2の実行手段と、
    を備えることを特徴とするロボット動作計算装置。
  2. 前記第1の計算手段は、前記第1の作業の動作と、前記第2の作業のための前記撮像手段による撮像の動作とが、1つの動作で実行されるよう、前記ロボットの第1の作業の動作情報を計算する、
    ことを特徴とする請求項1に記載のロボット動作計算装置。
  3. 前記第1の計算手段は、前記保持手段が保持する前記作業情報及び前記作業条件情報に基づいて、前記ロボットの前記第1の作業の動作の開始位置姿勢から、前記ロボットの前記第1の作業の動作の終了位置姿勢までの間において、前記撮像手段の前記第2の作業のための撮像位置姿勢を経由するよう、前記ロボットの第2の作業の動作情報を計算する
    ことを特徴とする請求項1又は2に記載のロボット動作計算装置。
  4. 前記第1の計算手段は、前記ロボットの前記第1の作業の動作の前記開始位置姿勢から、前記ロボットの前記第1の作業の動作の前記終了位置姿勢までの間において、前記撮像手段の前記第2の作業のための前記撮像位置姿勢を経由するよう計算された第1の動作情報と、前記ロボットの前記第1の作業の動作の前記開始位置姿勢から、前記ロボットの前記第1の作業の動作の前記終了位置姿勢までの間において、前記撮像位置姿勢を経由しないよう計算された第2の動作情報と、を計算し、
    前記第1の動作情報及び前記第2の動作情報を比較して、作業時間が短いいずれかの動作情報を前記第1の作業の動作情報として前記第1の実行手段に供給する、
    ことを特徴とする請求項3記載のロボット動作計算装置。
  5. 前記第1の実行手段及び前記第2の実行手段は、それぞれが撮像手段を備える第1のロボット及び第2のロボットに動作をそれぞれ実行させるものであり、
    前記第1の計算手段は、前記第1の作業の動作と、前記第2の作業のための前記第1のロボットが備える第1の撮像手段による撮像の動作とが、1つの動作で実行されるよう、前記第1のロボットの第1の作業の動作情報を計算し、
    前記第2の計算手段は、前記第2の作業の動作と、前記第2の作業のための前記第2のロボットが備える第2の撮像手段による撮像の動作とが、1つの動作で実行されるよう、前記第2のロボットの第2の作業の動作情報を計算する、
    ことを特徴とする請求項1から4のいずれか1項に記載のロボット動作計算装置。
  6. 前記第1のロボットが備える前記第1の撮像手段は、第1の解像度で撮像し、
    前記第2のロボットが備える前記第2の撮像手段は、前記第1の解像度より高い第2の解像度で撮像する、ことを特徴とする請求項5に記載のロボット動作計算装置。
  7. 前記第1のロボットは、前記第1のロボットの第1の作業の動作情報に基づき動作を実行し、
    前記第2のロボットは、前記第2のロボットの第2の作業の動作情報に基づき動作を実行する、ことを特徴とする請求項5又は6に記載のロボット動作計算装置。
  8. 保持手段に保持される、ロボットが行う作業の情報である作業情報と、前記ロボットの情報である作業条件情報と、に基づいて、前記ロボットの第1の作業の動作情報を計算するステップと、
    計算された前記ロボットの第1の作業の動作情報に基づいて、前記ロボットに前記第1の作業を実行させるステップと、
    前記ロボットが前記第1の作業の動作を実行する間に前記ロボットが備える撮像手段が撮像した画像情報を入力するステップと、
    前記作業情報及び前記作業条件情報と、前記画像情報とに基づいて、前記第1の作業に後続する第2の作業の動作情報を計算するステップと、
    計算された前記ロボットの第2の作業の動作情報に基づいて、前記ロボットに前記第2の作業を実行させるステップと、
    を含むことを特徴とするロボット動作計算方法。
  9. 前記第1の作業の動作情報を計算するステップにおいて、前記第1の作業の動作と、前記第2の作業のための前記撮像手段による撮像の動作とが、1つの動作で実行されるよう、前記ロボットの動作情報を計算する、
    ことを特徴とする請求項8に記載のロボット動作計算方法。
  10. コンピュータが読み取り実行することで、前記コンピュータを、請求項1から7のいずれか1項に記載のロボット動作計算装置の各手段として機能させるためのコンピュータプログラム。
JP2015150479A 2015-07-30 2015-07-30 ロボット動作計算装置、ロボット動作計算方法及びコンピュータプログラム Pending JP2017030070A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015150479A JP2017030070A (ja) 2015-07-30 2015-07-30 ロボット動作計算装置、ロボット動作計算方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015150479A JP2017030070A (ja) 2015-07-30 2015-07-30 ロボット動作計算装置、ロボット動作計算方法及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2017030070A true JP2017030070A (ja) 2017-02-09

Family

ID=57985708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015150479A Pending JP2017030070A (ja) 2015-07-30 2015-07-30 ロボット動作計算装置、ロボット動作計算方法及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2017030070A (ja)

Similar Documents

Publication Publication Date Title
KR102517457B1 (ko) 로봇 행동 보정에 기초한 로컬 피쳐 모델의 업데이트
JP5949242B2 (ja) ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム
KR20210138170A (ko) 로봇 행동들에 대한 보정들의 결정 및 이용
JP6640060B2 (ja) ロボットシステム
JP2015071206A (ja) 制御装置、ロボット、教示データ生成方法及びプログラム
EP3863791A1 (en) System and method for weld path generation
JP2019018272A (ja) モーション生成方法、モーション生成装置、システム及びコンピュータプログラム
US20130111731A1 (en) Assembling apparatus and method, and assembling operation program
JP6576050B2 (ja) 物体移動方法及びシステム
JP6885856B2 (ja) ロボットシステムおよびキャリブレーション方法
CN114080590A (zh) 使用先进扫描技术的机器人料箱拾取系统和方法
Zhang et al. Industrial robot programming by demonstration
CN114670189B (zh) 存储介质、以及生成机器人的控制程序的方法及系统
JP6390088B2 (ja) ロボット制御システム、ロボット、プログラム及びロボット制御方法
JP6456557B1 (ja) 把持位置姿勢教示装置、把持位置姿勢教示方法及びロボットシステム
US11897142B2 (en) Method and device for creating a robot control program
US20230150142A1 (en) Device and method for training a machine learning model for generating descriptor images for images of objects
JP6253847B1 (ja) レーザ加工装置、レーザ加工方法、及びレーザ加工プログラム
JP2017030070A (ja) ロボット動作計算装置、ロボット動作計算方法及びコンピュータプログラム
JP6337445B2 (ja) ロボット、処理装置及び検査方法
CN112171664B (zh) 基于视觉识别的生产线机器人轨迹补偿方法、装置和系统
CN117377558A (zh) 自动拾取和放置系统
JP2012236266A (ja) ロボット制御システム、ロボットシステム及びプログラム
JP2019036072A (ja) 画像処理方法、画像処理装置、および製造方法
JP7081284B2 (ja) 演算装置、演算方法、および演算プログラム