# Design Review 2022
## Elektronik
### Intro
- [ ] Short overview of the vehicle.
- [ ] LV system overview, CAN overview, sensor overview
- [ ] What are your main goals as a team?
- [ ] EDR: Increase reliability:
- Simplify autonomous sensor concept.
- Test extensive[ly].
- [ ] What are your resulting subteam goals?
- [ ] EDR: safe and reliable
- [ ] also EDR: flexibility and scalability
- [ ] Contradiction?
### General
- [ ] Where do you see the most potential for improvements?
- [ ] What system are you proud of?
- [ ] What voltage do you use for the lv system? Why?
- [ ] If you could improve something, what would it be and why?
### Software Design
- [ ] What programming language do you use?
- [ ] Why not Python? What are the differences to Python?
- [ ] Compiled, statically typed -> faster, safer
- [ ] Why not C? What are the differences to C?
- [ ] C++ does OOP, has stricter compile time checks
- [ ] Which C++ standard do you use? Can you name a feature which was introduced by this standard?
- [ ] What is the goal of design patterns?
- [ ] easy change, easy extension, provides an abstraction
- [ ] Can you explain the Single Responsibility principle (SRP)?
- [ ] "A class should have only one reason to change."
- [ ] How do you check if your code is correct?
### Communication (CAN)
- [ ] How many CAN busses do you use? Why more than one?
- [ ] higher busload leads to decrease in QoS
- [ ] What is your bus load?
- [ ] How could you increase the bus load without loss in QoS?
- [ ] timeslots for each controller
- [ ] How did you assign the CAN IDs?
- [ ] sorted by importance
- [ ] Which voltage level is used by the CAN bus?
- [ ] Bus output voltage, recessive: 2,3V @ V_in = 3V
- [ ] What other busses do you know and why did you decide to use CAN?
- [ ] Automotive Ethernet -> complex ip stack, hardware design
- [ ] EMI robust design of CAN
- [ ] How is a CAN frame structured?
- [ ] 11 bits ID, DLC, DATA, CRC
- [ ] 
- [ ] Explain the CAN arbitration.
- [ ] lowest id wins, because of most dominant bits
- [ ] What happens if two nodes send the same message (ID & data) at the same time?
- [ ] it will be send without an error
- [ ] if the data fields are different, there will be an error at the CRC field. (Also bit stuffing is to be taken into account)
- [ ] error frame consists of six dominant bits (therefore violating the bit-stuffing rule where after five consecutive bits of the same logic level the next bit has to be a complement)
- [ ] https://www.ti.com/lit/an/sloa101b/sloa101b.pdf?ts=1654807708149&ref_url=https%253A%252F%252Fwww.google.com%252F
- [ ] How would you calculate the max message rate for a 1MBaud standard CAN bus
- [ ] Bits per Message is dependent on DLC and stuffing
- [ ] Rate = (1MBaud / max Bits per Message)
### Hardware Design
#### Tractive System
- [ ] Can you name the most important specs of the TS System?
- [ ] voltage, max. current, chemistry, config, max. torque
- [ ] How did you determine the maximum current for the fuse?
- [ ] 80 kW / min. bat voltage; short circuit current of cells
#### Buck converter Layout

- [ ] What are the important components in a buck converter?
- [ ] switch, diode, input / output capacitance
- [ ] Can you draw a buck converter circuit?
- [ ] What is a typical switching frequency for a buck converter?
- [ ] 100kHz to 2MHz
- [ ] How does current flow through the circuit when the switch is on / off?
- [ ] switching loop and rectifier loop; input / output loop
- [ ] What layout rules generally apply to current loops?
- [ ] keep loops tight; especially high frequency / high current
- [ ] Which layout is better?
- [ ] left has much tighter loops and better ground coupling

#### ADC Design
- [ ] Do you use analog sensors? How do you convert them into digital?
- [ ] ADC, Comparator
- [ ] What kind of ADCs do you know?
- [ ] SAR, Sigma-Delta
- [ ] How do you design an input filter for an ADC?
- [ ] e.g. fc = max. signal frequency
- [ ] What is the highest frequency, that can be contained in a signal to be able to reconstruct it without error at a given sampling rate?
- [ ] Nyquist frequency
- [ ] What happens if higher frequency is contained? Why isn't this a problem in most cases?
- [ ] Many components have LP behaviour.
- [ ] Calculate the values for an LP Filter for a temperature sensor.
- [ ] e.g. fc = 10Hz, R = 1k6 C = 10uF; $fc = \frac{1}{\sqrt{2\pi*RC}}$
- [ ] How does the input impedance affect the maximum sampling frequency / noise of the ADC?
- [ ] higher impedance = lower max. sampling rate
- [ ] How can the input impedance be lowered?
- [ ] buffer
- [ ] What kind of noise do you know?
- [ ] e.g. Thermal noise (white), quantization noise, 1/f noise
- [ ] ADC input impedance, filter
#### wiring harness and PDU
- [ ] wiring harness -> how do you determine cable thickness?
- [ ] table with standard thicknesses
- [ ] wiring harness -> do you have issues regarding EMV? what measures did you take? What are the sources of EMR?
- [ ] Differential bus design
- [ ] switches are main sources -> high d_i/d_t
- [ ] PDU -> why is the powerPCB not grounded?
- [ ] PDU is high side switch
- [ ] return path is directly through the cable harness
- [ ] How are the ECUs protected against overvoltage/current?
- [ ] PDU smart switches
- [ ] What are the challenges witch switching high capacitive loads? How can you deal with that?
- [ ] large inrush currents
- [ ] input voltage supply drop depending on supply resistance and inductance
- [ ] potential ringing
- [ ] Solution: slowly precharging the capacity before fully closing the switch
- [ ] What influences the switching speed mainly?
- [ ] gate capacitance
- [ ] gate resistor -> gate driver current
- [ ] Why do you need a gate resistor?
- [ ] to limit the high inrush current due to the gate capacitance
- [ ] You want to low-side switch a dc motor. Can you draw a very simple schematic?
- [ ] gate resistance, pulldown resistor, flywheel diode
- [ ] 
- [ ] How did you determine the capacity of the LV battery?
- [ ] EDR: "analyzing the energy consumption in previous season"
### Safety
- [ ] Which safety mechanisms are used in the TS?
- [ ] IMD, SC, Fuse, Watchdogs
- [ ] How does the SC work? Are there other options?
- [ ] voltage vs. current driven
- [ ] What is the advantage of a current driven SC design?
- [ ] tolerant against EMV / voltage drops
- [ ] What happens if I press the emergency button in the cockpit? Why?
- [ ] SC open, MCU requests zero torque, airs open with slight delay
- [ ] What happens if a sensor breaks?
- [ ] dependend on sensor?
- [ ] How do you ensure data integrity?
- [ ] Watchdog
- [ ] Counter in Messages to make sure no messages are lost
## AS
### General
- [ ] Short overview of the system.
- [ ] What are your main goals?
- Reliable and robust path planning
- Reliable path optimization
- High performance velocity planning
- [ ] Which of the goals relates to the velocity estimation?
- [ ] What is SLAM and why do you need it?
- [ ] Simultaneous estimation of position and surrounding
- [ ] Generate map during autocross
- [ ] Locate on map during trackdrive
- [ ] What approaches to the SLAM problem do you know?
- [ ] Filtering -> EKF, UKF, Particle
- [ ] Graph based
- [ ] Which approach do you use?
- [ ] Which assumtions are you using?
- [ ] static world
- [ ] 2D
- [ ] Markov (EKF)
- [ ] Gaussian noise
### Probabilty Theory
- [ ] When are two events statistically independent?
- [ ] Occurence of one does not affect odds of occurrence of the other
- [ ] How many parameters discribe a gaussian distribution?
- [ ] mean + variance
- [ ] Does uncorrelated imply statistically independent?
- [ ] Only for gaussian
### Kalman Filter
- [ ] Explain the Markov assumption
- [ ] future state depends only on present state
- [ ] What is contained in your state vector?
- [ ] Position 2D + Orientation ($x_v$, $y_v$, $\varphi$)
- [ ] Coordinates of the landmarks ($x_{i,g}$, $y_{i,g}$)
- [ ] Explain the covariance matrix:
- [ ] Variance on main diagonal
- [ ] positiv semidefinite, symmetric
- What does a large value on main diagonal imply?
- [ ] large uncertainty
- What does a zero on secondary diagonal imply?
- [ ] variables are uncorrelated
- [ ] Visualize the covariance matrix given $x=(x, y, \varphi)$ for:
- [ ] driving in a straight line -> ellipse
- [ ] driving around a corner -> banana
- x = y ellipse
- [ ] Which case is problematic for EKF?
- [ ] Do you know the equation for the Kalman gain in an EKF?
- [ ] $\mathbf{K}_k = \mathbf{P}_{k|k-1}\mathbf{H}_k^T\mathbf{S}_k^{-1}$
- [ ] In what conditions does an EKF suffer from numerical instability?
- [ ] $\mathbf{S}_k \rightarrow 0$
- [ ] Why don't you use an UKF?
- [ ] More parameters to tune.
### Sensors
- [ ] Which sensors do you use?
- [ ] Motor speed encoders
- [ ] Accelerometers
- [ ] Kistler
- [ ] GPS
- [ ] Lidar
- [ ] Cameras
- [ ] Why don't you use ...?
- [ ] At what frequencies can you expect measurements from each sensor?
- [ ] What type of wheel encoders do you use?
- [ ] Data on Latency in system?
- [ ] ADR: "virtual IMU signals and wheel odometry are added with sensor-typical noise" -> What noise is typical?
- [ ] Gaussian noise for wheelspeed?
- [ ] Can you name error sources in GNSS
- [ ] Inospheric Delays because of ionising radiation
- [ ] Multipath errors
- [ ] Orbit Errors
- [ ] How can these errors be corrected?
- [ ] Orbit Errors -> correction data
- [ ] Multipath errors -> shielding / metal plate under antenna
- [ ] Inospheric Delays -> RTK
- [ ] ADR: Why is the ground speed sensor only used for validation?
- [ ] ADR: Mean error of 0.5m/s -> Outliers?
### Other options?
- [ ] What other options apart from EKF / probabilistic are there?
- [ ] What is an activation function? Why use it?
- [ ] introduces nonlinearity
- [ ] e.g. ReLu, sigmoid, tanh
### Implementation
- [ ] Did you implement the algorithm your self? If so, based on what?
- [ ] Implemented in C++
- [ ] with ROS
- [ ] What C++ standard do you use?
- Why? -> ROS compatibility?
- Can you name a language feature which was introduced by this standard?
- [ ] How do you test your code?
- [ ] Unit tests -> what is your code coverage?
- [ ] Integration tests -> If not, what could be done?