ROS Project with MORAI Simulator

ROS-based autonomous driving project conducted with the MORAI simulation platform

ROS Python MORAI Sim GPS PID Ubuntu

Overview

This project implemented autonomous-driving behaviors in a MORAI simulation environment using ROS. The mission included path tracking, traffic-light handling, pedestrian stop-and-go, and static obstacle avoidance.

  • Project type: training / team-based autonomous-driving simulation
  • Core stack: ROS, Python, MORAI Simulator, GPS localization, PID control
  • Focus: vehicle behavior logic and stable mission completion in simulation

Problem & Motivation

Autonomous-driving logic must respond to multiple road situations, not just follow a route. The project focused on turning mission requirements into deterministic control behavior in a simulator.

The target problems were:

  • following a global path with acceptable deviation,
  • stopping and restarting around pedestrian zones,
  • responding to traffic-light state,
  • avoiding static obstacles without unstable acceleration.

My Role

I worked on mission logic and control behavior.

  • Implemented GPS-based global path tracking.
  • Applied PID control to reduce path deviation.
  • Implemented pedestrian stop-and-go logic around target waypoints.
  • Tuned obstacle-avoidance behavior to reduce sudden acceleration during lane changes.

Technical Approach

ROS was used because the project depended on topic-based communication between simulator data, localization, perception-like inputs, and control commands.

PID control was selected for path tracking because it is simple, interpretable, and practical for tuning steering behavior in a training simulator. For obstacle handling, the control logic combined object detection information with local path selection and speed limitation.


Implementation & Problem Solving

The project was implemented as a sequence of mission behaviors:

  1. Receive localization and route information.
  2. Follow the global path with PID-based steering control.
  3. Detect mission zones such as pedestrian crossings.
  4. Apply deceleration and timed stops.
  5. Generate safer behavior around static obstacles.

The most important debugging work was around smoothness. A technically correct avoidance path was not enough if it created sudden speed or steering changes.


Unexpected Issues

  • Sharp curves required different PID tuning than straight sections.
  • Static obstacle avoidance could create acceleration spikes if path and velocity were not controlled together.
  • Simulator missions required careful waypoint-based state management.

Results & Impact

  • Completed global path tracking, pedestrian stop-and-go, and static obstacle avoidance behaviors.
  • Improved control stability by limiting speed during avoidance and tuning curve behavior.
  • Gained practical experience with ROS-based autonomous-driving software structure.

Demo Evidence

The demo video below shows the implemented MORAI simulation mission behavior, including path tracking and mission handling in the simulator.


Lessons Learned

This project taught me that autonomous-driving behavior is a system problem. Localization, path logic, control tuning, and mission state must work together; improving only one part is not enough.