Table of Contents

Mengontrol Proses Pelacakan Mega Go

Dokumen ini menjelaskan cara mengontrol berbagai fitur dan parameter dalam proses pelacakan Mega Go untuk memenuhi kebutuhan berbagai skenario aplikasi.

Sebelum Memulai

Alur Kerja tracker

Alur kerja tracker adalah sebagai berikut:

flowchart LR
  subgraph startup_graph[Memulai]
    direction TB
    sstart((Mulai sesi))
    create[Pembuatan asli]
    load(Muat target)
    verify[Verifikasi uji coba]
    init_g[[Inisialisasi]]
  end
  
  subgraph init_graph[Inisialisasi]
    direction TB
    init_{Inisialisasi 6DoF berhasil<br>atau bukan 6DoF}
    init[[Proses inisialisasi pelacakan lokal]]
    detecting[[Pendeteksian]]
    tracking_g[[Pelacakan]]
  end

  subgraph tracking_graph[Pelacakan]
    direction TB
    tracking[[Pelacakan terus menerus]]
  end

  subgraph stopping_graph[Berhenti]
    direction TB
    unload(Muat ulang target)
    dispose[Pemusnahan asli]
    sstop([Sesi berhenti])
  end

  sstart --> create --> load --> verify --> init_g
  init --> init_ --> |Ya| detecting --> tracking_g
  unload --> dispose --> sstop
  init_ --> |Tidak| init

  startup_graph --> init_graph
  init_graph --> tracking_graph
  tracking_graph --> stopping_graph

Alur tersebut secara umum terbagi menjadi beberapa tahap:

  • Memulai:
    • Setelah sesi dimulai, tracker di lapisan asli akan dibuat.
    • Setelah Start() target sendiri, target akan dimuat ke tracker yang sesuai.
    • Untuk data uji coba, Anda perlu melakukan verifikasi kualifikasi uji coba melalui jaringan. Setelah verifikasi berhasil, Anda akan masuk ke tahap berikutnya.
  • Inisialisasi:
    • Saat menggunakan sumber bingkai 6DoF, akan masuk ke proses inisialisasi pelacakan lokal.
      • Inisialisasi pelacakan lokal mungkin memakan waktu, tergantung pada kompleksitas skenario dan kemampuan perangkat, serta biasanya terkait dengan algoritma yang digunakan di lapisan bawah sumber bingkai.
    • Saat menggunakan sumber bingkai bukan 6DoF, tahap inisialisasi pelacakan lokal akan dilewati dan langsung mulai deteksi.
    • Proses deteksi mungkin memakan waktu, tergantung pada tingkat kemudahan lokalisasi skenario dan kualitas pemetaan pengumpulan data.
    • Dalam konfigurasi default, konten tahap ini tidak akan ditampilkan. Anda dapat mengontrol perilaku ini melalui opsi komponen ActiveController.
  • Pelacakan:
    • Tracker akan terus melacak blok saat ini.
    • Dalam konfigurasi default, hanya konten di bawah node target yang sedang dalam status pelacakan (TargetController.IsTracked == true) yang akan ditampilkan. Anda dapat mengontrol perilaku ini melalui opsi komponen ActiveController.
  • Berhenti:
    • Setelah sesi berhenti, target akan diunload dan tracker di lapisan asli akan dihancurkan.

Menyesuaikan Tingkat Dukungan Perangkat

Properti MegaGoTrackerFrameFilter.MinInputFrameLevel dari MegaGoTrackerFrameFilter digunakan untuk menentukan tingkat perangkat minimum yang didukung oleh Mega.

alt text

Mega Go dapat berjalan di hampir semua jenis sumber bingkai, tetapi sumber bingkai yang berbeda memiliki pengaruh yang berbeda terhadap efek pelacakan.

Secara default, Mega akan memilih sumber bingkai tingkat tertinggi yang didukung oleh perangkat untuk pelacakan. Sesi yang mendukung Mega Go dalam konfigurasi default telah dikonfigurasi dengan sumber bingkai yang mendukung 6DoF dan 5DoF.

Untuk mendukung sumber bingkai tingkat tertentu saat Mega berjalan, diperlukan dua syarat:

Misalnya, untuk mendukung pelacakan 3DoF dalam sesi default, Anda perlu:

Sebagai contoh lain, untuk menghapus dukungan pelacakan 5DoF dalam sesi default, Anda perlu:

Jika tidak ada sumber bingkai yang memenuhi syarat yang tersedia, pengumpulan sesi akan gagal.

Memahami Status Sistem Saat Ini

Dalam konfigurasi sesi default, Pesan UI akan ditampilkan di layar, yang berisi informasi status Mega Go.

Status Tracker akan ditampilkan di sebelah Mega Go: , seperti Tracking, VerifyingTrial, dan sebagainya. Selama proses deteksi dan pelacakan, pembaruan lokalisasi juga akan ditampilkan di bawah.

alt text

Status pelacakan blok yang sedang dimuat akan ditampilkan di bawah Mega Go: , ditampilkan sebagai Block (<trackingStatus>): <name> (<id>). Di mana <name> adalah nama blok, <id> adalah ID blok. trackingStatus mungkin Tracking atau NotTracking, yang masing-masing menunjukkan apakah blok saat ini sedang dilacak.

alt text

Anda dapat menggunakan properti MegaGoTrackerFrameFilter.Status untuk mendapatkan status saat ini, sehingga Anda dapat memahami kondisi operasi tracker. Saat terjadi status kesalahan, Anda dapat menggunakan MegaGoTrackerFrameFilter.Error untuk mendapatkan status kesalahan dan melakukan pemrosesan yang sesuai.

Kode berikut menunjukkan cara menggunakan properti ini, serta metode pemrosesan status pengecualian umum yang perlu diperhatikan oleh aplikasi:

void HandleTrackerStatus()
{
    if (tracker.Status == MegaGoTrackerStatus.Error)
    {
        if (tracker.Error == MegaGoTrackerError.ServiceVerificationFailed)
        {
            // Verifikasi layanan gagal. Disarankan untuk memeriksa apakah data telah kedaluwarsa atau tidak valid (setelah versi uji coba diubah menjadi versi resmi, data versi uji coba akan menjadi tidak valid).
        }
        else if (tracker.Error == MegaGoTrackerError.LocalVerificationFailed)
        {
            // Verifikasi lokal gagal. Disarankan untuk memeriksa apakah file target lengkap.
        }
        else
        {
            // Kesalahan lainnya.
        }
    }
    else if (tracker.Status == MegaGoTrackerStatus.VerifyingTrial)
    {
        // Verifikasi target uji coba sedang berlangsung. Jika verifikasi tidak dapat selesai dalam waktu lama, disarankan untuk memeriksa koneksi jaringan.
    }
    else if (tracker.Status == MegaGoTrackerStatus.VIOInitializing)
    {
        // Inisialisasi input VIO sedang berlangsung. Jika inisialisasi tidak dapat selesai dalam waktu lama, disarankan untuk memberi tahu pengguna untuk mengoptimalkan cara penggunaan.
        // Misalnya: "Cobalah arahkan kamera ke depan miring, dan gerakkan tubuh sambil membawa perangkat ke kiri dan kanan sebanyak 5 kali."
    }
}

Anda dapat menggunakan event MegaGoTrackerFrameFilter.LocalizationRespond untuk mendapatkan pembaruan lokalisasi.

Jeda dan Lanjutkan

Anda dapat mengatur MegaGoTrackerFrameFilter.enabled menjadi false untuk menjeda pelacakan.

Secara default, setelah pelacakan dijeda, semua konten di bawah node blok akan disembunyikan.

Topik Terkait