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” ファイルを削除し、ロボットコントローラの電源を再立ち上げすることで、メモリ上のデータがクリアされます。