Robot Operating System (ROS) Tarihçesi

Merhaba arkadaşlar, bugün sizlere Ros nedir, hangi amaçlarla kullanılır, kullanıcıyı sağladığı avantajlar nelerdir gibi sorulara yanıt vermeye çalışacağım. Keyifli okumalar 🙂

Son zamanlarda robotik alanında, platformlar dikkat çekiyor. Bu platformlar yazılımsal platformlar ve donanımsal platformlar olmak üzere ikiye ayrılmıştır. Bir robot yazılım platformu, donanım soyutlama, düşük seviye cihaz kontrolü, algılama, tanıma, SLAM (Eşzamanlı Yerelleştirme ve Haritalama), navigasyon, manipülasyon ve paket yönetimi, kütüphaneler, hata ayıklama ve geliştirme araçları gibi robot uygulama programlarını geliştirmek için kullanılan araçları içerir.Söz konusu yazılım platformları, donanım konusunda uzmanlığa sahip olmadan bile bir yazılım platformu kullanarak uygulama programları geliştirmeyi mümkün kılar. Bu, en son akıllı telefonun donanım kompozisyonunu veya özelliklerini bilmeden mobil uygulamaları nasıl geliştirebileceğimizle aynıdır.

Ayrıca, robot geliştiricilerinin donanım tasarımından yazılım tasarımına kadar her şeyi nasıl yaptıklarıyla ilgili önceki çalışma sürecinin aksine, daha fazla robot olmayan saha yazılım mühendisleri artık robot uygulama programlarının geliştirilmesine katılabilir. Başka bir deyişle, yazılım platformları birçok insanın robot gelişimine katkıda bulunmasına izin vermiştir ve robot donanımı yazılım platformları tarafından sağlanan arayüze göre tasarlanmaktadır.Bu yazılım platformları arasında başlıca platformlar Robot İşletim Sistemi (ROS) 1, Japon Açık Robotik Teknoloji Ara Katman (OpenRTM) 2, Avrupa gerçek zamanlı kontrol merkezli OROCOS3, Kore OPRoS4, vb. robot yazılım platformlarının birçoğu çok farklı türde robot yazılımları olması ve komplikasyonlarının birçok soruna neden olmasıdır. Bu nedenle dünyanın dört bir yanından robot araştırmacıları bir çözüm bulmak için işbirliği yapıyorlar. En popüler robot yazılım platformu, Robot İşletim Sistemi olan ROS’tur.(Adının Robot İşletim Sistemi olması sizi yanıltmasın, bir işletim sistemi değildir ve Linux tabanlı bir işletim sistemine ihtiyaç duyar) Ortak bir platformun, özellikle bir yazılım platformunun kullanılmasının, daha önce çözülmesi zor olan sorunları çözmek ve verimliliği arttırmak için işbirliğini teşvik ettiği sonucuna varılmıştır.

Yeni robot yazılım platformu konsepti olan ROS’u neden öğrenmeliyiz? Kısa cevap olarak geliştirme süresini azaltabilmesidir.

Çoğu zaman insanlar yeni bir kavram öğrenmek için zamanlarını ayırmak istemediklerini ve halihazırda inşa edilmiş sistemi veya mevcut programları değiştirmekten kaçınmak için mevcut yöntemlerine bağlı kalmayı tercih ettiklerini söylüyorlar. Bununla birlikte, ROS, mevcut sistemi ve programları yeniden geliştirmeyi gerektirmez, ancak birkaç standart kod ekleyerek ROS olmayan bir sistemi kolayca bir ROS sistemine dönüştürebilir. Buna ek olarak, ROS yaygın olarak kullanılan çeşitli araçlar ve yazılımlar sağlar ve kullanıcıların ilgi duydukları veya katkıda bulunmak istedikleri özelliklere odaklanmalarını sağlar ve bu da geliştirme ve bakım süresini azaltır. ROS’un beş ana özelliğine bakalım. Birincisi, programın tekrar kullanılabilirliği. Bir kullanıcı, kullanıcının geliştirmek istediği özelliğe odaklanabilir ve kalan işlevler için ilgili paketi indirebilir. Aynı zamanda, geliştirdikleri programı başkalarının yeniden kullanabilmesi için paylaşabilirler.

Örnek olarak, NASA’nın Robonaut29’u Uluslararası Uzay İstasyonunda kullanılan robotlarını kontrol etmesi için sadece kurum içinde geliştirilen programları değil, aynı zamanda çoklu platformlar için çeşitli sürücüler sağlayan ROS’u ve desteklenen OROCOS’u kullandıkları söylenir. gerçek zamanlı kontrol, mesaj iletişiminin restorasyonu ve güvenilirliği, uzaydaki görevlerini yerine getirmek için. Yukarıdaki Robotbase, tamamen uygulanan yeniden kullanılabilir programların başka bir örneğidir. İkincisi, ROS iletişim tabanlı bir programdır. Genellikle, bir hizmet sağlamak için, sensörler ve aktüatörler için donanım sürücüleri ve algılama, tanıma ve çalıştırma gibi özellikler tek bir çerçevede geliştirilir. Bununla birlikte, robot yazılımının tekrar kullanılabilirliğini sağlamak için, her program ve özellik işlevine göre daha küçük parçalara ayrılmıştır. Buna platforma göre bileşenleştirme veya modülerleştirme denir. Veriler, minimum işlev birimlerine bölünen düğümler (ROS’ta hesaplama yapan bir işlem) arasında değiştirilmelidir ve platformlar, düğümler arasında veri alışverişi için gerekli tüm bilgilere sahiptir. Uzaktan kumandada büyük ölçüde yararlı olan ağ programlama, düğümler arasındaki iletişim ağa dayalı olduğunda mümkün olur, böylece düğümler donanım tarafından kısıtlanmaz.

Üçüncüsü, geliştirme araçlarının desteklenmesidir. ROS, hata ayıklama araçları, 2D görselleştirme aracı (rqt, rqt, çeşitli GUI araçlarını eklentiler şeklinde uygulayan bir ROS yazılım çerçevesi) ve robot geliştirme için gerekli araçlar geliştirilmeden kullanılabilen 3D görselleştirme aracı (RViz) sağlar. Örneğin, bir robot geliştirilirken bir robot modelinin görselleştirilmesi gereken birçok durum vardır. Önceden tanımlanmış mesaj biçiminin eşleştirilmesi, kullanıcıların yalnızca robotun modelini doğrudan kontrol etmesini değil, aynı zamanda sağlanan 3D simülatörünü (Gazebo) kullanarak bir simülasyon gerçekleştirmesini sağlar. Araç ayrıca yakın zamanda tespit edilen Intel RealSense veya Microsoft Kinect’ten 3D mesafe bilgileri alabilir ve bunları kolayca nokta bulutu biçimine dönüştürebilir ve görselleştirme aracında görüntüleyebilir.

Bunun dışında, deneyler sırasında elde edilen verileri kaydedebilir ve kesin deney ortamını yeniden oluşturmak gerektiğinde bunları tekrar oynatabilir. Yukarıda gösterildiği gibi, ROS’un en önemli özelliklerinden biri, robotun gelişimi için gerekli olan ve geliştirme kolaylığını en üst düzeye çıkaran yazılım araçları sağlamasıdır. Dördüncüsü aktif topluluktur. Şimdiye kadar nispeten kapalı olan robot akademik dünyası ve endüstrisi, daha önce bahsedilen bu işlevlerin bir sonucu olarak işbirliğini vurgulama yönünde değişmektedir. Bireysel hedeflerdeki farktan bağımsız olarak, bu yazılım platformları üzerinden işbirliği gerçekleşiyor. Bu değişikliğin merkezinde açık kaynaklı yazılım platformu için bir topluluk var. ROS durumunda, 2017 itibariyle gönüllü olarak geliştirilmiş ve paylaşılmış 5.000’den fazla paket vardır ve paketlerini açıklayan Wiki sayfaları, bireysel kullanıcıların katkısıyla 18.000 sayfayı aşmaktadır. Dahası, topluluğun soru-cevap bölümü olan bir diğer kritik kısmı 36.000 yayını aştı ve işbirliği içinde büyüyen bir topluluk yarattı.

Topluluk, talimatları tartışmanın ötesine geçerek robotik yazılımın gerekli bileşenlerini bulmaya ve yönetmelikler oluşturmaya gider. Dahası, bu, kullanıcıların bir araya geldiği ve bulmacanın eksik parçalarını doldurmak için robotiklerin ilerlemesi ve işbirliği için hangi robot yazılımının gerektirmesi gerektiğini düşündüğü bir duruma ilerliyor. Beşinci olarak ekosistemin oluşumu. Daha önce bahsedilen akıllı telefon platformu devriminin, Android veya iOS gibi yazılım platformları tarafından oluşturulan bir ekosistem olduğu için meydana geldiği söyleniyor. Bu tür bir ilerleme aynı şekilde robotik alan için de devam etmektedir.

Başlangıçta, her türlü donanım teknolojisi taşıyordu, ancak bunları entegre edecek bir işletim sistemi yoktu. Çeşitli yazılım platformları geliştirildi ve aralarında en saygın platform olan ROS, şimdi ekosistemini şekillendiriyor. Robot ve sensör şirketleri, ROS geliştirme operasyon ekibi, uygulama yazılımı geliştiricileri ve kullanıcılar gibi robotik alandaki donanım geliştiricileri olan herkesin bundan mutlu olabileceği bir ekosistem yaratıyor. Başlangıç ​​henüz marjinal olabilse de, artan kullanıcı ve robotla ilgili şirketlere ve ilgili araç ve kütüphanelerin artışına bakıldığında, yakın gelecekte canlı bir ekosistem öngörebiliriz.

Aşağıda listelenen platformlar en aktif robot yazılım platformlarıdır.

■ MSRDS10 Microsoft Robotics Developer Studio, Microsoft – U.S.

■ ERSP11 Evolution Robotics Software Platform, Evolution Robotics – Europe

■ ROS Robot Operating System, Open Robotics12 – U.S.

■ OpenRTM National Institute of Adv. Industrial Science and Technology (AIST) – Japan

■ OROCOS Europe

■ OPRoS ETRI, KIST, KITECH, Kangwon National University – South Korea

■ NAOqi OS13 SoftBank and Aldebaran – Japan and France

Yukarıda gördüğünüz gibi, çeşitli robot yazılım platformları ortaya çıkıyor, ancak hangisinin daha iyi olduğu sonucuna varmak zor. Bunun nedeni, her birinin bileşen uzantısı, iletişim özelliği, görselleştirme, simülatör, gerçek zamanlı ve çok daha fazlası gibi benzersiz ve kullanışlı işlevler sağlamasıdır. Ancak, kişisel bilgisayarların mevcut işletim sistemleri gibi, kullanıcılar tarafından seçilen robot yazılım platformları da diğerleri azalırken daha popüler hale gelecektir. Gerçek yazılım platformunu geliştirmediğimiz için, genel amaçlı robot yazılım platformlarında çalışabilecek uygulama programları için geliştirme becerilerimize odaklanacağız.

ROS, robotunuz için açık kaynaklı bir meta işletim sistemidir. Donanım soyutlaması, düşük düzey aygıt kontrolü, yaygın olarak kullanılan işlevlerin uygulanması, süreçler arasında mesaj iletimi ve paket yönetimi gibi bir işletim sisteminden bekleyeceğiniz hizmetleri sağlar. Ayrıca, birden fazla bilgisayarda kod elde etmek, oluşturmak, yazmak ve çalıştırmak için araçlar ve kütüphaneler sağlar. ROS Wiki, ROS’u böyle  tanımlar. Başka bir deyişle, ROS, işletim sistemlerine benzer donanım soyutlama katmanı içerir. Bununla birlikte, geleneksel işletim sistemlerinden farklı olarak, çok sayıda donanım uygulamasının kombinasyonu için kullanılabilir. Ayrıca, robot uygulama programları geliştirmek için uzmanlaşmış çeşitli geliştirme ortamları sağlayan bir robot yazılım platformudur.

Serhat ARSLAN hakkında 3 makale
Necmettin Erbakan Üniversitesi - Mekatronik Mühendisliği Öğrencisiyim.

2 yorum

Bir Cevap Yazın...