ロボットティーチング

ロボットティーチング（Robot Teaching）とは、産業用ロボットのプログラムを作成する方法である。単にティーチングと言うことが多い。教示、教示作業とも言う。

概要
産業用ロボットのプログラムはティーチングによって作成される。
産業用ロボットはティーチングによって「記録」された動作を「再生」することで作業を行う。
これをティーチングプレイバックといい、この機能を持つことが産業用ロボットの定義の一つとなっている。

ティーチングを行う技能者のことをティーチングマンという。
ティーチングマンは労働安全衛生法により、特別な教育を受けることが義務付けられている。

ロボットの場合、XYZ座標を見てもロボットの姿勢は分からない。
また、ロボットは各種のセンサーや条件判断を行うので、頭の中だけでプログラムの動作をイメージするのは容易ではない。
そのため、CNCのようにテキストエディタだけでプログラムを作ることは事実上不可能である。
さらに、ティーチングを行うには現場のロボットを使う必要があり、そのためには生産ラインを止めなければならない。
その経済的負担は少なくない。
そのため最近では3DCGを使ったオフラインティーチングも良く行われるようになっている。
ダッソー・システムズ社のDELMIA IGRIPやテクノマティクス社のROBCADやCompucraft社のRobotWorksなど、ロボット工程をあらかじめシミュレーションし、ティーチングに応用するソフトウェアも存在する。

ロボットのプログラム言語 
ロボットはプログラムを実行することで作業を行う。
ロボットのプログラム言語はメーカーごとに開発されており、互換性は無い。
しかし、多くのロボットで「X=100 Y=50」というNCに似た記述が可能になっている。
ただしNC言語に似ていても、NC制御をしているわけではない。

プログラム例:
MOVJ X=100 Y=50 Z=0 A=0 B=45 C=30	//各軸動作でX=100 Y=50 Z=0に移動。ABCはツールの角度。
MOVL X=200 Y=80 Z=11 A=0 B=30 C=0	//直線補間でX=200 Y=80 Z=11に移動。ABCはツールの角度。

直線補間で移動すると、ツールの移動経路は直線になる。NCの「G1」に相当する命令である。
各軸動作というのはそれぞれの関節が協調せずに動作する。NCの「G0」に相当する命令である。
移動命令としては他に、円弧補間、曲線補間、相対値移動などがある。

NCのように座標を指定する言語のほかに、エンコーダの値をそのまま記述するプログラム言語を持つロボットもある。コリジョンが出ないメリットがあるが、人間には分かりにくい。

プログラム例:
MOVJ J1=EF34 J2=77AB J3=44F3 J4=EEE1 J5=66F1 J6=1209	//各軸動作
MOVL J1=CF56 J2=90EE J3=5DCA J4=E609 J5=CADA J6=1A00	//直線補間で移動

ロボットのプログラム言語の特徴として、条件分岐命令が豊富に用意されていることがあげられる。BASICのような構造化が可能である。また、変数を使った移動や演算も可能である。

プログラム例:
IF PORT 11=1 CALL JOB41		//入力ポート11が1なら、プログラム41を実行
JUMP END			//プログラムの最後までジャンプ
JUMP LABEL 890			//ラベル890にジャンプ
SEARCH X=1			//X方向にサーチ
GOSUB LABEL 120			//ラベル120をサブルーチンコール
MOVL REG 5			//位置変数5に直線補間で移動

関連項目 
 オフラインティーチング
 産業用ロボット
 数値制御
 CNC

産業用ロボット
ロボット工学
オートメーション