MAKALAH SEMINAR TUGAS AKHIR
IMPLEMENTASI ROBOT PENDETEKSI WARNA BENDA BESERTA LOKASINYA Swandana Hersa Pradika – Ir. Muchammad Husni, M.Kom Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember, Email:
[email protected]
Abstrak Pada era Perkembangan teknologi yang berkembang saat ini terus membuka bagi alternatif baru dalam memanfaatkan teknologi robot yang lebih efisien dan cepat. Banyak teknologi miniatur robot (microbot) yang dapat digunakan untuk meniru robot aslinya. Salah satu teknologi robot yang terkenal sekarang adalah LEGO NXT dengan platform Mindstorm NXT-G.
platform Mindstorm NXT. Menggunakan sensorsensor yang tersedia dalam paket LEGO Mindstorm NXT, yaitu sensor cahaya untuk mendeteksi benda, menggunakan sensor ultrasonic untuk menghindari tabrakan robot dengan benda. Dilengkapi aplikasi desktop untuk menampilkan jarak lokasi benda yang ditentukan dengan skala putaran roda. Koneksi menggunakan bluetooth.
Tujuan pembuatan Tugas Akhir ini adalah membuat robot NXT LEGO menggunakan kecerdasan buatan dan pendeteksi warna benda menggunakan sensor cahaya dan mentransfer koordinat benda tersebut, pada aplikasi penerima data menggunakan Bluetooth. Robot menggunakan pemrograman nxt. Selain itu juga untuk melihat performa NXT pada waktu di monitoring oleh aplikasi buatan.
Lego mindstorm NXT lebih dari sekedar mainan. Lego Mindstorm NXT memungkinkan untuk pembangunan robot dengan menggunakan beberapa motor dan juga sensor. Namun daya pemrosesan, memori, dan kemampuan komunikasi LEGO NXT jauh dibelakang apa yang ditawarkan pada perangkat PDA atau laptop. Melihat hal tersebut diatas, muncul gagasan untuk membuat robot NXT yang mempunyai kecerdasan buatan seperti robot pencari batubara. Menggunakan sensor-sensor yang tersedia dalam paket LEGO Mindstorm NXT, yaitu sensor cahaya untuk mendeteksi benda, menggunakan sensor ultrasonic untuk menghindari tabrakan robot dengan benda. Dilengkapi aplikasi desktop untuk menampilkan jarak lokasi benda yang ditentukan dengan skala putaran roda. Koneksi menggunakan bluetooth. Kata kunci: microbot, Mindstorm NXT.
bluetooth,
Manfaat yang dapat diambil dari aplikasi yang dibangun pada tugas akhir ini adalah diharapkan dari tugas akhir ini dapat memberkan suatu solusi secara nyata bagaimana menanggulangi daya pemrosesan memori dan kemampuan komunikasi LEGO NXT yang jauh dibelakang PDA dan laptop. 2.
Lego Mindstorm NXT Lego mindstorm education nxt adalah set lego yang menggunakan mindstorm nxt software. Dimana suatu set ini kita dapat mempelajari mengenai konstruksi atau mekanika pemrograman robot. Lego mindstorm education nxt ini mempunyai nomor seri yaitu 9797. Dibanding rcx(model yang lebih lama) nxt brick memiliki fiture controller agen 32-bit mikroprosesor dan memori lebih besar, ditambah dukungan untuk USB 2.0, Bluetooth dan banyak lagi. Tapi ini tidak berarti bahwa controller harus sangat rumit. Palet yang sangat serbaguna dari elemen LEGO TECHNIC yang mengkombinasikan ultrasonic, uara, cahaya, dan sensor sentuh pada intuitif robotika. Sensor cahaya dapat mendeteksi pantulan cahaya dan menghitung intensitasnya, sementara sensor suara yang baru memungkinkan agen untuk merespon pola dan nada suara. Sensor sentuh yang lebih, misalnya dapat digunakan
LEGO
1.
Pendahuluan Robot saat ini telah banyak dimanfaatkan oleh industri-industri di dunia dalam upaya meningkatkan efisiensi dan efektifitas berbagai aktifitas kerja manusia. Salah satu teknologi robot yang terkenal saat ini adalah LEGO NXT dengan platform Mindstorm NXT. NXT merupakan penyempurnaan dari robot lego seri RIS (Robotic Invention System) yang telah sukses di pasaran. "Seri NXT merupakan seri robot yang lebih ramah dan relatif mudah untuk digunakan tanpa harus merekayasa sirkuit maupun memasang motor sendiri seperti generasi pendahulunya. Gagasan saya adalah untuk membuat robot NXT yang mempunyai kecerdasan buatan seperti robot pencari batubara dengan menggunakan 1
SWANDANA HERSA PRADIKA - 5105100046
MAKALAH SEMINAR TUGAS AKHIR
sebagai sensor tumbukan. Sedangkan sensor ultrasonik, mengukur jarak hambatan dan dapat digunakan sebagai sensor kedekatan. Perangkat lunak pemrograman sekarang tersedia baik untuk PC dan macintosh, ditambah dengan dukungan Bluetooth bahkan anda dapat melakukan perintah agen dari ponsel.
C++, Python jauh lebih sederhana. Sebagai gambaran, pada C++ kita harus mendealokasikan / membebaskan memori suatu objek yang tidak diperlukan lagi, sedangkan di dalam Python hal itu tidak diperlukan lagi karena Python memliki mekanisme yang dinamakan pengumpulan sampah. Yang lebih menarik lagi adalah Python adalah bahasa bebas pakai tanpa harus membeli intepreter-nya. (Abdul Kadir, 2005). Python didistribusikan dengan beberapa lisensi yang berbeda dari beberapa versi. Namun pada prinsipnya Python dapat diperoleh dan dipergunakan secara bebas, bahkan untuk kepentingan komersial. Lisensi Python tidak bertentangan baik menurut defenisi Open Source maupun General Plublic License (GPL).
3.
Python Python merupakan bahasa pemrograman tingkat tinggi (high-level promgraming language) yang diciptakan oleh Guido van Rossum pada tahun 1989 di Amsterdam, Belanda. Python menawarkan berbagai kemudahan menulis suatu program. Sebagai bahasa yang multiplatform yang dapat berjalan dalam lingkungan seperti Windows, UNIX, Linux, dan Mac, pyhton memberikan portabilitas yang tinggi bahkan Python menggunakan antar muka yang sama pada platform-platform tersebut. Python banyak diminati karena kesederhanaanya, yaitu hanya sedikit menyediakan tatabahasa dan kosakata sehingga mudah diingat. Hal ini berbeda dengan bahasa C yang menawarkan berbagi alternatif pengkodean untuk melaksanakan tugas yang sama. Sebagai contoh untuk menangani pengulangan, C menyediakan perintah while dan for, sedangkan Python hanya menyediakan satu saja yaitu while. Pernyataan for memang tersedia pada Python, akan tetapi digunakan untuk kepentingan lain, yaitu khusus menangani list. Namun, dibalik kesederhanaan ini, Python mendukung banyak pustaka (library) yang tersimpan dalam bentuk modul. Sejumlah library tersedia antara lain mendukung jaringan, antar muka grafis, pencitraan, analisis dan komputasi numeric, hypertext (HTML, XML, dll), akses database, dan berbagai hal lain. Selain sederhana, kode Python mudah untuk dibaca oleh siapa saja baik oleh pemula maupun oleh mereka yang sudah terbiasa dengan dunia pemrograman. Hal ini berarti Python mudah untuk dipelajari. Kemudahan untuk mempelajari Python juga karena Python menggunakan intrepreter sebagai penterjemah. Dengan menggunakan interpreter Python, pemakai dapat menguji suatu pernyataan dalam Python secara interaktif, tidak perlu menuliskan kode dalam bentuk program. Seiring dengan kecenderungan penggunaan pemrograman berorientasi objek dewasa ini, Python juga sangat tepat untuk digunakan, mengingat Python memang merupakan bahasa pemrograman yang berorientasi objek. Oleh karena itu, keistimewaan tentang pewarisan dan instansiasi yang ditawarkan pada bahasa berorientasi objek juga dapat diwujudkan dalam Python. Dengan kata lain Python mendukung konsep reusability, yakni suatu kemudahan untuk mengembangkan kode terhadap kode yang sudah tersedia. Namun berbeda dengan bahasa sepeti
4.
Bluetooth Bluetooth adalah sebuah teknologi komunikasi wireless (tanpa kabel) yang beroperasi dalam pita frekuensi 2,4 GHz unlicensed ISM(Industrial, Scientific, dan Medical) dengan menggunakan sebuah FrequencyHopping Transreceiver yang mampu menyediakan layanan komunikasi data dan suara secara real-time antara host-host Bluetooth dengan jarak jangkauan layanan yang terbatas. Bluetooth sendiri dapat berupa card yang digunakan untuk Wireless Local Area Network (WLAN) dimana mengunakan frekuensi radio standar IEEE 802.11, hanya saja pada Bluetooth mempunyai jangkauan jarak layanan yang lebih pendek dan kemampuan pengiriman data yang lebih rendah. Pada dasarnya Bluetooth diciptakan bukan hanya menggantikan atau menghilangkan penggunaan kabel didalam melakukan pertukaran informasi, tetapi juga mampu menawarkan fitur yang baik untuk teknologi mobile wireless dengan biaya yang relatif rendah, konsumsi daya yang rendah, interoperability yang menjanjikan, mudah dalam pengoperasian dan mampu menyediakan layanan yang bermacam-macam. Bluetooth memiliki beberapa protokol yang mendukung komunikasi data. Salah satu protokol tersebut adalah RFCOMM. Protokol RFCOMM(Radio Frequensy Communication) merupakan salah satu protokol yang melayani komunikasi dengan menggunakan Bluetooth. Protokol lainnya adalah OBEX yang merupakan protokol yang digunakan untuk melayani komunikasi data berupa objek file. Sedangkan RFCOMM adalah protokol yang digunakan untuk mengirim dan menerima streams text atau barisan data termasuk protokol. Untuk melakukan pengiriman data tersebut, harus ditentukan terlebih dahulu alamatnya (Bluetooth address), yang biasanya direpresentasikan dalam bentuk bit string, contoh : 00:12:d2:41:e4 2
SWANDANA HERSA PRADIKA - 5105100046
MAKALAH SEMINAR TUGAS AKHIR
5.
Desain dan Implementasi
Pengerjaan tugas akhir ini akan membangun sebuah aplikasi yang bernama “implementasi robot pendeteksi warna benda beserta lokasinya” dimana aplikasi ini mengimplementasikan pemrograman nxt menggunakan framework standart nxt 1.01 pada robot Mindstorm NXT seri 9797 dan pemrograman python untuk aplikasi klien pada desktop(mac OSX). Robot NXT mempunyai kecerdasan buatan untuk mencari benda dan mengirimkan data pada klien melalui koneksi Bluetooth.
Gambar 5.1 Gambar arsitektur sistem
Gambar 5.1 merupakan merupakan ruang lingkup sistem yang akan dikerjakan dalam Tugas Akhir ini. Berikutnya komponen komunikasi antar device. Aplikasi penerima data dapat berkomunikasi dengan robot NXT menggunakan koneksi socket port yang ada pada Bluetooth yang telah terpasang pada laptop/notebook mac OSX. Maka dari itu Bluetooth pada laptop dapat digunakan sebagai konektivitas terhadap robot NXT.
Pada robot NXT kecerdasan buatan ini mencari benda yang ada di sekitarnya lalu mendekati benda tersebut dan membaca intensitas pantulan cahaya benda tersebut menggunakan sensor cahya. Kemudian mengirimkan data-data tertentu ke aplikasi penerima yang telah dibangun.
Dalam robot NXT ada operation code tersendiri untuk melakukan perintah yang akan dikirim melalui Bluetooth socket. Berikut ini daftar protocol yang ada untuk berkomunikasi dengan robot NXT, yaitu:
Aplikasi penerima selain digunakan untuk menerima data-data yang telah dikirim, juga bekerja untuk merumuskan letak benda yang telah di dapat oleh robot. Dengan kata lain tracking proses-proses yang dilakukan oleh robot nxt pada saat awal hingga mendapatkan benda. Jadi dengan aplikasi penerima ini pengguna dapat memodelkan micro robot sederhana pendeteksi benda dan lokasinya. Implementasi pada pembuatan robot pendeteksi warna benda beserta lokasinya ini adalah robot NXT yang memiliki kecerdasan buatan untuk menemukan benda terdekat dan mendeteksi tingkat intensitas cahaya benda tersebut yang terhubung dengan aplikasi desktop untuk menerima data-data melalui media Bluetooth yang terdapat pada sisi robot NXT, pada sisi aplikasi penerima dikembangkan menggunakan bahasa pemrograman python. Pada sisi python memiliki module library untuk beberapa device dan aplikasi. Module library tersebut bisa berupa pengaksesan Bluetooth, wi-fi, kamera, sound, pembacaan isi data message, phone book, dll yang ada pada laptop. Dalam pembuatan tugas akhir ini, saya menggunakan socket Bluetooth sebagai koneksi antara robot NXT dengan aplikasi penerima data. Aplikasi penerima menggunakan GUI toolkit untuk python (wxPython) sebagai Graphics User Interfaces (GUI).
DirectCommand SystemCommand ReplyCommand DirectCommandWithoutReply SystemCommandWithoutReply
= 0x00 = 0x01 = 0x02 = 0x80 = 0x81
StartProgram StopProgram PlaySoundFile PlayTone SetOutputState SetInputMode GetOutputState GetInputValues ResetInputScaledValue MessageWrite ResetMotorPosition GetBatteryLevel StopSoundPlayBack KeepAlive lsGetStatus lsWrite lsRead GetCurrentProgramName
=0x00 =0x01 =0x02 =0x03 =0x04 =0x05 =0x06 =0x07 =0x08 =0x09 =0x0A =0x0B =0x0C =0x0D =0x0E =0x0F =0x10 =0x11
MessageRead
=0x13
Menggunakan protokol koneksi RFCOMM yang biasanya digunakan untuk alat yang menggunakan Bluetooth pada konektivitas. Pengimplementasian desain dari aplikasi ini diwujudkan dalam 2 bentuk aplikasi yang berbeda. Aplikasi tersebut dapat diuraikan sebagai berikut: 1. NXT_Client Aplikasi ini berfungsi sebagai aplikasi mengirim perintah monitoring dan 3
SWANDANA HERSA PRADIKA - 5105100046
MAKALAH SEMINAR TUGAS AKHIR
2.
menampilkan hasilnya. Dibangun dengan menggunakan bahasa Python dan menambahkan sistem konfigurasi untuk membuat alamat web yang akan dicrawler menjadi lebih sederhana. Kecerdasan buatan pada robot NXT Aplikasi ini dibangun untuk jalannya robot mencari benda dan mengirimkan datanya ke NXT_Client
6.
Uji Coba Pada bab ini akan dibahas mengenai uji coba perangkat lunak yang telah diimplementasikan. Uji coba dilakukan dalam dua tahap, yaitu uji coba fungsionalitas yang bertujuan untuk mengetahui apakah semua hasil implementasi dapat berjalan dengan baik, dan yang kedua adalah uji coba performa untuk mengetahui kemampuan perangkat lunak berjalan. 6.1. Uji fungsionalitas Uji coba ini bertujuan untuk mengetahui apakah masing-masing proses pada system sesuai dengan kebutuhan system dan fungsi proses yang telah diuraikan telah dapat berjalan dengan baik.
Gambar 6.2 Koneksi sukses
Gambar 6.1 GUI NXT_Client
Gambar 6.3 Log dan output robot
6.2. Uji performa Ujicoba ini ditunjukkan untuk mengetahui performa NXT dalam transfer data menggunakan media Bluetooth device yang dimana kedua device harus terkoneksi terlebih dahulu agar bisa melakukan mendeteksi performa transfer data.
4
SWANDANA HERSA PRADIKA - 5105100046
MAKALAH SEMINAR TUGAS AKHIR
Dari serangkaian uji coba dan analisa yang dilakukan terhadap system yang dibuat, maka dapat dibuat suatu kesimpulan yang antara lain adalah : 1.
2.
Gambar 6.4 Uji Performa pada NXT_Client
Gambar 6.4 merupakan hasil ujicoba performa pada sisi NXT_Client. Lingkaran hitam menandakan dapat berubah normal pada list distance. Lingkaran merah tidak berubahnya sudut/angle pada waktu transfer data, tetapi pada tampilan log bawah jumlah rotasi roda dapat bertambah. Lingkaran hijau pada list intensitas cahaya menunjukkan keanehan, walaupun bendanya sama.
3.
4.
Percobaan ini dilakukan pada 7 kali pendeteksian, dan memakai benda yang sama (1 benda).
5.
8. [1]
Telah dibuat aplikasi NXT client yang berfungsi sebagai penerima data yang dikirim oleh robot NXT dan telah diujicobakan pada laptop macOSX. NXT client memiliki fitur penerimaan data rotasi dari sensor motor, penerimaan data ultrasonic dari sensor ultrasonic, dan penerimaan data intensitas cahaya dari sensor cahaya. Dari hasil system yang telah dibuat, kecerdasan buatan robot NXT kurang cocok bila dibangun menggunakan bahasa pemrograman Mindstorm NXT. Karena pemrograman tersebut berupa gambargambar seperti flowchart dan memakan banyak storage pada NXT, jadi kecerdasan buatan yang dibuat hanya sederhana saja karena storage NXT hanya 5Mb. Faktor teknis seperti bentuk/model robot, selip pada ban robot, roda belakang tidak berputar secara benar, dan factor teknis lainnya membuat robot NXT ini kurang bagus untuk sebagai robot yang mempunyai kecerdasan buatan. Karena kesalahan factor teknis tadi dapat mengurangi performa dari kecerdasan buatan tersebut. Tidak tersedianya sensor warna pada paket LEGO NXT 9797 menjadikan hanya terang dan gelap saja yang dapat di deteksi oleh robot. Robot NXT v1.0 ini menampilkan performa yang maximal digunakan pada remote control.
Daftar Pustaka B.
Jennifer,
T.
Charles,
Bluetooth:
Connect Without Cables, 2001, Prentice Hall Inc., USA [2]
Lego Mindstorm NXT Appendix, Lego Mindstorm
NXT
Communication
Protocol, 2006, The Lego Group
Gambar 6.5 Uji Performa detLighr.py
[3]
Lego Mindstorm NXT Appendix, Lego Mindstorm NXT Direct Command,
Dari Gambar 6.5 merupakan program uji tambahan untuk testing light sensor. Pada lingkaran putih terjadi perbedaan significant pada monitoring light intense 1 benda (bendanya sama).
2006, The Lego Group [4]
H.
Steve,
Getting
Started
With
wxPython, 2006, Holden Web LLC 7.
Simpulan 5
SWANDANA HERSA PRADIKA - 5105100046
MAKALAH SEMINAR TUGAS AKHIR
[5]
F. Kelly James, Lego Mindstorms NXTG Programming Guide, 2007, APRES
[6]
P.
Lau
Douglas,
NXT_python,
http://home.comcast.net/~dplau/nxt_ python, Oktober 2009 [7]
Vieira.
Mestre,
nxt-python,
http://code.google.com/u/mestre.vieir a/, Oktober 2009
6
SWANDANA HERSA PRADIKA - 5105100046