Dobot CR 輪郭制御設定方法

Dobot CRシリーズで輪郭制御を行うための設定方法を紹介します。

バリ取りや接着剤塗布など、CADデータなどから軌跡を生成し、ロボットの動作はさせたい場合に活用できます。

1. 輪郭制御座標入力用Jsonファイルの作成

\192.168.5.1(ロボットコントローラ)\project\process\trajectry フォルダへ輪郭制御用の座標群をJson形式で保存します。
今回はcontour1.jsonというファイル名で保存します。

Key:
 ”hand type” → 姿勢を表す配列(R, D, N, Cfg)を表す。
 ”point” → 輪郭を構成する点群を格納する配列を示す。
 ”P” → ロボットのデカルト座標(x, y, z, Rx, Ry, Rz)またはジョイント角度(J1, J2, J3, J4, J5, J6)を格納
 ”tool” → 動作を行うときのツール座標系情報を格納する。
 ”user” → 動作を行うときのユーザー座標系情報を格納する。

“P”に格納する数値は、ロボット動作プログラムコード(src0.lua)でのStartPath関数のオプション変数”IsCart=1″でデカルト座標系、”IsCart=0″でジョイント角度と判定されます。

{"handtype":[1,1,1,0],
"point":[{"P":[21.20975,-2.3049,-4.96818,180,10,-0.8236]},
{"P":[21.21188,-1.95138,-4.96818,180,10,0.13133]},
{"P":[21.20813,-1.59787,-4.96818,180,10,1.08626]},
{"P":[21.19848,-1.24447,-4.96818,180,10,2.04119]},
{"P":[21.18294,-0.89129,-4.96818,180,10,2.99612]},
{"P":[21.16152,-0.53841,-4.96818,180,10,3.95105]},
{"P":[21.13422,-0.18594,-4.96818,180,10,4.90598]},
{"P":[21.10106,0.16603,-4.96818,180,10,5.86091]},
{"P":[21.06203,0.5174,-4.96818,180,10,6.81584]},
{"P":[21.01715,0.86807,-4.96818,180,10,7.77077]},

~中略~

{"P":[21.168,-3.36457,-4.96818,180,10,356.31161]},
{"P":[21.1878,-3.01159,-4.96818,180,10,357.26654]},
{"P":[21.20172,-2.65834,-4.96818,180,10,358.22147]}],"tool":0,"user":2}

2. ロボット動作プログラムの作成

DobotSCStudioを立ち上げ、Scriptより任意のプロジェクトを作成、動作プログラムを作成します。
StartPath(fileName)関数により、輪郭制御を開始します。
fileNameにはtrajectoryフォルダへ保存したファイル名を代入します。

注意としては、StartPathが実行開始時点の座標がtrajectoryデータで入力されている最初の座標と一致させる必要があります。(異なる場合はエラーが発生します)

option変数 ”Multi”(0~1)は速度オーバーライド値、”isConst”(0 or 1)はTCP速度を一定化有効設定、”isCart”(0 or 1)は1でデカルト座標設定、0でジョイント角度設定となります。

local fileName ="contour1.json"

Go(P1) --contour1.jsonに入力されている最初の座標とP1に移動させる

StartPath(fileName,"Multi=0.1 isConst=1 isCart=1 ")

3. 不具合情報

下記不具合はFirmware バージョン3.5.6で解消されました

DobotSCStudio等のオペレーションアプリケーションやsdkなどで輪郭制御を含むプログラムを何十回か起動させると、輪郭駆動動作中にロボットがダンマリ停止することがあります。
一度発生するとそのあと起動させても再現します。

こちらは、輪郭制御の為のデータを高速に処理するため “Redis”という機能を使用していますが、輪郭制御動作を繰り返す度にメモリー上のデータが大きくなっていき、ある程度までいくと処理できなくなるようです。

復帰方法としては \192.168.5.1(ロボットコントローラ)\project\redis フォルダにある、”apendonly.aof” ファイルを削除し、ロボットコントローラの電源を再立ち上げすることで、メモリ上のデータがクリアされます。