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