PEMROGRAMAN ROBOT 1. 2. 3. 4.
Karakteristik level bahasa pemrograman robot Karakreristik level Tugas dalam pemrograman. Petunjuk Pengembangan program kendali robot Flowchart dalam pemrograman robot
Kendali : 1. Loop tertutup 2. Loop terbuka Mekanisme Servo : 1. Servo Posisi 2. Servo kecepatan Jenis kendali dengan umpan balik : 1. On-off / Bang-bang 2. Proporsional 3. Integral 4. Derivatif 5. Kombinasi Kendali : 1. Non servo a. Ciri : Hardware stop dan end stop b. Keuntungan : Pengulangan tinggi, kecepatan operasi tinggi, biaya rendah. 2. Servo a. Ciri : gerakan halus (smooth) dan software stop b. Keuntungan : dapat menyimpan banyak program, tidak dapat melakukan pengulangan secara akurat (harus menambahkan sensor internal) c. Macam : Servo titik ke titik (point to point servo), servo jalur berkesinambungan 3. Kendali adaptif 4. Pemrograman offline
Manipulator berbasis komputer : • Jenis : 1. Kinematik 2. Dinamik 3. Kendali 4. Perencanaan jalur gerakan (Trajectory) 5. Sensing 6. Vision 1
• •
Bentuk : Algoritma yang di-embedded pada modul software kendali. Masalah : Waktu yang ibutuhkan untuk komunikasi yang efisisen antara user dan robot.
3 Metode Komunikasi : 1. Pengenalan suara diskrit (Discrete word recognition) • Defenisi : Metode paling primitif dan tergantung pada speaker. Sistem dapat mengenali set kata-kata diskrit dari sekumpulan kata-kata yang terbatas (hanya kata-kata yang banyak digunakan untuk pengendalian saja, misal : Mulai, Stop, Pause • Kelebihan : robot dapat mengenali kata-kata diskrit secara realtime asalkan komputernya cepat dan algoritma prosesnya efisien. • Kekurangan : perlu memori besar dan penyimpanan eksternal untuk menyimpan data kata-kata, dan perlu periode pelatihan untuk membangun template kata-kata yang mudah dikenali robot. 2. Ajari dan Ulangi (Teach dan Playback) • Defenisi : Metode menuntun (guide), dengan mengajarkan robot gerakangerakan yang user inginkan agar robot bisa menjalankannya. Banyak digunakan pada masa ini. • Langkah-langkahnya : • Mode Teach Æ mengajarkan robot dalam gerak lambat , menggunakan kendali manual untuk semua tugas assembly sambil merekam sudut join robot. 1) Menggunakan joystick : Mengeset tombol (1 untuk setiap join) 2) Menggunakan sistem manipulator master-slave : Merekam posisi sudut manipulator dari set poin jalur gerak manipulator 3) Menggunakan metode numerik agar lebih halus (smooth) gerakannya. • Mode edit-playback Æ mengedit dan mengulangi kembali gerakan-gerakan tersebut • Mode run Æ jika gerakan sudah benar, robot dijalankan dengan kecepatan yang inginkan dalam metode pengulangan. 3. Bahasa Pemrograman Level tinggi 1) Aksi pertama robot dengan teknik ini Æ robot las dan cat menggunakan guide (Engelderger, 1980) 2) Untuk robot yang berinteraksi dengan lingkungan menggunakan feedback dari sensor Æ metode kondisi dalam pemrograman. 3) Pertimbangan umum kendali robot dengan bahasa pemrograman : • Obyek yang dapat dimanipulasi robot dalam 3dimensi yang memiliki variasi sifat fisik. • Robot dioperasikan alam lingkungan spasial yang kompleks. • Robot harus mendeskripsikan dan merepresentasikan obyek 3dimensi.
2
•
Informasi sensor harus terus dimonitor, imanipulasi dan harus berguna. 4) Pendekatan Pemrograman robot : Pemrograman berorientasi pada Robot 1) Tugas assembly dideskripsikan sebagai urutan gerak robot 2) Robot dituntun dan dikendalikan oleh program dengan semua statement yang berhubungan dengan suatu aksi robot. 3) Langkah membuat program h452 4) Karakteristik : • Area kerja (workspace) di set-up dan komponen (part) diletakkan dalam tempat yang tetap (fixture) atau berjalan dengan teratur (feeder). • Mengenali spesifikasi posisi Æ Lokasi (berdasarkan orientasi dan posisi) komponen dan semua fitur yang ada didefinisikan menggunakan struktur data yang ada pada bahasa pemrograman. • Membuat spesifikasi gerakan Æ Tugas assembly dibagibagi dalam urutan aksi seperti memulai gerakan robot, mengambil obyek, lalu persiapan memasukkan obyek. • Kendali sensor dan aliran (flow) Æ perintah sensor ditambahkan untuk mendeteksi situasi tidak normal (seperti kegagalan dalam mengenali lokasi obyek ketika mengambil) dan memonitor proses tugas assembly. • Program di-debug dan mengulangi langkah 2-4. 5) Contoh Bahasa : • AL (Mustawa, 1982) h453 • AML (Taylor, 1983) h453 6) Contoh syntax pemrograman : • Defenisi basis frame AL & AML h454 • Spesifikasi posisi h456 • Spesifikasi gerakan h457 • Kendali sensor dan flow 1. Sensor posisi 2. Sensor tekan (force) dan deteksi slip page antara tangan dan obyek (tactile) 3. Vision Æ estimasi posisi Pemrograman berorientasi pada obyek atau tugas 1) Tugas assembly dideskripsikan sebagai urutan posisi akhir (tujuan) dari obyek, bukan berdasarkan gerakan robot. 2) Memungkinkan user untuk mendeskripsikan tugas pada bahasa tingkat tinggi. 3) Prinsip : Otomatisasi pembuatan program pada kecerdasan buatan, yaitu user akan memberikan input dan output, program akan membuat sendiri aksinya berdasarkan perilaku I/O-nya yang diberikan tersebut. 3
4) Arsitektur Task Planner h464
Spesifikasi tugas
Perencanaan Tugas (Task Planner)
DB Model
Robot Level Program (Program sintetis)
FISCHERTECHNIK ROBOT Untuk mengontrol model Fischertechnik melalui komputer, kita membutuhkan sebuah software controller yang memadai dan sebuah interface yang menghubungkan antara PC dengan model yang dibuat. Interface tersebut menterjemahkan perintah dari software. Jadi, motor dapat kita nyalakan dan sinyal dari sensor dapat diproses. Interface dilengkapi oleh empat output digital yang dapat di hubungkan dengan motor, lampu dan electromagnet. Serta delapan input digital dan dua input analog yang bisa dihubungkan ke sensor seperti switch, phototransistor serta NTC. Interface dari fischertechnik mempunyai mikoroprosesor sendiri. Dihubungkan ke PC melalui koneksi port serial. Program yang dibuat di PC dapat eksport ke mikroprosesor pada interface, dimana program tersebut dapat diproses tanpa bantuan PC (disebut juga Mode Aktif). Pada mode ini tidak ada kabel ke PC yang membatasi pergerakkan dari Mobile Robot. Tetapi ketika model robot yang digunakan bukan tipe Mobile Robot maka model tetap terhubung ke PC dan semua perangkat input/output serta variable nilai berada dibawah kendali PC (disebut juga Mode Pasif).
4
1.KONEKSI 1. Power Supply Power diperoleh dari adaptor fischertechnik (9V / 1000mA)
2. Interface Serial Koneksi ke PC melalui port serial RS 232 dengan sebuah pin konektor SubD9. Kabel interface dihubungkan ke PC melalui port COM1 atau COM2. 3. Deskripsi Fungsional • Diagram Sirkuit
5
•
Mikroprosesor Mikroprosesor adalah unit pengendali pusat dari interface. Mikroprosesor membawa perintah-perintah yang disimpan di RAM dan di EPROM. Proses ini mempunyai dua mode yaitu Mode Aktif dan Mode Pasif.
•
EPROM (64 KB fixed value memory) Berisi software operasi untuk mikroprosesor. Program ini sudah di patenkan maka tidak dapat lagi dimodifikasi. Semua data yang disimpan di EPROM akan tetap ada meskipun aliran listrik diputus.
•
RAM (32 KB program memory) Menyimpan program aplikasi yang akan dikeluarkan ke interface pada Mode Aktif. Jika aliran listrik diputus maka semua data pada RAM akan hilang, dan harus diisi ulang kembali.
•
Input Shift Register Semua input digital secara berkelanjutan dibaca dan disimpan (proses pararel). Shift Register digunakan untuk menterjemahkan nilai yang dikeluarkan menjadi data serial yang kemudian dilanjutkan menuju mikroprosesor.
•
Output Shift Register Mikroprosesor mentransmisikan data serial berisikan informasi yang menjelaskan output digital mana yang akan aktif. Shift Register digunakan untuk menyalurkan data ke output digital yang sesuai, untuk menyimpan data dan untuk mengeluarkan data secara paralel.
6
2.Function Block pada LLWin 3.0
1. Output Berfungsi menyalakan salah satu dari input M1 – M4 pada interface. Motor, lampu atau electromagnet dapat dikoneksikan ke sebuah output pada interface. Ketika kita memasukkan blok output, kita dapat memilih antara ketiga jenis ini pada field “Type”. Gambar dari tipe yang dipilih akan muncul pada blok. Kita juga dapat mengeset status dari output yang diinginkan: • Motor : CCW, CW dan Off • Electromagnet : On dan Off • Lampu : On dan Off
2. Input Function blok input berfungsi meng-query kondisi dari digital input E1 – E8 pada interface. Sebuah digital input hanya bias memiliki dua buah kondisi yaitu 0 dan 1. Kondisi pada interface : • Tombol : Ditekan – Tidak ditekan • Phototransistor : Gelap – Terang • Reed Contact (sensor magnetic) : Switch – Not Switch
7
Kita dapat memilih salah satu dari sensor di atas ketika kita memasukkan function blok pada kotak dialog. Gambar sensor akan muncul pada blok. Tergantung pada kondisi (0 atau 1) dari input, flowchart dapat bercabang ke kanan atau terus kebawah. Kita dapat memilih dalam kotak dialog apakah cabang ke kanan ketika kondisi 1 atau 0 3. Edge Berfungsi untuk menunggu sampai digital input ter-switch baik dari 0 ke1 atau sebaliknya 1 ke 0. kita dapat men- set kotak dialog dari blok ini pada edge mana (1-0 atau 0-1) program harus menunggu input digital.
4. Position Berfungsi untuk menghitung impuls dari input digital sampai hasil yang diinginkan tercapai. Setiap edge dari input dihitung, contoh jika sebuah tombol ditekan lalu dilepas maka terhitung dua impuls. Nilai yang sekarang disimpan di variable counter. Jika kita mengaktifkan icon “Use Standard Counter” pada dialog box, maka counter Z1 – E16 secara otomatis ditujukan pada input digital E1 – E16. Kemudian kita tidak perlu memikirkan tentang variable mana yang harus digunakan untuk nomer prosedur ini atau mungkin saja variable ini sudah dipakai oleh yang lain.
5. Start Untuk menandakan flowchart pertama kali. Jika blok ini tidak ada maka flowchart tidak dapat diproses. Jika suatu project memiliki beberapa flowchart, maka setiap flowchart harus memiliki blok start.
8
6. End Jika suatu flowchart harus berakhir, maka kita harus mengkoneksikan output dari blok terakhir ke blok End ini. 7. Reset Berfungsi mereset semua alur dari suatu project agar segera berjalan jika kondisi pada dialog box ini terpenuhi. Blok Reset diletakkan pada program tanpa garis koneksi ke blok yang lain. Dalam setiap project hanya diperbolehkan satu blok reset.
8. Emergency Stop Blok ini berfungsi menghentikan semua output pada interface. Blok Emergency Stop diletakkan pada program tanpa garis koneksi ke blok yang lain. Dalam setiap project hanya diperbolehkan satu blok Emergency Stop.
9. Terminal Berfungsi untuk menyediakan display dan untuk memasukkan nilai tertentu saat program sedang berjalan. Juga ditempatkan pada program tanpa garis koneksi. Pada blok ini terdapat output M1 – M8 di bagian atas blok. Dan juga
9
berfungsi menampilkan arah dari pergerakkan motor yang terhubung pada interface.
Dua buah display berfungsi menampilkan nilai dari variable, input analog parameter EA – ED dan nomer. Sebuah blok display harus dimasukkan dalam flowchart agar nilai bisa ditampilkan disini. Parameter EA – ED merupakan tempat untuk mengisi nilai dimana nilainya dapat diubah walaupun ketika program sedang berjalan (tentu saja tidak bisa pada saat Mode Aktif). Di sini juga terdapat tombol STOP dan RESET yang dapat diaktifkan dengan meng-klik icon tersebut. Terminal juga memiliki 10 input digital E17 – E26 dimana pengoperasiannya dengan cara meng-klik icon tersebut. Input E17 – E21 didesain sebagai switch dan akan tetap tertekan sampai kita melepasnya. E21 – E26 didesain sebagai tombol dimana tombol tersebut akan langsung terlepas segera setelah ditekan tidak perlu menunggu kita melepas klik pada mouse. 10. Display Blok ini berfungsi untuk menampilkan nilai, variable atau input EX – EY atau EA – ED pada salah satu dari display yg ada pada Terminal.
10
11. Message Berfungsi menampilkan text pada Terminal dengan panjang maximal 17 karakter.
12. Show Values Blok ini berfungsi menampilkan nilai dari variable pada saat program berada pada mode online. Blok ini ditempatkan pada program tanpa garis koneksi dengan blok lain. Selain nilai variable, nilai digital dan analog serta nilai pada EA – ED juga dapat ditampilkan disini.
13. Variable +/-1 Berfungsi untuk menambah atau mengurangi nilai suatu variable dengan satu. Kita memasukkan variable yg ingin kita tambah atau kurangi pada field dialog.
11
14. Assignment Suatu nilai tertentu dapat dipasangkan dengan variable VAR1 – VAR99 atau counter Z1 – Z16 dengan menggunakan blok ini. Semua operasi matematika dapat digunakan disini. Sama halnya dengan parentheses.
15. Compare Berfungsi membandingkan suatu kondisi tertentu. Tergantung bagaimana kondisi terpenuhi, flowchart dapat bercabang ke kanan atau ke bawah. Kita dapat mengatur pada dialog box apakah percabangan ke kanan berkondisi 1 atau 0. panjang maksimum dari suatu formula adalah 40 karakter. Jika kita memasukkan suatu ekspresi dalam sebuah formula dimana secara matematis ekspresi tersebut tidak benar atau tidak diizinkan, sebuah pesan error akan ditampilkan segera setelah menekan tombol Ok.
16. Beep Berfungsi mengeluarkan nada sinyal melalui PC speaker. Level suara dan lamanya dapat di-set pada dialog box. Level suara dapat dimasukkan sebagai
12
frekuensi (50 – 10.000 Hz) atau sebagai not balok (c-d dalam 5 oktaf ). Lamanya suara yang dapat dimainkan dalam 0 – 5 detik.
17. Wait Berfungsi untuk memberikan delay pada flowchart. Delay akan mulai setelah alur flowchart mencapai blok ini. Delay yang kita inginkan kita masukkan dalam hitungan detik, dimana maksimumnya adalah 999,99 detik. Kita juga dapat memilih tipe delaynya antara “define” dan “random”. Jika kita memilih “define” maka delaynya akan sama persis dengan yang kita input.dan jika kita memilih “random” delaynya akan acak tetapi tidak akan melebihi nilai yang telah kita input.
13
18. Text Text yang dimasukkan di sini dapat ditempatkan sebagai komentar di berbagai tempat di lembar kerja, contohnya sebagai dokumentasi program.
19. SubIn, SubOut Kedua blok ini hanya terlihat pada toolbox ketika kita mengedit subprogram. Keduanya berfungsi untuk mengkoneksikan program utama dengan awal sub-program (SubIn) atau akhir Sub-program dengan program utama (SbOut). Setelah kita memasukkan SubIn dan SubOut blok pada sub-program keduanya juga harus dimasukkan sebagai lingkaran pada frame dari icon subprogram dimana untuk memasukkannya kita harus memilih pada toolbar Subprogram – Design. Garis koneksi hanya dapat digambar antara flowchart program utama dengan icon sub-program setelah hal di atas dilakukan.
14