[DOBOT, DobotStudioPro] Blocklyにて頻繁に使用されるコマンドの説明(移動コマンド編)

1. はじめに


本稿では、制御ソフトウェアDobotStudioProでプログラム作成時に利用できるBlocklyにおいて最も頻繁に使用される移動コマンドの紹介をします。

2. 環境


本稿投稿時に使用している環境は以下になります。

OS: Windows 10(64bit)

MG400: DobotStudioPro v2.6.0

3. 移動コマンド解説


3-1. 全シリーズ共通の移動コマンド

Move to target point:保存した座標への移動

解説:ポイントリストに登録した点へアームを移動することができます。(デフォルトはInitialPose([x,y,z,r] , [350,0,0,0])に設定してあります。)

・移動の軌跡の種類にはMovJとMovLが存在します。

MovJ:非線形運動によるアームの移動 MovL:直線運動によるアームの移動

※1ポイントリストへの保存方法は[DOBOT]ポイントリスト使用方法を参照ください。

 

※2 移動命令におけるAdvanced Settingについて

Advanced Settingは、移動命令単体に詳細な移動パラメータを設定する機能です。

以下のように、移動命令ブロック自体を押下することで設定画面を開くことが可能です。

【注意】DobotStudioPro2.8.0~では距離指定について負の値の入力ができませんためご注意ください。

 

 

 

 

押下することで以下の設定画面が表示されます。

ここで設定したパラメータは後述される速度・加速度のパラメータ設定より優先して採用されるため、全体の速度設定とは独立して速度を設定したい場合に有効です。
以下のパラメータは☑をつけたもののみ有効となり、各パラメータ説明は後述されるものと同様となります。

  • Speed
  • Acceleration
  • CP

 

また、本設定では「この移動命令で指定した座標へ移動するまでの間で、一定距離移動後に特定のDOをON/OFFにしたい」場合にも有効です。
DO操作するタイミング・トリガーとなる距離の指定方法は2つございます。

  • 「距離」
    始点または終点からの実際の距離を[mm]単位で指定します
    正の値:始点からの距離
    負の値:終点からの距離
    【注意】DobotStudioPro2.8.0~では距離指定について負の値の入力ができませんためご注意ください。
  • 「パーセンテージ」
    始点から終点までの全体の移動量に対する始点からの百分率0~100[%]で指定します
    こちらは正の値で始点からの距離の割合のみで、負の値は指定できません。

 

以下に例を示します。
P1へ到着後、P2への移動命令にAdvanced Settingを行った場合の例となります。
P1とP2の距離は簡単のため100mmとしております。

操作するのはDO_01とDO_02の二点となり、以下のように設定いたしております。
①DO_01を始点から30mmの位置でONにする
②DO_01を終点から30mm(=始点から70mm)の位置でOFFにする
③DO_02を移動経路全体の50%( 100mm×0.5=50mm )の位置でONにする

実際の設定画面と移動量に対するトリガーの位置関係です。

上記の設定で実行した場合の移動量とDO_01, DO_02のOFFの変化は以下になります。

 

DO_01はP1からP2へ移動する間に始点から30mmでON、終点から30mm(=始点から70mm)でOFFに切り替わります。
DO_02はONのままP2に到着します。

 

 

 

 

Move to target point(With offset):基準点から指定した距離の移動

解説:直交座標における距離を指定することで、基準点から目標地点へ任意の距離を移動することができます。(デフォルトの基準点は現在の位置に設定してあります。)

・移動の軌跡の種類にはRelMovJとRelMovLが存在します。

MovJ:非線形運動によるアームの移動 MovL:直線運動によるアームの移動

・基準点は事前にポイントリストに保存した点からも選択が可能です。

※直交座標における距離の単位は[mm]です。

 

Circle motion:現在地点と2点を結ぶ円運動

解説:中間点と目標点を指定することで、現在地点、中間点、目標点の3点を結ぶ円運動を行います。

・中間点および目標点はポイントリストに保存した点から選択が可能です。

・円運動を繰り返す回数の設定もできます。

 

Arc motion:現在地点から目標点へ円弧運動による移動

解説:中間点と目標点を指定することで、現在地点から中間点を通り、目標点へ到達するように円弧を描く運動をします。

・中間点および目標点はポイントリストに保存した点から選択が可能です。

※Circle motionの動きをもとにしているため、見かけ上では円弧の運動が可能であっても、円運動で考慮した際に(図の下部分)

稼働範囲外になる点を設定している場合はエラーが生じます。

 

set joint acceleration percentage:非線形運動時の加速度比の設定(joint accel ratio)

左図:MG400  , 右図:CRシリーズ

     

解説:MovJやRelMovJなどの非線形運動の際の加速度比を(0~100%の範囲で)設定することが可能です。

 

set joint speed percentage:非線形運動時の速度比の設定(joint speed ratio)

左図:MG400  , 右図:CRシリーズ

解説:MovJやRelMovJなどの非線形運動の際の速度比を(0~100%の範囲で)設定することが可能です。

 

set linear acceleration percentage:直線運動や円弧運動の加速度比の設定(linear accel ratio)

左図:MG400  , 右図:CRシリーズ

解説:MovLやRelMovL、ArcやCircleなどの直線運動、円運動の加速度比を(0~100%の範囲で)設定することが可能です。

 

set linear speed percentage:直線運動や円弧運動の速度比の設定

解説:MovLやRelMovL、ArcやCircleなどの直線運動、円運動の速度比を(0~100%の範囲で)設定することが可能です。

※速度の設定方法については別の記事[MG400、CRシリーズの速度設定方法]でも紹介しておりますので参照ください。

 

Set CP ratio:動作中の経路の比率の設定

左図:MG400  , 右図:CRシリーズ

解説:ロボットが始点から中間地点を経由し終点まで移動する際に経由地点を直線で移動するか、曲線で移動するかを右図のように設定することができます。

・比率を(0~100%の範囲で)設定することができ、比率が高いほど曲線を描きます。

 

Sync command:プログラムの同期

左図:MG400  , 右図:CRシリーズ

 

解説:このコマンドが実行されると、それまでに流したすべてのコマンドが実行されるまで待ちます。その後、以降のコマンドを継続して実行します。

Sync()はこの命令前までに指示したロボットに動きに関連する命令をすべて実行するまで次の命令に進まないよう
待ち合わせるための命令です。
例えばDIの値を読み取る命令や現在位置座標を取得する命令はプログラムが読み込まれた時点で即時実行されてしまうため、
ロボットが移動してから取得したいそれらの値を移動完了前に取得します。
それらの命令の直前にSyncを使用することで、直前までのロボットの動きの命令が完了後に値を読み取ることになるので、
意図したように動作できるようになります。
例:P1へ移動後にPLCからのデジタル信号がくるまで次の命令に進まず待機するプログラム
MovL(P1)
Sync() –ここにSyncがないとMovL(P1)の実行中もDIに1が入ってるかどうか確認している
while(DI(1)=!1) do
   Sleep(100)
end

 

3-2. シリーズ別の移動コマンド

3-2-1. MG400の移動コマンド
Jump motion:現在位置から目標位置までアーチ状を描く移動

解説:現在地点からh1[mm]だけ垂直にアームを上げ、z_limitの高さでxy平面移動してアーチを描き、垂直にh2[mm]下降して目標地点Pに移動します。

・目標点はポイントリストに保存した点から選択が可能です。

①現在地点からh1[mm]分(a点まで)垂直にアームを上げる。

②最大高さz_limit[mm](b点)まで非線形運動で移動する。

③直線運動で目標点方向(c点)に移動する。

④目標点Pのh2[mm]分上の高さの点(d点)まで非線形運動で移動する。

⑤目標地点Pまで垂直に下降する。

 

Jumpパラメータの設定方法について

Jumpパラメータのうち、z_limitは設定によりエラーが発生する可能性があります。
z_limitのパラメータは「Aの点からどれだけ上に移動するか」の相対的な高さZの値ではなく、
「どの高さでxy平面移動して点P上空へ移動するか」を指定する絶対的な高さの値です。
ここで指定したz_limitの高さで指定した移動先の座標Pの上空まで移動します。

例えば、現在位置A(300, -50, 50, 0)から目標点P(250, 50, 50, 0)の移動のため(h1,h2,z_limit)=(25,25,100)のパラメータを設定した場合を考えます。

a = (300, -50, 75, 0) -> a_z = A_z + h1 = 75
b = (_, _, 100, 0) -> zはz_limit
c = (_, _, 100, 0) -> zはz_limit
d = (250, 50, 75, 0) -> d_z = P_z + h2 = 75

b,cのx,yはh1とz_limit, h2とz_limitの関係により自動計算されるため、空白としていますが、
A_z + h1 ≧ z_limit の場合は a=b
P_z + h2 ≧ z_limit の場合は c=d となります。
今回の例の場合は (h1,h2,z_limit) = (50,50,100)とするとa=b,c=dとなるため、角を切るように動きます。

また、z_limitは移動前A・移動後PのいずれのZの値よりも高い座標値で設定する必要があり、
A_z + h1 > z_limit または P_z + h2 > z_limit の場合はエラーとなります。

 

 

Jump motion(with preset jump parameters):現在位置から目標位置までアーチ状を描く移動(事前にパラメータを設定)

解説:現在地点からアーチ状を描き、目標地点Pに移動します。

・目標点はポイントリストに保存した点から選択が可能です。

・Jump motionでは直接パラメータを設定するのに対し、Jump motion(with preset jump parameters)では事前にh1,h2,z_limitを設定し、Indexの選択をします。

Setting → Motion Parameter → Jump Settingから設定が可能です。

 

Control aux joint motion:スライダーレールの制御

解説:Process → Aux Jointからインストールをし、設定を行うことでスライダーレールを制御できるようになります。

・設定した角度または距離分だけスライダーレールを動かします。(Aux Joint内のAdvanced Settingで設定した動作種類に依存します。)

joint:ジョイント(単位は[°]) linear:リニア(単位は[mm])

・移動時の速度比及び加速度比を設定することが可能です。

・Syncコマンドの有無を設定することができます。(Sync command参照)

 

3-2-2. CRシリーズの移動コマンド
Joint offset motion:現在位置から指定した角度の移動

解説:関節座標における角度を指定することで、現在地点から各軸ごとに任意の角度分移動することができます。

※関節座標におけるパラメータの単位は[°]です。

 

Trajectory playback:保存したロボットの軌跡の再生

解説:CRシリーズにある軌道再現機能を用いて保存した軌跡のファイルを選択することで、任意の軌道を再生することができます。

・再生時の速度を「等速、0.25倍速、0.5倍速、1倍速、2倍速」から選択し、設定することが可能です。

 

随時更新中