Kanca
Şimdiye kadar üç robot diline baktın: RAPID, KRL, ve Mecademic'in metin komutları. Dördüncüsü hiç "dil" gibi görünmeyebilir — satır numaralı, teach pendant ekranında oluşturulan bir liste.
Ne oldu
FANUC'un teach pendant (TP) programları, bir metin editöründe yazılmaz; robotun kendi kontrol kutusuna bağlı el terminalinde, menülerden seçilerek satır satır oluşturulur. Sonuçta ortaya çıkan program şöyle görünür:
1: J P[1] 100% FINE
2: L P[2] 500mm/sec CNT100
3: J P[3] 80% FINE
J, RAPID'deki MoveJ ve KRL'deki PTP ile aynı işi görür: eklem
uzayında interpolasyon. L, MoveL/LIN ile aynı işi görür:
Kartezyen uzayda düz çizgi. P[1], P[2] gibi pozisyon verileri, diğer
dillerdeki robtarget/E6POS karşılığıdır — konumu ve kolun
konfigürasyonunu birlikte tutar. Bunlar programa aittir: P[n] yalnızca
içinde tanımlandığı TP programından görünür. FANUC'ta programlar arasında
paylaşılan global karşılıkları ayrı bir yapıdır ve PR[n] (position
register) diye yazılır — ikisi karıştırılmamalı.
Hız birimi harekete göre değişir: eklem hareketinde (J) hız, o
eklemin maksimum hızının YÜZDESİ (100%); doğrusal harekette (L) hız
doğrudan mm/sec olarak yazılır — çünkü doğrusal hareketin anlamlı
birimi uzayda kat edilen mesafedir, eklem yüzdesi değil. FINE tam
durma (diğer dillerdeki fine/C_DIS yokluğu), CNT100 ise bir
sonraki harekete ne kadar "yuvarlanarak" geçileceğini belirten bir
harmanlama (blending) değeri — RAPID'deki zXX ve KRL'deki CONT
ile aynı fikir, farklı ölçek.
Gerçek dünyada
Dört yaklaşımı aynı satırda karşılaştırınca, hepsinin ÇÖZDÜĞÜ problem aynı: hangi noktaya, hangi yoldan, ne hızda, nasıl durarak gidileceği. Farklı olan, bu bilginin nerede yaşadığı.
| Sistem | Hedef verisi | Eklem hareketi | Doğrusal hareket | Program nerede yazılır |
|---|---|---|---|---|
| ABB RAPID | robtarget (trans+rot+robconf) | MoveJ | MoveL | Metin dosyası (modül) |
| KUKA KRL | E6POS/FRAME (.dat) | PTP | LIN | İki ayrı dosya (.src + .dat) |
| Mecademic | Komut argümanı içinde | MoveJoints | MoveLin | ASCII metin komutu (soket) |
| FANUC TP | P[] kaydı | J | L | Teach pendant, satır numaralı liste |
Bu tablo aynı zamanda şunu gösteriyor: bir robotik mühendisinin "Python biliyorum, yeter" demesi neden yetmiyor. Bir hücrede ABB, bir başkasında FANUC varsa, aynı kavramı (eklem hareketi mi Kartezyen hareket mi) dört farklı sözdiziminde ifade edebilmen gerekiyor.
Teach pendant yaklaşımının sınırı. Son sütun masum görünüyor ama pratikte en çok fark yaratan yer orası. TP programı robotun başında, elde tutulan bir cihazla oluşturulur — yani programı yazmak için robotun yanında olman ve genelde onu üretimden almanı gerekir. Program metin dosyası olarak yaşamadığı için sürüm karşılaştırması, kod incelemesi ve "iki hafta önceki hâliyle farkı ne" sorusu, metin tabanlı dillerde sıradan olan araçlarla yapılamaz. Bir sonraki ders tam bu sınırı aşmaya çalışan yaklaşımı ele alıyor.
Dene
Sonraki
Bu dört dilin hiçbiri robotu ilk kez programlarken üzerinde YAZILMADI — hepsi önce bir simülasyonda veya çevrim dışı bir ortamda denendi. Sıradaki ders bunun neden standart bir pratik olduğunu anlatıyor.