特開2016-221602(P2016-221602A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セイコーエプソン株式会社の特許一覧
特開2016-221602ロボット、制御装置およびプログラム
<>
  • 特開2016221602-ロボット、制御装置およびプログラム 図000003
  • 特開2016221602-ロボット、制御装置およびプログラム 図000004
  • 特開2016221602-ロボット、制御装置およびプログラム 図000005
  • 特開2016221602-ロボット、制御装置およびプログラム 図000006
  • 特開2016221602-ロボット、制御装置およびプログラム 図000007
  • 特開2016221602-ロボット、制御装置およびプログラム 図000008
  • 特開2016221602-ロボット、制御装置およびプログラム 図000009
  • 特開2016221602-ロボット、制御装置およびプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2016-221602(P2016-221602A)
(43)【公開日】2016年12月28日
(54)【発明の名称】ロボット、制御装置およびプログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20161205BHJP
【FI】
   B25J13/08 A
【審査請求】未請求
【請求項の数】11
【出願形態】OL
【全頁数】25
(21)【出願番号】特願2015-108295(P2015-108295)
(22)【出願日】2015年5月28日
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100116665
【弁理士】
【氏名又は名称】渡辺 和昭
(74)【代理人】
【識別番号】100164633
【弁理士】
【氏名又は名称】西田 圭介
(74)【代理人】
【識別番号】100179475
【弁理士】
【氏名又は名称】仲井 智至
(72)【発明者】
【氏名】志賀 公樹
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS26
3C707KS09
3C707KS33
3C707KT02
3C707KT04
3C707KT05
3C707KX06
3C707LS14
3C707LV12
3C707LV14
(57)【要約】
【課題】ロボットにおいて、動作に使用される被識別体を検出した情報と動作中に使用される予め決められた被識別体情報との比較結果に基づく動作を行う。
【解決手段】ロボットの動作に使用される被識別体を検出して第1被識別体情報を取得し、前記ロボットの動作中に使用される予め決められた第2被識別体情報と前記第1被識別体情報との比較後に動作する、ロボットである。
【選択図】図1
【特許請求の範囲】
【請求項1】
ロボットであって、
前記ロボットの動作に使用される被識別体を検出して第1被識別体情報を取得し、
前記ロボットの動作中に使用される予め決められた第2被識別体情報と前記第1被識別体情報との比較後に動作するロボット。
【請求項2】
前記比較に基づく情報を表示する、請求項1に記載のロボット。
【請求項3】
前記比較に基づく情報を画像に重ねて表示する、請求項2に記載のロボット。
【請求項4】
前記比較に基づく情報を一覧で表示する、請求項2または請求項3のいずれか1項に記載のロボット。
【請求項5】
前記比較に基づく補正を行う、請求項1から請求項4のいずれか1項に記載のロボット。
【請求項6】
前記ロボットの動作中に使用される予め決められた前記第2被識別体情報は、前記ロボットの動作の制御を規定するプログラムまたは所定の記憶情報に含まれる被識別体情報であって、
前記プログラムを第1の解釈部により解釈して前記動作の制御の情報を生成して前記ロボットを制御し、前記プログラムまたは前記所定の記憶情報を第2の解釈部により解釈して前記第2被識別体情報を抽出して前記比較を行う、請求項1から請求項5のいずれか1項に記載のロボット。
【請求項7】
前記プログラムまたは前記所定の記憶情報に同一の識別情報を有する前記第2被識別体情報が重複して含まれる場合には、1つのみを抽出して1回のみ前記比較を行う、
請求項6に記載のロボット。
【請求項8】
前記動作に使用される被識別体は、マーカーを含む、請求項1から請求項7のいずれか1項に記載のロボット。
【請求項9】
前記第2被識別体情報に基づいて、動作テストを行い、実作業を行う、請求項1から請求項8のいずれか1項に記載のロボット。
【請求項10】
ロボットの動作に使用される被識別体を検出して第1被識別体情報を取得する取得部と、
前記ロボットの動作中に使用される予め決められた第2被識別体情報を抽出する抽出部と、
前記第1被識別体情報と前記第2被識別体情報とを比較する被識別体情報比較部と、を備える、制御装置。
【請求項11】
ロボットの動作に使用される被識別体を検出して第1被識別体情報を取得するステップと、
前記ロボットの動作中に使用される予め決められた第2被識別体情報を抽出するステップと、
前記第1被識別体情報と前記第2被識別体情報とを比較するステップと、をコンピューターに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット、制御装置およびプログラムに関する。
【背景技術】
【0002】
産業用のロボットによって作業対象の物体を的確にピックアンドプレースさせるために、作業対象の物体の形状、重量、材質などの物理的条件を教示することが必要となる。例えば、作業対象の物体である半導体チップなどをロボットにピックアンドプレースさせる場合は、ロボットへ教示を行うために物理的条件の情報を書き込んだ被識別体であるマーカーを、作業対象の物体に貼着しておき、マーカーの読み取り装置によってマーカーから物理的条件の情報を読み込んで、ロボットを構成するマニピュレーターの駆動を制御することが考えられる。
【0003】
一般的に、マーカーは、ロボットの作業場所以外の場所で作製され、ロボットの作業場所で作業対象の物体に貼着される。したがって、マーカーの作製および物体への貼着の過程で取り違えること、あるいは、マーカーの貼着位置がずれることなどが発生し得る。また、作業対象の物体の一つ一つにマーカーを貼着する必要があり、それに要する工数および時間が多大になることも発生し得る。そこで、マーカーとその配置指示内容を共に印刷することが考えられる。これにより、マーカーを設置する作業を簡略化し、マーカーの貼着作業のミスあるいは工数の削減などが図られる。
ただし、マーカーの貼着作業が誤って行われて、マーカーが正常に貼り付けられなかった場合には、予期せぬロボットの動作あるいはエラーが発生する。このように、ロボットへの教示を実現するための作業が困難であった。
【0004】
ところで、ロボットの動作を制御するためのプログラム(動作制御プログラム)に、マーカーの情報を読み取る指示が含まれ得る。このため、マーカーの貼着作業を誤った場合、動作制御プログラムによってロボットを正常に制御できなくなることがあり得る。そこで、ロボットの動作の基準プログラムの実行に伴って各指定位置でロボットの動作を一時停止させ、各停止位置を適宜手動操作で所定の位置に修正し、修正された位置でのポイントデータに基づいて正規の動作プログラムを自動的に作成することが提案されている(特許文献1参照。)。
また、あらかじめ視覚マークのパターンデータを教示し、実動作時の視覚マークのパターンデータとの誤差データによって動作位置の視覚補正を行う移動ロボットが提案されている(特許文献2参照。)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平2−190280号公報
【特許文献2】特開平11−77562号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の技術では、あらかじめ規定されたマーカーの状況と実際のマーカーの状況との相違を把握することができず、相違に基づく動作を行うことができなかった。このような問題は、マーカーに限られず、他の被識別体についても同様であった。
【課題を解決するための手段】
【0007】
上記課題の少なくとも一つを解決するために本発明の一態様は、ロボットであって、前記ロボットの動作に使用される被識別体を検出して第1被識別体情報を取得し、前記ロボットの動作中に使用される予め決められた第2被識別体情報と前記第1被識別体情報との比較後に動作する、ロボットである。
この構成により、ロボットでは、ロボットの動作中に使用される予め決められた第2被識別体情報とロボットの動作に使用される被識別体を検出して取得された第1被識別体情報との比較後に動作する。これにより、ロボットでは、動作に使用される被識別体を検出して取得された第1被識別体情報と動作中に使用される予め決められた第2被識別体情報との相違に基づく動作を行うことができる。
【0008】
また、本発明の一態様は、ロボットにおいて、比較に基づく情報を表示する、構成が用いられてもよい。
この構成により、ロボットでは、比較に基づく情報を表示する。これにより、ロボットでは、動作に使用される被識別体を検出して取得された第1被識別体情報と動作中に使用される予め決められた第2被識別体情報との相違をユーザーに対して提示することができる。
【0009】
また、本発明の一態様は、ロボットにおいて、比較に基づく情報を画像に重ねて表示する、構成が用いられてもよい。
この構成により、ロボットでは、比較に基づく情報を画像に重ねて表示する。これにより、ロボットでは、動作に使用される被識別体を検出して取得された第1被識別体情報と動作中に使用される予め決められた第2被識別体情報との相違を、画像との関係で視認し易い表示で、ユーザーに対して提示することができる。
【0010】
また、本発明の一態様は、ロボットにおいて、比較に基づく情報を一覧で表示する、構成が用いられてもよい。
この構成により、ロボットでは、比較に基づく情報を一覧で表示する。これにより、ロボットでは、動作に使用される被識別体を検出して取得された第1被識別体情報と動作中に使用される予め決められた第2被識別体情報との相違を、一覧の順にしたがって視認し易い表示で、ユーザーに対して提示することができる。
【0011】
また、本発明の一態様は、ロボットにおいて、比較に基づく補正を行う、構成が用いられてもよい。
この構成により、ロボットでは、比較に基づく補正を行う。これにより、ロボットでは、動作に使用される被識別体を検出して取得された第1被識別体情報と動作中に使用される予め決められた第2被識別体情報との相違に関する補正を行うことができる。
【0012】
また、本発明の一態様は、ロボットにおいて、前記ロボットの動作中に使用される予め決められた第2被識別体情報は、前記ロボットの動作の制御を規定するプログラムまたは所定の記憶情報に含まれる被識別体情報であって、前記プログラムを第1の解釈部により解釈して前記動作の制御の情報を生成して前記ロボットを制御し、前記プログラムまたは前記所定の記憶情報を第2の解釈部により解釈して前記第2被識別体情報を抽出して前記比較を行う、構成が用いられてもよい。
この構成により、ロボットでは、ロボットの動作の制御を規定するプログラムを第1の解釈部により解釈して動作の制御の情報を生成してロボットを制御し、当該プログラムまたは所定の記憶情報を第2の解釈部により解釈して第2被識別体情報を抽出して比較を行う。これにより、ロボットでは、同一のプログラムに関する情報を用いて、動作の制御と、動作に使用される被識別体を検出して取得された第1被識別体情報と動作中に使用される予め決められた第2被識別体情報との相違の検出と、の両方を行うことができる。
【0013】
また、本発明の一態様は、ロボットにおいて、前記プログラムまたは前記所定の記憶情報に同一の識別情報を有する前記第2被識別体情報が重複して含まれる場合には、1つのみを抽出して1回のみ前記比較を行う、構成が用いられてもよい。
この構成により、ロボットでは、プログラムまたは所定の記憶情報に同一の識別情報を有する第2被識別体情報が重複して含まれる場合には、1つのみを抽出して1回のみ比較する。これにより、ロボットでは、動作に使用される被識別体を検出して取得された第1被識別体情報と動作中に使用される予め決められた第2被識別体情報との相違を検出するに際して、同一の識別情報を有する被識別体を検出する処理が重複することを回避することができ、前述の動作に使用される被識別体の確認作業等の効率化を図ることができる。
【0014】
また、本発明の一態様は、ロボットにおいて、前記動作に使用される被識別体は、マーカーを含む、構成が用いられてもよい。
この構成により、ロボットでは、マーカーの検出結果情報に基づいて、動作に使用されるマーカーの情報と比較する。これにより、ロボットでは、実際のマーカーの状況と動作に使用されるマーカーの状況との相違を示す情報を取得することができる。
【0015】
また、本発明の一態様は、ロボットにおいて、前記第2被識別体情報に基づいて、動作テストを行い、実作業を行う、構成が用いられてもよい。
この構成により、ロボットでは、第2被識別体情報に基づいて、動作テストを行い、実作業を行う。これにより、ロボットでは、テストを行うことによって、予期せぬ作業対象物、治具および工具類とロボットとの干渉による配置位置ずれや破壊等を防ぐことができ、ロボットの教示や実動作において、効率化をはかることができる。
【0016】
また、本発明の一態様は、上記の課題を解決するためになされたものであり、ロボットの動作に使用される被識別体を検出して第1被識別体情報を取得する取得部と、前記ロボットの動作中に使用される予め決められた第2被識別体情報を抽出する抽出部と、前記第1被識別体情報と前記第2被識別体情報とを比較する被識別体情報比較部と、を備える、制御装置である。
この構成により、制御装置では、被識別体情報比較部が、ロボットの動作に使用される
予め決められた第2被識別体情報の抽出結果に基づいて、ロボットの動作に使用される被識別体を検出して取得された第1被識別体情報とロボットの動作中に使用される予め決められた第2被識別体情報とを比較する。これにより、制御装置では、ロボットの動作に使用される被識別体を検出して取得された第1被識別体情報とロボットの動作中に使用される予め決められた第2被識別体情報との相違を示す情報を取得することができる。
【0017】
また、本発明の一態様は、上記の課題を解決するためになされたものであり、ロボットの動作に使用される被識別体を検出して第1被識別体情報を取得するステップと、前記ロボットの動作中に使用される予め決められた第2被識別体情報を抽出するステップと、前記第1被識別体情報と前記第2被識別体情報とを比較するステップと、をコンピューターに実行させるためのプログラムである。
この構成により、プログラムでは、ロボットの動作中に使用される予め決められた第2被識別体情報の抽出結果に基づいて、ロボットの動作に使用される被識別体を検出して取得された第1被識別体情報とロボットの動作中に使用される予め決められた第2被識別体情報とを比較する。これにより、プログラムでは、ロボットの動作に使用される被識別体を検出して取得された第1被識別体情報とロボットの動作中に使用される予め決められた第2被識別体情報との相違を示す情報を取得することができる。
【0018】
以上のように、本発明に係るロボット、制御装置およびプログラムによれば、ロボットの動作に使用される被識別体を検出して取得された第1被識別体情報とロボットの動作中に使用される予め決められた第2被識別体情報との比較を行う。これにより、本発明に係るロボット、制御装置およびプログラムでは、ロボットの動作に使用される被識別体を検出して取得された第1被識別体情報とロボットの動作に使用される予め決められた第2被識別体情報との相違に基づいてロボットの動作などを行うことができる。
【図面の簡単な説明】
【0019】
図1】本発明の一実施形態に係るロボットおよび作業対象の概略的な構成例を示す図である。
図2】本発明の一実施形態に係る制御装置の概略的な構成例を示すブロック図である。
図3】本発明の一実施形態に係るロボット動作制御情報の概要の一例を示す図である。
図4】本発明の一実施形態に係るロボット動作制御情報にしたがった処理の手順の一例を示すフローチャートである。
図5】本発明の一実施形態に係る被識別体情報の概要の一例を示す図である。
図6】本発明の一実施形態に係る被識別体情報にしたがった処理の手順の一例を示すフローチャートである。
図7】本発明の一実施形態に係る制御装置の他の概略的な構成例を示すブロック図である。
図8】本発明の一実施形態に係るロボットシステムおよび作業対象の概略的な構成例を示す図である。
【発明を実施するための形態】
【0020】
本発明の実施形態について図面を参照して詳細に説明する。
【0021】
[ロボットおよび作業対象の概略]
図1は、本発明の一実施形態に係るロボット1および作業対象の概略的な構成例を示す図である。
ロボット1は、上部にある頭部と、中央部にある胴体部と、下部にある台部(台の部分)と、胴体部に設けられた腕部を備える。
ロボット1は、腕部として2本の腕を有する双腕のロボットである。
【0022】
ロボット1は、一方の腕側の構成として、第1のマニュピュレーターMNP1と、第1の力センサー31と、第1のエンドエフェクターEND1を備える。これらは一体化され、本実施形態では、第1のマニュピュレーターMNP1と第1のエンドエフェクターEND1との間に第1の力センサー31を備える。
ロボット1は、他方の腕側の構成として、第2のマニュピュレーターMNP2と、第2の力センサー32と、第2のエンドエフェクターEND2を備える。これらは一体化され、本実施形態では、第2のマニュピュレーターMNP2と第2のエンドエフェクターEND2との間に第2の力センサー32を備える。
本実施形態では、一方の腕側の構成(エンドエフェクターEND1が取り付けられたマニュピュレーターMNP1)により7軸の自由度の動作を行うことが可能であり、他方の腕側の構成(エンドエフェクターEND2が取り付けられたマニュピュレーターMNP2)により7軸の自由度の動作を行うことが可能であるが、他の構成例として、6軸以下または8軸以上の自由度の動作を行う構成が用いられてもよい。
ここで、アーム(腕)は、7軸の自由度で動作する場合、6軸以下の自由度で動作する場合と比較して取り得る姿勢が増えることによって、例えば、動作が滑らかになり、当該アームの周辺に存在する物体との干渉を容易に回避することができる。また、アームが7軸の自由度で動作する場合、当該アームの制御は、アームが8軸以上の自由度で動作する場合と比較して計算量が少なく容易である。このような理由から、本実施形態では、好ましい一例として、7軸の自由度で動作するアームが用いられている。
【0023】
また、ロボット1は、第1のマニュピュレーターMNP1の所定部位に設けられた撮像部11と、第2のマニュピュレーターMNP2の所定部位に設けられた撮像部12と、頭部の左右のそれぞれに設けられた2個の撮像部21、22を備える。
それぞれの撮像部11、12、21、22は、例えば、CCD(Charge Coupled Device)あるいはCMOS(Complementary Metal Oxide Semiconductor)等を用いたカメラである。
撮像部11および撮像部12は、それぞれ、第1のマニュピュレーターMNP1および第2のマニュピュレーターMNP2のそれぞれの動きに応じて動かされる。
【0024】
また、ロボット1は、制御装置51を備える。本実施形態では、ロボット1は、台部の内部に制御装置51を備える。
制御装置51は、ロボット1の動作を制御する。制御装置51は、例えば、第1のマニュピュレーターMNP1および第2のマニュピュレーターMNP2の動作を制御する。さらに、ロボット1の腰などの部分の動作が可能な構成では、制御装置51は当該腰などの部分の動作を制御する。
本実施形態では、撮像部11、撮像部12、撮像部21および撮像部22のそれぞれは、画像を撮像して、撮像された画像の情報を制御装置51に送信(出力)する。また、第1の力センサー31および第2の力センサー32のそれぞれは、第1のエンドエフェクターEND1および第2のエンドエフェクターEND2のそれぞれに作用する力およびモーメントを検出して、検出結果の情報を制御装置51に送信(出力)する。制御装置51は、これらの情報を受信(入力)し、受信された情報を、ロボット1の動作を制御する際に、使用することが可能である。
ここで、撮像部11、撮像部12、撮像部21、撮像部22、第1の力センサー31および第2の力センサー32のそれぞれと制御装置51とは回線を介して接続されており、当該回線を介して情報を通信することが可能である。
【0025】
本実施形態では、第1のマニュピュレーターMNP1の位置および姿勢、第2のマニュピュレーターMNP2の位置および姿勢、および各撮像部11、12、21、22により撮像される画像について、座標系のキャリブレーションが行われている。
【0026】
なお、ロボットの構成としては、本実施形態のロボット1の構成に限定されない。例えば、1本の腕を有する単腕のロボットが用いられてもよい。また、ロボットに備えられる撮像部の数は任意であってもよい。また、ロボットに力センサーが備えられない構成が用いられてもよい。また、撮像部、力センサーおよび制御装置がロボットに備えらえる部位は、それぞれ、任意の部位であってもよい。また、制御装置の機能が複数のロボットの部位に分散されて備えられてもよい。
【0027】
図1には、作業対象として、トレー121、トレー121に載置された部品151、152、トレー122、トレー122に載置された部品171、172、治具131および治具132を示してある。本実施形態では、トレー121、122および治具131、132は、作業用のテーブル101の上に載置されている。
トレー121、122および治具131、132には、それぞれ、マーカー141〜144、161〜164、181〜182、191〜192が貼着されている。各マーカー141〜144、161〜164、181〜182、191〜192には、白黒またはカラーで所定のパターン(例えば、二次元バーコードのパターン)が印刷されている。当該パターンは、ロボット1により行われる作業に関する情報を含む。作業に関する情報としては、例えば、作業対象の物体を識別する情報が含まれてもよく、作業対象の物体の形状、重量、材質などの物理的条件を示す情報が含まれてもよく、作業の手順などを示す情報が含まれてもよい。また、各マーカー141〜144、161〜164、181〜182、191〜192には、当該パターンの一部(他の構成例として、外部でもよい。)として、当該各マーカー141〜144、161〜164、181〜182、191〜192を識別する情報(識別情報)が印刷される。
【0028】
具体例として、各トレー121、122に貼着されたマーカー141〜144、161〜164は、各トレー121、122を識別する情報、および、各トレー121、122において部品151、152、171、172が載置される場所を特定する情報を含むパターンを有する。
また、各治具131、132に貼着されたマーカー181、182、191、192は、各治具131、132を識別する情報、および、各治具131、132において物体(例えば、組み立て中の物体、または、個々の部品)が載置される場所を特定する情報を含むパターンを有する。
ここで、各マーカー141〜144、161〜164、181〜182、191〜192は、例えば、1個のマーカーの単体で所定の情報を示すパターンを有してもよく、または、同一の作業対象に貼着される複数のマーカーのパターンを合わせて所定の情報を示すパターンを有してもよい。一例として、四角形のトレーの四隅にマーカーが貼着され、4個のマーカーの内側の領域に部品が載置されることが示されてもよい。
【0029】
なお、作業対象の形状、数および配置などとしては、図1に示される例に限定されず、様々な態様が用いられてもよい。
また、マーカーの形状、数および配置などとしては、図1に示される例に限定されず、様々な態様が用いられてもよい。
また、マーカーのパターンとしては、図1に示される例に限定されず、様々な態様が用いられてもよい。
【0030】
本実施形態では、制御装置51は、あらかじめ設定された動作制御プログラムにしたがって、ロボット1の動作を制御する。この場合に、制御装置51は、撮像部(撮像部11、撮像部12、撮像部21および撮像部22のうちの1以上)により撮像された画像に含まれるマーカーのパターンを検出し、検出されたパターンに基づいて、ロボット1の動作を制御する。
具体例として、制御装置51は、各マニュピュレーター(第1のマニュピュレーターMNP1および第2のマニュピュレーターMNP2)の動作を制御することで、各トレー121、122に載置された部品151、152、171、172を各エンドエフェクター(第1のエンドエフェクターEND1および第2のエンドエフェクターEND2)により把持すること、各エンドエフェクターにより把持された部品を各トレー121、122に載置して離す(把持を解除する)こと、各エンドエフェクターにより把持された物体(例えば、組み立て中の物体、または、個々の部品)を各治具131、132に載置して各治具131、132を操作して当該物体を加工(例えば、穴開けなど)すること、などが可能である。
【0031】
このように、制御装置51は、各マーカー141〜144、161〜164、181〜182、191〜192のパターンに含まれる情報に基づいて、定められた一連の作業をロボット1に行わせることができる。一連の作業は、任意の作業でよく、例えば、物体の把持、物体の移動、物体の載置、物体の加工などのうちの1つ以上が含まれてもよい。したがって、一連の作業は、例えば、部品から完成品(完成までの途中の段階の物でもよい。)を組み立てる作業、物体を検査する作業、物体を仕分ける作業などが用いられてよい。
【0032】
[制御装置の一例]
図2は、本発明の一実施形態に係る制御装置51の概略的な構成例を示すブロック図である。
制御装置51は、記憶部301と、指示取得部302と、解釈切替部303と、解釈処理部304と、処理実行部305と、センサー結果取得部306と、表示部307を備える。
解釈処理部304は、第1の解釈部321と、第2の解釈部322を備える。
処理実行部305は、ロボット動作制御部341と、被識別体情報比較部342と、被識別体情報補正部343を備える。
【0033】
記憶部301は、情報を記憶する。本実施形態では、記憶部301は、ロボット1の動作を制御するためのプログラム(ロボット動作制御プログラム361)の情報を記憶する。ロボット動作制御プログラム361は、ロボット1の動作を教示するためのプログラム(教示用プログラム)として用いられる。ロボット動作制御プログラム361は、ロボット1の動作中に使用される予め決められた被識別体情報を有する。
【0034】
指示取得部302は、ユーザーにより行われる操作に基づく指示の情報を取得する。本実施形態では、指示の情報は、解釈部(第1の解釈部321または第2の解釈部322)を選択する指示の情報を含む。
一例として、指示取得部302は、ユーザーにより行われる操作を受け付ける操作部を備え、受け付けられた操作に基づく指示の情報を取得する。操作部は、例えば、ボタンあるいはマウスなどを備えてもよい。操作部は、例えば、タッチパネルの画面を用いて構成されてもよい。
他の例として、指示取得部302は、別体で構成された操作部から無線または有線で送信(出力)される指示の情報を受信(入力)して、当該情報を取得してもよい。この場合、操作部は、リモートコントローラーであってもよい。
【0035】
解釈切替部303は、指示取得部302により取得された指示の情報に基づいて、解釈処理部304で使用される解釈部(第1の解釈部321または第2の解釈部322)を選択的に切り替える。
第1の解釈部321は、ロボット動作制御プログラム361を解釈して、ロボット動作制御プログラム361の記述内容をそのまま反映させた解釈の結果である情報(ロボット動作制御情報401)を取得して、当該情報をロボット動作制御部341に出力する。
第2の解釈部322は、ロボット動作制御プログラム361を解釈して、ロボット動作制御プログラム361の記述内容に基づいて動作に使用される被識別体に関する情報を抽出した解釈の結果である情報(被識別体情報411)を取得して、当該被識別体情報411を被識別体情報比較部342に出力する。本実施形態では、動作に使用される被識別体に関する情報として、マーカー141〜144、161〜164、181〜182、191〜192に関する情報が用いられる。
【0036】
センサー結果取得部306は、センサーにより検出対象が検出された結果の情報(検出結果の情報)を取得する。センサー結果取得部306は、例えば、内部にセンサーを有してもよく、または、別体の外部のセンサーから送信(出力)される検出結果の情報を受信(入力)してもよい。
本実施形態では、センサーとして、撮像部(撮像部11、撮像部12、撮像部21および撮像部22)、および、力センサー(第1の力センサー31および第2の力センサー32)が用いられる。センサーが撮像部である場合における検出結果の情報として、当該撮像部により撮像された画像の情報が用いられる。センサーが力センサーである場合における検出結果の情報として、当該力センサーにより検出された値の情報が用いられる。
【0037】
センサー結果取得部306は、取得された検出結果の情報のうちで定められた情報をロボット動作制御部341に出力する。この定められた情報としては、例えば、取得された検出結果の情報のすべてが用いられるが、一部が用いられてもよい。
センサー結果取得部306は、取得された検出結果の情報のうちで定められた情報を被識別体情報比較部342に出力する。この定められた情報としては、例えば、少なくとも、マーカーを含む領域を撮像する撮像部(撮像部11、撮像部12、撮像部21および撮像部22のうちの1以上)により撮像された画像の情報が用いられる。
【0038】
ロボット動作制御部341は、第1の解釈部321により得られたロボット動作制御情報401に基づいて、ロボット本体の制御(本実施形態では、第1のマニュピュレーターMNP1および第2のマニュピュレーターMNP2の制御であり、さらに、動作が可能な構成では腰などの部分の制御)を行うことで、ロボット1の動作を制御する。この場合に、ロボット動作制御部341は、センサー結果取得部306から入力される検出結果の情報を使用して、ロボット1の動作を制御する。
具体例として、ロボット動作制御部341は、撮像された画像に含まれる物体(例えば、組み立て中の物体、または、個々の部品)またはマーカーなどの情報に基づいて、ロボット1の動作を制御する。また、ロボット動作制御部341は、力センサーにより検出された値の情報に基づいて、ロボット1の動作を制御する。本実施形態では、ロボット動作制御部341が画像の情報を処理する機能(画像処理機能)を備えるが、他の構成例として、画像処理機能がロボット動作制御部341とは別体で備えられてもよい。
【0039】
被識別体情報比較部342は、センサー結果取得部306から入力される検出結果の情報(動作に使用される被識別体の検出結果の情報)と第2の解釈部322により得られた被識別体情報411(動作中に使用される予め決められた被識別体情報)と、を比較する。本実施形態では、被識別体情報比較部342は、実際のマーカー141〜144、161〜164、181〜182、191〜192の状況とロボット動作制御プログラム361に規定されるマーカーの状況とを比較する。なお、動作に使用される被識別体の検出結果の情報と動作中に使用される予め決められた被識別体情報とに違いが発生する場合としては、例えば、動作中に使用される予め決められた被識別体情報に対して実際には異なる被識別体(動作に使用される被識別体)を設置した場合、あるいは、動作に使用される被識別体と一致していたが動作中に使用される予め決められた被識別体情報が変化した場合、あるいは、動作中に使用される予め決められた被識別体情報と一致していたが動作に使用される被識別体が変化した場合、あるいは、動作に使用される被識別体は変化していないが、それを検出するセンサーまたはセンサーによる検出結果を処理する系統が故障した場合が含まれ得る。
【0040】
ここで、マーカーの状況としては、様々な状況が用いられてもよい。例えば、各マーカーの有無の状況、各マーカーの色褪せなどの色の状況、または各マーカーの貼着の配置が正しいか否かの状況などのうちの1以上が用いられてもよい。マーカーの貼着の配置は正しいが当該マーカーの色が褪せているなどの原因によって正しく認識されない場合に、例えば、規定された色とは異なる色のマーカー(マーカーと推定されるもの)があるという情報を検出する構成が用いられてもよく、または、マーカーが無いという情報が検出される(当該マーカーが無いと判定される)構成が用いられてもよい。
なお、色が異なることによる読み取り不良(正しく検出されないこと)の原因としては、例えば、色褪せ以外に、マーカーに何らかの色が着色されたこと、または、照明あるいは太陽光である光源の状態が異なること、または、経年変化したこと、などがある。一例として、太陽光は、朝あるいは夕方などの時間帯によって変化し得る。
【0041】
被識別体情報比較部342は、比較に基づく情報を表示させる指示の情報を表示部307に出力する。また、被識別体情報比較部342は、比較に基づく情報を被識別体情報補正部343に出力する。
表示部307は、ディスプレイなどの画面を備える。表示部307は、被識別体情報比較部342から出力される指示の情報を入力し、入力された指示の情報に基づいて、表示用の情報を画面に表示する。
ここで、表示用の情報は、比較に基づく情報を含む。表示用の情報は、例えば、被識別体情報比較部342により生成されて表示部307に入力されてもよく、または、表示部307により生成されてもよい。
被識別体情報補正部343は、被識別体情報比較部342から出力される情報に基づいて、被識別体情報を補正する処理を行う。
【0042】
なお、本実施形態では、処理実行部305に含まれるロボット動作制御部341、被識別体情報比較部342および被識別体情報補正部343は、同一のプロセッサーがそれぞれのプログラムを実行することで実現される機能部である。また、当該プロセッサーは、制御装置51における任意の他の機能部を実現するために用いられてもよい。
他の構成例として、処理実行部305に含まれるロボット動作制御部341、被識別体情報比較部342および被識別体情報補正部343は、それぞれ、異なるプロセッサーを用いて実現されてもよく、または、3つのうちのいずれか1つのみが異なるプロセッサーを用いて実現されてもよい。
【0043】
ここで、第1の解釈部321および第2の解釈部322は、それぞれ、コンピューターのプログラムを解釈する任意の解釈器を用いて構成されてもよい。例えば、第1の解釈部321および第2の解釈部322は、それぞれ、コンパイラー言語を使用するコンパイラー、または、インタープリター言語を使用するインタープリターのうちのいずれかを用いて構成されてもよい。解釈では、例えば、字句解析、構文解析などが用いられてもよい。
コンパイラーを用いて構成された解釈部は、プログラムの全体を解釈し、当該プログラムを解釈した結果の情報に変換して出力する。当該情報は、一例として、バイナリーファイルの情報である。
インタープリターを用いて構成された解釈部は、プログラムを適時解釈し、当該プログラムを適時解釈の結果の情報に変換して出力する。
【0044】
本実施形態では、第1の解釈部321は、コンパイラーを用いて構成されている。第1の解釈部321は、コンパイラープログラムによりロボット動作制御プログラム361を処理し、ロボット1の動作を制御するロボット動作制御情報401に変換する。ロボット動作制御部341は、当該ロボット動作制御情報401にしたがって、ロボット1の動作を制御する。これに応じて、ロボット1が動作する。
本実施形態では、第2の解釈部322は、インタープリターを用いて構成されている。第2の解釈部322は、インタープリタープログラムによりロボット動作制御プログラム361を処理し、被識別体を検出する処理の記述部分を抽出した情報(被識別体情報411)に変換する。当該被識別体情報411は、例えば、被識別体を検出するための実行指令の情報である。被識別体情報比較部342は、当該被識別体情報411にしたがって、被識別体情報の比較を行う。
【0045】
なお、インタープリターでは、例えば、ソースコードを直接実行してもよく、または、ソースコードを中間コードに変換して、当該中間コードを実行してもよい。
また、他の構成例として、第1の解釈部321は、インタープリターを用いて構成されてもよい。また、他の構成例として、第2の解釈部322は、コンパイラーを用いて構成されてもよい。
【0046】
本実施形態では、解釈切替部303により第1の解釈部321を使用する状態に切り替えられたモードを通常動作モードと呼び、解釈切替部303により第2の解釈部322を使用する状態に切り替えられたモードを被識別体情報比較モードと呼ぶ。
また、本実施形態では、ロボット動作制御プログラム361は、ロボット1によりマーカーを検出しつつ所定の作業を実行することを実現するためのプログラムである。
【0047】
[通常動作モード]
図3および図4を参照して、通常動作モードについて説明する。
図3は、本発明の一実施形態に係るロボット動作制御情報401の概要の一例を示す図である。図3では、ロボット動作制御情報401の概要を分かり易く示してあるが、実際は、プロセッサーにより読まれるコードである。
ロボット動作制御情報401は、(n+1)回分のマーカーA0、A1、A2、・・・、A(n−2)、A(n−1)、Anについて、順次、それぞれのマーカーA0、A1、A2、・・・、A(n−2)、A(n−1)、Anの情報が検出されたか否かを判定し、当該情報が検出されたと判定した場合にはロボット1により所定の作業A0、A1、A2、・・・、A(n−2)、A(n−1)、Anを実行する、ことを実現するための情報を含む。また、ロボット動作制御情報401は、当該情報が検出されなかったと判定した場合には所定のエラー処理A0、A1、A2、・・・、A(n−2)、A(n−1)、Anを実行する、ことを実現するための情報を含む。nは、例えば、1以上の整数である。
【0048】
所定の作業A0、A1〜Anは、任意の作業が用いられてもよい。本実施形態では、それぞれの作業A0、A1〜Anは、それぞれのマーカーA0、A1〜Anが適切に検出された場合に、実行される。
所定のエラー処理A0、A1〜Anは、エラー時における任意の処理が用いられてもよい。具体例として、エラー時にユーザーに対して画面表示あるいは音出力などにより警報の情報を出力して通知する処理が、エラー処理として用いられてもよい。当該警報の情報には、検出に失敗した(検出されなかった)マーカーの識別情報が含まれてもよい。当該出力の前または後に、ロボット1を安全に停止させる処理が行われてもよい。
【0049】
ここで、通常動作モードでは、ロボット動作制御部341は、ロボット動作制御情報401に基づいた処理を実行する。
ロボット動作制御部341は、センサー結果取得部306から入力された情報のすべてまたは一部(本実施形態では、画像の情報)に基づいて、それぞれのマーカーA0、A1〜Anの情報が検出されたか否かを判定する。具体例として、ロボット動作制御部341は、撮像された画像に含まれるマーカーのパターンを読み取った場合には当該マーカーの情報が検出されたと判定し、一方、撮像された画像に含まれるマーカーのパターンを読み取らなかった場合には当該マーカーの情報が検出されなかったと判定する。
また、ロボット動作制御部341は、ロボット1の動作を制御することで、ロボット1により所定の作業を実行する。
また、ロボット動作制御部341は、所定の処理(例えば、エラー処理)を実行する。
【0050】
図4は、本発明の一実施形態に係るロボット動作制御情報401にしたがった処理の手順の一例を示すフローチャートである。
(ステップS1)
本処理が開始すると、まず、ロボット動作制御部341は、ロボット1の動作(第1のマニュピュレーターMNP1および第2のマニュピュレーターMNP2などの動作であり、本フローチャートにおいて以下も同様である。)を制御して移動させて、ロボット1を所定の初期姿勢とする。なお、初期状態においてロボット1が初期姿勢にある場合には、そのままでよく、ロボット1は移動させられなくてもよい。
(ステップS2)
ロボット動作制御部341は、マーカーA0の検出処理(マーカーのパターンの検出を試みる処理であり、本フローチャートにおいて以下も同様である。)を行う。
(ステップS3)
ロボット動作制御部341は、マーカーA0を検出したか否か(マーカーのパターンを検出したか否かであり、本フローチャートにおいて以下も同様である。)を判定する。
(ステップS4)
ロボット動作制御部341は、マーカーA0を検出したと判定した場合には、ロボット1の動作を制御して、所定の作業A0を実行する。
【0051】
(ステップS5)
次に、ロボット動作制御部341は、ロボット1の動作を制御して移動させて、ロボット1を所定の待機姿勢1とする。なお、待機姿勢1がその前の姿勢と同じである場合には、そのままでよく、ロボット1は移動させられなくてもよい。
(ステップS6)
ロボット動作制御部341は、マーカーA1の検出処理を行う。
(ステップS7)
ロボット動作制御部341は、マーカーA1を検出したか否かを判定する。
(ステップS8)
ロボット動作制御部341は、マーカーA1を検出したと判定した場合には、ロボット1の動作を制御して、所定の作業A1を実行する。
【0052】
(ステップS21)
一方、ステップS3の処理において、ロボット動作制御部341は、マーカーA0を検出しなかったと判定した場合には、エラー処理A0を実行する。そして、本処理が終了する。
(ステップS22)
また、ステップS7の処理において、ロボット動作制御部341は、マーカーA1を検出しなかったと判定した場合には、エラー処理A1を実行する。そして、本処理が終了する。
【0053】
以降のマーカーA2〜A(n−1)についても、ロボット動作制御部341は、同様な処理を行う。
【0054】
(ステップS9)
次に、ロボット動作制御部341は、ロボット1の動作を制御して移動させて、ロボット1を所定の待機姿勢nとする。なお、待機姿勢nがその前の姿勢と同じである場合には、そのままでよく、ロボット1は移動させられなくてもよい。
(ステップS10)
ロボット動作制御部341は、マーカーAnの検出処理を行う。
(ステップS11)
ロボット動作制御部341は、マーカーAnを検出したか否かを判定する。
(ステップS12)
ロボット動作制御部341は、マーカーAnを検出したと判定した場合には、ロボット1の動作を制御して、所定の作業Anを実行する。そして、本処理が終了する。
(ステップS23)
一方、ステップS11の処理において、ロボット動作制御部341は、マーカーAnを検出しなかったと判定した場合には、エラー処理Anを実行する。そして、本処理が終了する。
【0055】
[被識別体情報比較モード]
図5および図6を参照して、被識別体情報比較モードについて説明する。
図5は、本発明の一実施形態に係る被識別体情報411の概要の一例を示す図である。図5では、被識別体情報411の概要を分かり易く示してあるが、実際は、プロセッサーにより読まれるコードである。
被識別体情報411は、(m+1)回分のマーカーA0、A1〜Amについて、順次、それぞれのマーカーA0、A1〜Amの情報が検出されたか否かを判定し、当該情報が検出されたと判定した場合は(何も作業を実行せずに)次のマーカーの検出処理へ移行する、ことを実現するための情報を含む。また、被識別体情報411は、当該情報が検出されなかったと判定した場合は、被識別体情報エラー処理A0、A1〜Amを実行して、次のマーカーの検出処理へ移行する、ことを実現するための情報を含む。mは、例えば、1以上かつn以下の整数である。
【0056】
ここで、被識別体情報比較モードでは、第2の解釈部322は、ロボット動作制御プログラム361について、構文解析を行うことにより、各マーカーを検出する関数またはコマンドを検出し、検出結果がTRUE(真)である条件分岐(図3および図5の例では、ifの後における作業の実行)を隠ぺいする。また、第2の解釈部322は、検出結果がFALSE(偽)である条件分岐(図3および図5の例では、elseの後)に対しては所定のエラー処理(被識別体情報エラー処理)を挿入する(例えば、挿入するように置き換える)。これにより、第2の解釈部322は、被識別体情報411を生成する。
【0057】
所定の被識別体情報エラー処理A0、A1〜Amとしては、エラー時における任意の処理が用いられてもよい。具体例として、検出に失敗した(検出されなかった)マーカーの識別情報を記憶部301などに記憶させる処理が、被識別体情報エラー処理として用いられてもよい。エラー時にユーザーに対して画面表示あるいは音出力などにより警報の情報を出力して通知する処理が、被識別体情報エラー処理として用いられてもよい。当該警報の情報には、検出に失敗した(検出されなかった)マーカーの識別情報が含まれてもよい。当該出力の前または後に、ロボット1を安全に停止させる処理が行われてもよい。
【0058】
ここで、図3および図4における(n+1)は、全体の作業A0、A1〜Anを実行する際にマーカーを参照する回数を表す。そして、それぞれのマーカーAi(i=0、1、2、・・・、n)は、i番目に参照されるマーカーを表し、ロボット動作制御情報401において当該マーカーの識別情報を用いて当該マーカーが特定される。例えば、(n+1)回参照するマーカーA0、A1〜Anは、すべてが互いに異なるマーカーであってもよく、または、同じマーカー(同じマーカーの識別情報)を2回以上含んでもよい。つまり、異なる作業を実行する際に、同じマーカーを参照することがあり得る。
【0059】
これに対して、本実施形態では、被識別体情報411においては、同じマーカーについては、1回のみ検出処理を実行する構成としてある。つまり、マーカーの検出処理については、同じマーカーについては、1回のみ検出処理を実行すれば十分であると考えられる。これを実現するために、第2の解釈部322は、ロボット動作制御プログラム361を解釈する際に、同じマーカー(同じマーカーの識別情報)が2回以上重複する場合には、同じマーカーの情報を1回のみ被識別体情報411に反映させる。このため、図5および図6における(m+1)は、(n+1)以下の値となる。具体例として、(n+1)回分のマーカーA0、A1〜Anのすべてが互いに異なるマーカーである場合には(m+1)=(n+1)となり、(n+1)回分のマーカーA0、A1〜Anに同じマーカーの重複がある場合には(m+1)<(n+1)(mはマーカーの重複の分だけnより小さい。)となる。なお、被識別体情報411において各マーカーA0、A1〜Amの検出処理を実行する順序としては、例えば、ロボット動作制御情報401において各マーカーA0、A1〜Anの検出処理を実行する順序と同じ(但し、重複箇所を除く。)であってもよく、または、異なる順序が用いられてもよい。異なる順序として、例えば、ランダムな順序が用いられてもよい。
【0060】
それぞれのマーカーAj(j=0、1、2、・・・、m)は、j番目に検出処理が実行されるマーカーを表し、被識別体情報411において当該マーカーの識別情報を用いて当該マーカーが特定される。
なお、他の構成例として、同じマーカーの重複があっても、被識別体情報411において、ロボット動作制御情報401と同じ(n+1)回分のマーカーA0、A1〜Anの検出処理を実行する構成が用いられてもよい。この場合、m=nである。
【0061】
ここで、被識別体情報比較モードでは、被識別体情報比較部342は、被識別体情報411に基づいて、それにしたがった処理を実行する。
被識別体情報比較部342は、センサー結果取得部306から入力された情報のすべてまたは一部(本実施形態では、画像の情報)に基づいて、それぞれのマーカーA0、A1〜Amの情報が検出されたか否かを判定する。具体例として、被識別体情報比較部342は、撮像された画像に含まれるマーカーのパターンを読み取った場合には当該マーカーの情報が検出されたと判定し、一方、撮像された画像に含まれるマーカーのパターンを読み取らなかった場合には当該マーカーの情報が検出されなかったと判定する。
また、被識別体情報比較部342は、所定の処理(例えば、被識別体情報エラー処理)を実行する。
【0062】
図6は、本発明の一実施形態に係る被識別体情報411にしたがった処理の手順の一例を示すフローチャートである。
(ステップS101)
本処理が開始すると、まず、被識別体情報比較部342は、ロボット1の動作(第1のマニュピュレーターMNP1および第2のマニュピュレーターMNP2などの動作であり、本フローチャートにおいて以下も同様である。)を制御して移動させて、ロボット1を所定の初期姿勢とする。なお、初期状態においてロボット1が初期姿勢にある場合には、そのままでよく、ロボット1は移動させられなくてもよい。
(ステップS102)
被識別体情報比較部342は、マーカーA0の検出処理(マーカーのパターンの検出を試みる処理であり、本フローチャートにおいて以下も同様である。)を行う。
(ステップS103)
被識別体情報比較部342は、マーカーA0を検出したか否か(マーカーのパターンを検出したか否かであり、本フローチャートにおいて以下も同様である。)を判定する。
被識別体情報比較部342は、マーカーA0を検出したと判定した場合には、次のマーカーA1を検出するための処理(ステップS104)へ移行する。
(ステップS121)
一方、ステップS103の処理において、被識別体情報比較部342は、マーカーA0を検出しなかったと判定した場合には、被識別体情報エラー処理A0を実行する。そして、被識別体情報比較部342は、次のマーカーA1の検出処理(ステップS104)へ移行する。
【0063】
(ステップS104)
被識別体情報比較部342は、ロボット1の動作を制御して移動させて、ロボット1を所定の待機姿勢1とする。なお、待機姿勢1がその前の姿勢と同じである場合には、そのままでよく、ロボット1は移動させられなくてもよい。
(ステップS105)
被識別体情報比較部342は、マーカーA1の検出処理を行う。
(ステップS106)
被識別体情報比較部342は、マーカーA1を検出したか否かを判定する。
被識別体情報比較部342は、マーカーA1を検出したと判定した場合には、次のマーカーA2を検出するための処理へ移行する。
(ステップS122)
一方、ステップS106の処理において、被識別体情報比較部342は、マーカーA1を検出しなかったと判定した場合には、被識別体情報エラー処理A1を実行する。そして、被識別体情報比較部342は、次のマーカーA2の検出処理へ移行する。
【0064】
以降のマーカーA2〜A(m−1)についても、被識別体情報比較部342は、同様な処理を行う。
【0065】
(ステップS107)
次に、被識別体情報比較部342は、ロボット1の動作を制御して移動させて、ロボット1を所定の待機姿勢mとする。なお、待機姿勢mがその前の姿勢と同じである場合には、そのままでよく、ロボット1は移動させられなくてもよい。
(ステップS108)
被識別体情報比較部342は、マーカーAmの検出処理を行う。
(ステップS109)
被識別体情報比較部342は、マーカーAmを検出したか否かを判定する。
被識別体情報比較部342がマーカーAmを検出したと判定した場合には、本処理が終了する。
(ステップS123)
一方、ステップS109の処理において、被識別体情報比較部342は、マーカーAmを検出しなかったと判定した場合には、被識別体情報エラー処理Amを実行する。そして、本処理が終了する。
【0066】
ここで、本実施形態では、被識別体情報エラー処理A0、A1〜A(m−1)が発生した場合においても、以降のマーカーの検出処理へ移行して、すべての回数分のマーカーA0、A1〜Amの検出処理を実行する構成とした。
他の構成例として、いずれかのマーカーの被識別体情報エラー処理が発生した場合には、いったんマーカーの検出処理を停止させて、その旨をユーザーに対して画面表示あるいは音出力などにより出力し、ユーザーにより所定の操作が行われたことなどを契機として、以降のマーカーの検出処理へ移行する、構成が用いられてもよい。
さらに他の構成例として、いずれかのマーカーの被識別体情報エラー処理が発生した場合には本処理を終了する、構成が用いられてもよい。
【0067】
また、本実施形態では、被識別体情報比較部342は、所定の順序でマーカーA0、A1〜Amの検出処理を実行することが規定された被識別体情報411にしたがって、当該順序でマーカーA0、A1〜Amの検出処理を実行する。他の構成例として、マーカーA0、A1〜Amの検出処理を実行する順序が規定されない被識別体情報(被識別体情報411に対応する他の例に係る被識別体情報)を第2の解釈部322により生成し、被識別体情報比較部342が、撮像された画像から任意のマーカーを検出した順序で、当該マーカーに関する被識別体情報と動作中に使用される予め決められた被識別体情報との一致度など(検出の有無など)の情報を取得する、構成が用いられてもよい。
【0068】
被識別体情報比較モードにおいて、被識別体情報比較部342は、被識別体情報の比較結果を取得するため、被識別体情報411に含まれるマーカーA0、A1〜Amのうちのすべてまたは一部について、動作に使用される被識別体に該当するマーカーが存在するか否か(検出されたか否か)を示す情報を取得する。そして、被識別体情報比較部342は、その被識別体情報の比較結果を表示部307の画面に表示させる。これにより、ユーザーは、画面に表示された被識別体情報の比較結果を見ることで、動作に使用される被識別体において、いずれのマーカーが適切に貼着されているか、あるいは、いずれのマーカーが適切に貼着されていないか、を把握することができる。
【0069】
一例として、撮像部(撮像部11、撮像部12、撮像部21および撮像部22のうちの1以上)により撮像された画像に対してそれぞれのマーカーA0、A1〜Amの位置にその検出結果(検出の有無など)の情報を重ね合わせた画像を表示してもよい。この場合、マーカーが検出された位置(または、マーカーが検出されなかった位置)のみに所定の目印などを表示してもよい。この場合、例えば、それぞれのマーカーA0、A1〜Amが貼着される位置の情報(配置の情報)が、あらかじめ、画像の座標系などと対応付けられて、ロボット1に教示されて把握(記憶)される。
【0070】
他の一例として、それぞれのマーカーA0、A1〜Amの識別情報(または、それに対応する情報)と、その検出結果(検出の有無など)とを、一覧として表示してもよい。この場合、一覧における複数のマーカーA0、A1〜Amの並び順序としては、任意の並び順序が用いられてもよく、または、あらかじめ定められた所定の並び順序が用いられてもよい。当該所定の並び順序としては、例えば、マーカーの識別情報が数字あるいはアルファベットなどから構成される場合にそれに基づく順序(例えば、数字の大小の順序、または、アルファベットの並び順序など)が用いられてもよく、または、マーカーが貼着される位置に基づく順序(例えば、位置の並び順序など)が用いられてもよい。
【0071】
[被識別体情報の比較による相違に関する補正]
被識別体情報補正部343は、被識別体情報比較部342により検出された被識別体情報の比較結果に基づいて、被識別体情報の比較による相違を補正する処理を行う。被識別体情報の比較による相違を補正する処理としては、例えば、動作に使用される被識別体を検出することを許容しつつ、被識別体情報の比較による相違のある被識別体を検出することも許容するように補正する処理が用いられてもよく、または、動作に使用される被識別体を検出することは取りやめて、被識別体情報の比較による相違のある被識別体を検出するように補正する処理が用いられてもよい。
被識別体情報の比較による相違は、例えば、色褪せなどの色の具合などの原因によって生じ得る。
【0072】
一例として、(マーカーの色褪せなどの原因によって)マーカーの色が異なるという情報が被識別体情報の比較結果として取得された場合に、被識別体情報補正部343は、RGB系のR(赤)、G(緑)、B(青)のそれぞれに該当するとみなす範囲(許容レンジ)を変更する補正の処理を行ってもよい。
許容レンジを変更する手法の一例として、許容レンジを広げることが行われてもよく、つまり、もともとの正しい色を有するマーカーとともに、色褪せなどした色を有するマーカーについても、正常なマーカーとして認識することを許容してもよい。
許容レンジを変更する手法の他の一例として、許容レンジを変更することが行われてもよく、つまり、もともとの正しい色を有するマーカーではなく、色褪せなどした色を有するマーカーを、マーカーとして認識することを許容してもよい。例えば、許容レンジの中心位置が、色褪せなどした色を有するマーカーのRGBの中央値に合わせられてもよい。
【0073】
他の一例として、(マーカーの色褪せなどの原因によって)マーカーの色が異なるという情報が被識別体情報の比較結果として取得された場合に、被識別体情報補正部343は、ホワイトバランスを変更する補正の処理を行ってもよい。ホワイトバランスを変更する手法の一例として、ホワイトバランスの基準値(例えば、中央値など)を変更することが行われてもよい。
【0074】
ここで、被識別体情報補正部343は、補正の処理を、例えば、自動的に行ってもよく、または、ユーザーにより行われる操作に基づいて行ってもよい。
補正の処理を自動的に行う一例として、被識別体情報補正部343は、被識別体情報411と動作に使用される被識別体とが異なることを示す被識別体情報の比較結果が取得された場合に、自動的に、当該動作に使用される被識別体(もともと予定していたものとは異なる被識別体)について検出することを許容するように、所定の設定内容(例えば、RGBの許容レンジ、または、ホワイトバランスなど)を変更する。被識別体情報補正部343は、補正の内容を画面表示などによりユーザーに対して通知してもよい。
【0075】
補正の処理をユーザーにより行われる操作に基づいて行う一例として、被識別体情報補正部343は、被識別体情報411と動作に使用される被識別体とが異なることを示す被識別体情報の比較結果が取得された場合に、ユーザーにより行われる操作によって、所定の設定内容を変更する指示を取得し、当該指示にしたがって、当該所定の設定内容を変更する。このような被識別体情報の比較結果が取得されたことは、例えば、表示部307などによりユーザーに対して通知される。被識別体情報補正部343は、補正の内容を画面表示などによりユーザーに対して通知してもよい。
ユーザーにより指示を与える構成としては、例えば、被識別体情報補正部343により所定の設定内容の変更の仕方を自動的に決定することをユーザーが指示する構成が用いられてもよく、または、所定の設定内容の変更の仕方(例えば、変更後の設定値)をユーザーが指示する構成が用いられてもよい。
【0076】
また、被識別体情報の比較による相違を補正する処理は、例えば、すべての同種の被識別体(本実施形態では、すべてのマーカー)について行われてもよく、または、個別の被識別体ごと(本実施形態では、個別のマーカーごと)に行われてもよく、または、所定の領域ごと(本実施形態では、所定の領域に存在するマーカーの集まりごと)に行われてもよい。
【0077】
[制御装置の他の一例]
図7は、本発明の一実施形態に係る制御装置51Aの他の概略的な構成例を示すブロック図である。
図7に示される制御装置51Aにおいて、図2に示される制御装置51と同じ機能を有する構成部については、同じ符号を付してある。
制御装置51Aは、記憶部301Aと、指示取得部302と、解釈切替部303と、解釈処理部304Aと、処理実行部305と、センサー結果取得部306と、表示部307を備える。
解釈処理部304Aは、第1の解釈部321Aと、第2の解釈部322Aを備える。
処理実行部305は、ロボット動作制御部341と、被識別体情報比較部342と、被識別体情報補正部343を備える。
【0078】
記憶部301Aは、情報を記憶する。本実施形態では、記憶部301Aは、ロボット1の動作を制御するためのプログラム(ロボット動作制御プログラム361A)の情報と、被識別体に関する情報(被識別体情報362A)を記憶する。
ここで、被識別体情報362Aは、ロボット動作制御プログラム361Aにより参照される情報であり、ロボット動作制御プログラム361Aにより参照されるそれぞれの被識別体(本実施形態では、それぞれのマーカー)を識別する情報を含む。
【0079】
第1の解釈部321Aは、被識別体情報362Aを参照しつつロボット動作制御プログラム361Aを解釈して、被識別体情報362Aおよびロボット動作制御プログラム361Aの記述内容をそのまま反映させた解釈の結果である情報(ロボット動作制御情報401)を取得して、当該情報をロボット動作制御部341に出力する。
第2の解釈部322Aは、被識別体情報362Aを参照して、動作に使用される被識別体に関する情報を抽出した解釈の結果である情報(被識別体情報411)を取得して、当該情報を被識別体情報比較部342に出力する。この場合、第2の解釈部322Aは、例えば、被識別体情報362Aを参照するだけで被識別体情報411を取得できればロボット動作制御プログラム361Aを参照しなくてもよく、または、被識別体情報362Aを参照しつつロボット動作制御プログラム361Aを解釈して、被識別体情報411を取得してもよい。
【0080】
このように、図2の例のように、被識別体に関する情報と一体化されたロボット動作制御プログラム361が用いられてもよく、または、図7の例のように、被識別体に関する情報(被識別体情報362A)とロボット動作制御プログラム361Aとを分離した構成が用いられてもよい。本実施形態では、ロボット動作制御プログラム361に記述される内容と、ロボット動作制御プログラム361Aおよび被識別体情報362Aを合わせて記述される内容とは、同じ内容である。
なお、被識別体情報362Aは、例えば、ロボット動作制御プログラム361Aを記憶する記憶部301Aとは別の記憶部(例えば、データベース)に記憶されてもよい。
【0081】
[一連の処理の一例]
被識別体情報比較モードおよび通常動作モードを用いる一連の処理の一例を、(一連の処理の手順例1)〜(一連の処理の手順例6)として示す。なお、これは一例であり、他の様々な処理が行われてもよい。
(一連の処理の手順例1)ロボット1と必要な作業台(本実施形態では、テーブル101)を準備し、作業台におくワーク(本実施形態では、トレー121、122あるいは治具131〜132)の位置にマーカー141〜144、161〜164、181〜182、191〜192を貼り付ける(貼着する)。この処理は、例えば、ユーザーにより行われ、または、ロボット1を用いて行われてもよい。
(一連の処理の手順例2)ロボット1において、マーカーが貼り付けられている枚数の情報、および、それぞれのマーカーの貼り付け位置の情報と識別情報をデータベース(本実施形態では、例えば、記憶部301)に登録して記憶させる。この処理は、例えば、ユーザーにより行われ、または、ロボット1を用いて行われてもよい。
(一連の処理の手順例3)ユーザーは、前記のデータベースを参照しながら、ロボット1の動作としてユーザー向けに用意された命令(ユーザーにより指定できるコマンド)をデータベースに記憶(記録)させる。具体例として、所定のマーカーに対応する場所に存在する物体を把持して、当該物体を他の所定のマーカーに対応する場所に移動させる、または、所定のマーカーに対応する治具の場所に物体を移動させて、当該治具を用いて当該物体を加工する、などの命令が用いられる。本実施形態では、このような命令の集合により、ロボット動作制御プログラム361が生成される。なお、被識別体に関する情報は、例えば、図2の例におけるロボット動作制御プログラム361の内容に記述されて記憶されもよく、または、図7の例における被識別体情報362Aのようにロボット動作制御プログラム361Aとは別に記憶されてもよい。
(一連の処理の手順例4)その後、ユーザーからの指示などによって、被識別体情報比較モードを使用する状態へ切り替えられる。この場合、ロボット1では、マーカーの情報(本例では、前記したデータベースに登録されているマーカーの情報)に関し、マーカーの読み取り(検出処理)の命令のみを実行する。これにより、マーカーの読み取りテストが行われる。
(一連の処理の手順例5)ロボット1では、作業を実行せずに、マーカーの読み取り(検出処理)を実行し、読み取りエラー(検出の失敗)があるマーカーの箇所などをユーザーに対して通知する。この通知としては、例えば、すべてのマーカーについてまとめた通知が用いられてもよい。
(一連の処理の手順例6)ユーザーは、前記の通知の内容を見て、マーカーの貼り付け(貼り換えでもよい。)、または、貼り付けられたマーカーの位置の調整、または、所定の設定内容の変更などを行い、エラーを解消する。その後、ユーザーにより、通常動作モードを使用する状態へ切り替えられる。そして、ロボット1を用いた実際の作業を実行する。
このように、テストを行うことによって、予期せぬ作業対象物、治具および工具類とロボット1との干渉による配置位置ずれや破壊等を防ぐことができ、ロボット1の教示や実動作において、効率化をはかることができる。
【0082】
[実施形態のまとめ]
以上のように、本実施形態に係るロボット1では、動作に使用される被識別体を検出して取得された被識別体情報と動作中に使用される予め決められた被識別体情報との相違に基づく動作を行うことができる。また、ロボット1では、当該相違を示す情報を取得することができる。
ロボット1では、被識別体情報比較モードにおいて、ユーザーが作成したロボット動作制御プログラム361(または、データベースなどに記憶される被識別体情報362Aでもよい。)からロボット1の動作中に使用される予め決められた被識別体情報(例えば、マーカーに関する情報)を抜き出して、ロボット1の動作中に使用される予め決められた被識別体情報と動作に使用される被識別体を検出した情報とを比較することができる。ロボット1では、動作に使用される被識別体を参照する動作部分のみを抽出し、抽出された動作部分のみを実行し、動作に使用される被識別体を検出した情報との相違を求めて提示することができる。また、ロボット1では、動作に使用される被識別体を検出した情報を補正することができる。
【0083】
ロボット1では、例えば、ロボット動作制御プログラム361(または、ロボット動作制御プログラム361A)において動作に使用される被識別体のすべてについて、被識別体情報の比較による相違の検出処理を一括して行うことが可能である。また、当該被識別体のすべてについて、被識別体情報の比較による相違の表示処理を一括して行うことが可能である。なお、例えば、1つの被識別体の要素について1回だけ抜き出して被識別体情報の比較による相違の検出および表示を行うと効率的である。
【0084】
ロボット1では、ロボット動作制御プログラム361(または、ロボット動作制御プログラム361A)における実作業(ロボット1の動作の制御)を行わずに、被識別体を検出する部分の実動作を行い、動作に使用される被識別体が適切であるか否かを確認することができる。また、例えば、センサー(本実施形態では、撮像部)により被識別体(本実施形態では、マーカー)を検出する処理(本実施形態では、画像の検出あるいは画像の処理)が正常に行われるか否かを確認することも可能である。
このように、ロボット1では、実作業を行わずに、被識別体情報の比較による相違(例えば、マーカーの貼り付けのミス、あるいは、マーカーの色の不具合など)を発見することができる。また、同一のプログラム(ロボット動作制御プログラム361、361A)を用いて、実際の作業(ロボット1の動作の制御)と、被識別体情報の比較による相違の検出とを、切り替えて実行することができる。当該プログラムを変更せずに、被識別体の検出処理の検証を行うことができる。
【0085】
ここで、ロボットの動作に使用される被識別体は、マーカーに限られず、様々な種類の被識別体が用いられてもよい。例えば、温度、湿度、圧力、力の大きさ、光量、水量、所定の物体の存在、所定の物体の位置、所定の物体の数、所定の物体の配置など、様々な物理量が用いられてもよい。
また、センサーは、撮像部に限られず、様々なセンサーが用いられてもよい。例えば、前述した被識別体を検出することが可能なセンサーが用いられる。具体例として、被識別体が温度である場合には温度センサーが用いられ、被識別体が湿度である場合には湿度センサーが用いられ、他も同様である。物体の位置などは、例えば、撮像部により撮像される画像を処理して検出されてもよく、または、専用のセンサーが用いられてもよい。
【0086】
本実施形態では、ロボット動作制御プログラム361(または、データベースなどに記憶される被識別体情報362Aでもよい。)から被識別体情報411を取得する解釈部(第2の解釈部322、322A)として、1個の解釈部を用いた。他の構成例として、当該解釈部として、複数の解釈部を用いてもよい。
一例として、複数の異なる種類の被識別体について被識別体情報411を取得する場合に、それぞれの被識別体ごとに異なる解釈部を備えてもよい。これにより、複数の異なる種類の被識別体について、動作に使用される被識別体を検出した情報と比較することができ、被識別体情報の比較による相違を補正することができる。
【0087】
本実施形態では、制御装置51を内蔵したロボット1を示した。他の構成例として、制御装置とロボットとが別体で設けられる構成が用いられてもよい。
図8は、本発明の一実施形態に係るロボットシステムおよび作業対象の概略的な構成例を示す図である。
図8に示されるロボットシステムにおいて、図1に示されるものと同じ機能を有する構成部については、同じ符号を付してある。
図8に示されるロボットシステムは、制御装置501と、制御装置501を内蔵しないロボット1Aと、制御装置501とロボット1Aとを接続する回線511を備える。また、図8には、図1に示されるものと同じ作業対象を示してある。
ロボットシステムでは、制御装置501とロボット1Aとが回線511を介して通信することで、制御装置501がロボット1Aの動作を制御する。これにより、ロボットシステムにおいて、図1に示されるロボット1と同様な動作が実現される。
【0088】
一構成例として、ロボット1であって、ロボット1の動作に使用される被識別体(本実施形態では、マーカー)を検出して第1被識別体情報(本実施形態では、センサー結果取得部306により取得された検出結果の情報のうちで定められた情報)を取得し、ロボット1の動作中に使用される予め決められた第2被識別体情報(本実施形態では、ロボット動作制御プログラム361、361Aまたは被識別体情報362Aにより規定される被識別体情報411)と第1被識別体情報との比較後に動作する、ロボット1である。
ここで、ロボット1の動作に使用される被識別体は、ロボット1に、今現在、実際にセッティングされているものであり、一例として、マーカーである。
また、ロボット1の動作中に使用される予め決められた第2被識別体情報は、例えば、プログラムに記述されている内容であってロボット1に情報として与えるものであり、一例として、マーカーに関する情報である。
被識別体情報の比較結果(第1被識別体情報と第2被識別体情報との比較結果)は、本実施形態では、被識別体情報比較部342の出力結果である。
一構成例として、ロボット1において、比較に基づく情報を表示(本実施形態では、表示部307により表示)する。
一構成例として、ロボット1において、比較に基づく情報を画像に重ねて表示する。
一構成例として、ロボット1において、比較に基づく情報を一覧で表示する。
一構成例として、ロボット1において、比較に基づく補正(本実施形態では、被識別体情報補正部343による補正)を行う。
一構成例として、ロボット1において、ロボット1の動作中に使用される予め決められた第2被識別体情報は、ロボット1の動作の制御を規定するプログラム(本実施形態では、ロボット動作制御プログラム361、361A)または所定の記憶情報(本実施形態では、被識別体情報362A)に含まれる被識別体情報であって、当該プログラムを第1の解釈部(本実施形態では、第1の解釈部321、321A)により解釈して当該動作の制御の情報(本実施形態では、ロボット動作制御情報401)を生成してロボット1を制御し、当該プログラムまたは当該所定の記憶情報を第2の解釈部(本実施形態では、第2の解釈部322または第2の解釈部322A)により解釈して第2被識別体情報(本実施形態では、被識別体情報411)を抽出して比較を行う。
ここで、本実施形態では、プログラムから抽出された被識別体情報411(第2被識別体情報)は、例えば、ソースプログラムからマーカーを参照するソースコードの一部を抽出して、コンパイラー(解釈器)でコンパイルして実行モジュールを作成したものである。
一構成例として、ロボット1において、前記プログラムまたは前記所定の記憶情報に同一の識別情報を有する第2被識別体情報が重複して含まれる場合には、1つのみを抽出して1回のみ前記比較を行う。
一構成例として、ロボット1において、前記動作に使用される被識別体は、マーカーを含む。
一構成例として、ロボット1において、前記第2被識別体情報に基づいて、動作テストを行い、実作業を行う。
【0089】
一構成例として、ロボット1の動作に使用される被識別体を検出して第1被識別体情報を取得する取得部(本実施形態では、センサー結果取得部306)と、ロボット1の動作中に使用される予め決められた第2被識別体情報を抽出する抽出部(本実施形態では、第2の解釈部322、322A)と、第1被識別体情報と第2被識別体情報とを比較する被識別体情報比較部342を備える、制御装置51、51Aである。
一構成例として、ロボット1の動作に使用される被識別体を検出して第1被識別体情報を取得するステップと、ロボット1の動作中に使用される予め決められた第2被識別体情報を抽出するステップと、第1被識別体情報と第2被識別体情報とを比較するステップと、をコンピューター(本実施形態では、制御装置51、51Aの全体または一部を構成するコンピューター)に実行させるためのプログラムである。
【0090】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0091】
以上に説明した装置(例えば、制御装置51、501など)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体(記憶媒体)に記録(記憶)し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、オペレーティングシステム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM:Random Access Memory)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0092】
1、1A…ロボット、MNP1、MNP2…マニピュレーター、END1、END2…エンドエフェクター、11、12、21、22…撮像部、31、32…力センサー、51、51A、501…制御装置、121〜122…トレー、131〜132…治具、141〜144、161〜164、181〜182、191〜192…マーカー、151〜152、171〜172…部品、301、301A…記憶部、302…指示取得部、303…解釈切替部、304、304A…解釈処理部、305…処理実行部、306…センサー結果取得部、307…表示部、321、321A、322、322A…解釈部、341…ロボット動作制御部、342…被識別体情報比較部、343…被識別体情報補正部、361、361A…ロボット動作制御プログラム、362A、411…被識別体情報、401…ロボット動作制御情報、511…回線
図1
図2
図3
図4
図5
図6
図7
図8