ROS Roboting Operating System
Lisans bitirme projemizde kendi projemiz olan oyuncak yarış arabası boyutunda olacak bir otonom araç projesinde karar mekanizmasınında kolaylık sağlaması açısından ilk defa ROS ile tanışmış oldum
Adının tersine ROS bir Windows,Linux,Mac gibi bir isletim sistemi degildir.Program ile isletim sistemi arasinda sadece bir katmandir. Bilgisayar üzerinden robot ve robotlarımızı kontrol etmemizi sağlayan BDS lisanslı, açık kaynak kodlu bir yazılım sistemidir. ROS ‘u kullanabilmeniz için Linux tabanlı bir işletim sistemine ihtiyacınız olacaktır. Açık kaynak kodlu Ubuntu işletim sistemini kullanabilirsiniz yada Linux tabanlı farklı bir işletim sistemi dahi olabilir. Ros üzerinde onu farklı ve kullanışlı kılan 4 özellikten bahsetmek istiyorum.
- Plumbing: Process yonetimi ,coklu haberlesme ve suruculerden veri almaya yarayan bir özelliktir.
- Tools : Simulation ,Visualization ve Graphical user interface ve data loglama toolariyla isinizi kolaylastirir.
- Capabilities : Control ,Planning ,Perception,Mapping,Manipulation
- Ecosystem: Package sayesinde cok rahatlikla internet uzerinden indirip projeyine adapte edilebilir bir platform ayrica evrensel bir dokumantasyon ve tutoriallari sayesinde ogrenmek cok kolay
ROS TARIHCESI
2007 yilinda Stanford AI Lab’da geliştirilmiştir. 2013 yilindan beri OSRF (Open Source Robotic Foundation) tarafindan yonetilmekte ve gunumuzde arastirma ve robot otomasyon ve kontrollerinde hem akademik hemde kurumsal hayatta sik sik kullanilmakta. De Facto adi altinda robotlama programi ile hizmet vermekte.Suan tüm programlar arasında nasıl iletişim kurulacağı, robotun 3B simülasyonunun nasıl uygulanabileceği üzerinde çalışmaya başladı. Projesinin sonuna geldiğinde hiçbir ilerleme kaydedemedi ve inancını da kaybetmeye başladı. Tüm enerjisini robotik çerçeve üzerine harcadı ve bu yüzden asıl proje üzerinde az çalışmış oldu.
ROS FELSEFESI
- Peer to peer – API entegrasyonu kolay (ROS messages .service, vb)
- Distributed – Bircok bilgilsayar ve hardware’de çalışabilir
- Multi-lingual-C++ ,Python ,Java,MATLAB,vb programlarda yazilabilir
- Light-Weight – Kutuphaneler Ros katmaninda sarili bir sekilde yuksek performansda calisir
- Free and Open Source.
ROS KURULUMU VE ORTAMI
$ source /opt/ros/<distro>/setup.bash
$ source /opt/ros/kinetic/setup.bash
$ source /opt/ros/indigo/setup.bash
Workspaesinizi yüklemek için üstteki komudu kullanacaksınız versiyon ve türüne göre kırmızı kısmı değiştirebilirsiniz.
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make
ROS Workspace kurmak için yani ROS’un barınabileceği bir enviroment kurulması için üsteki komudu kullanırız
$ echo $ROS_PACKAGE_PATH
Eger doğru bir şekilde yüklediyseniz üstteki komutla workspace lokasyonunuzu görebilirsiniz
ROS MASTER
Nodelar arası ıletişimi yönetmeyi sağlar ve her node master node ile başlar.
Başlanması gereken komut:
roscore
ROS NODES
Tek işlevden sorumlu küçük program parçacığıdır.