Sebuah perangkat lunak sistem otonom terdiri dari berbagai komponen perangkat
lunak. Perangkat lunak tersebut mengandung berbagai algoritma pembelajaran mesin
untuk berbagai macam sensor dan berbagai algoritma pembuat keputusan. Keputusan
yang dibuat merupakan hasil pemrosesan informasi dari lingkungan sekitar. Tesis
ini bertujuan untuk menggabungkan hasil dari riset-riset terdahulu dan menerapkan
solusi terpadu ke kendaraan trem. Trem ini akan diuji di lingkungan lalu-lintas
tercampur di Solo, Indonesia. Solusi yang diterapkan diharapkan untuk dapat berjalan
secara otonom dengan intervensi minimum dari masinis yang mengawasi.
Fokus utama dari tesis ini adalah untuk menerapkan sistem ujung-ke-ujung untuk
sebuah trem otonom. Tantangan utama dari masalah ini adalah membuat sebuah solusi
yang memiliki performa waktu-nyata dan memastikan tidak ada kebocoran memori
ketika sistem berjalan. Diharapkan juga solusi yang dihasilkan tidak akan mengurangi
kemampuan sistem otonom. Desain terakhir menggunakan multithreading dan linear
allocator sebagai teknik utama untuk mengatasi masalah yang dihadapi. Sistem
berhasil berjalan secara otonom di jalur yang diuji dengan kecepatan rata-rata 12.4
km/jam. Sistem menggunakan 65.22% dari CPU dan 991.25 MB dari 28902 MB
memori yang tersedia. Proses rendering berhasil mencapai 60 FPS. Pada saat
bersamaan, proses deteksi 2D mampu membuahkan hasil setiap 19.21 ms. Terakhir,
waktu pemrosesan yang dibutuhkan untuk proses deteksi 3D membuahkan hasil
dibawah 71 ms untuk kasus paling umum.