ROS And AI Project Under YTU MINT AI Crew
## ROS nedir?
Robot İşletim Sistemi robot yazılımı geliştiricileri için işletim sistemi sağlayan bir yazılım iskeletidir. İsminde işletim sistemi ifadesi geçse de insan ile robot arasında iletişimi sağlayan açık kaynak kodlu bir arayüz yazılımı denebilir. ROS, robotlarda oldukça yaygın olarak kullanılan yazılımdır.Robotun dış dünyadan sensörler aracığıyla aldığı verileri işleyip tekrar robota komut olarak göndermeyi sağlayan arayüzdür. Daha fazla bilgiyi https://wiki.ros.org/ROS/Introduction sitesinden alabilirsiniz.
Bu eğitim, robotik senaryolarının gerçekçi simülasyonlarına sahip olmak isteyen robot uzmanlarına yöneliktir. Gazebo bir 3D simülatördür, ROS ise robot için arayüz görevi görür. Her ikisini birleştirmek, güçlü bir robot simülatörü ile sonuçlanır.
Gazebo ile robotlar, engeller ve daha birçok nesne ile bilgisayarınızda 3 boyutlu bir senaryo oluşturabilirsiniz. Gazebo ayrıca aydınlatma, yerçekimi, atalet vb. için fiziksel bir motor kullanır. Robotunuzu zor veya tehlikeli senaryolarda robotunuza zarar vermeden değerlendirebilir ve test edebilirsiniz. Çoğu zaman, tüm senaryoyu gerçek robotunuzda başlatmak yerine bir simülatör çalıştırmak daha hızlıdır.
Aslen Gazebo, robotlar için algoritmaları değerlendirmek için tasarlandı. Hata işleme, pil ömrü, konum belirleme, gezinme ve kavrama gibi birçok uygulama için robot uygulamanızı test etmeniz önemlidir. Çok robotlu bir simülatöre ihtiyaç duyulduğundan Gazebo geliştirildi.
Rviz, Ros uygulamaları için bir 3D görselleştirme ortamıdır. Robot modelinin görünümünü sağlamasının yanı sıra sensör bilgilerinin kaydedilmesi ve görselleştirilmesi, geliştirme ve hata ayıklama için önemli bir araçtır. Robotun ne gördüğünü ve ne yaptığını görmemizi sağlar. Resimler ve point cloud verileri dahil olmak üzere kameradan, lidarlardan, 3D ve 2D cihazlardan gelen verileri görüntüleyebilir.
Turtlebot 3 modüler, kompakt ve özelleştirilebilir yeni nesil bir mobil robottur. Robotun amacı kapasiteyi, işlevselliği ve kaliteyi ödün vermeden platformun boyutunu önemli ölçüde azaltmak ve fiyatını düşürmektir. Turtlebot 3, Open Robotics, Robotis ve İntel, Onshape, Oroca gibi daha fazla ortak arasında iş birliği projesidir.
Buradaki çalışma mantığı yayınlama/abone yani daha basit anlamda alıcı-gönderici mantığında çalışmaktadır. Bilgisayar ile root arasındaki bu iletişim topic’ler ve mesajlar sayesinde sağlanmaktadır. Açık kaynak kodlu(BSD) bir sistemdir. Programlama dili olarak bağımsız olarak nitelendirilebilir. Aynı robot üzerinde farklı diller(java, lisp, c++, pyhton) kullanmaya izin verir.
3 Adet terminal açılır ve her bir terminale alttaki kodlar yazılır.
- 1.Terminale: roscore
# Ros çekirdeğini başlatmak - 2.Terminale: roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
# turtlebot3 robotumuzu Gazebo'da, boş bir dünya'da başlatmak
3.Terminali en son, Gazebo ortamınız hazır olduğunda, tüm işlemleriniz bittiğinde, simülasyonu başlatmak için kullanın!
- 3.Terminale: rosrun basit_uygulamalar main.py
Bu kodu, # py dosyamız catkin_ws/src altında bulunan basit_uygulamalar adlı workspace'de bulunmakta, main.py ise scripts klasörünün altında, bu py dosyasını çalıştırarak programı başlatıyoruz.
resimdeki oda tasarımını repo'daki theRoom klasöründen alabilirsiniz