ROS (ROBOT OPERATING SYSTEM) İLE HARİTALAMA VE NAVİGASYON
Merhabalar, yazıma ROS ‘u tanıtarak başlamak istiyorum.
ROS Bilgisayar üzerinden robotlarımızı ve robot bileşenlerimizi kontrol etmemizi sağlayan BDS lisanslı, açık kaynak kodlu bir yazılım sistemidir.
Bir ROS sistemi yayın yapma ve abone olma modelini kullanarak aralarında haberleşen düğümlerden oluşur. Düğümler hesaplama işlemi yapabilen ve elde ettikleri verileri başlıklar altında yayınlayabilen veya başka bir düğümün yayınladıkları verileri başlıklara abone olarak edinebilen birimlerdir.
Gazebo ve Rviz ortamlarıyla tam uyumlu çalışması sayesinde kodlarınızı simülasyon ortamında test edebilirsiniz, böylece hızlı bir geliştirme sağlayabilirsiniz.
Aşağıdaki fotoğrafta sağ tarafta Gazebo ortamında canlandırılmış turtlebot paketini görüyoruz. Buradaki robotu klavye ile kontrol ederek üzerindeki kamera ve Gmapping algoritması sayesinde haritalama yapmasını sağlıyoruz. Sol tarafta ise çıkarılan haritayı Rviz ortamında anlık olarak takip ediyoruz. Ardından çıkarılan bu haritayı kaydedip programları kapatıyoruz.
Haritayı kaydettikten sonra robotun haritada lokalizayson yapması için amcl ( adaptive monte carlo localization) algoritmasını kullandım. Bu algoritma;
amcl, lazer tabanlı bir haritaya girer, lazer taramaları yapar ve mesajları dönüştürür ve çıktılar tahminlerde bulunur. Kaydedilen haritayı tekrardan Rviz’e yükleyip Gazebo ortamını açıyoruz ama bu sefer Gmapping algoritmasını çalıştırmıyoruz. Rviz çalıştığı anda robot örnek verilere bakarak kendi konumunu tahmin ederek belirliyor. Otonom sürüş için 2D Nav GOAL seçeneğine tıklayarak gitmesini istediğimiz yeri işaretliyoruz ve robot kendi yolunu belirleyerek istediğimiz konuma gidiyor.
Burada biraz Gmappingden bahsetmek istiyorum. Bu haritalama metodu bilinen en popüler ve açıkça bilinen SLAM problemi algoritmasıdır. Giorgia Grisetti, Wolfram Burgard ve Cyrill Stachniss tarafından geliştirilmiştir. Robotun pozisyonlarını takip etmek için Rao-Blackwellized parçacık filtresini kullanır. Hali hazırda oluşturulmuş olan harita parçaları ve sensör verileri temellidir.
GMAPPING ile haritalamada bir çok parametre bulunur ve bu parametreler değiştirilerek daha iyi haritalar elde edilebilir. Bunlardan en önemlileri:
map_update_invertal: harita güncelleme aralığı
maxUrange : lazer ışın aralığı
delta: harita çözünürlüğü
minimumScore: tarama eşleşmesinin sonucunu iyi değerlendirmek için minimum puan.
Simülasyon ortamındaki denemelerden sonra şirketin geliştirdiği AKİBA robot ile çalışmaya başladım.
Robot ile şirkette bulunduğumuz ortamın tamamını gezerek ilk haritamı çıkardım.
Bu haritadan sonra parametrelerle oynamalar yaparak bir çok yeni harita çıkardım ve bu değişimleri göz önüne alarak en iyi parametre değerlerini belirledim ve bu parametre değerleri ile yeni bir harita çıkardım.
Çıkardığım haritada da navigasyon yaparak projemi bitirmiş oldum.
Hasan GÜZ
Konya Teknik Üniversitesi, Elektrik Elektronik Mühendisliği.
İletişim:
hasanguz@outlook.com
https://www.linkedin.com/in/hasan-güz-935a6a166/