Project Overview
As a lead engineer for Team Kaplan (ID: 647407) in the TEKNOFEST Unmanned Ground Vehicle Competition, I spearheaded the design, simulation, and implementation of the vehicle's core autonomous and powertrain systems. The 'Kaplan' is a 500 kg heavy-duty tracked UGV built on a robust 6061-T6 aluminum alloy chassis and protected by 316-quality stainless steel armor. The platform was engineered to autonomously navigate extreme conditions, including 45% steep slopes , 20% side slopes , 20 cm vertical obstacles , and water crossings. My responsibilities involved designing the vehicle's 4×0.75 kW electric powertrain , where I led the end-to-end electromagnetic design of a custom 48V, 8-pole Permanent Magnet BLDC motor. I utilized Ansys Motor-CAD for analytical sizing and the Ansys Maxwell Suite to conduct detailed electromagnetic simulations, validating the design's magnetic flux density and performance. I also developed the complete autonomous driving and control stack, architecting a system that used a Raspberry Pi 5 for high-level image processing and sign recognition , complemented by an APM 2.8 controller for real-time navigation and stabilization using its integrated IMU. All autonomous logic was rigorously tested and tuned within a high-fidelity Webots simulation environment. Finally, I developed the operator's Ground Control Station (GCS) in JavaFX and engineered its redundant, dual-channel communication architecture. This system used a TP-Link Wi-Fi module for high-bandwidth video and a SIM808 GSM/GPRS module for long-range command, control, and GPS telemetry , featuring an automatic failover from Wi-Fi to GSM to guarantee uninterrupted connectivity.
Core Technologies
- Ansys MotorCad, Solidworks
- Webots Stack
- Next.js, Python, C++
Electric Motor Design & Simulation
The heart of the UGV is its custom-designed electric powertrain. I used Ansys MotorCad for detailed simulation, including thermal analysis and Finite Element Analysis (FEA), to validate performance under heavy loads.


Media Gallery



Code & Implementation
Ground Control Station (Next.js)
import { io } from "socket.io-client";
const socket = io("http://ugv.local:3001");
function UGV_Dashboard() {
const [telemetry, setTelemetry] = useState(null);
useEffect(() => {
socket.on("telemetry_update", (data) => {
setTelemetry(data);
});
return () => socket.off("telemetry_update");
}, []);
// ... dashboard rendering logic
}
Communication System (Python)
# --- FastAPI ve CORS Kurulumu ---
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# --- MAVLink Bağlantısı ---
master = None
try:
# MAVProxy veya doğrudan araca bağlanın
master = mavutil.mavlink_connection('udpin:0.0.0.0:14550')
master.wait_heartbeat()
print("✅ MAVLink bağlantısı kuruldu ve heartbeat alındı.")
except Exception as e:
print(f"❌ MAVLink'e bağlanılamadı: {e}")
if "10013" in str(e) or "10048" in str(e):
print("💡 İPUCU: Bu hata, portun zaten kullanımda olduğu anlamına gelir.")
print("💡 Lütfen diğer MAVLink yazılımlarını kapatın veya MAVProxy ayarlarınızı kontrol edin.")
master = None