1. Giriş: Robotik ve ROS 
 
17
2. Ubuntu İşletim Sistemi ve Linux Temelleri 
 
25
2.1. Linux Nedir? Linux’un Kısa Bir Tarihçesi 
 
25
2.2. Linux Dağıtımları 
 
25
2.3. Ubuntu İşletim Sisteminin Kurulumu 
 
26
2.4. Kullanıcı Arayüzleri 
 
32
2.5. Sistemle İlgili Temel Bilgileri Edinme 
 
33
2.6. Linux Dosya Yapısı 
 
35
2.7. Linux’te Dosya İşlemleri 
 
36
2.7.1. Klasör Oluşturmak ve Klasör Değiştirmek 
 
36
2.7.2. Boş Dosya Oluşturmak: Touch 
 
36
2.7.3. Dosya Listeleme: ls 
 
36
2.8. Metin Dosyalarını Oluşturma ve Görüntüleme 
 
37
2.8.1. nano Metin Editörü 
 
37
2.9.2. Yönlendirme (Redirection) 
 
40
2.10. Düzenli İfadeler (Regular Expressions) 
 
42
2.11. Yardımcı Komutlar ve Programlar 
 
43
2.11.1. Dosya Aramak: find 
 
44
2.11.3. Komutlar ve Programlar ile İlgili Bilgi Edinme: man ve info 
 
44
2.12. Bash’te Değişkenler 
 
46
2.12.2. .bashrc Dosyası 
 
47
2.13. Bash’te Programlama 
 
48
2.14. Ubuntu’da Kullanıcı İşlemleri 
 
49
2.14.1. Süper Kullanıcı (root) 
 
49
2.14.2. Yeni Kullanıcılar Eklemek 
 
50
2.14.3. Başka Bir Kullanıcıya Geçmek 
 
50
2.14.4. Kullanıcıları Silmek 
 
51
2.15. Dosya ve Kullanıcı İzinleri 
 
51
2.16. Ubuntu’da Prosesler (Süreçler) 
 
54
2.16.1. ps ve top komutları 
 
55
2.17. Ubuntu’da Paket İşlemleri 
 
58
2.18. XML ve YAML İşaretleme Dilleri 
 
59
3. Python Programlama Diline Giriş 
 
63
3.1. Programlama Dilleri Nedir? Python Programlama Dilinin Özellikleri Nelerdir? 
 
63
3.2. rospy Kütüphanesi 
 
64
3.3. Python Betiklerinin Linux Ortamında Geliştirilmesi 
 
64
3.4. Python’da Operatörler, Data Türleri ve Değişkenler 
 
65
3.5. Python’da Birleşik Data Türleri 
 
67
3.6. Boolean Operatörler ve Kıyaslamalar 
 
70
3.7. Koşul (if) İfadeleri 
 
70
3.8. Döngüler (for ve while ifadeleri) 
 
71
3.10. Python’da Hatalar 
 
73
3.11. Python’da Nesne Yönelimli Programlama 
 
75
3.12. Python’da Modüller 
 
77
3.13. Python Paketlerinin Kurulması 
 
79
3.14. Python içim Sanal Ortamlar 
 
80
4. ROS, ROS Dağıtımları ve ROS Kinetic Kame Kurulumu 
 
83
4.1. ROS dağıtımları ve Kinetic Tanıtım 
 
83
4.1.1. Sürüm Yayımlanma Çizelgesi 
 
85
4.1.2. Hangi Dağıtımı Kullanmalıyım? 
 
85
4.1.3. Topluluk – Community Level 
 
85
4.3. Robot Operating System (ROS) 
 
89
4.3.1. ROS Dosya Yapısı 
 
90
4.3.2. ROS Kavramlarının Anlaşılması 
 
91
4.4. ROS Ortamının Hazırlanması 
 
94
4.4.1. ROS Çalışma Alanı Yaratma Ve Ortamın Yönetilmesi 
 
94
4.4.2. catkin_make Kullanma 
 
96
4.4.3. Bir Catkin Paketini Ne Oluşturur? 
 
97
4.4.4. Bir Catkin Çalışma Alanındaki Paketler 
 
97
5. ROS Paketi Oluşturma, Yayıncı–Abone Örneği ve Yardımcı Komutlar 
 
99
5.1. ROS Paketinin Yaratılması 
 
99
5.1.1. Paketin Özelleştirilmesi 
 
102
5.1.2. Yeni Paketin Derlenmesi ve Oluşturulması 
 
104
5.2. Basit Bir Yayıncı ve Abone Düğümünün Yazılması 
 
107
5.2.2. Yayıncı Düğümünün Yaratılması 
 
107
5.2.3. Abone Düğümünün Yaratılması 
 
112
5.3. Yardımcı ROS Komutları 
 
114
5.4. Düğümlerin Çalıştırılması 
 
119
5.5. ROS msg Yaratılması 
 
122
5.5.1. Özel Mesaj Yaratma 
 
123
6. ROS Paketi Oluşturma, Servis–İstemci Örneği ve Yardımcı Komutlar 
 
125
6.1. Basit Bir Servis ve İstemci Düğümünün Yazılması 
 
125
6.1.2. Servis Düğümünün Oluşturulması 
 
127
6.1.3. İstemci Düğümünün Oluşturulması 
 
134
6.1.4. Düğümlerin Çalıştırılması 
 
139
6.2. rosservice ve rosparam Araçları 
 
140
6.2.1. rosservice Kullanımı 
 
141
6.2.2. rosparam Kullanımı 
 
142
6.3. Özel Servis Yaratılması 
 
144
7. ROS Dosya Sistemi, ROS QT Arayüzü, ROSBag, Rviz 
 
147
7.1. Ros Dosya Sisteminde Gezinme 
 
147
7.1.1. Dosya Sistemi Kavramları 
 
147
7.1.2. Dosya Sistemi Komutları 
 
147
7.2. ROS'ta Dosyaları Düzenlemek Için Rosed Kullanımı 
 
150
7.3. ROS QT arayüzü RQT 
 
151
7.3.1. rqt_console ve rqt_logger_level 
 
152
7.3.3. rqt_plot Kullanma 
 
155
7.4. rosbag ile Verileri Kaydetme ve Oynatma 
 
157
7.4.1. Tüm Yayınlanan Konuları Kaydetme (bag Dosyası Oluşturma) 
 
157
7.4.2. bag Dosyasını Inceleme ve Oynatma 
 
159
7.4.3. Sadece İstenilen Konuları Kaydetme 
 
160
7.4.4. Rosbag Kayıt / Oynatma Sınırlamaları 
 
161
7.5. ROS Görselleştirme Arayüzü – rviz 
 
161
8. Gezgin Robot Alan Süpürme Senaryosunun Kodlanması 
 
165
8.1. Temizlik Robotu Simülasyon Ortamının Oluşturulması 
 
166
8.1.2. Temizlik Robotu Simülasyon Ortamının Çalıştırılması 
 
167
8.2. Temizlik Robotu Paketinin Oluşturulması 
 
170
8.2.1. Temizlik Robotu Mesafe Hesaplama Düğümünün Oluşturulması 
 
174
8.2.2. Temizlik Robotu Engelden Sakınma Düğümünün Oluşturulması 
 
183
8.2.3. Temizlik Robotu Bilgi Servisi Düğümünün Oluşturulması 
 
192
8.2.4. Temizlik Robotu Süpürme Düğümünün Oluşturulması 
 
197
8.2.5. Paket Launch Dosyasının Oluşturulması 
 
218
8.2.6. Düğümlerin Çalıştırılması 
 
219
8.2.7. Düğümler Üzerinde Uygulamalar 
 
230