(57)【要約】【課題】  周辺装置の可動部に対して設定した侵入禁止領域に基づいてロボットの移動経路の生成を行うことで、ロボットのハンドから脱落した部品等が可動部に侵入することを抑止するロボット制御システム、ロボットシステム及びプログラム等を提供すること。【解決手段】  ロボット制御システムは、処理部１２０と、記憶部１１０と、処理部１２０の処理結果に基づいてロボット３０の制御を行うロボット制御部１７０とを含み、記憶部１１０は可動部を有する周辺装置の設計情報及び設置情報を記憶し、処理部１２０は周辺装置の設計情報及び設置情報に基づいて、周辺装置の可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部１２２と、設定された侵入禁止領域の情報に基づいて、ロボット３０のアーム３２０のエンドポイントの経路情報を演算する経路演算部１２４とを含む。【選択図】      図２
2012245577.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの制御に関する処理を行う処理部と、
前記ロボットの制御に関する情報を記憶する記憶部と、
前記処理部の処理結果に基づいて前記ロボットの制御を行うロボット制御部と、
を含み、
前記記憶部は、
可動部を有し、前記ロボットの周辺に配置される周辺装置の設計情報及び設置情報を記憶し、
前記処理部は、
前記周辺装置の前記設計情報及び前記設置情報に基づいて、前記周辺装置の前記可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部と、
設定された前記侵入禁止領域の情報に基づいて、前記ロボットのアームのエンドポイントの経路情報を演算する経路演算部と、を含むことを特徴とするロボット制御システム。
【請求項２】
請求項１において、
前記経路演算部は、
前記ワークの部品脱落範囲を設定し、設定した前記部品脱落範囲の情報と、前記侵入禁止領域の情報とに基づいて、前記経路情報を演算することを特徴とするロボット制御システム。
【請求項３】
請求項２において、
前記経路演算部は、
前記ワークの搬送のスタート位置と目標位置との間に設定された複数の中継ポイントの各中継ポイントにおいて、前記部品脱落範囲を設定し、設定した前記部品脱落範囲と前記侵入禁止領域の干渉チェックを行って前記経路情報を演算することを特徴とするロボット制御システム。
【請求項４】
請求項３において、
前記経路演算部は、
前記アームの前記エンドポイントの第１の経路に含まれる各中継ポイントに設定された部品脱落範囲のうち少なくとも１つの部品脱落範囲と前記侵入禁止領域とが干渉し、前記アームの前記エンドポイントの第２の経路に含まれる各中継ポイントに設定された全ての部品脱落範囲と前記侵入禁止領域とが干渉しない場合に、前記第２の経路を前記アームの前記エンドポイントの移動経路として選択することを特徴とするロボット制御システム。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記経路演算部は、
前記エンドポイントの速さ情報と移動方向情報に基づいて、前記部品脱落範囲を設定することを特徴とするロボット制御システム。
【請求項６】
請求項２乃至５のいずれかにおいて、
前記経路演算部は、
前記エンドポイントの位置情報から求められた前記ワークの落下時間情報に基づいて、前記部品脱落範囲を設定することを特徴とするロボット制御システム。
【請求項７】
請求項２乃至６のいずれかにおいて、
前記記憶部は、
前記ワークの設計情報を記憶し、
前記経路演算部は、
前記ワークの前記設計情報に基づいて、前記部品脱落範囲を設定することを特徴とするロボット制御システム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記記憶部は、
前記ロボットの設計情報及び設置情報を記憶し、
前記経路演算部は、
前記ロボットの前記設計情報及び前記設置情報に基づいて、前記経路情報を演算することを特徴とするロボット制御システム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記侵入禁止領域設定部は、
前記周辺装置の前記可動部が回転機構を有する可動部である場合に、前記回転機構の回転軸の情報と、前記可動部の位置情報とに基づいて、前記侵入禁止領域を設定することを特徴とするロボット制御システム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記侵入禁止領域設定部は、
前記周辺装置の前記可動部が並進機構を有する可動部である場合に、前記並進機構の並進方向の情報と、前記可動部の位置情報とに基づいて、前記侵入禁止領域を設定することを特徴とするロボット制御システム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記侵入禁止領域設定部は、
前記周辺装置の前記可動部がカバー部材を有する場合に、前記カバー部材の設置位置情報に基づいて、前記侵入禁止領域を設定することを特徴とするロボット制御システム。
【請求項１２】
請求項１乃至１１のいずれかに記載のロボット制御システムと、
前記ロボット制御システムにより制御される前記ロボットと、
を含むことを特徴とするロボットシステム。
【請求項１３】
ロボットの制御に関する処理を行う処理部と、
前記ロボットの制御に関する情報を記憶する記憶部と、
前記処理部の処理結果に基づいて前記ロボットの制御を行うロボット制御部として、
コンピューターを機能させ、
前記記憶部は、
可動部を有し、前記ロボットの周辺に配置される周辺装置の設計情報及び設置情報を記憶し、
前記処理部は、
前記周辺装置の前記設計情報及び前記設置情報に基づいて、前記周辺装置の前記可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部と、
設定された前記侵入禁止領域の情報に基づいて、前記ロボットのアームのエンドポイントの経路情報を演算する経路演算部と、を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御システム、ロボットシステム及びプログラム等に関する。
【背景技術】
【０００２】
産業用ロボット等によるピック＆プレイス動作（部品を意図する位置や姿勢で配置する動作）を組み合わせて部品搬送を実現する製造ラインが数多く運用されている。このピック＆プレイス動作にかかる作業時間・作業スペースを削減する目的で、ロボットハンドを装着したロボットアームによる処理の自動化が行われている。ピック＆プレイス動作は、整列配置したい部品をロボットハンドで把持する「把持動作」、ロボットハンドが把持している部品を搬送する「搬送動作」、ロボットハンドが把持している部品を意図する位置・姿勢で解放する「解放動作」の３種の動作を組み合わせて実現される。
【０００３】
このようなピック＆プレイス作業においては、「搬送動作」中に把持している部品のロボットハンドからの意図しない脱落が発生する場合がある。このとき、脱落した部品がロボットアーム作業空間中に設置される周辺装置の可動部や他のロボットアームのジョイント部分と衝突するケースや、脱落した部品を周辺装置の可動部や他のロボットアームのジョイント部分で噛み込むケースが発生する。これによって周辺装置や他のロボットアームの安全な動作が阻害されてしまうという課題がある。
【０００４】
このような課題に対して、特許文献１では、シール部材で覆われた弾性部材がスライダー動作によって伸縮する仕組みを利用して、スライダーとスライダーカバーとの隙間から何かが侵入することを抑止する手法が開示されている。特許文献２では、可動ワークテーブルがカバーに遊挿することで、異物がロボット内部に侵入することを抑止している。特許文献３では、関節機構の動作に応じて、関節機構を覆うカバーの隙間を変化させることにより、関節機構と何かが接触することを抑止している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１２６６８２号公報
【特許文献２】特開２００２−６６８６８号公報
【特許文献３】特開２００６−３４６７６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の手法では、スライダーとスライダーカバーとの隙間が完全に塞がれているわけではない。そのため、細かな部品に対するピック＆プレイス作業において、その部品が搬送動作中に意図せず脱落する場合には、スライダーとスライダーカバーに脱落部品を噛みこんでしまうケースや、スライダーとスライダーカバーの隙間から脱落部品がロボットアーム内部に侵入してしまうケースがある。
【０００７】
特許文献２の手法では、カバーと可動ワークテーブルとの隙間に異物が位置する場合には異物の噛み込みが発生し、ロボットの安全動作が実現できないケースが発生する。
【０００８】
特許文献３の手法では、関節機構を覆うカバーの隙間を状況に応じて変化させる機構は複雑であり、それを動作させるための演算もまた大きくなってしまう。特にこの演算は状況に応じてリアルタイムに行う必要がある。
【０００９】
本発明の幾つかの態様によれば、周辺装置の可動部に対して設定した侵入禁止領域に基づいてロボットの移動経路の生成を行うことで、ロボットのハンドから脱落した部品等が可動部に侵入することを抑止するロボット制御システム、ロボットシステム及びプログラム等を提供することができる。
【課題を解決するための手段】
【００１０】
本発明の一態様は、ロボットの制御に関する処理を行う処理部と、前記ロボットの制御に関する情報を記憶する記憶部と、前記処理部の処理結果に基づいて前記ロボットの制御を行うロボット制御部と、を含み、前記記憶部は、可動部を有し、前記ロボットの周辺に配置される周辺装置の設計情報及び設置情報を記憶し、前記処理部は、前記周辺装置の前記設計情報及び前記設置情報に基づいて、前記周辺装置の前記可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部と、設定された前記侵入禁止領域の情報に基づいて、前記ロボットのアームのエンドポイントの経路情報を演算する経路演算部と、を含むロボット制御システムに関係する。
【００１１】
本発明の一態様では、周辺装置の可動部に対応付けてワークの侵入禁止領域を設定し、設定した侵入禁止領域に基づいてロボットのアームのエンドポイントの経路情報を生成する。よって、カバー部材の使用等とは異なる手法で、可動部による部品の噛み込み等を抑止すること等が可能になる。
【００１２】
また、本発明の一態様では、前記経路演算部は、前記ワークの部品脱落範囲を設定し、設定した前記部品脱落範囲の情報と、前記侵入禁止領域の情報とに基づいて、前記経路情報を演算してもよい。
【００１３】
これにより、脱落部品の落下経路に対応する部品脱落範囲と、侵入禁止領域に基づいて処理が可能になり、脱落部品が可動部に侵入するか否かの判定を行うこと等ができる。
【００１４】
また、本発明の一態様では、前記経路演算部は、前記ワークの搬送のスタート位置と目標位置との間に設定された複数の中継ポイントの各中継ポイントにおいて、前記部品脱落範囲を設定し、設定した前記部品脱落範囲と前記侵入禁止領域の干渉チェックを行って前記経路情報を演算してもよい。
【００１５】
これにより、中継ポイントを設定することで演算量を削減し、かつ、部品脱落範囲と侵入禁止領域の干渉チェックという容易な処理で経路情報の演算が可能になる。
【００１６】
また、前記経路演算部は、前記アームの前記エンドポイントの第１の経路に含まれる各中継ポイントに設定された部品脱落範囲のうち少なくとも１つの部品脱落範囲と前記侵入禁止領域とが干渉し、前記アームの前記エンドポイントの第２の経路に含まれる各中継ポイントに設定された全ての部品脱落範囲と前記侵入禁止領域とが干渉しない場合に、前記第２の経路を前記アームの前記エンドポイントの移動経路として選択してもよい。
【００１７】
これにより、複数の経路のうち、部品脱落範囲と侵入禁止領域とが干渉しない経路を選択することが可能になる。
【００１８】
また、本発明の一態様では、前記経路演算部は、前記エンドポイントの速さ情報と移動方向情報に基づいて、前記部品脱落範囲を設定してもよい。
【００１９】
これにより、慣性に関する情報を利用して部品脱落範囲を設定することが可能になる。
【００２０】
また、本発明の一態様では、前記経路演算部は、前記エンドポイントの位置情報から求められた前記ワークの落下時間情報に基づいて、前記部品脱落範囲を設定してもよい。
【００２１】
これにより、対象としている位置での位置情報に基づいて落下時間情報を求めることが可能になり、部品脱落範囲を適切に設定することができる。
【００２２】
また、本発明の一態様では、前記記憶部は、前記ワークの設計情報を記憶し、前記経路演算部は、前記ワークの前記設計情報に基づいて、前記部品脱落範囲を設定してもよい。
【００２３】
これにより、ワークの寸法等の情報に基づいて部品脱落範囲を設定することが可能になる
また、本発明の一態様では、前記記憶部は、前記ロボットの設計情報及び設置情報を記憶し、前記経路演算部は、前記ロボットの前記設計情報及び前記設置情報に基づいて、前記経路情報を演算してもよい。
【００２４】
これにより、ロボット自身が周辺装置等と干渉しない経路情報を生成すること等が可能になる。
【００２５】
また、本発明の一態様では、前記侵入禁止領域設定部は、前記周辺装置の前記可動部が回転機構を有する可動部である場合に、前記回転機構の回転軸の情報と、前記可動部の位置情報とに基づいて、前記侵入禁止領域を設定してもよい。
【００２６】
これにより、周辺装置の設計情報及び設置情報の一例として、回転機構の回転軸の情報を用いた処理等が可能になる。
【００２７】
また、本発明の一態様では、前記侵入禁止領域設定部は、前記周辺装置の前記可動部が並進機構を有する可動部である場合に、前記並進機構の並進方向の情報と、前記可動部の位置情報とに基づいて、前記侵入禁止領域を設定してもよい。
【００２８】
これにより、周辺装置の設計情報及び設置情報の一例として、並進機構の並進方向の情報を用いた処理等が可能になる。
【００２９】
また、本発明の一態様では、前記侵入禁止領域設定部は、前記周辺装置の前記可動部がカバー部材を有する場合に、前記カバー部材の設置位置情報に基づいて、前記侵入禁止領域を設定してもよい。
【００３０】
これにより、カバー部材を併用することで、侵入禁止領域を削減すること等が可能になり、移動経路の選択の幅を広げること等ができる。
【００３１】
また、本発明の他の態様は、請求項１乃至１０のいずれかに記載のロボット制御システムと、前記ロボット制御システムにより制御される前記ロボットと、を含むロボットシステムに関係する。
【００３２】
また、本発明の他の態様は、ロボットの制御に関する処理を行う処理部と、前記ロボットの制御に関する情報を記憶する記憶部と、前記処理部の処理結果に基づいて前記ロボットの制御を行うロボット制御部として、コンピューターを機能させ、前記記憶部は、可動部を有し、前記ロボットの周辺に配置される周辺装置の設計情報及び設置情報を記憶し、前記処理部は、前記周辺装置の前記設計情報及び前記設置情報に基づいて、前記周辺装置の前記可動部に対応付けて、ワークの侵入禁止領域を設定する侵入禁止領域設定部と、設定された前記侵入禁止領域の情報に基づいて、前記ロボットのアームのエンドポイントの経路情報を演算する経路演算部と、を含むプログラムに関係する。
【図面の簡単な説明】
【００３３】
【図１】本実施形態で用いられるロボット及び周辺装置の例。
【図２】本実施形態のシステム構成例。
【図３】本実施形態の詳細なシステム構成例。
【図４】ベルトコンベアーの可動部に設けられる侵入禁止領域の例。
【図５】図５（Ａ）〜図５（Ｄ）は侵入禁止領域の形状を説明する図。
【図６】図６（Ａ）は侵入禁止領域（回転）設定処理を説明するためのフローチャート、図６（Ｂ）、図６（Ｃ）は作業空間における侵入禁止領域（回転）の設定例。
【図７】設計情報及び設置情報から可動部ベクトルを求める手法を説明する図。
【図８】自動ステージの可動部に設けられる侵入禁止領域の例。
【図９】図９（Ａ）は侵入禁止領域（並進）設定処理を説明するためのフローチャート、図９（Ｂ）、図９（Ｃ）は作業空間における侵入禁止領域（並進）の設定例。
【図１０】設計情報及び設置情報から可動部ベクトルを求める手法を説明する図。
【図１１】ロボットのジョイント部等に設けられる侵入禁止領域の例。
【図１２】カバー部材を用いた場合の侵入禁止領域の例。
【図１３】図１３（Ａ）は移動経路演算処理を説明するためのフローチャート、図１３（Ｂ）、図１３（Ｃ）は作業空間におけるロボットの現在位置と目標位置の例。
【図１４】図１４（Ａ）、図１４（Ｂ）は作業空間に設定される経路中継位置候補の例。
【図１５】図１５（Ａ）、図１５（Ｂ）は作業空間における部品脱落範囲の例、及び演算された移動経路の例。
【図１６】移動経路演算処理を説明するためのフローチャート。
【図１７】部品脱落範囲の設定手法を説明する図。
【図１８】一般的なロボットの制御処理を説明するためのフローチャート。
【図１９】図１９（Ａ）、図１９（Ｂ）は侵入禁止領域を円錐台形状にすることの理由を説明する図。
【発明を実施するための形態】
【００３４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３５】
１．本実施形態の手法
産業用ロボットによるピック＆プレイス動作を組み合わせることで部品搬送を実現する製造ラインが数多く運用されている。ピック＆プレイス動作は「把持動作」、「搬送動作」、「解放動作」の３種の動作を組み合わせて実現されるが、このうちの「搬送動作」中に把持している部品がロボットのハンドから脱落する場合が考えられる。
【００３６】
脱落した部品が、他のものに衝突せず床に落ちたり、構造上繊細ではないものへの衝突にとどまったりした場合等には、何らかの手段により（例えばユーザー自身により）、当該脱落部品を回収し、別の部品に対してピック＆プレイス動作を行わせることにより、製造ラインの運用を継続することができる。しかし、製造ラインにおいて用いられる機器の中には、周辺装置の可動部分や、ロボットアームのジョイント部分等、脱落した部品を噛み込むことにより動作に大きな影響が出る部位を持つものが存在する。
【００３７】
上述した特許文献１〜特許文献３においては、主にロボットの関節部分等にカバー部材を設けることにより、脱落部品を噛み込む可能性のある部分を保護する手法が提案されている。しかし、特許文献１及び特許文献２においては、カバー部材の設置範囲及び設置位置等の制約から部品の噛み込み等の抑止効果が十分ではない。また特許文献３においては、関節機構を覆うカバー部材の隙間を、当該関節機構の動作に応じて変化させる手法が提案されているが、カバー部材の隙間を変化させる機構は複雑であり、その動作のための演算も負荷が大きい。特に、関節機構の動作に応じてカバー部材の隙間を変化させる必要があるため、ロボットの動作が予め全てわかっている場合を除いて、事前に演算処理を行っておくことが困難であり、リアルタイム性が求められてしまう。
【００３８】
そこで本出願人は、カバー部材により可動部分を保護するという観点ではなく、ロボットの移動経路を適切に演算することにより部品の噛み込み等を抑止する手法を提案する。なお、本実施形態においては「ロボットの移動経路」とは、ロボットアームのエンドポイント（ハンド等が設置されるアームの先端位置）の移動経路であるものとする。アームのエンドポイントに対してハンドが設定される場合（後述する図１の３３０等）には、ハンドの移動経路とほぼ同義である。以降、「ロボットの移動経路」或いは「移動経路」という用語については同様の意味で用いられるものとする。また、本実施形態における移動経路生成手法と、カバー部材による保護手法をあわせて用いることを妨げるものではなく、この例については図１２等を用いて後述する。
【００３９】
具体的には、周辺装置において部品の噛み込み等が発生するおそれのある部分に対応付けて、図４のＲＢ１等に示すような侵入禁止領域を設定する。それとともに、部品の脱落が発生した場合に、当該部品が落下する可能性のある領域を表す部品脱落範囲（落下範囲）を設定する。これは例えば図１７に示すようなものであり、ある候補位置（移動経路上の中継ポイントの候補位置）において、直前の中継ポイントから当該候補位置へ所与の速度で移動した場合の、部品の運動方向を反映した範囲である。例えば、ある方向へロボットハンドが移動中に部品が脱落した場合には、当該部品は真下に落ちるのではなく、慣性によりロボットハンドの運動方向と同じ方向の速度を持って落下することになる。つまり、部品脱落範囲とは脱落部品の落下経路に対応した領域となる（落下経路そのものである必要はない）。
【００４０】
よって、侵入禁止領域と部品脱落範囲との干渉（例えば重なり）をチェックすることで、侵入禁止領域が設定された可動部が部品を噛み込むことが想定されないような移動経路を生成することができる。具体的には、侵入禁止領域と部品脱落範囲とが干渉している場合には、そのときの移動経路の候補位置において部品の脱落があった場合、部品の噛み込みの可能性を否定できないことになり、当該候補位置は移動経路の中継ポイントとして採用されない。逆にチェックの結果、侵入禁止領域と部品脱落範囲とが干渉していない場合には、当該候補位置を中継ポイントとして採用してもよいことになる。
【００４１】
このようにして、ロボットの現在位置と目標位置との間の中継ポイントを探索していくことで、目的の移動経路を生成することができる。
【００４２】
以下、システム構成例について説明した後、侵入禁止領域の設定手法について説明する。その後、部品脱落範囲の設定手法を含めた移動経路の演算手法について説明する。
【００４３】
２．システム構成例
本実施形態に係るロボット制御システムにより制御されるロボットと周辺装置とを含む製造ラインの構成例を、図１を用いて説明する。製造ラインは、ロボット３０と、ベルトコンベアー６０と、自動ステージ７０（１軸搬送装置）と、図１には不図示の情報処理装置１０を含む。ただし、製造ラインは図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。ロボット３０は、アーム３２０及びハンド３３０を有し、情報処理装置１０からの動作指示に従い処理を行う。例えばベルトコンベアー６０や自動ステージ７０等に載せられたワークに対して処理を行う。また製造ラインは、ワークの位置や姿勢等に関する情報を検出する撮像装置を含んでもよい。ワークの位置や姿勢等を検出することができればよいため、撮像画像の取得以外の手法（例えばレーザー等を用いた３次元スキャン）を用いてもよい。
【００４４】
具体的な構成について図２を用いて説明する。情報処理装置１０は、記憶部１１０と、処理部１２０と、表示部１５０と、外部Ｉ／Ｆ部１６０と、ロボット制御部１７０と、を含む。
【００４５】
記憶部１１０は、データベースを記憶したり、処理部１２０等のワーク領域となるもので、その機能はＲＡＭ等のメモリーやＨＤＤ（ハードディスクドライブ）などにより実現できる。記憶部１１０は、設計情報１１２と、設置情報１１４と、制御情報１１６と、侵入禁止領域情報１１８を記憶する。ただし、記憶部１１０は図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。各情報の具体例については、図３を用いて後述する。
【００４６】
処理部１２０は、記憶部１１０からのデータや、外部Ｉ／Ｆ部１６０において受信した、撮像装置或いはロボット３０からの情報等に基づいて種々の処理を行う。この処理部１２０の機能は、各種プロセッサ（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムなどにより実現できる。
【００４７】
処理部１２０は、侵入禁止領域設定部１２２と、経路演算部１２４とを含む。処理部１２０は図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。侵入禁止領域設定部１２２は、侵入禁止領域の設定処理を行う。設定される侵入禁止領域の具体例は図５（Ａ）〜図５（Ｄ）等を用いて後述する。経路演算部１２４は、周辺装置の可動部での部品の噛み込み等を抑止する移動経路を演算する。具体的には部品脱落範囲を設定し、設定した部品脱落範囲と、侵入禁止領域設定部１２２で設定された侵入禁止領域との干渉チェックを行うことで経路を演算する。詳細については後述する。
【００４８】
表示部１５０は、各種の表示画面を表示するためのものであり、例えば液晶ディスプレイや有機ＥＬディスプレイなどにより実現できる。
【００４９】
外部Ｉ／Ｆ部１６０は、情報処理装置１０に対するユーザーからの入力等を行ったり、撮像装置２０やロボット３０からの情報を受け付けるためのインターフェースである。ユーザーからの入力等に関しては、スイッチやボタン、キーボード或いはマウス等から構成されてもよい。
【００５０】
ロボット制御部１７０は、処理部１２０での処理結果に基づいて、ロボットの各部（アーム３２０及びハンド３３０等）の制御を行う。具体的には、外部Ｉ／Ｆ部１６０を介してロボット３０に対して制御信号を送信することで制御を行うことになる。
【００５１】
また、ロボット３０は、アーム３２０及びハンド３３０を含む。
【００５２】
次に図３を用いて、情報処理装置１０（表示部１５０及び外部Ｉ／Ｆ部１６０を除く）について詳細に説明する。
【００５３】
図３に示したように、設計情報１１２は、ロボット設計情報１１２１と、コンベアー設計情報１１２３と、自動ステージ設計情報１１２５と、部品設計情報１１２７とを含む。ロボット設計情報１１２１は、ロボット３０のアームの寸法、ハンドの寸法及びジョイントの取り得る角度等のロボットの設計時に決まる情報である。同様にコンベアー設計情報１１２３は、ベルトコンベアー６０の設計時に決まる情報であり、ベルトコンベアー６０の各部の寸法や、ベルトコンベアー６０全体における可動部の位置、可動部（回転機構）の回転軸等の情報である。自動ステージ設計情報１１２５は、自動ステージの寸法や、可動部（並進機構）の運動方向等の情報である。部品設計情報１１２７は、部品の形状、寸法等の情報である。
【００５４】
設置情報１１４は、ロボット設置情報１１４１と、コンベアー設置情報１１４３と、自動ステージ設置情報１１４５とを含む。これらはそれぞれ、ロボット３０、ベルトコンベアー６０及び自動ステージ７０が、作業空間内のどこに設置されているかを表す情報である。具体的には、作業空間に対応する仮想空間上の基準座標系における位置及び方向の座標等により表される。
【００５５】
制御情報１１６は、ロボット状態情報１１６１と、ロボット経路情報１１６２と、コンベアー状態情報１１６３と、自動ステージ状態情報１１６５と、部品脱落範囲情報１１６７とを含む。ロボット状態情報１１６１、コンベアー状態情報１１６３及び自動ステージ状態情報１１６５はそれぞれ、ロボット３０、ベルトコンベアー６０及び自動ステージ７０の状態を表す情報である。ここで状態とは、例えば可動部の回転方向や並進方向、可動部の運動速度等が考えられる。ロボットであれば各ジョイントがどのような角度で且つどのような速度を持って回転しているかがわかるため、ロボットの姿勢や移動方向等がわかる。ロボット経路情報１１６２は、経路演算部１２４においてそれまでに演算された移動経路の情報や、作業空間上に配置される中継ポイントの候補位置の情報等である。部品脱落範囲情報１１６７は、部品脱落範囲算出部１２４１において算出された部品脱落範囲に関する情報を記憶する。部品脱落範囲は後述するように、部品の設計情報やロボットの移動速度、移動方向等により変化するものであるため、用いる部品及び状況によって異なる。記憶部１１０の容量が十分確保されているのであれば、過去に算出された部品脱落範囲の情報を部品脱落範囲情報１１６７として記憶しておくことで、後に同じ部品を同じ状況で搬送する際に、再演算を行う必要がなくなる。
【００５６】
また侵入禁止領域設定部１２２は、可動部が回転機構である場合の侵入禁止領域（回転）設定部１２２−１と、可動部が並進機構である場合の侵入禁止領域（並進）設定部１２２−２とを含む。同様に、侵入禁止領域情報１１８も、侵入禁止領域（回転）情報１１８−１と、侵入禁止領域（並進）情報１１８−２を含む。
【００５７】
その他に、記憶部１１０は、ロボットの目標位置と、当該目標位置におけるロボットの姿勢に関する情報である目標位置姿勢情報１１９を記憶してもよい。これは例えば、外部Ｉ／Ｆ部１６０を介してユーザーにより設定されてもよいし、処理部１２０により自律的に設定されてもよい。
【００５８】
３．侵入禁止領域の設定手法
次に周辺装置の可動部に対して設定される侵入禁止領域について説明する。まず、回転機構を有する可動部に対する侵入禁止領域について説明した後、並進機構を有する可動部に対する侵入禁止領域について説明する。その後、変形例について説明する。
【００５９】
３．１  回転機構を有する可動部に対して設定される侵入禁止領域
ベルトコンベアー６０の可動部は実際には駆動モーターであり、この可動部を図１に示したように可動部ベクトルＶＢ１及び可動部ベクトルＶＢ２として表現する。この可動部ベクトルＶＢ１或いはＶＢ２の方向が、回転機構を有する可動部における回転軸の方向を表し、当該回転軸周りの回転方向が可動部の回転方向となる。
【００６０】
侵入禁止領域は、可動部ベクトルに対応して設定されることになる。設定の例を図４に示す。侵入禁止領域は、可動部のうち外部に露出している部分を覆うように設定されればよいため、図４のＲＢ’１に示した網掛けの領域のように、最低限可動部の露出部分を覆う平面的領域を設定することが考えられる。
【００６１】
しかし、後述するように侵入禁止領域との干渉チェックを行う部品脱落範囲は、部品の落下経路に対応した領域が設定されることが想定されるが、必ずしも落下経路を完全に包含するものではない。そのため、最低限の侵入禁止領域（例えばＲＢ’１）しか設けていない場合には、部品脱落範囲との干渉は起こしていなくても、実際の動作においては脱落部品の可動部による噛み込み等が起こる可能性を否定できない。そのため、侵入禁止領域は空間的な広がりを持つ領域を設定しておくものとする。例えば、ＲＢ１〜ＲＢ４に示したような円錐台状の領域を設定すればよい。なお、図１では不図示であったが、図４におけるベルトコンベアーの裏側にも可動部は存在し、当該可動部に対して可動部ベクトルＶＢ３及びＶＢ４が設定されているものとする。
【００６２】
なお、侵入禁止領域の形状は図４及び図５（Ｂ）に示した円錐台に限定されるものではない。例えば図５（Ａ）に示したように円柱状の侵入禁止領域を設定してもよい。侵入禁止領域を広く取れば取るほど、可動部による部品の噛み込み等の抑止効果は高まるが、その分、部品脱落範囲との干渉が起きやすくなるため、ロボットの移動経路が制限されることになる。そのため、侵入禁止領域が広すぎると、ロボットが目標位置まで移動する経路が存在しなかったり、そうでなくとも移動経路が長くなりすぎたり、ロボットに対して負荷のかかるような姿勢を取らざるを得なくなったりする。つまり、ロボットの移動経路生成の容易さと、部品の噛み込みの抑止効果とはトレードオフの関係にあるため、実際の状況に応じて侵入禁止領域を設定することが望ましい。よって本実施形態においては、上述したＲＢ’１〜ＲＢ’４のような最低限の広がりである平面的な領域を、侵入禁止領域として用いてもよく、空間的な広がりを持つものに限定されるものではない。
【００６３】
回転機構を有する可動部に対して侵入禁止領域を設定する処理の詳細について、図６（Ａ）のフローチャートを用いて説明する。この処理が開始されると、まずベルトコンベアー６０と、自動ステージ７０の設計情報１１２を取得する（Ｓ１０１）。ここで、自動ステージ７０の情報も取得するのは、自動ステージ７０における並進運動を発生させるために、回転機構を有するモーターが用いられるためである。ただし、当該モーターに対する侵入禁止領域の設定処理はベルトコンベアー６０に対する処理と同様であるため、詳細な説明は省略する。
【００６４】
設計情報１１２のうち、具体的にはコンベアー設計情報１１２３及び自動ステージ設計情報１１２５を取得することになる。これは、上述したようにベルトコンベアー６０の寸法等の情報であり、これによりベルトコンベアー６０の基準位置に対してどの位置に回転機構が設けられているかがわかることになる。具体例を図７に示す。設計情報より得られるのは、図７においてＡ１で示したベルトコンベアー６０の基準位置に設けられたｘｙｚ座標系における、回転軸の位置及び方向である。つまり、各可動部ベクトルＶＢ１〜ＶＢ４の始点の位置ｐＭと、ベクトルの方向ｎＭを取得することができる。ｐＭ、ｎＭはそれぞれｘｙｚの３軸に対応した３つの値からなるベクトルである。
【００６５】
次にベルトコンベアー６０及び自動ステージ７０の設置情報１１４を取得する（Ｓ１０２）。具体的にはコンベアー設置情報１１４３及び自動ステージ設置情報１１４５を取得することになる。設置情報１１４により、作業空間内のどの位置に、どのような姿勢でベルトコンベアー６０等が設置されているかがわかることになる。具体例を図７に示す。設置情報１１４により得られるのは、図７においてＡ２で示した作業空間の基準位置に設けられたＸＹＺ座標系における、ベルトコンベアー６０の設置位置Ｔ及び、設置の方向ω及びθである。なおωはベルトコンベアー６０が設置位置Ｔ上で回転可能な回転軸の方向を表すベクトルであり、θは実際の回転角を表すスカラーである。
【００６６】
設計情報１１２及び設置情報１１４が取得されたら、作業空間における可動部ベクトルの回転運動軸の情報を算出する（Ｓ１０３）。これはＳ１０１で得られたｐＭとｎＭに対して下式（１）、（２）の演算を行うことにより算出する。
【００６７】
ＰＭ＝ＲｐＭ＋Ｔ  ・・・・・（１）
ＮＭ＝ＲｎＭ＋Ｔ  ・・・・・（２）
ここでＲは、ωの各要素及びθにより表される行列であり、図７に示したものとなる。これにより、作業空間の基準位置に対する各可動部ベクトルＶＢ１〜ＶＢ４の位置をＰＭ、方向をＮＭとして求めることができる。
【００６８】
そして、求められた可動部ベクトルに対して図４に示したように侵入禁止領域を所定の形状を用いて設定し（Ｓ１０４）、設定した侵入禁止領域（回転に関する侵入禁止領域）の情報を侵入禁止領域（回転）情報１１８−１に記憶する（Ｓ１０５）。作業空間における侵入禁止領域の設定例を図６（Ｂ）及び図６（Ｃ）に示す。図６（Ｂ）は作業空間を水平に見た図であり、図６（Ｃ）は作業空間を上方から見た図である。
【００６９】
３．２  並進機構を有する可動部に対して設定される侵入禁止領域
図１に、自動ステージ７０における並進運動の方向を表す可動部ベクトルＶＣ１及びＶＣ２を示す。自動ステージ７０とは、上述したように１軸の搬送装置であり、自動ステージ７０上におかれた部品をある運動軸の正方向或いは負方向に並進運動させるものである。よって、可動部ベクトルＶＣ１等（ここではある一方向をＶＣ１、ＶＣ１の反対方向をＶＣ２としている）を中心として、可動部を覆うように侵入禁止領域を設定すればよい。
【００７０】
設定の例を図８に示す。例えば図８にＲＣ’として網掛けで示したような平面的な領域を設定してもよい。また、回転機構の時と同様の理由で、空間的に広がりを持つ３次元領域を設定してもよい。具体的には、図８及び図５（Ｃ）に示したように直方体の領域を設定してもよいし、図５（Ｄ）に示したように四角錐台の領域を設定してもよい。領域の大きさが大きいほど、部品等の噛み込みの抑止効果が期待できる反面、ロボットの移動経路が限定されてしまうため、状況に応じて適切に設定する必要があることは回転機構の場合と同様である。
【００７１】
並進機構を有する可動部に対して侵入禁止領域を設定する処理の詳細について、図９（Ａ）のフローチャートを用いて説明する。この処理が開始されると、まず自動ステージ７０の設計情報１１２を取得する（Ｓ２０１）。設計情報１１２のうち、具体的には自動ステージ設計情報１１２５を取得することになる。これにより自動ステージ７０の基準位置に対してどの位置に並進機構が設けられているかがわかることになる。具体例を図１０に示す。設計情報より得られるのは、自動ステージ７０の基準位置に設けられた座標系における、並進機構の位置及び方向である。つまり、各可動部ベクトルＶＣ１〜ＶＣ２の始点の位置ｐＭと、ベクトルの方向ｎＭを取得することができる。ｐＭ、ｎＭはそれぞれｘｙｚの３軸に対応した３つの値からなるベクトルである。
【００７２】
次に自動ステージ７０の設置情報１１４を取得する（Ｓ２０２）。具体的には自動ステージ設置情報１１４５を取得することになる。設置情報１１４により、作業空間内のどの位置に、どのような姿勢で自動ステージ７０が設置されているかがわかることになる。具体例を図１０に示す。設置情報１１４により得られるのは、図１０においてＢ２で示した作業空間の基準位置に設けられたＸＹＺ座標系における、自動ステージ７０の設置位置Ｔ及び、設置の方向ω及びθである。
【００７３】
設計情報１１２及び設置情報１１４が取得されたら、作業空間における可動部ベクトルの並進運動軸の情報を算出する（Ｓ２０３）。これは回転機構の例と同様であり、ｐＭとｎＭに対して上式（１）、（２）の演算を行うことにより算出する。これにより、作業空間の基準位置に対する各可動部ベクトルＶＣ１〜ＶＣ２の位置をＰＭ、方向をＮＭとして求めることができる。
【００７４】
そして、求められた可動部ベクトルに対して図８に示したように侵入禁止領域を所定の形状を用いて設定し（Ｓ２０４）、設定した侵入禁止領域（並進に関する侵入禁止領域）の情報を侵入禁止領域（並進）情報１１８−２に記憶する（Ｓ２０５）。作業空間における侵入禁止領域の設定例を図９（Ｂ）及び図９（Ｃ）に示す。
【００７５】
３．３  変形例
変形例について説明する。上述の説明では、侵入禁止領域は周辺装置（例えばベルトコンベアー６０及び自動ステージ７０）に設定されるものとしたが、これに限定される必要はない。例えば、図１１に示したようにロボット３０に対して侵入禁止領域を設定してもよい。
【００７６】
図１に示したように、ロボットのアーム３２０にはジョイントが存在してもよい。その場合、ある回転軸の軸周りの回転を行うことでアームの姿勢を変化させることになる。よって当該回転軸を可動部ベクトルＶＲとして設定すればよく、具体的には図１１のＶＲ１〜ＶＲ６等が考えられる。
【００７７】
可動部ベクトルＶＲ１〜ＶＲ６の情報はロボット設計情報１１２１に記憶されていることになる。あとは、上述した回転機構における侵入禁止領域の設定と同様の手法を用いればよい。具体的には、ロボット設置情報１１４１をあわせて用いることで、作業空間における可動部ベクトルＶＲ１〜ＶＲ６の位置と方向を求め、求めた位置と情報に対応させて、侵入禁止領域ＲＲ１〜ＲＲ６を設定する。侵入禁止領域ＲＲ１〜ＲＲ６は図１１の例では円柱状になっているが、これに限定されないことは上述したとおりである。
【００７８】
また、上述したように本実施形態はカバー部材による保護する手法の採用を妨げるものではない。本実施形態の手法にあわせてカバー部材を用いる例を図１２に示す。図１２は並進機構を有する自動ステージ７０の例である。ここで、並進機構上にカバー部材ＣＶを設置したものとする。その場合、カバー部材ＣＶ上に部品が脱落したとしても、可動部にダメージを与えることはないため、カバー部材ＣＶにより保護される領域に対しては、侵入禁止領域を設定する必要がない。よって、カバー部材ＣＶがない場合に設定される侵入禁止領域（図８のＲＣ等）に比べて、カバー部材ＣＶにより保護される領域、及び保護される領域に対応する空間的な広がりを持つ領域分だけ狭い領域を侵入禁止領域とすればよい。具体的には、図１２においてＲＣ２で示したような領域を侵入禁止領域とすることが考えられる。このようにすることで、カバー部材ＣＶがない場合に比べて侵入禁止領域を狭くすることができるため、ロボットの移動経路の選択の幅が広がることになり、移動経路生成が容易になる。
【００７９】
４．ロボットの移動経路演算手法
図１３（Ａ）のフローチャートを用いて、当該移動経路演算処理の詳細について説明する。この処理が開始されると、まず侵入禁止領域の情報が取得される（Ｓ３０１，Ｓ３０２）。具体的には、Ｓ１０５で侵入禁止領域（回転）情報１１８−１に記憶された情報及びＳ２０５で侵入禁止領域（並進）情報１１８−２に記憶された情報を、経路演算部１２４が読み出すことになる。
【００８０】
次にロボット設置情報１１４１とロボット状態情報１１６１とから、ロボット３０の現在位置を取得する（Ｓ３０３）。それとともに、目標位置姿勢情報１１９から、ロボット３０の目標位置を取得する（Ｓ３０４）。具体例を図１３（Ｂ）及び図１３（Ｃ）に示す。図１３（Ｂ）は作業空間を水平に見た図であり、図１３（Ｃ）は作業空間を上方から見た図である。この例では、自動ステージ７０の脇に位置していたロボットを、ベルトコンベアー６０の上まで移動させる場合を想定している。なお、図１３（Ｂ）、図１３（Ｃ）に網掛けで示した部分が侵入禁止領域（ＲＢ１〜４、ＲＣ及びＲＤ）である。
【００８１】
その後、後の部品脱落範囲算出に用いられる部品設計情報１１２７を記憶部１１０から読み出す（Ｓ３０５）。部品設計情報１１２７には、部品の寸法、形状等の情報が記憶されている。
【００８２】
そして、図１４（Ａ）、図１４（Ｂ）に示したように、移動経路の中継位置（中継ポイント）の候補となる経路中継位置候補を作業空間上に配置する（Ｓ３０６）。例えば、経路中継位置候補は水平方向及び鉛直方向において、等間隔になるように配置される。
【００８３】
Ｓ３０５で取得した部品設計情報１１２７等に基づいて部品脱落範囲を算出し、ロボット３０の現在位置から目標位置までの経路を、経路中継位置候補を結ぶ線として算出する（Ｓ３０７，Ｓ３０８）。この処理の詳細について図１６のフローチャートを用いて後述する。現在位置から目標位置までの経路が算出されたら、当該経路を経路情報として、ロボット経路情報１１６２として記憶部１１０に記憶する（Ｓ３０９）。
【００８４】
次に、Ｓ３０７及びＳ３０８における部品脱落範囲の算出及び経路中継位置候補の選択処理について図１６を用いて説明する。この処理が開始されると、まずロボット３０の現在位置を経路の開始位置に設定する（Ｓ４０１）。同様にロボット３０の目標位置を経路終了位置に設定する（Ｓ４０２）。そして、経路開始位置を経路現在位置に設定する（Ｓ４０３）。ここで、経路現在位置とは、ロボット３０の移動経路において、現在着目している位置を表す。そして、経路現在位置が経路終了位置であるか（つまり、目標位置までの経路探索が終了したか）の判定が行われる（Ｓ４０４）。Ｓ４０４においてＹｅｓの場合は、目標位置まで適切に経路が探索できたということであるから、経路生成成功として（Ｓ４１８）、処理を終了する。Ｎｏの場合は探索途中であるということであるから、Ｓ４０５以降の処理を続ける。
【００８５】
Ｓ４０４においてＮｏの場合には、経路現在位置から見て経路終了位置に向かう経路中継位置候補を複数選択する（Ｓ４０５）。つまり、経路現在位置からつぎの中継位置となる候補を複数選択することになる。そして、選択した候補の数をＮとし（Ｓ４０６）、パラメータｉを０に設定する（Ｓ４０７）。
【００８６】
そして、ｉ＜Ｎが成り立つかの判定を行い（Ｓ４０８）、Ｎｏの場合には、後述するように、Ｎ個の候補全てを検証した結果１つも適切なものがなかったことになるため、経路生成失敗とし（Ｓ４１９）、処理を終了する。Ｓ４０８においてＹｅｓの場合には、まだ検証していない経路中継位置候補が残っているので、当該候補を検証することになる。
【００８７】
具体的には、Ｎ個の経路中継位置候補のうちのｉ番目の候補について、その高さ情報を取得する（Ｓ４０９）。そして、取得した高さ情報に基づいて、当該経路中継位置候補において部品が脱落した場合、床に落ちるまでに要する時間を表す落下時間を計算する（Ｓ４１０）。それとともに、経路現在位置からｉ番目の経路中継位置候補に向かう際のロボット３０（具体的にはロボットのハンド３３０）の速度を取得する（Ｓ４１１）。そして、落下時間とハンド速度とに基づいて、ｉ番目の経路中継位置候補における部品脱落範囲を計算する（Ｓ４１２）。
【００８８】
部品脱落範囲について図１７を用いて詳述する。まず、Ｓ３０５において取得した部品設計情報１１２７に基づいて、ロボット３０を用いて搬送する対象である部品の寸法であるＣ１を取得する。そして、Ｃ１を包含する範囲Ｃ２を設定する。Ｓ４１０により、経路中継位置候補の高さ情報から落下時間を求める。わかりやすい例としては、落下距離Ｃ３は床まで、或いは何かに衝突するまでの距離であり、当該落下距離分だけ自由落下するのに要する時間を落下時間とすればよい。ただし、落下距離は床までの距離に限定されるものではなく、より短い距離を設定してもよい。そして、ロボットハンドの速さと落下時間との積からＣ４をもとめ、Ｃ３とＣ４の合成ベクトルとして部品脱落距離Ｃ５をもとめる。部品脱落距離Ｃ５が求まったら、Ｃ５のベクトルの先端を中心としてＣ２と同じ大きさの領域を、オフセットした部品包含範囲Ｃ６として設定する。部品脱落範囲としては、Ｃ２、Ｃ６及びＣ２からＣ６までの間の領域を包含すればよいため、結局Ｃ２とＣ６を包含する領域Ｃ７が部品脱落範囲となる。
【００８９】
これによりＳ４１２における部品脱落範囲が求められるため、部品脱落範囲と侵入禁止領域とが重なるか否かを確認する（Ｓ４１３）。重ならないかの判定を行って（Ｓ４１４）、Ｎｏの場合、つまり重なる場合には、ｉ番目の経路中継位置候補は不適切であると判定し、ｉをインクリメントして（Ｓ４１５）、Ｓ４０８に戻り次の経路中継位置候補の確認を行う。Ｓ４１４においてＹｅｓの場合には、ｉ番目の経路中継位置候補は適切であると考えられるため、ｉ番目の経路中継位置候補を経路中継位置として登録し（Ｓ４１６）、登録した経路中継位置を経路現在位置に設定する（Ｓ４１７）。そしてＳ４０４に戻り、更新された経路現在位置が経路終了位置であるかの判定が行われ、経路終了位置でない場合にはＳ４０５からの処理が再度行われることになる。このようにして設定されたロボット移動経路の例を図１５（Ａ）、図１５（Ｂ）に示す。
【００９０】
また、経路決定後の実際のロボット３０の制御処理について図１８のフローチャートを用いて説明する。この処理が開始されると、まず各ジョイントの回転速度ゲインを取得する（Ｓ５０１）。ロボット経路情報１１６２から、経路のステップ数を取得し（Ｓ５０２）、実行ステップのインデックスＮを初期化する（Ｓ５０３）。そして、Ｎが経路ステップ数より小さいかの判定を行い（Ｓ５０４）、Ｎｏの場合には全てのステップの処理が終了したとして、ロボット状態情報１１６１の各ジョイントの角度を更新する（Ｓ５０５）。
【００９１】
Ｓ５０４においてＹｅｓの場合には、ロボット経路情報１１６２からＮ番目のステップにおける各ジョイントの目標角度を取得し（Ｓ５０６）、各ジョイントの現在角度と目標角度の差の絶対値Δを計算する（Ｓ５０７）。そして、Δが許容角度差よりも大きいかの判定を行い（Ｓ５０８）、Ｎｏの場合には角度差が許容範囲に収まっているということであるため、Ｎをインクリメントし（Ｓ５０９）、Ｓ５０４に戻り次の実行ステップの処理に移行する。Ｓ５０８でＹｅｓの場合には、各ジョイントの回転速度を計算し（Ｓ５１０）、各ジョイントを回転速度に従って回転させ（Ｓ５１１）、各ジョイントの現在角度を更新する（Ｓ５１２）。そしてＳ５０７に戻り、Δを計算し、Ｓ５０８で許容差以内であるかの判定を再度行う。
【００９２】
以上が、経路演算処理の詳細であるが、ここで部品脱落範囲と侵入禁止領域について補足を行う。上述したように、部品脱落範囲を設定する際には、図１７に示したＣ１〜Ｃ７を順次設定していくことになる。このとき、Ｃ３の落下距離は必ずしも床まで、或いは何かに衝突するまでの距離である必要はなく、より短い距離であってもいいことは上述した。この理由としては、上述のように設定した場合、部品脱落範囲が広くなりすぎる可能性があることが挙げられる。侵入禁止領域の説明の際に述べたのと同様に、部品脱落範囲を広く取ると、狭く取った場合に比べて部品の噛み込み等の抑止効果が高まるが、ロボット３０の移動経路が制限される。つまり、必要以上に部品脱落範囲を取りすぎることで、ロボット３０の移動経路が生成されなくなる可能性が生じてしまう。
【００９３】
つまり、侵入禁止領域と部品脱落範囲の大きさは独立に捉えるのではなく、連動して考えた上で、適切な領域を設定することが望ましい。侵入禁止領域を平面的な領域でなく、空間的に広がりを持つ領域として説明したのは、部品脱落範囲の落下距離を床等までの距離に比べて短く取ることを想定していたことも理由としてあげられる。もし、部品脱落範囲が脱落部品の落下経路を完全に包含する領域として設定可能であれば、侵入禁止領域は最低限の平面的領域を設定すれば足りる。しかし、そのためには、経路設計時（つまり部品脱落範囲設定時）に想定したロボット３０の移動速度と、実際の作業時の速度が一致すること等が条件となり、落下距離Ｃ３を床等までの距離としたとしても実現は困難である。
【００９４】
よって、部品脱落範囲は脱落部品の落下経路を必ずしも包含し得ないことを前提にせざるを得ず、そのために侵入禁止領域は平面よりはより余裕を持たせた立体的な領域を設定することが望ましい。そうなれば、侵入禁止領域側で部品噛み込み等の抑止効果の向上が担保されるため、部品脱落範囲を過剰に大きくする必要もなく、従って図１７Ｃ３の落下距離は床等までの距離よりも短くてもよいということになる。
【００９５】
さらに補足すれば、侵入禁止領域を円錐台（或いは四角錐台）にすることにも、理由がある。なぜなら、図１９（Ａ）に示したように、水平方向への移動の場合、脱落部品は移動方向にも速度を持つため、図１９（Ａ）のＣ７に示したように斜め方向の部品脱落範囲が設定されることになる。しかし、図５（Ａ）のように円柱状の侵入禁止領域ＲＢでは、部品脱落範囲の大きさ次第では干渉が起きないため、斜め方向からの部品の侵入を抑えることができない。その点、図１９（Ｂ）のように斜め方向にも侵入禁止領域を拡大すれば、上述の問題を回避できる。斜め方向への拡大とは一例としては、円柱ではなく円錐台を設定すればよいことになる。
【００９６】
以上の本実施形態では、図２及び図３に示したようにロボット制御システムは、ロボット制御に関する処理を行う処理部１２０と、ロボット制御に関する情報を記憶する記憶部１１０と、処理部１２０での処理結果に基づいてロボット３０の制御を行うロボット制御部１７０とを含む。そして、記憶部１１０は、可動部を有する周辺装置の設計情報（例えばコンベアー設計情報１１２３等）及び設置情報（例えばコンベアー設置情報１１４３等）を記憶する。処理部１２０は、侵入禁止領域設定部１２２と、経路演算部１２４を含む。侵入禁止領域設定部１２２は、周辺装置の設計情報及び設置情報に基づいて、周辺装置の可動部に対応付けてワークの侵入禁止領域を設定する。経路演算部１２４は、侵入禁止領域の情報に基づいて、ロボット３０のアーム３２０のエンドポイントの経路情報を演算する。
【００９７】
ここで、周辺装置とは例えば、図１に示したベルトコンベアー６０や、自動ステージ７０等であり、ベルトコンベアー６０は回転機構の可動部を有し、自動ステージ７０は並進機構の可動部を有する。可動部は例えば、回転機構であれば回転軸を表すベクトル（ＶＢ１及びＶＢ２等）として表現されてもよく、並進機構であれば並進運動方向を表すベクトル（ＶＣ１及びＶＣ２等）として表現されてもよい。また、経路情報とは、ロボットの移動経路そのものの情報であってもよいし、移動経路に対応する情報であってもよい。
【００９８】
これにより、可動部に対応付けてワークの侵入禁止領域を設定した上で、設定した侵入禁止領域に基づいてロボット３０のアーム３２０のエンドポイントの移動経路（上述したように、適宜ロボットの移動経路、或いは移動経路と呼ぶ）を演算することが可能になる。よって、周辺装置の可動部のように、部品（ワーク）を噛み込むことで当該装置及び製造ラインの動作に大きな影響を与える領域に、部品が侵入しないようなロボットの移動経路を生成できるため、カバー部材を用いる手法とは異なる観点から、周辺装置等の保護ができる。カバー部材を用いる手法では、カバー部材に隙間が生じることで部品の噛み込みの抑止効果に限界があったり、リアルタイム性が要求される負荷の高い処理が必要になったりしていた。それに対し本実施形態の手法では、そもそも可動部に部品が落下しないような挙動をロボット３０に取らせるため、カバー部材の隙間等は問題にならない。また、経路演算はロボットを実際に動作させる前に、事前演算が可能であるためリアルタイム性の問題も回避できる。
【００９９】
また、経路演算部１２４は、脱落したワークの落下する範囲に対応する部品脱落範囲を設定し、設定した部品脱落範囲の情報と、侵入禁止領域の情報とに基づいて、経路情報を演算する。
【０１００】
これにより、ワークの落下する範囲に対応する部品脱落範囲と、ワークの侵入が好ましくない領域である侵入禁止領域とに基づく処理が可能になるため、脱落したワークが可動部に対して落下するか否かの判定ができる。そして、当該判定に基づいて経路情報を生成することで、脱落したワークの可動部への噛み込み等を抑止することが可能になる。具体的には、ワークが可動部に対して落下する可能性が低いと判定された経路情報を採用することになる。部品脱落範囲と侵入禁止領域に基づく処理とは、具体的には、２つの領域の重なりをチェックし、重なっていた場合に脱落部品が可動部に落下すると判定することが考えられる。ただし重なりに限定される必要はなく、例えば、部品脱落範囲と侵入禁止領域との距離の最小値が所与の閾値よりも小さい場合には、脱落部品が可動部に落下しうると判定してもよい。
【０１０１】
また、経路演算部１２４は、ワークの搬送のスタート位置と目標位置との間に設定された複数の中継ポイントの各中継ポイントにおいて、部品脱落範囲を設定し、設定した部品脱落範囲と侵入禁止領域との干渉チェックを行うことで経路情報を演算してもよい。
【０１０２】
ここで、中継ポイントは例えば、図１４（Ａ）及び図１４（Ｂ）に示したように水平方向及び鉛直方向に等間隔に配置されることが考えられるが、これに限定されるものではない。
【０１０３】
これにより、中継ポイントを用いて経路情報を演算することが可能になる。つまり図１５（Ａ）、図１５（Ｂ）に示したように、中継ポイントに対して部品脱落範囲を設定し、設定した部品脱落範囲と侵入禁止領域が干渉していなければ、当該中継ポイントを移動経路として採用する。実際には図１６のフローチャートに示したようにいくつかの経路中継位置候補を設定し、１つずつ判定を行っていく。ここで、各中継ポイント間の距離をある程度取ることにより、部品脱落範囲の設定処理及び侵入禁止領域との干渉チェック処理の回数を減らし、処理負荷を軽減することが可能になる。ただし、中継ポイント間の距離を大きくしすぎると、移動経路の候補が少なくなるため、適切な値を設定する必要がある。また、干渉チェックは、例えば領域の重なりがあるか否かの判定を行えばよく、空間的に広がる２つの領域の重なりについて既存の手法により容易に判定可能である。
【０１０４】
また、経路演算部１２４は、ロボット３０の第１の経路に含まれる各中継ポイントに設定された部品脱落範囲のうち少なくとも１つの部品脱落範囲と侵入禁止領域とが干渉し、且つ、ロボット３０の第２の経路に含まれる各中継ポイントに設定された全ての部品脱落範囲と侵入禁止領域とが干渉しない場合に、第２の経路をロボット３０の移動経路として選択してもよい。
【０１０５】
これにより、ロボット３０の移動経路を演算するに当たって複数の経路の候補があった場合に、当該複数の経路のうち部品脱落範囲と侵入禁止領域とが干渉しない経路を選択することが可能になる。具体的には例えば、図１６のフローチャートで示したように、経路現在位置から目標位置へ向かう方向に複数の経路中継位置候補を設定し、各経路中継位置候補に設定された部品脱落範囲と、侵入禁止領域との干渉をチェックし、それらが干渉しない経路中継位置候補を選択する処理を行えばよい。
【０１０６】
また、経路演算部１２４は、エンドポイントの速さ情報と移動方向情報に基づいて、部品脱落範囲を設定してもよい。
【０１０７】
これにより、エンドポイントの速さ情報及び移動方向の情報による影響、つまり部品脱落範囲に対する慣性の影響を考慮することが可能になる。ロボット３０のハンド３３０（エンドポイントにハンドが取り付けられたものとする）により搬送されているワークは、搬送中に脱落したとしても脱落地点の真下に落下するものではない。例えば水平方向に搬送している途中であったのなら、脱落し落下するワークは水平方向の速度を持つことになり、結果として真下ではなく斜め方向に落下する。これは、図１７におけるベクトルＣ４に相当する。具体的には、落下距離Ｃ３とＣ４の合成ベクトルＣ５分だけ部品包含範囲をオフセットさせ（Ｃ６）、元の部品包含範囲Ｃ２とＣ６とを包含する範囲を部品脱落範囲Ｃ７とする処理において、オフセット用のベクトルＣ５を求めるためのベクトルＣ４を、エンドポイントの速度ベクトル（速さ情報及び移動方向情報）に係数をかけることで求めることになる。
【０１０８】
また、経路演算部１２４は、エンドポイントの位置情報から求められたワークの落下時間情報に基づいて、部品脱落範囲を設定してもよい。
【０１０９】
これにより、部品脱落範囲を求める位置（例えば対象としている中継ポイントの位置）の情報として、例えば当該位置の床等からの高さ情報を取得して、床等まで落下するのにかかる時間の情報を求めることが可能になる。上述したように、脱落部品の運動は自由落下による影響と、慣性による影響の合成として求められる。そして、慣性により生じた速度に運動時間をかけることで、慣性の影響による運動距離が求まる。ここでは、床等に衝突するまでの運動を問題としているため、求めるべき運動時間とは床等まで落下するのに要する落下時間に他ならない。落下距離（床等までの距離）が図１７におけるベクトルＣ３に相当し、上述した慣性による速度に落下時間をかけたものがＣ４に相当する。具体的には、落下距離Ｃ３とＣ４の合成ベクトルＣ５分だけ部品包含範囲をオフセットさせ（Ｃ６）、元の部品包含範囲Ｃ２とＣ６とを包含する範囲を部品脱落範囲Ｃ７とする処理において、高さ情報から落下距離Ｃ３を求め、エンドポイントの速度ベクトルＣ４にかける係数を落下時間として求めることになる。なお、落下距離を床等までの距離とせず、より短い距離に設定してもよいことは上述したとおりである。
【０１１０】
また、経路演算部１２４は、ワークの設計情報（図３における部品設計情報１１２７）に基づいて、部品脱落範囲を設定してもよい。
【０１１１】
これにより、部品設計情報１１２７から部品脱落範囲を設定することが可能になる。部品脱落範囲とは、脱落した部品が落下・衝突する範囲に対応するものであるから、大きい部品であれば大きくなり、小さい部品であれば小さくなることが当然である。よって、部品設計情報１１２７から、部品の寸法等の情報を取得し、取得した情報を部品脱落範囲に反映させる。具体的には、落下距離Ｃ３とＣ４の合成ベクトルＣ５分だけ部品包含範囲Ｃ２をオフセットさせ（Ｃ６）、元の部品包含範囲Ｃ２とＣ６とを包含する範囲を部品脱落範囲Ｃ７とする処理において、部品設計情報１１２７（Ｃ１）から部品包含範囲Ｃ２を求めることになる。なお、部品包含範囲という考えを用いることで、部品の細かい形状等を問題にする必要がなくなり、処理を容易にすることができる。
【０１１２】
また、記憶部１１０はロボット３０の設計情報（ロボット設計情報１１２１）と、設置情報（ロボット設置情報１１４１）を記憶する。そして、経路演算部１２４はロボット３０の設計情報及び設置情報に基づいて経路情報を演算してもよい。
【０１１３】
これにより、ロボット３０自身と周辺装置との衝突を回避することが可能になる。本実施形態においては、脱落部品と周辺装置の可動部の関係を説明してきたが、それだけではロボット３０の移動経路を演算することはできず、ロボット３０自身が周辺装置と衝突しないようにする必要がある。本実施形態では、ロボット設計情報１１２１及びロボット設置情報１１４１を記憶していることから、これらの情報を用いることで、ロボット３０の寸法や作業空間における設置位置等を知ることができる。ロボット３０との衝突を考慮するのは、周辺装置全体なのか周辺装置の可動部なのかという問題については、どちらであってもよい。前者の場合には、周辺装置の設計情報（コンベアー設計情報１１２３等）と設置情報（コンベアー設置情報１１４３等）から求められる周辺装置そのものの領域との干渉チェックを行えばよいし、後者の場合には侵入禁止領域等との干渉チェックを行えばよい。
【０１１４】
また、侵入禁止領域設定部１２２は、周辺装置の可動部が回転機構を有する可動部である場合に、回転機構の回転軸の情報と可動部の位置情報とに基づいて侵入禁止領域を設定してもよい。
【０１１５】
これにより、図１のベルトコンベアー６０等に示したような回転機構を有する可動部に関する情報を、当該回転機構の回転軸を表す可動部ベクトル（ＶＢ１等）として設定し、設定した可動部ベクトルに基づいて侵入禁止領域を設定することが可能になる。侵入禁止領域が周辺装置の設計情報及び設置情報に基づいて決定されることは上述したが、その具体的なデータ形式の一例を表したものである。例えば、可動部ベクトルの始点を回転軸上の点のうち外部に露出している点とし、可動部ベクトルの大きさにより回転機構の半径を表現することが考えられる。その場合、図５（Ａ）の円柱でいえば、底面及び上面にあたる円の中心を可動部ベクトルもしくは可動部ベクトルの延長線が貫き、且つ底面の中心と可動部ベクトルの始点が一致し、底面及び上面の大きさは可動部ベクトルの大きさに一致するように設定する手法が一例としてあげられる。なお、回転機構の回転軸の情報（可動部ベクトル）の始点は、可動部の位置情報である設置情報（コンベアー設置情報１１４３等）により決定され、具体的な計算式は、図７に示したとおりである。
【０１１６】
また、侵入禁止領域設定部１２２は、周辺装置の可動部が並進機構を有する可動部である場合に、並進機構の並進方向の情報と可動部の位置情報とに基づいて侵入禁止領域を設定してもよい。
【０１１７】
これにより、図１の自動ステージ７０等に示したような並進機構を有する可動部に関する情報を、当該並進機構の並進方向（並進運動の方向）を表す可動部ベクトル（ＶＣ１等）として設定し、設定した可動部ベクトルに基づいて侵入禁止領域を設定することが可能になる。侵入禁止領域が周辺装置の設計情報及び設置情報に基づいて決定されることは上述したが、その具体的なデータ形式の一例を表したものである。例えば、可動部ベクトルの始点を並進機構（並進方向及びそれに直交する方向に広がりを持つ長方形が想定される）の中心とし、可動部ベクトルの大きさにより並進方向の長さを表現することが考えられる。その場合、図５（Ｃ）の直方体でいえば、底面の中心と可動部ベクトルの始点が一致し、並進方向の長さが可動部ベクトルの大きさと一致するように設定する手法が一例としてあげられる。その場合、直方体の幅及び高さは可動部ベクトルのみからは設定できないため、他の情報を保持する、或いは所定の値を用いることが考えられる。なお、並進機構の並進方向の情報（可動部ベクトル）の始点は、可動部の位置情報である設置情報（自動ステージ設置情報１１４５等）により決定され、具体的な計算式は、図１０に示したとおりである。また、本実施形態においては、可動部ベクトルは１方向のみ（例えばＶＣ１とＶＣ２のうち一方のみ）を設定すれば十分な場合も考えられるが、並進方向が一方向のみであるとの誤解を生じさせないように、並進運動が可能な２方向両方に可動部ベクトルを描いている。
【０１１８】
また、侵入禁止領域設定部１２２は、周辺装置の可動部がカバー部材を有する場合に、カバー部材の設置位置情報に基づいて侵入禁止領域を設定してもよい。
【０１１９】
これにより、図１２に示したように、カバー部材を用いることで侵入禁止領域を狭くすることが可能になり、ロボットの移動経路の選択の幅を広げることができる。カバー部材を設置した場合に、設置しなかった場合の侵入禁止領域の一部が削減されることになるが、当該削減領域の設定手法は種々考えられる。例えば図１２のように、脱落部品が自由落下するケースを想定し、設置したカバー部材の直上の領域を削減し、侵入禁止領域をＲＣ２に設定すればよい。
【０１２０】
また、本実施形態は上述のロボット制御システムと、ロボット制御システムにより制御されるロボットとを含むロボットシステムに関係する。
【０１２１】
これにより、上述してきたロボット制御装置がロボット３０を制御することにより、連係して動作を行うロボットシステムを実現することが可能になる。
【０１２２】
また、本実施形態は、ロボット制御に関する処理を行う処理部１２０と、ロボット制御に関する情報を記憶する記憶部１１０と、処理部１２０での処理結果に基づいてロボット３０の制御を行うロボット制御部１７０としてコンピューターを機能させるプログラムに関係する。そして、記憶部１１０は、可動部を有する周辺装置の設計情報（例えばコンベアー設計情報１１２３等）及び設置情報（例えばコンベアー設置情報１１４３等）を記憶する。処理部１２０は、侵入禁止領域設定部１２２と、経路演算部１２４を含む。侵入禁止領域設定部１２２は、周辺装置の設計情報及び設置情報に基づいて、周辺装置の可動部に対応付けてワークの侵入禁止領域を設定する。経路演算部は、侵入禁止領域の情報に基づいて、ロボット３０のアーム３２０のエンドポイントの経路情報を演算する。
【０１２３】
これにより、ソフトウェア的にロボットを制御する処理を行うプログラムを実現することが可能になる。そして、上記プログラムは、情報記憶媒体１８０に記録される。ここで、情報記憶媒体１８０としては、ＤＶＤやＣＤ等の光ディスク、光磁気ディスク、ハードディスク（ＨＤＤ）、不揮発性メモリーやＲＡＭ等のメモリーなど、情報処理装置１０等によって読み取り可能な種々の記録媒体を想定できる。例えば、図２に示したように、ＰＣ等の情報処理装置によって読み取り可能な種々の記録媒体にプログラムが記憶され、処理部１２０において実行されるケースが考えられる。
【０１２４】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またロボット制御システム、ロボットシステム等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１２５】
ＣＶ  カバー部材、ＲＢ１−ＲＢ４  侵入禁止領域、ＲＲ１−ＲＲ６  侵入禁止領域、
ＶＢ１−ＶＢ４  可動部ベクトル（回転）、ＶＣ１−ＶＣ２  可動部ベクトル（並進）、
ＶＲ１−ＶＲ６  可動部ベクトル（ロボット）、
１０  情報処理装置、２０  撮像装置、３０  ロボット、６０  ベルトコンベアー、
７０  自動ステージ、１１０  記憶部、１１２  設計情報、１１４  設置情報、
１１６  制御情報、１１８  侵入禁止領域情報、
１１９  目標位置姿勢情報、１２０  処理部、１２２  侵入禁止領域設定部、
１２４  経路演算部、１５０  表示部、１６０  外部Ｉ／Ｆ部、
１７０  ロボット制御部、１８０  情報記憶媒体、３２０  アーム、３３０  ハンド、
１１２１  ロボット設計情報、１１２３  コンベアー設計情報、
１１２５  自動ステージ設計情報、１１２７  部品設計情報、
１１４１  ロボット設置情報、１１４３  コンベアー設置情報、
１１４５  自動ステージ設置情報、１１６１  ロボット状態情報、
１１６２  ロボット経路情報、１１６３  コンベアー状態情報、
１１６５  自動ステージ状態情報、１１６７  部品脱落範囲情報、
１２４１  部品脱落範囲算出部
【図１】
2012245577.tif 000003
【図２】
2012245577.tif 000004
【図３】
2012245577.tif 000005
【図４】
2012245577.tif 000006
【図５】
2012245577.tif 000007
【図６】
2012245577.tif 000008
【図７】
2012245577.tif 000009
【図８】
2012245577.tif 000010
【図９】
2012245577.tif 000011
【図１０】
2012245577.tif 000012
【図１１】
2012245577.tif 000013
【図１２】
2012245577.tif 000014
【図１３】
2012245577.tif 000015
【図１４】
2012245577.tif 000016
【図１５】
2012245577.tif 000017
【図１６】
2012245577.tif 000018
【図１７】
2012245577.tif 000019
【図１８】
2012245577.tif 000020
【図１９】
2012245577.tif 000021