ロボットオフラインプログラミング 入門講座

はじめに

これから自社の生産設備に産業用ロボットや協働ロボットを初めて導入して、自動化生産ラインを構築されようとしている企業様、またロボットはすでに導入・稼働させているが、マニュアル教示からオフラインティーチングに移行して、生産性向上や労働環境の改善を目指している企業の皆様のために、ロボットオフラインプログラミングの基本知識について説明致します。 

  • 現状と今後

産業用ロボットを含む生産設備の適用検討を主目的とした汎用ロボットシミュレーションソフトと、実機ロボットのオフライン教示を目的としたオフラインティーチングソフト(OLT)が存在しています。 この2つのソフトウェアは、それぞれ個々の特長・利点があり、別々で使われることが多々ありました。 各ロボットメーカーが、自社のロボット用に開発したOLTを実機ロボットの購入時に、同時に導入されたユーザー様も多いと聞いております。

汎用ロボットシミュレーションソフトを使って適用検討用に作成したデジタル設備モデルや動作ツールパス情報は、下流のOLT業務用に再利用されず、機構定義や動作ツールパスの再作成という手戻りが発生しているのが現状です。 そのため、適用検討用のロボットシミュレーションから、最適化検証機能を付加して、実機との誤差の少ないオフラインプログラムを出力できるロボットオフラインプログラミングソフトウェアが最近普及してきております。 ロボットの動作検証と工程検証を同時に可能にし、加工工程全体の最適化検証作業も加速させることが出来るソフトウェアになります。

ロボットオフラインプログラミング = 3Dシミュレーション + ティーチング + 最適化 + ロボットプログラム出力

ロボットシミュレーションは、産業用ロボットや治具その他各種生産設備の3次元モデルを用い、ロボットの正確な動作シミュレーションを行うためのソリューションです。 製造工程への実機ロボットの適用検討を促進し、製造工程全体の最適化検証を通じて、現場現物による従来のライン立ち上げ期間を大幅に短縮化することができます。

  • ロボットオフラインプログラミング導入のメリットとデメリット

先ずは、メリットの方から述べたいと思います。  溶接や組立などの製造ラインにおいて、実際の製品を使用せずに詳細なロボットティーチングを行うには、ロボットオフラインプログラミングが必要になります。 製品が完成していない段階でも製品の3Dモデルを利用してロボット及びその周辺装置の動作を事前に検証することが可能になります。

 また、複数のロボットが同時に動作するような加工工程では、実際のロボットや設備で検証を行うと干渉や衝突によって高価な設備を破損する恐れがあります。 ロボットオフラインプログラミングを使うことで設備の破損を回避することができます。  さらに、シミュレーション環境でロボット動作の最適化検討が可能になるだけでなく、オペレータ育成のための教育ツールとしても有効活用することができます。

 生産設備や生産工程の不具合を早期に発見できると同時に、工程の最適化も検討することができるため、生産準備期間の短縮や生産準備工数の削減につながります。 これにより、費用削減だけでなく、システム全体の稼動率向上など、新たな利益の創出に貢献します。

 デメリットとして、ロボットオフラインプログラミングで作成したロボットプログラムは、実機の動作との間で誤差(サイクルタイムや位置決め)が発生するため、最終的には実機を使ったマニュアル教示による微調整補正が必要になります。 実機ロボットとバーチャルロボットとの誤差発生の要因は、重力の影響、加減速制御方法の違い、モーションプランナーの違い、機種差(個体差)などが挙げられます。 また、ロボットオフラインプログラミングの操作習得には基本的なコンピュータ知識が必要で、常時使用していないと操作方法を忘れてしまうということもあります。 また、いくつかの制限事項もあり、部分的な活用では、当初期待した生産性向上が実現できなかったという苦い事例もあります。  このような課題を克服した次世代の汎用ロボットオフラインプログラミングの開発が求められています。  

  • 導入前検討

ロボットオフラインプログラミングの活用を考える前に留意すべき大事なことは、どうようなロボットでどんな仕事をさせるためのソフトウェアなのか? あるいは、どのような作業をどのような場所(スペース)でさせるのかを事前に想定して、その条件のもとでソフトウェアの機能、性能を調査することが重要です。   

  • 作業用途

一般的なマテリアルハンドリング(ピック&プレイス)用途なのか? スポット溶接、アーク溶接、レーザー加工、塗装、あるいはその他の特殊な作業用途なのかを定義しておく必要があります。 これによって、ロボットも分類化され、その目的達成のために特化したメーカーや製品シリーズが存在します。 エンドエフェクターやガンの選択によっても考慮の必要性が増えます。 これらの作業用途のすべてに対応できているソフトウェアは少なく、一般的なマテリアルハンドリング対応のソフトを導入して、後で機能不足で苦労されるケースが多々あります。  ロボット実機の導入とオフラインプログラミングをほぼ同時に導入されるケースは、特に重要な要素です。

  • 可搬重量

ロボットの大きさや機種を選択するうえで、可搬重量を推定することが最初に求められます。  ワーク重量 + エンドエフェクタ重量 = 可搬重量となります。 構想段階で重量を予想することは難しい作業ですが、限られたスペースで最適なロボットを選択する上では大事な仕事となります。

  • レイアウト、動作範囲、姿勢

周囲の設備・装置と干渉しないようにするため、また導入後の保守メンテナンスが容易にするために、動作範囲をより有効に使って、レイアウト検討を効率的に実施するが必要があります。 ロボット設置の代表例として、床置き型、天吊り型、壁掛け型などがあり、ロボット設備の購入時に決定します。  動作範囲とは、各ロボットメーカーのカタログに記載されている動作領域のことを言います。(一部メーカーによって表記方法が違う場合もあります。) 実機ロボットは、この範囲まで届きますが、ギリギリの先端付近では、ロボットの各軸(各関節)が伸びきった状態になるので、自由度が少なくなり良い姿勢とは言えません。  一番遠い位置で、使用するエンドエフェクターの取り付け誤差、その傾きなどを調整するための許容度を十分に考慮・検討しておく必要があります。

  • ロボットオフラインプログラミングに必要な基本機能

現在、世界で一般的に販売されている汎用のロボットオフラインプログラミング製品に搭載されている標準的な機能を説明いたします。 逆説的に言うと、このような機能が備わっていないソフトウェアは、ロボットオフラインプログラミング製品とは言えず、単なるエミュレーターであり、混同し易いので注意が必要である。

  • 3次元CADデータの読み込み機能

初期のオフラインティーチングソフトは、STLやVRMLと言ったポリゴンデータの入力だけしかサポートしていなかった。 ポリゴンデータの場合、入力に長時間要し、3次元表現や形状要素からの動作パス作成、解析機能などに大きな制約があり、現在では、より正確なデータ入力ができるSTEP、Parasolid、JTなどの中間ファイル形式での入力が一般的になってきている。

  • 設備3Dデータに対して機構定義する機能   (リソース・ビルディング作成)

スポット溶接ガンの開閉システムやエンドエフェクター、多軸ポジショナーなどの動くデジタル設備を自分で作成するための機能です。フォワードキネマティクス、ホームポジション、可動範囲などの定義を行うことができます。 そのほか、新型のロボットや特殊ロボットなどを使う場合も、インバースキネマティックス機能を使って作成することができます。 このデジタル設備モデルを使用して3Dシミュレーションを行い、ロボット選定のための検討を行うことも可能です。 

  • ロボットライブラリー機能

ロボットの3D形状に機構定義、インバースキネマティックス、各軸値などの設定が施されたロボットモデルは、ライブラリーとして提供されます。 対応しているメーカー、機種の多さ,迅速性によって、そのソフトウェア開発会社のサポート対応能力が分かります。  新製品のロボットを使用する場合は、ソフトメーカーに問い合わせて、リリース予定がない場合は、新規作成を依頼することになります。

  • デジタル設備モデルに動作モーションを作成して、シミュレーションを実行する機能

機構定義された設備に対して、モーションとI/O信号の設定を行います。 メインプログラムやサブプログラムの組合せで柔軟性のある加工プログラムが完成されます。 干渉チェック機能を搭載しているソフトウェアの場合は、干渉対象物の設定も行います。

  • ティーチング機能(ツールパス、教示点を作成する機能) 

 ティーチング作業は、ロボットアクティビティ(タスク、働き)と呼ぶ個々の動作定義をロボットの姿勢や到達性を確認しながら作業工程順(加工制御点の順番)に行います。 ロボット単位でのティーチングからステーション/ワークセル単位でのティーチング、プロセス定義、I/O管理までに行うことができます。  

 ロボットアクティビティの中にロボットのすべての動作情報が表示され、ロボットの到達性を視覚的に確認することができます。 属性情報を変更する場合は、プルダウンメニュー等から新規属性を選択するだけで変更することができます。  ロボットの姿勢の定義は、パネルで各ジョイントの数値を変更するか、またはマウスで直接ロボットの各アームをピックして操作する方法、ロボット先端のTCPをマウスでピックして動かすことで簡単に設定できます。このとき、定義した動作に無理がある場合は、ジョグパネルのパラメータおよびロボットの該当箇所が赤色に変化して警告する機能を搭載しているソフトウェアが一般的になってきております。

  • オフラインプログラミング

シミュレーション環境で検証したロボット動作パスを実機に展開するために、この動作パスを実際のロボット言語に変換しなければなりません。  ロボット言語プログラムへの変換をダウンロードといい、実機ロボット言語プログラムからシミュレーション上のロボット動作座標に変換することをアップロードといいます。  

ダウンローダーとは、

ロボット動作パスを、各社ロボットメーカーの仕様に合わせたロボット言語に変換する必要があります。    ロボットの動作パスとロボット情報をXML形式のファイルに書き出し、別に用意されているプログラムを使用して各社のロボット言語に変換します。  ロボットメーカー毎にこの仕様が違うので、ソフトウェアメーカーのサポート力の違いによって、ダウンローダーの適合機種、性能・精度に差が出てきます。 

アップローダーとは、 

アップローダーは、ダウンローダーと逆の作業を行うもので、実機のロボット言語プログラムをXMLファイルに変換し、それをロボットオフラインプログラミングに読み込んで、XYZの位置情報と法線ベクトルなどの情報をシミュレーションに反映するものです。 一般的なアップローダーは、加工制御点のXYZの位置情報の変換しかサポートしていない製品も多く注意が必要です。 ロボットメーカー毎の特殊コマンドなどを解析して、ロボット属性情報なども変換してロボットツールパスに反映できるようにすることが今後の課題です。 その為には、専用トランスレータの性能だけでなく、事前の技術仕様打合せも重要になります。  

さらなる機能拡張が求められている項目

ここでは、拡張機能の概略だけ説明して、詳細については、続編の「ロボットオフラインプログラミング 応用講座」で説明することにいたします。

  • キャリブレーション  

 実機環境とシミュレーション環境の誤差を補正するキャリブレーション機能(補正機能)には、次のような手法があります。  ①ツールの補正、②ワークの補正、③ロボットの位置補正、④ポジショナー軸の補正、    従来までは1つのロボットに対し1つのプログラムのみが読み込み可能となっておりましたが、最近のロボットオフラインプログラミングソフトは、1台のロボットに複数のロボットタスクを持たせることが可能となりました。 これにより、ロボットの動作の細分化や、動作パターンの代替案の検証が可能となっています。また、ロボットタスクのアップロードにおいても、複数タスクに対応できるため、すでに設定されているロボットタスクが上書きされて消えてしまうことはありません。

  • RRS-1/RCS接続方式 と RRS-2/VRC接続方式

RRS(Realistic Robot Simulation)オプションは、より精度の高いシミュレーションを実行するために、ロボットメーカーが提供しているRCS及びVRCと通信を行うソフトウェアです。 性能レベルによりRRS-1とRRS-2があります。 違いについては、応用講座で説明いたします。

  • 外部軸の設定

 ロボットの先端に装着したエンドエフェクターや溶接ガンの開閉、ポジショナー動作をロボットコントローラーの外部軸として制御することがあります。 外部軸はジョグパネルで設定することができ、外部軸の設定パネルが表示され、各種の定義を行うことができます。

  • 属性のコピー&ペースト

 すでに定義してある任意のオペレーションを簡単にコピー&ペーストすることができます。例えば、同じ姿勢をコピー&ペーストして複数追加したり、ロボットの動作順序を簡単に入れ替えて最適な順序の代替案を検討したりすることが可能となります。

  • I/O管理機能

   複数のロボットが同時に実行させる場合、I/O管理機能により各ロボットの動作順序を定義することが必要になります。 これにより、ロボット同士やロボットと設備との干渉を回避させることや、ワーク搬送タイミングなども設定することができます。 例えば、2台のロボットが同時に動作して干渉が発生した場合、設定によって一方のロボットの動作を優先させることにより、干渉を回避するのがインターロック機能です。 

  • 協調動作機能(マスター&スレーブ)

2台以上のロボットが同期して動作を行う場合、1台のロボット動作をマスターにして、他のロボットがそのマスター動作をトレースすることです。

  • 加工テクノロジー(知識化機能)

いろんな加工工程を自動化させるために、ロボットの先端にいろんなエンドエフェクターやガンなどを装着します。その加工属性や方法によって、装着したエンドエフェクターやガンの角度を可変にしたり、動作スピードの加減速制御を行う必要があります。 加工技法毎の詳細な属性設定を一定のルールパラメーターで簡単にできるようにする機能です。 生産性向上だけでなく、技術の技術の伝承、標準化にも寄与します。

基本操作手順(ワークフロー)

 スポット溶接工程を例にして、ロボットオフラインプログラミングの作成プロセスを説明いたします。

①製品データおよび設備データを読み込みます。ロボット以外の治具などの設備の動作定義は、リソース構築(機構定義)機能を使って作成していきます。

②作業スペース内の基準原点をもとに各設備をレイアウトしていきます。 ロボットのモデルは、数百体以上がライブラリーとして用意されていますので、このライブラリーから目的のロボットモデルを呼び出して使用します。

③動作パス作成機能を使用してロボットの詳細な動作を作成します。開始点と終了点だけでなく、アプローチ&リトラクトの定義も行います。 このようにして全体工程のシミュレーションを作成します。

④干渉チェック機能を使ってシミュレーション中に干渉が発生しないかどうかを確認します。干渉する場合は、動作パスやロボットの各アームの位置・角度を修正します。 

③スポットガン開閉動作などのより詳細な動作定義をして、最適化したシミュレーションモデルを完成させます。 より精度の高いサークルタイム検討や位置決め精度向上を求めて、各種補間機能を使った最適化活動を行います。 目標の精度を得るために、この最適化活動を何度か繰り返すこともあります。

④打点配分、工程順序などのプロセス定義・検証を行います。 I/O設定を行いライン全体も検証します

⑧実機のロボットに対応したダウンローダーモジュールを選択してロボット言語プログラムを出力します。

⑨出力されたロボット言語プログラムをUSBなどのメディアに書き出し、あるいは社内LANを通じて実機ロボットコントローラーに入力して、実機稼働させます。

あとがき:

工場の自動化を促進する上で産業用ロボットの活用は不可欠です。 それに伴ってロボットオフラインプログラミングを使った生産性向上の取り組みを加速させる必要があります。  工場の自動化を考える場合、工場全体のデジタル化を検証できる「デジタルファクトリー」の観点を備えたロボットオフラインプログラミングが求められています。 すなわち、前工程のラインシミュレーションやプラントレイアウト設計、後工程のバーチャル試運転、デジタルツインシステムとの連携性を持ったロボットオフラインプログラミングが、非常に重要になると認識されてきているためです。

巨大PLMメーカーから提供されるいくつかの製品を使用するよりは、データ一貫性を保ちながら、異種専門ソフトウェアメーカーによる適材適所のインテグレーションが、革新的なソリューションを素早く低価格で実現できるのではないかと期待されております。