# 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 - [ ] ![](https://i.imgur.com/Ll3ZKTR.png) - [ ] 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 ![](https://i.imgur.com/SlvFq5e.png) - [ ] 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 ![](https://i.imgur.com/o3yKPyj.png) #### 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 - [ ] ![](https://i.imgur.com/15nDHCy.png) - [ ] 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?