How ddiannelos/autonomous-racing-fsd works
This is a ROS 2 Formula Student autonomous-racing stack, with CARLA as its documented simulator. Its user-to-result workflow detects cones, fuses camera and LiDAR observations, localizes and maps the track, then switches from exploration-lap planning and control to optimized racing-line control. Offline YOLO training and simulator setup support the runtime stack. The README documents the broad subsystem flow; sampled source confirms several internal calls, while unsampled launch and node wiring is not inferred.
Main entry points: exploration_planner.hpp Exploration Planner · optimization_planner.hpp Optimization Planner · graph_slam_node.cpp GraphSLAM Node · state_machine_node.cpp Race State Machine
Components 22
Perception
- Camera Detection
src/camera_detection/camera_detection/camera_detector_node.py - LiDAR Detection
src/lidar_perception/src/lidar_detector_node.cpp - Cone Messages
src/interfaces/msg/ConeArray.msg - Sensor Fusion
src/sensor_fusion/sensor_fusion/sensor_fusion_node.py
Localization and Mapping
- IMU-GNSS EKF
src/localization/src/ekf_node.cpp - GraphSLAM Node
src/localization/src/graph_slam_node.cpp - GraphSLAM Engine
src/localization/src/graphslam.hpp - SLAM Visualization
src/localization/src/slam_visualization.cpp
Planning and Control
- Race State Machine
src/path_planning/src/state_machine_node.cpp - Exploration Planner
src/path_planning/src/planning/exploration_planner.hpp - Delaunay Triangulation
src/path_planning/src/math/delaunay.hpp - B-Spline Smoothing
src/path_planning/src/math/bspline.hpp - Pure Pursuit
src/path_planning/src/control/pure_pursuit.hpp - PID Control
src/path_planning/src/control/pid_controller.hpp - Optimization Planner
src/path_planning/src/planning/optimization_planner.hpp - Racing Line Optimizer
src/path_planning/src/planning/line_optimizer.hpp - Velocity Profiler
src/path_planning/src/planning/velocity_profiler.hpp - MPC Controller
src/path_planning/src/control/mpc_controller.hpp
Simulation and Model Support
- CARLA Simulator
- CARLA Setup
carla_setup/objects.json - YOLO Training
offline_training/train.py
Other components
- Vehicle Sensors
Connections 24
- Vehicle Sensors → Camera Detection: provides images
README.md - Vehicle Sensors → LiDAR Detection: provides point clouds
README.md - Camera Detection → Sensor Fusion: provides detections
README.md - LiDAR Detection → Sensor Fusion: provides centroids
README.md - Sensor Fusion → Cone Messages: publishes cones
README.md - Cone Messages → GraphSLAM Node: supplies observations
src/localization/src/graph_slam_node.cpp - IMU-GNSS EKF → GraphSLAM Node: provides odometry
README.md - GraphSLAM Node → GraphSLAM Engine: processes observations
src/localization/src/graph_slam_node.cpp - GraphSLAM Node → Cone Messages: publishes map
src/localization/src/graph_slam_node.cpp - GraphSLAM Node → SLAM Visualization: publishes map data
README.md - Cone Messages → Race State Machine: supplies cone map
src/path_planning/src/state_machine_node.cpp - Race State Machine → Exploration Planner: runs exploration
src/path_planning/src/state_machine_node.cpp - Race State Machine → Optimization Planner: runs optimization
src/path_planning/src/state_machine_node.cpp - Exploration Planner → Delaunay Triangulation: triangulates cones
src/path_planning/src/planning/exploration_planner.hpp - Exploration Planner → B-Spline Smoothing: smooths centerline
src/path_planning/src/planning/exploration_planner.hpp - Exploration Planner → Pure Pursuit: computes steering
src/path_planning/src/planning/exploration_planner.hpp - Exploration Planner → PID Control: controls speed
src/path_planning/src/planning/exploration_planner.hpp - Optimization Planner → Racing Line Optimizer: optimizes racing line
src/path_planning/src/planning/optimization_planner.hpp - Optimization Planner → Velocity Profiler: profiles speed
src/path_planning/src/planning/optimization_planner.hpp - Optimization Planner → B-Spline Smoothing: smooths path
src/path_planning/src/planning/optimization_planner.hpp - Optimization Planner → MPC Controller: solves control
src/path_planning/src/planning/optimization_planner.hpp - Race State Machine → CARLA Simulator: sends vehicle commands
README.md - CARLA Setup → CARLA Simulator: configures sensors
README.md - YOLO Training → Camera Detection: provides trained model
README.md