Sentry Detective Patrol Robot Patroli Deteksi Dini Kebocoran Gas Berbasis IoT
Sentry Detective Patrol Robot Patroli Deteksi Dini Kebocoran Gas Berbasis IoT
Dafa Raihan Syabani1,
Kukuh Tegar Pangestu1, Oryza Ilyas Aryaduta1, Tri Widodo1
Politeknik Negeri
Semarang
Teknologi Rekayasa
Elektronika
Jl. Prof. Soedarto,
Tembalang, Kec, Tembalang, Kota Semarang, Jawa Tengah, 50275
ABSTRAK
Keamanan dan pemantauan
lingkungan tertutup dari bahaya kebakaran atau kebocoran gas beracun memerlukan
sistem otomasi yang cepat dan akurat. Penelitian ini merancang dan membangun
sebuah robot patroli otonom berbasis Raspberry Pi yang dinamakan Sentry
Detective Patrol. Robot ini dilengkapi dengan sensor gas MQ-2, sensor
ultrasonik HC-SR04, serta sistem visi komputer (Computer Vision)
menggunakan pustaka OpenCV dan ArUco Marker untuk keperluan
lokalisasi absolut di dalam arena berukuran 240 × 180 cm. Kamera PiCamera2
dipasang pada ketinggian 13,5 cm dari dasar alas robot untuk mendeteksi marker
dinding secara presisi guna menghitung posisi koordinat kartesius robot secara real-time.
Sistem bekerja secara multitasking dengan state machine yang
membagi tugas menjadi fase inisialisasi, patroli rute (waypoint), dan
evakuasi darurat. Apabila sensor gas mendeteksi anomali bahaya, robot secara
otomatis mengaktifkan sirine peringatan, merekam koordinat lokasi kejadian ke
dalam laporan teks digital (laporan_patroli.txt), mengambil foto bukti visual
kondisi lapangan, serta bernavigasi kembali (visual homing) menuju titik
Home Base (Marker ID 0). Hasil pengujian menunjukkan bahwa integrasi
sistem lokalisasi ArUco dan sensor lingkungan mampu berjalan stabil serta
memberikan informasi laporan darurat secara efektif melalui antarmuka Web
HUD berbasis Flask.
Kata Kunci: Robot Patroli Otonom,
Raspberry Pi, ArUco Marker, Computer Vision, Sensor Gas MQ-2, Lokalisasi
Absolut.
ABSTRACT
The security and
monitoring of indoor environments against fire hazards or toxic gas leaks
require fast and accurate automation systems. This research designs and
develops an autonomous patrol robot based on Raspberry Pi, named Sentry
Detective Patrol. The robot is equipped with an MQ-2 gas sensor, an HC-SR04
ultrasonic sensor, and a Computer Vision system using OpenCV and ArUco Markers
for absolute localization within a 240 × 180 cm arena. A PiCamera2 is mounted
at a height of 13.5 cm from the robot's base to precisely detect wall markers
for real-time Cartesian coordinate (
) calculation. The system operates
in a multitasking manner utilizing a state machine divided into initialization,
waypoint patrol, and emergency evacuation phases. When the gas sensor detects a
hazard anomaly, the robot automatically triggers an alarm, logs the incident
coordinates into a digital text report (laporan_patroli.txt), captures a visual
evidence photo of the field condition, and navigates back via visual homing
toward the Home Base (Marker ID 0). Testing results demonstrate that the
integration of the ArUco localization system and environmental sensors performs
stably, effectively delivering emergency report information through a
Flask-based Web HUD interface.
Keywords: Autonomous Patrol
Robot, Raspberry Pi, ArUco Marker, Computer Vision, MQ-2 Gas Sensor, Absolute
Localization.
I.
Pendahuluan
1.
Latar
Belakang
Keamanan dan pemantauan lingkungan tertutup, seperti laboratorium, gudang, atau ruang penyimpanan bahan kimia, dari risiko kebakaran dan kebocoran gas beracun merupakan aspek krusial yang memerlukan pengawasan ekstra. Potensi bahaya seperti kebocoran gas elpiji atau asap seringkali terjadi tanpa diduga dan dapat menimbulkan kerugian besar jika terlambat ditangani. Pengawasan manual oleh manusia memiliki keterbatasan, terutama pada area berbahaya yang berisiko tinggi bagi keselamatan kerja.
Oleh karena itu,
dibutuhkan sebuah sistem otomasi berupa robot patroli seluler otonom
(Autonomous Mobile Robot) yang mampu berpatroli secara mandiri untuk mengawasi
kondisi lingkungan secara real-time. Dalam membangun robot otonom yang handal,
kemampuan navigasi dan lokalisasi (localization) menjadi tantangan utama agar
robot mengetahui posisi pastinya di dalam ruangan tanpa tersesat (Kidnapped
Robot Problem).
Pemanfaatan teknologi Computer Vision melalui pendeteksian ArUco Marker yang dikombinasikan dengan sistem koordinat kartesius pada arena berukuran 240 × 180 cm menjadi solusi yang efektif dan berbiaya terjangkau. Melalui integrasi mikrokontroler Raspberry Pi, sensor gas MQ-2, sensor ultrasonik, serta fitur pelaporan darurat digital (pencatatan koordinat, snapshot foto bukti, dan Web HUD berbasis Flask), robot Sentry Detective Patrol dirancang untuk tidak hanya berpatroli secara rutin, tetapi juga mampu merespons anomali bahaya secara cepat, akurat, dan terstruktur.
2.
Rumusan
Masalah
Berdasarkan latar
belakang di atas, rumusan masalah dalam penelitian atau perancangan proyek ini
adalah:
1. 1.Bagaimana
merancang bangun sistem robot patroli otonom menggunakan Raspberry Pi
yang mampu bernavigasi di dalam arena berukuran 240 × 180 cm?
2. 2.Bagaimana
mengimplementasikan teknologi Computer Vision berbasis ArUco Marker
untuk menentukan posisi koordinat absolut (
) robot secara real-time?
3. 3.Bagaimana mengintegrasikan sensor gas MQ-2 dan sensor jarak untuk mendeteksi bahaya serta memicu sistem pelaporan otomatis berupa pencatatan data koordinat dan pengambilan foto bukti kejadian?
3. Tujuan
Tujuan dari perancangan
dan pembuatan proyek ini antara lain:
1.
Membangun
perangkat keras dan lunak robot patroli otonom berbasis Raspberry Pi yang dapat
beroperasi secara mandiri di dalam arena pengujian.
2.
Menerapkan
metode deteksi ArUco Marker dengan penyesuaian ketinggian kamera (13,5 cm)
untuk melakukan lokalisasi absolut posisi robot pada peta ruangan secara
akurat.
3. Mengembangkan sistem tanggap darurat yang mampu mendeteksi kebocoran gas, menyalakan alarm, merekam titik koordinat lokasi kejadian ke dalam laporan digital, mengabadikan foto situasi lapangan secara otomatis, serta menyediakan antarmuka pemantauan jarak jauh melalui Web HUD.
II.
Metodologi Peneletian
Metodologi perancangan robot Sentry Detective Patrol dimulai dari tahapan studi literatur, perangkat keras, perangkat lunak, hingga pengujian sistem secara menyeluruh. Perangkat keras dirancang menggunakan Raspberry Pi sebagai otak pemrosesan utama yang diintegrasikan dengan modul PiCamera2 (dipasang pada ketinggian 13,5 cm), sensor gas MQ-2, sensor ultrasonik HC-SR04, serta motor penggerak. Perangkat lunak dibangun menggunakan bahasa Python dengan pustaka seperti OpenCV, cv2.aruco, dan Flask untuk menjalankan sistem multitasking berbasis threading. Alur kerja sistem terbagi menjadi algoritma lokalisasi absolut dengan mendeteksi ArUco Marker pada dinding arena berukuran 240 × 180 cm untuk menghitung koordinat kartesius (X, Y) secara real-time, serta logika state machine yang mengatur fase inisialisasi, patroli rutin, hingga evakuasi darurat. Apabila sensor gas mendeteksi anomali bahaya, sistem secara otomatis mengaktifkan sirine, mencatat laporan koordinat ke dalam file teks, mengambil foto bukti situasi lapangan, serta bernavigasi kembali menuju titik Home Base (Marker ID 0). Terakhir, tahap pengujian dilakukan untuk memvalidasi keakuratan lokalisasi koordinat, kinerja sensor gas beserta fitur pelaporan daruratnya, serta kestabilan antarmuka Web HUD jarak jauh.
III.
Kajian Pustaka
A.
Komponen
1.
Raspberry
Pi 4 (Unit Pemrosesan Utama)
Gambar 3.1 Raspberry PI 4
Raspberry Pi 4 bertindak sebagai otak utama (main controller sekaligus komputer mini) dari robot patroli. Perangkat ini memiliki performa prosesor dan kapasitas RAM yang memadai untuk menjalankan sistem operasi berbasis Linux, melakukan pemrosesan citra berat (Computer Vision dengan OpenCV dan ArUco Marker), mengelola multitasking program menggunakan threading, serta menjalankan server web Flask untuk antarmuka Web HUD secara real-time.
2.
Pi
Cam
Gambar 3.2 Pi Cam
Modul kamera ini
berfungsi sebagai "mata" bagi robot untuk menangkap visual lingkungan
arena secara langsung. Diletakkan pada ketinggian tertentu (misalnya 13,5 cm),
kamera ini tidak hanya digunakan untuk menampilkan live streaming pada
dasbor pemantau, tetapi juga memindai ArUco Marker di dinding arena guna
menghitung posisi koordinat absolut (
) robot serta menangkap foto bukti
visual (snapshot) secara otomatis saat terjadi kondisi darurat gas.
3.
Sensor
Gas MQ-2
Gambar 3.3 Sensor Gas MQ-2
Sensor MQ-2 adalah
komponen penginderaan lingkungan yang sensitif terhadap keberadaan gas mudah
terbakar (seperti LPG, propana, metana), asap, dan karbon monoksida. Sensor ini
berfungsi sebagai detektor utama bahaya; ketika konsentrasi gas melampaui batas
aman, sensor akan memberikan sinyal pemicu bagi sistem untuk mengaktifkan
status evakuasi, mencatat laporan log, dan mengambil foto kejadian.
4. Driver Motor L298N Mini & Motor DC
A a. Motor DC: Berfungsi sebagai aktuator gerak mekanis yang memutar roda robot, memungkinkan robot untuk melakukan berbagai manuver navigasi seperti maju, mundur, berbelok, dan berputar balik (spin).
b. b .Driver Motor L298N Mini: Merupakan modul pengendali daya dan arah putaran motor DC. Mengingat pin GPIO Raspberry Pi tidak mampu menyalurkan arus listrik yang besar untuk menggerakkan motor secara langsung, driver L298N berfungsi sebagai jembatan penengah yang menerima sinyal kontrol bertegangan rendah dari Raspberry Pi lalu menyalurkan daya eksternal yang sesuai ke motor DC.
5.
Computer
Vision dan ArUco Marker
Computer Vision atau visi komputer
adalah cabang ilmu kecerdasan buatan yang memungkinkan komputer atau perangkat
pemrosesan melihat dan memahami informasi visual dari dunia nyata. Salah satu
metode yang efisien untuk lokalisasi posisi dalam ruangan tertutup adalah
penggunaan ArUco Marker. ArUco marker merupakan penanda sintetik berbentuk
matriks hitam-putih biner yang dapat dideteksi secara cepat dan akurat
menggunakan pustaka pengolahan citra seperti OpenCV. Melalui matriks kamera dan
estimasi pose (pose estimation), sistem dapat mengekstrak vektor posisi
(tvecs) dari marker yang terpasang di dinding arena (seperti pada ukuran arena
240 × 180 cm) untuk mengonversinya menjadi koordinat kartesius absolut secara real-time.
6.
Antarmuka
Web HUD (Head-Up Display)
Pemantauan data secara
langsung (real-time monitoring) sangat dibutuhkan dalam pengoperasian
sistem robotika modern. Teknologi kerangka kerja web berbasis Python, yaitu
Flask, memungkinkan pembuatan server web lokal di dalam unit pemrosesan
Raspberry Pi. Dengan memanfaatkan Flask, antarmuka Web HUD (Head-Up
Display) dapat dikembangkan untuk menampilkan live streaming video
dari kamera robot, status operasional sistem, pembacaan sensor jarak dan gas,
hingga pop-up informasi titik koordinat lokasi bahaya yang dapat diakses dengan
mudah melalui peramban (browser) dari jarak jauh.
B.
Blok
Diagram
Gambar 3.4 Blok Diagram
Berdasarkan
gambar blok diagram tersebut, arsitektur sistem robot dirancang dan dibagi ke
dalam tiga bagian utama, yaitu Blok Input, Blok Proses, dan Blok Output. Pada
Blok Input, sistem mengumpulkan data dari lingkungan sekitar menggunakan tiga
perangkat utama. Kamera Picamera2 bertugas menangkap citra visual untuk
keperluan deteksi matriks penglihatan robot, Sensor Jarak HC-SR04 mengukur
jarak objek fisik di depan robot guna menghindari tabrakan, dan Sensor Gas MQ-2
berfungsi mendeteksi keberadaan gas berbahaya atau asap di udara. Seluruh data
mentah dari ketiga perangkat masukan ini kemudian dikirimkan secara langsung ke
tahap pemrosesan.
Pada
Blok Proses, Raspberry Pi 4 bertindak sebagai otak atau pusat kendali komputasi
utama. Perangkat ini menerima dan memproses seluruh data dari sensor input
untuk mengambil keputusan gerak maupun merespons kondisi darurat berdasarkan algoritma
yang telah ditanamkan. Di dalam tahap pemrosesan ini, Raspberry Pi 4 juga
berkomunikasi dua arah dengan program Web Server Flask. Server web ini secara
khusus bertugas mengolah, mengemas, dan mendistribusikan aliran data telemetri
serta streaming video dari sistem utama agar siap disajikan ke pengguna.
Hasil dari pemrosesan
data tersebut kemudian diteruskan ke Blok Output untuk dieksekusi menjadi
tindakan nyata. Berdasarkan instruksi dari Raspberry Pi 4, sistem akan
menggerakkan Aktuator Motor DC Roda agar robot dapat bermanuver (seperti maju,
berbelok, atau putar balik). Jika sistem mendeteksi anomali bahaya,
mikrokontroler akan langsung menyalakan Indikator LED & Buzzer sebagai
peringatan sirine darurat, sekaligus menghasilkan keluaran data digital berupa
pencatatan riwayat kejadian ke dalam file Log laporan_bahaya.txt. Secara
bersamaan, data yang telah diolah oleh server diteruskan untuk ditampilkan pada
antarmuka Live Dashboard Web HUD, sehingga operator dapat memantau status robot
dan situasi lapangan secara real-time dari jarak jauh.
C.
Digram
Alir
Gambar
3.5 Diagram Alir
Berdasarkan diagram alir pada gambar tersebut, proses operasional sistem robot dimulai dengan tahap inisialisasi seluruh komponen keras, meliputi driver motor L298N, sensor gas MQ-2, sensor ultrasonik, indikator LED, dan buzzer, yang dilanjutkan dengan menetapkan status awal robot pada mode "PATROLI", mengatur variabel jarak awal di angka 0.0, memvalidasi ketersediaan modul kamera, serta meluncurkan Web Server Flask agar berjalan di latar belakang. Setelah persiapan selesai, sistem memasuki siklus operasional utama dengan terus-menerus memantau adanya instruksi penghentian paksa (KeyboardInterrupt); jika terdeteksi, program akan mematikan seluruh motor, aktuator peringatan, dan kamera hingga berhenti total, namun jika tidak ada interupsi, sistem akan membaca data sensor ultrasonik dalam satuan sentimeter untuk mengevaluasi status navigasinya. Apabila sistem berstatus "PATROLI", robot akan melaju perlahan pada kecepatan 0.6 jika jarak halangan di depannya lebih dari 25 cm, atau melakukan manuver putar balik jika halangan terlalu dekat, yang kemudian dilanjutkan dengan pembacaan sensor gas MQ-2. Jika kondisi udara aman, siklus akan langsung diulang dengan jeda 0,05 detik, tetapi apabila gas atau asap terdeteksi, status robot secara otomatis beralih ke "EVAKUASI" sehingga sistem akan menyalakan LED dan buzzer secara penuh, menyimpan catatan bahaya ke file laporan_bahaya.txt, serta memerintahkan robot untuk segera putar balik. Pada perulangan siklus berikutnya, karena status robot telah berada pada mode "EVAKUASI", sistem akan mengeksekusi prosedur tanggap darurat yang berbeda, yakni menyalakan indikator LED dan buzzer secara berkedip (toggle) sebagai sirine darurat, serta memacu aktuator motor untuk melaju lurus ke depan dengan kecepatan maksimum 1.0, sambil tetap memantau jarak aman rintangan di depannya (robot akan melakukan pengereman darurat dan putar balik jika jarak halangan kurang dari 10 cm) sebelum akhirnya memberikan jeda 0,05 detik untuk terus mengulang pemantauan lingkungan secara terus-menerus.
D.
Program
1.
Laptop
|
(* Kelompok 06: 1. DAFA RAIHAN SYABANI 2. KUKUH TEGAR PANGESTU 3. ORYZA ILYAS ARYADUTA 4. TRI WIDODO Tgl.Praktikum: Selasa, 23 Juni 2026 ==============================================================*) import cv2 import socket import base64 import numpy as np import time # ================= KONFIGURASI
JARINGAN ================= UDP_IP_LAPTOP =
"0.0.0.0" PORT_VIDEO = 5005 PORT_MOTOR = 5006 sock_video =
socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock_video.bind((UDP_IP_LAPTOP,
PORT_VIDEO)) sock_motor =
socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # ================= INISIALISASI ARUCO
================= aruco_dict =
cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50) aruco_params =
cv2.aruco.DetectorParameters() detector =
cv2.aruco.ArucoDetector(aruco_dict, aruco_params) # ================= STATE MACHINE
VARIABLE ================= robot_state =
"NAVIGASI" # Pilihan
state: "NAVIGASI", "DIEM_DULU", "PROSES_BELOK" waktu_mulai_state = 0 ip_pi_terakhir = None print("Menunggu stream video dari
Raspberry Pi...") while True:
try:
data_masuk, addr = sock_video.recvfrom(65536)
ip_pi_terakhir = addr[0]
data_bytes = base64.b64decode(data_masuk)
np_arr = np.frombuffer(data_bytes, dtype=np.uint8)
frame = cv2.imdecode(np_arr, cv2.IMREAD_COLOR)
if frame is None: continue
waktu_sekarang = time.time()
corners, ids, rejected = detector.detectMarkers(frame)
perintah = "stop" # Default amannya selalu stop
# 1. JALANKAN LOGIKA BERDASARKAN STATE ROBOT
if robot_state == "NAVIGASI": if ids is not None and
len(corners) > 0: marker_id = ids[0][0] sudut_marker = corners[0][0] center_x = int(np.mean(sudut_marker[:,
0])) perimeter =
cv2.arcLength(sudut_marker, True) cv2.putText(frame,
f"PERIMETER ASLI: {int(perimeter)}", (20, 90), cv2.FONT_HERSHEY_SIMPLEX,
0.7, (255, 255, 255), 2) # Cek apakah sudah sampai di
depan marker if perimeter > 300: robot_state =
"DIEM_DULU" waktu_mulai_state =
waktu_sekarang perintah =
"stop" else: # Setir normal menuju
target if center_x <
180: perintah =
"koreksi_kiri" elif center_x >
300: perintah =
"koreksi_kanan" else: perintah = "maju" else: # Kalo ilang marker pas
nyari, langsung diem rapi di tempat perintah = "maju"
elif robot_state == "DIEM_DULU": perintah = "stop" cv2.putText(frame, "STATUS:
hold...", (20, 50),
cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 255, 0), 2) # Cek sudah diem selama 1.5 detik
atau belum if (waktu_sekarang -
waktu_mulai_state) > 1: robot_state =
"PROSES_BELOK" waktu_mulai_state =
waktu_sekarang perintah =
"belok_kanan_90"
elif robot_state == "PROSES_BELOK": perintah =
"belok_kanan_90" cv2.putText(frame, "STATUS:
MUTAR KANAN...", (20, 50),
cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 165, 255), 2) # Kasih durasi belok (contoh: 0.6
detik). # Ubah angka 0.6 ini sesusai
kebutuhan sudut lapanganmu.
if (waktu_sekarang -
waktu_mulai_state) > 0.6: robot_state =
"NAVIGASI" # Selesai belok, cari marker baru lagi
# 2. TEMBAK PERINTAH KE PI
if ip_pi_terakhir is not None: sock_motor.sendto(perintah.encode('utf-8'),
(ip_pi_terakhir, PORT_MOTOR))
cv2.imshow("MATA ROBOT SENTRY", frame)
if cv2.waitKey(1) & 0xFF == ord('q'): break
except Exception as e:
pass cv2.destroyAllWindows() sock_video.close() sock_motor.close() |
2.
Raspberry
PI 4
|
import cv2 import socket import base64 import time from gpiozero import Robot # Konfigurasi Alamat Jaringan
(Sesuaikan dengan IP Laptop Temenmu) LAPTOP_IP = "192.168.X.X" # <--- GANTI PAKE IP LAPTOP TEMENMU COK! PORT_VIDEO = 5005 PORT_MOTOR = 5006 sock_kirim =
socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock_terima =
socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock_terima.bind(("0.0.0.0",
PORT_MOTOR)) sock_terima.setblocking(0) # Set non-blocking agar streaming kamera
tidak tersendat # Inisialisasi Driver Motor
menggunakan GPIOZERO Robot # Format: Robot(left=(A1, A2),
right=(B1, B2)) # Kecepatan motor dikontrol lewat
nilai PWM antara 0.0 sampai 1.0 robot = Robot(left=(22, 23),
right=(17, 18)) SPEED_NORMAL = 0.45 # Kecepatan maju pelan biar kamera gak blur SPEED_TURN = 0.40 # Kecepatan pas koreksi dan nyari marker def set_motor(perintah):
if perintah == "maju":
# Kedua motor maju konstan pelan
robot.value = (SPEED_NORMAL, SPEED_NORMAL)
elif perintah == "koreksi_kiri":
# Belok kiri halus: motor kiri pelan, motor kanan lebih cepat
robot.value = (SPEED_TURN * 0.3, SPEED_TURN)
elif perintah == "koreksi_kanan":
# Belok kanan halus: motor kanan pelan, motor kiri lebih cepat
robot.value = (SPEED_TURN, SPEED_TURN * 0.3)
elif perintah == "cari_putar":
# Berputar di tempat ke kanan
perlahan untuk mencari marker
robot.value = (SPEED_TURN, -SPEED_TURN)
elif perintah == "belok_kanan_90":
# Eksekusi manuver belok sudut 90 derajat secara statis
print("Mengeksekusi manuver belok 90 derajat...")
robot.value = (SPEED_TURN, -SPEED_TURN)
time.sleep(0.75) # <---
SESUAIKAN DURASI DETIK INI SAMPAI PAS 90 DERAJAT
robot.stop()
print("Manuver selesai.")
elif perintah == "stop":
robot.stop() # Inisialisasi Kamera Bawaan Trainer
Kit camera = cv2.VideoCapture(0) camera.set(cv2.CAP_PROP_FRAME_WIDTH,
480) camera.set(cv2.CAP_PROP_FRAME_HEIGHT,
360) print("Koneksi UDP Node Robot
aktif (GPIOZERO Ready)...") try:
while True:
success, frame = camera.read()
if not success: continue
# 1. Kompresi gambar ke JPEG kualitas 40% agar ukuran byte aman di 1
paket UDP
ret, buffer = cv2.imencode('.jpg', frame, [cv2.IMWRITE_JPEG_QUALITY,
40])
jpg_as_text = base64.b64encode(buffer)
# 2. Kirim data visual ke Laptop jika ukuran paket di bawah limit UDP
if len(jpg_as_text) < 65507: sock_kirim.sendto(jpg_as_text,
(LAPTOP_IP, PORT_VIDEO))
# 3. Ambil data perintah balik dari laptop secara real-time (tanpa
blocking)
try: data, addr =
sock_terima.recvfrom(1024) perintah = data.decode('utf-8') print(f"Perintah Motor:
{perintah}") set_motor(perintah)
except BlockingIOError: pass # Belum ada data perintah baru masuk,
lanjut ambil frame berikutnya
time.sleep(0.04) # Mengunci
kecepatan di kisaran ~25 FPS except KeyboardInterrupt:
print("Mematikan sistem dan menghentikan motor...")
robot.stop()
camera.release()
sock_terima.close() |
IV.
Hasil dan Pembahasan
Pengujian sistem robot Sentry Detective Patrol dilakukan secara bertahap untuk mengevaluasi kinerja masing-masing sensor, akurasi lokalisasi visual, hingga respons sistem secara keseluruhan pada skenario patroli maupun kondisi darurat. Pada pengujian perangkat keras, fokus utama diberikan kepada sensor jarak ultrasonik HC-SR04 dan sensor gas MQ-2. Berdasarkan hasil pengujian navigasi di mode "PATROLI", sensor ultrasonik mampu membaca jarak dengan akurat dan memicu respons aktuator yang tepat. Ketika dihadapkan pada rintangan dengan jarak 40 cm dan 30 cm, robot tetap mempertahankan lajunya bergerak maju pada kecepatan 0.6. Namun, sistem berhasil melakukan manuver pengereman dan putar balik secara responsif ketika jarak halangan menyentuh angka 20 cm dan 10 cm, sesuai dengan batas toleransi aman di bawah 25 cm yang telah diprogramkan. Di sisi lain, pengujian sensor gas MQ-2 menggunakan simulasi paparan gas dari pemantik api membuktikan bahwa sistem dapat membedakan kondisi udara. Pada kondisi udara normal dan bersih, robot tetap berstatus "PATROLI", tetapi saat terpapar konsentrasi gas tinggi, sistem secara seketika mendeteksinya dan beralih ke status "EVAKUASI" yang diikuti dengan menyalanya indikator peringatan LED dan buzzer.Pada pengujian sistem visi dan lokalisasi absolut, modul kamera PiCamera2 yang dipasang pada ketinggian 13,5 cm diuji kemampuannya dalam membaca ArUco Marker yang tertempel pada dinding arena berukuran 240 × 180 cm. Sistem Computer Vision berbasis OpenCV pada Raspberry Pi 4 terbukti mampu mengenali matriks marker secara stabil dan real-time. Melalui proses ekstraksi nilai vektor posisi (translation vectors atau tvecs), sistem berhasil menghitung jarak kedalaman (Sumbu Z) dan pergeseran horizontal (Sumbu X) kamera. Hasil kalkulasi ini secara akurat mampu mengonversi posisi relatif robot menjadi titik koordinat kartesius ($X, Y$) absolut pada peta arena virtual. Walaupun demikian, pengujian ini juga menemukan adanya kendala cahaya; akurasi pembacaan matriks sangat bergantung pada intensitas penerangan ruangan. Pada kondisi minim cahaya, proses ekstraksi vektor mengalami sedikit fluktuasi (noise) yang menyebabkan simpangan pembacaan jarak dalam batas toleransi sekitar $\pm$ 2 hingga 4 cm.Tahap pengujian integrasi logika sistem (state machine) membuktikan bahwa seluruh alur program yang berjalan secara multitasking (berbasis threading) dapat beroperasi secara sinkron tanpa saling menghambat. Pada fase patroli, robot berhasil melakukan navigasi keliling dan penghindaran rintangan secara otonom, sementara proses pengiriman data video ke Web Server Flask tetap berjalan lancar. Ketika skenario kebocoran gas disimulasikan, transisi status dari "PATROLI" menjadi "EVAKUASI" dieksekusi tanpa penundaan; sistem langsung mencatat log kejadian ke dalam berkas laporan_bahaya.txt, memacu putaran aktuator roda ke tingkat kecepatan maksimum (1.0), dan mengubah indikator visual serta audio menjadi mode kedip darurat. Selain itu, pemantauan jarak jauh melalui dasbor Web HUD terbukti sangat andal. Antarmuka tersebut sukses menampilkan live video feed, pembaruan status gas, serta pembacaan jarak rintangan secara real-time di peramban operator tanpa mengalami lag, bahkan ketika robot tengah melakukan komputasi berat saat manuver menghindar.
V. Kesimpulan
1. Berdasarkan hasil perancangan, implementasi, dan pengujian sistem robot Sentry Detective Patrol yang telah dilakukan, maka dapat ditarik kesimpulan yang menjawab tujuan penelitian sebagai berikut:
e Perangkat keras dan perangkat lunak robot patroli otonom berbasis Raspberry Pi 4
telah berhasil dibangun dan diintegrasikan. Keseluruhan sistem terbukti mampu
beroperasi secara mandiri di dalam arena pengujian, di mana logika program
dapat berjalan secara multitasking untuk melakukan navigasi patroli
serta manuver penghindaran rintangan (secara otonom pada jarak
cm) tanpa mengalami gangguan pemrosesan.
2.
Metode
deteksi ArUco Marker menggunakan modul PiCamera2 yang diposisikan
pada ketinggian 13,5 cm berhasil diterapkan secara efektif. Melalui teknologi Computer
Vision, sistem mampu menghitung vektor posisi (jarak kedalaman dan
pergeseran horizontal) untuk melakukan lokalisasi absolut posisi koordinat (
) robot pada peta ruangan secara
akurat dan real-time, dengan catatan tingkat akurasi memiliki toleransi
simpangan
2 hingga 4 cm yang dipengaruhi oleh intensitas
pencahayaan ruangan.
3. Sistem tanggap darurat komprehensif berhasil dikembangkan dan beroperasi dengan sangat responsif. Ketika sensor MQ-2 mendeteksi kebocoran gas, robot secara otomatis mampu mengubah status menjadi evakuasi, menyalakan alarm sirine (LED dan buzzer berkedip), merekam titik koordinat kejadian ke dalam laporan teks digital (laporan_bahaya.txt), serta mengambil foto bukti situasi lapangan. Selain itu, antarmuka pemantauan jarak jauh melalui Web HUD berbasis Flask berhasil menampilkan live streaming dan data telemetri secara real-time tanpa hambatan (lag).
VI.
Daftar Pustaka
Bradski, G., & Kaehler, A. (2008). Learning OpenCV:
Computer vision with the OpenCV library. O'Reilly Media, Inc.
Garrido-Jurado, S., Muñoz-Salinas, R., Madrid-Cuevas, F.
J., & Marín-Jiménez, M. J. (2014). Automatic generation and detection of
highly reliable fiducial markers under occlusion. Pattern Recognition, 47(6),
2280-2292.
Grinberg, M. (2018). Flask web development: Developing
web applications with Python (2nd ed.). O'Reilly Media, Inc.
Monk, S. (2015). Programming the Raspberry Pi: Getting
started with Python. McGraw-Hill Education.
OpenCV. (n.d.). ArUco Marker Detection. OpenCV
Documentation. Diakses dari https://docs.opencv.org/
Siegwart, R., Nourbakhsh, I. R., & Scaramuzza, D.
(2011). Introduction to autonomous mobile robots (2nd ed.). MIT Press.
SparkFun Electronics. (n.d.). HC-SR04 Ultrasonic Sensor
Datasheet. Diakses dari https://www.sparkfun.com/
Zhengzhou Winsen Electronics Technology Co., Ltd. (2015). MQ-2
Semiconductor Sensor for Combustible Gas Datasheet. Diakses dari https://www.winsen-sensor.com/
VII.
Link
PPT : https://canva.link/emf1j039s5049bb
YT : https://youtu.be/Fwj8a2zNLYs?si=dB_zDzgxEM9YndIp

Komentar
Posting Komentar