How lixiangyi-2006/adasim- works
ADASim is a Qt/C++ driving-simulation application with a Python planning node. Its main loop generates or replays vehicle and sensor frames, routes them through perception and prediction, displays the results, and exchanges obstacle/state and control messages over sockets. The README also documents multiple planning modes, resource monitoring, configurable defaults, noisy lidar simulation, and TCP heartbeat recovery. Some wiring and UI details are based on documented interfaces because the corresponding source excerpts are incomplete.
Main entry points: DataManager.cpp Data Bus And Sandbox · MainWindow.cpp Application Controller · DataLoader.cpp Frame Generator And Replay · View2D.cpp 2D Driving View
Components 15
Simulation Core
- Application Controller
ADASim/src/gui/MainWindow.cpp - Frame Generator And Replay
ADASim/src/backend/DataLoader.cpp - Replay Ring Buffer
ADASim/src/backend/Ringbuffer.h - Data Bus And Sandbox
ADASim/src/data/DataManager.cpp
Perception And Planning
- Obstacle Detection
ADASim/src/algorithm/ObstacleDetector.cpp - Path Prediction
ADASim/src/algorithm/PathPredictor.cpp - Python Planner
ADASim/tools/python_planner.py
User Interface
- 2D Driving View
ADASim/src/gui/View2D.cpp - Lidar View
ADASim/src/gui/SensorView.cpp - Resource Monitor
ADASim/src/gui/MainWindow.cpp
Runtime Services
- TCP And UDP Gateway
ADASim/src/communication/Socket.cpp - Configuration
ADASim/src/common/Config.cpp - Logging
ADASim/src/common/Logger.cpp
Other components
- Operator
- External Planner Node
Connections 21
- Operator → Application Controller: operates
- Operator → 2D Driving View: adds obstacles
- Application Controller → Frame Generator And Replay: controls playback
- Frame Generator And Replay → Replay Ring Buffer: stores frames
- Frame Generator And Replay → Application Controller: sends vehicle state
- Frame Generator And Replay → Data Bus And Sandbox: sends point cloud
- Application Controller → Data Bus And Sandbox: forwards vehicle state
- Data Bus And Sandbox → Obstacle Detection: detects obstacles
- Data Bus And Sandbox → Path Prediction: predicts trajectory
- Data Bus And Sandbox → 2D Driving View: sends overlays
- Data Bus And Sandbox → Lidar View: sends point cloud
- 2D Driving View → Data Bus And Sandbox: sends obstacle input
- Application Controller → Data Bus And Sandbox: sets algorithms
- Data Bus And Sandbox → TCP And UDP Gateway: requests broadcast
- TCP And UDP Gateway → Data Bus And Sandbox: delivers messages
- TCP And UDP Gateway → External Planner Node: exchanges TCP messages
- External Planner Node → Python Planner: runs planning logic
- Application Controller → 2D Driving View: updates vehicle view
- Application Controller → Resource Monitor: updates statistics
- Application Controller → Configuration: loads settings
- Application Controller → Logging: records lifecycle