説明

ロボット制御システム、ロボットシステム及びプログラム

【課題】 周辺装置の可動部に対して設定した侵入禁止領域に基づいてロボットの移動経路の生成を行うことで、ロボットのハンドから脱落した部品等が可動部に侵入することを抑止するロボット制御システム、ロボットシステム及びプログラム等を提供すること。
【解決手段】 ロボット制御システムは、処理部120と、記憶部110と、処理部120の処理結果に基づいてロボット30の制御を行うロボット制御部170とを含み、記憶部110は可動部を有する周辺装置の設計情報及び設置情報を記憶し、処理部120は周辺装置の設計情報及び設置情報に基づいて、周辺装置の可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部122と、設定された侵入禁止領域の情報に基づいて、ロボット30のアーム320のエンドポイントの経路情報を演算する経路演算部124とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御システム、ロボットシステム及びプログラム等に関する。
【背景技術】
【0002】
産業用ロボット等によるピック&プレイス動作(部品を意図する位置や姿勢で配置する動作)を組み合わせて部品搬送を実現する製造ラインが数多く運用されている。このピック&プレイス動作にかかる作業時間・作業スペースを削減する目的で、ロボットハンドを装着したロボットアームによる処理の自動化が行われている。ピック&プレイス動作は、整列配置したい部品をロボットハンドで把持する「把持動作」、ロボットハンドが把持している部品を搬送する「搬送動作」、ロボットハンドが把持している部品を意図する位置・姿勢で解放する「解放動作」の3種の動作を組み合わせて実現される。
【0003】
このようなピック&プレイス作業においては、「搬送動作」中に把持している部品のロボットハンドからの意図しない脱落が発生する場合がある。このとき、脱落した部品がロボットアーム作業空間中に設置される周辺装置の可動部や他のロボットアームのジョイント部分と衝突するケースや、脱落した部品を周辺装置の可動部や他のロボットアームのジョイント部分で噛み込むケースが発生する。これによって周辺装置や他のロボットアームの安全な動作が阻害されてしまうという課題がある。
【0004】
このような課題に対して、特許文献1では、シール部材で覆われた弾性部材がスライダー動作によって伸縮する仕組みを利用して、スライダーとスライダーカバーとの隙間から何かが侵入することを抑止する手法が開示されている。特許文献2では、可動ワークテーブルがカバーに遊挿することで、異物がロボット内部に侵入することを抑止している。特許文献3では、関節機構の動作に応じて、関節機構を覆うカバーの隙間を変化させることにより、関節機構と何かが接触することを抑止している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平6−126682号公報
【特許文献2】特開2002−66868号公報
【特許文献3】特開2006−346764号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の手法では、スライダーとスライダーカバーとの隙間が完全に塞がれているわけではない。そのため、細かな部品に対するピック&プレイス作業において、その部品が搬送動作中に意図せず脱落する場合には、スライダーとスライダーカバーに脱落部品を噛みこんでしまうケースや、スライダーとスライダーカバーの隙間から脱落部品がロボットアーム内部に侵入してしまうケースがある。
【0007】
特許文献2の手法では、カバーと可動ワークテーブルとの隙間に異物が位置する場合には異物の噛み込みが発生し、ロボットの安全動作が実現できないケースが発生する。
【0008】
特許文献3の手法では、関節機構を覆うカバーの隙間を状況に応じて変化させる機構は複雑であり、それを動作させるための演算もまた大きくなってしまう。特にこの演算は状況に応じてリアルタイムに行う必要がある。
【0009】
本発明の幾つかの態様によれば、周辺装置の可動部に対して設定した侵入禁止領域に基づいてロボットの移動経路の生成を行うことで、ロボットのハンドから脱落した部品等が可動部に侵入することを抑止するロボット制御システム、ロボットシステム及びプログラム等を提供することができる。
【課題を解決するための手段】
【0010】
本発明の一態様は、ロボットの制御に関する処理を行う処理部と、前記ロボットの制御に関する情報を記憶する記憶部と、前記処理部の処理結果に基づいて前記ロボットの制御を行うロボット制御部と、を含み、前記記憶部は、可動部を有し、前記ロボットの周辺に配置される周辺装置の設計情報及び設置情報を記憶し、前記処理部は、前記周辺装置の前記設計情報及び前記設置情報に基づいて、前記周辺装置の前記可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部と、設定された前記侵入禁止領域の情報に基づいて、前記ロボットのアームのエンドポイントの経路情報を演算する経路演算部と、を含むロボット制御システムに関係する。
【0011】
本発明の一態様では、周辺装置の可動部に対応付けてワークの侵入禁止領域を設定し、設定した侵入禁止領域に基づいてロボットのアームのエンドポイントの経路情報を生成する。よって、カバー部材の使用等とは異なる手法で、可動部による部品の噛み込み等を抑止すること等が可能になる。
【0012】
また、本発明の一態様では、前記経路演算部は、前記ワークの部品脱落範囲を設定し、設定した前記部品脱落範囲の情報と、前記侵入禁止領域の情報とに基づいて、前記経路情報を演算してもよい。
【0013】
これにより、脱落部品の落下経路に対応する部品脱落範囲と、侵入禁止領域に基づいて処理が可能になり、脱落部品が可動部に侵入するか否かの判定を行うこと等ができる。
【0014】
また、本発明の一態様では、前記経路演算部は、前記ワークの搬送のスタート位置と目標位置との間に設定された複数の中継ポイントの各中継ポイントにおいて、前記部品脱落範囲を設定し、設定した前記部品脱落範囲と前記侵入禁止領域の干渉チェックを行って前記経路情報を演算してもよい。
【0015】
これにより、中継ポイントを設定することで演算量を削減し、かつ、部品脱落範囲と侵入禁止領域の干渉チェックという容易な処理で経路情報の演算が可能になる。
【0016】
また、前記経路演算部は、前記アームの前記エンドポイントの第1の経路に含まれる各中継ポイントに設定された部品脱落範囲のうち少なくとも1つの部品脱落範囲と前記侵入禁止領域とが干渉し、前記アームの前記エンドポイントの第2の経路に含まれる各中継ポイントに設定された全ての部品脱落範囲と前記侵入禁止領域とが干渉しない場合に、前記第2の経路を前記アームの前記エンドポイントの移動経路として選択してもよい。
【0017】
これにより、複数の経路のうち、部品脱落範囲と侵入禁止領域とが干渉しない経路を選択することが可能になる。
【0018】
また、本発明の一態様では、前記経路演算部は、前記エンドポイントの速さ情報と移動方向情報に基づいて、前記部品脱落範囲を設定してもよい。
【0019】
これにより、慣性に関する情報を利用して部品脱落範囲を設定することが可能になる。
【0020】
また、本発明の一態様では、前記経路演算部は、前記エンドポイントの位置情報から求められた前記ワークの落下時間情報に基づいて、前記部品脱落範囲を設定してもよい。
【0021】
これにより、対象としている位置での位置情報に基づいて落下時間情報を求めることが可能になり、部品脱落範囲を適切に設定することができる。
【0022】
また、本発明の一態様では、前記記憶部は、前記ワークの設計情報を記憶し、前記経路演算部は、前記ワークの前記設計情報に基づいて、前記部品脱落範囲を設定してもよい。
【0023】
これにより、ワークの寸法等の情報に基づいて部品脱落範囲を設定することが可能になる
また、本発明の一態様では、前記記憶部は、前記ロボットの設計情報及び設置情報を記憶し、前記経路演算部は、前記ロボットの前記設計情報及び前記設置情報に基づいて、前記経路情報を演算してもよい。
【0024】
これにより、ロボット自身が周辺装置等と干渉しない経路情報を生成すること等が可能になる。
【0025】
また、本発明の一態様では、前記侵入禁止領域設定部は、前記周辺装置の前記可動部が回転機構を有する可動部である場合に、前記回転機構の回転軸の情報と、前記可動部の位置情報とに基づいて、前記侵入禁止領域を設定してもよい。
【0026】
これにより、周辺装置の設計情報及び設置情報の一例として、回転機構の回転軸の情報を用いた処理等が可能になる。
【0027】
また、本発明の一態様では、前記侵入禁止領域設定部は、前記周辺装置の前記可動部が並進機構を有する可動部である場合に、前記並進機構の並進方向の情報と、前記可動部の位置情報とに基づいて、前記侵入禁止領域を設定してもよい。
【0028】
これにより、周辺装置の設計情報及び設置情報の一例として、並進機構の並進方向の情報を用いた処理等が可能になる。
【0029】
また、本発明の一態様では、前記侵入禁止領域設定部は、前記周辺装置の前記可動部がカバー部材を有する場合に、前記カバー部材の設置位置情報に基づいて、前記侵入禁止領域を設定してもよい。
【0030】
これにより、カバー部材を併用することで、侵入禁止領域を削減すること等が可能になり、移動経路の選択の幅を広げること等ができる。
【0031】
また、本発明の他の態様は、請求項1乃至10のいずれかに記載のロボット制御システムと、前記ロボット制御システムにより制御される前記ロボットと、を含むロボットシステムに関係する。
【0032】
また、本発明の他の態様は、ロボットの制御に関する処理を行う処理部と、前記ロボットの制御に関する情報を記憶する記憶部と、前記処理部の処理結果に基づいて前記ロボットの制御を行うロボット制御部として、コンピューターを機能させ、前記記憶部は、可動部を有し、前記ロボットの周辺に配置される周辺装置の設計情報及び設置情報を記憶し、前記処理部は、前記周辺装置の前記設計情報及び前記設置情報に基づいて、前記周辺装置の前記可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部と、設定された前記侵入禁止領域の情報に基づいて、前記ロボットのアームのエンドポイントの経路情報を演算する経路演算部と、を含むプログラムに関係する。
【図面の簡単な説明】
【0033】
【図1】本実施形態で用いられるロボット及び周辺装置の例。
【図2】本実施形態のシステム構成例。
【図3】本実施形態の詳細なシステム構成例。
【図4】ベルトコンベアーの可動部に設けられる侵入禁止領域の例。
【図5】図5(A)〜図5(D)は侵入禁止領域の形状を説明する図。
【図6】図6(A)は侵入禁止領域(回転)設定処理を説明するためのフローチャート、図6(B)、図6(C)は作業空間における侵入禁止領域(回転)の設定例。
【図7】設計情報及び設置情報から可動部ベクトルを求める手法を説明する図。
【図8】自動ステージの可動部に設けられる侵入禁止領域の例。
【図9】図9(A)は侵入禁止領域(並進)設定処理を説明するためのフローチャート、図9(B)、図9(C)は作業空間における侵入禁止領域(並進)の設定例。
【図10】設計情報及び設置情報から可動部ベクトルを求める手法を説明する図。
【図11】ロボットのジョイント部等に設けられる侵入禁止領域の例。
【図12】カバー部材を用いた場合の侵入禁止領域の例。
【図13】図13(A)は移動経路演算処理を説明するためのフローチャート、図13(B)、図13(C)は作業空間におけるロボットの現在位置と目標位置の例。
【図14】図14(A)、図14(B)は作業空間に設定される経路中継位置候補の例。
【図15】図15(A)、図15(B)は作業空間における部品脱落範囲の例、及び演算された移動経路の例。
【図16】移動経路演算処理を説明するためのフローチャート。
【図17】部品脱落範囲の設定手法を説明する図。
【図18】一般的なロボットの制御処理を説明するためのフローチャート。
【図19】図19(A)、図19(B)は侵入禁止領域を円錐台形状にすることの理由を説明する図。
【発明を実施するための形態】
【0034】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0035】
1.本実施形態の手法
産業用ロボットによるピック&プレイス動作を組み合わせることで部品搬送を実現する製造ラインが数多く運用されている。ピック&プレイス動作は「把持動作」、「搬送動作」、「解放動作」の3種の動作を組み合わせて実現されるが、このうちの「搬送動作」中に把持している部品がロボットのハンドから脱落する場合が考えられる。
【0036】
脱落した部品が、他のものに衝突せず床に落ちたり、構造上繊細ではないものへの衝突にとどまったりした場合等には、何らかの手段により(例えばユーザー自身により)、当該脱落部品を回収し、別の部品に対してピック&プレイス動作を行わせることにより、製造ラインの運用を継続することができる。しかし、製造ラインにおいて用いられる機器の中には、周辺装置の可動部分や、ロボットアームのジョイント部分等、脱落した部品を噛み込むことにより動作に大きな影響が出る部位を持つものが存在する。
【0037】
上述した特許文献1〜特許文献3においては、主にロボットの関節部分等にカバー部材を設けることにより、脱落部品を噛み込む可能性のある部分を保護する手法が提案されている。しかし、特許文献1及び特許文献2においては、カバー部材の設置範囲及び設置位置等の制約から部品の噛み込み等の抑止効果が十分ではない。また特許文献3においては、関節機構を覆うカバー部材の隙間を、当該関節機構の動作に応じて変化させる手法が提案されているが、カバー部材の隙間を変化させる機構は複雑であり、その動作のための演算も負荷が大きい。特に、関節機構の動作に応じてカバー部材の隙間を変化させる必要があるため、ロボットの動作が予め全てわかっている場合を除いて、事前に演算処理を行っておくことが困難であり、リアルタイム性が求められてしまう。
【0038】
そこで本出願人は、カバー部材により可動部分を保護するという観点ではなく、ロボットの移動経路を適切に演算することにより部品の噛み込み等を抑止する手法を提案する。なお、本実施形態においては「ロボットの移動経路」とは、ロボットアームのエンドポイント(ハンド等が設置されるアームの先端位置)の移動経路であるものとする。アームのエンドポイントに対してハンドが設定される場合(後述する図1の330等)には、ハンドの移動経路とほぼ同義である。以降、「ロボットの移動経路」或いは「移動経路」という用語については同様の意味で用いられるものとする。また、本実施形態における移動経路生成手法と、カバー部材による保護手法をあわせて用いることを妨げるものではなく、この例については図12等を用いて後述する。
【0039】
具体的には、周辺装置において部品の噛み込み等が発生するおそれのある部分に対応付けて、図4のRB1等に示すような侵入禁止領域を設定する。それとともに、部品の脱落が発生した場合に、当該部品が落下する可能性のある領域を表す部品脱落範囲(落下範囲)を設定する。これは例えば図17に示すようなものであり、ある候補位置(移動経路上の中継ポイントの候補位置)において、直前の中継ポイントから当該候補位置へ所与の速度で移動した場合の、部品の運動方向を反映した範囲である。例えば、ある方向へロボットハンドが移動中に部品が脱落した場合には、当該部品は真下に落ちるのではなく、慣性によりロボットハンドの運動方向と同じ方向の速度を持って落下することになる。つまり、部品脱落範囲とは脱落部品の落下経路に対応した領域となる(落下経路そのものである必要はない)。
【0040】
よって、侵入禁止領域と部品脱落範囲との干渉(例えば重なり)をチェックすることで、侵入禁止領域が設定された可動部が部品を噛み込むことが想定されないような移動経路を生成することができる。具体的には、侵入禁止領域と部品脱落範囲とが干渉している場合には、そのときの移動経路の候補位置において部品の脱落があった場合、部品の噛み込みの可能性を否定できないことになり、当該候補位置は移動経路の中継ポイントとして採用されない。逆にチェックの結果、侵入禁止領域と部品脱落範囲とが干渉していない場合には、当該候補位置を中継ポイントとして採用してもよいことになる。
【0041】
このようにして、ロボットの現在位置と目標位置との間の中継ポイントを探索していくことで、目的の移動経路を生成することができる。
【0042】
以下、システム構成例について説明した後、侵入禁止領域の設定手法について説明する。その後、部品脱落範囲の設定手法を含めた移動経路の演算手法について説明する。
【0043】
2.システム構成例
本実施形態に係るロボット制御システムにより制御されるロボットと周辺装置とを含む製造ラインの構成例を、図1を用いて説明する。製造ラインは、ロボット30と、ベルトコンベアー60と、自動ステージ70(1軸搬送装置)と、図1には不図示の情報処理装置10を含む。ただし、製造ラインは図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。ロボット30は、アーム320及びハンド330を有し、情報処理装置10からの動作指示に従い処理を行う。例えばベルトコンベアー60や自動ステージ70等に載せられたワークに対して処理を行う。また製造ラインは、ワークの位置や姿勢等に関する情報を検出する撮像装置を含んでもよい。ワークの位置や姿勢等を検出することができればよいため、撮像画像の取得以外の手法(例えばレーザー等を用いた3次元スキャン)を用いてもよい。
【0044】
具体的な構成について図2を用いて説明する。情報処理装置10は、記憶部110と、処理部120と、表示部150と、外部I/F部160と、ロボット制御部170と、を含む。
【0045】
記憶部110は、データベースを記憶したり、処理部120等のワーク領域となるもので、その機能はRAM等のメモリーやHDD(ハードディスクドライブ)などにより実現できる。記憶部110は、設計情報112と、設置情報114と、制御情報116と、侵入禁止領域情報118を記憶する。ただし、記憶部110は図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。各情報の具体例については、図3を用いて後述する。
【0046】
処理部120は、記憶部110からのデータや、外部I/F部160において受信した、撮像装置或いはロボット30からの情報等に基づいて種々の処理を行う。この処理部120の機能は、各種プロセッサ(CPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。
【0047】
処理部120は、侵入禁止領域設定部122と、経路演算部124とを含む。処理部120は図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。侵入禁止領域設定部122は、侵入禁止領域の設定処理を行う。設定される侵入禁止領域の具体例は図5(A)〜図5(D)等を用いて後述する。経路演算部124は、周辺装置の可動部での部品の噛み込み等を抑止する移動経路を演算する。具体的には部品脱落範囲を設定し、設定した部品脱落範囲と、侵入禁止領域設定部122で設定された侵入禁止領域との干渉チェックを行うことで経路を演算する。詳細については後述する。
【0048】
表示部150は、各種の表示画面を表示するためのものであり、例えば液晶ディスプレイや有機ELディスプレイなどにより実現できる。
【0049】
外部I/F部160は、情報処理装置10に対するユーザーからの入力等を行ったり、撮像装置20やロボット30からの情報を受け付けるためのインターフェースである。ユーザーからの入力等に関しては、スイッチやボタン、キーボード或いはマウス等から構成されてもよい。
【0050】
ロボット制御部170は、処理部120での処理結果に基づいて、ロボットの各部(アーム320及びハンド330等)の制御を行う。具体的には、外部I/F部160を介してロボット30に対して制御信号を送信することで制御を行うことになる。
【0051】
また、ロボット30は、アーム320及びハンド330を含む。
【0052】
次に図3を用いて、情報処理装置10(表示部150及び外部I/F部160を除く)について詳細に説明する。
【0053】
図3に示したように、設計情報112は、ロボット設計情報1121と、コンベアー設計情報1123と、自動ステージ設計情報1125と、部品設計情報1127とを含む。ロボット設計情報1121は、ロボット30のアームの寸法、ハンドの寸法及びジョイントの取り得る角度等のロボットの設計時に決まる情報である。同様にコンベアー設計情報1123は、ベルトコンベアー60の設計時に決まる情報であり、ベルトコンベアー60の各部の寸法や、ベルトコンベアー60全体における可動部の位置、可動部(回転機構)の回転軸等の情報である。自動ステージ設計情報1125は、自動ステージの寸法や、可動部(並進機構)の運動方向等の情報である。部品設計情報1127は、部品の形状、寸法等の情報である。
【0054】
設置情報114は、ロボット設置情報1141と、コンベアー設置情報1143と、自動ステージ設置情報1145とを含む。これらはそれぞれ、ロボット30、ベルトコンベアー60及び自動ステージ70が、作業空間内のどこに設置されているかを表す情報である。具体的には、作業空間に対応する仮想空間上の基準座標系における位置及び方向の座標等により表される。
【0055】
制御情報116は、ロボット状態情報1161と、ロボット経路情報1162と、コンベアー状態情報1163と、自動ステージ状態情報1165と、部品脱落範囲情報1167とを含む。ロボット状態情報1161、コンベアー状態情報1163及び自動ステージ状態情報1165はそれぞれ、ロボット30、ベルトコンベアー60及び自動ステージ70の状態を表す情報である。ここで状態とは、例えば可動部の回転方向や並進方向、可動部の運動速度等が考えられる。ロボットであれば各ジョイントがどのような角度で且つどのような速度を持って回転しているかがわかるため、ロボットの姿勢や移動方向等がわかる。ロボット経路情報1162は、経路演算部124においてそれまでに演算された移動経路の情報や、作業空間上に配置される中継ポイントの候補位置の情報等である。部品脱落範囲情報1167は、部品脱落範囲算出部1241において算出された部品脱落範囲に関する情報を記憶する。部品脱落範囲は後述するように、部品の設計情報やロボットの移動速度、移動方向等により変化するものであるため、用いる部品及び状況によって異なる。記憶部110の容量が十分確保されているのであれば、過去に算出された部品脱落範囲の情報を部品脱落範囲情報1167として記憶しておくことで、後に同じ部品を同じ状況で搬送する際に、再演算を行う必要がなくなる。
【0056】
また侵入禁止領域設定部122は、可動部が回転機構である場合の侵入禁止領域(回転)設定部122−1と、可動部が並進機構である場合の侵入禁止領域(並進)設定部122−2とを含む。同様に、侵入禁止領域情報118も、侵入禁止領域(回転)情報118−1と、侵入禁止領域(並進)情報118−2を含む。
【0057】
その他に、記憶部110は、ロボットの目標位置と、当該目標位置におけるロボットの姿勢に関する情報である目標位置姿勢情報119を記憶してもよい。これは例えば、外部I/F部160を介してユーザーにより設定されてもよいし、処理部120により自律的に設定されてもよい。
【0058】
3.侵入禁止領域の設定手法
次に周辺装置の可動部に対して設定される侵入禁止領域について説明する。まず、回転機構を有する可動部に対する侵入禁止領域について説明した後、並進機構を有する可動部に対する侵入禁止領域について説明する。その後、変形例について説明する。
【0059】
3.1 回転機構を有する可動部に対して設定される侵入禁止領域
ベルトコンベアー60の可動部は実際には駆動モーターであり、この可動部を図1に示したように可動部ベクトルVB1及び可動部ベクトルVB2として表現する。この可動部ベクトルVB1或いはVB2の方向が、回転機構を有する可動部における回転軸の方向を表し、当該回転軸周りの回転方向が可動部の回転方向となる。
【0060】
侵入禁止領域は、可動部ベクトルに対応して設定されることになる。設定の例を図4に示す。侵入禁止領域は、可動部のうち外部に露出している部分を覆うように設定されればよいため、図4のRB’1に示した網掛けの領域のように、最低限可動部の露出部分を覆う平面的領域を設定することが考えられる。
【0061】
しかし、後述するように侵入禁止領域との干渉チェックを行う部品脱落範囲は、部品の落下経路に対応した領域が設定されることが想定されるが、必ずしも落下経路を完全に包含するものではない。そのため、最低限の侵入禁止領域(例えばRB’1)しか設けていない場合には、部品脱落範囲との干渉は起こしていなくても、実際の動作においては脱落部品の可動部による噛み込み等が起こる可能性を否定できない。そのため、侵入禁止領域は空間的な広がりを持つ領域を設定しておくものとする。例えば、RB1〜RB4に示したような円錐台状の領域を設定すればよい。なお、図1では不図示であったが、図4におけるベルトコンベアーの裏側にも可動部は存在し、当該可動部に対して可動部ベクトルVB3及びVB4が設定されているものとする。
【0062】
なお、侵入禁止領域の形状は図4及び図5(B)に示した円錐台に限定されるものではない。例えば図5(A)に示したように円柱状の侵入禁止領域を設定してもよい。侵入禁止領域を広く取れば取るほど、可動部による部品の噛み込み等の抑止効果は高まるが、その分、部品脱落範囲との干渉が起きやすくなるため、ロボットの移動経路が制限されることになる。そのため、侵入禁止領域が広すぎると、ロボットが目標位置まで移動する経路が存在しなかったり、そうでなくとも移動経路が長くなりすぎたり、ロボットに対して負荷のかかるような姿勢を取らざるを得なくなったりする。つまり、ロボットの移動経路生成の容易さと、部品の噛み込みの抑止効果とはトレードオフの関係にあるため、実際の状況に応じて侵入禁止領域を設定することが望ましい。よって本実施形態においては、上述したRB’1〜RB’4のような最低限の広がりである平面的な領域を、侵入禁止領域として用いてもよく、空間的な広がりを持つものに限定されるものではない。
【0063】
回転機構を有する可動部に対して侵入禁止領域を設定する処理の詳細について、図6(A)のフローチャートを用いて説明する。この処理が開始されると、まずベルトコンベアー60と、自動ステージ70の設計情報112を取得する(S101)。ここで、自動ステージ70の情報も取得するのは、自動ステージ70における並進運動を発生させるために、回転機構を有するモーターが用いられるためである。ただし、当該モーターに対する侵入禁止領域の設定処理はベルトコンベアー60に対する処理と同様であるため、詳細な説明は省略する。
【0064】
設計情報112のうち、具体的にはコンベアー設計情報1123及び自動ステージ設計情報1125を取得することになる。これは、上述したようにベルトコンベアー60の寸法等の情報であり、これによりベルトコンベアー60の基準位置に対してどの位置に回転機構が設けられているかがわかることになる。具体例を図7に示す。設計情報より得られるのは、図7においてA1で示したベルトコンベアー60の基準位置に設けられたxyz座標系における、回転軸の位置及び方向である。つまり、各可動部ベクトルVB1〜VB4の始点の位置pと、ベクトルの方向nを取得することができる。p、nはそれぞれxyzの3軸に対応した3つの値からなるベクトルである。
【0065】
次にベルトコンベアー60及び自動ステージ70の設置情報114を取得する(S102)。具体的にはコンベアー設置情報1143及び自動ステージ設置情報1145を取得することになる。設置情報114により、作業空間内のどの位置に、どのような姿勢でベルトコンベアー60等が設置されているかがわかることになる。具体例を図7に示す。設置情報114により得られるのは、図7においてA2で示した作業空間の基準位置に設けられたXYZ座標系における、ベルトコンベアー60の設置位置T及び、設置の方向ω及びθである。なおωはベルトコンベアー60が設置位置T上で回転可能な回転軸の方向を表すベクトルであり、θは実際の回転角を表すスカラーである。
【0066】
設計情報112及び設置情報114が取得されたら、作業空間における可動部ベクトルの回転運動軸の情報を算出する(S103)。これはS101で得られたpとnに対して下式(1)、(2)の演算を行うことにより算出する。
【0067】
=Rp+T ・・・・・(1)
=Rn+T ・・・・・(2)
ここでRは、ωの各要素及びθにより表される行列であり、図7に示したものとなる。これにより、作業空間の基準位置に対する各可動部ベクトルVB1〜VB4の位置をP、方向をNとして求めることができる。
【0068】
そして、求められた可動部ベクトルに対して図4に示したように侵入禁止領域を所定の形状を用いて設定し(S104)、設定した侵入禁止領域(回転に関する侵入禁止領域)の情報を侵入禁止領域(回転)情報118−1に記憶する(S105)。作業空間における侵入禁止領域の設定例を図6(B)及び図6(C)に示す。図6(B)は作業空間を水平に見た図であり、図6(C)は作業空間を上方から見た図である。
【0069】
3.2 並進機構を有する可動部に対して設定される侵入禁止領域
図1に、自動ステージ70における並進運動の方向を表す可動部ベクトルVC1及びVC2を示す。自動ステージ70とは、上述したように1軸の搬送装置であり、自動ステージ70上におかれた部品をある運動軸の正方向或いは負方向に並進運動させるものである。よって、可動部ベクトルVC1等(ここではある一方向をVC1、VC1の反対方向をVC2としている)を中心として、可動部を覆うように侵入禁止領域を設定すればよい。
【0070】
設定の例を図8に示す。例えば図8にRC’として網掛けで示したような平面的な領域を設定してもよい。また、回転機構の時と同様の理由で、空間的に広がりを持つ3次元領域を設定してもよい。具体的には、図8及び図5(C)に示したように直方体の領域を設定してもよいし、図5(D)に示したように四角錐台の領域を設定してもよい。領域の大きさが大きいほど、部品等の噛み込みの抑止効果が期待できる反面、ロボットの移動経路が限定されてしまうため、状況に応じて適切に設定する必要があることは回転機構の場合と同様である。
【0071】
並進機構を有する可動部に対して侵入禁止領域を設定する処理の詳細について、図9(A)のフローチャートを用いて説明する。この処理が開始されると、まず自動ステージ70の設計情報112を取得する(S201)。設計情報112のうち、具体的には自動ステージ設計情報1125を取得することになる。これにより自動ステージ70の基準位置に対してどの位置に並進機構が設けられているかがわかることになる。具体例を図10に示す。設計情報より得られるのは、自動ステージ70の基準位置に設けられた座標系における、並進機構の位置及び方向である。つまり、各可動部ベクトルVC1〜VC2の始点の位置pと、ベクトルの方向nを取得することができる。p、nはそれぞれxyzの3軸に対応した3つの値からなるベクトルである。
【0072】
次に自動ステージ70の設置情報114を取得する(S202)。具体的には自動ステージ設置情報1145を取得することになる。設置情報114により、作業空間内のどの位置に、どのような姿勢で自動ステージ70が設置されているかがわかることになる。具体例を図10に示す。設置情報114により得られるのは、図10においてB2で示した作業空間の基準位置に設けられたXYZ座標系における、自動ステージ70の設置位置T及び、設置の方向ω及びθである。
【0073】
設計情報112及び設置情報114が取得されたら、作業空間における可動部ベクトルの並進運動軸の情報を算出する(S203)。これは回転機構の例と同様であり、pとnに対して上式(1)、(2)の演算を行うことにより算出する。これにより、作業空間の基準位置に対する各可動部ベクトルVC1〜VC2の位置をP、方向をNとして求めることができる。
【0074】
そして、求められた可動部ベクトルに対して図8に示したように侵入禁止領域を所定の形状を用いて設定し(S204)、設定した侵入禁止領域(並進に関する侵入禁止領域)の情報を侵入禁止領域(並進)情報118−2に記憶する(S205)。作業空間における侵入禁止領域の設定例を図9(B)及び図9(C)に示す。
【0075】
3.3 変形例
変形例について説明する。上述の説明では、侵入禁止領域は周辺装置(例えばベルトコンベアー60及び自動ステージ70)に設定されるものとしたが、これに限定される必要はない。例えば、図11に示したようにロボット30に対して侵入禁止領域を設定してもよい。
【0076】
図1に示したように、ロボットのアーム320にはジョイントが存在してもよい。その場合、ある回転軸の軸周りの回転を行うことでアームの姿勢を変化させることになる。よって当該回転軸を可動部ベクトルVRとして設定すればよく、具体的には図11のVR1〜VR6等が考えられる。
【0077】
可動部ベクトルVR1〜VR6の情報はロボット設計情報1121に記憶されていることになる。あとは、上述した回転機構における侵入禁止領域の設定と同様の手法を用いればよい。具体的には、ロボット設置情報1141をあわせて用いることで、作業空間における可動部ベクトルVR1〜VR6の位置と方向を求め、求めた位置と情報に対応させて、侵入禁止領域RR1〜RR6を設定する。侵入禁止領域RR1〜RR6は図11の例では円柱状になっているが、これに限定されないことは上述したとおりである。
【0078】
また、上述したように本実施形態はカバー部材による保護する手法の採用を妨げるものではない。本実施形態の手法にあわせてカバー部材を用いる例を図12に示す。図12は並進機構を有する自動ステージ70の例である。ここで、並進機構上にカバー部材CVを設置したものとする。その場合、カバー部材CV上に部品が脱落したとしても、可動部にダメージを与えることはないため、カバー部材CVにより保護される領域に対しては、侵入禁止領域を設定する必要がない。よって、カバー部材CVがない場合に設定される侵入禁止領域(図8のRC等)に比べて、カバー部材CVにより保護される領域、及び保護される領域に対応する空間的な広がりを持つ領域分だけ狭い領域を侵入禁止領域とすればよい。具体的には、図12においてRC2で示したような領域を侵入禁止領域とすることが考えられる。このようにすることで、カバー部材CVがない場合に比べて侵入禁止領域を狭くすることができるため、ロボットの移動経路の選択の幅が広がることになり、移動経路生成が容易になる。
【0079】
4.ロボットの移動経路演算手法
図13(A)のフローチャートを用いて、当該移動経路演算処理の詳細について説明する。この処理が開始されると、まず侵入禁止領域の情報が取得される(S301,S302)。具体的には、S105で侵入禁止領域(回転)情報118−1に記憶された情報及びS205で侵入禁止領域(並進)情報118−2に記憶された情報を、経路演算部124が読み出すことになる。
【0080】
次にロボット設置情報1141とロボット状態情報1161とから、ロボット30の現在位置を取得する(S303)。それとともに、目標位置姿勢情報119から、ロボット30の目標位置を取得する(S304)。具体例を図13(B)及び図13(C)に示す。図13(B)は作業空間を水平に見た図であり、図13(C)は作業空間を上方から見た図である。この例では、自動ステージ70の脇に位置していたロボットを、ベルトコンベアー60の上まで移動させる場合を想定している。なお、図13(B)、図13(C)に網掛けで示した部分が侵入禁止領域(RB1〜4、RC及びRD)である。
【0081】
その後、後の部品脱落範囲算出に用いられる部品設計情報1127を記憶部110から読み出す(S305)。部品設計情報1127には、部品の寸法、形状等の情報が記憶されている。
【0082】
そして、図14(A)、図14(B)に示したように、移動経路の中継位置(中継ポイント)の候補となる経路中継位置候補を作業空間上に配置する(S306)。例えば、経路中継位置候補は水平方向及び鉛直方向において、等間隔になるように配置される。
【0083】
S305で取得した部品設計情報1127等に基づいて部品脱落範囲を算出し、ロボット30の現在位置から目標位置までの経路を、経路中継位置候補を結ぶ線として算出する(S307,S308)。この処理の詳細について図16のフローチャートを用いて後述する。現在位置から目標位置までの経路が算出されたら、当該経路を経路情報として、ロボット経路情報1162として記憶部110に記憶する(S309)。
【0084】
次に、S307及びS308における部品脱落範囲の算出及び経路中継位置候補の選択処理について図16を用いて説明する。この処理が開始されると、まずロボット30の現在位置を経路の開始位置に設定する(S401)。同様にロボット30の目標位置を経路終了位置に設定する(S402)。そして、経路開始位置を経路現在位置に設定する(S403)。ここで、経路現在位置とは、ロボット30の移動経路において、現在着目している位置を表す。そして、経路現在位置が経路終了位置であるか(つまり、目標位置までの経路探索が終了したか)の判定が行われる(S404)。S404においてYesの場合は、目標位置まで適切に経路が探索できたということであるから、経路生成成功として(S418)、処理を終了する。Noの場合は探索途中であるということであるから、S405以降の処理を続ける。
【0085】
S404においてNoの場合には、経路現在位置から見て経路終了位置に向かう経路中継位置候補を複数選択する(S405)。つまり、経路現在位置からつぎの中継位置となる候補を複数選択することになる。そして、選択した候補の数をNとし(S406)、パラメータiを0に設定する(S407)。
【0086】
そして、i<Nが成り立つかの判定を行い(S408)、Noの場合には、後述するように、N個の候補全てを検証した結果1つも適切なものがなかったことになるため、経路生成失敗とし(S419)、処理を終了する。S408においてYesの場合には、まだ検証していない経路中継位置候補が残っているので、当該候補を検証することになる。
【0087】
具体的には、N個の経路中継位置候補のうちのi番目の候補について、その高さ情報を取得する(S409)。そして、取得した高さ情報に基づいて、当該経路中継位置候補において部品が脱落した場合、床に落ちるまでに要する時間を表す落下時間を計算する(S410)。それとともに、経路現在位置からi番目の経路中継位置候補に向かう際のロボット30(具体的にはロボットのハンド330)の速度を取得する(S411)。そして、落下時間とハンド速度とに基づいて、i番目の経路中継位置候補における部品脱落範囲を計算する(S412)。
【0088】
部品脱落範囲について図17を用いて詳述する。まず、S305において取得した部品設計情報1127に基づいて、ロボット30を用いて搬送する対象である部品の寸法であるC1を取得する。そして、C1を包含する範囲C2を設定する。S410により、経路中継位置候補の高さ情報から落下時間を求める。わかりやすい例としては、落下距離C3は床まで、或いは何かに衝突するまでの距離であり、当該落下距離分だけ自由落下するのに要する時間を落下時間とすればよい。ただし、落下距離は床までの距離に限定されるものではなく、より短い距離を設定してもよい。そして、ロボットハンドの速さと落下時間との積からC4をもとめ、C3とC4の合成ベクトルとして部品脱落距離C5をもとめる。部品脱落距離C5が求まったら、C5のベクトルの先端を中心としてC2と同じ大きさの領域を、オフセットした部品包含範囲C6として設定する。部品脱落範囲としては、C2、C6及びC2からC6までの間の領域を包含すればよいため、結局C2とC6を包含する領域C7が部品脱落範囲となる。
【0089】
これによりS412における部品脱落範囲が求められるため、部品脱落範囲と侵入禁止領域とが重なるか否かを確認する(S413)。重ならないかの判定を行って(S414)、Noの場合、つまり重なる場合には、i番目の経路中継位置候補は不適切であると判定し、iをインクリメントして(S415)、S408に戻り次の経路中継位置候補の確認を行う。S414においてYesの場合には、i番目の経路中継位置候補は適切であると考えられるため、i番目の経路中継位置候補を経路中継位置として登録し(S416)、登録した経路中継位置を経路現在位置に設定する(S417)。そしてS404に戻り、更新された経路現在位置が経路終了位置であるかの判定が行われ、経路終了位置でない場合にはS405からの処理が再度行われることになる。このようにして設定されたロボット移動経路の例を図15(A)、図15(B)に示す。
【0090】
また、経路決定後の実際のロボット30の制御処理について図18のフローチャートを用いて説明する。この処理が開始されると、まず各ジョイントの回転速度ゲインを取得する(S501)。ロボット経路情報1162から、経路のステップ数を取得し(S502)、実行ステップのインデックスNを初期化する(S503)。そして、Nが経路ステップ数より小さいかの判定を行い(S504)、Noの場合には全てのステップの処理が終了したとして、ロボット状態情報1161の各ジョイントの角度を更新する(S505)。
【0091】
S504においてYesの場合には、ロボット経路情報1162からN番目のステップにおける各ジョイントの目標角度を取得し(S506)、各ジョイントの現在角度と目標角度の差の絶対値Δを計算する(S507)。そして、Δが許容角度差よりも大きいかの判定を行い(S508)、Noの場合には角度差が許容範囲に収まっているということであるため、Nをインクリメントし(S509)、S504に戻り次の実行ステップの処理に移行する。S508でYesの場合には、各ジョイントの回転速度を計算し(S510)、各ジョイントを回転速度に従って回転させ(S511)、各ジョイントの現在角度を更新する(S512)。そしてS507に戻り、Δを計算し、S508で許容差以内であるかの判定を再度行う。
【0092】
以上が、経路演算処理の詳細であるが、ここで部品脱落範囲と侵入禁止領域について補足を行う。上述したように、部品脱落範囲を設定する際には、図17に示したC1〜C7を順次設定していくことになる。このとき、C3の落下距離は必ずしも床まで、或いは何かに衝突するまでの距離である必要はなく、より短い距離であってもいいことは上述した。この理由としては、上述のように設定した場合、部品脱落範囲が広くなりすぎる可能性があることが挙げられる。侵入禁止領域の説明の際に述べたのと同様に、部品脱落範囲を広く取ると、狭く取った場合に比べて部品の噛み込み等の抑止効果が高まるが、ロボット30の移動経路が制限される。つまり、必要以上に部品脱落範囲を取りすぎることで、ロボット30の移動経路が生成されなくなる可能性が生じてしまう。
【0093】
つまり、侵入禁止領域と部品脱落範囲の大きさは独立に捉えるのではなく、連動して考えた上で、適切な領域を設定することが望ましい。侵入禁止領域を平面的な領域でなく、空間的に広がりを持つ領域として説明したのは、部品脱落範囲の落下距離を床等までの距離に比べて短く取ることを想定していたことも理由としてあげられる。もし、部品脱落範囲が脱落部品の落下経路を完全に包含する領域として設定可能であれば、侵入禁止領域は最低限の平面的領域を設定すれば足りる。しかし、そのためには、経路設計時(つまり部品脱落範囲設定時)に想定したロボット30の移動速度と、実際の作業時の速度が一致すること等が条件となり、落下距離C3を床等までの距離としたとしても実現は困難である。
【0094】
よって、部品脱落範囲は脱落部品の落下経路を必ずしも包含し得ないことを前提にせざるを得ず、そのために侵入禁止領域は平面よりはより余裕を持たせた立体的な領域を設定することが望ましい。そうなれば、侵入禁止領域側で部品噛み込み等の抑止効果の向上が担保されるため、部品脱落範囲を過剰に大きくする必要もなく、従って図17C3の落下距離は床等までの距離よりも短くてもよいということになる。
【0095】
さらに補足すれば、侵入禁止領域を円錐台(或いは四角錐台)にすることにも、理由がある。なぜなら、図19(A)に示したように、水平方向への移動の場合、脱落部品は移動方向にも速度を持つため、図19(A)のC7に示したように斜め方向の部品脱落範囲が設定されることになる。しかし、図5(A)のように円柱状の侵入禁止領域RBでは、部品脱落範囲の大きさ次第では干渉が起きないため、斜め方向からの部品の侵入を抑えることができない。その点、図19(B)のように斜め方向にも侵入禁止領域を拡大すれば、上述の問題を回避できる。斜め方向への拡大とは一例としては、円柱ではなく円錐台を設定すればよいことになる。
【0096】
以上の本実施形態では、図2及び図3に示したようにロボット制御システムは、ロボット制御に関する処理を行う処理部120と、ロボット制御に関する情報を記憶する記憶部110と、処理部120での処理結果に基づいてロボット30の制御を行うロボット制御部170とを含む。そして、記憶部110は、可動部を有する周辺装置の設計情報(例えばコンベアー設計情報1123等)及び設置情報(例えばコンベアー設置情報1143等)を記憶する。処理部120は、侵入禁止領域設定部122と、経路演算部124を含む。侵入禁止領域設定部122は、周辺装置の設計情報及び設置情報に基づいて、周辺装置の可動部に対応付けてワークの侵入禁止領域を設定する。経路演算部124は、侵入禁止領域の情報に基づいて、ロボット30のアーム320のエンドポイントの経路情報を演算する。
【0097】
ここで、周辺装置とは例えば、図1に示したベルトコンベアー60や、自動ステージ70等であり、ベルトコンベアー60は回転機構の可動部を有し、自動ステージ70は並進機構の可動部を有する。可動部は例えば、回転機構であれば回転軸を表すベクトル(VB1及びVB2等)として表現されてもよく、並進機構であれば並進運動方向を表すベクトル(VC1及びVC2等)として表現されてもよい。また、経路情報とは、ロボットの移動経路そのものの情報であってもよいし、移動経路に対応する情報であってもよい。
【0098】
これにより、可動部に対応付けてワークの侵入禁止領域を設定した上で、設定した侵入禁止領域に基づいてロボット30のアーム320のエンドポイントの移動経路(上述したように、適宜ロボットの移動経路、或いは移動経路と呼ぶ)を演算することが可能になる。よって、周辺装置の可動部のように、部品(ワーク)を噛み込むことで当該装置及び製造ラインの動作に大きな影響を与える領域に、部品が侵入しないようなロボットの移動経路を生成できるため、カバー部材を用いる手法とは異なる観点から、周辺装置等の保護ができる。カバー部材を用いる手法では、カバー部材に隙間が生じることで部品の噛み込みの抑止効果に限界があったり、リアルタイム性が要求される負荷の高い処理が必要になったりしていた。それに対し本実施形態の手法では、そもそも可動部に部品が落下しないような挙動をロボット30に取らせるため、カバー部材の隙間等は問題にならない。また、経路演算はロボットを実際に動作させる前に、事前演算が可能であるためリアルタイム性の問題も回避できる。
【0099】
また、経路演算部124は、脱落したワークの落下する範囲に対応する部品脱落範囲を設定し、設定した部品脱落範囲の情報と、侵入禁止領域の情報とに基づいて、経路情報を演算する。
【0100】
これにより、ワークの落下する範囲に対応する部品脱落範囲と、ワークの侵入が好ましくない領域である侵入禁止領域とに基づく処理が可能になるため、脱落したワークが可動部に対して落下するか否かの判定ができる。そして、当該判定に基づいて経路情報を生成することで、脱落したワークの可動部への噛み込み等を抑止することが可能になる。具体的には、ワークが可動部に対して落下する可能性が低いと判定された経路情報を採用することになる。部品脱落範囲と侵入禁止領域に基づく処理とは、具体的には、2つの領域の重なりをチェックし、重なっていた場合に脱落部品が可動部に落下すると判定することが考えられる。ただし重なりに限定される必要はなく、例えば、部品脱落範囲と侵入禁止領域との距離の最小値が所与の閾値よりも小さい場合には、脱落部品が可動部に落下しうると判定してもよい。
【0101】
また、経路演算部124は、ワークの搬送のスタート位置と目標位置との間に設定された複数の中継ポイントの各中継ポイントにおいて、部品脱落範囲を設定し、設定した部品脱落範囲と侵入禁止領域との干渉チェックを行うことで経路情報を演算してもよい。
【0102】
ここで、中継ポイントは例えば、図14(A)及び図14(B)に示したように水平方向及び鉛直方向に等間隔に配置されることが考えられるが、これに限定されるものではない。
【0103】
これにより、中継ポイントを用いて経路情報を演算することが可能になる。つまり図15(A)、図15(B)に示したように、中継ポイントに対して部品脱落範囲を設定し、設定した部品脱落範囲と侵入禁止領域が干渉していなければ、当該中継ポイントを移動経路として採用する。実際には図16のフローチャートに示したようにいくつかの経路中継位置候補を設定し、1つずつ判定を行っていく。ここで、各中継ポイント間の距離をある程度取ることにより、部品脱落範囲の設定処理及び侵入禁止領域との干渉チェック処理の回数を減らし、処理負荷を軽減することが可能になる。ただし、中継ポイント間の距離を大きくしすぎると、移動経路の候補が少なくなるため、適切な値を設定する必要がある。また、干渉チェックは、例えば領域の重なりがあるか否かの判定を行えばよく、空間的に広がる2つの領域の重なりについて既存の手法により容易に判定可能である。
【0104】
また、経路演算部124は、ロボット30の第1の経路に含まれる各中継ポイントに設定された部品脱落範囲のうち少なくとも1つの部品脱落範囲と侵入禁止領域とが干渉し、且つ、ロボット30の第2の経路に含まれる各中継ポイントに設定された全ての部品脱落範囲と侵入禁止領域とが干渉しない場合に、第2の経路をロボット30の移動経路として選択してもよい。
【0105】
これにより、ロボット30の移動経路を演算するに当たって複数の経路の候補があった場合に、当該複数の経路のうち部品脱落範囲と侵入禁止領域とが干渉しない経路を選択することが可能になる。具体的には例えば、図16のフローチャートで示したように、経路現在位置から目標位置へ向かう方向に複数の経路中継位置候補を設定し、各経路中継位置候補に設定された部品脱落範囲と、侵入禁止領域との干渉をチェックし、それらが干渉しない経路中継位置候補を選択する処理を行えばよい。
【0106】
また、経路演算部124は、エンドポイントの速さ情報と移動方向情報に基づいて、部品脱落範囲を設定してもよい。
【0107】
これにより、エンドポイントの速さ情報及び移動方向の情報による影響、つまり部品脱落範囲に対する慣性の影響を考慮することが可能になる。ロボット30のハンド330(エンドポイントにハンドが取り付けられたものとする)により搬送されているワークは、搬送中に脱落したとしても脱落地点の真下に落下するものではない。例えば水平方向に搬送している途中であったのなら、脱落し落下するワークは水平方向の速度を持つことになり、結果として真下ではなく斜め方向に落下する。これは、図17におけるベクトルC4に相当する。具体的には、落下距離C3とC4の合成ベクトルC5分だけ部品包含範囲をオフセットさせ(C6)、元の部品包含範囲C2とC6とを包含する範囲を部品脱落範囲C7とする処理において、オフセット用のベクトルC5を求めるためのベクトルC4を、エンドポイントの速度ベクトル(速さ情報及び移動方向情報)に係数をかけることで求めることになる。
【0108】
また、経路演算部124は、エンドポイントの位置情報から求められたワークの落下時間情報に基づいて、部品脱落範囲を設定してもよい。
【0109】
これにより、部品脱落範囲を求める位置(例えば対象としている中継ポイントの位置)の情報として、例えば当該位置の床等からの高さ情報を取得して、床等まで落下するのにかかる時間の情報を求めることが可能になる。上述したように、脱落部品の運動は自由落下による影響と、慣性による影響の合成として求められる。そして、慣性により生じた速度に運動時間をかけることで、慣性の影響による運動距離が求まる。ここでは、床等に衝突するまでの運動を問題としているため、求めるべき運動時間とは床等まで落下するのに要する落下時間に他ならない。落下距離(床等までの距離)が図17におけるベクトルC3に相当し、上述した慣性による速度に落下時間をかけたものがC4に相当する。具体的には、落下距離C3とC4の合成ベクトルC5分だけ部品包含範囲をオフセットさせ(C6)、元の部品包含範囲C2とC6とを包含する範囲を部品脱落範囲C7とする処理において、高さ情報から落下距離C3を求め、エンドポイントの速度ベクトルC4にかける係数を落下時間として求めることになる。なお、落下距離を床等までの距離とせず、より短い距離に設定してもよいことは上述したとおりである。
【0110】
また、経路演算部124は、ワークの設計情報(図3における部品設計情報1127)に基づいて、部品脱落範囲を設定してもよい。
【0111】
これにより、部品設計情報1127から部品脱落範囲を設定することが可能になる。部品脱落範囲とは、脱落した部品が落下・衝突する範囲に対応するものであるから、大きい部品であれば大きくなり、小さい部品であれば小さくなることが当然である。よって、部品設計情報1127から、部品の寸法等の情報を取得し、取得した情報を部品脱落範囲に反映させる。具体的には、落下距離C3とC4の合成ベクトルC5分だけ部品包含範囲C2をオフセットさせ(C6)、元の部品包含範囲C2とC6とを包含する範囲を部品脱落範囲C7とする処理において、部品設計情報1127(C1)から部品包含範囲C2を求めることになる。なお、部品包含範囲という考えを用いることで、部品の細かい形状等を問題にする必要がなくなり、処理を容易にすることができる。
【0112】
また、記憶部110はロボット30の設計情報(ロボット設計情報1121)と、設置情報(ロボット設置情報1141)を記憶する。そして、経路演算部124はロボット30の設計情報及び設置情報に基づいて経路情報を演算してもよい。
【0113】
これにより、ロボット30自身と周辺装置との衝突を回避することが可能になる。本実施形態においては、脱落部品と周辺装置の可動部の関係を説明してきたが、それだけではロボット30の移動経路を演算することはできず、ロボット30自身が周辺装置と衝突しないようにする必要がある。本実施形態では、ロボット設計情報1121及びロボット設置情報1141を記憶していることから、これらの情報を用いることで、ロボット30の寸法や作業空間における設置位置等を知ることができる。ロボット30との衝突を考慮するのは、周辺装置全体なのか周辺装置の可動部なのかという問題については、どちらであってもよい。前者の場合には、周辺装置の設計情報(コンベアー設計情報1123等)と設置情報(コンベアー設置情報1143等)から求められる周辺装置そのものの領域との干渉チェックを行えばよいし、後者の場合には侵入禁止領域等との干渉チェックを行えばよい。
【0114】
また、侵入禁止領域設定部122は、周辺装置の可動部が回転機構を有する可動部である場合に、回転機構の回転軸の情報と可動部の位置情報とに基づいて侵入禁止領域を設定してもよい。
【0115】
これにより、図1のベルトコンベアー60等に示したような回転機構を有する可動部に関する情報を、当該回転機構の回転軸を表す可動部ベクトル(VB1等)として設定し、設定した可動部ベクトルに基づいて侵入禁止領域を設定することが可能になる。侵入禁止領域が周辺装置の設計情報及び設置情報に基づいて決定されることは上述したが、その具体的なデータ形式の一例を表したものである。例えば、可動部ベクトルの始点を回転軸上の点のうち外部に露出している点とし、可動部ベクトルの大きさにより回転機構の半径を表現することが考えられる。その場合、図5(A)の円柱でいえば、底面及び上面にあたる円の中心を可動部ベクトルもしくは可動部ベクトルの延長線が貫き、且つ底面の中心と可動部ベクトルの始点が一致し、底面及び上面の大きさは可動部ベクトルの大きさに一致するように設定する手法が一例としてあげられる。なお、回転機構の回転軸の情報(可動部ベクトル)の始点は、可動部の位置情報である設置情報(コンベアー設置情報1143等)により決定され、具体的な計算式は、図7に示したとおりである。
【0116】
また、侵入禁止領域設定部122は、周辺装置の可動部が並進機構を有する可動部である場合に、並進機構の並進方向の情報と可動部の位置情報とに基づいて侵入禁止領域を設定してもよい。
【0117】
これにより、図1の自動ステージ70等に示したような並進機構を有する可動部に関する情報を、当該並進機構の並進方向(並進運動の方向)を表す可動部ベクトル(VC1等)として設定し、設定した可動部ベクトルに基づいて侵入禁止領域を設定することが可能になる。侵入禁止領域が周辺装置の設計情報及び設置情報に基づいて決定されることは上述したが、その具体的なデータ形式の一例を表したものである。例えば、可動部ベクトルの始点を並進機構(並進方向及びそれに直交する方向に広がりを持つ長方形が想定される)の中心とし、可動部ベクトルの大きさにより並進方向の長さを表現することが考えられる。その場合、図5(C)の直方体でいえば、底面の中心と可動部ベクトルの始点が一致し、並進方向の長さが可動部ベクトルの大きさと一致するように設定する手法が一例としてあげられる。その場合、直方体の幅及び高さは可動部ベクトルのみからは設定できないため、他の情報を保持する、或いは所定の値を用いることが考えられる。なお、並進機構の並進方向の情報(可動部ベクトル)の始点は、可動部の位置情報である設置情報(自動ステージ設置情報1145等)により決定され、具体的な計算式は、図10に示したとおりである。また、本実施形態においては、可動部ベクトルは1方向のみ(例えばVC1とVC2のうち一方のみ)を設定すれば十分な場合も考えられるが、並進方向が一方向のみであるとの誤解を生じさせないように、並進運動が可能な2方向両方に可動部ベクトルを描いている。
【0118】
また、侵入禁止領域設定部122は、周辺装置の可動部がカバー部材を有する場合に、カバー部材の設置位置情報に基づいて侵入禁止領域を設定してもよい。
【0119】
これにより、図12に示したように、カバー部材を用いることで侵入禁止領域を狭くすることが可能になり、ロボットの移動経路の選択の幅を広げることができる。カバー部材を設置した場合に、設置しなかった場合の侵入禁止領域の一部が削減されることになるが、当該削減領域の設定手法は種々考えられる。例えば図12のように、脱落部品が自由落下するケースを想定し、設置したカバー部材の直上の領域を削減し、侵入禁止領域をRC2に設定すればよい。
【0120】
また、本実施形態は上述のロボット制御システムと、ロボット制御システムにより制御されるロボットとを含むロボットシステムに関係する。
【0121】
これにより、上述してきたロボット制御装置がロボット30を制御することにより、連係して動作を行うロボットシステムを実現することが可能になる。
【0122】
また、本実施形態は、ロボット制御に関する処理を行う処理部120と、ロボット制御に関する情報を記憶する記憶部110と、処理部120での処理結果に基づいてロボット30の制御を行うロボット制御部170としてコンピューターを機能させるプログラムに関係する。そして、記憶部110は、可動部を有する周辺装置の設計情報(例えばコンベアー設計情報1123等)及び設置情報(例えばコンベアー設置情報1143等)を記憶する。処理部120は、侵入禁止領域設定部122と、経路演算部124を含む。侵入禁止領域設定部122は、周辺装置の設計情報及び設置情報に基づいて、周辺装置の可動部に対応付けてワークの侵入禁止領域を設定する。経路演算部は、侵入禁止領域の情報に基づいて、ロボット30のアーム320のエンドポイントの経路情報を演算する。
【0123】
これにより、ソフトウェア的にロボットを制御する処理を行うプログラムを実現することが可能になる。そして、上記プログラムは、情報記憶媒体180に記録される。ここで、情報記憶媒体180としては、DVDやCD等の光ディスク、光磁気ディスク、ハードディスク(HDD)、不揮発性メモリーやRAM等のメモリーなど、情報処理装置10等によって読み取り可能な種々の記録媒体を想定できる。例えば、図2に示したように、PC等の情報処理装置によって読み取り可能な種々の記録媒体にプログラムが記憶され、処理部120において実行されるケースが考えられる。
【0124】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またロボット制御システム、ロボットシステム等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【0125】
CV カバー部材、RB1−RB4 侵入禁止領域、RR1−RR6 侵入禁止領域、
VB1−VB4 可動部ベクトル(回転)、VC1−VC2 可動部ベクトル(並進)、
VR1−VR6 可動部ベクトル(ロボット)、
10 情報処理装置、20 撮像装置、30 ロボット、60 ベルトコンベアー、
70 自動ステージ、110 記憶部、112 設計情報、114 設置情報、
116 制御情報、118 侵入禁止領域情報、
119 目標位置姿勢情報、120 処理部、122 侵入禁止領域設定部、
124 経路演算部、150 表示部、160 外部I/F部、
170 ロボット制御部、180 情報記憶媒体、320 アーム、330 ハンド、
1121 ロボット設計情報、1123 コンベアー設計情報、
1125 自動ステージ設計情報、1127 部品設計情報、
1141 ロボット設置情報、1143 コンベアー設置情報、
1145 自動ステージ設置情報、1161 ロボット状態情報、
1162 ロボット経路情報、1163 コンベアー状態情報、
1165 自動ステージ状態情報、1167 部品脱落範囲情報、
1241 部品脱落範囲算出部

【特許請求の範囲】
【請求項1】
ロボットの制御に関する処理を行う処理部と、
前記ロボットの制御に関する情報を記憶する記憶部と、
前記処理部の処理結果に基づいて前記ロボットの制御を行うロボット制御部と、
を含み、
前記記憶部は、
可動部を有し、前記ロボットの周辺に配置される周辺装置の設計情報及び設置情報を記憶し、
前記処理部は、
前記周辺装置の前記設計情報及び前記設置情報に基づいて、前記周辺装置の前記可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部と、
設定された前記侵入禁止領域の情報に基づいて、前記ロボットのアームのエンドポイントの経路情報を演算する経路演算部と、を含むことを特徴とするロボット制御システム。
【請求項2】
請求項1において、
前記経路演算部は、
前記ワークの部品脱落範囲を設定し、設定した前記部品脱落範囲の情報と、前記侵入禁止領域の情報とに基づいて、前記経路情報を演算することを特徴とするロボット制御システム。
【請求項3】
請求項2において、
前記経路演算部は、
前記ワークの搬送のスタート位置と目標位置との間に設定された複数の中継ポイントの各中継ポイントにおいて、前記部品脱落範囲を設定し、設定した前記部品脱落範囲と前記侵入禁止領域の干渉チェックを行って前記経路情報を演算することを特徴とするロボット制御システム。
【請求項4】
請求項3において、
前記経路演算部は、
前記アームの前記エンドポイントの第1の経路に含まれる各中継ポイントに設定された部品脱落範囲のうち少なくとも1つの部品脱落範囲と前記侵入禁止領域とが干渉し、前記アームの前記エンドポイントの第2の経路に含まれる各中継ポイントに設定された全ての部品脱落範囲と前記侵入禁止領域とが干渉しない場合に、前記第2の経路を前記アームの前記エンドポイントの移動経路として選択することを特徴とするロボット制御システム。
【請求項5】
請求項2乃至4のいずれかにおいて、
前記経路演算部は、
前記エンドポイントの速さ情報と移動方向情報に基づいて、前記部品脱落範囲を設定することを特徴とするロボット制御システム。
【請求項6】
請求項2乃至5のいずれかにおいて、
前記経路演算部は、
前記エンドポイントの位置情報から求められた前記ワークの落下時間情報に基づいて、前記部品脱落範囲を設定することを特徴とするロボット制御システム。
【請求項7】
請求項2乃至6のいずれかにおいて、
前記記憶部は、
前記ワークの設計情報を記憶し、
前記経路演算部は、
前記ワークの前記設計情報に基づいて、前記部品脱落範囲を設定することを特徴とするロボット制御システム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記記憶部は、
前記ロボットの設計情報及び設置情報を記憶し、
前記経路演算部は、
前記ロボットの前記設計情報及び前記設置情報に基づいて、前記経路情報を演算することを特徴とするロボット制御システム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記侵入禁止領域設定部は、
前記周辺装置の前記可動部が回転機構を有する可動部である場合に、前記回転機構の回転軸の情報と、前記可動部の位置情報とに基づいて、前記侵入禁止領域を設定することを特徴とするロボット制御システム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記侵入禁止領域設定部は、
前記周辺装置の前記可動部が並進機構を有する可動部である場合に、前記並進機構の並進方向の情報と、前記可動部の位置情報とに基づいて、前記侵入禁止領域を設定することを特徴とするロボット制御システム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記侵入禁止領域設定部は、
前記周辺装置の前記可動部がカバー部材を有する場合に、前記カバー部材の設置位置情報に基づいて、前記侵入禁止領域を設定することを特徴とするロボット制御システム。
【請求項12】
請求項1乃至11のいずれかに記載のロボット制御システムと、
前記ロボット制御システムにより制御される前記ロボットと、
を含むことを特徴とするロボットシステム。
【請求項13】
ロボットの制御に関する処理を行う処理部と、
前記ロボットの制御に関する情報を記憶する記憶部と、
前記処理部の処理結果に基づいて前記ロボットの制御を行うロボット制御部として、
コンピューターを機能させ、
前記記憶部は、
可動部を有し、前記ロボットの周辺に配置される周辺装置の設計情報及び設置情報を記憶し、
前記処理部は、
前記周辺装置の前記設計情報及び前記設置情報に基づいて、前記周辺装置の前記可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部と、
設定された前記侵入禁止領域の情報に基づいて、前記ロボットのアームのエンドポイントの経路情報を演算する経路演算部と、を含むことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−245577(P2012−245577A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−117678(P2011−117678)
【出願日】平成23年5月26日(2011.5.26)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】