ONYX, ROOTLINQ’ten ayrı geliştirilen deneysel bir saha robotu ve uzaktan sürüş projesidir. Hedefimiz tam otonomi iddiası değil: operatörün aracı kameralarla uzaktan görebildiği, düşük gecikmeyle sürebildiği ve bağlantı bozulunca aracın güvenle durduğu sağlam bir teleoperasyon altyapısı kurmak.
Saha güvenliği yalnız yazılıma bırakılmaz. Mekanik frenleme, yazılımdan bağımsız güvenlik devresi ve operatör gözetimi tasarımın merkezindedir. Proje tasarım aşamasındadır; prototip ve yazılım henüz yoktur.
ONYX (S0, tasarım aşamasında): canlı kamera görüntüsü, ayrı kontrol kanalı ve yazılımdan bağımsız acil durdurma.
ONYX ayrı kod deposu, ayrı geliştirme takvimi, ayrı güvenlik gereksinimleri ve ayrı donanımla geliştirilir. ROOTLINQ’in sensör ve karar destek altyapısının çalışması için ONYX gerekmez; ONYX’in çalışması da ROOTLINQ’e bağlı değildir. İki sistem ileride görev bilgisi, bahçe haritası, konum, saha alarmı ve tamamlanan iş kaydı paylaşabilir, ama bugün böyle bir bağlantı yoktur.
Uzaktan araç sürmede ekranın görünüşünden çok kontrol zincirinin davranışı önemlidir. Görüntü gecikebilir, bir ekran animasyonu takılabilir; ama yön, hız ve durdurma komutlarındaki gecikmenin nasıl ele alınacağı önceden tasarlanmalıdır. Bu yüzden ONYX kontrol uygulaması ROOTLINQ mobil uygulamasından bağımsız geliştirilir.
Operatör aracın önünü ve çevresini yeterince güncel bir görüntüyle görebilmelidir; ilk aday, canlı kamera akışını WebRTC ile taşımaktır. Ekranda görüntünün yanında bağlantı kalitesi, görüntü gecikmesi, araç hızı, kontrol modu ve uyarılar da görünür. Görüntü kullanılamayacak kadar gecikirse bu operatöre açıkça gösterilir.
Hareket komutlarının ihtiyacı görüntüden farklıdır: düşük gecikme, komutların sırası, yeni komutun eskisinin önüne geçmesi ve bağlantı kaybının hızla fark edilmesi. Haberleşme yöntemi prototip ve güvenlik testlerinden sonra seçilecek. Değişmeyecek ilke şu: araç eski ya da geç kalmış bir komutu yeni komut gibi uygulamaz.
Kontrol bağlantısı kaybolunca araç komut bekleyerek ilerlemez. Güvenlik zincirinde bağlantı sinyali takibi, bekçi zamanlayıcısı, komut zaman aşımı, motor gücünü kesen katman ve fiziksel acil durdurma değerlendirilir. Tek bir yazılım komutu yetmez; ana bilgisayar kilitlense de durdurma çalışmalıdır.
İlk operatör arayüzü telefon, web ve masaüstüne dağıtılmayacak; belirli bir tablet için ayrı bir uygulama olacak. Böylece ekran boyutu, kontrol yerleşimi, bağlantı davranışı ve acil durdurmaya erişim daha kontrollü tasarlanır. Android tablet için Kotlin ve Jetpack Compose adaylardan biridir; seçim prototipte doğrulanacak.
Projenin sınırlarını baştan açıkça çizmek gerekir. Aşağıdaki işler ilk prototipin hedefi değildir:
İlk prototipi “kaç km/s yaptı” ya da “kaç işi kendi yaptı” ile ölçmüyoruz. Aranan cevaplar şunlar:
ONYX’in ROOTLINQ’e gömülü olması gerekmez. ROOTLINQ ileride “Parsel 3, sıra 8 kontrol edilmeli” gibi bir görev üretebilir; ONYX bu görevi operatör ekranına alır, iş bitince rota, süre, görüntü ve operatör notunu geri gönderir. Robotu ROOTLINQ yönetmez; iki ayrı sistem bilgi alışverişi yapar.
İlk sürümde nereye gidileceğine, ne hızla sürüleceğine, hangi manevranın yapılacağına ve ne zaman durulacağına operatör karar verir. Araç güvenlik sınırlarını denetler ama işe dair kararı kendisi vermez. Daha ileri otonomi yalnız belirli görevlerde ve ayrı saha doğrulamalarından sonra konuşulur.
Bağlantı koptuğu için duran araç, sinyal geri geldiğinde kendiliğinden hareket etmez. Operatör kontrolü yeniden aldığını ekranda açıkça onaylar, ardından yeni bir hareket komutu verir. Bu yüzden aracın hangi durumdan hangisine geçebileceği önceden tek tek tanımlanır ve kaydedilir.
Bu soruya güvenilir bir cevap bulunmadan otonom sürüşü ya da mekanik görevleri konuşmak erkendir. ONYX’in geliştirme adımları bu sırayla ilerler:
ONYX’in ilk hedefi kendi kendine çalışan bir robot olmak değil; insan kontrolündeki bir saha aracını güvenilir ve güvenli hâle getirmek.