ROS İle Uğraşan Var Mı?

Başlatan Tagli, 02 Mart 2013, 18:07:58

Tagli

Forumda hiç adı geçmeyince merak ettim acaba içinizde ROS (Robot Operating System) ile uğraşan var mı diye. Aslında ismi biraz yanıltıcı, çünkü tam olarak işletim sistemi olduğu söylenemez. Yaptığı iş, farklı programlar arasındaki iletişimi (inter-process communication - IPC) bir standarta oturtarak kolaylaştırmaktan ibaret.

Sistem "node" adı verilen bileşenlerden oluşuyor, ki bunları ister biz yazıyoruz, ister başkasının yazdığını kullanıyoruz. Örneğin bir lazer mesafe sensörü için bir node yazdık. Bu node, ölçtüğü mesafe bilgisini ortaya bağırıyor, ve kimin tarafından kullanıldığını umursamıyor. Bu bilgiye ihtiyaç duyan bir veya daha fazla node, buna kaydolarak bu bilgiyi kullanabiliyor. Bunun yanısıra, soru-cevap, yani servis mantığı ile hizmet veren node'lar da oluşturmak mümkün.

Node'lar şimdilik C++ ve Python ile (ve de galiba Lisp) yazılabiliyor. İleride muhtemelen başka diller de eklenir. Node'ların aynı makinede olma zorunluluğu yok, ağ üzerinden haberleşebiliyorlar. ROS resmi olarak sadece Ubuntu için destekleniyor ancak diğer Linux dağıtımlarının yanısıra, Mac ve Windows üzerinde de çalıştırmak mümkün. Hatta RPi ve BeagleBone üzerinde çalıştıranlar bile var.

ROS özellikle mobil robotik uygulamalarında popüler olmakla birlikte, robotikle ilgisi olmayan amaçlar için bile kullanılabilir bence. Ben bir süredir varlığından haberdar olsam da yeni öğrenmeye başladım. Robotik sektörünün geleceğinde ROS'un ciddi yeri olacağını, hatta endüstri standardı haline gelebileceğini düşünüyorum.

Ayrıntılı bilgi için : http://www.ros.org/
Gökçe Tağlıoğlu

ErsinErce

MQ Telemetry Transport ( http://mqtt.org ) u incelemede de fayda var

11.dk da açıklama mevcut

SuperHouseTV #1: Home Automation System Architecture

Tagli

ROS'un yeni versiyonu "Hydro Medusa" geçtiğimiz günlerde çıktı. Artık Ubuntu 13.04 desteği de var. Deneysel olarak desteklenen platformlarda Ubuntu Arm ve Angstrom da bulunuyor. İkisini de BeagleBone ile denedim. Ubuntu Arm'da sıkıntı var, anladığım kadarıyla Lisp derleyicisinin paketini henüz hazırlamamışlar, o yüzden kurulum yapılamıyor. Angstrom'da ise kurup çalıştırmayı başardım. Ancak opkg ile gcc ve g++ paketleri kurulduğunda gerekli bazı kütüphanelerin paketlerini nedense kurmuyor (libstdc++-dev gibi), bunların ayrıca belirtilerek kurulması gerekiyor.
Gökçe Tağlıoğlu

z

Ilk mesajina istinaden soruyorum.

Bir suru sensorumuz olsun. Timer int ile tum sensor cikislarini okuyup ramde ilgili degiskenlere yazmak yerine ROS kullanmak ne avantaj saglayacak?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Tagli

Hocam ROS mikrodenetleyiciler için değil, normal bilgisayarlar (veya gömülü bilgisayarlar) için. Yani düşük seviye programlamaya yönelik değil. Ayrıca ROS'un ana mantığı pek çok kişi tarafından birbirinden bağımsız olarak oluşturulmuş paketlerin (ki bunlar C++ veya Python ile yazılmış olabilir) birbiriyle uyum içinde çalışmaları.  Mesela adam gidiyor bir motor sürücüsü donanımı yapıyor (USB'den veya seri porttan bağlandığını varsayabiliriz) ve bunun için bir ROS node'u yazıyor. Bu node ise /motorKomutları adında bir topic'i dinliyor. Bu topic'in içinde de atıyorum hedefKonum diye bir değişken var. Aynı node /motorOlculen topic'ini ise yayınlıyor. Bunun içinde de simdikiKonum, simdikiHiz ve simdikiAkim gibi anlik değerler var. Bu node'u yazan adam sistemin geriye kalanı hakkında bir bilgiye sahip olmak zorunda değil. Node'un yayınladığı ölçüm değerleri bir veya daha fazla başka node tarafından kullanılabilir. Hatta kimse kullanmayıp sadece açık çevrim komut da gönderebilirler bu node'a. Mesela bir başka node da ölçülen değerleri okuyarak motor performasını değerlendirebilir, veya gelen verileri biriktirip saklayabilir. Böylece birbirinden bağımsız program parçalarının yazılması ve birlikte uyum içinde çalışmaları mümkün oluyor.

Youtube'da aratınca çıkan bu videolar fikir verebilir. (Ben de izlemedim henüz)
ROS Tutorial Part 1
Gökçe Tağlıoğlu

Tagli

Temel konulara değinen bir kısa kitap çıkmış. Ücretsiz olarak da indirilebiliyor.
http://www.cse.sc.edu/~jokane/agitr/
Gökçe Tağlıoğlu

RaMu

Mikrodenetleyici için değilde standart pc işletim sistemleri için yazılmış olması bahane değil,
bende z hocamınki gibi bir soru soracaktım,
sorudaki amacım şu;
biz bu sistemi md. programlarımızda kullansak ne avantajları olacak,
vantaj dezavantajları ile ilgili fikirler belirtilirse
bizde md. programlarken böyle bir yol kullanmayı düşünebiliriz,
sonuçte rtos yapısınıda yazdığımız programlarda kullanıyoruz.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Tagli

Dediğim gibi, ROS mikrodenetleyiciler için değil. ROS, GNU/Linux üzerinde çalışan (deneysel Mac ve Windows versiyonları da var gerçi) ve process'ler arasındaki iletişimi bir standarta oturtan bir platform özetle. Ayrıca, halihazırda robotikle ilgili pek çok yazılım - mesela ters kinematik, yörnge planlama ve haritalandırma gibi - ROS platformunda çalışabilecek programlar arasında yerini almış. Böylece ilgili konularda çalışanlar için büyük kolaylık sağlıyor.

RTOS'lar ile karşılaştırırsak... Öncelikle ROS'un gerçek zamanlı olma gibi bir iddiası yok. ROS daha çok üst seviye karar verme işlemleri için, yani mikrodenetleyicilerin çalışma alanına girmiyor. RTOS'larda task'ler arası iletişim için çeşitli yöntemler var, mesela mesaj kuyrukları gibi. ROS bu işi daha üst seviyede yapıyor. Bir process, diğerleri hakkında hiçbir bilgiye sahip olmasa bile, veya farklı kişiler tarafından yazılmış olsalar bile, pek çok diğer process ile aynı anda iletişim kurabiliyor.
Gökçe Tağlıoğlu

aforizma

#8
Ne yaptıysam kuramıyorum. ROS ile henuz tanıştım ve yavaş yavaş öğrenmeye çalışıyorum ancak bir türlü kurulumu bile gerçekleştiremedim sudo rosdep init komutunu birtürlü çalıştıramıyorum sonra wiki.ros da kaybolup gidiyorum

Tagli

Yardım alabilmen için öncelikle hikayeni baştan anlatman gerekiyor.

Kullandığın işletim sistemi nedir?
ROS'un hangi versiyonunu kurmaya çalışıyorsun?
Hangi adımları gerçekleştirdin?
Takıldığın noktada yanlış giden şey nedir? Nasıl bir hata mesajı aldın?
Gökçe Tağlıoğlu

aforizma

Ubuntu 14.04 bilgisayarıma ros indigo yu  kurmaya çalışmıştım sanırım başardım :) öğrenmeye çok yeni başladım sanırım şuan soru soracak seviyede bile değilim ama biraz haşır neşir olduktan sonra burayı sıkça ziyaret edeceğim anlaşılan.