みんなさん、こんにちわ。今回はもう少しRoboDKのReference Frameについて話ししたいと思います。Frameの説明するにはRobotなどいらなくてもよいので、そのままはじめさせていただきますね。理論がわかればすごく便利なもので。ではまず新しいプロジェクトを作成します。
Reference Frame?
Reference FrameはあるObjectはどかのObjectの関係を定義することができます。自分のPositionや座標など。そのObjectは単なる箱でも、Robotでも、それかほかのReference Frameでもよいのです。すべてのOffline Programming ApplicationsはそのReference Frameを使用しObjectを定位する必要があります。
he relationship of one reference frame with respect to another reference frame is also known as pose (position and orientation). A pose can be represented by the XYZ position and Euler angles for the orientation, by the XYZ position and Quaternion values or by a 4×4 matrix.
ではまずReference Frameを一つを追加してみましょう。
Default上でRoboDKはXYZのように位置を表示し、Euler AnglesのX➔Y➔Zに対応します。
つまり、
X Axisの回転は青い色のFieldです。
Y Axisの回転はピンク色のFieldです。
Z Axisの回転は黄色のFieldになります。
FANUCとMotomanのControllerは同じFormat使っていますが、場合によってメーカは違うかもしれないので注意してください。
*Default上でRoboDKが自動的選択してくれます。
Parents?Child?
Frame追加されてみます。いまStationの下にFrame 1がありますね。
この状態はStationが親(Parent)でFrame 1が子分(Child)になります。
そしてFrame1を選んでた状態さらにReference Frameを追加するとこうになります。
この状態はStationが親(Parent)でFrame 1が子分(Child)になり、そしてFrame1はFrame2の親になりますね。
次はFrame 2の下にCubeを一つ追加します。
このCubeは?もちろんFrame 2の子分になりますね。
Basic1
そうすると、Frame 2がどんなだけ移動しても、親のFrame1に影響がありません。
それはReference Frameの基本1です。
Basic2
次はもう1一つのFrameとCube追加します。
それは基本その2です。Fram2とFrame3共にFrame1の子分ですが、独立したものなのでお互い座標変えてもなにも干渉はしません。
Basic3
基本その3です。Fram1(つまりFrame2 とFrame3の親)が座標変わると、Frame2とFrame3も相対で変わります。
Example
次はExampleから説明しますね。
ABBのロボットがあり、その手前にはTableがあり、さらにTableの上に8つのPlateがあります。
Frameの構成から見ますと、MyTableはABBロボットのTableのFrameで、そして中にもうひとつFrame 4があり、そのFrame4は8つのLogo plateに親です。
ちなみに、すべてを選んでRename Groupすると、まとめに名前つけすることができます。
RenameのPop upが出てきます。
そこでPartsの名前のベースを定義します。
ここでPlate_にしますね。
そうすると、Plate_1,Plate_2…のように自動的番号振り分けてくれいます。
もしTableがなにかの理由で場所を変更する必要あれば、そのままTableのReference Frameを移動すれば、Tableの子分Plateも相対的移動します。
もちろん、PlateのLogoの座標だけ変更するにもできます。
Frameの概念慣れたら、Tableが増えても簡単です。