ロボットティーチング

ロボットティーチングとは産業用ロボットのプログラムを作成する方法です。

関節ロボットのイメージ

みなさん、よくテレビで見る工場の関節ロボットはどのように動作していると思いますか?

それはロボットティーチングと呼ばれる作業で作成したプログラムで動作しています。

筆者は最初、ロボットティーチングとは馬の調教みたいにロボットを動かしながら位置を覚えさせれば 勝手にロボットが覚えて動く物だと思っていました。

(プログラムは関係なしだと思っていました。)

しかしながら、実際の現場ではプログラムを組んで動作させています。 PLCやパソコンとの通信で動作させる場合が多いからです。

百聞は一見にしかずということで、プログラムを見てもらいます。(今回はDENSOのロボットを参考にします。)


Sub Main
  
  Dim pCurPos As Position
  
  TakeArm Keep = 0

  pCurPos = CurPos  '現在位置を代入

  '現在位置からP(740, 0, 480, 180, 0, 180)の座標位置へ移動
  Move P, P( 740, 0, 480, 180, 0, 180, -1 )

  IF IO123 = 1 THEN 'IO123がONならば
    
    'P[5]の座標位置からアプローチ方向に15mm離れた位置へ速度90%で移動
    Approach P, P[5], 15.0, Speed = 90
    Move P, @P P[5], Speed = 30
    Move L, @E P[5], Speed = 30

    Depart P, 70  '現在位置から70mm離れた位置へ移動 '

  END IF

End Sub

このプログラムはDENSOオリジナルのPAC言語で書かれています。

って、これVisualBasicそのままじゃんと思う方も多いのではないでしょうか。

学習難易度を下げるため、VisualBasicとロボットコマンドをパック(ひとまとめ)したのではないでしょうか。

(PAC言語だけに。。。。ファボゼロのボケすんな!!)

※ファボゼロが分からない方はこちらの動画をどうぞ。
【東大生YouTuber大集合企画】ファボゼロのボケで遊ぼう

。。。ということで、上記のプログラムを参考にロボットの動作を説明します。

・ロボットプログラムの基本はMove!!

ロボットのアームをある座標まで動け!と命令するのがMove文です。

プログラム11行目の

Move P, P( 740, 0, 480, 180, 0, 180, -1 )

は、アーム軸座標(740, 0, 480, 180, 0, 180)に動けと命令しています。 アームは6軸ですので、6軸座標(X, Y, Z, Rx, Ry, Rz)で指定します。

※最後の-1はロボットの形態です。省略した場合は-1を指定。

なんと、この命令文だけでアームが動きます。ロボット賢い!!

・Move動作の補間には2種類ある!

Move命令文だけでアームが動くのですが、動く経路(補間)の命令には2種類あります。

  • PTP動作:ロボットが考えた最も効率的な経路を動く
  • 直線動作:次の場所まで線形経路で動く

■PTP動作はロボットが勝手に経路を決めますので、最悪予測しない動作でぶつかる危険性があります。 ぶつかる危険性がないときは効率がいいです。

Move Pで指令します。

■直線動作は部品を垂直に持ち上げ、次の場所まで移動する必要があるとき便利です。

Move Lで指令します。

・Move動作の通過モーションには3種類ある!

Move命令文で実際の目標値への通過方法には3種類あります。

  • @0:目標位置と一致した場合に停止
  • @P:目標位置から距離を置いた地点で停止
  • @E:目標位置と一致した場合に停止

※@0と@Eがどう違うか分かっておりません。

プログラム17行目、18行目のようにMove □, @Pのように指定します。

・P変数とは

プログラム11行目のようにプログラムの中でポイント座標を 指定することもできますが、 P変数(グローバル変数)で指定することもできます。

例えば、プログラム17行目、18行目のようにP[5]とすれば、 P5であらかじめ指定した座標を呼び出すこともできます。

※P[5]とP5は同じ意味です。なおローカル変数の配列はVBと同じく()です。注意!!

P変数はあらかじめ、ロボットを手動操作しながら座標値を読み込んでいきます。

・ApproachとDepart

プログラム16行目にあるApproach命令は、座標位置から指定幅離れた位置に移動する命令です。

プログラム20行目にあるDepart命令は、現在位置から指定幅離れた位置に移動する命令です。

・パレタイジング

パレタイジングとは、箱にまんじゅうを順番に並べるような動作をいいます。
よくテレビや工場で見るのではないでしょうか。

DENSOでは、Pallet.CalcPosで位置を算出・取得し、Moveします。

・他にもコマンドはたくさんある!!

上記、紹介した機能はほんの一部の機能であり、ロボットティーチングは大変奥深いものです。

電流制限等他にもいろいろできます。 プログラミングしだいでは、複雑な動作をさせることもできます。

DENSOに関しては会員登録(無料)すれば、マニュアルを誰でも取得できます。
デンソーロボットのマニュアル