Bab Penelitian Robotika Saya
Table of Contents
Tulisan ini menceritakan perjalanan robotika saya, dimulai dengan menemukan gairah saya pada robotika di FRC selama sekolah menengah pada 2015 hingga waktu saya sebagai asisten peneliti di Colorado School of Mines’s Human Centered Robotics (HCR) Lab dari Februari 2021 sampai September 2021. Perlu dicatat bahwa sejak akhir 2022, HCR Lab telah pindah dari Colorado School of Mines ke University of Massachusetts Amherst, beserta situsnya dari hcr.mines.edu ke hcr.cs.umass.edu.
Latar Belakang
Saya memulai studi sarjana saya di Colorado School of Mines pada semester Musim Gugur 2018. Jurusan saya adalah Ilmu Komputer dengan fokus pada Robotika & Sistem Cerdas. Dan saya lulus pada Musim Semi 2022.
Saya beruntung menemukan gairah saya sejak dini dalam hidup saya. Saat di sekolah menengah, saya menghabiskan banyak waktu untuk mencari tahu apa yang saya sukai dan apa yang bisa saya kuasai. Setelah beberapa coba-coba, saya bisa mengetahui bahwa gairah saya adalah ilmu komputer. Namun juga pada masa inilah saya menemukan bahwa saya memiliki kecintaan yang kuat untuk membangun lewat kode.
Di Mines, saya mendapatkan kesempatan bekerja di Laboratorium Human Centered Robotics (HCR) Mines di bawah Dr Hao Zhang. Saya pertama kali bertemu Dr. Zhang pada Musim Semi 2020 melalui kelasnya “Human Centered Robotics” (CSCI473), dan setelah kekacauan COVID dan pekerjaan kelas, saya mulai bekerja di labnya pada awal Musim Semi 2021.
Kelas Human Centered Robotics (CSCI473)
Kelas Human Centered Robotics (CSCI473) di Mines adalah salah satu dari sedikit kelas dalam pengalaman kuliah saya yang berdampak mendalam pada saya. Kelas ini diajar oleh Dr. Hao Zhang. Seluruh nilai kami untuk kelas ini terdiri dari hanya tiga proyek, masing-masing mempersembahkan masalah menantang yang memperkenalkan konsep inti robotika. Proyek-proyek ini terdiri dari:
- Mempelajari Robot Operating System (ROS)
- Pembelajaran Penguatan untuk Robot Mengikuti Dinding
- Pemahaman Perilaku Manusia oleh Robot Menggunakan Representasi Berbasis Kerangka
Mempelajari Sistem Operasi Robot (ROS)
Ini adalah proyek pertama yang kami diberi. Proyek ini terdiri dari tiga tugas:
- Menyiapkan Lingkungan Pengembangan
- Memahami Simulator Gazebo
- Menulis “Hello World” ROS
Untuk tugas 1 dan 2, kami hanya perlu menyiapkan lingkungan pengembangan kami dan mengikuti tutorial pengantar Gazebo. Ini termasuk:
- Menyiapkan ROS Melodic, yang saya lakukan di laptop HP 2011 saya yang cukup memadai
- Menginstal dan mengonfigurasi ROS dan Gazebo
- Menjalani tutorial gazebosim dan tutorial e-manual.
Tugas 3, di sisi lain, adalah tantangan nyata. Tugasnya adalah menggunakan turtlesim dan membuat kura-kura menggambar logo “M” Mines:
![]() |
![]() |
Tugas ini, meskipun terdengar sederhana, lebih sulit dari yang terlihat. Proyek ini akhirnya memperkenalkan saya pada konsep sistem loop terbuka dan loop tertutup. Untuk deskripsi proyek lengkap, lihat csci473-p1.pdf atau Anda dapat mempelajari lebih lanjut tentang proyek ini dan solusi saya di halaman proyek ROS Move Turtle.
Pembelajaran Penguatan untuk Robot Mengikuti Dinding
Ini adalah proyek kedua yang kami diberi, dan ini adalah salah satu proyek tersulit yang pernah saya kerjakan di perguruan tinggi. Deskripsi proyek adalah sebagai berikut:
Dalam proyek ini, mahasiswa akan merancang dan mengimplementasikan algoritma pembelajaran penguatan untuk mengajarkan robot mobile otonom mengikuti dinding dan menghindari menabrak rintangan. Mahasiswa akan menggunakan simulasi Gazebo di ROS Melodic untuk mensimulasikan robot mobile omni-direksional bernama Triton, dan menggunakan peta lingkungan yang disediakan. Mahasiswa akan menggunakan pemindai jarak laser pada robot untuk melakukan sensing dan pembelajaran, di mana robot dikendalikan menggunakan perintah kemudi dan kecepatan. Mahasiswa diharuskan memprogram proyek ini menggunakan C++ atau Python di ROS Melodic yang berjalan pada Ubuntu 18.04 LTS (yaitu, lingkungan pengembangan yang sama digunakan pada Proyek 1). Juga, mahasiswa diharuskan menulis laporan mengikuti format konferensi robotika IEEE standar menggunakan LATEX.
Untuk algoritma pembelajaran penguatan, kami diarahkan menggunakan Q-Learning. Kami juga menggunakan lingkungan simulasi Gazebo Stingray yang disediakan oleh kelas. Stingray terdiri dari model Triton dan logika fisiknya. Kami juga diberi sebuah labirin untuk diikuti robot. Secara keseluruhan, lingkungan terlihat seperti ini:
Saya tidak pernah memublikasikan solusi saya ke GitHub atau web karena itu tidak terlalu baik dan sangat cacat. Juga, menjalankan kode pada lingkungan yang tepat cukup sulit dan menyebalkan. Namun, saya memiliki video demo yang saya kirimkan ke kelas, yang menunjukkan solusi saya. Anda dapat melihatnya di sini:
Untuk deskripsi proyek lengkap, lihat csci473-p2.pdf
Pemahaman Perilaku Manusia oleh Robot Menggunakan Representasi Berbasis Kerangka
Untuk proyek ketiga, deskripsi proyek adalah sebagai berikut:
Dalam proyek ini, mahasiswa akan mengimplementasikan beberapa representasi berbasis kerangka (Deliverable 1) dan menggunakan Support Vector Machines (SVMs) (Deliverable 2) untuk mengklasifikasikan perilaku manusia menggunakan dataset aktivitas publik yang dikumpulkan dari sensor Kinect V1. Selain itu, mahasiswa diharuskan menulis laporan mengikuti format konferensi robotika IEEE standar menggunakan LATEX pada Deliverable 3.
Proyek ini menantang tetapi tidak serumit proyek kedua. Tujuan utama adalah menggunakan data sensor Kinect V1 dari MSR Daily Activity 3D Dataset, dan Support Vector Machines untuk mengklasifikasikan tindakan/perilaku manusia tertentu. Untuk deskripsi proyek lengkap, lihat csci473-p3.pdf atau Anda dapat mempelajari lebih lanjut tentang proyek ini dan solusi saya di posting blog Predict Human Actions Using LIBSVM.
Kesimpulan CSCI473
CSCI473 adalah salah satu, jika tidak kelas terbaik yang saya ambil selama studi sarjana saya di Mines. Semua proyek ini mengajarkan saya banyak hal dan memungkinkan saya memiliki katalog proyek keren untuk direfleksikan dan dirujuk di resume saya. Ini juga merupakan kelas pertama di mana saya merasa berada di unsur saya, karena saya tidak pernah pandai mengerjakan ujian tetapi unggul dalam menyelesaikan proyek. Melalui kelas ini pula saya bertemu Dr. Hao Zhang, yang akhirnya membantu saya mendapatkan posisi sebagai asisten peneliti di Laboratorium Human-Centered Robotics (HCR) Mines.
Sesi Lapangan CS (Musim Panas 2020)
Selama Musim Panas 2020, di antara menyelesaikan CSCI473 dan bergabung dengan HCR Lab, saya mengambil CSCI370 atau “Advanced Software Engineering” sebagai bagian dari program sarjana Ilmu Komputer saya di Colorado School of Mines. CSCI370 adalah kursus yang membuat mahasiswa merancang, mengimplementasikan, dan mendokumentasikan solusi terkait perangkat lunak untuk sebuah perusahaan. Kursus ini memungkinkan mahasiswa menerapkan pengetahuan perkuliahan mereka ke masalah ilmu komputer dunia nyata. Anda dapat mempelajari lebih lanjut tentang kursus ini di sini.
Dalam kursus ini, Anda dapat memutuskan proyek/perusahaan mana yang akan Anda kerjakan. Kursus menyediakan PDF yang merinci setiap proyek dan perusahaan. Akhirnya saya memutuskan bekerja pada proyek yang diposting oleh sebuah perusahaan bernama Lunar Outpost berjudul “Real Time Wheel Slip Detection and Error Corrections for Enhanced Lunar Navigation”. Karena namanya panjang, mari kita beri alias proyek ini “Deteksi Selip Roda”.
Masalah
Lunar Outpost adalah startup yang mencoba membuat rover bulan otonom. Di bulan, ada banyak debu bulan yang dikenal menyebabkan banyak selip roda. Ini tidak ideal karena selip roda dapat menyebabkan sistem otonom kehilangan jejak lokasi dunia nyatanya. Di Bumi, ini diselesaikan dengan menggunakan data GPS untuk mengoreksi setiap offset yang disebabkan oleh selip roda. Namun masalah dengan GPS adalah bahwa itu hanya bekerja dengan memiliki 30+ satelit navigasi yang terus mengelilingi Bumi di orbit dan mengirimkan sinyal unik yang memungkinkan komputer menghitung posisi mereka. Tetapi di bulan, saat ini tidak ada hal seperti GPS. Mengetahui ini, metode lain selain GPS harus digunakan untuk mendeteksi selip roda. Laporan yang lebih rinci tentang masalah proyek dapat dilihat di sini.
Tim
Proyek ini bukanlah proyek sederhana, jadi harus dilakukan dalam tim. Tim terdiri dari lima mahasiswa Colorado School of Mines:
Proyek ini bukanlah proyek sederhana, jadi harus dilakukan dalam tim. Tim ini terdiri dari Mehmet Yilmaz (saya), Kane Bruce, Braedon O’Callaghan, Liam Williams, dan Kevin Grant.
Proyek ini mengharuskan kami mengetahui beberapa hal seperti ROS, C++, Python, Linux, Raspberry Pi, dan Arduino. Kebanyakan dari kami memiliki pengalaman dalam satu atau lebih teknologi ini tetapi saya adalah satu-satunya yang memiliki pengalaman dengan ROS karena saya menggunakan ROS di kelas Human Centered Robotics (CSCI473) selama semester Musim Semi 2020. Karena hal ini, pada awalnya, saya membantu membawa semua orang agar cepat memahami ROS dan bagaimana mengembangkan untuknya.
Tantangan
Dalam proyek ini ada banyak tantangan. Tetapi tantangan terbesar yang kami hadapi adalah tidak memiliki akses ke robot dunia nyata untuk diuji. Hal ini disebabkan oleh COVID yang membuat segalanya menjadi jarak jauh dan mencegah kami bekerja di laboratorium/gedung Lunar Outpost. Karena hal ini, kami harus menggunakan simulasi.
Selain itu, kami menelaah beberapa penelitian akademis dari WVU Navigation Lab untuk mendapatkan gambaran tentang bagaimana masalah Selip Roda bisa diselesaikan untuk kasus penggunaan Lunar Outpost, yang bagi kami, sebagai mahasiswa sarjana tingkat dua dan tiga, lebih sulit dari yang kami perkirakan.
Tantangan lain yang kami hadapi adalah jumlah waktu yang kami miliki untuk mengerjakan proyek ini. CSCI370 adalah kelas satu bulan. Tetapi masalah itu sendiri adalah masalah besar yang telah dicoba/sempurnakan oleh banyak perusahaan dan akademisi selama beberapa dekade. Jadi satu bulan jauh dari cukup untuk menyelesaikan masalah ini. Namun, di tengah semua tantangan ini kami terus berusaha dan memastikan untuk menyerahkan hasil.
Kesimpulan
Setelah melalui semua penelitian dan pengembangan, kami menentukan bahwa hampir tidak mungkin untuk mensimulasikan fisika bulan secara akurat secara digital, jadi benar-benar mencoba algoritma ini dalam simulasi tidak baik dan tidak akan menghasilkan penelitian yang bermakna mengenai deteksi selip roda di ruang angkasa dan di bulan. Kami menyimpulkan bahwa menyiapkan lingkungan uji yang tepat menggunakan sesuatu seperti pasir dan perangkat keras nyata, seperti robot Husky, jauh lebih penting untuk jenis penelitian ini. Kami memperbarui kode deteksi selip roda agar berfungsi sebagai node ROS dan kode tersebut berfungsi dengan baik dan dapat dengan mudah diimpor ke perangkat keras nyata untuk pengujian. Proyek ini memungkinkan saya mengambil peran kepemimpinan, mendidik rekan saya tentang pengembangan ROS, dan mendapatkan pengalaman dengan Python, ROS, dan Gazebo sambil menangani masalah kompleks yang belum pernah saya temui sebelumnya. Yang paling penting, pengalaman ini semakin mengukuhkan hasrat saya terhadap robotika dan memperkuat keinginan saya untuk mengejar penelitian di bidang ini, menyiapkan panggung untuk apa yang akan datang selanjutnya dalam perjalanan robotika saya.
Memulai di HCR Lab
Setelah menyelesaikan CSCI473, CS Field Session saya pada musim panas 2020, dan semester Fall 2020 saya, saya memutuskan untuk mengejar penelitian di bidang robotika. Saya memiliki pengalaman yang sangat baik dengan CSCI473 dan CS Field Session sehingga saya memutuskan ingin melakukan penelitian untuk HCR Lab. Karena saya telah bertemu Dr. Zhang tahun sebelumnya, saya memutuskan untuk mengirim email kepadanya dan menanyakan tentang peluang apa pun yang mungkin dimiliki lab pada Januari 2021. Dalam waktu sekitar 2 minggu, Dr. Zhang menyatakan minat, mempresentasikan opsi penelitian kepada saya, dan menawarkan peran di lab. Saya kemudian mulai bekerja untuk lab pada Februari 2021.
Video Perkenalan
Berikut video perkenalan saya yang saya rekam beberapa bulan setelah saya berada di HCR Lab. Video ini direkam pada Mei 2021 dan membahas penelitian yang akan saya fokuskan di HCR Lab selama musim panas 2021:
Proyek Saya
Sepanjang waktu saya di HCR Lab, saya terutama fokus pada proyek Triton. Proyek Triton adalah robot bergerak yang dikembangkan oleh Human Centered Robotics Lab di Colorado School of Mines. Ini adalah robot darat roda omni segitiga yang diberdayakan oleh NVIDIA Jetson Nano.
Secara garis besar, Triton terdiri dari bagian-bagian berikut:
- NVIDIA Jetson Nano
- NVIDIA’s Seed Studio A205 Carrier Board
- Arduino Mega
- Kartu Micro SD 64 GB
- Bodinya yang dicetak 3D kustom
- 3 roda mecanum
- 1 baterai AR
- Sirkuit kustom untuk distribusi daya dan pengkabelan yang dioptimalkan
- Kamera Intel Realsense D435
- Beberapa LED
Ia dirancang, dibangun, dan diproduksi sekitar 2018-2020 sebagai robot untuk tujuan pendidikan. Pada saat saya bergabung, Triton sudah cukup mapan, dan lab sedang mempertimbangkan membuat versi barunya. Namun, masalah utama Triton adalah perangkat lunaknya. Triton bisa bergerak, mengisi daya, dan berfungsi secara dasar tetapi tidak benar-benar melakukan sesuatu yang cerdas. Bahkan ia kekurangan kemampuan untuk melakukan gerakan yang lebih maju.
![]() |
![]() |
![]() |
![]() |
Untuk mulai mengatasi hal ini, lab menyiapkan area di mana kami dapat melacak Triton. Untuk melakukan ini, mereka membuat area 2 meter kali 2 meter dengan 8 Kamera Optitrack Flex (Inframerah Merah) dalam bentuk kotak sekitar 6-7 kaki di atas lantai.
![]() |
![]() |
Selain memiliki area ini, setiap Triton memiliki tiga bola bola abu-abu yang dipasang di bagian atas bodinya.
Dengan pengaturan ini, kami secara efektif telah membangun sistem GPS skala kecil sendiri yang memungkinkan kami mendapatkan koordinat tepat dalam meter dari sebuah Triton di area yang kami minati. Dengan menggunakan kamera inframerah Optitrack dan bola-bola Optitrack abu-abu dalam bentuk segitiga, kami dapat menentukan titik koordinat tepat sebuah Triton di area kami. Ini memungkinkan kami menerapkan sistem loop tertutup untuk akurasi gerakan yang lebih baik.
Sistem Optitrack menyediakan data posisi dan orientasi sekitar 120Hz dengan akurasi sub-milimeter saat dikalibrasi dengan benar. Tiga penanda reflektif setiap Triton membentuk pola segitiga unik yang dapat dilacak sistem sebagai sebuah badan kaku. Sistem koordinat dikalibrasi sehingga (0,0) berada di pusat area pelacakan, dengan sumbu X dan Y sejajar dengan geometri ruangan. Namun meskipun data posisi ini sangat presisi, Triton masih kesulitan bergerak.
Dengan pengaturan ini, satu fitur inti yang ingin kami berikan kepada Triton adalah kemampuan untuk bergerak ke koordinat tertentu. Pengguna, atau perangkat lunak mereka, dapat memberikan koordinat (x, y) di dalam area yang diminati. Kemudian robot akan bergerak ke koordinat itu secepat, setepat, dan sesemless mungkin. Saat saya bergabung, fitur ini sudah ada tetapi tidak bekerja dengan sangat baik. Berikut adalah animasi sederhana yang menunjukkan bagaimana logika bergerak asli bekerja:
Saya tidak merekam solusi asli dalam aksi, jadi saya membuat animasi sederhana ini untuk menunjukkan logika bergerak lama tersebut dalam aksi. Mengetahui ini, apa masalah dengan metode ini?
- Ini sangat lambat
- Ini membuat robot membutuhkan banyak ruang hanya untuk pergi ke titik tertentu. Ini membuat sulit bagi kami untuk menggunakan solusi ini ketika beberapa Triton bergerak di sekitar.
Jadi mengapa perilaku ini terjadi? Masalahnya adalah bahwa Triton pertama-tama berputar, mengubah alpha, sampai mengarah ke titik target dalam margin kesalahan tertentu. Kemudian ia akan melaju, dan setelah theta-nya menyimpang dari target sebanyak jumlah tertentu, ia akan berhenti dan mulai berputar lagi sampai alpha berada dalam kisaran yang dapat diterima untuk tujuan target. Lalu ia melaju lagi dan terus melakukan ini sampai mencapai titik tersebut. Juga, saat ia semakin dekat ke titik tujuan, kecepatan berputar dan melaju akan menjadi jauh lebih lambat untuk memastikan tidak melewati tujuan. Hal ini mengakibatkan gerakan Triton terasa tidak alami, memakan waktu lama untuk mencapai titik target, dan membutuhkan begitu banyak area hanya untuk mencapai titik target tertentu. Jadi dengan semua masalah ini, dan mengingat betapa pentingnya fitur ini untuk pengembangan proyek Triton, ketika saya mulai bekerja di HCR Lab, tugas pertama saya adalah mengembangkan solusi yang lebih efektif yang memungkinkan Triton menavigasi ke titik tujuan dengan lebih baik.
Mengetahui ini, saya menghabiskan banyak waktu melakukan penelitian tentang cara terbaik untuk mengatasi masalah ini. Ironisnya, saya mengambil kelas yang disebut Pengenalan Sistem Kontrol Umpan Balik (EENG307) di Mines. Di awal kelas itu, kami mempelajari konsep Pengendali loop terbuka dan Pengendali loop tertutup. Mengetahui ini, dan setelah beberapa diskusi yang saya lakukan dengan profesor kelas itu dan teman sekamar saya yang pintar, menjadi jelas bahwa tujuan membuat Triton ke titik tujuan ini adalah masalah sistem loop tertutup.
Sekarang, setelah pengujian dan penelitian yang ekstensif, saya mengembangkan dua pendekatan pengendali yang berbeda untuk Triton:
Metode 1: Pengendali Jarak-Theta
Pendekatan ini menggunakan dua pengendali proporsional terpisah yang berjalan secara bersamaan:
- Pengendali Jarak: Menghitung jarak Euclidean ke target dan menerapkan gain proporsional untuk menentukan kecepatan maju/mundur
- Pengendali Theta: Menghitung kesalahan sudut antara arah hadap robot saat ini dan arah yang diinginkan menuju target, menerapkan gain proporsional terpisah untuk kecepatan rotasi
Algoritma terus-menerus menghitung jarak Euclidean ke target dan kesalahan sudut antara arah hadap robot saat ini dan arah yang diinginkan. Dua gain proporsional terpisah diterapkan untuk menghasilkan kecepatan linier dan sudut secara berturut-turut.
Hal ini menghasilkan Triton secara alami berbelok menuju tujuan sambil bergerak maju secara bersamaan, menciptakan jalur melengkung yang halus. Keuntungan utama adalah bahwa robot selalu menjaga sisi depannya menghadap tujuan, yang krusial untuk aplikasi berbasis kamera.
Metode 2: Pengendali Koordinat X-Y
Pendekatan ini memperlakukan robot seperti plotter 2D, dengan kontrol independen untuk gerakan X dan Y:
- Pengendali X: Mengendalikan langsung gerakan timur-barat berdasarkan kesalahan koordinat X
- Pengendali Y: Mengendalikan langsung gerakan utara-selatan berdasarkan kesalahan koordinat Y
Implementasi menghitung kesalahan koordinat X dan Y secara independen, menerapkan gain proporsional terpisah, dan kemudian mentransformasikan komponen kecepatan global ini ke kerangka koordinat lokal robot menggunakan matriks rotasi. Transformasi ini diperlukan karena sistem penggerak roda omni robot membutuhkan kecepatan dalam kerangka referensinya sendiri, bukan dalam koordinat global. Metode ini menghasilkan jalur paling langsung ke target dan secara signifikan lebih cepat, tetapi arah (heading) robot akan bergeser karena tidak ada kontrol orientasi yang eksplisit.
Untuk metode #1, saya membahas metode ini secara rinci di Blog Gerakkan Turtle (TurtleSim). Saya sangat menyarankan Anda membaca blog ini untuk mendapatkan semua detail tentang bagaimana pengendali PID bekerja secara umum, serta bagaimana metode #1 bekerja. Saya mengembangkan metode #1 menggunakan TurtleSim ROS, lalu memindahkan kode itu ke Triton dan memperbaruinya untuk memperhitungkan lingkungan yang lebih nyata.
Metode #2 menggunakan pendekatan yang cukup berbeda namun sama efektifnya. Alih-alih memikirkan orientasi robot dan jarak ke tujuan, metode ini memperlakukan gerakan seperti masalah bidang koordinat. Pengendali terus-menerus menghitung kesalahan di kedua arah X dan Y secara terpisah. Misalnya, jika robot perlu bergerak dari (0,0) ke (2,3), ia melihat ini sebagai perlu mengoreksi kesalahan 2 meter di X dan kesalahan 3 meter di Y. Dua pengendali proporsional bekerja secara simultan: satu menyesuaikan kecepatan robot pada arah X berdasarkan kesalahan X, sementara yang lain menangani gerakan arah Y berdasarkan kesalahan Y. Ini menciptakan jalur yang lebih langsung ke tujuan, mirip dengan bagaimana kepala printer 3D bergerak, dan memungkinkan gerakan diagonal yang halus. Robot tidak perlu secara eksplisit berputar untuk menghadap targetnya, membuat metode ini sangat efektif di ruang sempit atau ketika posisi yang presisi diperlukan.
Kedua metode terbukti secara signifikan lebih cepat dan lebih dapat diandalkan daripada pendekatan asli. Untuk melihat metode-metode baru ini dalam aksi, lihat Playlist Tritons dalam Aksi, yang menampilkan semua Triton beraksi dengan metode baru.
Yang dulunya memakan waktu 30–45 detik untuk gerakan titik-ke-titik sederhana kini memakan sekitar 8–12 detik. Lebih penting lagi, Triton kini dapat menavigasi lebih efisien di ruang sempit, yang menjadi berguna untuk skenario multi-robot kami.
Tantangan Pengembangan dan Debugging
Mengimplementasikan pengendali-pengendali ini tidaklah mudah dan melibatkan beberapa tantangan debugging yang signifikan:
Transformasi Sistem Koordinat: Salah satu aspek tersulit adalah mendapatkan transformasi koordinat yang tepat. Sistem Optitrack memberikan data dalam kerangka koordinatnya sendiri, robot memiliki kerangka koordinat lokalnya, dan saya perlu mengonversi di antara keduanya dengan akurat. Implementasi awal menyebabkan robot bergerak ke arah yang salah karena saya mencampur perhitungan matriks rotasi.
Perilaku Dunia Nyata vs. Ideal: Tantangan terbesar adalah memperhitungkan faktor dunia nyata yang tidak muncul dalam teori kontrol di buku teks. Roda robot memiliki karakteristik gesekan yang berbeda, motor tidak merespons secara identik, dan selalu ada sedikit latensi dalam rantai komunikasi dari Optitrack ke perangkat lunak kontrol ke Arduino robot. Saya menghabiskan berminggu-minggu menyetel gain proporsional dan menambahkan filter zona mati untuk mengatasi realitas fisik ini.
Masalah Osilasi dan Stabilitas: Implementasi pertama saya menderita masalah osilasi di mana robot akan melewati targetnya dan bergoyang bolak-balik. Ini mengajarkan saya tentang pentingnya komponen turunan dalam pengendali PID dan kebutuhan akan penyetelan gain yang tepat. Pada akhirnya saya memilih kendali yang didominasi proporsional dengan gain yang disetel hati-hati daripada PID penuh, karena peredaman bawaan sistem sudah cukup untuk sebagian besar aplikasi.
Interferensi Multi-Robot: Ketika beberapa robot beroperasi secara bersamaan, saya menemukan pola interferensi yang tidak terduga. Robot kadang-kadang akan “berebut” ruang yang sama atau menciptakan situasi kebuntuan di mana mereka saling menghalangi tanpa akhir. Ini membuat saya mengimplementasikan mekanisme koordinasi dan algoritma penghindaran tabrakan.
Sistem Kontrol Multi-Triton
Setelah saya memecahkan masalah pergerakan satu Triton, tantangan berikutnya di lab adalah membuat beberapa Triton bekerja bersama secara simultan. Ini menjadi salah satu fokus utama saya dan berakhir sebagai kontribusi signifikan untuk proyek.
Sistem asli hanya dapat mengendalikan satu Triton pada satu waktu, yang sangat membatasi kemungkinan riset. Lab ingin mensimulasikan skenario di mana beberapa kendaraan otonom perlu mengoordinasikan pergerakan mereka, seperti mobil swakemudi yang berkomunikasi satu sama lain untuk mengoptimalkan aliran lalu lintas dan membuat peta SLAM (Pelokalan dan Pemetaan Simultan) yang lebih baik.
Untuk menyelesaikan ini, saya mengimplementasikan pendekatan multi-proses menggunakan library multiprocessing Python. Setiap Triton mendapat proses khusus yang dapat berjalan secara independen sambil tetap dikoordinasikan oleh sistem kontrol pusat. Ini memungkinkan beberapa Triton bergerak secara simultan tanpa saling mengganggu loop kontrol masing-masing.
Desain Arsitektur Multi-Robot
Arsitektur sistem yang saya kembangkan terdiri dari beberapa komponen kunci:
Proses Pengontrol Utama: Berfungsi sebagai koordinator pusat, menangani interaksi antarmuka pengguna, perencanaan jalur, dan koordinasi tingkat tinggi antar robot. Ia mempertahankan status global dan mendistribusikan perintah ke proses-proses robot individual.
Proses Robot Individual: Setiap Triton memiliki proses Python khusus yang menangani:
- Perhitungan kendali PID real-time pada ~50Hz
- Komunikasi dengan perangkat keras robot (Arduino/Jetson)
- Eksekusi jalur lokal dan penghindaran rintangan
- Pelaporan status kembali ke pengontrol utama
Komunikasi Memori Bersama: Saya menggunakan multiprocessing.shared_memory dan objek Queue milik Python untuk memungkinkan komunikasi yang efisien antar proses. Ini memungkinkan koordinasi real-time tanpa overhead komunikasi jaringan.
Mekanisme Sinkronisasi: Untuk mencegah konflik ketika beberapa robot perlu berkoordinasi (seperti menghindari tabrakan), saya mengimplementasikan semafor dan kunci yang memungkinkan robot meminta akses eksklusif ke area-area tertentu dari workspace.
Tantangannya adalah memastikan semua robot dapat menjalankan loop kendali mereka secara independen sambil tetap mempertahankan koordinasi global. Setiap proses robot menjalankan perhitungan PID-nya sendiri dan mengirim perintah motor langsung ke perangkat keras, sementara proses utama menangani koordinasi tingkat tinggi seperti penghindaran tabrakan dan perencanaan jalur.
![]() |
![]() |
Sistem multi-Triton membuka kemungkinan riset yang sama sekali baru. Kami sekarang dapat mensimulasikan:
- Skenario komunikasi kendaraan-ke-kendaraan
- Perencanaan jalur terkoordinasi dengan penghindaran rintangan
- Perilaku robot kawanan (swarm robotics)
- Pemetaan SLAM multi-agen
- Kontrol formasi dan perilaku mengikuti
Beginilah tampilan setup lab dengan beberapa Triton berjalan secara simultan:
![]() |
![]() |
Saya juga mengembangkan antarmuka yang ramah pengguna yang memungkinkan peneliti mendefinisikan jalur secara visual untuk setiap Triton. Anda benar-benar bisa menggambar jalur yang ingin diikuti setiap robot, dan mereka akan mengeksekusi jalur tersebut dengan koordinasi yang sempurna. Ini sangat berguna untuk menyiapkan eksperimen kompleks tanpa harus memprogram setiap gerakan secara manual.
Sistem ini dapat menangani hingga 5 Triton secara simultan, masing-masing menjalankan pengendali PID-nya sendiri sambil dikoordinasikan melalui sistem kontrol pusat. Kinerjanya mengesankan, dengan semua robot mempertahankan akurasi individual mereka sambil bekerja bersama sebagai sebuah tim.
Berikut playlist yang menunjukkan Triton beraksi, dari kontrol robot tunggal hingga koordinasi multi-robot: Playlist Tritons dalam Aksi
Integrasi Sensor Kedalaman dan Koreksi Koordinat
Kemajuan besar lain yang saya kerjakan melibatkan pemanfaatan kamera kedalaman Intel RealSense D435 yang dipasang pada setiap Triton. Sementara sistem Optitrack memberi kami data posisi yang sangat presisi, saya ingin mengeksplorasi bagaimana robot dapat menggunakan sensor onboard mereka untuk meningkatkan kesadaran spasial dan mengoreksi kesalahan koordinat.
Ideanya adalah Triton dapat menggunakan sensor kedalaman mereka untuk mendeteksi Triton lain di sekitar mereka dan melakukan pencocokan silang posisi. Ini akan berguna untuk beberapa tujuan:
-
Koreksi Kesalahan: Jika sistem Optitrack mengalami drift kalibrasi atau penghalangan sementara, robot dapat menggunakan konfirmasi visual posisi satu sama lain untuk mempertahankan sistem koordinat yang akurat.
-
Peningkatan SLAM: Dengan memiliki beberapa robot dengan sensor kedalaman yang bekerja bersama, kami dapat membuat peta lingkungan yang jauh lebih kaya dengan titik data redundan.
-
Penghindaran Tabrakan: Pendeteksian kedalaman waktu-nyata akan memungkinkan robot mendeteksi dan menghindari satu sama lain bahkan jika sistem kontrol sentral mengalami keterlambatan komunikasi.
Saya mulai bereksperimen dengan algoritma yang memungkinkan Triton untuk:
- Mendeteksi Triton lain menggunakan bentuk segitiga khas mereka dan penanda bola reflektif
- Menghitung posisi relatif dan orientasi menggunakan data kedalaman
- Membandingkan pengukuran ini dengan data Optitrack untuk mengidentifikasi selisih
- Berpotensi menyesuaikan sistem koordinat mereka secara waktu-nyata untuk mempertahankan akurasi
Eksperimen Penglihatan Komputer
Saya menghabiskan banyak waktu bereksperimen dengan pipeline penglihatan komputer yang bekerja dalam beberapa tahap:
![]() |
![]() |
![]() |
![]() |
![]() |
Pengolahan Data Kedalaman: Intel RealSense D435 menyediakan aliran data RGB dan kedalaman. Saya terutama bekerja dengan data kedalaman, yang datang sebagai array 640x480 pengukuran jarak pada 30Hz. Tantangan pertama adalah memfilter data kedalaman yang bising ini untuk mengekstrak informasi geometris yang bermakna.
Upaya Deteksi Objek: Saya bereksperimen dengan algoritma deteksi multi-tahap. Saya agak berhasil melakukan segmentasi citra kedalaman untuk mengidentifikasi objek di tingkat lantai (memfilter dinding, langit-langit, dll.) dan mencari objek dengan karakteristik ukuran yang tepat, kira-kira jejak 0,3x0,3 meter. Saya mencoba menggunakan deteksi tepi dan analisis geometris untuk mengidentifikasi profil khas Triton, dengan hasil yang beragam.
Eksperimen Pengenalan Marker: Tiga bola reflektif pada setiap Triton tampak seperti fitur deteksi yang paling menjanjikan. Saya bereksperimen dengan algoritma deteksi blob untuk mengidentifikasi pola segitiga khas dari tiga titik terang dalam citra kedalaman. Saya mendapatkan beberapa hasil yang menjanjikan dalam kondisi pencahayaan terkendali, meskipun tidak selalu konsisten.
Riset Fusi Koordinat: Saya meneliti pendekatan untuk memadukan estimasi posisi berbasis visi dengan data Optitrack, termasuk implementasi dasar filter Kalman. Konsepnya adalah memberi bobot lebih pada data Optitrack saat tersedia tetapi beralih ke visi saat diperlukan, meskipun saya tidak menyelesaikan ini sepenuhnya sebelum waktu saya di laboratorium berakhir.
Tantangan Performa: Menjalankan semua pemrosesan ini secara waktu-nyata bersamaan dengan loop kontrol robot terbukti menantang. Saya bereksperimen dengan pendekatan optimisasi untuk menjalankan algoritma pada sekitar 10-15Hz tanpa membebani kemampuan pemrosesan Jetson Nano.
Sayangnya, saya harus meninggalkan lab sebelum saya dapat menyelesaikan sepenuhnya pekerjaan penglihatan komputer ini. Meskipun saya memperoleh beberapa hasil awal yang menjanjikan dan belajar banyak tentang pemrosesan sensor kedalaman, saya tidak berhasil membuat sistem menjadi sepenuhnya andal. Ini tetap merupakan arah riset menarik yang dapat dikembangkan oleh orang lain.
Berikut video saya menguji algoritma penglihatan komputer:
Berikut tampilan sensor kedalaman selama eksperimen saya:
Meskipun saya tidak menyelesaikan integrasi sensor kedalaman, konsep ini menunjukkan potensi untuk aplikasi seperti mensimulasikan skenario mobil swakemudi, di mana kendaraan perlu saling menyadari tanpa bergantung sepenuhnya pada infrastruktur eksternal. Arah riset yang saya mulai jelajahi ini berpotensi berkontribusi pada pekerjaan masa depan di laboratorium.
Dokumentasi dan Pelestarian Pengetahuan
Salah satu kontribusi saya yang paling penting untuk HCR Lab, dan mungkin yang paling saya banggakan, adalah mengorganisir dan melestarikan semua dokumentasi proyek. Saat saya bergabung dengan lab, pengetahuan proyek Triton tersebar di beberapa platform dan format. Informasi penting tersebar di:
- Berbagai akun Google Drive milik mahasiswa yang telah lulus
- Email lama yang terkubur di kotak masuk
- Folder Dropbox acak
- Beberapa repositori GitHub
- Repositori GitLab dengan organisasi yang tidak konsisten
- Catatan tulisan tangan yang hanya bisa diinterpretasikan oleh beberapa orang tertentu
Dokumentasi yang terfragmentasi ini merupakan masalah besar. Mahasiswa baru menghabiskan berminggu-minggu hanya untuk mencoba mencari cara memulai, dan pengetahuan berharga terus hilang ketika orang lulus atau meninggalkan lab.
Saya mengambil inisiatif untuk menyelesaikan masalah ini secara sistematis. Saya menghabiskan waktu tak terhitung untuk melacak setiap potongan dokumentasi, kode, video, dan catatan yang terkait dengan proyek Triton. Saya kemudian mengorganisir semuanya ke dalam repositori GitLab terpusat dengan struktur yang jelas dan logis.
![]() |
![]() |
Dokumentasi terpusat tersebut mencakup:
- Panduan Pembangunan: Instruksi langkah-demi-langkah untuk merakit Triton dari awal
- Setup Perangkat Lunak: Panduan lengkap untuk menyiapkan lingkungan pengembangan
- Dokumentasi Kode: Kode yang diberi komentar dengan jelas dan penjelasan yang tegas
- Spesifikasi Perangkat Keras: Daftar komponen terperinci, diagram pengkabelan, dan desain PCB
- Panduan Pemecahan Masalah: Masalah umum dan solusi mereka
- Tutorial Video: Saya membuat dan mengunggah video instruksional ke YouTube, termasuk tutorial kalibrasi Optitrack yang terperinci:
Saya juga menetapkan standar dokumentasi untuk memastikan kontribusi di masa depan akan terorganisir dan dapat diakses. Struktur repositori yang saya buat menjadi fondasi untuk semua pekerjaan selanjutnya di lab.
Selain mengorganisir dokumentasi yang ada, saya membuat beberapa panduan dan tutorial asli yang mengisi kekosongan penting dalam basis pengetahuan. Ini termasuk instruksi setup terperinci untuk anggota lab baru, panduan pemecahan masalah yang komprehensif, dan walkthrough video prosedur kompleks.
Dampaknya segera terasa dan bertahan lama. Mahasiswa baru bisa mencapai kesiapan dalam hitungan hari bukan minggu. Repositori dokumentasi yang saya buat masih digunakan oleh lab hingga hari ini, bertahun-tahun setelah saya pergi. Itu menjadi satu-satunya sumber kebenaran untuk proyek Triton dan menghemat jam/hari yang tak terhitung untuk peneliti di masa depan.
Pembimbingan dan Transfer Pengetahuan
Salah satu aspek yang paling memuaskan dari waktu saya di HCR Lab adalah kesempatan untuk membimbing orang lain dan membagikan pengetahuan yang saya peroleh. Seiring progres pekerjaan saya dan meningkatnya pengalaman dengan sistem Triton, saya mengambil tanggung jawab yang semakin besar untuk melatih anggota tim baru.
Membimbing Penerus Lab
Saat saya bersiap untuk akhirnya meninggalkan lab untuk fokus menyelesaikan gelar dan pekerjaan saya di eBay, saya memastikan untuk melatih secara menyeluruh dua orang yang akan mengambil alih proyek Triton setelah kepergian saya. Ini bukan hanya soal menunjukkan bagaimana sesuatu bekerja, tetapi memastikan mereka benar-benar memahami prinsip-prinsip dasar sehingga mereka bisa terus berinovasi.
Saya menghabiskan berminggu-minggu bekerja erat dengan mereka, melewati:
- Dasar matematis dari sistem kontrol PID
- Arsitektur multi-pemrosesan untuk mengoordinasikan beberapa robot
- Integrasi sensor kedalaman dan algoritma penglihatan komputer
- Sistem dokumentasi dan cara merawatnya
- Teknik debugging dan mode kegagalan umum
Transfer pengetahuan berlangsung sangat menyeluruh. Kami melalui sesi debugging nyata bersama, saya meminta mereka memodifikasi dan memperluas kode yang ada, dan saya memastikan mereka bisa secara mandiri menyiapkan Triton baru dari nol.
Program Pembimbingan Sekolah Menengah
Mungkin yang lebih memuaskan lagi adalah pengalaman saya membimbing seorang siswa sekolah menengah melalui program outreach lab. Ini merupakan kesempatan bagus untuk memperkenalkan seseorang pada robotika, ilmu komputer, dan riset pada tahap pembelajaran yang membentuk.
Saya merancang kurikulum komprehensif yang mencakup:
Dasar-dasar Ilmu Komputer:
- Konsep pemrograman menggunakan Python sebagai bahasa utama
- Pengenalan pemrograman berorientasi objek
- Pemahaman algoritma dan struktur data
Konsep Robotika:
- Cara kerja sensor dan bagaimana menghubungkannya
- Kontrol aktuator dan sistem motor
- Dasar-dasar sistem otonom dan kontrol umpan balik
ROS (Sistem Operasi Robot):
- Memahami sistem pesan publish/subscribe
- Membuat node dan layanan
- Bekerja dengan file launch dan parameter server
Pekerjaan Proyek Praktis:
- Kami berkolaborasi membuat layanan ROS yang mengontrol sistem LED di kepala Triton
- Dia belajar menulis kode bersih dan terdokumentasi yang terintegrasi dengan sistem kami yang ada
- Layanan kontrol LED yang dia buat menjadi bagian permanen dari basis kode Triton
Yang membuat pembimbingan ini sangat istimewa adalah menyaksikan perkembangannya dari hampir tidak tahu apa-apa tentang pemrograman menjadi berkontribusi kode bermakna pada proyek riset aktif. Dia beralih dari bertanya “Apa itu variabel?” menjadi secara mandiri melakukan debugging masalah komunikasi ROS dan menulis implementasi layanannya sendiri.
Sistem kontrol LED yang dia kembangkan memungkinkan peneliti dengan mudah mengubah warna dan pola LED kepala Triton melalui perintah ROS sederhana. Ini mungkin terdengar sederhana, tetapi memerlukan pemahaman arsitektur ROS, interfacing perangkat keras, dan pola desain perangkat lunak yang tepat. Kontribusinya masih digunakan di lab hingga hari ini.
Bimbingan itu sama mendidiknya bagi saya seperti halnya bagi dia. Itu memaksa saya untuk memecah konsep yang kompleks menjadi bagian-bagian yang mudah dicerna dan benar-benar memikirkan dasar-dasar dari apa yang kami lakukan. Mengajarkan orang lain membuat saya menjadi insinyur dan peneliti yang lebih baik.
Kolaborasi dengan Penelitian PhD
Salah satu aspek yang paling memuaskan secara profesional dari waktu saya di laboratorium adalah bekerja erat dengan Peng, seorang mahasiswa PhD yang penelitiannya berfokus pada algoritma mobil swakemudi. Perbaikan perangkat lunak yang saya lakukan pada sistem Triton membantu mendukung penelitian doktoralnya.
Penelitian Peng membutuhkan koordinasi multi-robot yang presisi dan handal untuk mensimulasikan skenario mobil swakemudi. Sebelum saya memperbaiki kontrol gerakan dan sistem multi-robot, eksperimen-eksperimen ini jauh lebih sulit dilakukan. Robot-robot itu lebih lambat, kurang akurat, dan tidak bisa bekerja bersama seefektif sekarang.
Kontribusi saya membantu penelitian Peng dalam beberapa area:
Studi Manajemen Persimpangan: Dengan pengendali PID yang ditingkatkan dan koordinasi multi-robot, Peng bisa mensimulasikan skenario persimpangan di mana beberapa “kendaraan” (Triton) perlu mengoordinasikan gerakan mereka. Timing dan posisi yang lebih baik membantu membuat studi-studi ini lebih layak dilakukan.
Komunikasi Antar-Kendaraan: Kerangka kerja multi-pemrosesan yang saya kembangkan memungkinkan Peng mengimplementasikan dan menguji protokol komunikasi antar kendaraan yang disimulasikan. Setiap Triton bisa membuat keputusan sambil tetap berkoordinasi dengan yang lain, mirip dengan bagaimana mobil swakemudi mungkin perlu beroperasi.
Penelitian SLAM dan Pemetaan: Pekerjaan integrasi sensor kedalaman memberi Peng data tambahan untuk penelitian lokalisasi dan pemetaan simultan (SLAM) nya. Memiliki beberapa robot dengan kemampuan penginderaan yang terkoordinasi memungkinkan eksperimen pemetaan yang lebih komprehensif.
Yang membuat kolaborasi kami sangat bernilai adalah bahwa itu bukan sekadar saya membantu penelitiannya, melainkan kemitraan yang nyata. Pemahaman Peng tentang aspek teoretis kendaraan otonom membantu menginformasikan implementasi praktis saya. Masukan dan persyaratannya mendorong saya untuk membuat sistem menjadi lebih kuat dan mampu.
Kami menghabiskan banyak jam di laboratorium bersama-sama, men-debug skenario, mendiskusikan berbagai strategi kontrol, dan mengeksplorasi apa yang bisa dicapai platform Triton. Peng menjadi baik rekan kerja maupun teman, dan bekerja dengannya mengajari saya banyak hal tentang bagaimana penelitian akademis benar-benar berjalan.
Sistem yang saya bangun menjadi bagian berguna dari pekerjaan disertasi Peng. Melihat kontribusi teknik praktis saya mendukung penelitian dalam teknologi kendaraan otonom sangat memuaskan. Itu memperkuat minat saya pada bagaimana rekayasa yang solid dan penelitian dapat bekerja bersama untuk menciptakan hasil yang berguna.
Bahkan setelah saya meninggalkan laboratorium, Peng dan saya tetap berhubungan. Mengetahui bahwa pekerjaan saya terus memberi kontribusi pada penelitian penting bahkan setelah kepergian saya sangat memuaskan.
Perspektif: Era Pra-LLM Pengembangan
Perlu dicatat bahwa semua pekerjaan ini diselesaikan selama era pra-LLM dari pengembangan perangkat lunak. Semua ini berlangsung antara 2020 hingga 2021 (terutama 2021), sebelum ChatGPT, Claude, Perplexity, atau alat pengembangan bertenaga AI seperti Cursor IDE ada.
Setiap baris kode ditulis dari awal, setiap algoritma diteliti melalui makalah akademis dan buku teks, dan setiap sesi debugging melibatkan metode tradisional seperti pernyataan print, debugger, dan pengujian yang metodis. Ketika saya terjebak pada transformasi koordinat atau masalah penyetelan PID, saya tidak bisa begitu saja meminta asisten AI untuk menjelaskan konsepnya atau membantu men-debug masalah tersebut.
Ini membuat proses pengembangan menjadi jauh lebih menantang tetapi juga lebih mendidik. Saya harus:
Meneliti Segalanya Secara Manual: Memahami teori kontrol PID berarti membaca buku teks dan makalah akademis. Menyelesaikan transformasi koordinat memerlukan mengerjakan matematika secara manual. Setiap konsep harus dipahami sepenuhnya sebelum diimplementasikan.
Debug Tanpa Bantuan AI: Ketika robot bergerak ke arah yang tidak terduga atau berosilasi di sekitar target, saya harus menelusuri logika secara metodis, menambahkan output debug, dan menguji hipotesis satu per satu. Tidak ada AI yang menyarankan potensi masalah atau membantu menginterpretasikan pola kesalahan.
Belajar dari Prinsip Pertama: Tanpa kemampuan untuk dengan cepat bertanya “bagaimana cara mengimplementasikan multi-processing di Python untuk robotika?” saya harus memahami konsep dasar secara mendalam. Ini memaksa saya membangun fondasi yang kuat dalam pemrograman konkuren, sistem kontrol, dan visi komputer.
Dokumentasi Sangat Penting: Karena saya tidak bisa bergantung pada AI untuk menjelaskan kode di kemudian hari, saya harus menulis dokumentasi dan komentar yang sangat jelas. Disiplin ini terbukti tak ternilai saat mentransfer pengetahuan ke orang lain.
Melihat kembali, meskipun alat AI modern akan mempercepat banyak aspek pengembangan, bekerja tanpa mereka memaksa saya mengembangkan keterampilan pemecahan masalah yang lebih dalam dan pemahaman yang lebih menyeluruh tentang sistem yang mendasarinya. Menarik untuk memikirkan betapa berbeda proyek ini mungkin jika alat pengembangan saat ini sudah tersedia.
Keputusan Sulit untuk Pergi
Sebanyak saya menyukai bekerja di HCR Lab, pada akhir 2021 saya menghadapi keputusan sulit yang dialami banyak mahasiswa: menyeimbangkan banyak peluang dan tanggung jawab. Saya secara bersamaan bekerja penuh waktu sebagai insinyur perangkat lunak di eBay, menyelesaikan gelar ilmu komputer saya di Mines, dan berkontribusi pada penelitian di HCR Lab.
Kesempatan di eBay signifikan; itu adalah peran rekayasa perangkat lunak besar pertama saya, memberi pengalaman industri yang tak ternilai, dan menyediakan penghasilan yang solid. Namun, mencoba mempertahankan pekerjaan penuh waktu, menyelesaikan gelar saya, dan berkontribusi secara bermakna pada penelitian jelas tidak dapat dipertahankan. Sesuatu harus dikorbankan.
Ketika saya mendekati Dr. Zhang tentang kemungkinan mengurangi beban kuliah untuk fokus lebih pada pekerjaan laboratorium, dia sangat menyarankan agar tidak melakukannya. Alasan beliau masuk akal: menyelesaikan gelar saya harus menjadi prioritas, dan pengalaman industri di eBay akan berharga untuk pengembangan karier saya. Dia merasa bahwa meninggalkan kelas untuk fokus pada penelitian, meskipun menggoda, mungkin bukan keputusan terbaik jangka panjang.
Jadi pada September 2021, setelah sekitar 8 bulan kerja intensif di laboratorium, saya membuat keputusan sulit untuk mundur dari peran asisten riset saya untuk fokus menyelesaikan gelar dan pekerjaan saya di eBay. Itu adalah salah satu keputusan profesional yang paling sulit yang harus saya buat pada saat itu.
Bahkan setelah resmi meninggalkan laboratorium, saya terus memberikan dukungan kapan pun seseorang membutuhkan bantuan dengan sistem yang telah saya bangun. Saya memperbarui dokumentasi sesuai kebutuhan, menjawab pertanyaan tentang debugging, dan membantu memecahkan masalah dari jarak jauh. Koneksi yang telah saya buat dan investasi saya dalam keberhasilan proyek tidak serta merta menghilang karena saya tidak lagi secara resmi menjadi bagian dari tim.
Refleksi dan Menengok ke Belakang
Sekarang, di tahun 2025, empat tahun kemudian, saya mendapati diri saya merenungkan waktu itu dengan emosi yang kompleks. Jalur karier saya membawa saya jauh ke dalam pengembangan web dan rekayasa AI/ML, bidang-bidang yang sangat memuaskan dan memberikan peluang besar untuk pertumbuhan dan dampak.
Namun ada bagian dari diri saya yang bertanya-tanya “bagaimana jika.” Robotika adalah, dan jujur masih, adalah gairah sejati saya. Ada sesuatu tentang bekerja dengan sistem fisik, melihat kode Anda diterjemahkan ke dalam gerakan dan perilaku dunia nyata, yang pengembangan web dan bahkan pekerjaan AI tidak bisa sepenuhnya replikasi.
Kadang-kadang saya bertanya-tanya apa yang mungkin terjadi jika saya mengambil jalur yang berbeda. Bagaimana jika saya menemukan cara untuk tetap dalam penelitian robotika? Bagaimana jika saya melanjutkan sekolah pascasarjana segera setelah menyelesaikan gelar sarjana saya? Bagaimana jika saya memilih untuk memprioritaskan pekerjaan laboratorium daripada pengalaman industri?
Tetapi saya juga menyadari bahwa setiap jalur memiliki pertukaran. Keterampilan yang saya kembangkan dalam pengembangan web dan AI sangat berharga. Pengalaman industri mengajarkan saya tentang rekayasa perangkat lunak pada skala besar, desain pengalaman pengguna, dan tantangan praktis membangun produk yang digunakan jutaan orang. Pengalaman-pengalaman ini telah membuat saya menjadi insinyur yang lebih baik secara keseluruhan.
Pekerjaan yang saya lakukan di HCR Lab terus memengaruhi cara saya mendekati masalah hari ini. Pemikiran sistematis yang dibutuhkan untuk sistem kontrol PID muncul dalam cara saya merancang loop umpan balik dalam sistem perangkat lunak. Keterampilan dokumentasi dan pelestarian pengetahuan yang saya kembangkan sangat berharga di setiap peran sejak saat itu. Pengalaman membimbing dan mengajar telah membentuk cara saya bekerja dengan pengembang junior dan berkontribusi pada berbagi pengetahuan tim.
Yang paling penting, pengalaman itu mengajari saya bahwa saya berkembang ketika bekerja pada masalah teknis yang menantang yang memiliki dampak dunia nyata. Baik itu mengoptimalkan algoritma gerakan robot atau membangun sistem AI yang membantu pengguna mencapai tujuan mereka, kepuasan datang dari memecahkan masalah sulit yang berarti.
Dampak yang Bertahan
Melihat kembali pengalaman di HCR Lab, saya terkesan oleh seberapa banyak yang berhasil saya capai dalam waktu yang relatif singkat. Sistem yang saya bangun secara fundamental mengubah cara platform Triton beroperasi, dan banyak dari perbaikan tersebut masih digunakan sampai hari ini. Repositori dokumentasi yang saya buat menjadi basis pengetahuan untuk seluruh proyek. Hubungan bimbingan yang saya bentuk memiliki dampak yang bertahan pada orang-orang yang saya ajak bekerja sama.
Tetapi mungkin yang paling signifikan, pengalaman itu menunjukkan kepada saya apa yang saya mampu lakukan ketika bekerja pada masalah yang benar-benar saya minati. Dalam delapan bulan itu, saya:
- Meningkatkan sistem kontrol gerakan robot yang sebelumnya membatasi platform
- Membangun sistem koordinasi multi-robot dari awal
- Mengintegrasikan kemampuan visi komputer dan fusi sensor
- Membuat sistem dokumentasi dan manajemen pengetahuan yang komprehensif
- Membimbing beberapa orang dan membantu transfer pengetahuan
- Mendukung penelitian setingkat PhD pada kendaraan otonom
Ini bukan hanya tentang pencapaian teknis, meskipun itu bermakna bagi saya. Ini tentang belajar bahwa dengan ketekunan dan berpikir sistematis, Anda dapat memberikan kontribusi yang berguna bahkan sebagai mahasiswa sarjana.
Masa Depan dan Robotika
Meskipun karier saya telah membawa saya ke arah lain, hasrat saya terhadap robotika tidak berkurang. Saya masih mengikuti perkembangan di bidang ini, saya bersemangat tentang kemajuan dalam pembelajaran robot dan sistem otonom, dan saya kadang-kadang mengerjakan proyek robotika pribadi di waktu luang saya.
Siapa yang tahu apa yang akan terjadi di masa depan? Keterampilan yang saya kembangkan dalam AI dan pembelajaran mesin semakin relevan untuk robotika. Pengalaman industri yang saya peroleh telah mengajari saya bagaimana membangun sistem yang tangguh dan dapat diskalakan. Mungkin ada masa depan di mana berbagai benang pengalaman saya ini bersatu dengan cara yang tak terduga.
Untuk saat ini, saya bersyukur atas waktu yang saya habiskan di Laboratorium HCR dan pengalaman yang diberikannya. Itu adalah periode pembentukan yang membentuk baik keterampilan teknis saya maupun pemahaman saya tentang jenis pekerjaan apa yang paling memuaskan. Meskipun terkadang saya merindukannya, saya tahu pelajaran yang saya pelajari dan pendekatan yang saya kembangkan terus mempengaruhi segala yang saya lakukan.
Robot Triton masih ada di sana, masih melayani peneliti, masih memungkinkan pekerjaan penting. Dan itu sangat luar biasa.

















