• Sonuç bulunamadı

evarobot_rgb /SetRGB

3.3.2 Yüksek seviyeli kontrol

/evamobil std_msgs/String

Şekil 3.23 evarobot_android düğüm yapısı

3.3.2 Yüksek seviyeli kontrol

Düşük seviyeli kontrolde robot üzerindeki donanımların sürülmesi ve alınan bilgilerin ROS ortamına aktarılması gerçekleştirilirken, yüksek seviyeli kontrolde bu bilgilerin anlamlandırılması ve otonom kontrol için ilgili komutların oluşturulması işlemi gerçekleştirilmektir. Yüksek seviyeli kontrolde temel amaç robotun bir noktadan diğerine otonom hareket ederken ortamdaki dinamik ve statik nesnelere çarpmadan görevini tamamlamasını sağlamaktır. Bu amaç doğrultusunda robot harita üzerinde kendisini konumlandırması gerekmektedir. Algılayıcılardan aldığı bilgiler ile kendisini ortam haritasında konumlandırırken, derinlik algılayıcılarından aldığı bilgilerle bir sonraki adımlarda çarpışma olup olmayacağını hesaplayarak buna karşı önlem almalıdır. Bu bölümde robottan beklenen bu görevleri üstlenen yüksek seviyeli kontrolün mimarisinin ve içerisindeki düğümlerin anlatımı yapılacaktır. Yüksek seviyeli kontrolden sorumlu düğümlerin anlatımı birim bazlı yerine ortamın haritasının çıkartılması, konumlandırma ve otonom navigasyon başlıkları altında düğümlerin üstlendiği görevler üzerinden yapılacaktır.

3.3.2.1 Haritalama

Bazı uygulamalarda Evarobot’un kendisini konumlandırabilmesi için ortam haritasının daha önceden oluşturulmuş olması gerekmektedir. Çalışmada SLAM (Simultaneous Localization and Mapping) kullanılarak robot eş zamanlı konumlandırılmakta ve ortamın haritası çıkartılmaktadır. Evarobot ile ortam haritası çıkartılırken yüksek seviyeli kontrol tarafında çalışan düğümler ve bunların arasındaki ilişki Şekil 3.24’te verilmiştir.

Şekil 3.24 Ortam haritası çıkarılırken kullanılan düğüm yapısı

Evarobot için tasarlanan yazılım kontrol mimarisinde DSK ve YSK içerisindeki işlemlerinin birbirini etkilememesi için birbirinden bağımsız iki adet ROS-Master çalışmaktadır. Bu iki master arasında veri iletişiminin sağlanabilmesi için düğüm ve topiklerin senkronizasyonu yapan “/master_sync” düğümü kullanılmaktadır. DSK tarafından üretilen “/odom” ve “/imu” bilgileri “evarobot_pose_ekf” isimli düğüm içerisinde EKF (Genişletilmiş Kalman Filtre) ile tümleştirelerek robotun oryantasyon bilgisi iyileştirilmiş bağıl konumu elde edilmektedir ve “/odom_combined” isimli topik üzerinden yayınlanmaktadır. İyileştirilmiş bağıl konum ve robotun 3B sanal modeli,

“evarobot_state_publisher” isimli düğüm tarafından kullanılarak eklemler ve bağıl konum arasındaki koordinat dönüşüm matrisleri “/tf” isimli topikten yayınlanmaktadır. İçerisinde SLAM algoritması çalışan “evarobot_mapping” düğümü, “odom_combined”, “tf” ve lazer mesafe algılayıcısının okuduğu derinlik bilgisini içeren “lidar” topiklerini kullanarak ortamın haritası çıkarmakta ve “/map” isimli topikten yayınlamaktadır. Ortamın haritası çıkartılırken robot “teleop_twist_keyboard” düğümü üzerinden klavye ile sürülmektedir.

Bütün ortamın haritası çıkartılacak şekilde robot gezdirildikten sonra “map_saver” düğümü kullanılarak harita konumlandırma ve otonom navigasyonda kullanılmak amacıyla kaydedilmektedir. Ayrıca kullanıcı tarafında robot çalışırken üzerindeki donanımların hataların görselleştirilmesi yapılması için “evarobot_diagnostics” düğümü kullanılmaktadır (Şekil 3.25).

Şekil 3.25 Evarobot diyagnostik ekranı

3.3.2.2 Konumlandırma

İç ortamlarda konumlandırmada, dış ortamlardaki gibi standartlaşmış bir yapı bulunmamaktadır. İç ortam için GPS benzeri geliştirilmiş sistemler olup, ortama vericiler ve robot üstüne de ek alıcılar yerleştirilmesi gerekmektedir. Çok hassas konuma ihtiyaç duyulmayan robotik çalışmalarında lazer ve enkoder sensörleri kullanılarak yapılan konumlandırma tercih edilmektedir. Çünkü bu konumlandırma yönteminde ortama sabit alıcı ya da vericiler yerleştirmeye gerek kalmamaktadır. Evarobot ile bu iki yöntemle de konumlandırma yapılabilmesi için gerekli mimari oluşturulmuştur. Bu bölümde öncelikle SLAM kullanılarak oluşturulan harita kullanılarak robotun gerçek ortamda algılayıcılardan elde ettiği bilgiler ile harita bilgisi karşılaştırılarak robotun konumlandırılması yapılmaktadır. Konumu iyileştirmek için Pozyx algılayıcısı kullanılmaktadır. Evarobot’un konumlandırılması yapılırken kullanılan düğümlerin aralarındaki ilişki Şekil 3.26’da verilmiştir.

Şekil 3.26 Konumlandırma yapılırken kullanılan düğüm yapısı

Haritalama bölümünde de bahsedildiği gibi burada da DSK ile haberleşme ROS-Master’ın senkronizasyonu yapılarak gerçekleşmektedir ve “evarobot_pose_ekf” ve

“evarobot_state_publisher” düğümleri kullanılarak iyileştirilmiş bağıl konum ve transformasyon matrisleri elde edilmektedir. “map_server” düğümü kullanılarak

oluşturulmuş ortam haritası yayınlanmaktadır. Anlık olarak ortamdan lazer ile alınan ortam bilgisi ile iyileştirilmiş bağıl konum ve harita, AMCL (Adaptive Monte Carlo Localization) kullanılarak tümleştirilmekte ve robotun global konumu elde edilmektedir. Bu yöntem kullanılarak genel robotik çalışmaları için yeterli bir hassasiyette konum üretilmektedir.

Fakat daha hassas bir konum bilgisine ihtiyaç duyulduğu zamanlarda Pozyx algılayıcısı kullanılabilmektedir. Pozyx ile AMCL’de elde edilen konum bilgisi “evarobot_pose_ekf”

düğümü kullanılarak EKF ile tümleştirildiğinde daha hassas bir konum elde edilmektedir.

3.3.2.3 Otonom navigasyon

Robotun otonom navigasyon yapabilmesi için kurulan yapı Şekil 3.27’de verilmiştir. Buradaki DSK ile haberleşme ve iyileştirilmiş bağıl konum önceki bölümlerde bahsedildiğinden bir farkı bulunmamaktadır. Şeklin kolay anlaşılabilmesi için global konumun üretilme kısmı detaylandırılmamış ve konumlandırma düğümü olarak görselleştirilmiştir. Robota hedef nokta “goal” isimli topik üzerinden tanımlanmaktadır. Bu hedef nokta topiğe herhangi bir düğüm üzerinden verilebileceği gibi rviz kullanılarak harita üzerinden bir hedef nokta işaretlenerek de yapılabilmektedir. Evarobot’un otonom olarak verilen hedef noktasına ulaşması için iki tane yol planlayıcısı bulunmaktadır.

Bunlardan ilki global planlayıcıdır. SLAM yapılarak çıkartılmış ortam haritası, harita sunucusu tarafından yayınlanmaktadır ve global planlayıcının girdisidir. Global planlayıcı robotun şu anki konumdan verilen hedef noktasına ulaşması için A* algoritmasını kullanarak yol planı çıkarmaktadır. Bu plan çıkartılırken ortamda bulunan dinamik nesneler dahil edilmemektedir. Sadece harita üzerindeki nesneler dahil edilmektedir. Robot tek bir noktadan oluşmadığı için harita üzerinde bulunan engellerin en az robotun yarı çapı kadar şişirilmesi gerekmektedir ve bu işlem global costmap isimli düğüm tarafından gerçekleştirilmektedir. Bunun yüzden global planlayıcı haritayı global costmap’den geçirildikten sonra almaktadır. Otonom navigasyonda çalışan diğer planlayıcı ise yerel planlayıcıdır. Bu planlayıcının görevi, global planlayıcıdan alınan planı ortamdaki dinamik ve haritada bulunmayan diğer nesnelerden sakınarak uygulamaktadır. Evarobot’da çalışan yerel planlayıcı olarak DWA (Dynamic Windows Approach) yöntemi kullanılmaktadır.

Global planlayıcıda olduğu gibi yerel planlayıcıda da nesne büyültülme işlemi gerçekleştirilmektedir. Yerel planlayıcının çıktısı robota uygulanacak açısal ve doğrusal

hız bilgileridir. Bu bilgiler “cmd_vel” topiği üzerinden DSK’ya iletilerek robota

Şekil 3.27 Otonom navigasyon yapılırken kullanılan düğüm yapısı

Benzer Belgeler