---
# System prepended metadata

title: Plan na uruchomienie systemu autonomicznego RT12e

---

# Plan na uruchomienie systemu autonomicznego RT12e
## Systemy potrzebne do uruchomienia AS 🏎
![](https://i.imgur.com/xyKytJB.png)

 - [ ] **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* ![](https://i.imgur.com/3mdJPg3.png)
            - działający *continous monitoring* ![](https://i.imgur.com/61rJMaf.png)
        - 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 📋
