ROS (Robot Operating System) Nedir?

1. Tanım

    ROS’un resmi tanımı şöyleROS, robotunuz için açık kaynaklı bir meta işletim sistemidir. Donanım soyutlaması, düşük düzey aygıt kontrolü,  sık kullanılan işlevlerin uygulanması, işlemler arası ileti aktarımı ve paket yönetimi gibi bir işletim sisteminden beklediğiniz hizmetleri sağlar. Aynı zamanda birden fazla bilgisayara kod üretmek, oluşturmak, yazmak ve çalıştırmak için araçlar ve kütüphaneler sağlar. ROS, Player, YARP, Orocos, CARMEN, Orca, MOOS ve Microsoft Robotics Studio gibi robot frameworklerine benzer.

ROS çalışma zamanı “graph“, ROS iletişim altyapısı kullanılacak bir şekilde birbirine bağlanmış süreçlerin (makineler arasında potansiyel olarak dağıtılmış) uçtan uca bir ağdır. ROS, senkronize RPC stili iletişim hizmetleri, başlıklar üzerinden verilerin senkronize olmayan akışı ve bir Parametre Sunucusunda verilerin saklanması gibi çeşitli iletişim stilleri uygular.

ROS gerçek zamanlı bir framework değildir, ancak ROS’u gerçek zamanlı kod ile entegre etmek mümkündür. Willow Garage PR2 robotu, gerçek zamanlı bir işlemin içine ve dışına ROS mesajlarını taşıyan pr2_etherCAT adında bir sistem kullanır. ROS ayrıca Orocos Gerçek Zamanlı Araç Seti ile kusursuz entegrasyona da sahiptir. Bunun yerine, ROS’un birincil amacı robotik araştırma ve geliştirmede kodun yeniden kullanımını desteklemektir.

2.Hedefler

    Bir çok insan “ROS, X‘den nasıl farklıdır?” diye soruyor.(X, başka bir robotik yazılım platformudur.) ROS’un hedefinin çok özellikli bir framework olmak olarak cevaplamak zordur.

ROS, uygulamaların(executables) çalışma zamanında(runtime) tek tek tasarlanması ve birleştirilmesini sağlayan dağıtılmış bir süreçler framework’udur. Bu süreçler kolayca paylaşılıp dağıtılabilen Paketler(Packages) ve Yığınlar(Stacks) halinde gruplanabilir. Dosya sistemi seviyesinden topluluk seviyesine kadar olan bu tasarım, geliştirme ve uygulama konusunda bağımsız kararlar alabiliyor, ancak hepsi ROS altyapı araçlarıyla bir araya getirilebiliyor.

Bu paylaşım ve işbirliği hedefini desteklemek birincil amaç olsa da, ROS framework’un diğer birkaç hedefi daha vardır:

İncelik: ROS, olabildiğince ince(sistemi yormayacak da diyebiliriz) olacak şekilde tasarlanmıştır – ana () cihazınızı sarmayacağız – böylece ROS için yazılan kod diğer robot yazılım frameworkleri için de kullanılabilir. Bunun bir sonucu olarak, ROS’un diğer robot yazılım frameworklerine entegre edilmesi kolaydır:

ROS zaten OpenRAVE, Orocos ve Player ile entegre edilmiştir.

Dil bağımsızlığı: ROS çerçevesinin modern bir programlama dilinde uygulanması kolaydır. Python, C ++ ve Lisp’de uyguladık ve Java ve Lua’da deneysel kütüphanelerimiz var.

Kolay test: ROS, rostest olarak adlandırılan ve test fikstürlerini geliştirmeyi ve parçalamayı kolaylaştıran yerleşik bir birim / entegrasyon testi yapısına sahiptir.

Ölçeklendirme: ROS, büyük çalışma zamanı sistemleri ve büyük geliştirme süreçleri için uygundur.

Yani, “ROS X’den nasıl farklıdır?” Her X için cevap vermek zordur, ancak önce X’i kullanmayı seçerseniz, ROS ile dağıtılan kütüphanelerin çoğunu hala kullanabileceğinizi umuyoruz.

ROS şu anda sadece Unix tabanlı platformlarda çalışır. ROS için yazılım, Ubuntu ve Mac OS X sistemlerinde test edilmiştir, ancak ROS topluluğu, Fedora, Gentoo, Arch Linux ve diğer Linux platformları için destek sağlamaktadır.

ROS ne değildir?

  • Gerçek bir işletim sistemi, Windows veya Ubuntu gibi, değildir. Kısaca, işletme sistemi ya da bir framework diyebiliriz.
  • Bir programlama dili (Python, C, C++ vs gibi) de değildir
  • Geliştirme ortamı/IDE(Integretad Development Environment) de değildir.

Bu yazı serimizde ROS dağıtımlarından Kinetic Kame‘i kullanacağız. 

 

Kaynak: wiki.ros.org

 

Total Views: 1115 ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.