Gönderen Konu: ROS  (Okunma sayısı 8415 defa)

Çevrimdışı Gediz Morgil

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 1188
ROS
« : Ocak 30, 2014, 12:35:11 ÖÖ »
Robot Operating System denilen bu şey nedir. Elinde bunu anlatan dökümanı olan falan var mı? Kullanmak ne açıdan kolaylık sağlar?
"The best way to predict the future is to invent it." Alan Kay

Çevrimdışı Emre Ay

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 720
Ynt: ROS
« Yanıtla #1 : Ocak 30, 2014, 01:24:52 ÖÖ »
ROS konusunda iki senedir robotik labda olduğu için herhalde en çok Özgür bir şeyler anlatacaktır. Çok genel olarak açıklamak gerekirse, adından da anlaşıldığı gibi farklı donanımlara sahip robotlarda kullanılmak üzere oluşturulmuş, donanım ve yazılım üzerindeki bütün haberleşmeyi/komutlamayı sağlayabilen, bunu da gayet güzel bir şekilde görsel olarak yansıtabilen açık kaynaklı bir platformdur. Nasıl ki bilgisayar en temelde giriş/çıkış ve bunların yönetimini sağlayan birimlerden oluşuyor ve dünya üzerinde sayısız kombinasyonda farklı donanıma sahip bilgisayarlarda belirli işletim sistemleri işliyorsa, ROS da bunun robotikteki analojisi gibi. Özellikle kompleks uygulamalarda kullanmak yararlı duruyor, çünkü sistem üzerinde bütün bağlantıları/haberleşmeleri node'lar ve branch'lar olarak görebiliyorsunuz dolayısıyla nerde sıkıntı var anlamak kolaylaşıyor. Bir şeyler öğrenmek için en iyi yer kendi sitesi (www.ros.org ve http://wiki.ros.org/). Yalnız sürekli olarak yeni bir distrosu çıkıyor, bir şeyler ekleniyor çıkarılıyor. Sitede zaten tutorial başlangıç seviyesinden. 
"En esmer kız benim."
(Caner Erdoğan, 2013)

Çevrimdışı Özgür Güçlü

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 936
Ynt: ROS
« Yanıtla #2 : Ocak 30, 2014, 02:06:52 ÖÖ »
Emre güzel açıklamış aslında. Temelde olay içinde birden fazla birim, kontrolör hatta bilgisayar bulunan daha karmaşık yapıdaki robotları tasarlarken kolaylık sağlamak. Aynı bilgisayarın işletim sistemi gibi robotun işletim sistemi de ROS oluyor yani. Kendi içinde bi sürü yapısı ve komutu var. Temelde olay birbirine mesaj yollayan Node ismindeki yapılar üzerinden yürüyor tabi mesajların da çeşitleri var içerdiği bilgiye yada gönderilme şekline göre. Genellikle Master-Slave mantığında çalışan bir haberleşmesi var. Örnek vermek gerekirse,

Elimizde bir bilgisayar olsun mesela iki tane Node da bir motor ve onun encoderı olarak seçildiğini düşünelim. Burda motorun kontrolü için bu birimler arasında bir haberleşme olması gerekiyor. Bilgisayar bu noktada karar mekanizması oluyor. Bu haberleşme için belirli bir paket yada yöntem oluşturuyorsun ve bu iki tane Node birbiriyle bunları kullanarak iletişim kuruyorlar.

İşin asıl önemli ve güzel yanı bütün bu iletişimi tablolar ve grafikler üzerinden takip etme şansın var hatta her saniye yolladıkları mesaja kadar görebiliyorsun. Bu şekilde sistemde bir sıkıntı olduğu zaman nerede olduğunu ve ne olduğunu bulmak çok kolay oluyor.

Daha bir sürü özelliği ve farklı olayı var ama burada tek tek anlatmak hayli uzun sürer. En güzel kaynak Emre'nin söylediği gibi kendi web sayfası. Orada öğrenmek için tutorial okumanın ardından örneklere bakmakta fayda var.  ROS open-source bir sistem ve oradaki projelerde insanların bugüne kadar bunu kullanarak yaptığı neredeyse bütün çalışmalar var direk indirilip kullanılabiliyor. Gerçek hayatta tutorialdaki teorinin neye yaradığını görmek için en iyisi o örnekleri indirip çalıştırmak. Özel bi durumda bir şey gerekirse bana da sorabilirsin elimden geldiğince yardımcı olmaya çalışırım :)
If you need to understand something, try to change it

Çevrimdışı Gediz Morgil

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 1188
Ynt: ROS
« Yanıtla #3 : Ocak 30, 2014, 12:58:54 ÖS »
Peki motorla haberleşme derken bu sistem içindeki her elemanın mikrokontorlü falan mı oluyor. Motora mikrontrolör bağlayarak onu öyle mi kontrol ediyorum?
"The best way to predict the future is to invent it." Alan Kay

Çevrimdışı Alper ÖZ

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 2398
  • "Cehennem başkalarıdır."(Sartre)
Ynt: ROS
« Yanıtla #4 : Ocak 30, 2014, 01:05:27 ÖS »
Şu dergide, sayfa 28'de Özgürcüğümün konu ile ilgili bir uygulamasının yazısı var: https://dl.dropboxusercontent.com/u/30734677/Kontrol_Dergisi_2013_v3.1.pdf
Bu da janjanlı hali: http://data.axmag.com/data/201305/U99385_F213826/FLASH/index.html  :)
"Çünkü saatler dardır, her şeyi almaz." M. Cevdet

Çevrimdışı Özgür Güçlü

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 936
Ynt: ROS
« Yanıtla #5 : Ocak 31, 2014, 11:10:55 ÖÖ »
Peki motorla haberleşme derken bu sistem içindeki her elemanın mikrokontorlü falan mı oluyor. Motora mikrontrolör bağlayarak onu öyle mi kontrol ediyorum?

Sistem içindeki elemanlar zaten ya motorlar ya sensörlerdir çoğunlukla. Motorla haberleşme derken genellikle sürücüyle haberleşmedir bahsedilen şey. ROS'un üzerinde koştuğu bir bilgisayar olur bu da tüm sistemi kontrol eden birimdir. Motorlarla haberleşme sürücüler üzerinden yürür. Mikrokontrolör sadece sinyal göndermek ve almak için kullanılır çoğunlukla yani bilgisayarla sistem birimleri arasında bir köprü gibi düşünebilirsin onu. Bu durumda motoru kontrol eden şey aslında ROS oluyor mikrokontrolör değil.
If you need to understand something, try to change it