特許第5983170号(P5983170)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社デンソーウェーブの特許一覧

<>
  • 特許5983170-ロボットのシミュレーション装置 図000002
  • 特許5983170-ロボットのシミュレーション装置 図000003
  • 特許5983170-ロボットのシミュレーション装置 図000004
  • 特許5983170-ロボットのシミュレーション装置 図000005
  • 特許5983170-ロボットのシミュレーション装置 図000006
  • 特許5983170-ロボットのシミュレーション装置 図000007
  • 特許5983170-ロボットのシミュレーション装置 図000008
  • 特許5983170-ロボットのシミュレーション装置 図000009
  • 特許5983170-ロボットのシミュレーション装置 図000010
  • 特許5983170-ロボットのシミュレーション装置 図000011
  • 特許5983170-ロボットのシミュレーション装置 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5983170
(24)【登録日】2016年8月12日
(45)【発行日】2016年8月31日
(54)【発明の名称】ロボットのシミュレーション装置
(51)【国際特許分類】
   B25J 9/22 20060101AFI20160818BHJP
【FI】
   B25J9/22 A
【請求項の数】5
【全頁数】17
(21)【出願番号】特願2012-178221(P2012-178221)
(22)【出願日】2012年8月10日
(65)【公開番号】特開2014-34094(P2014-34094A)
(43)【公開日】2014年2月24日
【審査請求日】2015年7月30日
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】特許業務法人 サトー国際特許事務所
(72)【発明者】
【氏名】川瀬 大介
【審査官】 臼井 卓巳
(56)【参考文献】
【文献】 特開2002−237700(JP,A)
【文献】 特開2003−150218(JP,A)
【文献】 特開2006−215807(JP,A)
【文献】 特開平03−043171(JP,A)
【文献】 特開平08−328627(JP,A)
【文献】 実開平04−002592(JP,U)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10−19/06
H05K 13/04
(57)【特許請求の範囲】
【請求項1】
複数のアームを有する多関節型のロボットをモデル化し、当該ロボットの動作をシミュレートするロボットのシミュレーション装置であって、
前記ロボットに与えられる実行命令を解析する命令解析手段と、
予め定められている作業サイクルを実行するための一連の前記実行命令の解析結果を、当該作業サイクルにおける前記ロボットの動作履歴として記憶する動作履歴記憶手段と、
前記動作履歴に基づいて、前記ロボットの各軸のうち前記作業サイクル中に動作していない非動作軸が存在するか否かを判定する非動作軸判定手段と、
前記非動作軸が存在することをユーザに提示する提示手段と、
を備えることを特徴とするロボットのシミュレーション装置。
【請求項2】
前記作業サイクル中において、前記アームを予め設定される教示点間で移動させる際、前記アームの移動態様が、当該アームの移動軌跡を相対的に重視した作業動作または当該アームの移動速度を相対的に重視した移動動作のいずれであるかを特定する移動態様特定手段をさらに備え、
前記提示手段は、前記移動動作が行われている期間を、前記非動作軸を動作させることが可能な動作可能期間としてさらに提示することを特徴とする請求項1記載のロボットのシミュレーション装置。
【請求項3】
前記移動態様特定手段は、前記ロボットによりワークが移送されている状態である移送状態であるか否かをさらに特定し、
前記提示手段は、前記動作可能期間のうち、前記移送状態でない期間を優先して前記動作可能期間としてさらに提示することを特徴とする請求項2記載のロボットのシミュレーション装置。
【請求項4】
前記提示手段は、前記作業サイクル中に前記動作可能期間が複数存在する際、長い期間から優先して提示することを特徴とする請求項2または3記載のロボットのシミュレーション装置。
【請求項5】
前記アームの可動範囲を設定する可動範囲設定手段と、
前記可動範囲内に仮想的なオブジェクトを配置するオブジェクト配置手段と、
前記動作可能期間に前記非動作軸を動作させるための補助実行命令を付加する補助命令付加手段と、
前記補助実行命令を付加した状態で前記作業サイクルを実行した際、前記アームの軌跡が前記仮想的なオブジェクトに衝突するか否かを判定する衝突判定手段と、をさらに備え、
前記提示手段は、前記衝突判定手段による判定結果をさらに提示することを特徴とする請求項2から4のいずれか一項記載のロボットのシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のアームを有する多関節型のロボットをモデル化し、当該ロボットの動作をシミュレーションするロボットのシミュレーション装置に関する。
【背景技術】
【0002】
複数のアームを有する多関節型のロボットは、各軸に対応して複数の駆動部が設けられている。各駆動部は、一般的に、各軸を駆動するためのモータと、そのモータの出力を出力軸側に連結されているアームに伝達する歯車機構とを有している。この歯車機構は、例えば周知の波動歯車装置などが採用されており、各軸で歯数が異なるといった差違はあるものの、構造自体は概ね共通した設計となっている。このような歯車機構は潤滑剤が減少すると歯車の破損を招くなどのおそれがあることから、例えば特許文献1では、動作中の歯車に対して十分な潤滑を行うための対策が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−79627号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
さて、ロボットなどの産業機器は、一般的に予め耐用年数が想定されており、その耐用年数に耐えうる設計がなされている。具体的には、上記したように複数の駆動部を有する多関節型のロボットの場合、各駆動部の耐用年数が概ね一致するように設計されている。
しかしながら、実際にロボットを設置して予め定められている作業サイクルを繰り返し実行させた際、上記したように耐用年数が概ね一致するはずの駆動部のうち特定の駆動部が想定よりも短い期間で故障し、ロボット全体としての耐用年数の低下を招くことがあった。また、故障する駆動部が顧客ごと異なるなど、ロボットの設計上の不具合とは考えにくい状況であった。
【0005】
本発明は、上記事情に鑑みてなされたものであり、その目的は、複数の駆動部を備える多関節型のロボットをシミュレーションする際、早期に故障するおそれのある駆動部を提示することができるロボットのシミュレーション装置を提供することにある。
【課題を解決するための手段】
【0006】
発明者は、故障したロボットを調査した結果、想定よりも短い期間で故障する駆動部が作業サイクル中に動作していない駆動部に集中していることを見いだした。多関節型のロボットの場合、様々な作業を実行する可能性があることから汎用性を考慮して複数の駆動部が設けられているものの、作業内容によっては全く動作しない駆動部も存在する。この場合、駆動部が動作しなければ歯車機構も動作しないことから、歯車機構の歯が摩耗したり破損したりするおそれは小さく、一般論で言えば、動作していない駆動部に故障が集中する状況は考えにくい。そこで、発明者は、駆動部に故障が生じる過程をさらに詳細に解析した結果、動作していない駆動部に故障が集中するのは、作業内容に対して可動軸の構成に冗長性のある多関節型のロボットに特有の現象であることを見いだした。
【0007】
多関節型のロボットにおいては、他の駆動部の動作やアームの移動に起因する振動が動作していない駆動部に伝達される。そして、ロボットは予め定められている作業サイクルを繰り返し実行することから、動作していない駆動部には繰り返し振動が伝達されることになる。その振動は、駆動部の歯車機構にも伝達される。駆動部の歯車機構には、粘度が比較的大きい潤滑油が潤滑剤として一般的に用いられており、その潤滑油は、歯車機構が動作していない状況では固体に近い性質となっている。このため、歯車機構に振動が伝達されると、その振動によって潤滑油が部分的に欠落し、歯車機構の歯の間に潤滑油が存在しない欠落領域が比較的小さい範囲でまず発生する。この欠落領域は、作業サイクルが繰り返し実行されることによって、すなわち、振動が繰り返し伝達されることによって徐々に拡大していく。その際、噛み合った歯同士が直接的に接触する状態となり、その状態でさらに振動が繰り返し伝達された結果、直接的に接触した歯が損傷し、駆動部の故障を招いていたのである。
【0008】
そこで、請求項1記載の発明では、ロボットに与えられる実行命令を解析し、予め定められている作業サイクルを実行するための一連の実行命令の解析結果を当該作業サイクルにおける動作履歴として記憶し、その動作履歴に基づいてロボットの各軸のうち作業サイクル中に動作していない非動作軸が存在するか否かを判定し、非動作軸が存在することをユーザに提示する。
【0009】
これにより、実際にロボットを設置して作業サイクルを実行させる前に、作業サイクル中に動作しない駆動部が存在することをユーザに提示することができる。したがって、上記したような故障が発生するおそれのある駆動部に対して、作業サイクル中に非動作軸を駆動させるための実行命令を付加するなどの対策を取ることが可能となり、特定の駆動部における故障の発生を抑制することができるようになる。
【0010】
請求項2記載の発明では、アームを予め設定される教示点間で移動させる際の移動態様が、アームの移動軌跡を相対的に重視した作業動作とアームの移動速度を相対的に重視した移動動作のいずれであるかを判定し、アームが移動動作を行っている期間を、非動作軸を動作させることが可能な動作可能期間として提示する。なお、作業動作とは、アームを教示点間で移動させる際、ワークを掴んだり組み付けたりするなどの作業を行うために移動軌跡を相対的に重視してアームを滑らかに移動させる制御を行うときの動作であり、一般的にはCP(Continuous Path)動作と呼ばれている。また、移動動作とは、アームを教示点間で移動させる際、移動速度を相対的に重視して教示点間を素早く移動させる制御を行うときの動作、換言すると、軌跡をそれほど重視しない動作であり、一般的にはPTP(Point To Point)動作と呼ばれている。以下、便宜的に、作業動作をCP動作、移動動作をPTP動作と称する。
【0011】
上記したように非動作軸を提示することで故障するおそれのある駆動部に対して何らかの対処を施すことは可能となるものの、ユーザは、いつ駆動部を動作させればよいかを改めて考え直す必要がある。このとき、例えば一回の作業サイクルが終了する毎に非動作軸を動作させると、次の作業サイクルを実行するまでに本来の作業では不要な時間を要することになり、作業を行うために要する時間(以下、タクトタイムと称する)が長くなる。そして、タクトタイムが長くなると、所定の作業量をこなすためには余分に時間が掛かる一方、予め作業時間が決められている場合には実行可能な作業サイクル数が低下することになり、生産効率が低下する。このため、タクトタイムに影響を与えないように対象となる駆動部を動作させることが求められる。
【0012】
さて、ロボットの作業サイクルに上記したCP動作やPTP動作が含まれることは一般的に知られている。このため、タクトタイムに影響を与えることなく、また、ロボットの本来の作業に影響を与えることなく(アームの軌跡に大きな影響を与えることなく)駆動部を動作させるには、PTP動作中に動作させることがまず考えられる。しかし、潤滑剤を満遍なく拡散させるために例えば歯車機構の歯の噛み合い位置を一回転させるような動作を行わせると、アームが大きく移動してしまい、いくら軌跡をそれほど重視していないPTP動作中といえども、アームやハンドあるいはハンドに保持されたワークなどが周辺設備に衝突するおそれがある。つまり、どの時期に駆動部を動作させればよいかは、PTP動作中であればよいといった単純な問題ではない。
【0013】
ここで、発明者による解析結果が有効活用されることになる。すなわち、発明者によって、潤滑剤の欠落領域が上記したように比較的小さい範囲でまず発生すること、さらに、発生当初の欠落領域が1歯未満程度の大きさであることが見いだされている。このため、発生当初の欠落領域に潤滑剤を拡散させるためには、潤滑剤が欠落していない部位に噛み合わせればよいこと、すなわち、歯車機構の歯の噛み合い位置を1歯以上移動させればよいことが明らかになった。換言すると、発生当初の欠落領域に対処するためには、アームを大きく動かす必要がないことが明らかになった。さらに、噛み合い位置を1歯以上動かす程度の動作であれば、PTP動作中に十分実施可能であると考えられる。
【0014】
このような解析結果の裏付けに基づいて、アームが移動動作を行っている期間を、非動作軸を動作させることが可能な動作可能期間として提示している。これにより、発生当初の欠落領域に潤滑剤を拡散させることが可能となり、欠落領域の拡大を抑制することができるとともに、非動作軸を動作させれば潤滑剤が拡散されることから、欠落領域の発生そのものを抑制することができる。また、上記したように非動作軸の動作はPTP動作中に実施可能な動作であることから、PTP動作中に完了する。したがって、タクトタイムが長くなるなどの影響を与えることが無く、生産効率が低下するおそれを抑制することができる。
【0015】
請求項3記載の発明では、ワークを移送していないと判定された期間を優先して提示する。ロボットは、与えられた指令に基づいて動作することから、通常は対象となるワークがどのようなものであるかを自身で把握することができない。そこで、ワークを移送していない期間を優先して提示することにより、本来の作業サイクルでは動作することを想定していない非動作軸を動作させた場合であっても、その動作に起因してワークが周辺設備に衝突するなどの不具合を生じさせることがない。
【0016】
請求項4記載の発明では、作業サイクル中に複数の動作可能期間が存在する場合、最も動作時間の長い動作可能期間を優先して提示する。動作可能期間の動作時間が長ければ、非動作軸を動作させたとしても確実に本来の位置まで戻すことができ、アームの軌跡に大きな影響を与えることがない上、動作時間内でより非動作軸を大きく動かすことが可能となり、欠落領域の発生および拡大をさらに抑制することができる。
【0017】
請求項5記載の発明では、アームの可動範囲を設定し、当該可動範囲内に仮想的なオブジェクトを配置し、動作可能期間に非動作軸を動作させるための補助実行命令を付加した状態で作業サイクルを実行した際、アームの軌跡がオブジェクトに衝突するか否かを判定し、その判定結果を提示する。なお、オブジェクトは、実際の作業環境における周辺設備などに相当する。これにより、ロボットのシミュレーション装置上で補助実行命令を実行した際の動作を確認することができる。この場合、ハンド(エンドエフェクタとの呼ばれる)やハンドにより保持されたワーク、あるいは周辺設備などをオブジェクトとして配置すれば、実機の動作環境を再現した上で、非動作軸の動作が可能であるか否かを判断することができる。
【図面の簡単な説明】
【0018】
図1】本発明の第1実施形態で対象とするロボットの構成を概略的に示す図
図2】歯車機構を概略的に示す図
図3】CP動作およびPTP動作の一例を模式的に示す図
図4図2のIV領域の拡大図で、潤滑油の欠落領域の遷移を模式的に示す図
図5】シミュレーション装置の構成を概略的に示す図
図6】シミュレーション装置の電気的構成を概略的に示す図
図7】シミュレーション装置のシミュレーション画面の一例を示す図その1
図8】シミュレーション装置のシミュレーション画面の一例を示す図その2
図9】シミュレーション装置の処理の流れを示す図
図10】シミュレーション装置の提示画面の一例を示す図
図11】本発明の第2実施形態で対象とするロボットの構成を概略的に示す図
【発明を実施するための形態】
【0019】
(第1実施形態)
以下、本発明の第1実施形態について、図1から図10を参照しながら説明する。
まず、対象となるロボットおよび故障が発生するメカニズムについて、図1から図4を参照して説明する。図1に示すように、一般的な産業用に用いられるロボットシステム1は、多関節型のロボット2、ロボット2を制御するコントローラ3、コントローラ3に接続されたティーチングペンダント4を備えている。
【0020】
ロボット2は、いわゆる6軸の垂直多関節型ロボットとして周知の構成を備えており、ベース5上に、Z方向の軸心を持つ第1軸(J1)を介してショルダ6が水平方向に回転可能に連結されている。ショルダ6には、Y方向の軸心を持つ第2軸(J2)を介して上方に延びる下アーム7の下端部が垂直方向に回転可能に連結されている。下アーム7の先端部には、Y方向の軸心を持つ第3軸(J3)を介して第一上アーム8が垂直方向に回転可能に連結されている。第一上アーム8の先端部には、X方向の軸心を持つ第4軸(J4)を介して第二上アーム9が捻り回転可能に連結されている。第二上アーム9の先端部には、Y方向の軸心を持つ第5軸(J5)を介して手首10が垂直方向に回転可能に連結されている。手首10には、X方向の軸心を持つ第6軸(J6)を介してフランジ11が捻り回転可能に連結されている。
【0021】
ベース5、ショルダ6、下アーム7、第一上アーム8、第二上アーム9、手首10およびフランジ11は、ロボット2のアームとして機能し、アームの先端となるフランジ11には、図示は省略するが、ハンド(エンドエフェクタとも呼ばれる)が取り付けられる。ハンドは、例えば図示しないワークを保持して移送したり、ワークを加工する工具などが取り付けられる。ロボット2に設けられている各軸(J1〜J6)には、それぞれに対応して、モータ、モータの回転位置を検出するエンコーダ、モータの出力を減速する減速機22(図2参照)などで構成された駆動部が設けられている。
【0022】
コントローラ3は、図示しないCPUなどを有するコンピュータ、ロボット2の駆動部を動作させるための駆動回路などで構成されており、コンピュータプログラムに基づいてロボット2を制御する。具体的には、コントローラ3は、周知のように、ロボット2に対して予め定められている作業サイクルを繰り返し実行させるための各種の指令を出力することでモータを駆動し、エンコーダで検出したモータの回転位置に基づいてフィードバック制御を行うことで、ロボット2を制御する。
【0023】
図2に示すように、ロボット2の駆動部を構成する減速機22は、本実施形態ではいわゆる波動歯車装置を採用している。減速機22は、内周面に内歯30が形成された円環状の剛性内歯歯車31、この剛性内歯歯車31の内側に同心状に設けられ、外歯32を有する可撓性外歯歯車33を備えている。可撓性外歯歯車33は、図示は省略するが周知のように全体形状としてカップ状に形成されており、カップ状の底部に出力軸が取り付けられる。また、剛性内歯歯車31の内歯30と可撓性外歯歯車33の外歯32との間には、潤滑剤としての潤滑油W(図4参照)が充填されている。この潤滑油Wは、一般的に比較的粘性が高く、剛性内歯歯車31と可撓性外歯歯車33とが動作していれば歯車間に拡散して潤滑剤として機能する一方、動作していない状態では、固体に近い状態となる。なお、潤滑剤としては、油性のものに限らず、他のものであっても良い。
【0024】
外歯32の内周側にはウエーブベアリング34が配設されている。このウエーブベアリング34は、可撓性外輪35、可撓性内輪36、可撓性外輪35と可撓性内輪36との間に配列された複数個のボール37とから構成されている。ウエーブベアリング34の内側、つまり可撓性内輪36の内周には、楕円形の剛性カム38が固定されている。この剛性カム38には、モータの出力軸を連結するためのキー溝付きの嵌合孔39が形成されている。
【0025】
このような構成の減速機22は、ウエーブベアリング34の可撓性内輪36および可撓性外輪35が楕円形に撓められ、可撓性外輪35が楕円形に撓むことによって、外歯32形成部分が楕円形に撓められる。その結果、楕円形に撓んだ部分の長径方向両端部の2箇所において、外歯32が部分的に剛性内歯歯車31の内歯30に噛み合うようになる。そして、剛性カム38がモータにより回転駆動されると、可撓性外歯歯車33の楕円形に撓んだ部分の長径部分が周方向に移動し、外歯32の内歯30に対する噛み合い位置が周方向に移動する。このとき、外歯32が内歯30よりも例えば2枚少なく設定されているので、噛み合い位置の移動に伴って、剛性内歯歯車31と可撓性外歯歯車33との間で相対的な回転が発生する。そして、可撓性外歯歯車33が出力軸となってモータの減速回転が取り出される。
【0026】
図1に示すように、ティーチングペンダント4は、例えば薄型の略矩形箱状に形成されており、概ね使用者が携帯あるいは所持して操作可能な程度の大きさとなっている。ティーチングペンダント4には、各種キースイッチやタッチパネルが設けられており、使用者は、それらキースイッチやタッチパネルにより種々の入力操作を行う。ティーチングペンダント4は、ケーブルを経由してコントローラ3に接続され、通信インターフェイスを経由してコントローラ3との間で高速のデータ転送を実行するようになっており、キースイッチ等の操作により入力された操作信号などの情報はティーチングペンダント4からコントローラ3へ送信される。
【0027】
ここで、ロボット2が実行する作業サイクルについて説明する。
作業サイクルは、図3に示すように、予め定められている教示点P1〜P4を経由して、例えばワークの移送などを繰り返し行う作業である。例えば図3は、教示点P1を初期位置として、教示点P2まで移動した後、教示点P3にてワークをピックアップし、ワークを保持した状態で教示点P2、P1を経由した後、教示点P4にてワークをプレースする作業サイクルを模式的に示している。より具体的には、教示点P1−P2間ではアームが水平方向に大きく移動し、教示点P2−P3間およびP1−P4間ではアームが垂直に移動している。
【0028】
この場合、アームが水平移動する際には例えば第1軸(J1)が動作し、アームが垂直移動する際には例えば第2軸(J2)、第3軸(J3)や第5軸(J5)が動作するものとする。また、アームが水平方向に大きく移動する教示点P1−P2間では、移動速度を重視した移動動作(以下、PTP動作と称する)が行われ、ワークを所定位置からピックアップする教示点P2−P3間およびワークを所定位置にプレースする教示点P1−P4間では、位置決めの正確性を増すために移動軌跡を重視した作業動作(以下、CP動作と称する)が行われているものとする。
【0029】
この図3に示す作業サイクルでは、アームを捻る動作(第4軸(J4)を駆動する動作)が必要ないため、第4軸(J4)は動作していない。換言すると、第4軸(j4)に対応して設けられている駆動部には、作業サイクル中にモータを駆動するための実行命令(後述する動作命令)が出力されていない。以下、本実施形態では、第4軸(J4)に対応して設けられている駆動部のように作業サイクル中に動作しない駆動部を便宜的に非動作軸と称し、動作しない状態を非動作状態と称する。
【0030】
さて、非動作軸は、作業サイクルが繰り返し実行されると、図4(a)〜(d)に示すように、剛性内歯歯車31の内歯30と可撓性外歯歯車33の外歯32とが直接接触する可能性のある状態となる。具体的には、内歯30と外歯32との間に充填されている潤滑油Wは、通常であれば図4(a)に示すように拡散しているものの、非動作状態が続くと潤滑油Wが徐々に固体に近い状態となる。その状態で作業サイクルが繰り返し実行されると、つまり、非動作軸に他の駆動部やロボット2自体からの振動が伝達されると、図4(b)に示すように、概ね1歯未満程度の大きさで潤滑油Wが部分的に欠落し、欠落領域Rが形成される。この図4(b)は、発生当初の欠落領域Rの状態を示している。
【0031】
この状態でさらに作業サイクルが繰り返し実行されると、欠落領域Rは、図4(c)に示すように徐々に拡大していく。このように欠落領域Rが大きくなると、内歯30と外歯32とが直接的に接触するようになる。そして、作業サイクルが繰り返し実行され、振動が伝達されると、内歯30と外歯32とが接触を繰り返すようになり、その結果として、図4(d)に示すように、例えば内歯30が欠けるなどの破損部位Kが形成される。この状態では、破損部位Kがあることから、例えば作業サイクルが変更されて非動作軸が駆動されるようになると正常に動作せず、故障となってしまう。
【0032】
このように、多関節型のロボット2では、特定の駆動部が全く動作しない状態で作業サイクルが繰り返し実行されることがあり、動作していないことから本来であれば耐用年数に影響がないと思われるその駆動部において、耐用年数が反って低下してしまうという現象が起こり得る。そして、この現象は、作業内容に対して駆動軸が冗長性を備えた構成となっている多関節型のロボット2に特有の問題である。
そこで、ロボット2の動作をシミュレーションする段階で、すなわち、実機のロボット2を設置する前に、故障する可能性のある駆動部をユーザに事前に提示可能することで、上記した問題に対処している。
【0033】
図5に示すように、シミュレーション装置40は、コンピュータ41、モニタ42、キーボード43およびマウス44を備えている。コンピュータ41は、図6に示すように、CPU45、ROM46、RAM47、HDD48および入出力部49を備えており、記憶手段としてのROM46やHDD48などに記憶されているプログラムによって、シミュレーション装置40の全体を制御する。また、HDD48には、ロボット2のシミュレーションを実行するためのアプリケーション(以下、アプリと称する)などのプログラムも記憶されている。このシミュレーション装置40は、上記したように複数のアームを有する多関節型のロボット2をモデル化し、モデル化したデータを仮想空間で動作させ、ロボット2の動作をシミュレートする。
【0034】
モニタ42は、例えば液晶ディスプレイなどが採用されており、アプリの実行画面や実行結果(シミュレーション結果)などが表示される。具体的には、モニタ42には、後述するように、ロボット2の各アームのうち非動作軸があるか否か、アームの動作が移動動作であるか否か、ワークを保持しているか否か、アームが周辺設備(K1、K2。図7図8参照)に衝突するか否か、および、作業サイクル中においてアームを動作させることが可能な期間である動作可能期間など、アプリの実行結果を表示(ユーザに提示)する。モニタ42は、特許請求の範囲に記載した提示手段を構成している。キーボード43およびマウス44は、シミュレーション装置40やアプリに対するユーザの操作を入力可能な操作入力手段として機能する。
【0035】
また、シミュレーション装置40は、命令解析部50、動作履歴記憶部51、移動態様特定部52、非動作軸判定部53、補助命令付加部54、可動範囲設定部55、衝突判定部56、オブジェクト配置部57を備えている。本実施形態では、これら各部50〜57は、CPU45により実行されるプログラムによってソフトウェア的に実現されている。なお、各部50〜57は、ハードウェア的に実現してもよい。
【0036】
命令解析部50は、ロボット2に与えられる実行命令を解析する。ロボット2に与えられる実行命令としては、大きく分けて、アームを駆動するために駆動部に与えられる動作命令と、分岐条件の判定などの制御命令とが存在する。命令解析部50は、特許請求の範囲に記載した命令解析手段を構成している。
動作履歴記憶部51は、ロボット2が予め定められている作業サイクルを実行するための一連の実行命令の解析結果を、当該作業サイクルにおけるロボット2の動作履歴として記憶する。動作履歴記憶部51は、特許請求の範囲に記載した動作履歴記憶を構成している。
【0037】
移動態様特定部52は、作業サイクル中において、アームを予め設定される教示点間で移動させる際、アームの移動態様が当該アームの移動軌跡を相対的に重視した作業動作(CP動作)または当該アームの移動速度を相対的に重視した移動動作(PTP動作)のいずれであるかを特定する。また、移動態様特定部52は、ロボット2によりワークが保持されている(移送されている)状態である移送状態であるか否かを特定する。移動態様特定部52は、特許請求の範囲に記載した移動態様特定手段を構成している。
非動作軸判定部53は、動作履歴記憶部51に記憶した動作履歴に基づいて、ロボット2の各軸のうち作業サイクル中に動作していない非動作軸が存在するか否かを判定する。非動作軸判定部53は、特許請求の範囲に記載した非動作軸判定手段を構成している。
【0038】
補助命令付加部54は、動作可能期間に非動作軸を動作させるための補助実行命令(動作命令)を付加する。本実施形態では、補助実行命令として、歯車機構の歯を1歯以上移動させるような動作命令を出力している。この場合、一般的な構成のロボットの場合、第4軸(J4)のギア比=100、第5軸(J5)の中心からハンド先端までの距離=200mmとすると、モータを1回転(モータの出力軸が1回転。図2の歯車機構を一回転させるわけではない)させることでハンドの先端は最大で約13mm(2π÷100×200=4π)しか動作しない。補助命令付加部54は、特許請求の範囲に記載した補助命令付加手段を構成している。
【0039】
可動範囲設定部55は、仮想空間内において、アームを動作させることが可能な可動範囲を設定する。可動範囲設定部55は、特許請求の範囲に記載した可動範囲設定手段を構成している。
衝突判定部56は、補助実行命令を付加した状態でシミュレーションを実行した際、アームの軌跡が後述するオブジェクトに衝突するか否かを判定する。衝突判定手段は、特許請求の範囲に記載した衝突判定手段を構成している。
【0040】
オブジェクト配置部57は、可動範囲設定部55により設定された可動範囲V(図7図8参照)内に、実際の作業環境における例えば周辺設備などに相当する仮想的なオブジェクトを配置する。なお、配置するオブジェクトとしては、周辺設備などの物体だけでなく、進入禁止領域などの範囲も設定することもできる。オブジェクト配置部57は、特許請求の範囲に記載したオブジェクト配置手段を構成している。
【0041】
このような構成のシミュレーション装置40は、図7および図8に示すように、モニタ42にモデル化したロボット2に対して、オブジェクトとしての周辺設備K1、K2、および可動範囲Vを設定する。なお、図7は、仮想空間内におけるXY平面図を示し、図8は仮想空間内におけるYZ平面図を示している。また、図7および図8ではハンドおよびワークの図示を省略したが、前述の衝突判定部56は、アームだけでなく、ハンドやハンドによって保持されたワークとオブジェクトとの衝突も判定可能である。
【0042】
次に、シミュレーション装置40の作用について、図9に示す処理の流れとともに説明する。本実施形態では非動作軸として第4軸(J4)を想定しているため、第4軸(図9では「4軸目」と記載する)を対象として説明する。また、以下の処理は上記した各部50〜57によりそれぞれ実行されるものであるが、説明の簡略化のため、シミュレーション装置40を主体として説明する。
【0043】
図9のフローチャートにて用いている変数の意味は、以下の通りである。
・F:第4軸(J4)が動作したか否かを示すフラグ。作業サイクル開始時に0にリセットされ、第4軸が動作すると1にセットされる。
・P:4軸目を+側に動作させる(回転させる)動作軌跡。
・Q:4軸目を−側に動作させる(回転させる)動かす動作軌跡。
【0044】
シミュレーション装置40は、上記したロボット2のモデル化およびオブジェクト(K1,K2)の配置が完了した後、図9に示すように、作業サイクルのシミュレーションを開始すると、Fを0とし(S1)、実行命令が動作命令(駆動部を駆動するための動作命令)であるか否かを判定し(S2)、動作命令でない場合には(S2:NO)、ステップS6に移行する。そして、1サイクル(一回の作業サイクル)が終了したか否かを判定し(S6)、終了していなければ次の行(次の実行命令)を実行し(S8)、ステップS2に移行する。つまり、シミュレーション装置40は、作業サイクルが終了するまで、ステップS2において実行命令を繰り返し解析する。
【0045】
シミュレーション装置40は、ステップS2において実行命令が動作命令であると判定すると(S2:YES)、4軸目が動作するか否かを判定し(S3)、4軸目が動作する場合には(S3:YES)、Fを1とする(S4)。これにより、この作業サイクル中には4軸目が動作することが示される。一方、4軸目が動作しない場合には(S3:NO)、ステップS4を省略し、当該動作における起動補完方法がPTP動作であるか否か、すなわち、PTP動作であるか否かを判定する(S5)。そして、PTP動作でなければ(S5:NO)、ステップS6に移行して上記したように1サイクルが終了したか否かを判定する。
【0046】
これに対して、シミュレーション装置40は、起動補完方法がPTPである場合には(S5:YES)、当該PTP動作において4軸目を動かす軌道(P)を計算し(S9)、当該軌道(P)にて動作させた際(軌道(P)で移動するように動作命令を付加した際)におけるアームの移動時に、計算した軌道(P)が障害物(オブジェクト)に衝突するか否かを判定する(S10)。ここでは、アーム、ハンドおよびワークと、オブジェクトとの衝突が判定されている。軌道(P)が衝突しないと判定すると(S10:YES)、ステップS11に移行する。一方、軌道(P)が衝突すると判定すると(S10:NO)、軌道(P)とは逆向きに4軸目を動かす軌道(Q)を計算し(S12)、軌道(Q)が障害物と動作するか否かを判定する(S13)。そして、軌道(Q)が障害物と衝突しなければ(S13:YES)、ステップS11に移行する。なお、軌道(P)および軌道(Q)のいずれも衝突すると判定された場合には(S10:NO、且つ、S13NO)、今回の動作中にアームを動作させると衝突することから、ステップS6に移行する。
【0047】
このように、シミュレーション装置40は、実行命令が動作命令であり、且つ、その動作がPTP動作であれば、4軸目を動作させることが可能かを判定する。なお、ステップS4でF=1つまり4軸目が動作する場合であってもPTP動作であれば(S5:YES)ステップS9に移行するのは、そのPTP動作の動作時間などを予め計測しておき、今後の作業サイクルにおいて補助実行命令の出力対象となるPTP動作か否かを判定するためである。
【0048】
シミュレーション装置40は、軌道(P)または軌道(Q)のいずれかにて4軸目の動作が可能であると判定すると(S10:YES、または、S13:YES)、プログラムの実行行、エンドエフェクタIOの状態(ワークを保持しているか否か、IO=OFFで保持していない状態を示す)、当該PTP動作の動作時間、および、4軸目の回転方向(軌道(P)または軌道(Q)のいずれであるか)をPTP動作リスト(後述する図10のM3参照。作業サイクル中におけるPTP動作の動作履歴)に保存する。このように、シミュレーション装置40は、作業サイクル中のアームの動作を、アームの移動態様や動作時間とともに動作履歴として記憶する。
【0049】
シミュレーション装置40は、ステップS6において、1サイクルが終了したと判定すると(S6:YES)、F=0であるか否かを判定する(S7)。そして、F=0でない場合には(S7:NO)、4軸目が動作していることから、処理を終了する。
これに対して、シミュレーション装置40は、F=0の場合には(S7:YES)、4軸目が動作していないことから、PTP動作リストを同時間の長い順に並び替え(S14)、PTP動作リストをエンドエフェクタIO=OFFの順(つまり、ワークを保持していない順)で並び替え(S15)、ユーザに4軸目が動作していないことを通知する(S16)。具体的には、シミュレーション装置40は、図10に示すようにPTP動作リストをモニタ42に表示することで、ユーザに通知(提示)する(S17)。
【0050】
図10に示すように、モニタ42には、アプリの実行結果の表示画面として、シミュレーションの対象としたロボット2のモデルを表示する表示領域M1、非動作軸を示す表示領域M2、および、PTP動作リストを表示する表示領域M3が設けられている。表示領域M1には、ロボット2のモデル化した外観、各軸の位置、および非動作軸がいずれであるかの表示(図10の場合、第4軸(J4)を反転表示することで、非動作軸であることを示している)が示されている。表示領域M2には、非動作軸が第4軸(J4)であることが示されている。
【0051】
表示領域M3には、アームの移動態様である「動作態様」、作業サイクル中のPTP動作のうち何番目のPTP動作であるかを示す「順番」、当該PTP動作の動作時間をミリ秒単位で示す「動作時間」、当該PTP動作においてワークを保持しているか否かを示す「ワーク保持」(非保持=保持していない状態、保持=保持している状態を示す)、および衝突するか否かを示す「衝突」(○=衝突しない状態を示す)が示されている。この表示領域M3には、作業サイクル中に実行される複数のPTP動作のうち、動作時間の長い順、且つ、ワークを保持しているか否かの順にしたがって、PTP動作の動作履歴が示されている。より具体的には、最も動作時間の長いPTP動作を優先してリストの上位に表示する一方、同時間が長くてもワークを保持しているPTP動作(「順番」=3のPTP動作)については、動作時間が短くワークを保持していないPTP動作(「順番」=7のPTP動作)よりもリストの下位に表示されている。
【0052】
このようにPTP動作リストを表示すると、シミュレーション装置40は、ユーザによる操作をキーボード43やマウス44から受け付け、4軸目の動作指示があれば(S18:YES)、具体的には、図10に示すように4軸目を動作させるPTP動作が選択されれば(図10では、「順番」=4のPTP動作が選択された状態を、ハッチングにて模式的に示している)、指定した行のPTP動作を、4軸目が動作するように変更する(S19)。これにより、図10の場合では「順番」=4のPTP動作にて、第4軸(J4)が動作することになる。なお、ユーザによる動作指示が行われない場合には(S18:NO)、そのまま処理を終了する。
【0053】
このように、シミュレーション装置40は、作業サイクル中の各PTP動作について、その動作時間およびワークを保持しているか否かを動作履歴として記憶し、何番目のPTP動作にて補助実行命令を出力可能であるかを判定し、ユーザの操作入力に応じてそのPTP動作の実行行を変更する(実行命令に補助実行命令を付加する)。
【0054】
このように、本来の(つまり、ユーザが当初設定した)作業サイクルでは動作しない非動作軸を提示し、ユーザの操作に応じて補助実行命令の付加を可能とすることで、非動作軸(第4軸(J4))を動作させるように作業サイクルを変更することが可能となり、上記したような非動作状態で振動が伝達されることにより発生する欠落領域Rに対して、発生当初においては欠落領域Rに潤滑油Wを補充することができ、また、非動作軸を駆動させて潤滑油Wを予め拡散させることで欠落領域Rの発生そのものを抑制することができるようになる。
【0055】
以上説明した本実施形態によれば、次のような効果を奏する。
ロボット2に与えられる実行命令を解析し、予め定められている作業サイクルを実行するための一連の実行命令の解析結果を当該作業サイクルにおける動作履歴として記憶し、その動作履歴に基づいてロボットの各軸のうち作業サイクル中に動作していない非動作軸が存在するか否かを判定し、非動作軸が存在することをユーザに提示する。これにより、実際にロボット2を設置して作業サイクルを実行させる前に、つまり、ロボット2の動作を確認するシミュレーションの段階で非動作軸が存在することをユーザに提示することができる。したがって、上記したような故障が発生するおそれのある駆動部に対して、作業サイクル中に非動作軸を駆動させるための実行命令を付加するなどの対策を取ることが可能となり、特定の駆動部における故障の発生を抑制することができるようになる。
【0056】
アームを予め設定される教示点間(P1〜P4)で移動させる際の移動態様が、PTP動作およびCP動作のいずれであるかを判定し、アームがPTP動作を行っている期間を、非動作軸を動作させることが可能な動作可能期間として提示する。このとき、PTP動作している期間を動作可能期間とするのは、前述のように発明者の解析結果の裏付けに基づいている。これにより、発生当初の欠落領域Rに潤滑油Wを拡散させることが可能となり、欠落領域Rの拡大を抑制することができるとともに、非動作軸を動作させれば潤滑油Wが拡散されることから、欠落領域Rの発生そのものを抑制することができる。また、前述のように非動作軸の動作はPTP動作中に実施可能な動作であることから、PTP動作中に完了するので、タクトタイムが長くなるなどの影響を与えることが無く、生産効率が低下するおそれを抑制することができる。
【0057】
また、動作可能期間をユーザに提示することで、どのPTP動作で非動作軸を動作させればよいかをユーザは直ぐに判断できるので、利便性が向上する。
作業サイクル中に複数のPTP動作が存在する場合、最も動作時間の長いPTP動作を優先して提示する。PTP動作の動作時間が長ければ、非動作軸を動作させたとしても確実に本来の位置まで戻すことができるので、アームの軌跡に大きな影響を与えることがない上、動作時間内でより非動作軸を大きく動かすことが可能となり、欠落領域の発生および拡大をさらに抑制することができる。
【0058】
このとき、ワークを移送していないと判定された期間を優先して提示するので、本来の(当初の)作業サイクルでは想定していない非動作軸を動作させた場合であっても、その動作に起因してワークが周辺設備(K1、K2)に衝突するなどの不具合を生じさせることがない。
【0059】
アームの可動範囲Vを設定し、当該可動範囲V内に仮想的なオブジェクト(K1、K2)を配置し、動作可能期間に非動作軸を動作させるための補助実行命令を付加した状態で作業サイクルを実行した際、アームの軌跡(軌道(P)または軌道(Q))がオブジェクト(K1、K2)に衝突するか否かを判定し、その判定結果を図10の「衝突」のように提示する。これにより、ロボット2のシミュレーションの段階で補助実行命令を実行した際の動作を確認することができる。また、周辺設備などをオブジェクトとして配置しているので、実際の動作環境を再現した上で、非動作軸の動作が可能であるか否かを判断することができる。
【0060】
本実施形態では、補助実行命令を付加できるので、例えば作業サイクル毎に非動作軸に対して補助実行命令を出力できるなどの対策を取ることができる。これにより、作業サイクル毎に駆動部が駆動され、潤滑油Wが拡散する。この場合、一般的には作業サイクルは1分程度と考えられるので、欠落領域Rが発生する前に非動作軸が動作することから、欠落領域Rの発生をより確実に予防することができる。
【0061】
(第2実施形態)
第1実施形態では6軸の垂直多関節型ロボットを例示したが、図11に示すような4軸の水平多関節型ロボットに適用してもよい。なお、第1実施形態と実質的に共通する部位には同一の符号を付し、詳細な説明は省略する。
【0062】
図11に示すように、ロボットシステム61を構成するロボット62は、設置面に固定されるベース63と、このベース63上にZ方向の軸心を持つ第1軸(J61)を中心に回転可能に連結された第一アーム64と、第一アーム64の先端部上にZ方向の軸心を持つ第2軸(J62)を中心に回転可能に連結された第二アーム65と、第二アーム65の先端部に上下動可能(矢印A方向)で且つZ方向の軸心を持つ第3軸(J63)を中心に回転可能に設けられたシャフト66とから構成されている。シャフト66の先端部(下端部)には、ツールなどを取り付けるためのフランジ67が位置決めされて着脱可能に取り付けられるようになっている。
このような構成においても、第1実施形態の図6と同様の処理を行うことにより、複数の軸に対応して設けられている駆動部が非動作軸であるか否かを判定し、作業サイクル中のPTP動作中に補助実行命令を出力することにより、欠落領域Rの拡大や発生そのものを抑制することができるなど、第1実施形態と同様の効果を得ることができる。
【0063】
(その他の実施形態)
本発明は上記した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。
各実施形態では歯車機構として波動歯車装置を例示したが、歯車を利用するものでれば他の構成のものであっても本発明を適用することができる。
第1実施形態では第4軸(J4)を対象としたが、他の軸を対象として図9と同様の処理を実行することにより、ロボット2に設けられている複数の駆動部の全てに対して非動作軸と判定された場合には動作させることができるようになり、第1実施形態と同様の効果を得ることができる。
【0064】
もちろん、全ての軸を対象として個別に図9と同様の処理を行い、非動作軸と判定された全ての駆動部に対して同一の作業サイクル中に個別に補助実行命令を出力するようにしてもよい。その場合、複数の非動作軸が特定された場合には、同一のPTP動作中に補助実行命令を出力してもよいし、異なるPTP動作でそれぞれ補助実行命令を出力するようにしてもよい。
【0065】
各実施形態では歯車機構の歯を1歯以上移動させるような補助実行命令を出力するようにしたが、補助実行命令を出力する動作可能期間の動作時間に応じて、その移動量を帳調整するようにしてもよい。例えば、動作可能期間の動作時間が長ければ、移動量を大きくしてもよい。これは、動作時間が長ければ動作可能期間が終了するまでに本来の噛み合い位置に戻すことができるためである。このようにすれば、潤滑油Wの拡散をさらに促進でき、欠落領域Rの発生より確実に予防できるようになる。この場合、アームの軌跡に与える影響を少なくするためには、動作可能期間としてPTP動作を選択することが望ましい。
【0066】
各実施形態では潤滑油Wとして非動作状態では個体に近い性質を有するものを例示したが、常時液体の性質を有するものであってもよい。この場合、潤滑油Wの量が減少した部位すなわち潤滑油Wが切れた部位が欠落領域Rに相当すると考えればよいことから、図6と同様の処理を実行することにより、各実施形態と同様の効果を得ることができる。
第1実施形態では6軸ロボット、第2実施形態では4軸ロボットを例示したが、例えば7軸ロボットなど軸数が異なるロボットであっても本発明を適用することができる。
【符号の説明】
【0067】
図面中、2はロボット、6はショルダ(アーム)、7は下アーム(アーム)、8は第一上アーム(アーム)、9は第二上アーム(アーム)、10は手首(アーム)、40はシミュレーション装置、41はモニタ(提示手段)、50は命令解析部(命令解析手段)、51は動作履歴記憶部(動作履歴記憶手段)、52は移動態様特定部(移動態様特定手段)、53は非動作軸判定部(非動作軸判定手段)、54は補助命令付加部(補助命令付加手段)、55は可動範囲設定部(可動範囲設定手段)、56は衝突判定部(衝突判定手段)、57はオブジェクト配置部(オブジェクト配置手段)、61はロボットシステム、62はロボット、64は第一アーム(アーム)、65は第二アーム(アーム)、66はシャフト(アーム)、J1〜J6、J61〜J64は軸、K1、K2はオブジェクト、Vは可動範囲を示す。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11