• Buradasın

    ROS Ortamında Katkın Oluşturma ve Paketleme Eğitimi

    youtube.com/watch?v=UhEIEtnH5Cc

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan ROS (Robot Operating System) programlama eğitimidir. Eğitmen, mekatronikçilere yönelik kapsamlı bir ders formatında konuşmaktadır.
    • Video, ROS ortamında katkın oluşturma ve paketleme sürecini adım adım anlatmaktadır. İçerik üç ana bölümden oluşmaktadır: ilk bölümde ROS'un dosya sistemi, workspace yapısı ve temel kavramlar açıklanırken, ikinci bölümde "catkin_create_pkg" komutu kullanılarak paket oluşturma ve paket manifestosu düzenleme işlemleri gösterilmektedir. Son bölümde ise Visual Studio Code IDE'si kullanılarak basit bir ROS düğümü yazma, derleme ve çalıştırma süreci detaylı olarak anlatılmaktadır.
    • Eğitim boyunca derleme zamanı (build-dependent) ve çalışma zamanı (runtime-dependent) bağlılıklar arasındaki farklar, sema list dosyasının değiştirilmesi, include directories ve target properties gibi yapılandırma adımları gibi teknik detaylar da ele alınmaktadır.
    00:04ROS'ta Katkı Oluşturma Sistemi
    • Bu bölümde ROS ortamında katkı oluşturma sistemi, katkı build sistemi, ROS paketleri ve ROS düğümleri hakkında bilgi verilecek.
    • ROS dosya sistemi içerisinde proje oluşturma, derleme ve paketleme sistemi bulunmaktadır.
    • ROS'ta bir katkı workspace içerisinde çalışırken, sema ile birlikte bir yapı oluşturması gerekir ve bu yapı oluşturmasında ckinmeke sistemi kullanılır.
    01:13ckinmeke Sistemi
    • ckinmeke, ROS'un çalıştırılabilir programlar, kütüphaneler ve arayüzler oluşturmak için kullandığı araçlar kümesidir.
    • ckinmeke, düşük seviye yapı sistemi makroları ve ROS için bir alt yapıdır.
    • Orijinal ROS yapı sistemi önceden ROS build idi ancak hala eski paketler için kullanılabilir.
    01:41Workspace Yapısı
    • Workspace, bir dizi ilgili ROS kodunun bulunduğu dosya ve klasörlerden oluşan bir dizidir.
    • ckin workspace birden fazla ROS çalıştırma alanına sahip olabilir, ancak herhangi bir anda yalnızca birini çalıştırabilirsiniz.
    • ckin workspace kaynak alanı, build alanı, geliştirme alanı ve yükleme alanı gibi alanları içerir.
    02:03Workspace Alanları
    • Kaynak alanı, katkının paketlerini ve kaynak kodlarını içerir.
    • Build alanı (yapı alanı), sema kaynak alanında katkının paketlerini oluşturmak için çağrıldığı yerdir.
    • Geliştirme alanı, geliştirme uzayı kurulmadan önce inşa edilen hedeflerin yerleştirildiği yerdir.
    • Yükleme alanı, hedefler oluşturulduktan sonra yükleme hedefini çağırarak yükleme işlemleri gerçekleştirilebilir.
    04:12ROS Geliştirme Kurulumu
    • ROS geliştirme kurulumu için yeni bir katkı çalıştırma alanı oluşturulur.
    • Yeni bir ROS paketi oluşturulur ve Visual Code indirilerek yapılandırma işlemi gerçekleştirilir.
    • Kod yazılır, dosyalar oluşturulur ve paketler oluşturulur.
    04:47Workspace Oluşturma
    • Çalışma alanı oluşturulur ve içinde ckin workspace adı verilen bir klasör oluşturulur.
    • Workspace, ROS'a tanıtılır ve ckin komutu ile workspace oluşturulur.
    • ckin komutu çalıştırıldığında sema.txt dosyası oluşturulur ve bu dosya derleme işlemleri için kullanılır.
    09:27Workspace Yapılandırması
    • ckin make komutu ile boş bir proje oluşturulur.
    • Workspace içerisinde source (kaynak kodları), devel (geliştirme alanı) ve build (derleme alanı) alanları oluşur.
    • Source alanında kendi kaynak kodlarınız, devel alanında geliştirme öğeleri, build alanında ise sema ile oluşturulan konfigürasyon ve derleme yapısı bulunur.
    10:53ROS Paketleri
    • ROS yazılımı, her biri bir miktar kod, veri ve dosya kombinasyonu içeren paketler halinde düzenlenmiştir.
    • Paketler en küçük yapı birimi ve sürüm birimidir.
    • Bir paket, bir veya daha fazla düğümün kaynak dosyalarını ve yapılandırma dosyalarını içerir.
    • Paket manifestosu (package.xml) içerisinde paket adı, sürüm numaraları, yazanlar ve diğer paketlere olan bağlılıklar belirtilir.
    13:51Derleme Zamanı ve Çalışma Zamanı Bağlılıkları
    • Derleme zamanı bağlılıkları (build dependent) sadece söz dizimindeki usule göre yapılan bir kontroldür.
    • Çalışma zamanı bağlılıkları (run-time dependent) gerçek zamanlı olarak işlemciye ve gereksinimlere bağlı olarak yapılan bir işlemdir.
    • Derleme zamanı bağlılıkları çalıştırma zaman işlemlerinin altyapısını oluştururken, çalıştırma zamanında karşılaşılan problemler farklı olabilir.
    15:47ROS Paketi Oluşturma
    • ROS paketi "cat create pkg" komutu ile oluşturulur.
    • Paket oluştururken temel bağlılıklar olarak std, msgs, rospy, cpp gibi kaynaklar belirtilmelidir.
    • Paket oluşturulduktan sonra "make" komutu ile ROS'a tanıtma işlemi gerçekleştirilmelidir.
    20:40Paket Yapısı
    • Paket yapısında package.xml dosyası paket manifestosunu içerir.
    • src klasörü kaynak dosyalarını, include klasörü ise C++ başlık dosyalarını içerir.
    • package.xml dosyasında build dependent, export dependent ve exec dependent (runtime dependent) olarak bağımlılıklar tanımlanır.
    22:44Visual Studio Code ile ROS Projesi
    • ROS projesi için Visual Studio Code gibi bir IDE kullanılabilir.
    • Visual Studio Code'da workspace tanımlaması yapılarak proje dosyaları eklenebilir.
    • ROS projesi için ilk olarak "merhaba.cpp" adında bir C++ dosyası oluşturulabilir.
    26:24ROS Düğümü Oluşturma
    • ROS düğümü oluşturmak için önce başlık dosyaları include edilir.
    • "ross init" fonksiyonu ile ROS başlatılır ve argümanlar alınır.
    • "ross_node_handle" ile düğüm handle'ı tanımlanır ve "ross_rate" ile döngü hızı belirlenir.
    29:43ROS Düğümü Oluşturma
    • Mekatronikçiler için bir ROS düğümü oluşturuluyor ve ekrana "Merhaba" mesajı yazdırılıyor.
    • Düğümde "ross init" ile benzersiz bir değer atanıyor ve "rossnode list" ile düğüm listeleniyor.
    • "ross rate sleep" metodu döngüde kalan süre boyunca uyuma işlemi gerçekleştirirken, "ross rate loop" her 1000'de bir çalıştırılır.
    32:24ROS Düğümünün Çalışma Mantığı
    • "ross start" normalde false döndürür, ancak ROS sunucusu kapandığında, Ctrl+C alındığında veya düğüm imha edildiğinde false döndürerek sistemden çıkmasını sağlar.
    • "ross info" bilgilendirici mesajlar yazdırır ve özellikle loklama işlemlerinde kullanılır.
    • Derleme sırasında C++ dosyasının görülmesi için sema list üzerinde konfigürasyon yapılması gerekir.
    34:28Sema Dosyası Düzenleme
    • Sema versiyon 3.2 kullanılıyor ve derleme sırasında ross, rospy ve std msgs paketlerine ihtiyaç duyuluyor.
    • "dec layer" bölümünde "add executable file" ile "merhaba.cpp" dosyası tanımlanıyor.
    • "target link libraries" ile kütüphane ile ilişkilendirme yapılıyor ve dosya derlendikten sonra çalıştırılacak.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor