基本搬送プログラム作成:門形枠式軌跡
  • 門形枠式軌跡
  • 基本
  • 搬送
  • プログラム
  • 取り出し
Yu Lin
我要的是机器人?我要的是机器猫!

ロボット応用の中で、最も一般的なのは搬送作業です。門形枠式軌跡は搬送任務の基本であり、各種形式の運動軌跡は門型枠軌跡を基本として変化したものである。ワークロード、ワークアンロード、パレタイジングなどの複雑な搬送作業は、これらの門形枠式軌跡を変化させた運動軌跡を組み合わせたものである。

ロボットが一つの物体をポイントAからポイントBに移動する必要がある場合、物体が摩擦、衝突を受けないように、ロボットはポイントAから物体を取り出した後、物体を垂直に1段上に持ち上げて移動する必要があり、持ち上げた位置はポイントA’である。搬送時間をできるだけ少なくするためには、ロボットは物体を置く位置のポイントBの上、つまりポイントB’に直接移動してから、ポイントBにそっと置くべきです。したがって、門形状の軌跡が形成される:A->A'->B'->B。次の搬送のために、ロボットは同じ軌跡に沿ってA点に戻るのが一般的です、すなわちB>B’->A’->A。この軌跡は、ロボットが使用する治具が点Bに置かれた物体やA点で待機している次の物体に変位するのを効果的に回避することができる。実際の状況に応じて、ロボットは軌跡B->A'->A、B->B'->A、または軌跡B->Aを用いて取出し位置に戻すことができる場合がある。

まず、基本の取り出しとリセット軌跡から説明します。つまり、軌跡A->A'->B'->Bと軌跡B->B'->A'->Aです。上図のように、A->A'、B'->B、B->B'、A'->Aの4つの経路はすべて直線であるべきで、物体に変位、摩擦、衝突などの負の影響を与えることを最大限に回避した。一方、A’->B’とB’->A’の2つの経路は必ずしも直線ではない。ほとんどのロボットにとって、直線は最短ルートであるが必ずしも最速ルートではない。通常、関節運動を使用すると、ロボットが最も効率的に、最も快適に運動経路を完成することができます。潜在的な特異点や目標点に多解が存在するなどの問題も回避できる。

ELITEのECロボットはP変数およびV変数を用いて座標情報を保存する。

P変数は関節座標系を用いて、6つの関節の各角度を記録する。利点は座標位置が唯一解しかないことであり、欠点はロボットの位置と姿勢を微調整することが角度を修正することによって実現しにくいことである。搬送作業では、長距離移動に必要な座標点での使用が推奨されています。

V変数はデカルト座標系を採用し、XYZ軸で座標を記録し、RxRyRzで各軸を回る回転角度を記録する。利点はロボットの位置と姿勢を微調整しやすく、欠点は部分的な位置と姿勢に複数の解が存在し、ロボットが使用者の望ましくない姿勢で目標点に到達することがあることである。搬送作業では、短距離移動に必要な座標点での使用が推奨されています。

そこで、P変数を用いて点A’と点B’の位置を記録し、V変数を用いて点Aと点Bの位置を記録することを推奨する。

軌跡の種類と変数をすべて計画したら、プログラムの雛形を作成することができます。動作の要件はV 1->P 1->P 2->V 2->P 2->P 1->V 1のループ、 詳細は:

1. 直線:P1->V1

2. 直線:V1->P1

3. 関節:P1->P2

4. 直線:P2->V2

5. 直線:V2->P2

6. 関節:P2->P1

プロセス6からプロセス1に戻り、ループします。

ELITE ECシリーズに必要なJBIプログラムは次のとおりです。

物体の搬送にはもちろん物の把持と解放が欠かせない。ELITEロボットは複数の電動グリッパー、真空グリッパーに適している。ELITEのエンジニアたちはすでに生態協力の設備のために必要なスクリプトを書き上げており、ユーザーは特定のグリッパー開閉制御用のJBIサブプログラムを呼び出すか、特定の変数を出力するだけでグリッパー開閉を制御することができる。ロボットにOn RobotのVGC10真空グリッパーが組み込まれていると仮定し、プログラム中の適切な位置にグリッパーを制御するサブプログラム命令を加えると、プログラムは次のようになります:

このとき、ティーチを自動(Play)モードに切り替え、サイクルモードを連続サイクルに変更すると、物体を取り込むー>物体を置く作業を繰り返すことができます。実際に実行してみると、思ったほどスムーズではないことが多い。このプログラムや動作方法には、最適化が必要な詳細がたくさんあります。

一つ目の最適化ポイント:プログラムが初めて実行されたとき、ロボットは現在の位置からポイントV 1に直接移動し、それによって取り出した物体が変位したり衝突したりしやすい。したがって、最初の運転時にロボットが待機位置P 1にいることを保証する必要があります。最も簡単な方法は、上図の9行目のプログラムを2行目に切り取り貼り付けることです。しかし、次の他の最適化のために、ここでは別の方法を採用しています:2行目にMOVJ P 001の命令を追加し、他の部分のプログラムをループさせます。

ループ方式は、While ループ命令を使用するか、Label 命令+ If 命令 + Jump 命令を使用して、While ループと同じ効果を実現できます。次の図の例では、While コマンドを使用してプログラムをループします。 したがって、自動モードで連続サイクルを設定する必要はなく、シングルサイクルを使用するだけです。


3行目のWhile 1=1の部分で、実用化に向けて調整が必要な場合は、プログラムを停止する機能を追加でき。ます。たとえば、変数 M600 が 1 に設定されると、プログラムは停止します。While 条件を While M600 <> 1 (または While M600 = 0) に変更し、ボタンを使用して入力ポートを接続し、EC の組み込みユーザー PLC を介して M600 を制御するか、SDK ポートを介して M600 を制御します。など、プログラムのループ停止を自由に制御できます。

2 番目の最適化ポイント: ロボットのサイクルタイムが長すぎます。速度が速くないだけでなく、運動中のあらゆるポイントでしばらく停止します。まず、すべての点で停止するという問題を解決します。搬送作業では、物体を取り込む位置と置く位置のみを停止する必要があり、他の位置をスムーズかつ迅速に通過する必要があります。これは、CR パラメーターを変更することで実現できます。


次に、プログラムの実行速度を 100% に調整します。 JBI プログラムで、すべての MOV 命令の加速を最大に変更します。 取り込む位置と置く位置では減速度を遅くする必要がありますが、それ以外の位置では最大になります。MOVL 速度はテストで調整する必要があります。 1000mm/s から開始し、より速いモーションが必要な場合は、調整ごとに 500mm/s を増やすことをお勧めします。 MOVJ の場合、30% から開始し、テスト後に調整するたびに 15% ずつ増やすことをお勧めします。 下の画像は両方の速度を最大に設定しています。


3 番目の最適化ポイント: 取り込むの際、グリッパーが対象物をつかむ前にロボットが離れてしまうことがあります。 置くの際、グリッパーが対象物を離す前にロボットが上昇し、対象物が落下して破損する可能性があります。待機命令を追加することで、ロボットが途中で離れるのを防ぐことができます。 一定時間待つか、グリッパーのフィードバック信号を待つことができます。一般的に言えば、グリッパーを制御するサブプログラムには組み込みの待機命令があり、ユーザーはサブプログラムのパラメーターを直接調整することもできます。

これで、門型枠軌跡をベースにした搬送作業プログラムが完成します。もちろん、実際のニーズに応じて調整や最適化ができる場所はたくさんあります。


次に、他の最適化例を示します:

例1. センサーを取り付け、センサーが物体が取り出し位置に到着したことを確認してから、ロボットが取り出しタスクを実行する。および前回搬送した物体が置く位置から離れていることをセンサーで確認した後、ロボットは置くタスクを実行します。二つのセンサーがそれぞれX 004とX 005に接続されていると仮定します。プログラムにWait命令を追加して、取り込む位置と置く位置の状態を確認することができます。

このような簡単な信号待ちの使用法は、以下のシーンを含むが、これらに限定されない:

NC機械のワク取り出し/ワク置く応用:加工完了を確認し、安全ドアを開ける

他の機械やオペレータが取出し、設置エリアにないことを確認する

作業場関連昇降柱が目標高さに到達したことを確認する

例2. グリッパーを開いたり閉じたりするサブプログラムを呼び出すたびに、サブプログラムは関連するLuaスクリプトを再初期化します。そのため、グリッパを開いたり閉じたりするたびに待ち時間がかかります。したがって、サブプログラム中の初期化スクリプトの命令を単独で抽出して独立サブプログラムとし、メインプログラムで1回実行すればよく、後続のグリップをオンまたはオフにするサブルーチンに初期化スクリプトを必要とせず、サイクルタイムを短縮できます。


例 3. 撮影対象がランダムに配置される可能性があるため、ロボットの位置決めを支援するビジョン システムが必要です。取り込むが必要なワクはランダムに配置される可能性があるため、ロボットがワクを見つけるのを支援するビジョン システムが必要です。カメラは、スクリプトを通じてロボットとのデータ交換を実現します。ロボットに固定されたカメラは、ロボットが特定の位置に移動して特定のコマンドを送信することを要求し、計算が完了した後、ロボットはフィードバック信号、ワク座標、さらにはワク上の座標を受信します。下図の例では、フィードバック信号は D001 と D010、ターゲット座標は P005、ターゲット座標の上部は P006 です。

NOP
//Initialize Camera
SET D001 0.0
SET D010 0
STARTLUA INDEX=2
//Wait Camera Ready
WHILE M#(600)<>1 DO
SET D001 0.0
SET D010 0
TIMER T=2.0 S
WAIT D010=1
TIMER T=2.0 S
//Move To photo taking point
MOVJ P011 VJ=100% PL=0
TIMER T=1.0 S
SET D001 5
WAIT D001=0
TIMER T=5.0 S
//Pick Up
MOVJ P006 VJ=100% CR=0.0MM ACC=50 DEC=50
MOVL P005 AV=50.0MM/S PL=0
#CALL JOB:VG10_A_GRIP
TIMER T=0.5 S
MOVL P006 V=3000MM/S CR=100.0MM ACC=100 DEC=100
//Place
MOVJ P002 VJ=100% CR=100.0MM ACC=100 DEC=100
MOVL V002 V=3000MM/S CR=0.0MM ACC=100 DEC=50
#CALL JOB:VG10_A_RELEASE
TIMER T=0.5 S
MOVL P002 V=3000MM/S CR=100.0MM ACC=100 DEC=100
MOVJ P001 VJ=100% CR=0.0MM ACC=100 DEC=100
ENDWHILE
END
点击显示全文
赞同0
发表评论
分享

手机扫码分享
0
210
收藏
举报
收起
登录
  • 密码登录
  • 验证码登录
还没有账号,立即注册
还没有账号,立即注册
注册
已有账号,立即登录
选择发帖板块
举报
请选择举报理由
举报
举报说明