ROS (Robot Operating System) Nedir?

Robot İşletim Sistemi (ROS), robotlar için geliştirilecek yazılımların üzerinde koşması için geliştirilmiş bir işletim sistemidir. Açık kaynak kodlu bir yazılımdır ve ROS’u kullanabilmemiz için Linux tabanlı bir işletim sistemine ihtiyaç vardır. Bu uygulamanın amacı robot ve programcı arasındaki ilişkiyi sağlamak ve belirli bir standart oluşturmaktır. ROS içinde barındırdığı standart kütüphanelerin ve desteklediği cihazların dışında, geliştiriciler tarafından yazılmış kütüphanelere ve sürücülere de destek verdiği için her geçen gün kapsamını arttırmakta ve robot dünyasında standart konumunu almaktadır.

Bir ROS sistemi yayınlama/abone mesajlaşma modelini kullanarak diğer düğümler ile iletişim kuran düğümlerden oluşur. Bir ROS sistemi içerisinden birçok düğüm bulunabilir. Düğümler, hesaplama yapabilen işlemlerdir. Örneğin; bir düğüm kameradan görüntü alır, bir düğüm görüntüyü işler, bir düğüm görüntüyü görüntülenmesini sağlayabilir. Bu düğümlerin birbirlerinden haberdar olup birbirleri ile haberleşebilmeleri için ROS Master’a ihtiyaç vardır. ROS Master merkezi XML-RPC sunucusudur yani mesajları içeren ağ tabanlı bir yapıdır. Biraz daha ayrıntılı şekilde bu konuya açıklık getirecek olursak; ROS, ROS Master ile başlar ve ROS düğümlerinin birbirlerini bulmasını ve birbirleriyle konuşmasını sağlar. Düğümler haberleşmeyi konular yayınlayıp bu konulara abone olarak gerçekleştirir. Diyelim ki robot üzerinden bulunan bir kameradan alınan görüntüleri robot üzerinde ya da başka bir bilgisayarda görmek istiyoruz. Kamera ile iletişim kurmak için bir kamera düğümü, görüntüleri işlemek için bir görüntü işleme düğümü ve görüntü gösterme düğümü vardır. Bu düğümlerin hepsi ROS Master’a kayıtlıdır. Kamera düğümü, ROS Master’a kayıt olurken /image_data adında bir konu yayınlayacağını belirtir. Diğer düğümler ise kameradan yayınlanan bu konuya abone olduklarını belirtir. Bu şekilde kamera düğümü kameradan alınan verileri /image_data konusu üzerinden mesajları diğer düğümlere iletir. Not: Bir düğüm birden fazla konu yayınlayabilir ve birden fazla konuya abone olabilirler.

Sonuç olarak, ROS işbirliği robotik yazılım geliştirmeye teşvik etmek için yapılmıştır. Örneğin, bir laboratuvar kapalı ortamları haritalama konusunda uzmanlaşmış olabilir ve haritalar üretmek için birinci sınıf bir sisteme katkıda bulunabilir. Başka bir grup, haritaları gezinmek için kullanan uzmanlara sahip olabilir; ancak başka bir grup karmaşıklığın küçük nesnelerini tanımak için iyi çalışan bir görüntü işleme yaklaşımı keşfetmiş olabilir. ROS, bunlar gibi gruplar için işbirliği yapmak ve birbirlerinin çalışmalarını birleştirmek için özel olarak tasarlanmış bir sistemdir.

ROS’a alternatif olabilecek başka robot yazılımları da mevcuttur. Bunlar Player, YARP, Orocos, Carmen, Orca, MOOS, Microsoft Robotic Studio.

Kaynak:

(1)http://yapbenzet.kocaeli.edu.tr/ros-nedir-robot-operating-system/

(2)https://yapayzeka.ai/robot-isletim-sistemi-ros/