Work / Autopilot & FSD - BFMC

Autopilot & FSD - BFMC

A ROS catkin autonomous driving stack for Bosch Future Mobility Challenge 2024/2025.

A scale-model autonomous vehicle system combining perception, planning, control, and embedded AI optimization. I led the BFMC 2024/2025 work as Team Lead.

Links
GitHub

The repository is open-sourced as an academic and research reference for scale-model autonomous vehicles using ROS, deep learning, and embedded hardware.

Overview
The project models a compact ADAS/autonomous driving system: camera, IMU, sonar, GPS/localization, and V2V signals flow through ROS topics; deep learning models estimate lane error, stop-line distance, local path, traffic signs, traffic lights, and obstacles; the controller converts perception into speed and steering commands for the BFMC track. In 2024, the team represented Vietnam and had the opportunity to attend the Romania final, but visa issues prevented physical participation, leaving the team ranked Top 15 worldwide. The project was later open-sourced and expanded as a reference for Vietnamese robotics, academic, and research communities.
Problem
A scale-model autonomous vehicle has to run perception, decision-making, and control in real time on very small hardware. The system needed to handle camera streams, lane detection, stop lines, traffic signs/lights, obstacle classification, IMU/sonar feedback, serial communication, and ROS message flow while staying within tight CPU, RAM, thermal, bandwidth, and latency limits.
Role
Team Lead / AI Engineer / Embedded Robotics Engineer
Approach
The architecture uses ROS Noetic/catkin with input, control, action, output, perception, utils, and rosserial packages. Raspberry Pi receives images from the RPi Camera V2 over FFC, reads BNO055 through I2C, and communicates with STM Nucleo over UART/USB; the Nucleo drives the steering servomotor, VNH5019 motor driver, DC motor, and AMT103 encoder, powered by a 2-cell LiPo battery through an OKR-T/10 DC/DC converter. Camera nodes publish frames into ROS, the main autonomous loop runs OpenCV DNN with ONNX Runtime-style models, the controller uses Pure Pursuit/PID to produce steering/speed commands, and the serial bridge communicates with MCU hardware for motor and servo control. The AI pipeline is optimized with ROI cropping, small grayscale 16x16/32x32 inputs, small ONNX models, confidence thresholds, tiled-ROI voting, inference timing, and fallback logic to run smoothly on Raspberry Pi and Jetson-class hardware.
Outcomes
Top 15
worldwide ranking in BFMC 2024
$4K
approximate revenue from research/education kits
ROS
catkin stack with sensor, control, and serial nodes
  • Commercialized the research/education vehicle model and generated approximately 4,000 USD in revenue for the team.
  • Optimized lane keeping, local path estimation, traffic sign/light detection, stop-line estimation, and obstacle classification for embedded hardware.
  • Built practical depth across ROS catkin, OpenCV, ONNX, Python/C++, serial protocols, MCU control, Raspberry Pi, Jetson Nano, edge AI, and ADAS systems.

Project Highlights

Autopilot demo

The vehicle drives autonomously on the BFMC track with lane keeping, steering control, and scenario response.

ADAS ROS stack

ROS/catkin workflow connecting perception, control, action, output, and the MCU serial bridge.

Bird-view camera

A debugging view for lane analysis, path planning, localization, and simulation/real-world comparison.

Car detection

Vehicle/obstacle detection pipeline used inside the compact ADAS stack.

Video & Walkthrough

Timeline

2024
BFMC 2024, represented Vietnam, reached Top 15 worldwide, and prepared for the Romania final
2024
Visa issues prevented physical final attendance, but the team continued improving the system and documentation
2024
Open-sourced the ROS catkin stack for Vietnamese research and robotics communities
2025
Continued BFMC 2025 development around simulation, ADAS, perception, and embedded optimization
Present
Expanding research/education vehicle kits and improving the pipeline on edge hardware

Behind The Project

Autonomous driving on small hardware

The main challenge was not only detecting lanes or signs. The full pipeline had to run fast enough on Raspberry Pi and edge devices, so every step from ROI selection, resizing, grayscale conversion, inference, control loop, and serial command timing mattered.

Many small models instead of one heavy model

The system uses specialized models: lane keeper for e2/e3 errors, stop-line estimator, local path estimator, sign classifier, traffic-light classifier, and obstacle classifier. This made the stack easier to optimize, debug, and deploy on embedded hardware.

ROS as the operating backbone

Camera, IMU, sonar, GPS/localization, vehicle state, control commands, and environmental data are organized with ROS nodes, topics, custom messages, and launch files. The catkin workspace keeps input, action, control, output, and utils cleanly separated.

From competition to community

After BFMC 2024, the team chose to open-source the project so Vietnamese research groups and robotics students could learn from a complete scale-model autonomous vehicle stack. The system also became a base for research and education kits that produced early revenue for the team.

Gallery

Interested in this project?

Let's build practical edge and AI systems for your workflow.

Contact
Share this project: