Anda di halaman 1dari 11

Resume dan Analisis Paper

“’Drums’: a Middleware-Aware Distributed Robot Monitoring System”

Timotius Putra Sudjarwo


1906354274

1. Abstract

Pada paper ini, dijelaskan alat buatan penulis yang merupakan Drums, yaitu alat baru
untuk monitoring dan debugging sistem robot terdistribusi yang dapat:

a. bekerja sama dengan sistem middleware robot lainnya,


b. menyediakan monitoring (secara online time-series) dari underlying resource
yang sebagiannya dibuat abstrak oleh middleware (seperti Robot Operating
System atau ROS),
c. dan melakukan de-abstraction dan de-multiplexing dari middleware untuk
menampakkan interaksi system-level antara controller code, middleware, OS,
dan environment robot.

Selain itu, paper juga menunjukkan contoh utility dari Drums yang digunakan untuk
debugging masalah realistis. Utility tersebut diajukan sebagai alat untuk monitoring
quality of service dan introspection untuk robust autonomous systems.
2. Scope And Motivation

Penggunaan middleware robot telah meningkat selama dekade terakhir ini.


Sarana-sarana untuk assembly sistem robot secara cepat (seperti ROS) telah
meningkatkan produktivitas. Salah satu alasan mengapa sarana tersebut dapat bekerja
dengan sangat cepat adalah akibat abstraksi yang dilakukannya. Sebagai contoh, pada
ROS, komunikasi antar komponen dilakukan melalui channel publish-subscribe yang
disebut topics (dimana topics sendiri merupakan task kompleks yang dilakukan dalam
ROS yang telah di-abstraksi untuk menjadi lebih sederhana). Akan tetapi, akibat adanya
abstraksi, failure dan resource constraint pada underlying mechanisms tidak dapat
terlihat. Contohnya dapat dilihat pada lingkungan lab dimana failure biasanya
merupakan kabel yang tidak terhubung, koneksi jaringan wireless yang kurang baik,
dll. Salah satu tujuan dari Drums adalah untuk menemukan bug-bug seperti itu dengan
lebih cepat dimana tujuan utama Drums adalah untuk menyediakan suatu infrastruktur
yang mudah digunakan dan berbiaya rendah untuk resource introspection pada sistem
robot terdistribusi.
3. ACHIEVEMENTS
a. Drums di-desain untuk diintegrasikan serta bekerja sama dengan middleware
robot, sehingga apa yang dilakukan terhadap sistem jaringan komputer milik
user akibat interaksi dari user code, middleware, devais dobot, dan lingkungan
dapat dibuat jelas terlihat.
b. Berikut merupakan beberapa fitur yang dimiliki Drums (untuk saat ini):
i. monitoring dari computation graph yang dibuat oleh middleware robot
(berikut merupakan contoh computation graph),

ii. de-abstraction serta de-multiplexing dari abstract services dan


communication channels menjadi native processes dan network
channels,
iii. monitoring dinamis dari native resources dan juga perhost resources
(CPU load, free RAM, disk space),
iv. dan aggregation biaya rendah dari data tersebut menjadi central
timeseries database.
c. Output dari Drums dapat di-mine dan divisualisasikan dengan alat third-party
(berdasarkan queries pada time-series database). Hal tersebut dapat
meningkatkan operational awareness dari manusia (operator) dari sistem robot.
d. Drums dapat digunakan sebagai data collection layer biaya rendah untuk fault
detection dan sistem diagnosis.
4. APPROACH
a. Common Representation Model

Pertama, penulis mendefinisikan generic model of robot systems yang


tidak bergantung dengan pilihan middleware. Model dipetakan dekat kepada
native OS resources, dan distributed monitoring infrastructure akan
mengumpulkan informasi dari berbagai sumber untuk menjelaskan state dari
model seiring waktu.

Penulis mendefinisikan model representasi umum dengan menghapus


abstraksi hasil arsitektur middleware, lalu menentukan suatu computation graph
yang hanya terdiri dari operating entities. Computation graph G terdiri dari set
of n processing nodes N = {N1, N2, …, Nn} dan set of k directed connections
between nodes C = {C1, C2, …, Ck}. Nodes dapat bervariasi dari low level
hardware interfaces hingga high-level decision-making units dan dari individual
software modules hingga entire processes. Setiap koneksi Ci adalah
communication link (asinkron atau sinkron, berbasis memori atau berbasis
jaringan) antara dua atau banyak node. Nodes di-host pada satu set of m
computation units H = {H1, H2, …, Hm}. Setiap node di-host oleh tepat satu
host. Tingkat granularity dari node definition dan jenis koneksi antara mereka
menentukan jenis dan tingkat instrumentation yang diperlukan untuk
monitoring grafik.

Dengan demikian, tingkat granularity dari computation graph


tergantung pada spesifikasi desain alat monitoring. Untuk Drums spesifikasinya
sebagai berikut:

i. Overhead rendah (terkait resource consumption)


ii. Kemudahan deployment
iii. Tidak ada instrumentation di luar apa yang dapat disediakan oleh host
operating system and target middleware.

Untuk memenuhi (iii) penulis memilih untuk membatasi tingkat granularity


node ke operating system processes dan network sockets.

Sepengetahuan penulis, tidak ada platform middleware robotik saat ini


yang dapat menyediakan metode terdistribusi untuk monitoring penggunaan
resource dari computation graphs mereka. Ada beberapa middleware robot
yang menyediakan alat monitoring ad-hoc untuk subset dari elemen
computation graphs mereka. Namun, alat-alat tersebut tidak didistribusikan
atau tidak mencakup semua elemen computation graphs.

b. Architecture

Drums terdiri dari sebuah proses statistics collector dan sebuah client
library untuk agregasi. Collector process beroperasi pada setiap host dari
computation graph dan mengumpulkan statistik mengenai elemen-elemen
graph yang dapat diakses dari host. Collector process menyediakan interface
berbasis HTTP untuk konfigurasi runtime dari monitoring jobs. Selain itu,
collector juga mendorong data yang dikumpulkan ke client library untuk
agregasi melalui publish/subscribe channel. Untuk memanfaatkan Drums, perlu
dibuat suatu adaptor bagi setiap target middleware untuk menerjemahkan status
middleware ke dalam computation graph. Sebagian besar dari program Drums
dibuat dengan bahasa Python (beberapa performance critical tasks
diimplementasikan sebagai library C) dan diuji dengan Linux.

Berikut merupakan diagram architecture Drums:

i. Drums Collector

Drums collector merupakan aplikasi Python daemon yang


mengumpulkan statistik dari elemen computation graph yang berjalan
pada setiap host. Data dikumpulkan dengan menggunakan beberapa
monitoring modules. Setiap monitoring module beroperasi dalam proses
terpisah dengan interval sampling yang dapat dikonfigurasi. Untuk saat
ini, ada empat jenis monitoring module yang telah diimplementasikan
(Monitoring module baru dapat ditambahkan sebagai plugin), yaitu:

1. Process Monitor mengumpulkan informasi tentang operating


system processes spesifik yang beroperasi pada host,
2. Host Monitor men-aggregate data resource utilization mengenai
komputer host,
3. Socket Monitor memantau quality of service untuk setiap socket
yang ditentukan,
4. dan Latency Monitor merupakan program multi-target ping
untuk mengukur host-to-host latency.

Kolektor menanamkan sebuah server yang menyediakan API berbasis


HTTP untuk mendaftarkan atau menghapus monitoring tasks dengan
API untuk mengakses data monitoring baik secara sinkron maupun
asinkron.

ii. Drums Client Library


c. Visualization and Anomaly Detection

Karena Drums menghasilkan terlalu banyak raw data untuk dipahami


user dengan mudah, data harus di-filter dan divisualisasikan sebelum dapat
digunakan untuk debugging. Untuk visualisasi, penulis menggunakan realtime
time-series dashboard yang bernama Graphite. Graphite merupakan web based
front-end untuk database Whisper yang men-generate grafik berdasarkan
customizable queries. Karena metrik mana yang penting tidak selalu diketahui,
digunakan data-driven anomaly detection software “Skyline” untuk mengamati
semua metrik secara bersamaan. Skyline menggunakan konsensus beberapa uji
statistik untuk menemukan ketidaksesuaian antara data point terkini dengan
riwayat untuk setiap time series. Untuk pengukuran akumulatif seperti counter,
turunan time series juga diinputkan ke Skyline. Untuk eksperimen pada paper
ini, collector process dikonfigurasikan untuk mengumpulkan metrik setiap 1
detik dan anomaly detector dikonfigurasi untuk beroperasi setiap 5 detik.
5. FAULTY ROUTER EXPERIMENT

Dalam eksperimen ini, penulis menggunakan Drums untuk mendeteksi dan


mengisolasi sebuah fault pada peralatan network. Fault merupakan kesalahan riil yang
mengganggu eksperimen human-multi-robot. Menemukan fault ini tanpa menggunakan
Drums membutuhkan debugging selama berjam-jam.

Tiga AR-Drone terhubung melalui Wifi (802.11n) ke suatu router wireless. Dari
router ini, koneksi jaringan melewati gigabit Ethernet kepada komputer dedicated
(CPU Intel Core i7 dengan RAM 8GB) untuk setiap drone. Di setiap komputer, realtime
vision software yang men-subscribe kepada suatu high-definition video stream dari satu
drone lainnya untuk mendeteksi manusia dan gerakannya. Selain itu, software
dijalankan di setiap komputer untuk mengendalikan perilaku robot. Selama percobaan
awal penulis mengamati bahwa sistem tidak dapat di-scaling dengan baik dari dua
menjadi tiga robot. Gejalanya adalah sistem tidak responsif ketika tiga host berjalan
secara bersamaan. Diperlukan upaya debugging yang besar untuk menemukan
masalahnya. Dalam demonstrasi ini, penulis melakukan eksperimen sebelumnya
dengan perangkat keras yang sama. Selain itu, penulis juga menggunakan Drums untuk
melihat apakah anomali dapat ddeteksi dan kesalahan dapat diisolasi.

Setelah ketiga robot dinyalakan, penulis memulai software vision dan control
pada setiap host secara bergantian dengan interval 60 detik. Penulis menghentikan
software setelah 300 detik. Jumlah total performance parameters yang dimonitor
adalah 243. Dari metrik tersebut, penulis mengecualikan 102 metrik terkait host (seperti
penggunaan CPU/RAM host) karena hal ini dapat dipengaruhi oleh entities diluar
sistem monitoring dan dapat menyebabkan false positives.

Gambar dibawah menunjukkan jumlah anomali yang terdeteksi selama eksperimen.


Metrik dipecah menjadi tiga kategori: metrik terkait CPU, memori, dan I/O pada tingkat
node (process).
Ada enam puncak utama pada gambar dibawah. Puncak pada 13:41:09 dan
13:42:09 masing-masing sesuai dengan dimulainya eksekusi software host kedua dan
ketiga. Puncak utama terlihat pada 13:43:09, 13:44:09 dan 13:45:09 yang masing-
masing sesuai dengan waktu shutdown software host pertama, kedua, dan ketiga.
Namun, puncak utama pada waktu 13:42:29 mencurigakan karena terdiri terutama dari
anomali terkait I/O pada tingkat process. Pemeriksaan file log anomaly detector untuk
periode 13:42:24 hingga 13:42:39 menunjukkan bahwa ada beberapa anomali dalam
driver image publishing sockets AR-Drone untuk ketiga host.

Gambar dibawah menunjukkan grafik penggunaan bandwidth oleh socket yang


dihasilkan oleh Graphite.
Grafik menunjukkan bahwa ketika ketiga software stacks beroperasi secara
bersamaan, traffic dari image publishing sockets menurun secara signifikan untuk
ketiga robot tersebut. Dengan pengetahuan ini, penulis mempersempit pencarian
masalah menjadi dua kemungkinan yaitu wireless interference antar robot atau ada
masalah dengan router. Penulis kemudian mengganti router dengan model serupa tetapi
merk lain dan mengulangi eksperimen.

Gambar dibawah menunjukkan grafik resulting bandwidth utilization pada image


publishers sockets untuk percobaan ke-dua.

Membandingkan kedua angka grafik, penulis menarik kesimpulan bahwa router


merupakan sumber masalah.
6. CONCLUSION AND FUTURE WORK

Paper ini telah mengajukan suatu lightweight distributed monitoring tool untuk
robot dan mendemonstrasikan aplikasinya. Drums dapat membongkar abstraction
layer buatan middleware dan membuat grafik sesuai yang dapat dipetakan menjadi
monitorable system entities. Penulis menggunakan suatu generic data-driven anomaly
detector untuk menarik perhatian pengguna ke metrik yang lebih sedikit. Tentu saja,
perilaku anomalous dari suatu metrik belum tentu akibat suatu fault (false positives
dapat terjadi). Lebih lagi, metrik dengan anomali hanya memberikan petunjuk tentang
kemungkinan faults dalam sistem. Pekerjaan kedepannya adalah untuk
mengembangkan custom visualization dan fault detectors untuk sistem robot
terdistribusi yang memanfaatkan Drums dengan sepenuhnya. Salah satu arah penelitian
jangka panjang yang menarik adalah untuk menggunakan Drums sebagai introspection
tool di dalam pengendali robot, untuk mengadaptasikan perilaku robot dengan kondisi
sistem internal yang sebelumnya sulit untuk diamati.
7. Referensi:

Monajjemi, V., Wawerla, J., & Vaughan, R. (2014). Drums: A middleware-aware


distributed robot monitoring system. 2014 Canadian Conference on Computer and
Robot Vision. https://doi.org/10.1109/crv.2014.36

Anda mungkin juga menyukai