2 poin oleh GN⁺ 2024-11-14 | 1 komentar | Bagikan ke WhatsApp
  • Di dalam terowongan, meski GPS, seluler, dan Wi‑Fi terputus, GO trip dari Transit kini tetap dapat menampilkan posisi prediksi, jumlah stasiun tersisa, dan ETA
  • Kuncinya adalah mengklasifikasikan apakah pengguna berada di dalam kereta yang sedang bergerak melalui sinyal getaran akselerometer ponsel, lalu menghitungnya bersama posisi terakhir yang terkonfirmasi dan jadwal kereta
  • Tim Transit mengumpulkan data berlabel manual dari ratusan perjalanan dan beberapa kota; di subway New York City, mereka menaiki semua jalur sambil merekam getaran kereta, eskalator, dan lift
  • Model prediksi posisi akhir The Mixer menebak posisi saat ini dengan probabilitas 90%, dan dalam pengujian awal mendukung deteksi 1,5 juta stasiun bawah tanah dari sekitar 400.000 perjalanan
  • Kedua model dikompresi menjadi file kecil dan berjalan di ponsel, sehingga penghitungan stasiun offline dimungkinkan, dan data getaran tidak dikirim ke server Transit

Mengapa sulit menentukan posisi di bawah tanah

  • Di dalam terowongan kereta bawah tanah, metro, atau U-Bahn, layanan seluler, Wi‑Fi, dan GPS sering kali tidak berfungsi dengan stabil
  • Sebelumnya, untuk memeriksa stasiun pemberhentian atau ETA di bawah tanah, pengguna harus bergantung pada papan informasi platform, pengumuman stasiun, atau layar digital di dalam kereta
  • Alih-alih membuat satelit GPS yang menembus permukaan tanah, Transit memprediksi posisi kereta di dalam terowongan menggunakan pola getaran ponsel

Informasi yang terlihat di GO trip

  • Pengguna cukup memulai GO trip di Transit
    • Bisa dimulai langsung dari layar detail rute
    • Bisa juga dimulai dari perjalanan yang sudah direncanakan
  • Aplikasi menampilkan informasi berikut meski tidak mengetahui koordinat GPS
    • Posisi prediksi di peta
    • Hitung mundur jumlah stasiun tersisa
    • ETA yang diperbarui

Tahap 1: Mengklasifikasikan gerakan di dalam kereta

  • Saat memasuki terowongan dengan GPS yang buruk, pertama-tama perlu ditentukan apakah pengguna berada di kereta yang sedang bergerak
  • Stephen, staf Transit, merekam data akselerometer dengan ponselnya saat berangkat ke kantor Montreal dan memberi label pada tiap segmen perjalanannya
    • Saat mulai berjalan
    • Saat menuruni tangga
    • Saat menunggu di platform
    • Saat kereta berangkat dan berhenti
  • Data akselerasi disusun dengan metode yang terinspirasi dari Fourier transform dan diubah menjadi data frekuensi
  • Di kereta yang bergerak, ponsel bergetar pada sekitar 5Hz, sedangkan saat berjalan muncul sekitar 2Hz
  • Karena noise acak dan frekuensi harmonik, pola sederhana saja tidak cukup; dibutuhkan model machine learning yang mengklasifikasikan jenis gerakan dan banyak data latih

Tahap 2: Mengumpulkan data jawaban benar

  • Tim Transit memberi label data dari ratusan perjalanan dan puluhan kota untuk membuat model generalisasi yang dapat mendeteksi “kereta yang sedang bergerak” terlepas dari jenis kereta atau rel
  • Étienne dan Elijah mengumpulkan data getaran di subway New York City, sistem bawah tanah paling populer di aplikasi
  • Keduanya membawa iPhone, Android, dan MetroCard, lalu selama seminggu menaiki bus dan kereta MTA sambil memberi label pada setiap tahap perjalanan
  • Tujuannya adalah menemukan petunjuk yang membedakan getaran di dalam kereta dari getaran lain di stasiun
    • Mereka naik-turun eskalator dan lift, serta memberi anotasi hingga titik berhenti
    • Mereka menaiki semua jalur subway New York, dari Bronx sampai Brighton Beach, termasuk Manhattan Bridge, Williamsburg Bridge, dan Canarsie Tunnel

Tahap 3: Melatih pengklasifikasi gerakan

  • Berdasarkan data sensor yang telah dirapikan dan diproses, motion classifier dilatih untuk membedakan “kereta yang sedang bergerak” dan “bukan kereta yang sedang bergerak”
  • Model menerima data sensor tanpa label sebagai input dan memperkirakan apakah ponsel berada di kereta yang bergerak, kereta yang berhenti, saat berjalan kaki, atau saat berada di eskalator
  • Transit membandingkan estimasi ini dengan ground truth yang dibuat lewat anotasi manual, lalu menyesuaikan logikanya untuk prediksi yang lebih akurat
  • Setelah penyesuaian, model dapat membedakan apakah pengguna benar-benar berada di kereta yang sedang bergerak atau sekadar ponselnya saja yang bergetar

Tahap 4: Model prediksi posisi The Mixer

  • Setelah mengetahui apakah pengguna bergerak, berikutnya perlu diprediksi secara tepat di mana kereta pengguna berada
  • Model terakhir, The Mixer, menghitung posisi saat ini dengan memberi bobot pada faktor-faktor berikut
    • Prediksi jenis gerakan, yaitu apakah pengguna berada di kereta yang sedang bergerak
    • Posisi terakhir pengguna yang terkonfirmasi
    • Apakah posisi terakhir yang terkonfirmasi itu masih baru atau sudah lama
    • Jadwal kereta
  • The Mixer menebak prediksi posisi saat ini dengan probabilitas 90%
  • Dalam contoh perjalanan Paris RER, pembaruan posisi sesekali melalui GPS dan pemindaian Bluetooth/Wi‑Fi masuk di segmen bawah tanah, dan pembaruan ini mengoreksi prediksi posisi bawah tanah di segmen tanpa komunikasi
  • Saat pengguna naik ke permukaan dan masuk ke area dengan layanan seluler, aplikasi kembali menggunakan posisi GPS standar

Operasi offline dan penanganan privasi

  • Jika prediksi posisi dimungkinkan, ETA pengguna dapat diperbarui bahkan di bawah tanah
  • Penghitungan stasiun dapat dilakukan tanpa bergantung pada GPS yang tidak stabil atau memeriksa layar di dalam kereta
  • Penghitungan stasiun bekerja sepenuhnya secara offline
  • motion classifier dan The Mixer dikompresi menjadi file kecil dan berjalan di ponsel
  • Data getaran tidak dikirim ke server Transit
    • Tidak ada pelacakan
    • Tidak ada cookie
    • Data getaran tetap berada di perangkat pengguna

Cara penggunaan dan skala pengujian awal

  • Pengguna cukup mencari subway, membuka Transit, dan memulai perjalanan dengan GO untuk melihat stasiun dihitung mundur satu per satu
  • Selama pengujian awal, Transit mendukung deteksi 1,5 juta stasiun bawah tanah dari sekitar 400.000 perjalanan
  • Navigasi langkah demi langkah GO sudah digunakan oleh jutaan pelaku perjalanan di permukaan di lebih dari 600 kota
  • Setelah GO Bike diluncurkan bulan lalu, pesepeda juga menggunakan GO
  • Dengan fitur ini, pengguna kereta bawah tanah dapat lebih memercayai GO bahkan di segmen dengan kondisi komunikasi buruk
  • Aplikasi tersedia di halaman unduhan Transit

1 komentar

 
GN⁺ 2024-11-14
Pendapat di Hacker News
  • Sekitar 10 tahun lalu saya membaca tulisan blog dari perusahaan Prancis snips; caranya adalah aplikasi mendeteksi momen ketika kereta masuk atau keluar stasiun dengan sensor tekanan udara
    Saat kereta masuk atau keluar dari terowongan di antara stasiun, terjadi kenaikan/penurunan tekanan udara yang tiba-tiba, sehingga katanya sinyalnya cukup jelas
    Ketemu: https://medium.com/snips-ai/underground-location-tracking-3e...

    • Pada kereta cepat, tabung pneumatik di tepi pintu kadang diberi tekanan lebih tinggi sebelum masuk terowongan
      Tabung ini dapat mendeteksi lonjakan tekanan untuk mengetahui apakah pintu menjepit tangan orang, dan juga dipakai untuk mengurangi efek “bang” akibat perbedaan tekanan saat masuk terowongan
    • Saya bekerja di proyek ini, dan bisa menjelaskan mengapa pada akhirnya kami tidak memakai sensor tekanan udara
      Tidak semua ponsel punya sensor tekanan udara, dan kualitas pengukurannya juga sangat berbeda antar-model. Misalnya, di beberapa perangkat nilainya bisa melonjak hanya karena ponsel digenggam seperti diremas
      Transit juga tidak punya izin membaca sensor tekanan udara, dan untuk kebutuhan kami sulit membenarkan permintaan izin itu
    • Saya ingat bahkan sebelum itu Google Maps pernah bereksperimen memperkirakan pergerakan kereta dengan magnetometer
      Namun akurasinya tampaknya bergantung pada apakah arus di jaringan listriknya DC atau AC, bahkan juga pada usia gerbong
    • Di Berlin Airport, kereta berperan sebagai ventilasi
      Karena bangunannya sudah selesai tetapi belum beroperasi, selama hampir 10 tahun perusahaan kereta regional harus menjalankan kereta keluar-masuk gedung
    • Sangat sedikit ponsel Android yang memiliki sensor tekanan udara
  • Benar-benar keren
    Saat ini saya sedang mengerjakan proyek rekaman suara London Underground yang benar-benar lewat di bawah saya
    Northern Line yang melintas di bawah kami terdengar sangat jelas, dan kedalamannya bahkan kurang dari 30 m
    Saya jadi terobsesi menangkap suara kereta yang lewat dengan rekaman frekuensi rendah berkualitas tinggi. Entah kenapa, itu tidak bisa lepas dari pikiran saya
    Misalnya, ada dua terowongan arah utara/selatan, dan saya penasaran apakah tanda suara masing-masing bisa dibedakan dengan mengorelasikannya dengan data TfL yang sebenarnya
    Yang lebih menarik lagi adalah apakah kita bisa “menangkap” kendaraan pemeliharaan yang berjalan di bawah kami setelah jam operasional berakhir
    Saya tidak tahu apa lagi yang bisa dilakukan dengan proyek ini, tetapi saya terpikat oleh gagasan menangkap suara semacam makhluk setengah fana yang bergerak di bawah saya

    • Keren. Saya penasaran sensor apa saja yang pernah dipertimbangkan
      Saya tertarik pada getaran frekuensi tinggi yang sangat lemah dari benda sehari-hari yang diam, jadi mungkin targetnya hampir berkebalikan. Saya belum banyak kemajuan dalam mendapatkan sensornya
      Saya ingin punya laser Doppler vibrometer, tapi harganya mahal
    • Beberapa minggu lalu saya pergi ke open house Lamont-Doherty Earth Observatory, dan seorang peneliti sedang merekam serta menganalisis suara seismik dengan cara yang mirip
      Saya akan coba cari siapa orangnya
      [0] https://lamont.columbia.edu/
    • Pekerjaan membedakan apa yang terjadi jauh di bawah tanah hanya dari sinyal pasif yang bisa diperoleh diam-diam di permukaan, apalagi direkam dengan peralatan nonprofesional, sepertinya akan menarik bagi beberapa lembaga pemerintah
    • Saya pernah tinggal sekitar 300 yard dari tempat kereta bawah tanah lewat, dan rasanya saya bisa mendengarnya
      Saya tidak tahu apakah itu sisa suara dari pintu darurat di trotoar, atau tanahnya yang beresonansi seperti lonceng
  • Saya juga ingin sebentar mengakui bahwa nada percakapan tulisannya benar-benar bagus
    Bahkan saat masuk ke penjelasan yang cukup detail seperti grafik frekuensi, tetap enak dibaca. Saya membaca versi bahasa Inggrisnya
    Penulisnya benar-benar berhasil melakukannya dengan sangat baik

    • Betul. Nadanya hangat dan terasa ditulis manusia, bukan AI
    • Tulisan peluncuran produk dan tulisan engineering mereka biasanya memang sangat bagus
      Transit App adalah aplikasi yang seperti permata
  • Istilah “classifier” terasa akrab. Menarik bahwa sepanjang tulisan mereka tidak sekalipun menyebut AI

    • Bagus. Artinya engineering yang memegang kendali, bukan marketing
  • Beberapa kota memasang BLE beacon di terowongan untuk menyiarkan lokasi, lalu posisi saat ini ditentukan dari sinyal beacon terkuat
    Cara ini terlihat bagus karena mencari tahu hal itu tanpa memasang hardware

    • Beberapa kereta juga punya teknologi modern bernama “layar” yang menampilkan posisi saat ini, stasiun berikutnya, rute, dan sebagainya
      Tentu, agar adil, layar itu sering sekali salah sampai menggelikan, dan memutar pesan tidak berguna seperti “jangan lupa barang bawaan Anda”, sehingga untuk melihat informasi yang diinginkan harus menunggu sekitar 20 detik. Di dalam kereta, itu sangat buruk
    • London Tube perlahan mendapatkan sinyal seluler per jalur, tetapi karena semua platform punya WiFi stasiun, sepertinya itu saja sudah bisa dipakai
  • Progres di antara stasiun sepertinya bisa dilacak lebih baik dengan mendeteksi tanda akselerasi tiap segmen rel
    Terutama jika relnya tidak sepenuhnya lurus dan datar; ini terlihat seperti navigasi kendaraan awal sebelum GPS. Saat itu mereka memakai dead reckoning, lalu mencocokkan bentuk rute yang diukur dengan data peta untuk mengoreksi drift

    • Tanda akselerasi berubah tergantung masinis, kapasitas dan beban kereta saat ini, model kereta, atau perbedaan drivetrain
      Cara yang lebih andal mungkin adalah memakai akselerometer untuk mengenali fitur rel: kemiringan, tikungan, guncangan, atau kombinasi semuanya
      Suara saat berbelok, perubahan latar saat terowongan bergabung, dan sebagainya juga bisa dipakai. Akselerasi yang diintegrasikan memberikan kecepatan kereta, sehingga berguna bersama input lain
    • Saya kira niat mereka mungkin membuat sesuatu yang bekerja di jalur mana pun tanpa data tanda
      Mengumpulkan tanda akan keren, tetapi untuk mencakup banyak kota dan ponsel itu pekerjaan yang sangat besar. Perusahaan seperti Google atau Apple mungkin punya data dan kapasitasnya, tetapi perusahaan kecil kecil kemungkinannya bisa
    • Shazam untuk rel kereta
    • Di jaringan trem lokal kami, ini bisa dilakukan hanya dengan mendengar suara inverter yang menggerakkan motor
      Ada dengungan yang sangat khas yang berkaitan dengan putaran roda. Dulu saya pernah membuat speedometer kasar dengan SFT, deteksi puncak, dan Kalman filtering
  • Sebagai pengguna Transit, terima kasih sudah membuat aplikasi sekeren ini; ini memang selalu menjadi salah satu ketidaknyamanan terbesar
    Bukan hanya Transit, hal yang sama berlaku untuk aplikasi apa pun yang mendukung navigasi transportasi umum, termasuk Apple Maps
    Saya memang mengira pasti ada seseorang yang sedang mengerjakan ini, tetapi membaca pertimbangan desain dan tingkat detailnya benar-benar menyegarkan. Ini pasti upaya yang luar biasa besar
    Tim Transit boleh bangga karena telah menyelesaikan salah satu keluhan kecil tapi besar dalam aplikasi transportasi umum

  • Benar-benar keren. Karena sering naik BART, saya selalu berpikir akan menarik membuat pengklasifikasi lokasi berdasarkan suara berdecit yang berbeda di tiap titik terowongan
    Namun memakai data akselerometer tampaknya jauh lebih praktis

    • Menggunakan mikrofon sebagai sensor di aplikasi transportasi umum cukup bermasalah
      Mungkin saja merekam suara kereta berjalan untuk memahami pergerakan, tetapi pengguna akan curiga aplikasinya sedang menguping mereka
    • Tinggal setel suara decitnya agar menghasilkan harmoni yang berbeda di setiap stasiun
  • Selain machine learning, bukankah akan jauh lebih baik jika melakukan dead reckoning dengan akselerometer dan giroskop?
    Di dalam kereta yang bergerak, gerakannya dibatasi agar mengikuti jalur terowongan yang diketahui, dan ketika keberangkatan kereta terdeteksi, pengguna dibatasi berada di dalam persegi area pemberhentian kereta
    Atau apakah hardware smartphone terlalu tidak akurat meskipun ada informasi tambahan?

    • Yang mungkin paling membantu barangkali sensor Hall/magnetometer/kompas. Itu bisa memberikan keluaran dead reckoning yang lumayan
      Giroskop saja bekerja sangat baik untuk perjalanan singkat, tetapi menjadi hampir tidak berguna pada tikungan panjang dan landai. Giroskop MEMS mengalami drift cukup besar dalam puluhan detik
      Jika bisa melakukan sensor fusion dengan magnetometer dan akselerometer, masalahnya berkurang, tetapi pada kereta cepat sulit menemukan arah “bawah” karena akselerasi/deselerasi dan gaya di tikungan. Saya juga tidak tahu seberapa baik kompas bekerja di dalam terowongan subway
      Pengalaman saya hanya memakai aplikasi “artificial horizon” di pesawat, dan di sana akselerometer sama sekali tidak berguna untuk menemukan “bawah”. Satu manuver dengan beberapa G saja membuat horizon sama sekali tidak tahu sudut pitch. Jika lingkungan magnetiknya berisik dan GPS juga mati, ia juga tidak tahu ke mana arahnya
    • Memang itulah yang mereka lakukan
      Hanya saja dead reckoning umumnya sangat tidak akurat, jadi jika bisa mengenali bahwa pengguna sudah naik kereta, mereka bisa tahu persis keretanya ada di mana dan meningkatkan akurasi secara signifikan
    • Sepertinya sulit memakai IMU. Sinyal nyata berupa akselerasi halus kereta kemungkinan besar tertutup noise getaran dan gerakan alami manusia
      Setiap kali kereta berhenti, jika pengguna cukup diam berdiri atau duduk, bias IMU mungkin bisa dikalibrasi, tetapi dead reckoning tetap tampaknya akan mengalami drift besar
    • Untuk setiap segmen sistem subway, melakukan FFT pada sinyal mikrofon dan akselerasi lalu mencatat waktu perjalanan historis terdengar cukup sederhana
      Tinggal memperkirakan kecepatan saat ini dibanding catatan historis dan memprediksi waktu kedatangan. Jadi lebih baik fokus pada kecepatan daripada akselerasi
    • Solusi yang mereka implementasikan sangat menarik, tetapi sebenarnya bukan “memprediksi posisi di dalam terowongan subway dari tanda getaran ponsel”
  • Minggu lalu saya mencoba fitur ini di New York subway. Saya tidak tahu itu fitur baru
    Idenya keren, tetapi tidak berfungsi untuk saya; aplikasi menampilkan kereta berada beberapa stasiun di belakang posisi sebenarnya