ckrkmz
Yeni Üye
- Katılım
- 14 Nisan 2026
- Mesajlar
- 3
Bu proje, piyasada standart bir ev aleti olarak bulunan ticari bir robot süpürgenin (RS770) kapalı kutu elektronik altyapısını devreden çıkararak, donanımı tamamen açık kaynaklı ve modüler bir ROS2 otonom devriye robotuna (Perceptor) dönüştürme sürecini ele almaktadır. Çalışmanın temel amacı; süpürme fonksiyonlarından arındırılmış, sadece haritalama (SLAM), yörünge planlama (Nav2) ve otonom navigasyon yeteneklerine odaklanan, gelecekteki karmaşık robotik projeler için güvenilir bir mobil donanım altyapısı (mobile base) oluşturmaktır.
- P1 - İskelet (Lobotomi): Robot süpürgenin orijinal kartını söktük, motorları ve şasiyi "aptal" hale getirip kendi sistemimize hazırladık.
- P2 - Beyin Nakli: Pi 4 ve ESP32 montajı yapıldı. "Dual-brain" mimarisi kuruldu.
- P3 - Motor Bring-up: "Tekerlekler dönüyor mu?" aşaması. PWM sinyallerini ESP32 üzerinden gönderip motorları ROS2 ile konuşturmayı başardık.
- P4 - Odometri ve IMU Doğrulaması (Şu an buradayız): Robotun ne kadar gittiğini hesapladığımız aşama. Enkoderlerden gelen pulse'ları metreye çeviriyoruz. IMU (cayroskop) ile robotun sağa-sola sapmasını ölçüyoruz. Bu faz bitmeden robot düzgün harita çıkaramaz.
- P5 - Lidar & Safety: Lidar verisinin Pi 4'e akması ve robotun önüne bir engel çıktığında "kendi kendine" durma yeteneği kazanması.
- P6 - PID Tuning: Motorların hızını milimetrik hassasiyete getirme. (Halıda ayrı, parkede ayrı gitmesin diye).
- P7 - SLAM (Haritalama): İşte büyük olay! Robotun evin içinde gezip kendi haritasını (Lidar ile) çıkarmaya başladığı ilk an.
- P8 - Nav2 (Otonom Sürüş): Harita üzerinde bir nokta seçeceğiz ve robot engellere çarpmadan oraya kendi gidecek.
- P9 - Devriye ve Görevler: Belirli saatlerde evin içinde tur atma, MQTT üzerinden akıllı eve veri gönderme.
- P10 - Final (The Perceptor): Kasanın kapatılması, estetik dokunuşlar ve tam kararlılık.
1. Sistem Mimarisi: Neden İki Katmanlı (Dual-Brain) Yapı?
Otonom robotik sistemlerde karşılaşılan en büyük handikaplardan biri, karar alma mekanizmaları ile fiziksel eylemler arasındaki zamanlama krizidir. Bu projede, işlem yükünü ve gerçek zamanlı (real-time) tepkileri optimize etmek amacıyla sistemi iki ana beyne böldük:- Üst Katman (Yüksek Seviye Kontrol - YZ ve Navigasyon): İşletim sistemi (Ubuntu/DietPi) ve ROS2 Jazzy barındıran Raspberry Pi 4.
- Alt Katman (Düşük Seviye Kontrol - Gerçek Zamanlı İşlemler): ESP32-S3 mikrodenetleyici.
2. Donanım ve Tersine Mühendislik Süreçleri
2.1. Odometri ve Tek Kanallı Enkoder Problemi
Projenin en zorlu mekanik ve yazılımsal aşamalarından biri, robotun konum takibini (odometri) sağlayacak tekerlek verilerini anlamlandırmaktı. İlk adım olarak dişli oranlarının çıkarılması gerekti. GearGenerator aracı kullanılarak şasideki dişli mimarisinin kinematik analizi yapıldı ve motorun tam bir turunda enkoderin kaç pulse ürettiği matematiksel olarak haritalandı.Ancak ticari robot süpürgelerde maliyet odaklı tasarlandığı için, standart A-B kanallı (yön algılayabilen) enkoderler yerine sadece A kanalına sahip tek fazlı enkoderler kullanılmaktadır. Bu durum, donanımsal olarak tekerleğin ileri mi yoksa geri mi döndüğünün anlaşılamaması sorununu doğurur.
Çözüm: Bu donanımsal eksiklik, yazılımsal bir durum makinesi (state machine) ile aşıldı. Tekerleğin dönüş yönü, motor sürücüye (L298N) o an gönderilen "ileri/geri" komut sinyallerinden türetilerek enkoder pulse'ları ile senkronize edildi.
2.2. Sensör Füzyonu (IMU + Enkoder)
Tek kanallı enkoder üzerinden alınan tahmini odometri verisi, zemin kaymaları veya asimetrik sürtünmeler nedeniyle zamanla sapma (drift) yaratır. Bu sapmayı minimuma indirmek için sisteme MPU-9250/6500 (IMU) entegre edildi. Robotun ivme ve yönelim (heading) bilgileri, motor kontrol döngüsü (PID) ile harmanlanarak doğrusal rota takibi stabilize edildi.2.3. Lidar Entegrasyonu ve Güvenlik İzolasyonu
Çevresel algılama (SLAM) için harici, pahalı bir Lidar almak yerine, donanımın üzerinde gelen YD-Lidar X2 değerlendirildi. Topluluk kaynakları ve teknik dokümantasyonlar incelenerek bu donanıma özel kontrol kodları yazıldı.Kritik Donanım Kararı: Lidarın ürettiği devasa nokta bulutu (point cloud) verisinin ESP32-S3'ü boğmaması için Lidarın veri hattı (TTL) doğrudan Raspberry Pi'ye bağlanmıştır. Lidarın 5V ile çalışan döndürücü motoru ise doğrudan işlemcilere bağlanmak yerine, ESP32'den (GPIO 14) gönderilen PWM sinyali ile bir MOSFET üzerinden sürülerek sistemsel izolasyon sağlanmıştır.
3. Mevcut Durum ve Geliştirme Süreci (Faz: Bring-up)
Proje an itibarıyla P3 (Motor sürücü ve enkoder bring-up) fazındadır. Bugüne kadar tamamlanan kilometre taşları şunlardır:- Güç topolojisi ve 3.3V tolerans kurallarına uygun ortak GND altyapısı kuruldu. L298N sürücüsünün ENA/ENB jumper'ları sökülerek doğrudan PWM kontrolüne geçildi.
- ESP32 firmware katmanı başarıyla implemente edildi ve Raspberry Pi üzerinden firmware yükleme/komut doğrulama işlemleri entegre edildi.
- ROS2 Jazzy ile seri köprü (bridge node) düğümü aktif olarak çalıştırıldı.
- Canlı fiziksel testler için Pi üzerinden çalıştırılabilen reset_encoders ve enc-pulse-per-turn gibi özel komut satırı arayüzleri (CLI) geliştirildi.
4. Sonraki Adımlar
Mevcut iterasyonda, manuel referanslarla tekerleklerin tam tur başına ürettiği pulse ölçümlerinin doğrulanması (enc-pulse-per-turn aracı ile) ve sağ/sol tekerlek hız farklarını dengeleyecek ilk ölçekleme katsayılarının (PID tuning) belirlenmesi hedeflenmektedir. Bu mekanik kalibrasyonlar tamamlandıktan sonra, ROS2 üzerinde Nav2 ve SLAM entegrasyonu (P7 Fazı) ile robot kapalı alanlarda harita çıkarmaya başlayacaktır.
Son düzenleme: