(57)【要約】【課題】複数の駆動部を備える多関節型のロボットをシミュレーションする際、早期に故障するおそれのある駆動部を事前に提示することができるロボットのシミュレーション装置を提供する。【解決手段】シミュレーション装置４０は、ロボットに与えられる実行命令を命令解析部５０にて解析し、予め定められている作業サイクルを実行するための一連の実行命令の解析結果を当該作業サイクルにおける動作履歴として動作履歴記憶部５１に記憶し、その動作履歴に基づいてロボットの各軸のうち作業サイクル中に動作していない非動作軸が存在するか否かを非動作軸判定部５３にて判定し、非動作軸が存在する場合にはその旨をモニタ４２に表示することによりユーザに提示する。【選択図】図６
2014034094.tif 000002
【特許請求の範囲】
【請求項１】
複数のアームを有する多関節型のロボットをモデル化し、当該ロボットの動作をシミュレートするロボットのシミュレーション装置であって、
前記ロボットに与えられる実行命令を解析する命令解析手段と、
予め定められている作業サイクルを実行するための一連の前記実行命令の解析結果を、当該作業サイクルにおける前記ロボットの動作履歴として記憶する動作履歴記憶手段と、
前記動作履歴に基づいて、前記ロボットの各軸のうち前記作業サイクル中に動作していない非動作軸が存在するか否かを判定する非動作軸判定手段と、
前記非動作軸が存在することをユーザに提示する提示手段と、
を備えることを特徴とするロボットのシミュレーション装置。
【請求項２】
前記作業サイクル中において、前記アームを予め設定される教示点間で移動させる際、前記アームの移動態様が、当該アームの移動軌跡を相対的に重視した作業動作または当該アームの移動速度を相対的に重視した移動動作のいずれであるかを特定する移動態様特定手段をさらに備え、
前記提示手段は、前記移動動作が行われている期間を、前記非動作軸を動作させることが可能な動作可能期間としてさらに提示することを特徴とする請求項１記載のロボットのシミュレーション装置。
【請求項３】
前記移動態様特定手段は、前記ロボットによりワークが移送されている状態である移送状態であるか否かをさらに特定し、
前記提示手段は、前記動作可能期間のうち、前記移送状態でない期間を優先して前記動作可能期間としてさらに提示することを特徴とする請求項２記載のロボットのシミュレーション装置。
【請求項４】
前記提示手段は、前記作業サイクル中に前記動作可能期間が複数存在する際、長い期間から優先して提示することを特徴とする請求項２または３記載のロボットのシミュレーション装置。
【請求項５】
前記アームの可動範囲を設定する可動範囲設定手段と、
前記可動範囲内に仮想的なオブジェクトを配置するオブジェクト配置手段と、
前記動作可能期間に前記非動作軸を動作させるための補助実行命令を付加する補助命令付加手段と、
前記補助実行命令を付加した状態で前記作業サイクルを実行した際、前記アームの軌跡が前記仮想オブジェクトに衝突するか否かを判定する衝突判定手段と、をさらに備え、
前記提示手段は、前記衝突判定手段による判定結果をさらに提示することを特徴とする請求項２から４のいずれか一項記載のロボットのシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアームを有する多関節型のロボットをモデル化し、当該ロボットの動作をシミュレーションするロボットのシミュレーション装置に関する。
【背景技術】
【０００２】
複数のアームを有する多関節型のロボットは、各軸に対応して複数の駆動部が設けられている。各駆動部は、一般的に、各軸を駆動するためのモータと、そのモータの出力を出力軸側に連結されているアームに伝達する歯車機構とを有している。この歯車機構は、例えば周知の波動歯車装置などが採用されており、各軸で歯数が異なるといった差違はあるものの、構造自体は概ね共通した設計となっている。このような歯車機構は潤滑剤が減少すると歯車の破損を招くなどのおそれがあることから、例えば特許文献１では、動作中の歯車に対して十分な潤滑を行うための対策が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−７９６２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
さて、ロボットなどの産業機器は、一般的に予め耐用年数が想定されており、その耐用年数に耐えうる設計がなされている。具体的には、上記したように複数の駆動部を有する多関節型のロボットの場合、各駆動部の耐用年数が概ね一致するように設計されている。
しかしながら、実際にロボットを設置して予め定められている作業サイクルを繰り返し実行させた際、上記したように耐用年数が概ね一致するはずの駆動部のうち特定の駆動部が想定よりも短い期間で故障し、ロボット全体としての耐用年数の低下を招くことがあった。また、故障する駆動部が顧客ごと異なるなど、ロボットの設計上の不具合とは考えにくい状況であった。
【０００５】
本発明は、上記事情に鑑みてなされたものであり、その目的は、複数の駆動部を備える多関節型のロボットをシミュレーションする際、早期に故障するおそれのある駆動部を提示することができるロボットのシミュレーション装置を提供することにある。
【課題を解決するための手段】
【０００６】
発明者は、故障したロボットを調査した結果、想定よりも短い期間で故障する駆動部が作業サイクル中に動作していない駆動部に集中していることを見いだした。多関節型のロボットの場合、様々な作業を実行する可能性があることから汎用性を考慮して複数の駆動部が設けられているものの、作業内容によっては全く動作しない駆動部も存在する。この場合、駆動部が動作しなければ歯車機構も動作しないことから、歯車機構の歯が摩耗したり破損したりするおそれは小さく、一般論で言えば、動作していない駆動部に故障が集中する状況は考えにくい。そこで、発明者は、駆動部に故障が生じる過程をさらに詳細に解析した結果、動作していない駆動部に故障が集中するのは、作業内容に対して可動軸の構成に冗長性のある多関節型のロボットに特有の現象であることを見いだした。
【０００７】
多関節型のロボットにおいては、他の駆動部の動作やアームの移動に起因する振動が動作していない駆動部に伝達される。そして、ロボットは予め定められている作業サイクルを繰り返し実行することから、動作していない駆動部には繰り返し振動が伝達されることになる。その振動は、駆動部の歯車機構にも伝達される。駆動部の歯車機構には、粘度が比較的大きい潤滑油が潤滑剤として一般的に用いられており、その潤滑油は、歯車機構が動作していない状況では固体に近い性質となっている。このため、歯車機構に振動が伝達されると、その振動によって潤滑油が部分的に欠落し、歯車機構の歯の間に潤滑油が存在しない欠落領域が比較的小さい範囲でまず発生する。この欠落領域は、作業サイクルが繰り返し実行されることによって、すなわち、振動が繰り返し伝達されることによって徐々に拡大していく。その際、噛み合った歯同士が直接的に接触する状態となり、その状態でさらに振動が繰り返し伝達された結果、直接的に接触した歯が損傷し、駆動部の故障を招いていたのである。
【０００８】
そこで、請求項１記載の発明では、ロボットに与えられる実行命令を解析し、予め定められている作業サイクルを実行するための一連の実行命令の解析結果を当該作業サイクルにおける動作履歴として記憶し、その動作履歴に基づいてロボットの各軸のうち作業サイクル中に動作していない非動作軸が存在するか否かを判定し、非動作軸が存在することをユーザに提示する。
【０００９】
これにより、実際にロボットを設置して作業サイクルを実行させる前に、作業サイクル中に動作しない駆動部が存在することをユーザに提示することができる。したがって、上記したような故障が発生するおそれのある駆動部に対して、作業サイクル中に非動作軸を駆動させるための実行命令を付加するなどの対策を取ることが可能となり、特定の駆動部における故障の発生を抑制することができるようになる。
【００１０】
請求項２記載の発明では、アームを予め設定される教示点間で移動させる際の移動態様が、アームの移動軌跡を相対的に重視した作業動作とアームの移動速度を相対的に重視した移動動作のいずれであるかを判定し、アームが移動動作を行っている期間を、非動作軸を動作させることが可能な動作可能期間として提示する。なお、作業動作とは、アームを教示点間で移動させる際、ワークを掴んだり組み付けたりするなどの作業を行うために移動軌跡を相対的に重視してアームを滑らかに移動させる制御を行うときの動作であり、一般的にはＣＰ（Continuous Path）動作と呼ばれている。また、移動動作とは、アームを教示点間で移動させる際、移動速度を相対的に重視して教示点間を素早く移動させる制御を行うときの動作、換言すると、軌跡をそれほど重視しない動作であり、一般的にはＰＴＰ（Point To Point）動作と呼ばれている。以下、便宜的に、作業動作をＣＰ動作、移動動作をＰＴＰ動作と称する。
【００１１】
上記したように非動作軸を提示することで故障するおそれのある駆動部に対して何らかの対処を施すことは可能となるものの、ユーザは、いつ駆動部を動作させればよいかを改めて考え直す必要がある。このとき、例えば一回の作業サイクルが終了する毎に非動作軸を動作させると、次の作業サイクルを実行するまでに本来の作業では不要な時間を要することになり、作業を行うために要する時間（以下、タクトタイムと称する）が長くなる。そして、タクトタイムが長くなると、所定の作業量をこなすためには余分に時間が掛かる一方、予め作業時間が決められている場合には実行可能な作業サイクル数が低下することになり、生産効率が低下する。このため、タクトタイムに影響を与えないように対象となる駆動部を動作させることが求められる。
【００１２】
さて、ロボットの作業サイクルに上記したＣＰ動作やＰＴＰ動作が含まれることは一般的に知られている。このため、タクトタイムに影響を与えることなく、また、ロボットの本来の作業に影響を与えることなく（アームの軌跡に大きな影響を与えることなく）駆動部を動作させるには、ＰＴＰ動作中に動作させることがまず考えられる。しかし、潤滑剤を満遍なく拡散させるために例えば歯車機構の歯の噛み合い位置を一回転させるような動作を行わせると、アームが大きく移動してしまい、いくら軌跡をそれほど重視していないＰＴＰ動作中といえども、アームやハンドあるいはハンドに保持されたワークなどが周辺設備に衝突するおそれがある。つまり、どの時期に駆動部を動作させればよいかは、ＰＴＰ動作中であればよいといった単純な問題ではない。
【００１３】
ここで、発明者による解析結果が有効活用されることになる。すなわち、発明者によって、潤滑剤の欠落領域が上記したように比較的小さい範囲でまず発生すること、さらに、発生当初の欠落領域が１歯未満程度の大きさであることが見いだされている。このため、発生当初の欠落領域に潤滑剤を拡散させるためには、潤滑剤が欠落していない部位に噛み合わせればよいこと、すなわち、歯車機構の歯の噛み合い位置を１歯以上移動させればよいことが明らかになった。換言すると、発生当初の欠落領域に対処するためには、アームを大きく動かす必要がないことが明らかになった。さらに、噛み合い位置を１歯以上動かす程度の動作であれば、ＰＴＰ動作中に十分実施可能であると考えられる。
【００１４】
このような解析結果の裏付けに基づいて、アームが移動動作を行っている期間を、非動作軸を動作させることが可能な動作可能期間として提示している。これにより、発生当初の欠落領域に潤滑剤を拡散させることが可能となり、欠落領域の拡大を抑制することができるとともに、非動作軸を動作させれば潤滑剤が拡散されることから、欠落領域の発生そのものを抑制することができる。また、上記したように非動作軸の動作はＰＴＰ動作中に実施可能な動作であることから、ＰＴＰ動作中に完了する。したがって、タクトタイムが長くなるなどの影響を与えることが無く、生産効率が低下するおそれを抑制することができる。
【００１５】
請求項３記載の発明では、ワークを移送していないと判定された期間を優先して提示する。ロボットは、与えられた指令に基づいて動作することから、通常は対象となるワークがどのようなものであるかを自身で把握することができない。そこで、ワークを移送していない期間を優先して提示することにより、本来の作業サイクルでは動作することを想定していない非動作軸を動作させた場合であっても、その動作に起因してワークが周辺設備に衝突するなどの不具合を生じさせることがない。
【００１６】
請求項４記載の発明では、作業サイクル中に複数の動作可能期間が存在する場合、最も動作時間の長い動作可能期間を優先して提示する。動作可能期間の動作時間が長ければ、非動作軸を動作させたとしても確実に本来の位置まで戻すことができ、アームの軌跡に大きな影響を与えることがない上、動作時間内でより非動作軸を大きく動かすことが可能となり、欠落領域の発生および拡大をさらに抑制することができる。
【００１７】
請求項５記載の発明では、アームの可動範囲を設定し、当該可動範囲内に仮想的なオブジェクトを配置し、動作可能期間に非動作軸を動作させるための補助実行命令を付加した状態で作業サイクルを実行した際、アームの軌跡がオブジェクトに衝突するか否かを判定し、その判定結果を提示する。なお、オブジェクトは、実際の作業環境における周辺設備などに相当する。これにより、ロボットのシミュレーション装置上で補助実行命令を実行した際の動作を確認することができる。この場合、ハンド（エンドエフェクタとの呼ばれる）やハンドにより保持されたワーク、あるいは周辺設備などをオブジェクトとして配置すれば、実機の動作環境を再現した上で、非動作軸の動作が可能であるか否かを判断することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態で対象とするロボットの構成を概略的に示す図
【図２】歯車機構を概略的に示す図
【図３】ＣＰ動作およびＰＴＰ動作の一例を模式的に示す図
【図４】図２のＩＶ領域の拡大図で、潤滑油の欠落領域の遷移を模式的に示す図
【図５】シミュレーション装置の構成を概略的に示す図
【図６】シミュレーション装置の電気的構成を概略的に示す図
【図７】シミュレーション装置のシミュレーション画面の一例を示す図その１
【図８】シミュレーション装置のシミュレーション画面の一例を示す図その２
【図９】シミュレーション装置の処理の流れを示す図
【図１０】シミュレーション装置の提示画面の一例を示す図
【図１１】本発明の第２実施形態で対象とするロボットの構成を概略的に示す図
【発明を実施するための形態】
【００１９】
（第１実施形態）
以下、本発明の第１実施形態について、図１から図１０を参照しながら説明する。
まず、対象となるロボットおよび故障が発生するメカニズムについて、図１から図４を参照して説明する。図１に示すように、一般的な産業用に用いられるロボットシステム１は、多関節型のロボット２、ロボット２を制御するコントローラ３、コントローラ３に接続されたティーチングペンダント４を備えている。
【００２０】
ロボット２は、いわゆる６軸の垂直多関節型ロボットとして周知の構成を備えており、ベース５上に、Ｚ方向の軸心を持つ第１軸（Ｊ１）を介してショルダ６が水平方向に回転可能に連結されている。ショルダ６には、Ｙ方向の軸心を持つ第２軸（Ｊ２）を介して上方に延びる下アーム７の下端部が垂直方向に回転可能に連結されている。下アーム７の先端部には、Ｙ方向の軸心を持つ第３軸（Ｊ３）を介して第一上アーム８が垂直方向に回転可能に連結されている。第一上アーム８の先端部には、Ｘ方向の軸心を持つ第４軸（Ｊ４）を介して第二上アーム９が捻り回転可能に連結されている。第二上アーム９の先端部には、Ｙ方向の軸心を持つ第５軸（Ｊ５）を介して手首１０が垂直方向に回転可能に連結されている。手首１０には、Ｘ方向の軸心を持つ第６軸（Ｊ６）を介してフランジ１１が捻り回転可能に連結されている。
【００２１】
ベース５、ショルダ６、下アーム７、第一上アーム８、第二上アーム９、手首１０およびフランジ１１は、ロボット２のアームとして機能し、アームの先端となるフランジ１１には、図示は省略するが、ハンド（エンドエフェクタとも呼ばれる）が取り付けられる。ハンドは、例えば図示しないワークを保持して移送したり、ワークを加工する工具などが取り付けられる。ロボット２に設けられている各軸（Ｊ１〜Ｊ６）には、それぞれに対応して、モータ、モータの回転位置を検出するエンコーダ、モータの出力を減速する減速機２２（図２参照）などで構成された駆動部が設けられている。
【００２２】
コントローラ３は、図示しないＣＰＵなどを有するコンピュータ、ロボット２の駆動部を動作させるための駆動回路などで構成されており、コンピュータプログラムに基づいてロボット２を制御する。具体的には、コントローラ３は、周知のように、ロボット２に対して予め定められている作業サイクルを繰り返し実行させるための各種の指令を出力することでモータを駆動し、エンコーダで検出したモータの回転位置に基づいてフィードバック制御を行うことで、ロボット２を制御する。
【００２３】
図２に示すように、ロボット２の駆動部を構成する減速機２２は、本実施形態ではいわゆる波動歯車装置を採用している。減速機２２は、内周面に内歯３０が形成された円環状の剛性内歯歯車３１、この剛性内歯歯車３１の内側に同心状に設けられ、外歯３２を有する可撓性外歯歯車３３を備えている。可撓性外歯歯車３３は、図示は省略するが周知のように全体形状としてカップ状に形成されており、カップ状の底部に出力軸が取り付けられる。また、剛性内歯歯車３１の内歯３０と可撓性外歯歯車３３の外歯３２との間には、潤滑剤としての潤滑油Ｗ（図４参照）が充填されている。この潤滑油Ｗは、一般的に比較的粘性が高く、剛性内歯歯車３１と可撓性外歯歯車３３とが動作していれば歯車間に拡散して潤滑剤として機能する一方、動作していない状態では、固体に近い状態となる。なお、潤滑剤としては、油性のものに限らず、他のものであっても良い。
【００２４】
外歯３２の内周側にはウエーブベアリング３４が配設されている。このウエーブベアリング３４は、可撓性外輪３５、可撓性内輪３６、可撓性外輪３５と可撓性内輪３６との間に配列された複数個のボール３７とから構成されている。ウエーブベアリング３４の内側、つまり可撓性内輪３６の内周には、楕円形の剛性カム３８が固定されている。この剛性カム３８には、モータの出力軸を連結するためのキー溝付きの嵌合孔３９が形成されている。
【００２５】
このような構成の減速機２２は、ウエーブベアリング３４の可撓性内輪３６および可撓性外輪３５が楕円形に撓められ、可撓性外輪３５が楕円形に撓むことによって、外歯３２形成部分が楕円形に撓められる。その結果、楕円形に撓んだ部分の長径方向両端部の２箇所において、外歯３２が部分的に剛性内歯歯車３１の内歯３０に噛み合うようになる。そして、剛性カム３８がモータにより回転駆動されると、可撓性外歯歯車３３の楕円形に撓んだ部分の長径部分が周方向に移動し、外歯３２の内歯３０に対する噛み合い位置が周方向に移動する。このとき、外歯３２が内歯３０よりも例えば２枚少なく設定されているので、噛み合い位置の移動に伴って、剛性内歯歯車３１と可撓性外歯歯車３３との間で相対的な回転が発生する。そして、可撓性外歯歯車３３が出力軸となってモータの減速回転が取り出される。
【００２６】
図１に示すように、ティーチングペンダント４は、例えば薄型の略矩形箱状に形成されており、概ね使用者が携帯あるいは所持して操作可能な程度の大きさとなっている。ティーチングペンダント４には、各種キースイッチやタッチパネルが設けられており、使用者は、それらキースイッチやタッチパネルにより種々の入力操作を行う。ティーチングペンダント４は、ケーブルを経由してコントローラ３に接続され、通信インターフェイスを経由してコントローラ３との間で高速のデータ転送を実行するようになっており、キースイッチ等の操作により入力された操作信号などの情報はティーチングペンダント４からコントローラ３へ送信される。
【００２７】
ここで、ロボット２が実行する作業サイクルについて説明する。
作業サイクルは、図３に示すように、予め定められている教示点Ｐ１〜Ｐ４を経由して、例えばワークの移送などを繰り返し行う作業である。例えば図３は、教示点Ｐ１を初期位置として、教示点Ｐ２まで移動した後、教示点Ｐ３にてワークをピックアップし、ワークを保持した状態で教示点Ｐ２、Ｐ１を経由した後、教示点Ｐ４にてワークをプレースする作業サイクルを模式的に示している。より具体的には、教示点Ｐ１−Ｐ２間ではアームが水平方向に大きく移動し、教示点Ｐ２−Ｐ３間およびＰ１−Ｐ４間ではアームが垂直に移動している。
【００２８】
この場合、アームが水平移動する際には例えば第１軸（Ｊ１）が動作し、アームが垂直移動する際には例えば第２軸（Ｊ２）、第３軸（Ｊ３）や第５軸（Ｊ５）が動作するものとする。また、アームが水平方向に大きく移動する教示点Ｐ１−Ｐ２間では、移動速度を重視した移動動作（以下、ＰＴＰ動作と称する）が行われ、ワークを所定位置からピックアップする教示点Ｐ２−Ｐ３間およびワークを所定位置にプレースする教示点Ｐ１−Ｐ４間では、位置決めの正確性を増すために移動軌跡を重視した作業動作（以下、ＣＰ動作と称する）が行われているものとする。
【００２９】
この図３に示す作業サイクルでは、アームを捻る動作（第４軸（Ｊ４）を駆動する動作）が必要ないため、第４軸（Ｊ４）は動作していない。換言すると、第４軸（ｊ４）に対応して設けられている駆動部には、作業サイクル中にモータを駆動するための実行命令（後述する動作命令）が出力されていない。以下、本実施形態では、第４軸（Ｊ４）に対応して設けられている駆動部のように作業サイクル中に動作しない駆動部を便宜的に非動作軸と称し、動作しない状態を非動作状態と称する。
【００３０】
さて、非動作軸は、作業サイクルが繰り返し実行されると、図４（ａ）〜（ｄ）に示すように、剛性内歯歯車３１の内歯３０と可撓性外歯歯車３３の外歯３２とが直接接触する可能性のある状態となる。具体的には、内歯３０と外歯３２との間に充填されている潤滑油Ｗは、通常であれば図４（ａ）に示すように拡散しているものの、非動作状態が続くと潤滑油Ｗが徐々に固体に近い状態となる。その状態で作業サイクルが繰り返し実行されると、つまり、非動作軸に他の駆動部やロボット２自体からの振動が伝達されると、図４（ｂ）に示すように、概ね１歯未満程度の大きさで潤滑油Ｗが部分的に欠落し、欠落領域Ｒが形成される。この図４（ｂ）は、発生当初の欠落領域Ｒの状態を示している。
【００３１】
この状態でさらに作業サイクルが繰り返し実行されると、欠落領域Ｒは、図４（ｃ）に示すように徐々に拡大していく。このように欠落領域Ｒが大きくなると、内歯３０と外歯３２とが直接的に接触するようになる。そして、作業サイクルが繰り返し実行され、振動が伝達されると、内歯３０と外歯３２とが接触を繰り返すようになり、その結果として、図４（ｄ）に示すように、例えば内歯３０が欠けるなどの破損部位Ｋが形成される。この状態では、破損部位Ｋがあることから、例えば作業サイクルが変更されて非動作軸が駆動されるようになると正常に動作せず、故障となってしまう。
【００３２】
このように、多関節型のロボット２では、特定の駆動部が全く動作しない状態で作業サイクルが繰り返し実行されることがあり、動作していないことから本来であれば耐用年数に影響がないと思われるその駆動部において、耐用年数が反って低下してしまうという現象が起こり得る。そして、この現象は、作業内容に対して駆動軸が冗長性を備えた構成となっている多関節型のロボット２に特有の問題である。
そこで、ロボット２の動作をシミュレーションする段階で、すなわち、実機のロボット２を設置する前に、故障する可能性のある駆動部をユーザに事前に提示可能することで、上記した問題に対処している。
【００３３】
図５に示すように、シミュレーション装置４０は、コンピュータ４１、モニタ４２、キーボード４３およびマウス４４を備えている。コンピュータ４１は、図６に示すように、ＣＰＵ４５、ＲＯＭ４６、ＲＡＭ４７、ＨＤＤ４８および入出力部４９を備えており、記憶手段としてのＲＯＭ４６やＨＤＤ４８などに記憶されているプログラムによって、シミュレーション装置４０の全体を制御する。また、ＨＤＤ４８には、ロボット２のシミュレーションを実行するためのアプリケーション（以下、アプリと称する）などのプログラムも記憶されている。このシミュレーション装置４０は、上記したように複数のアームを有する多関節型のロボット２をモデル化し、モデル化したデータを仮想空間で動作させ、ロボット２の動作をシミュレートする。
【００３４】
モニタ４２は、例えば液晶ディスプレイなどが採用されており、アプリの実行画面や実行結果（シミュレーション結果）などが表示される。具体的には、モニタ４２には、後述するように、ロボット２の各アームのうち非動作軸があるか否か、アームの動作が移動動作であるか否か、ワークを保持しているか否か、アームが周辺設備（Ｋ１、Ｋ２。図７、図８参照）に衝突するか否か、および、作業サイクル中においてアームを動作させることが可能な期間である動作可能期間など、アプリの実行結果を表示（ユーザに提示）する。モニタ４２は、特許請求の範囲に記載した提示手段を構成している。キーボード４３およびマウス４４は、シミュレーション装置４０やアプリに対するユーザの操作を入力可能な操作入力手段として機能する。
【００３５】
また、シミュレーション装置４０は、命令解析部５０、動作履歴記憶部５１、移動態様特定部５２、非動作軸判定部５３、補助命令付加部５４、可動範囲設定部５５、衝突判定部５６、オブジェクト配置部５７を備えている。本実施形態では、これら各部５０〜５７は、ＣＰＵ４５により実行されるプログラムによってソフトウェア的に実現されている。なお、各部５０〜５７は、ハードウェア的に実現してもよい。
【００３６】
命令解析部５０は、ロボット２に与えられる実行命令を解析する。ロボット２に与えられる実行命令としては、大きく分けて、アームを駆動するために駆動部に与えられる動作命令と、分岐条件の判定などの制御命令とが存在する。命令解析部５０は、特許請求の範囲に記載した命令解析手段を構成している。
動作履歴記憶部５１は、ロボット２が予め定められている作業サイクルを実行するための一連の実行命令の解析結果を、当該作業サイクルにおけるロボット２の動作履歴として記憶する。動作履歴記憶部５１は、特許請求の範囲に記載した動作履歴記憶を構成している。
【００３７】
移動態様特定部５２は、作業サイクル中において、アームを予め設定される教示点間で移動させる際、アームの移動態様が当該アームの移動軌跡を相対的に重視した作業動作（ＣＰ動作）または当該アームの移動速度を相対的に重視した移動動作（ＰＴＰ動作）のいずれであるかを特定する。また、移動態様特定部５２は、ロボット２によりワークが保持されている（移送されている）状態である移送状態であるか否かを特定する。移動態様特定部５２は、特許請求の範囲に記載した移動態様特定手段を構成している。
非動作軸判定部５３は、動作履歴記憶部５１に記憶した動作履歴に基づいて、ロボット２の各軸のうち作業サイクル中に動作していない非動作軸が存在するか否かを判定する。非動作軸判定部５３は、特許請求の範囲に記載した非動作軸判定手段を構成している。
【００３８】
補助命令付加部５４は、動作可能期間に非動作軸を動作させるための補助実行命令（動作命令）を付加する。本実施形態では、補助実行命令として、歯車機構の歯を１歯以上移動させるような動作命令を出力している。この場合、一般的な構成のロボットの場合、第４軸（Ｊ４）のギア比＝１００、第５軸（Ｊ５）の中心からハンド先端までの距離＝２００ｍｍとすると、モータを１回転（モータの出力軸が１回転。図２の歯車機構を一回転させるわけではない）させることでハンドの先端は最大で約１３ｍｍ（２π÷１００×２００＝４π）しか動作しない。補助命令付加部５４は、特許請求の範囲に記載した補助命令付加手段を構成している。
【００３９】
可動範囲設定部５５は、仮想空間内において、アームを動作させることが可能な可動範囲を設定する。可動範囲設定部５５は、特許請求の範囲に記載した可動範囲設定手段を構成している。
衝突判定部５６は、補助実行命令を付加した状態でシミュレーションを実行した際、アームの軌跡が後述するオブジェクトに衝突するか否かを判定する。衝突判定手段は、特許請求の範囲に記載した衝突判定手段を構成している。
【００４０】
オブジェクト配置部５７は、可動範囲設定部５５により設定された可動範囲Ｖ（図７、図８参照）内に、実際の作業環境における例えば周辺設備などに相当する仮想的なオブジェクトを配置する。なお、配置するオブジェクトとしては、周辺設備などの物体だけでなく、進入禁止領域などの範囲も設定することもできる。オブジェクト配置部５７は、特許請求の範囲に記載したオブジェクト配置手段を構成している。
【００４１】
このような構成のシミュレーション装置４０は、図７および図８に示すように、モニタ４２にモデル化したロボット２に対して、オブジェクトとしての周辺設備Ｋ１、Ｋ２、および可動範囲Ｖを設定する。なお、図７は、仮想空間内におけるＸＹ平面図を示し、図８は仮想空間内におけるＹＺ平面図を示している。また、図７および図８ではハンドおよびワークの図示を省略したが、前述の衝突判定部５６は、アームだけでなく、ハンドやハンドによって保持されたワークとオブジェクトとの衝突も判定可能である。
【００４２】
次に、シミュレーション装置４０の作用について、図９に示す処理の流れとともに説明する。本実施形態では非動作軸として第４軸（Ｊ４）を想定しているため、第４軸（図９では「４軸目」と記載する）を対象として説明する。また、以下の処理は上記した各部５０〜５７によりそれぞれ実行されるものであるが、説明の簡略化のため、シミュレーション装置４０を主体として説明する。
【００４３】
図９のフローチャートにて用いている変数の意味は、以下の通りである。
・Ｆ：第４軸（Ｊ４）が動作したか否かを示すフラグ。作業サイクル開始時に０にリセットされ、第４軸が動作すると１にセットされる。
・Ｐ：４軸目を＋側に動作させる（回転させる）動作軌跡。
・Ｑ：４軸目を−側に動作させる（回転させる）動かす動作軌跡。
【００４４】
シミュレーション装置４０は、上記したロボット２のモデル化およびオブジェクト（Ｋ１，Ｋ２）の配置が完了した後、図９に示すように、作業サイクルのシミュレーションを開始すると、Ｆを０とし（Ｓ１）、実行命令が動作命令（駆動部を駆動するための動作命令）であるか否かを判定し（Ｓ２）、動作命令でない場合には（Ｓ２：ＮＯ）、ステップＳ６に移行する。そして、１サイクル（一回の作業サイクル）が終了したか否かを判定し（Ｓ６）、終了していなければ次の行（次の実行命令）を実行し（Ｓ８）、ステップＳ２に移行する。つまり、シミュレーション装置４０は、作業サイクルが終了するまで、ステップＳ２において実行命令を繰り返し解析する。
【００４５】
シミュレーション装置４０は、ステップＳ２において実行命令が動作命令であると判定すると（Ｓ２：ＹＥＳ）、４軸目が動作するか否かを判定し（Ｓ３）、４軸目が動作する場合には（Ｓ３：ＹＥＳ）、Ｆを１とする（Ｓ４）。これにより、この作業サイクル中には４軸目が動作することが示される。一方、４軸目が動作しない場合には（Ｓ３：ＮＯ）、ステップＳ４を省略し、当該動作における起動補完方法がＰＴＰ動作であるか否か、すなわち、ＰＴＰ動作であるか否かを判定する（Ｓ５）。そして、ＰＴＰ動作でなければ（Ｓ５：ＮＯ）、ステップＳ６に移行して上記したように１サイクルが終了したか否かを判定する。
【００４６】
これに対して、シミュレーション装置４０は、起動補完方法がＰＴＰである場合には（Ｓ５：ＹＥＳ）、当該ＰＴＰ動作において４軸目を動かす軌道（Ｐ）を計算し（Ｓ９）、当該軌道（Ｐ）にて動作させた際（軌道（Ｐ）で移動するように動作命令を付加した際）におけるアームの移動時に、計算した軌道（Ｐ）が障害物（オブジェクト）に衝突するか否かを判定する（Ｓ１０）。ここでは、アーム、ハンドおよびワークと、オブジェクトとの衝突が判定されている。軌道（Ｐ）が衝突しないと判定すると（Ｓ１０：ＹＥＳ）、ステップＳ１１に移行する。一方、軌道（Ｐ）が衝突すると判定すると（Ｓ１０：ＮＯ）、軌道（Ｐ）とは逆向きに４軸目を動かす軌道（Ｑ）を計算し（Ｓ１２）、軌道（Ｑ）が障害物と動作するか否かを判定する（Ｓ１３）。そして、軌道（Ｑ）が障害物と衝突しなければ（Ｓ１３：ＹＥＳ）、ステップＳ１１に移行する。なお、軌道（Ｐ）および軌道（Ｑ）のいずれも衝突すると判定された場合には（Ｓ１０：ＮＯ、且つ、Ｓ１３ＮＯ）、今回の動作中にアームを動作させると衝突することから、ステップＳ６に移行する。
【００４７】
このように、シミュレーション装置４０は、実行命令が動作命令であり、且つ、その動作がＰＴＰ動作であれば、４軸目を動作させることが可能かを判定する。なお、ステップＳ４でＦ＝１つまり４軸目が動作する場合であってもＰＴＰ動作であれば（Ｓ５：ＹＥＳ）ステップＳ９に移行するのは、そのＰＴＰ動作の動作時間などを予め計測しておき、今後の作業サイクルにおいて補助実行命令の出力対象となるＰＴＰ動作か否かを判定するためである。
【００４８】
シミュレーション装置４０は、軌道（Ｐ）または軌道（Ｑ）のいずれかにて４軸目の動作が可能であると判定すると（Ｓ１０：ＹＥＳ、または、Ｓ１３：ＹＥＳ）、プログラムの実行行、エンドエフェクタＩＯの状態（ワークを保持しているか否か、ＩＯ＝ＯＦＦで保持していない状態を示す）、当該ＰＴＰ動作の動作時間、および、４軸目の回転方向（軌道（Ｐ）または軌道（Ｑ）のいずれであるか）をＰＴＰ動作リスト（後述する図１０のＭ３参照。作業サイクル中におけるＰＴＰ動作の動作履歴）に保存する。このように、シミュレーション装置４０は、作業サイクル中のアームの動作を、アームの移動態様や動作時間とともに動作履歴として記憶する。
【００４９】
シミュレーション装置４０は、ステップＳ６において、１サイクルが終了したと判定すると（Ｓ６：ＹＥＳ）、Ｆ＝０であるか否かを判定する（Ｓ７）。そして、Ｆ＝０でない場合には（Ｓ７：ＮＯ）、４軸目が動作していることから、処理を終了する。
これに対して、シミュレーション装置４０は、Ｆ＝０の場合には（Ｓ７：ＹＥＳ）、４軸目が動作していないことから、ＰＴＰ動作リストを同時間の長い順に並び替え（Ｓ１４）、ＰＴＰ動作リストをエンドエフェクタＩＯ＝ＯＦＦの順（つまり、ワークを保持していない順）で並び替え（Ｓ１５）、ユーザに４軸目が動作していないことを通知する（Ｓ１６）。具体的には、シミュレーション装置４０は、図１０に示すようにＰＴＰ動作リストをモニタ４２に表示することで、ユーザに通知（提示）する（Ｓ１７）。
【００５０】
図１０に示すように、モニタ４２には、アプリの実行結果の表示画面として、シミュレーションの対象としたロボット２のモデルを表示する表示領域Ｍ１、非動作軸を示す表示領域Ｍ２、および、ＰＴＰ動作リストを表示する表示領域Ｍ３が設けられている。表示領域Ｍ１には、ロボット２のモデル化した外観、各軸の位置、および非動作軸がいずれであるかの表示（図１０の場合、第４軸（Ｊ４）を反転表示することで、非動作軸であることを示している）が示されている。表示領域Ｍ２には、非動作軸が第４軸（Ｊ４）であることが示されている。
【００５１】
表示領域Ｍ３には、アームの移動態様である「動作態様」、作業サイクル中のＰＴＰ動作のうち何番目のＰＴＰ動作であるかを示す「順番」、当該ＰＴＰ動作の動作時間をミリ秒単位で示す「動作時間」、当該ＰＴＰ動作においてワークを保持しているか否かを示す「ワーク保持」（非保持＝保持していない状態、保持＝保持している状態を示す）、および衝突するか否かを示す「衝突」（○＝衝突しない状態を示す）が示されている。この表示領域Ｍ３には、作業サイクル中に実行される複数のＰＴＰ動作のうち、動作時間の長い順、且つ、ワークを保持しているか否かの順にしたがって、ＰＴＰ動作の動作履歴が示されている。より具体的には、最も動作時間の長いＰＴＰ動作を優先してリストの上位に表示する一方、同時間が長くてもワークを保持しているＰＴＰ動作（「順番」＝３のＰＴＰ動作）については、動作時間が短くワークを保持していないＰＴＰ動作（「順番」＝７のＰＴＰ動作）よりもリストの下位に表示されている。
【００５２】
このようにＰＴＰ動作リストを表示すると、シミュレーション装置４０は、ユーザによる操作をキーボード４３やマウス４４から受け付け、４軸目の動作指示があれば（Ｓ１８：ＹＥＳ）、具体的には、図１０に示すように４軸目を動作させるＰＴＰ動作が選択されれば（図１０では、「順番」＝４のＰＴＰ動作が選択された状態を、ハッチングにて模式的に示している）、指定した行のＰＴＰ動作を、４軸目が動作するように変更する（Ｓ１９）。これにより、図１０の場合では「順番」＝４のＰＴＰ動作にて、第４軸（Ｊ４）が動作することになる。なお、ユーザによる動作指示が行われない場合には（Ｓ１８：ＮＯ）、そのまま処理を終了する。
【００５３】
このように、シミュレーション装置４０は、作業サイクル中の各ＰＴＰ動作について、その動作時間およびワークを保持しているか否かを動作履歴として記憶し、何番目のＰＴＰ動作にて補助実行命令を出力可能であるかを判定し、ユーザの操作入力に応じてそのＰＴＰ動作の実行行を変更する（実行命令に補助実行命令を付加する）。
【００５４】
このように、本来の（つまり、ユーザが当初設定した）作業サイクルでは動作しない非動作軸を提示し、ユーザの操作に応じて補助実行命令の付加を可能とすることで、非動作軸（第４軸（Ｊ４））を動作させるように作業サイクルを変更することが可能となり、上記したような非動作状態で振動が伝達されることにより発生する欠落領域Ｒに対して、発生当初においては欠落領域Ｒに潤滑油Ｗを補充することができ、また、非動作軸を駆動させて潤滑油Ｗを予め拡散させることで欠落領域Ｒの発生そのものを抑制することができるようになる。
【００５５】
以上説明した本実施形態によれば、次のような効果を奏する。
ロボット２に与えられる実行命令を解析し、予め定められている作業サイクルを実行するための一連の実行命令の解析結果を当該作業サイクルにおける動作履歴として記憶し、その動作履歴に基づいてロボットの各軸のうち作業サイクル中に動作していない非動作軸が存在するか否かを判定し、非動作軸が存在することをユーザに提示する。これにより、実際にロボット２を設置して作業サイクルを実行させる前に、つまり、ロボット２の動作を確認するシミュレーションの段階で非動作軸が存在することをユーザに提示することができる。したがって、上記したような故障が発生するおそれのある駆動部に対して、作業サイクル中に非動作軸を駆動させるための実行命令を付加するなどの対策を取ることが可能となり、特定の駆動部における故障の発生を抑制することができるようになる。
【００５６】
アームを予め設定される教示点間（Ｐ１〜Ｐ４）で移動させる際の移動態様が、ＰＴＰ動作およびＣＰ動作のいずれであるかを判定し、アームがＰＴＰ動作を行っている期間を、非動作軸を動作させることが可能な動作可能期間として提示する。このとき、ＰＴＰ動作している期間を動作可能期間とするのは、前述のように発明者の解析結果の裏付けに基づいている。これにより、発生当初の欠落領域Ｒに潤滑油Ｗを拡散させることが可能となり、欠落領域Ｒの拡大を抑制することができるとともに、非動作軸を動作させれば潤滑油Ｗが拡散されることから、欠落領域Ｒの発生そのものを抑制することができる。また、前述のように非動作軸の動作はＰＴＰ動作中に実施可能な動作であることから、ＰＴＰ動作中に完了するので、タクトタイムが長くなるなどの影響を与えることが無く、生産効率が低下するおそれを抑制することができる。
【００５７】
また、動作可能期間をユーザに提示することで、どのＰＴＰ動作で非動作軸を動作させればよいかをユーザは直ぐに判断できるので、利便性が向上する。
作業サイクル中に複数のＰＴＰ動作が存在する場合、最も動作時間の長いＰＴＰ動作を優先して提示する。ＰＴＰ動作の動作時間が長ければ、非動作軸を動作させたとしても確実に本来の位置まで戻すことができるので、アームの軌跡に大きな影響を与えることがない上、動作時間内でより非動作軸を大きく動かすことが可能となり、欠落領域の発生および拡大をさらに抑制することができる。
【００５８】
このとき、ワークを移送していないと判定された期間を優先して提示するので、本来の（当初の）作業サイクルでは想定していない非動作軸を動作させた場合であっても、その動作に起因してワークが周辺設備（Ｋ１、Ｋ２）に衝突するなどの不具合を生じさせることがない。
【００５９】
アームの可動範囲Ｖを設定し、当該可動範囲Ｖ内に仮想的なオブジェクト（Ｋ１、Ｋ２）を配置し、動作可能期間に非動作軸を動作させるための補助実行命令を付加した状態で作業サイクルを実行した際、アームの軌跡（軌道（Ｐ）または軌道（Ｑ））がオブジェクト（Ｋ１、Ｋ２）に衝突するか否かを判定し、その判定結果を図１０の「衝突」のように提示する。これにより、ロボット２のシミュレーションの段階で補助実行命令を実行した際の動作を確認することができる。また、周辺設備などをオブジェクトとして配置しているので、実際の動作環境を再現した上で、非動作軸の動作が可能であるか否かを判断することができる。
【００６０】
本実施形態では、補助実行命令を付加できるので、例えば作業サイクル毎に非動作軸に対して補助実行命令を出力できるなどの対策を取ることができる。これにより、作業サイクル毎に駆動部が駆動され、潤滑油Ｗが拡散する。この場合、一般的には作業サイクルは１分程度と考えられるので、欠落領域Ｒが発生する前に非動作軸が動作することから、欠落領域Ｒの発生をより確実に予防することができる。
【００６１】
（第２実施形態）
第１実施形態では６軸の垂直多関節型ロボットを例示したが、図１１に示すような４軸の水平多関節型ロボットに適用してもよい。なお、第１実施形態と実質的に共通する部位には同一の符号を付し、詳細な説明は省略する。
【００６２】
図１１に示すように、ロボットシステム６１を構成するロボット６２は、設置面に固定されるベース６３と、このベース６３上にＺ方向の軸心を持つ第１軸（Ｊ６１）を中心に回転可能に連結された第一アーム６４と、第一アーム６４の先端部上にＺ方向の軸心を持つ第２軸（Ｊ６２）を中心に回転可能に連結された第二アーム６５と、第二アーム６５の先端部に上下動可能（矢印Ａ方向）で且つＺ方向の軸心を持つ第３軸（Ｊ６３）を中心に回転可能に設けられたシャフト６６とから構成されている。シャフト６６の先端部（下端部）には、ツールなどを取り付けるためのフランジ６７が位置決めされて着脱可能に取り付けられるようになっている。
このような構成においても、第１実施形態の図６と同様の処理を行うことにより、複数の軸に対応して設けられている駆動部が非動作軸であるか否かを判定し、作業サイクル中のＰＴＰ動作中に補助実行命令を出力することにより、欠落領域Ｒの拡大や発生そのものを抑制することができるなど、第１実施形態と同様の効果を得ることができる。
【００６３】
（その他の実施形態）
本発明は上記した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。
各実施形態では歯車機構として波動歯車装置を例示したが、歯車を利用するものでれば他の構成のものであっても本発明を適用することができる。
第１実施形態では第４軸（Ｊ４）を対象としたが、他の軸を対象として図９と同様の処理を実行することにより、ロボット２に設けられている複数の駆動部の全てに対して非動作軸と判定された場合には動作させることができるようになり、第１実施形態と同様の効果を得ることができる。
【００６４】
もちろん、全ての軸を対象として個別に図９と同様の処理を行い、非動作軸と判定された全ての駆動部に対して同一の作業サイクル中に個別に補助実行命令を出力するようにしてもよい。その場合、複数の非動作軸が特定された場合には、同一のＰＴＰ動作中に補助実行命令を出力してもよいし、異なるＰＴＰ動作でそれぞれ補助実行命令を出力するようにしてもよい。
【００６５】
各実施形態では歯車機構の歯を１歯以上移動させるような補助実行命令を出力するようにしたが、補助実行命令を出力する動作可能期間の動作時間に応じて、その移動量を帳調整するようにしてもよい。例えば、動作可能期間の動作時間が長ければ、移動量を大きくしてもよい。これは、動作時間が長ければ動作可能期間が終了するまでに本来の噛み合い位置に戻すことができるためである。このようにすれば、潤滑油Ｗの拡散をさらに促進でき、欠落領域Ｒの発生より確実に予防できるようになる。この場合、アームの軌跡に与える影響を少なくするためには、動作可能期間としてＰＴＰ動作を選択することが望ましい。
【００６６】
各実施形態では潤滑油Ｗとして非動作状態では個体に近い性質を有するものを例示したが、常時液体の性質を有するものであってもよい。この場合、潤滑油Ｗの量が減少した部位すなわち潤滑油Ｗが切れた部位が欠落領域Ｒに相当すると考えればよいことから、図６と同様の処理を実行することにより、各実施形態と同様の効果を得ることができる。
第１実施形態では６軸ロボット、第２実施形態では４軸ロボットを例示したが、例えば７軸ロボットなど軸数が異なるロボットであっても本発明を適用することができる。
【符号の説明】
【００６７】
図面中、２はロボット、６はショルダ（アーム）、７は下アーム（アーム）、８は第一上アーム（アーム）、９は第二上アーム（アーム）、１０は手首（アーム）、４０はシミュレーション装置、４１はモニタ（提示手段）、５０は命令解析部（命令解析手段）、５１は動作履歴記憶部（動作履歴記憶手段）、５２は移動態様特定部（移動態様特定手段）、５３は非動作軸判定部（非動作軸判定手段）、５４は補助命令付加部（補助命令付加手段）、５５は可動範囲設定部（可動範囲設定手段）、５６は衝突判定部（衝突判定手段）、５７はオブジェクト配置部（オブジェクト配置手段）、６１はロボットシステム、６２はロボット、６４は第一アーム（アーム）、６５は第二アーム（アーム）、６６はシャフト（アーム）、Ｊ１〜Ｊ６、Ｊ６１〜Ｊ６４は軸、Ｋ１、Ｋ２はオブジェクト、Ｖは可動範囲を示す。
【図１】
2014034094.tif 000003
【図２】
2014034094.tif 000004
【図３】
2014034094.tif 000005
【図４】
2014034094.tif 000006
【図５】
2014034094.tif 000007
【図６】
2014034094.tif 000008
【図７】
2014034094.tif 000009
【図８】
2014034094.tif 000010
【図９】
2014034094.tif 000011
【図１０】
2014034094.tif 000012
【図１１】
2014034094.tif 000013