Autonomous Navigation and Parking of a Robotic Car
Autonomous driving, dynamic mapping, and parking of a small-scale vehicle in MORSE simulation.
Overview
Self-driving vehicles require robust integration across sensing, perception, dynamic world modeling, motion planning, and decision making to safely navigate urban environments.
Completed at the Distributed Artificial Intelligence Laboratory (DAI-LABOR), Technical University of Berlin (TU Berlin), as part of the Applications of Robotics and Autonomous Systems project, this work developed an autonomous driving stack for a small-scale 4WD robotic car simulated in the MORSE (Modular Open Robots Simulation Engine) environment on ROS.
The objective was to enable the vehicle to follow lane markings, recognize and obey traffic signs, avoid static and moving obstacles (pedestrians and vehicles), manage battery status, and execute an autonomous parking maneuver into an identified parking spot.
My Contributions
- Perception System Integration: Performed system integration of YOLO models into the ROS software pipeline for real-time detection of traffic signs and obstacles.
- Costmap Layer Integration: Combined different static layers (road lane boundaries, static obstacles, and inflation) into a unified 2D costmap for safe vehicle navigation and motion planning.
- Local Planning & Trajectory Generation: Configured and tuned the Timed Elastic Band (
teb_local_planner) local motion planner to produce smooth, collision-free velocity commands (/cmd_vel) respecting the vehicle鈥檚 non-holonomic kinematic constraints. - Decision Making & Behavior Management: Developed a finite state machine (FSM) behavior coordinator managing vehicle state transitions between idle, lane driving, emergency braking, battery recharging, and parking.
System
The autonomous system follows an integrated modular pipeline:
Sensors (LiDAR, Camera, IMU, Odometry) $\to$ Perception & State Estimation $\to$ Dynamic Costmap Layering $\to$ Global & Local Path Planning $\to$ FSM Behavior Execution $\to$ Actuation (/cmd_vel)
1. Software Architecture
The software architecture is structured into four functional tiers:
- Sensor-Motor Level (MORSE): Publishes raw LiDAR scans, forward and rear camera RGB feeds, wheel odometry, IMU data, and battery status.
- Sensing & Low-Level Planners: Fuses laser odometry (
rf2o_laser_odometry), wheel encoders, and IMU via an Extended Kalman Filter (ekf_se), computes SLAM maps (hector_mapping), and updates multi-layered costmaps. - High-Level Navigation & Perception: Runs YOLO object and sign detection, generates 2D lane boundaries, computes global routes with A*, and executes the TEB local planner.
- Application Level: Governs task execution, battery monitoring, and parking spot selection.
2. Perception & Multi-Layer Dynamic Mapping
The vehicle perceives its surroundings using front/rear cameras and 2D LiDAR. To provide the motion planner with an actionable representation of the world, sensor outputs are fused into a multi-layered Local Dynamic Map (LDM):
3. Lane Mapping & Behavior Decision Making
Navigation relies on road lane mapping combined with high-level behavioral control:
Results & Key Capabilities
- Lane Keeping & Navigation: The vehicle successfully maintained lane boundaries along continuous curved tracks using the fused 2D lane costmap and global A* route.
- Traffic Sign Compliance: Real-time sign detection triggered appropriate driving behaviors, including decelerating through construction zones and respecting directional turning commands at intersections.
- Dynamic Obstacle Avoidance: Moving pedestrians and other vehicles were tracked, predicted, and reflected on the dynamic costmap layer, triggering reactive braking and safe re-routing.
- Autonomous Parking Execution: Upon receiving a parking goal, the vehicle transitioned from road-following to local trajectory generation, reversing and aligning into the designated parking bay without collision.
Technical Highlights
- Simulation Platform: MORSE (Modular Open Robots Simulation Engine) 路 Blender 路 ROS Melodic 路 Ubuntu 18.04
- Perception Pipeline: YOLOv3 / SSD deep learning detection 路 Camera RGB-D streams 路 2D LiDAR scanning
- State Estimation & SLAM: Extended Kalman Filter (
robot_localization/ekf_se) 路hector_mapping路rf2o_laser_odometry - Costmap Architecture: Multi-layered 2D Costmap (Static, Road Lane, Obstacle, Inflation, and Moving Entities)
- Path & Motion Planning: Global A* Planner 路 Timed Elastic Band (
teb_local_planner) with non-holonomic vehicle kinematics - Behavior Executive: Finite State Machine (FSM) & Behavior Trees managing driving, charging, and parking logic
- Control Interface: Twist force actuator command generation (
/cmd_vel) with linear and steering PID control
Team
Alexandros Nikolaou 路 Sharang Kaul 路 Sumit Patidar 路 Jhorman Perez 路 Stoyan Karastoyanov 路 Janis Freund
Technical Report
For the complete system design specifications, sensor calibration parameters, ROS topic message definitions, and detailed node interfaces, please refer to our full project report:
- Download Project Report (PDF)
- Title: Prediction, Perception and Advanced AD Capabilities: System Design Specifications
- Authors: Alexandros Nikolaou, Sharang Kaul, Sumit Patidar, Jhorman Perez, Stoyan Karastoyanov, Janis Freund
- Institution: Distributed Artificial Intelligence Laboratory (DAI-LABOR), Technical University of Berlin (TUB, March 2021)