こちらは2020年9月にリリースされた、DobotStudio2020の紹介記事です。本稿では新機能となるユーザー座標系(User coordinate system)およびツール座標系(Tool coordinate system)の概要をご紹介いたします。
興味がございましたら、ぜひダウンロードセンター
https://www.dobot.cc/downloadcenter/dobotstudio2020.html#most-download
より入手した上でご体験ください。
どういった機能か
Dobot M1では点の位置指定に関して、各アームの回転角や高さによって表すジョイント座標系(Joint coordinate system)および本体を基準としたデカルト座標系(Cartesian coordinate system)の2種類があります。
ユーザー座標系とは、上記のデカルト座標系を水平移動、z軸中心に回転させた独自の座標系を設定する機能です。
ツール座標系とは、アーム先端のアタッチメントの形状を考慮した、Dobot M1の「指先」に関する座標系を設定する機能です。
いずれの機能も、動かした先の点を基準とした動作を行いたい時や、本体の座標に沿わない方向で作業を行う時などに効果を発揮します。作業スペースや環境に合わせた設定を行うことで、アーム動作のプログラムにおいてより直感的な位置指定ができるようになります。座標変換の手間が煩わしい!という方にやさしい機能です。
どのように使うか
ユーザー座標系およびツール座標系の設定は、
メニューバーのSettingsクリック->Coordinate Systemタブ選択
により行えます。
ユーザー座標系の設定
Settingsウィンドウ上部のUser Frameタブが選択されていることを確認します。
ここでは、設定したユーザー座標系の名称と原点位置を一覧で管理できます。(デフォルトではDobot M1本来のデカルト座標系が “user0” として設定されています。)
新たなユーザー座標系を追加する際は、右上の “Add” をクリックします。
ユーザー座標系では原点となる位置P0およびx軸の単位ベクトルにあたる点の位置P1を指定し、元のデカルト座標系をxy平面に沿って平行移動させたり、z軸について回転させたりした座標系を設定できます。
このときのP0およびP1は、 “obtain” ボタンにより現在のアーム位置を取得することで設定します。手作業で正確にアームを動かすのは困難を伴うので、DobotStudio2020で追加されたポイントリスト機能を活用しましょう。
P0やP1に設定する点をあらかじめリストに追加、ポイントリストから記録した点の行をダブルクリックし “RunTo” ボタンを押すことで、指定位置にアームを移動することができます。(下図の例では、元のデカルト座標系における(x, y)=(320, 33)を原点とし、z軸中心として反時計回りに45°回転させたような座標系を定義しています。)
ここで設定したユーザー座標系はデフォルトでは “user1” という名前で保存され、操作パネル等から選択できるようになります。
例えば、User Frameに “user1” を選択した状態でx方向やy方向にアームを操作すると、先ほど設定した座標系に沿った動きをすることが確認できます。
ツール座標系の設定
同じSettings画面のCoordinate Systemタブから、ウィンドウ右上のTool Frameタブをクリックすることで、ツール座標系の設定画面に移ることができます。設定方法や利用方法はユーザー座標系の場合と同様です。
ここで設定したツール座標系はデフォルトでは “tool1” という名前で保存されます。(アタッチメント接続部を基準とした座標系は “tool0” としてはじめから設定されています)
動作例
以下ではユーザー座標系を例に、動作確認を含めた単純なプログラム(下図)の内容を見ていきます。
このプログラムでは点P1を基準として、
- 元のデカルト座標系にしたがってL字移動(x軸正方向に移動→P1→y軸正方向に移動→P1)を3回
- 新たに設定した座標系にしたがってL字移動を3回
といった動作を行います。
Teach & Playbackで動作を指示する際は、入力している位置がどの座標系にしたがうものか、表記されている名称を確認するようにしましょう。
BlocklyやPythonスクリプトによるプログラミングでは、 “Set User Coordinate” などの対応するAPIから座標系の設定を行います。
ユーザー座標系およびツール座標系の紹介は以上です。公式ページによると、DobotStudio2020ではこのほかの新機能として
- ポイントリスト(Points list)
- 入出力エイリアス(I/O alias)
- パレット(pallet)
を挙げています。各機能に分けて紹介記事を作成しておりますので、あわせてご覧ください。