ロボット コンベアをシミュレートする正しい方法
オフライン プログラミングで最も困難なタスクの 1 つは、ロボット コンベアのシミュレーションです。簡単にするための 10 のベスト プラクティスを次に示します。
コンベアはシミュレーションが難しい場合があります。動くオブジェクトをロボット プログラムに追加するとすぐに、事態は複雑になります。
ありがたいことに、オフライン プログラミングを使用してコンベアを簡単にシミュレートするために実行できる特定の手順があります。
シミュレートされたコンベアの 3 つの良い例
優れたプログラミング プラクティスを学ぶ最善の方法は、適切に設計された例を見ることです。
RoboDK では、コンベアをシミュレーションにできるだけ簡単に追加できるようにしました。コンピュータに RoboDK をインストールすると追加される Library ディレクトリに、3 つのコンベア デモがあります。
RoboDK でプログラミングするさまざまな方法
RoboDK シミュレーションの側面をプログラミングするには、3 つの方法があります。これらのそれぞれは、コンベアのデモで実証されています。それらは:
<オール>例 1:2 台のロボットによるコンベア
最も人気のあるデモでは、2 台のロボットがグリッパーを使用してコンベアに積み下ろしを行っています。このビデオは、このデモを自分で作成するためのチュートリアル全体を示しています。
- コンベアのタイプ: Python スクリプト
- ロボット プログラム: グラフィカル プログラミング
例 2:2D カメラを使用したピック アンド プレイス
このデモでは、以下のレーザー センサーと同じセットアップを使用します。ただし、シミュレートされた 2D カメラを使用してボックスの位置と向きを検出します。
- コンベアのタイプ: リニアメカニズム
- ロボット プログラム: Python スクリプト
例 3:レーザー センサーによるピック アンド プレース
このデモでは、移動中のコンベアにボックスをロードおよびアンロードする方法を示します。レーザーセンサーを使用して、コンベア上の箱がピックアップ位置にあることを検出します。オブジェクトの回転を検出できないため、毎回同じように配置する必要があります。
- コンベアのタイプ: リニアメカニズム
- ロボット プログラム: Python スクリプト
ロボット コンベアのシミュレーションに関する 10 のベスト プラクティス
上記のデモを見るだけで学べる教訓がたくさんあります。
デモで実際に確認できる 10 のベスト プラクティスを次に示します。
1.デモを出発点として使用する
車輪を再発明する必要がないのに、なぜ再発明するのでしょうか?独自のロボットを簡単にプログラミングできるように、デモを提供しました。それらを出発点として使用し、独自のニーズに合わせてカスタマイズしてください。これにより、より迅速に起動して実行できるようになります。
2.各エリアとロボットを個別に扱う
よくある間違いは、シミュレーションのすべての部分を同じグラフィカル プログラムまたは Python スクリプトから制御しようとすることです。これはすぐに手に負えなくなり、プログラムを混乱させる確実な方法です。
デモでは、各シミュレーションを 3 つの領域に分割しました。
<オール>これらの各領域は個別に扱われ、各ロボットも個別に扱われます。
3.各エリアの参照フレームを作成
最初のデモ (表のあるデモ) を見ると、Set Reference Frame を使用していることがわかります。 たくさん命令します。これは、FeedConveyor を右クリックすると表示されます プログラムと Show instructions を選択します。
ロボットが操作を実行するたびに、参照フレームを変更します。これは良いプログラミング手法ですが、初心者はよく忘れがちです。エリアごとに固有の参照フレームがあるため、必要に応じてコンベアとロボットを簡単に移動できます。
4.エリアごとにホームポジションを設定
同様に、同じデモから、各ロボットに各エリアのホーム ポジションが割り当てられていることがわかります。これにより、ロボットはエリアの近くに移動しますが、安全な距離に移動するため、衝突を回避できます。ロボットが領域からオブジェクトを持ち上げるたびに、最初にこのホーム ポジションにすばやく移動し、次に制御された方法でオブジェクトに向かって移動する必要があります。
5.最大ピックアップ距離を設定
RoboDK は、非常に単純な方法を使用してエンド エフェクターをシミュレートします。 添付アクション 命令が呼び出されると、ロボット グリッパーの近くにある把持可能なオブジェクトがピックアップされます。 ツールに移動して、この最大距離を設定できます。 メニュー> オプション オブジェクトをロボット ツールに取り付ける最大距離を設定します。
6.適切なコンベア方式を選択
デモからわかるように、コンベアはリニア メカニズムまたは Python プログラムとしてプログラムできます。これらの両方のアプローチの利点については、記事「狂わずにロボット コンベアをプログラムする方法」で読むことができます。
7.部品名を使用して検出
2 番目のデモ (2D カメラを使用) を見ると、センサーが各パーツをどのように検出しているかがすぐにはわかりません。 「秘密」は、RoboDK が共通のパーツ名を使用して、どのオブジェクトを操作できるかを追跡することです。
PartsToPallet を右クリック python スクリプトを選択し、[Python スクリプトの編集] を選択します。 PART_KEYWORD が表示されます パート」に設定されています。シミュレーション内のすべての把持可能なオブジェクトは、このキーワードで始まります。センサーは正しい名前のオブジェクトのみを検出します。
8.慎重に速度を合わせる
コンベア プログラミングの最大の課題の 1 つは、ロボットとコンベアの速度を慎重に調整する必要があることです。
3 番目のデモ (レーザー センサーを使用) を見ると、速度のずれの影響がわかります。 SetSimulationParams をダブルクリックします 脚本。箱のサイズとパレットのサイズで [OK] をクリックしますが、コンベアの速度を 60mm/s に変更します。 MainSimulation をダブルクリックします プログラムを開始します。ロボットがいくつかのボックスを見逃し始めることがわかります。
9.それを壊してみてください!
堅牢なロボット プログラムを開発するための最良の方法の 1 つは、コンベアの速度をいじって行ったように、「それを壊す」ことです。プログラムが正しく動作していると、誤った安心感に陥ることがあります。
プログラムが失敗する原因となる状況を見つけてください。そうすれば、ロボット プログラムが変更に対して真に堅牢であることを確認できます。
10.実世界でのテストの準備
結局、シミュレーションは単なるシミュレーションです。プログラムを実際のロボットにダウンロードし、物理的なコンベアでテストして初めて、実際に実際に機能するかどうかを確認できます。
コンベヤは扱いにくいことを覚えておいてください。コンベアを使用していない場合よりも、プログラムをテストする準備をしてください。
RoboDK でのコンベアの使用について質問がありますか? 以下のコメント欄でお知らせいただくか、LinkedIn、Twitter、Facebook、または Instagram でのディスカッションに参加してください。
産業用ロボット