# Plan na uruchomienie systemu autonomicznego RT12e
## Systemy potrzebne do uruchomienia AS 🏎

- [ ] **ASMU**
- [ ] działający package `autonomy_system`
- **SEE**
- [ ] działająca percepcjia (przynajmniej jedna kamera)
- [ ] działająca komunikacja CAN (`can_interface`)
- odbieranie wszystkich potrzebnych informacji z CAN-u
- komunikacja z RES [CANopen]
- status VDCU [0x110]
- Steering Wheel System - wybór misji [0x120] (opcjonalne)
- ASB status [0x150]
- SA status [0x155]
- Wheel speed [0x170]
- Bosch MM5.10 IMU [0x175-0x177]
- IAM 20860 IMU (własnej roboty) [0x200, 0x201] (opcjonale, raczej nie potrzebne, IMU nie jest na aucie)
- Brakes and steering [0x220]
- Xsens GNSS/INS [0x321, 0x332, 0x334, 0x371, 0x376]
- **THINK**
- [x] mission and status controller
- logika wyboru misji
- zablokowanie wyboru misji jeżeli status inny niż *AS Off*
- logika wyboru AS status
- zgodnie z regulaminem
- logika R2D request
- sprawdzanie regulaminowych 5 sekund
- [ ] motion estimation
- przynajmniej podstawowe działanie
- [ ] SLAM (opcjonalne)
- na pierwsze jazdy można pomiąć
- trzeba skonfigurować pod jazdę w realną percepcją i motion estimation
- [ ] path planner
- trzeba skonfigurować do jazdy z realnymi danymi
- [ ] vehicle controler
- trzeba skonfigurować do jazdy na realnym torze
- **ACT**
- [ ] działająca komunikacja CAN (`can_interface`)
- wysyłanie wszystkich potrzebnych informacji na CAN
- komunikacja z RES-em [CANopen]
- AS command [0x030]
- ASMU status [0x160]
- DV driving dynamics 1 [0x500] (opcjonalne)
- DV driving dynamics 2 [0x501] (opcjonalne)
- DV system status [0x502]
- DV ASF signals 1 [0x511] (opcjonalne)
- DV ASF signals 2 [0x512] (opcjonalne)
- [ ] działające uruchamianie systemu podczas uruchomienia ASMU
- [ ] działający CAN
- uruchamianie CAN-u przy uruchomieniu ASMU
- poprawna konfiguracja
- poprawne połączenia
- [ ] działająca komunikacja przez Ethernet z LiDAR-em (opcjonalne)
- [x] komunikacja przez hotspot WiFi
- uruchamianie hotspota przez Jetsona
- łączenie się z hotspotem (optymalnie przez Ubuntu nie Windowsa)
- [ ] sensowne wyprowadzenie kabla do podłaczenia się przez SSH
- [ ] poprawne połączenie Jetsona w ASMU
- kamery
- LiDAR
- zasilanie
- CAN1 i CAN2
- SSH
- WiFi
- [x] podłączenie Xaviera/Orina
- [x] **ASSIs**
- [x] odbieranie stanu systemu (ramka 0x502)
- [x] informowanie o stanie ASSI (ramka 0x15A-0x15C)
- [x] świecenie zgodnie z zasadami (status AS)
- [x] **ASB**
- [x] działający EBS
- działająca logika supervision
- działający *initial checkup* 
- działający *continous monitoring* 
- działające czujniki ciśnienia penumatyki
- działające elektrozawory
- działające czujniki ciśnienia układów hydraulicznych (przód i tył)
- działająca część mechaniczna, hydrauliczna i pneumatyczna
- nabita butla matka
- [x] komunikowanie o stanie ASB (ramka 0x150)
- [x] działający serwomechanizm aktuatora hamulca
- [x] odbieranie od ASMU ramki komendy i statusu (0x030, 0x502)
- [x] logika zamykania SDC dla jazdy autonomicznej i manualnej
- software
- hardware
- sterowanie serwomechanizmem
- ustawianie ciśninia na podstawie komendy jeżeli jest to legalne
- pomoc przy EBS
- [x] **Steering Actuator**
- [x] odbierania stanu AS (ramka 0x502)
- [x] wysyłanie stanu SA (ramki 0x155, 0x156)
- [x] odbieranie komendy AS (ramka 0x030)
- [x] aktuacja układu kierowniczego zgodnie z komendą jeżeli legalne
- [x] zabespieczenie przez zbyt dużym momentem
- [ ] działające sprzęgło odłączające SA od układu, sterowane prez ASMS (opcjonalne)
- [x] naprawnienie palącej się przetwornicy
- [x] założony steering acutator na auto
- **Percepcja**
- [ ] kamery
- [ ] LiDAR (opcjonalnie)
- [ ] mocowanie percepcji
- [x] **RES**
- [x] działająca logika otworzenia SDC
- [ ] działający bypass (opcjonalne)
- [x] działająca komunikacja z ASMU po CANopen
- [x] działająca komunikacja odbiornik - nadajnik
- [ ] **VDCU**
- [ ] software do obsługi komunikacji z ASMU:
- odbieranie informacji o wybranej misji i przechodzenie w tryb autonomiczny jeżeli misja jest inna niż manualna (ramka 0x502)
- komunikowanie o stanie TS (ramka 0x110)
- obieranie AS command i sterowanie silnikami na jego podstawie (prędkość samochodu, ramka 0x030)
- Emergency sound (w teorii da się bez tego jechać, ale to system bezpieczeństwa!, ramka 0x502)
- [ ] przechodznie w stan R2D w trybie autonomicznym (z R2DS)
- odebranie z ASMU sygnału o chęci przejścia w R2D (ramka 0x030)
- weryfikacja czy jest to możliwe (przynajmniej 5 sekund w AS_Ready, ramka 0x502)
- informowanie o przejściu w R2D (ramka 0x110)
- [ ] uruchamianie TS
- [ ] sterowowanie silnikami
- [x] **TS**
- [x] działający TS z zabezpieczeniami
- [x] działające przyciski aktywacji TS dla jazdy autonomicznej i manualnej
- [x] działająca logika wyłączenia przycisku w kokpicie jeżeli jazda autonomiczna (robione przez ASB)
- [ ] **SDC**
- [ ] działająca poprawnie logika SDC. Do zweryfikowania z regulaminem.
- [ ] latchowanie SDC przy otworzeniu przez AS
- [ ] integracja RES-a
- [ ] ASMS
- [ ] elektrozawory EBS-u
- [ ] logika aktywowania TS
- [ ] **Kierownica**
- [x] działająca AMI - wyświetlanie aktualnie wybranej misji
- [ ] wybranie misji z poziomu kierownicy (opcjonalne, można przez RQT)
- [ ] **ACAN**
- dla systemu autonomicznego niepotrzebny bezpośrednio, ale wypadało by mieć odczyty temperatur dla TS
- [ ] **PDM**
- działające kanały dla modułów systemu autonomicznego
- [ ] ASMU
- [ ] SA
- [ ] ASB
- [ ] Serwo
- [ ] LiDAR (opcjonalne)
- [ ] działający soft do logowania prądu na kanałach (opcjonalne)
- [ ] **Xsens MTi-670 GNSS/INS**
- [ ] poprawna konfiguracja
- [x] komunikacja CAN
- [x] działający akcelerometr + żyroskop
- [ ] działający GPS
- [ ] **Bosch MM5.10 IMU**
- [ ] komunikacja CAN
- [ ] działający akcelerometr + żyroskop
## Plan działania 🗓
1. [x] Uruchomienie RES-a
1. Założenie RES-a na bolid
2. Podłączenie wiązki
3. Przetestowanie komunikacji z ASMU
2. [x] Uruchomienie steering actuatora
3. [ ] Uruchomienie komunikacji między ASMU i VDCU
4. [x] Uruchomienie ASB
6. [ ] Uruchomienie wszystkich potrzebnych czujników dla AS
7. [ ] Przetestowanie działania `autonomy_system` na ASMU
- [x] misja inspecji
8. [x] Uruchomienie TS w trybie autonomicznym
10. [x] Przetestowanie działania supervision ASB
11. [x] Przeprowadzenie misji inspekcji
12. [ ] Przetestowanie ASMU pod pełnym obciążeniem (z kamerkami)
13. [ ] Shakedown systemu autonomicznego 🎉
## Notatki 📋