Kamis, 04 Desember 2008

Pengontrolan Pergerakan Robot



Pengontrolan Pergerakan Robot Dengan Umpan-Balik Video Melalui Jaringan Internet (Kasus Robot-Pena, Politeknik Caltex Riau)Heri SubagiyoProgram Studi Teknik Elektronika, Politeknik Caltex RiauJl. Umbansari, Rumbai, Pekanbaru AbstrakPenggunaan jaringan internet sebagai media penyaluran sinyal kontrol dan monitoring telah berkembang pesat, diantaranya untuk pengaturan peralatan di rumah tangga, kontrol robot, telemedika, peralatan rumah tangga dan mesin produksi di industri. Namun demikian, dalam beberapa aplikasi umpan balik yang diberikan ke operator atau user hanya status dari obyek yang dikontrol. Penelitian yang dipaparkan dalam makalah ini mencoba untuk memberikan alternatif monitoring yang lain, yaitu dengan memberikan umpan balik berupa gambar video dari obyek yang dikontrol. Komunikasi internet pada sistem pengontrolan gerakan robot yang dipaparkan dalam makalah ini terdiri dari client dan server, yang dibuat dengan menggunakan komponen Microsoft ActiveX yang disebut Winsock dan Vidshare. Winsock dipakai untuk pengiriman data pengontrolan gerakan, sedangkan Vidshare untuk umpan balik video. Untuk memantau gerakan robot, aplikasi server dijalankan pada komputer yang terpasang pada robot dan dilengkapi dengan kamera, sehingga operator dapat mengetahui apa yang ada dihadapan robot. Client dapat dijalankan pada sembarang komputer yang akan digunakan sebagai pengontrol. Dengan cara ini, diperoleh suatu sistem pengontrolan dan monitoring video melalui internet yang dapat berjalan dengan baik. Namun demikian, untuk penggunaan yang memerlukan ketelitian dan real time seperti operasi pasien jarak jauh, harus memperhitungkan delay time yang berkaitan dengan faktor kualitas jaringan internet yang ada.Kata kunci: Robot, Internet, Video, Winsock, Vidshare1. PendahuluanTeknologi internet telah menjadi suatu hal yang penting dan popular di masa ekonomi global dewasa ini [1]. Dengan teknologi yang menggunakan protocol TCP/IP ini, maka manusia di berbagai belahan dunia dapat saling bertukar data dan informasi, baik dalam bentuk web site, email, newsgroup ataupun discussion group. Penggunaan jaringan internet sebagai media penyaluran sinyal kontrol dan monitoring juga telah berkembang pesat. Diantaranya adalah untuk pengaturan peralatan di rumah tangga seperti lampu dan pintu rumah [2], kontrol robot [3], telemedika [4], peralatan rumah tangga [5] dan mesin produksi di industri [6].Namun demikian, dalam beberapa aplikasi diatas feedback atau umpan balik yang diberikan ke operator atau user hanya status dari obyek yang dikontrol. Sebagai contoh, lihat [2]. Makalah ini mencoba untuk memberikan alternatif monitoring yang lain, yaitu dengan memberikan umpan balik berupa gambar video dari obyek yang dikontrol. Sehingga diharapkan umpan baliknya lebih nyata.Obyek yang dikontrol pada penelitian ini adalah robot-pena, yaitu robot yang dibuat untuk keperluan peresmian beberapa gedung di Propinsi Riau. Dengan adanya metode ini dimungkinkan adanya alternatif pengembangan lebih lanjut, misalnya monitoring kondisi lalu lintas melalui internet, operasi pasien jarak jauh, dan lain-lain.2. Winsock dan VidshareKomunikasi internet pada sistem pengontrolan gerakan robot yang dipaparkan dalam makalah ini terdiri dari client dan server. Server dijalankan pada sistem komputer yang terpasang pada bagian yang ingin dikontrol. Client dapat dijalankan pada sembarang komputer yang akan digunakan sebagai pengontrol. Kedua komputer harus terhubung ke internet agar keduanya dapat berkomunikasi.Program komunikasi internet dibuat dengan menggunakan komponen Microsoft ActiveX yang disebut Winsock. Sedangkan untuk transfer streaming video dari kamera digunakan komponen ActiveX yang lain yaitu Vidshare. Winsock dioperasikan pada level terendah dari seluruh kontrol internet, seperti WebBrowser dan Internet Transfer (hypertext transfer protocol (http) dan file transfer protocol (ftp)) [8].Winsock menyediakan akses ke layanan protokol jaringan Transfer Control Protocol (TCP) and User Datagram Protocol (UDP). Dengan Winsock, programmer dapat membuat aplikasi client/server, baik menggunakan protocol Transmission Control Protocol (TCP) atau User Datagram Protocol (UDP).TCP dan UDP sama-sama merupakan seperangkat aturan dalam proses transfer data antara client dan server [7]. Perbedaan adalah, TCP mirip dengan percakapan telepon (dibutuhkan adanya koneksi terlebih dulu sebelum terjadi percakapan) dan terdapat interaksi langsung antara client dan server [8]. Ini mirip dengan yang digunakan pada chat room online [7]. Sedangkan UDP mirip dengan mail biasa (paket-paket dibuat, diberi alamat dan dikirimkan melalui jaringan) dan data kecil dikirim setahap-tahap [8]. Komponen Winsock tidak terlihat bagi user saat aplikasi dijalankan.Pada sistem pengontrolan gerakan robot ini, digunakan protokol jaringan Transfer Control Protocol (TCP). TCP digunakan untuk membuat dan menjaga koneksi ke komputer yang dihubungi (remote computer). Dua komputer ini (client & server) dapat saling memberikan informasi melalui koneksi ini. Untuk melakukan koneksi, Client harus tahu nama atau IP Address komputer server. Selain itu, komputer cilent juga harus tahu pada nomor port yang mana komputer server akan mendengarkan permintaan koneksi, karena server diset untuk mendengarkan permintaan koneksi dari client pada suatu nomor port tertentu. Nomor port ini ditentukan oleh property LocalPort pada Winsock yang digunakan. Nilai nomor port dapat berada antara 65535 dan 1024 [7].3. Gambaran Umum SistemIlustrasi Sistem Pengontrolan Robot melalui Internet dengan umpan balik video ditunjukkan pada Gambar 1. Pada robot terdapat rangkaian driver motor roda, rangkaian indikator koneksi, kamera (webcam) dan komputer server (laptop) yang menjalankan aplikasi server. Rangkaian driver motor roda dan rangkaian indikator koneksi terhubung dengan komputer server melalui port paralel (LPT). Proses kontrol rangkaian indikator dan gerakan motor roda robot dilakukan dengan mengeluarkan data ke port paralel komputer yang terpasang di robot. Alamat port paralel yang digunakan adalah 0x378 dalam heksadesimal, atau 888 dalam format desimal. Format data kontrol yang digunakan dapat dilihat di Gambar 2.Kamera (Webcam)Indikator KoneksiMotor Roda RobotRobot PenaRangkaian DriverInternetKomputer Client(Server) Gambar 1. Ilustrasi sistem pengontrolan robot melalui internet dengan umpan balik videoGambar 2. Format data kontrolPada program server, port yang dibuka untuk menerima permintaan koneksi adalah 5000. Port ini juga langsung diset di program client.Aplikasi server dijalankan pada komputer server dan akan menunggu permintaan koneksi dari client. Selanjutnya pada komputer client (komputer operator), yaitu komputer untuk mengendalikan robot, dijalankan program client. Sebelum koneksi dilakukan, user diminta memasukkan IP Address server yang akan dihubungi. Ini disesuaikan dengan nomor IP Address komputer server.Setelah koneksi terjadi, server akan melakukan dua hal, yaitu:Mengaktifkan indikator koneksi, dan menunggu datangnya data perintah yang dikirim dari client. Jika ada perintah (DataArrival), maka server akan menerjemahkan perintah tersebut. Misalnya perintah “maju” diterjemahkan dengan data 1 dan selanjutnya akan mengeluarkan data ke port paralel untuk menjalankan motor roda robot melalui rangkaian driver motor.Mengaktifkan kamera (webcam) dan menerima permintaan streaming video dari client. Dengan diterimanya permintaan streaming video ini, maka pada client akan tampil gambar hasil tangkapan kamera.Dengan demikian, operator dapat mengetahui apa yang ada dihadapan robot melalui tampilan video pada aplikasi client, sehingga dapat memantau gerakan robot. Aplikasi server dan client pada sistem ini dibuat dengan menggunakan Microsoft Visual Basic versi 6.04. Program Aplikasi Client/Server untuk Komunikasi Robot dan Operator4.1 Sisi Server (Robot)Server diset untuk mendengarkan permintaan koneksi dari client pada nomor port tertentu. Pada saat awal program dijalankan, motor roda dan indikator koneksi dimatikan, dengan mengeluarkan data 0 ke alamat port paralel:dummy = Out8255(888, 0)Nomor port untuk menerima koneksi diset 5000 dan didefinisikan pada prosedur Form_Load. Kamera juga diinisalisasi pada prosedur ini. Namun untuk menghemat memori dan tidak terlalu membebani kerja server padahal belum perlu, maka kamera belum diaktifkan sebelum ada koneksi dengan client. Berikut ini sebagian perintahnya:VidServer.CapListenForConnectionsVidServer.CapInitServers TrueVidServer.CapStreamingVideo TrueVidServer.CapSetStreamQuality 50tcpServer.LocalPort = 5000Call tcpServer.ListenTxtOutput.Text = ""Menunggu _ permintaan koneksi dari Client..." _ & vbCrLfKetika permintaan koneksi dari client ke server datang, server akan mengeksekusi prosedur ConnectionRequest. Permintaan koneksi ini diterima melalui Winsock Accept method:tcpServer.Accept(requestID)Setelah koneksi tersambung, server mengaktifkan kamera serta mengirim data streaming video hasil tangkapan kamera ke client.VidServer.CapConnect 0VidServer.CapAcceptConnection (True)Indikator terjadinya koneksi yang dihubungkan dengan bit msb pada output data parallel port juga diaktifkan dengan mengeluarkan data biner 10000000 (atau 128 dalam format desimal) ke port paralel.dummy = Out8255(888, 128)Saat koneksi sudah tersambung dan data streaming video diterima client, informasi data/perintah yang diberikan ke server diproses dalam prosedur DataArrival. Data-data ini diambil dari dan dikirim ke client menggunakan GetData dan SendData method pada Winsock control.call _ tcpServer.GetData(messageFromClient)Pada aplikasi kontrol robot ini, data dari client berupa string maju, kiri, kanan, mundur dan stop. Server akan mengeluarkan data ke port parallel sesuai dengan data yang diterima dari client, seperti ditunjukkan pada tabel berikut ini:Tabel 1. Daftar data dari client dan data yang dikeluarkan ke port paralelData dariClient (String)Data (biner)Gerakan robotMaju10000101MajuKanan10000110Belok kananKiri10001001Belok kiriMundur10001010MundurStop10000000BerhentiAkhirnya, setelah client meminta koneksi selesai, maka server menutup koneksi, mengeluarkan data nol ke port paralel untuk mematikan indikator koneksi, dan selanjutnya langsung kembali mendengarkan koneksi. Siap jika ada permintaan selanjutnya.dummy = Out8255(888, 0)call tcpServer.CloseVidServer.CapDisconnectTxtOutput.Text = "Client memutus _ koneksi." & vbCrLfcall tcpServer.ListenTxtOutput.Text = ""Menunggu _ permintaan koneksi dari Client..." _ & vbCrLfSetelah direalisasikan, tampilan aplikasi server sebelum dan sesudah koneksi terjadi ditunjukkan pada Gambar 3 dan Gambar 4.Gambar 3. Tampilan aplikasi server sebelum terjadi koneksiGambar 4. Tampilan aplikasi server setelah terjadi koneksi4.2 Sisi Client (Operator)Program aplikasi client merupakan program yang akan dihadapi oleh operator robot. Pada program ini akan ditampilkan status koneksi dengan server (robot), gambar video hasil tangkapan kamera pada robot, dan tombol-tombol navigasi. Untuk memulai permintaan koneksi ke robot, operator perlu memasukkan nomor IP robot:tcpClient.RemoteHost = InputBox("Masukkan NomorIP Server (Robot)...", "Nomor IP", "127.0.0.1")Sedangkan nomor port telah diset diprogramtcpClient.RemotePort = 5000Kemudian Client menghubungi komputer server yang memiliki nomor IP tertentu tersebut dan meminta koneksi di port 5000 baik untuk komponen Winsock ataupun VidShare.call tcpClient.ConnectvidClient.vidRequestConnection _ tcpClient.RemoteHost, usrSelanjutnya jika server telah menerima permintaan koneksi, client akan menampilkan status Connected dan live video streaming dari kamera robot akan tampil.Text2.Text = "Connected..."vidClient.vidReceiveDataStream _ tcpClient.RemoteHostSetelah ini semua berjalan dengan baik, operator dapat melakukan perintah navigasi robot (maju, kanan, kiri, mundur) menggunakan tombol atau menggunakan tombol panah pada keyboard. Saat tombol navigasi ditekan, program aplikasi client mengirimkan data (SendData) ke server.Data = "maju"Call tcpClient.SendData(Data)Kondisi lingkungan di depan dan disekitar robot dapat dipantau oleh operator melalui tampilan kamera robot, sehingga operator dapat menentukan arah gerak robot dan menghindar jika ada halangan.Setelah direalisasikan, tampilan aplikasi client sebelum dan sesudah koneksi terjadi ditunjukkan pada Gambar 5, Gambar 6, dan Gambar 7.Gambar 5. Tampilan aplikasi client sebelum koneksi terjadiGambar 6. Tampilan aplikasi client saat dialog box muncul untuk memasukkan Nomor IPGambar 7. Tampilan aplikasi client sesudah koneksi terjadi5. Kesimpulan· Pengontrolan gerakan robot jarak jauh melalui jaringan internet telah berhasil dibuat dengan menggunakan komponen activeX Winsock. Sedangkan untuk memantau gerakan robot, telah ditambahkan umpan balik video yang dibuat dengan menggunakan komponen VidShare.· Sistem seperti diuraikan dalam makalah ini dapat dikembangkan pada peralatan lain, seperti pemantauan situasi lalu lintas, monitoring kondisi rumah, operasi pasien jarak jauh dan lain-lain.· Untuk penggunaan yang memerlukan ketelitian dan real time seperti operasi pasien jarak jauh, harus memperhitungkan delay time yang berkaitan dengan faktor kualitas jaringan internet yang ada.

Tidak ada komentar: