ROBOTİK MÜHENDİSLİĞİ · 0 → PRO ROADMAP

ROBOTİK MÜHENDİSLİĞİ ROADMAP

Matematik + Elektronik + Yazılım + Yapay Zeka. Dört alan aynı anda. Bu roadmap zor ama rekabet avantajın çok yüksek — öğrenen az, ihtiyaç büyük.

0
AŞAMA
0
AY (TAM YOL)
0
PROJE
⚠ GERÇEK UYARI
ZOR
Çok Disiplin GerekirSabır + tutarlılık şart
2 YIL
"İyi" Seviyesi3+ yıl "çok iyi"
AZ
Rekabet DüşükÖğrenen az → avantaj büyük
Kariyer FırsatıASELSAN · TUSAŞ · Drone
1
TEMEL
0–2 AY
2
MÜHENDİSLİK
2–5 AY
3
ROBOTİK CORE
5–9 AY
4
OTONOM
9–15 AY
5
ARAÇ/DRONE
15–20 AY
6
İLERİ
20+ AY
PROJELER
SÜREKLI
1
0 → 2 AY
Temel Altyapı — Matematik + Python + C++ + Linux
Lineer Cebir · Türev · OOP · Multi-threading · Bash · Process
Robot = Matematik + Fizik. Bu temel olmadan robotik yazılımı "kara kutu" olarak kullanırsın. PID parametrelerini anlamazsın, Kalman Filter çalışmaz, kinematiği hesaplayamazsın. Sağlam temel = sağlam robot.
📐 Lineer Cebir
• Vektör & matris operasyonları
• Matris çarpımı — dönüşüm matrisleri
• Rotation matrix (3D uzay)
• Eigenvalue/eigenvector (PCA, vibrasyon)
• Homogeneous coordinates (robotik standart)
∂ Türev & Optimizasyon
• Zincir kuralı → backprop
• Kısmi türev → gradient
• Jacobian matrisi → robot hızı
• Lagrangian mekaniği (dinamik)
• Least squares → sensör fusion
P Olasılık & İstatistik
• Koşullu olasılık, Bayes teoremi
• Gaussian (Normal) dağılım
• Kalman Filter temeli
• Çok değişkenli dağılımlar
• Belirsizlik modellemesi
# Python — hızlı prototipleme import numpy as np # 3D Rotation Matrix (Z ekseni etrafında θ) def rot_z(theta: float) -> np.ndarray: c, s = np.cos(theta), np.sin(theta) return np.array([[c,-s,0],[s,c,0],[0,0,1]]) # Jacobian — uç efektör hızı # ẋ = J(q) · q̇ // C++ — gerçek zamanlı kontrol // #include <Eigen/Dense> Eigen::Matrix3d rotZ(double theta) { Eigen::AngleAxisd aa(theta, Eigen::Vector3d::UnitZ()); return aa.toRotationMatrix(); } // Multi-threading — paralel sensör okuma std::thread camera_thread([&]{ readCamera(); }); std::thread lidar_thread ([&]{ readLidar(); }); camera_thread.join(); lidar_thread.join();
Hedef: Linux'ta C++ derleyip çalıştır. NumPy ile rotation matrix hesapla. Terminal'den process yönet.
2
2 → 5 AY
Mühendislik Temelleri — Elektronik + Mekanik + Gömülü
Sensörler · Arduino · Raspberry Pi · Kinematik · PID · UART/I2C/SPI
📡
Ultrasonik
HC-SR04, mesafe ölçüm
🔄
IMU
MPU-6050, açı/ivme
🔴
LiDAR
RPLIDAR, 2D/3D haritalama
📷
Depth Camera
RealSense, 3D görüntü
🛰️
GPS/GNSS
Konum, navigasyon
🌡️
Encoder
Motor pozisyon geri bildirimi
💨
Barometer
Yükseklik (drone)
Force/Torque
Temas algılama
// PID Kontrol — Robotik'in temel taşı class PIDController { double kp, ki, kd, prev_error = 0, integral = 0; public: PIDController(double p, double i, double d): kp(p), ki(i), kd(d){} double compute(double setpoint, double measured, double dt) { double error = setpoint - measured; integral += error * dt; double derivative = (error - prev_error) / dt; prev_error = error; return kp*error + ki*integral + kd*derivative; } }; // I2C ile IMU okuma (MPU-6050) Wire.begin(); Wire.beginTransmission(0x68); // IMU adresi Wire.write(0x3B); // Accelerometer register Wire.endTransmission(false); Wire.requestFrom(0x68, 14); // 14 byte: accel+gyro+temp
Motor Tipleri
DC motor (hız kontrol) · Servo (açı kontrol) · Stepper (adım hassas) · BLDC (drone/yüksek güç)
Real-Time Sistemler
RTOS (FreeRTOS) · Deterministik zamanlama · Interrupt handling · Watchdog timer
Güç Elektroniği
H-bridge motor sürücü · PWM · ESC (elektronik hız kontrolörü) · Güç dağıtım kartı
3
5 → 9 AY
Robotik Core — Kinematik + Dinamik + ROS2
FK/IK · PID · State-Space · ROS2 · Topic/Node/Service · Gazebo
ROS2 neden kritik? ROS (Robot Operating System) robot yazılımının Linux'udur. Endüstri standardı. Tüm büyük robot şirketleri (Boston Dynamics, NASA, ASELSAN) ROS kullanır. ROS1 artık legacy — direkt ROS2 öğren.
// KİNEMATİK AKIŞI
Eklem
Açıları
q₁,q₂,q₃
GİRİŞ
İleri
Kinematik
FK(q)
FORWARD K.

Efektör
Pozisyon
ÇIKIŞ x,y,z
Ters
Kinematik
IK(x,y,z)
INVERSE K.
Eklem
Komutları
q₁,q₂,q₃
KONTROL
# ROS2 — Node + Publisher + Subscriber import rclpy from rclpy.node import Node from geometry_msgs.msg import Twist from sensor_msgs.msg import LaserScan import numpy as np class ObstacleAvoidance(Node): def __init__(self): super().__init__("obstacle_avoidance") self.pub = self.create_publisher(Twist, "/cmd_vel", 10) self.sub = self.create_subscription( LaserScan, "/scan", self.laser_callback, 10 ) self.get_logger().info("Obstacle Avoidance node başlatıldı") def laser_callback(self, msg: LaserScan): ranges = np.array(msg.ranges) min_dist = np.nanmin(ranges[0:30]) # önden ölç cmd = Twist() if min_dist > 0.5: cmd.linear.x = 0.3 else: cmd.angular.z = 0.8 # dön self.pub.publish(cmd) def main(): rclpy.init() rclpy.spin(ObstacleAvoidance()) rclpy.shutdown()
Topic
Pub/sub. Sensor data, cmd_vel, images. Async iletişim.
Service
Request/response. Koordinat sorgusu, arm enable. Senkron.
Action
Uzun görevler. Navigate to pose. İptal edilebilir.
Gazebo
3D fizik simülasyonu. Gerçek robot olmadan test.
🤖 ROS2 Talker/Listener
🚧 Engelden Kaçan Robot
📐 Kinematik Solver
4
9 → 15 AY
Otonom Sistemler — CV + SLAM + Path Planning + Karar
OpenCV · YOLO · Kalman Filter · EKF-SLAM · A* · RRT · Behavior Trees
# Kalman Filter — belirsizlik altında durum tahmini import numpy as np class KalmanFilter: def __init__(self, F, H, Q, R, x0, P0): self.F, self.H = F, H # durum geçiş, gözlem matrisi self.Q, self.R = Q, R # proses gürültüsü, ölçüm gürültüsü self.x, self.P = x0, P0 # başlangıç durumu, kovaryans def predict(self, u=None): self.x = self.F @ self.x # ön tahmin self.P = self.F @ self.P @ self.F.T + self.Q def update(self, z): S = self.H @ self.P @ self.H.T + self.R K = self.P @ self.H.T @ np.linalg.inv(S) # Kalman kazancı self.x += K @ (z - self.H @ self.x) self.P = (np.eye(len(self.x)) - K @ self.H) @ self.P
# A* Path Planning import heapq def astar(grid, start, goal): h = lambda p: abs(p[0]-goal[0]) + abs(p[1]-goal[1]) # Manhattan open_set = [(0, start)] came_from, g = {}, {start:0} while open_set: _, current = heapq.heappop(open_set) if current == goal: return reconstruct(came_from, current) for nb in neighbors(grid, current): ng = g[current] + 1 if ng < g.get(nb, float('inf')): came_from[nb] = current; g[nb] = ng heapq.heappush(open_set, (ng+h(nb), nb))
SLAM (kritik!)
Eş zamanlı haritalama + lokalizasyon. EKF-SLAM, Graph SLAM, ORB-SLAM2/3. gmapping, cartographer (ROS).
Sensör Füzyonu
IMU + GPS + LiDAR birleşimi. EKF/UKF. robot_localization paketi. GNSS + odometry fusion.
Behavior Trees
FSM'den üstün — modüler, test edilebilir. BehaviorTree.CPP (C++), py_trees (Python). Nav2 içinde.
📷 Kamera ile Nesne Tanıma
🗺️ SLAM Haritası
🛤️ Path Planning Demo
🚗 Mini Otonom Araç
5
15 → 20 AY
Otonom Araç / Drone Sistemleri
Lane Detection · Sensor Fusion · PX4 · ArduPilot · PID Tuning · GPS Nav
🚗 Otonom Araç Stack
Perception: Camera + LiDAR fusion, lane detection, object tracking
Localization: HD harita + GPS + SLAM
Planning: Global (A*) + Local (TEB, DWA)
Control: Lateral (Stanley/MPC) + Longitudinal (ACC)
Framework: Autoware, Apollo, CARLA sim
🚁 Drone Sistemleri
Flight Controller: PX4 (açık kaynak standart)
Ardupilot: ArduCopter/Plane, MAVLink protokolü
PID Tuning: Roll/Pitch/Yaw halkası ayarı
GPS Nav: Waypoint mission, geofencing
Sim: Gazebo + SITL, AirSim, JSBSim
# MAVROS — ROS ile Drone kontrolü import rospy from mavros_msgs.msg import State from mavros_msgs.srv import CommandBool, SetMode from geometry_msgs.msg import PoseStamped class DroneController: def __init__(self): rospy.init_node("drone_controller") self.pose_pub = rospy.Publisher("/mavros/setpoint_position/local", PoseStamped, queue_size=10) self.arm_srv = rospy.ServiceProxy("/mavros/cmd/arming", CommandBool) self.mode_srv = rospy.ServiceProxy("/mavros/set_mode", SetMode) def takeoff(self, height: float): self.mode_srv(custom_mode="OFFBOARD") # OFFBOARD modu self.arm_srv(value=True) # arm et pose = PoseStamped() pose.pose.position.z = height for _ in range(100): self.pose_pub.publish(pose)
💡 CARLA & AirSim: Gerçek araç olmadan otonom araç geliştirmek için açık kaynak simülatörler. CARLA, sensör veri üretiminden trafik senaryosuna kadar tüm stack'i destekler. İlk self-driving projen burada olsun.
6
20+ AY
İleri Seviye — RL + Swarm + Edge AI + Real-Time AI
DQN · PPO · Sim-to-Real · Isaac Gym · NVIDIA Jetson · TensorRT · Swarm
🎮 Reinforcement Learning for Robotics
Sim-to-Real: Isaac Gym / MuJoCo → gerçek robot
PPO / SAC: Locomotion, manipulation policy
Domain Randomization: Gerçek dünya transferi
Boston Dynamics: Spot, Atlas bu yöntemle eğitildi
Imitation Learning: Robot taklit ederek öğrenir
⚡ Edge AI — NVIDIA Jetson
Jetson Orin/Nano: Robotik AI için tasarlandı
TensorRT: Model inference hızlandırma (4-8x)
DeepStream: Gerçek zamanlı video analytics
INT8 Quantization: GPU'suz yerleşik çıkarım
Triton Inference: Çoklu model paralel servis
# Swarm Robotics — çok robot koordinasyonu # Boid algoritması — sürü davranışı import numpy as np class Boid: def __init__(self, pos, vel): self.pos, self.vel = np.array(pos, float), np.array(vel, float) def update(self, boids, dt=0.1): separation = self._separation(boids) # çarpışmaktan kaç alignment = self._alignment(boids) # aynı yöne git cohesion = self._cohesion(boids) # merkeze yaklaş self.vel += (separation * 1.5 + alignment * 1.0 + cohesion * 1.0) * dt self.vel = self.vel / np.linalg.norm(self.vel) * 2.0 self.pos += self.vel * dt
🤖 SLAM Yapan Robot
🚁 Otonom Drone
🚗 Self-Driving Mini Car
🐝 Swarm Robots (3+)

Simülasyon +
Gerçek Robot
Birlikte Git.

Sadece Gazebo yeterli değil, sadece fiziksel robot da yeterli değil. İkisini paralel kullan. Gazebo'da test et, robota aktar. Her başarısızlık veriden öğrenmektir.

↑ Başa Dön ROS2 GitHub →
1
Çizgi izleyen robot yap (ay 1)
Arduino + motor + IR sensör. Fiziksel dokunuş kritik.
2
ROS2 kurulumu + Gazebo (ay 3–4)
turtlesim → engelden kaçma → Gazebo simülasyon.
3
Kamera + YOLO + ROS2 (ay 6–8)
Nesne algıla → robotu yönlendir. CV + robotik birleşimi.
4
SLAM yapan robot (ay 10–12)
LiDAR + gmapping/cartographer. Harita çıkar. Nav2.
5
GitHub + Blog + Teknofest (sürekli)
Her projeyi paylaş. Yaz. Yarış. Fark bu.