Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- 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.