• Tidak ada hasil yang ditemukan

Simulasi Pergerakan Robot 3D dengan Komando Deteksi Citra Pergerakan Tangan dengan Opencv dan Microsoft XNA

N/A
N/A
Protected

Academic year: 2021

Membagikan "Simulasi Pergerakan Robot 3D dengan Komando Deteksi Citra Pergerakan Tangan dengan Opencv dan Microsoft XNA"

Copied!
33
0
0

Teks penuh

(1)

Simulasi Pergerakan Robot

 

3D

 

dengan

Komando Deteksi Citra

 

Pergerakan Tangan

(2)

Niko Purwanto Putra

NRP

 

5108

 

100

 

511

(3)

Pendahuluan

Trend

 

Control

 

Deteksi

 

Citra.

 

Simulasi

 

adalah

 

suatu

 

proses

 

peniruan

 

dari

 

sesuatu

 

yang

 

nyata

 

beserta

 

keadaan

 

sekelilingnya.

 

OpenCV

 

adalah

 

library

 

pengolah

 

citra

 

dengan

 

menggunakan

 

bahasa

 

C.

Microsoft

 

XNA

 

adalah

 

sebuah

 

(4)

Perumusan

 

Masalah

Permasalahan yang diangkat dalam perancangan dan

pembuatan implementasi tugas akhir ini meliputi :

Bagaimana mengenali pola tangan pada OpenCV.

Bagaimana membuat kontrol realtime simulasi robot

3D menggunakan Microsoft XNA

Menghubungkan hasil deteksi citra pengontrolan

dalam simulasi secara realtime

(5)

Tujuan

Menggabungkan simulasi robot 3D dengan

control deteksi citra tangan menggunakan

Library OpenCV dan Framework Microsoft

XNA.

(6)

Manfaat

Pengembangan

 

Game

 

Real

 

Time

 

menggunakan

 

Deteksi

 

Citra

Pengembangan

 

Simulasi

 

dalam

 

perancangan

 

Robot

Pengembangan

 

Game

 

3D

 

multi

 

machine

(7)

Dasar

 

Teori

OpenCV

OpenCV didesain untuk komputasional yang efisien dan

lebih fokus pada aplikasi real-time.

Salah satu tujuan OpenCV untuk menyajiakan

(8)

Dasar

 

Teori

EmguCV

EmguCV adalah cross platfrom .net wrapper untuk Library intel OpenCV pengolah citra. Yang memperbolehkan fungsi OpenCV dipanggil didalam .net bahasa yang cocok seperti C#, VB, VC++,ironPython dan lain-lain.

(9)

Dasar

 

Teori

Framework XNA

Platform XNA dan kemampuan untuk membuat aplikasi

pada Xbox360 menjadi kemajuan yang sangat nyata

pada dunia pemrograman game.

Platform XNA berlanjut untuk berkembang, dengan

direleasenya XNA 3.0, pengembang XNA mempunyai

kemampuan untuk membuat game untuk microsoft zune

mp3 player.

(10)

Perancangan

Deteksi Citra

Start

Deteksi warna kulit Deteksi kontur tangan Deteksi jari Finish

(11)

Perancangan

Simulasi Robot 3D

Intro

Start Intro 1 Intro 2 Finish

Intro adalah awal Screen pembuka pada simulasi. Terdapat dua gambar yang akan diload pada Intro.

(12)

Perancangan

Simulasi Robot 3D

Main Menu screen

Main Menu Screen adalah tampilan utama dengan 4 tombol yang tersedia.

(13)

Perancangan

Simulasi Robot 3D

Help screen

Start Main Menu

Screen Help Screen Finish

Screen Help adalah Screen bantuan tentang bagaimana cara

mengontrol robot yang berada didalam simulasi dengan komando deteksi tangan

(14)

Perancangan

Simulasi Robot 3D

Credits screen

Start Main Menu

Screen Credit Screen Finish

Credits screen adalah Screen yang berisi tentang nama-nama kontributor game.

(15)

Perancangan

Pengontrolan Robot 3D secara RealTime

Pengontrolan pada robot dilakukan secara realtime. Apabila tangan sudah terdeteksi maka Posisi tangan tersebut akan

disinkronisasikan dengan movement pada robot 3D.

(16)

Implementasi

Sistem operasi dan beberapa

tools

yang digunakan

dalam membangun aplikasi ini adalah :

•Sistem operasi Microsoft Windows VISTA

•Framework Microsoft XNA

•Microsoft Visual Studio 2008 SP1

•Game Engine TorqueX 3D

(17)

Implementasi

Implementasi Deteksi Citra

hsv_min = new Hsv(0, 45, 0); hsv_max = new Hsv(20, 255, 255);

YCrCb_min = new Ycc(0, 131, 80); YCrCb_max = new Ycc(255, 185, 135);

Untuk mendeteksi citra tangan yang dilakukan terlebih

dahulu adalah Mencari range warna kulit dari tangan

(18)

Implementasi

Implementasi Deteksi Citra

Kemudian mencari kontur tangan dari range warna kulit

yang terdeteksi

Contour<Point> contours =

skin.FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST, storage);

(19)

Implementasi

Implementasi Deteksi Citra

Apabila terdeteksi kontur tangan yang lebih besar maka

Kontur tersebut dijadikan variabel selanjutnya

Result1 = contours.Area; if (Result1 > Result2) { try { Result2 = Result1; biggestContour = contours; } catch { storage.Clear(); } } contours = contours.HNext;

(20)

Implementasi

Implementasi Deteksi Citra

Selanjutnya adalah mendeteksi jari-jari tangan dengan

menentukan :

•StartPoint

•DepthPoint

•StartdepthLine

(21)

Implementasi

Implementasi Simulasi 3D

(22)

Implementasi

Implementasi Simulasi 3D

(23)

Implementasi

Implementasi Simulasi 3D

(24)

Implementasi

Implementasi Simulasi 3D

(25)

Implementasi

Implementasi Simulasi 3D

Play Screen

obyek yang akan diload yang berada pada folder data\models\robot\orange_player.dts

T3DTSRenderComponent componentRender = new

T3DTSRenderComponent(); componentRender.ShapeName = @"data\models\robot\orange_player.dts"; componentRender.SceneGroupName = "PlayerObject"; objPlayer.Components.AddComponent(componentRender);

(26)

Implementasi

Implementasi Simulasi 3D

Physic engine

componentPhysics.SceneGroupName = "PlayerObject"; //tambahan componentPhysics.RenderCollisionBounds = false; componentPhysics.ResolveCollisions = true; CollisionSphereShape css1 = new CollisionSphereShape(); css1.Radius = 0.65f;

css1.Center = new Vector3(0f, -0.2f, 0.65f); componentPhysics.CollisionBody.AddCollisionShape(css1);

CollisionSphereShape css2 = new

CollisionSphereShape();

css2.Radius = 0.65f;

css2.Center = new Vector3(0f, 0f, 1.85f); componentPhysics.CollisionBody.AddCollisionShape(css2);

componentPhysics.RotationScale = 0; componentPhysics.GravityScale = 25f; componentPhysics.Mass = 300;

componentPhysics.RigidManager = rigidManager;

RigidMaterial rm = new RigidMaterial(); rm.Restitution = 0.5f; rm.KineticFriction = 0.5f; rm.StaticFriction = 0.5f; componentPhysics.RigidMaterial = rm; objPlayer.Components.AddComponent(componentPhysics); //akhir tambahan

Untuk physic engine obyek player diset dengan grafitasi sebesar 25 bertipe float. Massanya sebesar 300. Pergeseran kinetik dan static sebesar 0.5 bertipe float

(27)

Implementasi

Implementasi Simulasi 3D

(28)

Implementasi

Implementasi Pengontrolan secara RealTime

Movement

if (Game.Instance.JumlahTangan==1) { rotX = 0f; ma = 0.5f; } if (Game.Instance.JumlahTangan == 2) { rotX = 0f; ma = -0.5f; } if (Game.Instance.JumlahTangan == 5 || Game.Instance.JumlahTangan == 0) { rotX = 0f; ma = 0f; } Matrix playerTranslationMatrix = _playerSceneComponent.Transform;

Vector3 right = MatrixUtil.MatrixGetRow(0, ref playerTranslationMatrix);

Vector3 forward = MatrixUtil.MatrixGetRow(1, ref playerTranslationMatrix);

Vector3 vel = ((forward * ma) + (right * 0)) * _moveSpeed;

_rigidComponent.Velocity = vel;

Untuk bergerak maju pada obyek player maka untuk velocity forward diberikan nilai 0.5 bertipe float,

sedangkan untuk bergerak mundur maka forward

dikalikan dengan negatif 0.5 bertipe float

(29)

Implementasi

Implementasi Pengontrolan secara RealTime

Rotasi

if (Game.Instance.JumlahTangan == 3) { ma = 0f; rotX = 0.5f; } if (Game.Instance.JumlahTangan == 4) { ma = 0f; rotX = -0.5f; }

rotX = (float)Math.Pow(Math.Abs(rotX), Math.E) * (rotX > 0.0f ? 1.0f : -1.0f);

_playerAngle = (_playerAngle - (_turnSpeed * dt * rotX)) % (2.0f * (float)Math.PI);

SceneGroup.Rotation =

Quaternion.CreateFromYawPitchRoll(0.0f, 0.0f, _playerAngle);

untuk rotasi kekanan maka nilai rotX=0.5 bertipe float sedangkan kesamping kanan nilai rotX bernilai negatif -0.5 bertipe float.

(30)

Uji

 

Coba

 

dan

 

Evaluasi

Uji

coba

aplikasi

ini

dilakukan

dengan

menggunakan satu komputer, spesifikasi komputer

adalah :

Menggunakan OS Windows Vista

Processor Intel Pentium Core 2 Duo @2.20Ghz ·

RAM 4GB

(31)

Uji

 

Coba

 

dan

 

Evaluasi

Test Case ID

Scenario / Condition Posisi Tangan

Result

RD 1 Scenario 1 – komando Posisi tangan angka 1.

Angka 1 Player bergerak maju.

RD 2 Scenario 2 – komando Posisi tangan angka 2.

Angka 2 Player bergerak mundur.

RD 3 Scenario 3– komando Posisi tangan angka 3

Angka 3 Player hadap kekanan. RD 4 Scenario 4 – komando Posisi

tangan angka 4.

Angka 4 Player hadap kekiri.

RD 5 Scenario 5 – komando Posisi tangan angka 5.

Angka 5 Player Diam

(32)

Uji

 

Coba

 

dan

 

Evaluasi

Test Case ID

Scenario / Condition Posisi Tangan

Result

RD 1 Scenario 1 – komando Posisi tangan angka 1.

Angka 1 0.0027 millisecond RD 2 Scenario 2 – komando Posisi

tangan angka 2.

Angka 2 0.0022 millisecond RD 3 Scenario 3– komando Posisi

tangan angka 3

Angka 3 0.0016

millisecond RD 4 Scenario 4 – komando Posisi

tangan angka 4.

Angka 4 0.0011 millisecond RD 5 Scenario 5 – komando Posisi

tangan angka 5.

Angka 5 0.0016 millisecond

(33)

Kesimpulan

•Didalam uji coba ini OpenCV dapat mendeteksi Posisi

tangan sehingga Simulasi Robot 3D dapat dikontrol

dengan deteksi citra tangan.

•Pengontrolan dilakukan secara Real Time dalam arti

gerakan tangan yang dideteksi dapat direspon dalam

waktu yang cepat.

•Perpindahan jeda waktu antara perubahan gerakan tangan

yang bisa dideteksi oleh aplikasi relative sangat kecil

dengan satuan microsecond.

Referensi

Dokumen terkait

Saya dalam membuat trafo ini mengacu pada frekwensi operasinya dulu .mau dipakai pada frekwensi berapa .harga L tidak penting Jumlah lilitan juga tidak penting .yang penting

Kesenjangan ini terutama disebabkan oleh faktor-faktor: (1) ambisius peran, yaitu sejauh mana pegawai dapat melakukan tugas sesuai dengan harapan pelanggan; (2)

Fungsi Akuntansi bertugas untuk mencatat semua penerimaan kas perusahaan berdasarkan bukti penerimaan kas dari fungsi kas ke jurnal penerimaan kas untuk melaporkan

Pada Ti-64, struktur mikro material berubah dari bentuk memanjang menjadi lebih bulat memperlihatkan bahwa material awal yang digunakan telah mengalami pengerolan sebelum

Terkait dengan hal tersebut, Pemerintah daerah berusaha merumuskan kebijakan daerah yang bersifat spesifik dalam urusan pemerintah di bidang lingkungan hidup pada

Sifat-sifat dari zat warna dispersi secara umum dapat ditunjukkan dalam sifat kimia antara lain dalam bentuk dispersi dapat mencelup serat hidrofob; kebanyakan zat warna

Selanjutnya untuk calon mahasiswa baru jurusan pendidikan kepelatihan olahraga Fakultas Iilmu-Ilmu Kesehatan dan Keolahragaan Universitas Negeri Gorontalo angkatan

Fotosistem adalah suatu unit yang Fotosistem adalah suatu unit yang mampu menangkap energi cahaya mampu menangkap energi cahaya Matahari yang terdiri dari klorofil