Robot Programlama Dilleri



Benzer belgeler
PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Java Temel Özellikleri

Bilgisayarda Programlama. Temel Kavramlar

1.1. Yazılım Geliştirme Süreci

ALGORİTMA VE PROGRAMLAMA I

BİT in Temel Bileşenleri (Yazılım-1)

Ünite-3 Bilgisayar Yazılımı.

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Dr. Fatih AY Tel: fatihay@fatihay.net

MatLab. Mustafa Coşar

4. Bölüm Programlamaya Giriş

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

C# nedir,.net Framework nedir?

JAL IN İNTERNET TEN İNDİRİLMESİ VE KURULMASI

MONTE CARLO BENZETİMİ

MPLAB IDE v7.60 PROGRAMI KULLANIMI

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

C++ Dersi: Nesne Tabanlı Programlama

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v Mustafa Atanak Sefai Tandoğan Doç. Dr.

Programlama Dillerinde Kullanılan Veri Tipleri

BİL-142 Bilgisayar Programlama II

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Program Nedir?(1) Programlamaya Giriş

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Programlama Dilleri II. Bilgisayar ve Öğretim Teknolojileri Öğretmenliği

Algoritma ve Akış Diyagramları

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Bilgisayar Programlama. 1.Hafta

NX Motion Simulation:

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

PROGRAMLAMA DERSİ 1. İNTERNET

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Bilgisayar Yazılımları

C# ile NJ Simulatöre Bağlanmak

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

PROGRAMLAMA TEMELLERİ

Bölüm1. İlk Bilgiler ISBN

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

Bilgisayar İşletim Sistemleri BLG 312

SAB 103 TEMEL BİLGİSAYAR KULLANIMI

İçerik. TBT 1003 Temel Bilgi Teknolojileri

Üst Düzey Programlama

İŞLETİM SİSTEMLERİ. (Operating Systems)

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

İnternet Programcılığı

Öğr. Gör. Serkan AKSU 1

Yazılım Mühendisliği 1

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT

Bilgisayar Programlama Dilleri

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

AOSB 2017 EĞİTİM PROGRAMI

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Kurulum ve Başlangıç Kılavuzu. DataPage için

AVATARLARIN KULLANILABİLECEĞİ ALANLARA ÖRNEKLER

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

Synergi Boru Hattı Simülatörü

TEMEL BİLGİTEKNOLOJİLERİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

PHP ile İnternet Programlama

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

Kaspersky Open Space Security: Release 2. İşletmeniz için birinci sınıf bir BT güvenliği çözümü

SolidWorks Macro, SolidWorks API. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Temel Bilgisayar Programlama

Veritabanı. Ders 2 VERİTABANI

2 Temel Kavramlar (Devam) Veritabanı 1

SAYISAL KONTROL 2 PROJESİ

PLC (Programlanabilir Kontrol Cihazı) TABANLI SİSTEMLERİN İNTERNET ÜZERİNDEN İZLENMESİ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Üst Düzey Programlama

BSOFTefat E-FATURA ÇÖZÜMÜ

BİLGİSAYAR ORGANİZASYONU

Linux Assembly Programlamaya Giriş

Akademik Rapor Hazırlama ve Yazışma Teknikleri

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

AVRASYA UNIVERSITY. Dersin Verildiği Düzey Ön Lisans (X ) Lisans ( ) Yüksek Lisans( ) Doktora( )

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

2. SCADA PROGRAMI. TEOS' un size sunduğu bir çok hizmet içerisinde en önemlilerini şöyle sıralayabiliriz:

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Temel Bilgi Teknlolojileri 1. Ders notları 5. Öğr.Gör. Hüseyin Bilal MACİT 2017

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

BLG 1306 Temel Bilgisayar Programlama

Kablolu Şebekelerde Şeffaflık Birleştirilmiş Denetleme Sistemi BDS

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Transkript:

Robot Programlama Dilleri Onur Kardeş July 2, 2001 Contents 1 Giriş 1 2 Robotscript 2 3 ARAC 2 4 AML 3 5 RoboML 3 6 NQC (Not Quite C) 3 7 Onika 4 8 REXX 4 9 Behavior Language (Davranış Dili) 4 1 Giriş Robotların kullanım alanlarının genişlemesi ve yazılım teknolojisinin gelişmesi; belli bir amaç için yapılan robotların, o amaç doğrultusunda programlanması ihtiyacını beraberinde getirdi. Bu nedenle, değişik firmalar, ürettikleri robotlar için farklı yazılımlar geliştirdiler ve kullandılar. Günümüzde robotlar için yapılan yazılımlar artık ayrı birer ürün değil; robotların birer parçası haline geldiler. Robot yazılımı üreten şirketler öncelikle simülasyonlar üzerinde çalışırlar. Buna off-line programlama denir. Robot üretilmeden önce, yazılım aşamasında, hareketleri, hangi şartlarda ne tür tepkiler vereceği, öğrenme kabiliyeti gibi 1

özellikleri önceden bilgisayar ortamında off-line programlama tekniği ile test edilir. Robot yazılımlarında programın çalışma süresi genellikle öncelikli öneme sahip değildir. Robot programcıları daha çok, ürettikleri programın robota minimum sayıda yükleme gerektirmesini amaçlarlar. Bu sebeple, off-line programlama aşamasında üretilen programın tam olarak isteneni yapabilmesi hususu ele alınır. Off-line robot programlama ve simülasyon robot modellerinin simülasyonunun mümkün olduğu durumlarda robot programlarının yapımına yardımcı olmaktadır. Robot programları, gerçek robota yüklenip çalıştırılmadan önce simülatörler aracılığıyla test edilirler. Bunun esaslı amaçlarından biri de programdaki olası hatalar yüzünden robota ya da çevredekilere zarar gelmesini engellemektir. Ayrıca off-line programlama robot teknolojisi kullanan birçok fabrikada önemli ölçüde maddi kazanç sağlamaktadir; çünkü çalışma sırasında meydana gelebilecek hatalar da, büyük robotlar yerlerinden çıkarılmadan, simülasyon yardımıyla görülebilmekte ve düzeltilebilmektedir. Robotlar genellikle birbirleriyle ilişkili bir şekilde hareket eden birçok kısımdan ve aralardaki bağlantılardan oluşur. Bu bağlantıların sayısı çoğu zaman robot hareket derecesine (degree of freedom) eşittir. Robot programlaması ve simülasyonunda karşılaşılan en büyük problemlerden biri robotun hareket eden kısımlarının çevreye ve robotun bağlantılarına göre nasıl yönlendirileceğidir. Ve bu değerler genellikle matematiksel olarak gösterilir ve hesaplanır. Forward ve Ters (Inverse) Kinematik, robotun bağlantı açıları verildiğinde parçalarının yerini; veya robotun hareket edebilmesi için gereken enerjiyi bulmak için kullanılır. İyi bir robot simülasyon programı, gerçek robotun yapabileceği herşeyi simüle edebilmelidir. Şimdi önemli birkaç robot programlama dilini tanıyalım: 2 Robotscript Robotscript Evrensel Robot Denetimcisi (Universal Robot Controller) tarafından kontrol edilen bütün robot modellerini sanal olarak programlamak için kullanılır. On-line olarak Windows NT istasyonlarında ya da off-line olarak Windows yüklü herhangi bir PC de kullanılabilir. Robotscript grafiksel kullanıcı arabirimi (GUI) ile kullanıcıya kolaylık sağlar ve hata olasılığını azaltır. Ayrıca Yazılım Geliştirme Paketi yardımıyla her türlü kullanıcı için farklı arayüzler tasarlanabilir. Robotscript makro benzeri bir robot programlama dilidir ve ActiveX programıyla beraber çalışır. Microsoft Visual Basic programı kullanılarak geliştirildiği için, Micorosoft C++ ya da Microsoft Office programlarıyla beraber kullanılabilir. Windows ortamına uyumlu olması, programcıya kendi yazılımlarını geliştiriken, robota bilgi yüklerken veya alırken önemli kolaylıklar sağlar. Robotscript program paketi 4 parça yazılımdan oluşmaktadır: Robotscript ActiveX Kontrolü, ERD kontrol ekranı, dosya yaratıcısı ve yazılım denetimcisi. ActiveX parçası Robotscript yazı dosyasını robot hareketlerine çevirir. İkili bilgi 2

(Binary data file) dosyası kullanılmadığı için yazılan programları çalıştırmak için derlemeye gerek yoktur. Kontrol ekranı kullanıcının programları çalıştırmasını sağlar. Yazılım Geliştirme Paketi sayesinde son kullanıcı kendi amaçlarına uygun arayüzler geliştirebilir. Dosya yaratıcısı programcının Robotscript programına hareketlerin noktasal pozisyonlarını girmesini sağlar. Burada mevcut olan Sihirbazlar, sağladıkları grafiksel yardımla kullanıcının kompleks hareketleri kolay bir şekilde çözümlemesini sağlar. Yazılım denetimcisi ise yazılan programı test etmek için kullanılır. 3 ARAC ARAC (Aritmetik Robot Uygulama Denetimi) yazılımı birçok esnek üretim sisteminin çekirdeğini oluşturur. Sistem, basit off-line programlama istasyonu olarak kullanılabilir; ve genelde ilk seferde doğru çalışan ve ekstra ayar gerektirmeyen programlar üretilir. Programlamanın yanında, işlem parametrelerini değiştirerek işlemleri on-line olarak birleştirmekte ya da kesmekte de kullanılabilir. Uygun bir dizi işlemci yardımıyla, ARAC sistemi tamamen otomatik çalışır. Kullanıcı girişi gerektirmeksizin yeni robot programları üretip bunları bağlı olan robot sistemleri üzerinde çalıştırabilir. Ayrıca eklenebilen ekipmanları sayesinde yardımcı robot elemanlarını da kontrol edebilir. 4 AML Hareketi tanımlayabilen bir program ya pozisyonu ya da zamanı referans alır. Bundan 30 sene önce yazılan programlardan G Code pozisyonu; Ladder Diagram zamanı referans alan programlara örnektirler. Ancak gerçek bir çözüme ulaşabilmek için bu iki değeri kaynaştırmak gerekir. AML programlama dili bu sorunu Event Processing Method yardımıyla çözdü. Ayrıca Drive Train methodu ile denetim senkronizasyonu ve çoklu eksen yönetimi kolaylıkla yapılabilmektedir. AML, PASCAL benzeri yüksek seviye bir programlama dilidir. Temel sentaksı diğer yüksek seviye programlama dillerine benzer. Program, PASCAL daki gibi Begin ve End komutları arasına yazılır.ancak AML nesneye yönelik (object oriented) bir programlama dilidir. Nesne, bilgi üyeleri ve metodlardan oluşan program bloklarıdır. AML, prensip olarak son kullanıcılara yeni bir nesne tanımlama izni vermez. Bunun temel amacı tecübesiz son kullanıcıların da kolaylıkla ve güvenle denetim programları yazabilmeleridir. 5 RoboML Bazı robot programlama dilleri internet aracılığıyla insan-robot etkileşimini sağlamayı amaçlamaktadır. Ancak burada eşzamanlı iletişim için gerekli olan yüksek kaliteli bağlantı, alıcıdaki (client) programın uyumluluğu gibi bazı sorunlar çıkmaktadır. Bunun için XML bazlı bir dil olan RoboML kullanılmaktadır. 3

Ancak RoboML, insan robot etkileşimi, vasıta (agent) haberleşmesi, bilgi temsili gibi konularda diğer XML bazlı dillerin sorunlarını aşamamıştır. 6 NQC (Not Quite C) NQC, Lego RCX programlaması için kullanılan basit bir programlama dilidir. NQC dilinin önişlemci ve kontrol yapıları C diline oldukça benzer. NQC, genel kullanım amaçlı olmaktan oldukça uzaktır; nitekim gerçek hayattaki koşullardan kaynaklanan sınırlamalar ve RCX ortamının kendisi hakkında detaylı bilgi eksikliği bulunmaktadır. Tipik bir NQC programı görevlerden (tasks) ve subrutinlerden oluşur. İlk görev, program başladığında otomatik olarak çalışır; diğer görevler program tarafından başlatılır. Subrutinler, görevler arasında paylaşılır. NQC derleyicisi, RCX hakkında çok az bilgiye sahiptir. Ses çıkarma, veriyi okuma gibi birçok RCX fonksiyonu rcx.nqh dosyası eklenerek kullanılabilir; ve bu dosya derleyici tarafından otomatik olarak eklenir. 7 Onika Onika, ikonik olarak programlanmış bir insan-makine arayüzüdür. Gerçek zamanlı bir işletim sistemi ile beraber, yeniden kullanılabilir kod yaratılabilmesini sağlar. Onika, hem mühendisler, hem de son kullanıcılar için uygun çalışma ortamı sağlar. Mühendisler için, gerçek zamanlı yazılım modüllerini simgeleyen ikonlar, birleştirilip, gerçek zamanlı işler oluşturulabilir. Bu modüller arasındaki bağlantılar otomatik olarak oluşturulur. Değişik pencerelerde, kullanılan işletim sisteminin o anki durumu, sistem değişkenlerinin değerleri gibi bilgiler kullanıcıya gösterilir. Onika nın oluşturulan işlerin setaks olarak doğruluğunu ve eksiksiz olduğunu göstermesinden sonra, yüksek seviye son kullanıcılar için, yaratılan bu işler ikon haline getirilebilir.onika, hiperlinkler vasıtasıyla, başka sitelerdeki yazılım modüllerini getirebilir ve kullanabilir; ve bunlar daha önce lokal olarak hazırlanan modüllerle birleştirebilir. 8 REXX REXX, Michael Cowlishaw tarafından dizayn edilmiş bir programlama dilidir. Michael in kendi kelimeleri ile; REXX, programların ve algoritmaların açık ve yapısal bir şekilde yazılabilmesini sağlayan yordamsal (procedural) bir programlama dilidir. REXX diğer programlama dillerinden çok farklı değildir. İşte basit bir örnek: /* Sayı Sayma Programı */ say "Sayıyor..." do i = 1 to 10 4

say "Sayı" i end REXX i diğer birçok dilden ayıran özellik ise sıradan uygulama programları tarafından makro dili gibi kullanılabilecek şekilde tasarlanmış olmasıdır. Buradaki düşünce, uygulama geliştirenlerin kendi makro dillerini ve yorumlayıcılarını (interpreter) dizayn etmek zorunda kalmamalarıdır. Bir REXX makrosu çözemediği bir ifade ya da fonksiyonla karşılaştığında, kontrolü uygulamanın kendisine verir. Uygulamanın, sadece kendisine özgü özellikleri desteklemesi yeterlidir; bu durum, uygulama geliştiricisini oldukça sıkıcı ve zaman alıcı bir iş olan dil yorumlatıcısı yazma zorunluluğundan kurtarır. 9 Behavior Language (Davranış Dili) Davranış Dili, kurala dayalı, gerçek zamanlı, paralel bir robot programlama dilidir. Gerçek zamanlı kurallar, davranış dilinin anahtarını oluşturur. İfadeler, alışılmış Common Lisp sentaksındadır. Davranışlar, değişik planlar tarafından çalıştırılabilir kural gruplarıdır. Veri yapıları davranışlar arasında paylaşılmaz; bütün mesaj geçişleri açık olarak yapılır. Bütün kuralların paralel ve eş zamansız olarak çalıştığı varsayılır. Davranış Dili oluşturulması, AFSM(Geliştirilmiş Sonlu Durum Makinesi) leri daha kullanışlı gruplara ayırarak, aynı anda bir grubu aktif ya da inaktif hale getirme ihtiyacından kaynaklandı. Aslında AFSM ler açıkça kullanılmaz, gerçek zamanlı kuralların oluşturduğu kural kümeleri, bire-bir AFSM lerde derlenir. Davranış derleyicisi ortamdan bağımsız olarak çalışıp, AFSM normlarına uygun ara bir dosya oluşturur. Daha ara derleyici değiişk hedefler için kullanılır. Burada ara derleyicinin Davranış Dili ni desteleyebilmesi için çeşitli geliştirmeler yapılmıştır. Davranış Dili, genel olarak Lisp dilinin alt kümesi olarak yazılmış ve birbirine paralel olarak çalışan gerçek zamanlı bir kurallar kümesidir. Kullanılan bütün derleyiciler Common Lisp dilinde yazılmıştır. 5