Professional Documents
Culture Documents
4314 Asg2 - Conc
4314 Asg2 - Conc
4314 Asg2 - Conc
Concrete
Architecture
Group Beyond
Agenda
System Overview
Interaction of
& Top-level Architectural Styles
Subsystems
subsystems
● boardd
Interface between cereal and
panda which communicates with
the peripherals.
● sensord
Reads and configures the sensors
including gyro, accelerometer,
and light sensors.
● camerad
Manages the camera data.
Neural Network Runners
● modeld
Feeds input and the image stream into
the main driving neural network.
● dmonitoringd
Contains the logic for the driver’s
interaction with the system and the
car. It runs dmonitoring_model to
predict the driver’s head pose.
Localization and Calibration
● locationd
Responsible for localizing the car and
describing its interactions with its
environment includes calibrationd and
paramsd
● ubloxd
Parses the GNSS data.
● rednose
Consists of Kalman Filter that is used by
locationd to estimate position and
velocity of car.
Controls
Responsible for tasks related to planning and controlling the car’s movement
● radard
Converts raw data to canonical format.
● plannerd
Consists of two parts: lateral planning, and
longitudinal planning. Both use a Model Predictive
Control solver.
● controlsd
The service that controls the car. Receives the plan
from plannerd and converts it into signals.
System, Logging,
Miscellaneous services
● manager
Manages the start and stopping of other
● logging processes.
Manages all the logging data. video
and sensor data is used for training
● thermald
the neural networks.
Monitors various parameters in
regarding the to the system’s health
● ui including, Power supply status CPU and
Handles the displaying of memory usage, and system
information the driver when the car temperature.
is on and also off.
● athena
Sets up a Websocket connection to the
comma.ai servers.
Process-Control Architectural Style Layered Architectural Style
Architectural Styles
P ● Hardware to Software
TO
cereal
● Top layer is responsible for
communicating with subsystems
D
MI ● Middle layer is the interface
panda/opendbc between software and hardware
● Pub-Sub Architecture
● Publisher: cereal
● Subscribers: Subsystems / components
● Components publish messages to cereal
● Topic-based Communication
● Advantages
- Scalability
- Flexibility
- Modularity
Implicit Invocation Style
PUB
Interaction of
Subsystems
Rationale for the Interaction between Subsystems
Subsystem in Focus:
System, Logging, and Miscellaneous services
System, Logging, and Misc services
Publish-Subscribe (Pub-Sub):
● Devops Pipelines:
○ Automated testing of new code changes ensures a stable working version.
○ Implementation of parallelization in continuous integration tests significantly
reduces testing time.
○ Accelerates the software development life cycle, providing faster feedback during
testing and deployment.
Use Case - Lane Changing
Reflexion Analysis
● Absences
○ Dmonitoringmodeld
○ Laika
Absences Divergences
● Divergences
○ Cereal (New Component)
○ Increased dependencies
Conceptual Concrete
Cereal was the main divergence being the main communicator between components
unseen from the conceptual architecture increasing dependencies
Lessons Learnt and Limitations
1. https://blog.comma.ai/openpilot-in-2021/
2. https://desosa.nl/projects/openpilot/2020/03/11/from-vision-to-architecture
3. https://blog.comma.ai/laikad/
4. https://medium.com/@justinmilner/a-visual-guide-to-the-software-architecture-of-autonomous-
vehicles-390b1744cbd6
Thank You!
Any questions?