• Tidak ada hasil yang ditemukan

RANCANG BANGUN SISTEM PERINTAH GERAK MOBILE ROBOT MENGGUNAKAN METODE PENGENALAN ISYARAT TUBUH DENGAN SENSOR KINECT

N/A
N/A
Protected

Academic year: 2021

Membagikan "RANCANG BANGUN SISTEM PERINTAH GERAK MOBILE ROBOT MENGGUNAKAN METODE PENGENALAN ISYARAT TUBUH DENGAN SENSOR KINECT"

Copied!
32
0
0

Teks penuh

(1)

Seminar Tugas Akhir – Juli 2012

Dosen Pembimbing :

Dr. Ir. Djoko Purwanto, M.Eng Rudy Dikairono, ST, M.Sc

Oleh:

Dhuha Abdul Aziz – 2208 100 152

RANCANG BANGUN SISTEM PERINTAH GERAK MOBILE ROBOT MENGGUNAKAN METODE PENGENALAN ISYARAT TUBUH DENGAN SENSOR KINECT

(2)

1 Latar Belakang

 Penggunaan perangkat kendali robot seperti keyboard, mouse, joystick, gamepad dan lain

sebagainya yang memiliki kontak langsung dengan operator semakin dikurangi karena

dapat mengurangi mobilitas dan

membahayakan keselamatan operator

 Adanya perangkat tambahan tersebut juga tidak lagi relevan dengan prinsip ubiquitous

computing yang tengah berkembang pesat saat

ini

(3)

2 Tujuan

 Menggunakan kinect sebagai sensor untuk mengenali Isyarat Tubuh dari Operator

 Menginterpretasikan Isyarat Tubuh dari Operator menjadi data yang dapat digunakan sebagai

sistem perintah gerak mobile robot.

 Meng implementasikan sistem perintah gerak

kepada mobile robot

(4)

3 Batasan Masalah

 Bagian tubuh yang akan ditangkap oleh kinect pergelangan tangan kanan dan kiri dan kepala.

 Sistem perintah gerak terdiri dari gerak

maju, mundur, belok kanan, dan belok kiri.

 Mobile robot yang digunakan adalah robot dengan dua roda

 Perintah dilakukan oleh satu operator

(5)

4

BLOK SISTEM

Isyarat Tubuh

Kinect

CPU

LCD 2x16

Mobile Robot – Differential Wheel

Arduino Mega 128

(6)

18 Isyarat Tubuh

Natural User Interfaces (NUI) adalah suatu sistem interaksi manusia-komputer bahwa

pengguna beroperasi melalui tindakan intuitif

yang berkaitan dengan alam, perilaku manusia

sehari-hari.

(7)

18 KINECT

Sensor Kinect adalah sebuah gabungan antara RGB kamera dengan sensor infra merah

sehingga dapat menampilkan citra dan

menentukan jarak dari sebuah objek

(8)

18 KINECT SDK

Kinect SDK (software Development Kit) adalah library dan driver yang disediakan oleh

Microsoft secara open source agar para

pengembang dapat mengembangkan aplikasi

menggunakan kinect.

(9)

18 SKELETON SPACE

Model skeleton dari pengguna

diekspresikan pada koordinat x, y, dan z dalam meter.

Z X Y

Perhitungan meter didapat setelah konversi dari pixel ke transformasi skeleton space

(10)

18 SKELETON SPACE

Perhitungan meter didapat setelah konversi dari pixel ke transformasi skeleton space

private void CameraPosition(FrameworkElement element, ColorImagePoint point) {

Canvas.SetLeft(element, point.X - element.Width / 2);

Canvas.SetTop(element, point.Y - element.Height / 2);

}

private void ScalePosition(FrameworkElement element, Joint joint) {

Joint scaledJoint = joint.ScaleTo(1280, 720, .3f, .3f);

Canvas.SetLeft(element, scaledJoint.Position.X);

Canvas.SetTop(element, scaledJoint.Position.Y);

}

(11)

18 SKELETAL MODEL

(12)

18 WPF APPLICATION

Windows Presentation Foundation (WPF) adalah sebuah sistem presentasi untuk membangun aplikasi-aplikasi klien Windows dengan user experiences secara visual

(13)

18

Kinect

Capture Skeletal Tracking Joint Acquisition

Get data x,y,z

Body Gesture Interpretation Board Arduino

CPU

Software

Kirim

(14)

18 Skeletal Tracking

metode untuk mendeteksi model tubuh manusia.

Depth Stream Image Stream

(15)

18 Skeletal Tracking

Skeleton GetFirstSkeleton(AllFramesReadyEventArgs e) {

using (SkeletonFrame skeletonFrameData = e.OpenSkeletonFrame()) {

if (skeletonFrameData == null) {

return null;

}

skeletonFrameData.CopySkeletonDataTo(allSkeletons);

//get the first tracked skeleton

Skeleton first = (from s in allSkeletons

where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();

return first;

}

(16)

18 Joint Acquisition

Proses mendapatkan Joint dari Skeletal Model, berikut fungsi yang digunakan

//head

DepthImagePoint headDepthPoint =

depth.MapFromSkeletonPoint(first.Joints[JointType.Head].Position);

//left hand

DepthImagePoint leftDepthPoint =

depth.MapFromSkeletonPoint(first.Joints[JointType.HandLeft].Position);

//right hand

DepthImagePoint rightDepthPoint =

depth.MapFromSkeletonPoint(first.Joints[JointType.HandRight].Position);

(17)

18 Get Data X,Y, dan Z

//pemanggilan titik X untuk joint kepala first.Joints[JointType.Head].Position.X //pemanggilan titik Y untuk joint kepala first.Joints[JointType.Head].Position.Y //pemanggilan titik Z untuk joint kepala first.Joints[JointType.Head].Position.Z

//pemanggilan titik X untuk joint pergelangan tangan kanan first.Joints[JointType.WristRight].Position.X

Fungsi mendapatkan nilai koordinat x,y, dan z yang dipilih

(18)

18

Body Gesture Interpretation

END

Nilai X,Y,Z pada head, wrist left, wrist right

Head.Z <

wristleft.Z

&&

wrist.right.Y

>Head Y

Mundur, sendData4

Head.Z >

wristright.Z

Maju, sendData1

Head.X >

wristright.X

Kiri, sendData2

Head.X <

wristright.X

Kanan, sendData3

Diam START

YES

YES

YES

YES NO

NO

NO

(19)

18 Pengiriman Data

using System.IO.Ports;

private SerialPort serialPort1;

//Inisialisasi COM PORT dan kecepatan baudrate

serialPort1 = new SerialPort("COM12", 9600, Parity.None, 8, StopBits.One);

serialPort1.DataReceived += new

SerialDataReceivedEventHandler(serialPort1_DataReceived);

// Fungsi Mengirim data serial private void SendSerialData() {

byte[] SerialData = new byte[4];

[...]

serialPort1.Write(SerialData, 0, SerialData.Length);

}

(20)

18 Board Arduino 128

Microcontroller ATmega1280

Operating Voltage 5V

Input Voltage 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 54 (15 provide PWM output)

Analog Input Pins 16

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 128 Kb of which 4 Kb for bootloader

SRAM 8 Kb

EEPROM 4 Kb

Clock Speed 16 MHz

(21)

18 Board Arduino 128

Aplikasi WPF Sketch

PC

ARDUINO MEGA USB

USER

ID PIN

Data

I/O

Paket data

byte[0] identitas fungsi untuk melakukan eksekusi

byte[1] nomor pin untuk mengakses input atau output pada arduino byte[2] Data, most significant byte (MSB)

byte[3] Data, least significant byte (LSB)

(22)

18 Board Arduino 128

public byte[] Data_SetFlexFlag(int iValue)

{ _serialdata[0] = (byte)SET_FLEXFLAG; // ID _serialdata[1] = 0;

_serialdata[2] = 0;

_serialdata[3] = (byte)iValue;

return _serialdata; } Protokol Komunikasi

Fungsi variabel data yang dikirim void sendData(int val)

{

SerialData_set = Data_SetFlexFlag(val);

serialPort1.Write(SerialData_set, 0, SerialData_set.Length);

}

(23)

Pengujian

(24)

Pengujian Sensor Kinect

Z’ideal Zideal error Z’maks Zmaks error

2,98 3 0,02 4,17 4,1 0,03

Pengujian Jarak Z

Joint X’max Y’max Xmax Ymax

Head 1,23 1,43 1,2 1,40

Wrist Left 1,23 1,43 1,2 1,40 Wrist Right 1,23 1,44 1,2 1,41 Joint Z’min Z’max Zmin Zmax

Head 0,83 4,17 0,8 4,1

Wrist Left 0,86 4,08 0,81 3,98 Wrist Right 0,84 4,08 0,8 3,98

Pengujian Jarak X dan Y

(25)

Analisa Error

Joint

Error

X'max-Xmax Y'min-Ymin Z'min-Zmin Z'max-Zmax

Head 0.03 0.03 0.03 0.07

Wrist Left 0.03 0.03 0.05 0.1

Wrist Right 0.03 0.03 0.04 0.1

Mean 0.03 0.03 0.04 0.09

Jumlah 0.0475

Jadi rata-rata error pengukuran sensor kinect adalah sebesar 0.0475 m atau

4,75

cm

(26)

Pengujian Akurasi Pengenalan Orientasi Arah

Percobaan ke-

Gerakan yang dilakukan

Display pada PC

Gerakan yang dilakukan

Display pada PC

1

A (maju)

A

C (kanan)

C

2 A C

3 A C

4 A C

5 C C

1

B (mundur)

B

D (kiri)

D

2 B D

3 B D

4 B D

5 B D

maju akurasi tingkat keberhasilan sebesar

90%

, sedangkan untuk gerakan mundur, belok kanan, dan belok kiri sebesar

100%.

(27)

Pengujian Sistem

Percobaan ke-

Pengujian (Hasil sesungguhnya)

Maju mundur kanan kiri

1 Maju Mundur Kanan Kiri

2 Maju Mundur Kanan Kiri

3 Maju Mundur Kanan Kiri

4 Maju Mundur Kanan Kiri

5 Kanan Kiri Kanan Kiri

6 Maju Mundur Kanan Kiri

7 Kanan Mundur Kanan Kiri

8 Maju Mundur Kanan Kiri

9 Maju Mundur Kanan Kiri

10 maju mundur Kanan kiri

perintah maju sistem memiliki tingkat akurasi hingga 80%,untuk perintah

mundur tingkat akurasi hingga 90 %, dan untuk perintah kanan dan kiri tingkat akurasi mencapai 100 %

(28)

Penutup

 Diperlukan pengembangan dalam kompleksitas navigasi seperti penambahan rotary encoder dan sensor proximity berupa limit switch, sensor ultrasonic, dan Infra merah sehingga memungkinakn robot dapat melakukan navigasi walaupun di dalam ruangan yang memiliki banyak obstacle

 Setelah interfacing Kinect dengan mikrokontroler

terpecahkan, maka diharapkan pengembangan dalam penambahan hardware dapat dilakukan, seperti

penambahan bionic arm sehingga harapan dari robot ini sebagai servis robot dapat terwujud.

 Pengembangan software juga diperlukan untuk

memperbanyak parameter perintah yang dapat dijadikan sebagai input sehingga robot dapat melakukan berbagai variasi gerakan.

(29)

Any Quest ?

WPF SkeTrck Kinect

(30)

Kenapa WPF

• Support dengan NET.FrameWork 4.0

• Dapat mengolah Graphic DirectX yang

dibutuhkan oleh image stream dan depth

stream pada kinect

(31)

Skeletal Track

(32)

Kinect

Referensi

Dokumen terkait

dilaksanakan dengan menggunakan alat ukur theodolit dengan mempedomani hasil rekayasa yang telah ditentukan oleh konsultan dan pihak proyek.Pemasangan bowplank

Hukum Ohm adalah hukum yang mengatakan bahwa apabila arus listrik mengalir ke dalam sebuah penghantar , intensitas arusnya sama dengan tegangan yang

Dalam melaksanakan proses penilaian, tes merupakan alat ukur yang paling sering digunakan guru untuk mengukur hasil belajar siswa.. Dari hasil tes, guru dapat mengetahui sejauh

Pertama, kitab tafsir bahasa Bugis (Tafesere Akorang Mabbasa Ugi) yang di tulis oleh tim MUI Sulawesi Selatan ditemukan bahwa konstruk metodologi yang dibangun di

Menurut Peraturan Daerah Kabupaten Luwu Timur Nomor 3 Tahun 2015 tentang desa, alokasi dana desa adalah dana perimbangan yang diterima kabupaten/kota dalam anggaran pendapatan

Perbandingan hasil ujicoba generate kunci pada algoritma Rijndael dan 3DES membuktikan bahwa algoritma Rijndael lebih unggul secara performansi, karena

Rancangan sistem pakar yang dibuat ini bertujuan untuk membantu wanita dalam menentukan jenis kulit wajahnya, agar dapat memilih produk kosmetik yang tepat sesuai dengan jenis

Tujuan dilakukan uji kadar air ini adalah untuk mengetahui persentase kadar air yang terkandung dalam briket dimana persentase kadar air yang dimiliki oleh setiap sampel