Post on 27-Dec-2021
POLITECHNIKA WROCŁAWSKA
WYDZIAŁ INFORMATYKI I ZARZĄDZANIA
KATEDRA INFORMATYKI I INŻYNIERII SYSTEMÓW
ZINTEGROWANY ALGORYTM
WSPOMAGANIA DECYZJI
W SCENTRALIZOWANYM
INFORMATYCZNYM SYSTEMIE
KIEROWANIA POJAZDEM
Damian Petrecki
promotor:
prof. dr hab. inż. Jerzy Józefczyk
Wrocław 2020
3
SPIS TREŚCI
Spis ilustracji ........................................................................................................................................... 6
Spis tabel .................................................................................................................................................. 8
Spis listingów ......................................................................................................................................... 11
Streszczenie ........................................................................................................................................... 12
Abstract .................................................................................................................................................. 14
1. Charakterystyka problematyki pracy ............................................................................................. 15
1.1. Wstęp ..................................................................................................................................... 15
1.2. Motywacja pracy .................................................................................................................... 17
1.3. Przegląd literatury .................................................................................................................. 18
1.4. Podstawowe informacje ......................................................................................................... 21
1.4.1. Podstawowe pojęcia związane z motoryzacją ............................................................... 22
1.4.2. Podstawowe pojęcia związane z informatyką ................................................................ 34
1.5. Opis pracy .............................................................................................................................. 41
1.5.1. Cel i teza ........................................................................................................................ 41
1.5.2. Zadania badawcze .......................................................................................................... 45
1.5.3. Zakres i ograniczenia ..................................................................................................... 46
1.5.4. Uzyskane rezultaty ......................................................................................................... 48
1.5.5. Wkład pracy w rozwój informatyki ............................................................................... 48
1.5.6. Przegląd zawartości pracy .............................................................................................. 49
2. Opis algorytmu IDSA i założenia projektowe ............................................................................... 50
2.1. Geometryczna mapa otoczenia pojazdu ......................................................................... 51
2.2. Dyskretno-ciągły magazyn danych ................................................................................ 54
2.3. Podział na procesy ......................................................................................................... 58
2.4. Analiza jakościowa – zalety i ograniczenia IDSA ......................................................... 60
2.5. Procesy składowe algorytmu ......................................................................................... 61
2.6. Proces przetwarzania danych prostych .......................................................................... 63
2.7. Proces przetwarzania danych o otoczeniu ..................................................................... 67
2.8. Proces predykcji trajektorii ............................................................................................ 68
2.9. Proces wyznaczania zmiennych sterujących.................................................................. 69
2.10. Proces wysyłania zmiennych sterujących ...................................................................... 70
4
3. Symulacyjne środowisko badawcze .............................................................................................. 72
3.1. Wybór środowiska ................................................................................................................. 72
3.2. Kalibracja pojazdu tradycyjnego ........................................................................................... 76
3.3. Realizacja IDSA na potrzeby badań ...................................................................................... 79
4. Badania symulacyjne algorytmu .................................................................................................... 82
4.1. Podstawy badań symulacyjnych ............................................................................................ 82
4.1.1. Parametry ....................................................................................................................... 82
4.1.2. Wskaźniki oceny ............................................................................................................ 83
4.1.3. Ograniczenia .................................................................................................................. 87
4.2. Plan badań .............................................................................................................................. 88
4.2.1. Wykonanie IDSA ........................................................................................................... 89
4.2.2. Testowanie IDSA ........................................................................................................... 89
4.3. Strojenie IDSA ....................................................................................................................... 95
4.3.1. Dyskretno-ciągły magazyn danych ................................................................................ 95
4.3.2. Proces przetwarzania danych o otoczeniu ..................................................................... 99
4.3.3. Proces predykcji trajektorii .......................................................................................... 101
4.3.4. Proces wyznaczania zmiennych sterujących................................................................ 106
4.3.5. Proces wysyłania zmiennych sterujących .................................................................... 111
4.4. Porównanie zachowania pojazdu sterowanego przy pomocy IDSA i pojazdu referencyjnego .
............................................................................................................................................. 111
4.4.1. Pojazdy skalibrowane .................................................................................................. 112
4.4.2. Pojazd referencyjny bez ECS i TCS ............................................................................ 122
4.4.3. Pojazd referencyjny z komfortowym zawieszeniem ................................................... 124
4.4.4. Pojazd referencyjny z komfortowym zawieszeniem bez ESC i TSC .......................... 126
4.4.5. Pojazd referencyjny ze sportowym zawieszeniem ....................................................... 127
4.4.6. Pojazd referencyjny ze sportowym zawieszeniem bez ESC i TSC ............................. 129
4.4.7. Zwiększenie masy pojazdu o 300[kg] .......................................................................... 131
4.4.8. Zwiększenie masy pojazdu o 300[kg] i przesunięcie środka ciężkości ....................... 134
4.4.9. Pojazd ze zużytymi oponami ....................................................................................... 137
4.4.10. Zmiana bezwładności urządzeń wykonawczych ......................................................... 140
4.4.11. Zmiana stopnia wielomianu aproksymującego ............................................................ 146
4.4.12. Zmniejszona liczba wątków aproksymujących ............................................................ 152
5
4.4.13. Zmiana liczby generacji w procesie predykcji trajektorii ............................................ 155
4.5. Analiza wyników badań ....................................................................................................... 161
4.5.1. Niezaliczone przejazdy ................................................................................................ 161
4.5.2. Pozostałe wskaźniki cząstkowe ................................................................................... 166
4.5.3. Wskaźniki zagregowane .............................................................................................. 170
4.5.4. Podsumowanie ............................................................................................................. 174
5. Zakończenie ................................................................................................................................. 176
5.1. Problem pracy ...................................................................................................................... 176
5.2. Najważniejsze wyniki .......................................................................................................... 177
5.3. Kierunki dalszych prac i rekomendacje wdrożeniowe ........................................................ 177
Literatura .............................................................................................................................................. 180
6
SPIS ILUSTRACJI
Rysunek 1 Układ współrzędnych samochodu [7] .................................................................................. 22
Rysunek 2 Klasyczny napęd na 4 koła .................................................................................................. 23
Rysunek 3 Niezależny napęd na 4 koła ................................................................................................. 24
Rysunek 4 Niezależny napęd dwóch osi ................................................................................................ 24
Rysunek 5 Niezależny napęd na 4 koła ze wspólnym silnikiem ........................................................... 25
Rysunek 6 Schemat ideowy (a) i konstrukcyjny (b) wariatora pasowego [44] ..................................... 26
Rysunek 7 Budowa mechanizmu różnicowego [47].............................................................................. 27
Rysunek 8 Schemat układu kierowniczego [51] .................................................................................... 28
Rysunek 9 Zasada Ackermana [53] ....................................................................................................... 29
Rysunek 10 Model zawieszenia pojedynczego koła [55] ...................................................................... 30
Rysunek 11 Schemat budowy stabilizatora [57] .................................................................................... 31
Rysunek 12 Poziomy autonomii pojazdów [68] .................................................................................... 34
Rysunek 13 Schemat systemu podejmowania decyzji ........................................................................... 36
Rysunek 14 Umieszczenie sensorów na podszybiu samochodu [85] .................................................... 42
Rysunek 15 Model otoczenia wytworzony z użyciem lidaru Velodyne Alpha Prime na podstawie [103]
............................................................................................................................................................... 52
Rysunek 16 Model otoczenia utworzony na podstawie modelu geometrycznego ................................ 53
Rysunek 17 Uproszczony schemat działania magazynu danych ........................................................... 55
Rysunek 18 Przykład działania dyskretno-ciągłego magazynu danych ................................................ 56
Rysunek 19 Wejściowo-wyjściowy schemat systemu sterowania ........................................................ 58
Rysunek 20 Schemat budowy IDSA...................................................................................................... 59
Rysunek 21 Przykładowa realizacja IDSA ............................................................................................ 62
Rysunek 22 Horyzont czasowy używany w punktach 2.1.6 - 2.1.10 ................................................... 63
Rysunek 23 Przetwarzanie danych prostych .......................................................................................... 67
Rysunek 24 Przetwarzanie danych o otoczeniu ..................................................................................... 68
Rysunek 25 Planowanie trajektorii ........................................................................................................ 69
Rysunek 26 Wyznaczania zmiennych sterujących ................................................................................ 70
Rysunek 27 Wysyłanie zmiennych sterujących ..................................................................................... 70
Rysunek 28 Model pojazdu w Matlab/Simulink ................................................................................... 74
Rysunek 29 Symulator samochodu na Iwate Prefectural University ..................................................... 75
Rysunek 30 Krzywa mocy i momentu obrotowego w zależności od prędkości obrotowej silnika ....... 77
Rysunek 31 Ustawienia systemów bezpieczeństwa czynnego .............................................................. 78
Rysunek 32 Wizualizacja funkcji (18) – zależność współczynnika skrętu kół od prędkości ................ 79
7
Rysunek 33 Model przepływu informacji z wykorzystaniem pojazdu referencyjnego ......................... 80
Rysunek 34 Obecny model przepływu informacji z wykorzystaniem IDSA ........................................ 81
Rysunek 35 Test łosia [139] .................................................................................................................. 90
Rysunek 36 Ciasny zakręt ...................................................................................................................... 90
Rysunek 37 Długi zakręt ........................................................................................................................ 91
Rysunek 38 Slalom ................................................................................................................................ 91
Rysunek 39 Przykładowy magazyn dyskretny ...................................................................................... 96
Rysunek 40 Przykładowy magazyn ciągły ............................................................................................ 96
Rysunek 41 Obiekty używane do strojenia procesu przetwarzania danych o otoczeniu ....................... 99
Rysunek 42 Etapy procesu predykcji trajektorii .................................................................................. 102
Rysunek 43 Niezaliczony test łosia ..................................................................................................... 113
Rysunek 44 Zaliczony test łosia .......................................................................................................... 113
Rysunek 45 Przechył samochodów 𝑞1 w eksperymencie 1 ................................................................. 115
Rysunek 46 Zmiana prędkości samochodów 𝑞2 w eksperymencie 1 .................................................. 116
Rysunek 47 Zmiana prędkości samochodów 𝑞2 w eksperymencie 2 .................................................. 118
Rysunek 48 Poślizg kół samochodów 𝑞4 oraz 𝑞5 podczas eksperymentu 3 ........................................ 120
Rysunek 49 Poślizg kół samochodów 𝑞4 oraz 𝑞5 podczas jazdy po różnych podłożach .................... 120
Rysunek 50 Czasy przejazdu 𝑞6 w eksperymencie 4 .......................................................................... 121
Rysunek 51 Przechył samochodu referencyjnego podczas slalomu przy nierównomiernym obciążeniu
............................................................................................................................................................. 137
Rysunek 52 Porównanie domyślnych ustawień opon i ustawień na potrzeby eksperymentów 33 – 36
............................................................................................................................................................. 137
Rysunek 53 Porównanie prędkości maksymalnych dla testu łosia ...................................................... 162
Rysunek 54 Porównanie prędkości maksymalnych dla przejazdu przez ciasny zakręt ....................... 163
Rysunek 55 Porównanie prędkości maksymalnych dla przejazdu przez długi zakręt ......................... 164
Rysunek 56 Porównanie maksymalnych prędkości początkowych dla przejazdu przez slalom ......... 165
Rysunek 57 Czas przejazdu przez slalom w zależności od prędkości początkowej ............................ 166
Rysunek 58 Porównanie liczby lepszych wyników ............................................................................. 169
Rysunek 59 Miary statystyczne wskaźnika bezpieczeństwa ............................................................... 173
Rysunek 60 Miary statystyczne wskaźnika komfortu.......................................................................... 173
8
SPIS TABEL
Tabela 1 Wyjaśnienie oznaczeń z rysunku 8 ......................................................................................... 28
Tabela 2 Objaśnienia zmiennych użytych w modelu zawieszenia pojedynczego koła ......................... 30
Tabela 3 Założenia dotyczące urządzeń wykonawczych ....................................................................... 46
Tabela 4 Wyjaśnienie zmiennych z rysunku 19 .................................................................................... 59
Tabela 5 Oznaczenie zmiennych określających czas w punktach 2.6 - 2.10 ......................................... 63
Tabela 6 Spis zmiennych prostych ........................................................................................................ 64
Tabela 7 Parametry zawieszenia pojazdu referencyjnego ..................................................................... 77
Tabela 8 Wartości wag używanych do obliczenia wskaźników zagregowanych .................................. 87
Tabela 9 Ograniczenia ........................................................................................................................... 88
Tabela 10 Parametry fizyczne samochodu ............................................................................................ 92
Tabela 11 Parametry dotyczące IDSA lub jego składowych ................................................................. 92
Tabela 12 Parametry dotyczące samochodu referencyjnego ................................................................. 93
Tabela 13 Pozostałe parametry .............................................................................................................. 94
Tabela 14 Eksperyment 1 – test łosia - samochody skalibrowane ....................................................... 113
Tabela 15 Eksperyment 2 – ciasny zakręt - samochody skalibrowane ................................................ 116
Tabela 16 Eksperyment 3 – długi zakręt - samochody skalibrowane .................................................. 118
Tabela 17 Eksperyment 4 – slalom - samochody skalibrowane .......................................................... 121
Tabela 18 Eksperyment 5 - test łosia - samochód referencyjny bez ESC i TSC ................................. 122
Tabela 19 Eksperyment 6 – ciasny zakręt – samochód referencyjny bez ESC i TCS ......................... 122
Tabela 20 Eksperyment 7 – długi zakręt – samochód referencyjny bez ECS i TCS ........................... 123
Tabela 21 Eksperyment 8 – slalom - samochód referencyjny bez ECS i TCS .................................... 123
Tabela 22 Eksperyment 9 – test łosia – samochód referencyjny z komfortowym zawieszeniem ....... 124
Tabela 23 Eksperyment 10 – ciasny zakręt – samochód referencyjny z komfortowym zawieszeniem
............................................................................................................................................................. 125
Tabela 24 Eksperyment 11 – długi zakręt – samochód referencyjny z komfortowym zawieszeniem 125
Tabela 25 Eksperyment 12 – slalom – samochód referencyjny z komfortowym zawieszeniem ......... 125
Tabela 26 Eksperyment 13 – test łosia – samochód referencyjny z komfortowym zawieszeniem bez ECS
i ESP .................................................................................................................................................... 126
Tabela 27 Eksperyment 14 – ciasny zakręt – samochód referencyjny z komfortowym zawieszeniem bez
ECS i ESP ............................................................................................................................................ 126
Tabela 28 Eksperyment 15 – długi zakręt – samochód referencyjny z komfortowym zawieszeniem bez
ECS i ESP ............................................................................................................................................ 127
9
Tabela 29 Eksperyment 16 – slalom – samochód referencyjny z komfortowym zawieszeniem bez ECS
i ESP .................................................................................................................................................... 127
Tabela 30 Eksperyment 17 – test łosia – samochód referencyjny ze sportowym zawieszeniem ........ 128
Tabela 31 Eksperyment 18 – ciasny zakręt – samochód referencyjny ze sportowym zawieszeniem . 128
Tabela 32 Eksperyment 19 – długi zakręt – samochód referencyjny ze sportowym zawieszeniem ... 128
Tabela 33 Eksperyment 20 – slalom – samochód referencyjny ze sportowym zawieszeniem ............ 129
Tabela 34 Eksperyment 21 – test łosia – samochód referencyjny ze sportowym zawieszeniem bez TSC
i ESC .................................................................................................................................................... 129
Tabela 35 Eksperyment 22 – ciasny zakręt – samochód referencyjny ze sportowym zawieszeniem bez
TSC i ESC ............................................................................................................................................ 130
Tabela 36 Eksperyment 23 – długi zakręt – samochód referencyjny ze sportowym zawieszeniem bez
TSC i ESC ............................................................................................................................................ 130
Tabela 37 Eksperyment 24 – slalom – samochód referencyjny ze sportowym zawieszeniem bez TSC
i ESC .................................................................................................................................................... 131
Tabela 38 Eksperyment 25 – test łosia – masa pojazdu zwiększona do 1600[kg] .............................. 131
Tabela 39 Eksperyment 26 – ciasny zakręt - masa pojazdu zwiększona do 1600[kg] ........................ 132
Tabela 40 Eksperyment 27 – długi zakręt - masa pojazdu zwiększona do 1600[kg] .......................... 133
Tabela 41 Eksperyment 28 – slalom - masa pojazdu zwiększona do 1600[kg] ................................... 133
Tabela 42 Eksperyment 29 – test łosia – masa pojazdu zwiększona do 1600[kg], środek ciężkości
przesunięty ........................................................................................................................................... 134
Tabela 43 Eksperyment 30 – ciasny zakręt - masa pojazdu zwiększona do 1600[kg], środek ciężkości
przesunięty ........................................................................................................................................... 135
Tabela 44 Eksperyment 31 – długi zakręt – masa pojazdu zwiększona do 1600[kg], środek ciężkości
przesunięty ........................................................................................................................................... 135
Tabela 45 Eksperyment 32 – slalom - masa pojazdu zwiększona do 1600[kg], środek ciężkości
przesunięty ........................................................................................................................................... 136
Tabela 46 Eksperyment 33 – test łosia – zużyte opony ....................................................................... 138
Tabela 47 Eksperyment 34 – ciasny zakręt - zużyte opony ................................................................. 139
Tabela 48 Eksperyment 35 – długi zakręt - zużyte opony ................................................................... 139
Tabela 49 Eksperyment 36 – slalom - zużyte opony ........................................................................... 140
Tabela 50 Eksperyment 37 – test łosia - zmniejszona bezwładność urządzeń wykonawczych ......... 140
Tabela 51 Eksperyment 38 – ciasny zakręt - zmniejszona bezwładność urządzeń wykonawczych .... 141
Tabela 52 Eksperyment 39 – długi zakręt - zmniejszona bezwładność urządzeń wykonawczych ...... 142
Tabela 53 Eksperyment 40 – slalom – zmniejszona bezwładność urządzeń wykonawczych ............. 143
10
Tabela 54 Eksperyment 41 – test łosia - zwiększona bezwładność urządzeń wykonawczych ............ 143
Tabela 55 Eksperyment 42 – ciasny zakręt - zwiększona bezwładność urządzeń wykonawczych ..... 144
Tabela 56 Eksperyment 43 – długi zakręt - zwiększona bezwładność urządzeń wykonawczych ....... 145
Tabela 57 Eksperyment 44 – slalom – zwiększona bezwładność urządzeń wykonawczych............... 145
Tabela 58 Eksperyment 45 – test łosia – stopień wielomianu aproksymującego równy 2 .................. 146
Tabela 59 Eksperyment 46 – ciasny zakręt - stopień wielomianu aproksymującego równy 2 ............ 147
Tabela 60 Eksperyment 47 – długi zakręt - stopień wielomianu aproksymującego równy 2 .............. 148
Tabela 61 Eksperyment 48 – slalom – stopień wielomianu aproksymującego równy 2 ..................... 149
Tabela 62 Eksperyment 49 – test łosia – stopień wielomianu aproksymującego równy 5 .................. 149
Tabela 63 Eksperyment 50 – ciasny zakręt - stopień wielomianu aproksymującego równy 5 ............ 150
Tabela 64 Eksperyment 51 – długi zakręt - stopień wielomianu aproksymującego równy 5 .............. 151
Tabela 65 Eksperyment 52 – slalom – stopień wielomianu aproksymującego równy 5 ..................... 151
Tabela 66 Eksperyment 54 – test łosia - zmniejszona liczba wątków aproksymujących .................... 152
Tabela 67 Eksperyment 55 – ciasny zakręt - zmniejszona liczba wątków aproksymujących ............. 153
Tabela 68 Eksperyment 56 – długi zakręt - zmniejszona liczba wątków aproksymujących ............... 154
Tabela 69 Eksperyment 57 – slalom – zmniejszona liczba wątków aproksymujących ....................... 154
Tabela 70 Eksperyment 58 – test łosia - zmniejszona liczba generacji w procesie predykcji trajektorii
............................................................................................................................................................. 155
Tabela 71 Eksperyment 59 – ciasny zakręt - zmniejszona liczba generacji w procesie predykcji
trajektorii .............................................................................................................................................. 156
Tabela 72 Eksperyment 60 – długi zakręt - zmniejszona liczba generacji w procesie predykcji trajektorii
............................................................................................................................................................. 157
Tabela 73 Eksperyment 61 – slalom – zmniejszona liczba generacji w procesie predykcji trajektorii157
Tabela 74 Eksperyment 62 – test łosia - zwiększona liczba generacji w procesie predykcji trajektorii
............................................................................................................................................................. 158
Tabela 75 Eksperyment 63 – ciasny zakręt - zwiększona liczba generacji w procesie predykcji trajektorii
............................................................................................................................................................. 159
Tabela 76 Eksperyment 64 – długi zakręt - zwiększona liczba generacji w procesie predykcji trajektorii
............................................................................................................................................................. 160
Tabela 77 Eksperyment 65 – slalom – zwiększona liczba generacji w procesie predykcji trajektorii 161
Tabela 78 Porównanie średnich wyników z przejazdów powtarzanych w takich samych warunkach 166
Tabela 79 Miary statystyczne .............................................................................................................. 169
Tabela 80 Porównanie sposobu sterowania pod względem wskaźników zagregowanych .................. 170
Tabela 81 Miary statystyczne wskaźników zagregowanych ............................................................... 172
11
SPIS LISTINGÓW
Listing 1 Pseudokod dyskretno-ciągłego magazynu danych ................................................................. 57
Listing 2 Pseudokod procesu analizy danych prostych ......................................................................... 67
Listing 3 Pseudokod procesu wysyłania zmiennych sterujących .......................................................... 71
Listing 4 Pseudokod uczenia sieci neuronowej ................................................................................... 100
Listing 5 Pseudokod przetwarzania danych o otoczeniu ..................................................................... 101
Listing 6 Pseudokod algorytmu poprawiania trajektorii ...................................................................... 105
Listing 7 Pseudokod procesu wyznaczania zmiennych sterujących .................................................... 109
12
STRESZCZENIE
Prace z pogranicza informatyki i motoryzacji spotyka się raczej w wydawnictwach dotyczących tej
drugiej dziedziny. Najczęściej dotyczą one systemów wizyjnych lub sensorycznych, wykorzystania
sztucznej inteligencji, sieci informatycznych lub rzadziej – systemów wsparcia kierowcy. Niniejsza
rozprawa wypełnia lukę dotyczącą systemowego spojrzenia na kierowanie pojazdem z wykorzystaniem
metod znanych w informatyce. Jej motywacją są problemy wynikające ze stosowania wielu systemów
wsparcia kierowcy, wypełniających różne zadania, ale często używających tych samych czujników
i urządzeń wykonawczych. Zamiast tego, w pracy postanowiono skoncentrować się na zagregowanych
wskaźnikach oceny – komforcie i bezpieczeństwie jazdy – oraz zcentralizowanym systemie sterującym
pojazdem, którego celem jest optymalizacja tych wskaźników. Postawiono tezę, mówiącą
że scentralizowany algorytm będący jedynym decydentem w pojeździe może działać lepiej od obecnie
stosowanych algorytmów szczegółowych, mimo że nie rozwiązuje wprost tych samych problemów.
W celu zbadania tezy opracowano i zaimplementowano IDSA – Integrated Driver Support Algorithm –
autorski algorytm heurystyczny, rozwiązujący problem sterowania pojazdem w czasie rzeczywistym
z wykorzystaniem sygnału referencyjnego od kierowcy. Jego zadaniem jest agregowanie wszystkich
dostępnych informacji – od kierowcy, z pojazdu i z otoczenia – do postaci wspólnego modelu danych,
a następnie wykorzystywanie tych informacji do sterowania wszystkimi urządzeniami wykonawczymi
obecnymi w pojeździe. IDSA jest algorytmem nietypowym – nie jest sekwencyjny ani iteracyjny, a jego
wyjście nie jest bezpośrednio powiązane z wejściem. Zamiast tego wykorzystuje on 6 niezależnych
procesów uruchamianych asynchronicznie i korzystających ze wspólnego magazynu danych.
Na potrzeby IDSA opracowano autorską metodę modelowania trójwymiarowego otoczenia pojazdu
i aktualizacji tworzonego w ten sposób modelu, bazując na heterogenicznych i asynchronicznych
sensorach oraz własną reprezentację danych zapewniającą interpolację i ekstrapolację danych
dyskretnych. W ten sposób zapewniono elastyczność rozbudowy algorytmu, niezależność
od właściwości fizycznych sterowanego pojazdu, a także zbioru używanych w nim sensorów
i realizatorów. Co ważne, IDSA realizuje zadanie systemu decyzyjnego, a nie wspomagającego decyzje,
czyli dysponuje wyłączną możliwością kontroli wszystkich urządzeń wykonawczych w pojeździe.
Jednak z punktu widzenia kierowcy działa on właśnie jak system wspomagający, którego interwencje
są zauważalne wyłącznie w sytuacjach krytycznych.
Do oceny IDSA zaproponowano 7 wskaźników oceny cząstkowej, niewywodzących się od wskaźników
oceny używanych w istniejących systemach wsparcia. Obliczono ich wartości w symulowanym
środowisku testowym podczas 1234 jazd testowych samochodem sterowanym z wykorzystaniem IDSA
lub utworzonym i skalibrowanym na potrzeby tej pracy samochodem wyposażonym w rozwiązania
referencyjne. W tym celu zaproponowano 4 trasy testowe, 13 układów eksperymentów oraz różne
warunki szczegółowe. Na ich podstawie udało się pokazać, że wykorzystanie IDSA może zmniejszyć
samo prawdopodobieństwo wypadku w badanych warunkach z 0,15 do 0,04. Na podstawie
przeprowadzonych eksperymentów obliczono i porównano pomiędzy testowanymi samochodami
wartości dwóch zaproponowanych zagregowanych wskaźników oceny – wyrażających bezpieczeństwo
jazdy i komfort jazdy. Dzięki wykorzystaniu IDSA, ogólny, zaproponowany wskaźnik bezpieczeństwa
wzrósł o 24%, a ogólny wskaźnik komfortu – o 81,7%. Prowadzi to do konkluzji, że IDSA,
jako pojedynczy zintegrowany algorytm agregujący i realizujący zadania obecnie stosowanych
13
algorytmów szczegółowych – odpowiedzialnych za wsparcie kierowcy i zapewnienie bezpieczeństwa –
jest od nich obiektywnie i mierzalnie lepszy, pod względem badanych kryteriów.
W ostatniej części pracy wskazano także rekomendacje badawcze i wdrożeniowe dotyczące dalszych
prac nad algorytmem.
14
ABSTRACT
Papers from the borderline of computer science and automotive are rather found in publications
concerning the latter field. They often concern computer vision, sensor systems, artificial intelligence
applications, computer networks, or only rarely, driver support systems. This document fills the gap
concerning a system perspective on driving vehicles using computer science methods. It is motivated by
issues resulting from the use of multiple driver support systems, fulfilling different tasks, but often using
the same sensors and actuators. Instead, in the thesis, it is decided to focus on aggregated assessment
indicators – driving comfort and driving safety – and a centralized vehicle control system to optimize
those indicators. The thesis has been formulated that the centralized algorithm, being the only decision-
maker in the vehicle, can perform better than particular algorithms currently in use, even though it does
not explicitly solve the same issues.
To examine the thesis, IDSA – Integrated Driver Support Algorithm – a proprietary heuristic algorithm
that solves the problem of real-time vehicle control using a reference signal from a driver has been
developed and implemented. Its task is to aggregate all available information – from the driver, the
vehicle, and its surrounding – into a common data model, and then use the model to control all the
actuators present in the vehicle. IDSA is an atypical algorithm – it is not sequential or iterative, and its
output is not directly correlated to the input. Instead, it uses six independent processes running
asynchronously and sharing a common data storage. For the needs of IDSA, a novel method has been
developed to model the vehicle’s three-dimensional surrounding, update this model using heterogeneous
and asynchronous sensors, and also a novel data representation to ensure interpolation and extrapolation
of discrete data. This way, the flexibility of the algorithm’s development, independence from the
physical properties, sensors, and actuators of the controlled vehicle, was ensured. What is essential,
IDSA performs the task of a decision-making system, not a decision-supporting one, so it has the
exclusive ability to control all actuators in the vehicle. However, from the driver’s perspective, the
algorithm acts like an assistance system, whose interventions are noticeable in critical conditions only.
For the evaluation of IDSA, seven indicators of sub-assessments were proposed, which are not derived
from the assessment indicators used for existing support systems. Their values were calculated in a
simulated test environment during 1234 test drives in a car driven with IDSA or a car built and calibrated
for this task with reference solutions. For the purpose of those experiments, 4 test tracks, 13 groups of
experimental conditions, and multiple specific conditions were proposed. On their basis, it was possible
to demonstrate that using IDSA can reduce the probability of an accident in the tested conditions from
0.15 to 0.04. Based on the experiments, the values of the two proposed aggregated assessment indicators
– expressing driving comfort and safety - were calculated and compared between the vehicles tested. By
using IDSA, the overall proposed safety indicator has increased by 24% and the overall proposed
comfort indicator by 81,7%. This leads to the conclusion that IDSA, as a single integrated algorithm that
aggregates and performs the tasks of the particular algorithms currently used – responsible for driver
support and safety assurance – is objectively and measurably better than them in terms of the examined
criteria.
In the last part of the document, research, and implementation recommendations for further developing
the IDSA were also indicated.
15
1. CHARAKTERYSTYKA PROBLEMATYKI PRACY
1.1. Wstęp
W celu zrozumienia przedmiotu tej rozprawy potrzebne jest krótkie przybliżenie wycinka świata
rzeczywistego, którego dotyczy. Sam zaproponowany w tej pracy algorytm został zaprojektowany
do użytku w poruszających się urządzeniach mechanicznych sterowanych przez człowieka, jednak
na potrzeby niniejszej pracy, badania przeprowadzono na wybranym pojeździe mechanicznym –
samochodzie.
Samochód, jaki znamy, został opatentowany w 1886 roku przez Carla Benza. Wtedy było to urządzenie
mechaniczne z silnikiem spalinowym i elektrycznym zapłonem. Z czasem w motoryzacji zaczęły
pojawiać się kolejne urządzenia elektryczne, a później elektroniczne i informatyczne. Komputery
pojawiły się dopiero w roku 1941 i na początku ważyły setki lub nawet tysiące kilogramów. Choć
motoryzacja, rozwój której napędzały między innymi burzliwe czasy wojenne, była już o wiele bardziej
zaawansowana, używanie w czasie jazdy tak ciężkiego, a poza tym ogromnego i energochłonnego
urządzenia nie przychodziło zapewne nikomu do głowy.
Za prekursora połączenia tych dwóch światów uważa się firmę Bosch, która w 1979 roku po raz
pierwszy zastosowała swój sterownik o nazwie Motronic w dwóch modelach BMW, w celu zarządzania
doborem składu mieszanki paliwowej oraz układu zapłonowego z wykorzystaniem realizowanego przez
komputer algorytmu. Co ciekawe, wiele urządzeń obecnych w dzisiejszych samochodach i opartych
na elektronicznych sterownikach wyposażonych w zaawansowane algorytmy, istniało już wcześniej.
Przykładowo, pierwszy hybrydowy układ napędowy powstał już w 1902 roku, a pierwszy tempomat
został wprowadzony na rynek w roku 1957. Co bardziej dla tej pracy istotne, pierwszy system, który
pomagał kierowcy, a tym samym zwiększał bezpieczeństwo jazdy, to zastosowany przez firmę Jensen
w 1966 roku ABS, w którego ducha elektroniki tchnęła w roku 1979 firma Bosch, specjalnie dla
Mercedesa W126, czyli luksusowej „Klasy S” II generacji. Można śmiało powiedzieć, że od tego czasu
rozwój motoryzacji coraz bardziej związany jest z systemami elektronicznymi, czyli zestawami
składającymi się z komputerów w sensie definicji Von Neumanna, gdzie rolę urządzeń wejścia/wyjścia
pełnią czujniki i urządzenia wykonawcze. W roku 1991 zaproponowano klientom aktywny tempomat,
w 2001 – pierwszy pasywny, w 2003 – aktywny system wspomagający utrzymanie na pasie ruchu, a od
2017 roku samochody potrafią choć przez chwilę poruszać się w zmiennym środowisku w pełni
samodzielnie. Co bardzo istotne, w większości były i wciąż są to systemy mechaniczno-elektroniczno-
informatyczne, kupowane przez firmy z branży motoryzacyjnej od poddostawców, a ich integracja
nigdy nie została dopracowana.
W roku 1981 zaproponowano, a w 1985 wdrożono do seryjnej produkcji magistralę CAN, która miała
zapewnić integrację informatyczną wszystkich systemów elektronicznych, a współcześnie ten standard
wypierany jest przez swoich bardziej dopracowanych następców (np. FlexRay [1]). Dzięki temu, dziś
możliwe, choć wciąż niepopularne, jest wykorzystanie tego samego sensora do różnych zadań,
np. jednej kamery w systemie wykrywającym zjechanie z pasa ruchu (i ingerującym w układ
kierowniczy), w systemie wykrywającym nadejście nocy (i uruchamiającym światła), czy w systemie
wykrywającym nadjeżdżające z naprzeciwka samochody (i dostosowującym ustawienie tych świateł).
Pozostała jeszcze kwestia integracji mechanicznej. Często zdarza się, że kilka różnych systemów
16
wsparcia, czasami pochodzących od różnych poddostawców i używających różnych form komunikacji
pomiędzy swoimi komponentami, ostatecznie steruje tym samym urządzeniem wykonawczym. Żeby
długo nie szukać, system ABS zapobiega uślizgowi kół sterując pompą hamulcową, a system ESP
używa tego samego urządzenia do kontroli toru jazdy podczas pokonywania zakrętów. Oczywistym
i dziś już popularnym rozwiązaniem jest połączenie tych dwóch systemów wsparcia w jeden, jednak jak
zostanie pokazane w kolejnych częściach tej pracy, problem ten nie został jeszcze rozwiązany w sposób
kompleksowy.
Niniejsza praca pokazuje propozycję połączenia systemów zarządzających samochodem, zarówno
sterujących, jak i wspomagających sterowanie, przy wykorzystaniu zdobyczy współczesnej
informatyki. Żeby to osiągnąć, zaproponowano algorytm heurystyczny, łączący role wszystkich
systemów wsparcia kierowcy obecnych we współczesnych samochodach i jednocześnie zastępujący je
wszystkie. Z technicznego punktu widzenia jest on systemem decyzyjnym – sterującym samochodem
na wyłączność, jednak jego użytkownik (kierowca samochodu) nie zdaje sobie z tego sprawy. Będąc
bardziej dokładnym, przy użyciu modelowania metodą czarnej skrzynki, wygląda on faktycznie
na system decyzyjny – przyjmuje polecenia od użytkownika, odczytuje stan pojazdu i mierzy otoczenie,
a ostatecznie wytwarza sygnały sterujące dla wszystkich urządzeń wykonawczych, podczas gdy sam
użytkownik nie ma możliwości ingerencji w zachowanie pojazdu z pominięciem tego systemu.
Z punktu widzenia użytkownika jest to jednak system wspomagający – to kierowca w czasie
rzeczywistym, decyduje o kierunku i prędkości jazdy, a system pomaga mu tylko uniknąć kolizji,
zachować przyczepność przy niekorzystnych warunkach oraz zwiększa wygodę podróży. Jako, że
istniejące obecnie rozwiązania nazywa się właśnie systemami wspomagającymi, mimo że
w określonych sytuacjach to one sterują samochodem i kierowca nie ma na nie bezpośredniego wpływu,
rozwiązanie przedstawione w tej pracy również zakwalifikowano, jako wspomagające.
Warto w tym miejscu zastanowić się, czym jest wspomaganie kierowcy? Na pierwszy rzut oka,
kierowca może mieć pełną kontrolę nad samochodem. Przykładowo, wspomniany system ABS
moduluje siłę hamowania, czyli wykonuje pracę, którą kierujący pojazdem może wykonać sam przy
użyciu pedału hamulca. ABS robi to jednak bardzo dokładnie i bardzo szybko. Mówiąc inaczej, nawet
najbardziej doświadczony kierowca nie będzie w stanie tak precyzyjne operować hamulcem, tak szybko
uderzać w jego pedał, a także tak dokładnie nie uwzględni stopnia zużycia opon, rodzaju nawierzchni,
po której się porusza, czy dziesiątek innych czynników. Załóżmy jednak, że znalazłby się kierowca,
który wykona to zadanie samodzielnie. Nawet on nie będzie jednak w stanie działać jak system ESP,
który przyhamowuje każde koło oddzielnie. Musiałby w tym celu jednocześnie obsługiwać 4 oddzielne
pedały hamulca i kilka innych urządzeń.
Pokazany przykład jest oczywiście dość skrajny, jednak statystyki [2] wskazują wyraźnie, że kierowcy
często nie radzą sobie z dużo prostszymi zadaniami – podczas awaryjnego hamowania nie naciskają
pedału hamulca z pełną siłą przez cały jego przebieg, „przegapiają” punkt hamowania przed
przeszkodzą, opuszczają niezamierzenie swój pas ruchu, nie reagują na wkraczających na drogę
pieszych czy przebiegające zwierzęta itd., itp.. W celu rozwiązania tych problemów (oraz wielu innych)
powstały systemy wspomagające, a ich obecność coraz częściej dziś jest wymagana przez prawo lub ma
wpływ na decyzje klientów kupujących samochody, bardziej niż moc silnika, komfort jazdy czy rozmiar
bagażnika.
17
W tytule pracy zamiast sterowania występuje słowo „kierowanie”. Należy je rozumieć jako całościowe
zadanie podejmowania i realizowania wszystkich decyzji mających wpływ na zachowanie pojazdu –
realizowane zarówno przez zastosowane algorytmy, jak i kierowcę. Zastosowano słowo „kierowanie”,
ponieważ pierwszym decydentem jest właśnie kierowca, a drugim – proponowany algorytm.
1.2. Motywacja pracy
Pomysł na tę pracę powstał wiele lat temu podczas jazdy samochodem. Był to samochód marki Peugeot
wprowadzony do produkcji w roku 2007, wyposażony w wiele systemów elektronicznych. Na przykład,
był on wyposażony w kamerę, która służyła do oceniania jasności otoczenia i pozwalała dedykowanemu
sterownikowi automatycznie uruchomić światła mijania, gdy zapadał zmrok. Oprócz tego,
na wyposażeniu znajdował się także czujnik oparty na diodach elektroluminescencyjnych i sensorze
generowanego przez nie światła, który miał na celu wykrywanie kropel wody na szybie czołowej. Po jej
wykryciu dedykowany w tym celu komputer uruchamiał wycieraczki. Obydwa wspomniane systemy
elektroniczne podłączone były do jednej sieci informatycznej – magistrali CAN. Magistrala ta działa
w trybie rozgłoszeniowym, więc każdy odbiornik jest w stanie odczytać dane z każdego nadajnika.
Teoretycznie więc mogły one korzystać wzajemnie z wytworzonych przez siebie danych. W praktyce
niemożliwe było skonfigurowanie samochodu tak, żeby automatycznie uruchamiał światła mijania
podczas opadów deszczu, co jest wymagane przez prawo o ruchu drogowym. Podczas kilku
eksperymentów z różnymi samochodami oraz rozmów przeprowadzonych z projektantami systemów
informatycznych przeznaczonych do samochodów, oraz z mechanikami obsługującymi je później,
okazało się, że niektóre auta lepiej integrują różne swoje systemy, a inne gorzej. Przykładowo Mazda
wprowadzona do sprzedaży w 2017 roku nadal nie została wyposażona w funkcję włączania świateł
podczas opadów deszczu, a samochody grupy Volkswagen, od co najmniej 6 lat, w czasie deszczu robią
znacznie więcej - zmniejszają moc silnika podczas gwałtownego ruszania. Przy dalszym wgłębianiu się
w temat, okazało się, że większość firm z branży motoryzacyjnej kupuje tego typu systemy od kilku
firm: Siemens, Bosch, Delphi, itp. Ich producenci coraz częściej kuszą swoich klientów właśnie
integracją pomiędzy różnymi rozwiązaniami, co ma na celu wprowadzenie nowych funkcjonalności,
zmniejszenie kosztów i masy, a także ułatwienie implementacji i budowy samochodu, poprzez
zmniejszenie liczby elementów składających się na zbiór różnych systemów wsparcia kierowcy.
Współcześnie firmy motoryzacyjne coraz więcej zasobów przeznaczają na własne badania w celu
uniezależnienia się od tych poddostawców.
Dalsza analiza tego zagadnienia wskazała na kolejny problem – większość tego typu systemów,
wyprodukowanych przez firmy motoryzacyjne lub poddostawców, to komercyjne, zamknięte
rozwiązania. Często unika się nawet ich patentowania, żeby nie ujawniać ich konstrukcji
i zastosowanych metod. Od tej reguły istnieją oczywiście wyjątki. Najbardziej obiecującym jest
w chwili obecnej system AUTOSAR, czyli AUTomotive Open System Architecture [3]. Co prawda
nadal jest to produkt komercyjny, jednak jest również otwarty i rozwijany nie tylko przez firmy z branży
motoryzacyjnej, ale także przez ośrodki naukowe. Powstaje on przy ogromnym nakładzie pieniężnym,
a jego celem jest stworzenie architektury sprzętu i oprogramowania integrującego różne kompatybilne
rozwiązania. Wciąż jednak nie istnieje system wsparcia ani sterowania, który zamiast łączyć różne
rozwiązania, po prostu samodzielnie wypełni ich rolę. Taki system musiałby zapewniać sterowanie
18
podstawowymi (związanymi z jazdą) funkcjami samochodu, wspomagać kierowcę oraz udostępniać
swoje dane i interfejs informatyczny dla aplikacji komputerowych sterujących pozostałymi funkcjami.
Nie ma podstaw, żeby ograniczać zastosowanie takiego rozwiązania do klasycznych samochodów.
Mogłoby ono być, na przykład, podstawą dla samochodów autonomicznych. Dziś tego typu funkcje
realizuje się przez system wsparcia, który fizycznie kręci kierownicą, steruje mocą silnika i hamulcem,
ale zadanie, przykładowo, nieblokowania kół podczas hamowania czy zarządzania skrzynią biegów
wciąż wykonywane są przez dedykowane komputery. Nic nie stoi na przeszkodzie, żeby
w proponowanym rozwiązaniu funkcje autonomiczne były tylko kolejnymi krokami algorytmu.
Patrząc na to z innej strony, taki algorytm musi być gotowy do działania w różnych pojazdach –
np. tańszych - z ograniczoną liczbą czujników lub w pojazdach o różnych wymiarach, masach, silnikach
i zbiorach urządzeń wykonawczych. Można nawet pokusić się o stwierdzenie, że skoro taki system musi
być przystosowany do słabszych lub mocniejszych silników, to jego ogólna architektura powinna być
też przygotowana na np. większą liczbę osi pojazdu lub zupełnie inną jego konstrukcję. Teoretycznie
jego zastosowanie powinno być możliwe w dowolnym, kierowanym przez człowieka, poruszającym się
urządzeniu – niekoniecznie poruszającym się po lądzie z wykorzystaniem kół. Ten aspekt nie został
jednak przeanalizowany podczas niniejszych badań.
To wszystko łącznie zaowocowało pomysłem na zintegrowany algorytm wspomagania operatora
poruszającego się urządzenia, które na potrzeby tej pracy został ograniczony do algorytmu
wspomagania decyzji w systemie kierowania pojazdem. Jak zostanie pokazane w kolejnym
podrozdziale, ten temat nie jest popularny w opracowaniach naukowych, co pozostawia lukę badawczą
do wypełnienia. Co ważne, niniejsza praca nie przedstawia rozwiązania inżynierskiego, a nawet
mechanicznego. Zamiast tego proponuje i bada algorytm heurystyczny powstały z nowatorskiego
połączenia istniejących technik i rozwiązań informatycznych.
Na potrzeby niniejszej pracy wprowadza się akronim od angielskiej nazwy Integrated Driver Support
Algorithm, czyli IDSA. Jest on używany do określenia autorskiego, zintegrowanego algorytmu
opracowanego w ramach tej pracy i w celu uzasadnienia postawionej w niej tezy.
1.3. Przegląd literatury
Istniejące źródła literaturowe można podzielić na kilka grup. Bardzo powszechne i niestety niezbyt
przydatne z badawczego punktu widzenia są źródła o charakterze marketingowym – promujące
konkretny system lub rozwiązanie klientom końcowym lub firmom motoryzacyjnym. Niestety często
pojawiają się one w czasopismach naukowych, jak np. praca [4]. Spośród tej grupy można wyróżnić
prezentacje konferencyjne, jak [3], których celem jest zainteresowanie potencjalnych
współpracowników, a nie dzielenie się otrzymanymi wynikami badań. Drugą grupą jest ogromny zbiór
prac, co do których można poddawać w wątpliwość ich naukowy charakter. Są jednak bardzo cenne,
ponieważ ustalają popularne standardy i rozwiązania, a także stanowią wygodny przegląd innych
istniejących publikacji. I tak na przykład, prezentowana w ramach IDSA koncepcja mapowania
otoczenia jest w pewnym sensie rozwinięciem idei algorytmu Simultaneous Localization And Mapping
(SLAM), który został zaprezentowany już w roku 1986 w pracy [5], ale bardzo dobry, choć właściwie
niewiele nowego wnoszący opis, można też znaleźć w młodszej o 20 lat pracy [6]. Innym przykładem
19
jest powszechnie używany standard lokalizowania obiektów zewnętrznych względem pojazdu SAE
J760 [7]. Idąc dalej w tym kierunku, ogromnym problemem niniejszej pracy jest brak opracowań
typowo naukowych z danej dziedziny. Zamiast nich można znaleźć wspomniane teksty marketingowe,
niezweryfikowane artykuły popularno-naukowe, często publikowane w ramach internetowych blogów,
oraz patenty.
I tak na przykład, tematykę sterowników wielodomenowych przedstawił jeden z ich producentów w [8],
a inny interesujący opis znajduje się w [9]. Można też trafić na całe konferencje skupione wokół
platform informatycznych w motoryzacji, jak np. Automotive Computing Conference, jednak
przedstawione na nich prace, np. [10, 11, 12, 13, 14], nie zostały zrecenzowane, są bardzo techniczne,
a ich autorzy piastują wysokie stanowiska nie na uczelniach i w ośrodkach badawczych, ale w firmach
z branży motoryzacyjnej lub elektronicznej, takich jak kolejnko: Volkswagen, Bosch, ARM, QTronic
oraz Volvo. Odnośnie patentów, to ważne są dzisiaj na przykład patenty składające się na tzw.
„Autopilota” firmy Tesla, np. [15] czy [16], a ich wagę określa fakt, że dzięki temu rozwiązaniu bardzo
popularny stał się temat pojazdów autonomicznych. Co istotne, ich właściciel uwolnił niedawno swoje
patenty udostępniając bezpłatne korzystanie z nich innym firmom. Poza Teslą warto wspomnieć
o rozwiązaniach będących częścią współczesnych systemów elektronicznych w motoryzacji,
np. skoncentrowany na użyciu systemów wizyjnych w motoryzacji [17] lub sugerujący użycie systemu
lidarowego [18].
Przechodząc do prac stricte naukowych, należy wspomnieć o praktyce dominującej i widocznej już
w dwóch poprzednio zacytowanych pracach, tj. publikacjach dotykających tylko fragmentu problemu,
a pomijających podejście holistyczne. Wystarczy spojrzeć na dominujące tematy konferencji
o tematyce motoryzacyjno-informatycznej: systemy sensoryczne, systemy wizyjne, sztuczna
inteligencja w motoryzacji, napędy elektryczne, ekologia napędów spalinowych, systemy wsparcia
kierowców, komunikacja Car2X, inteligentny transport oraz oczywiście – pojazdy autonomiczne.
Przykładowo, na konferencji VEHICULAR 2019 przedstawiono m.in. następujące prace. Praca [19]
przedstawia nowatorskie podejście do przewozu towarów. Autorzy skupiają się na własnym algorytmie,
którego celem jest podzielenie transportu międzymiastowego i wewnątrzmiastowego, w celu
zwiększenia jego efektywności i obniżenia negatywnego wpływu na środowisko. Praca [20] prezentuje
wdrożone na terenie ośrodka badawczego rozwiązanie Car2X, bazujące na uzupełnianiu siatki urządzeń
nadawczo-odbiorczych przy pomocy dronów, oraz prezentuje autorski algorytm sterowania tymi
dronami z uwzględnieniem ich ograniczeń. Praca [21] pokazuje wykorzystanie autonomicznych
lub zdalnie sterowanych ciężarówek w kopalniach, w warunkach zagrażających życiu kierowców.
W temacie systemów wspomagających pojawiły się na tej konferencji następujące prace. Praca [22]
przedstawia algorytm analizujący trajektorię samochodu podczas awaryjnego hamowania
ze skręconymi kołami. Praca [23] prezentuje i analizuje nowy sposób informowania kierowców
o zagrożeniach, przy pomocy silników wibracyjnych wbudowanych w fotel kierowcy. Praca [24] skupia
się na wykrywaniu pojazdów zbliżających się do skrzyżowania, z wykorzystaniem infrastruktury
Car2X. Praca [25] skupia się na ograniczeniu ilości danych powstałych przy wykorzystaniu systemów
wizyjnych, przy pomocy modelu geometrycznego zawierającego znalezione obiekty, zamiast metody
dominującej - macierzy wokseli. Jak widać, cztery ostatnie rozwiązania można zaimplementować
w pojazdach samochodowych, jednak co bardzo ważne dla tej pracy, będą to kolejne systemy
20
w skomplikowanych już przecież samochodach. W odpowiedzi na ten problem wygłoszono tylko dwie
prezentacje – pierwsza przedstawiała wspomniany system AUTOSAR [3], a druga [26] opisywała
system IDSS (ang. Integrated Driver Support System) realizujący IDSA. Na jej podstawie został również
wydany artykuł [27].
Podobny trend utrzymuje się również w wydawnictwach. Kiedy spojrzeć na najnowsze numery
najbardziej liczących się czasopism (pod względem Impact Factor) o tematyce związanej
z motoryzacją, widać bardzo wyraźne zainteresowanie narzędziami informatycznymi, o wiele większe
niż zagadnieniami matematyczno-fizycznymi, mechanicznymi czy innymi obecnymi w tych samych
czasopismach kilka lat temu. Przykładowo praca [28] prezentuje system wizyjny dedykowany dla
samochodów autonomicznych, [29] opisuje wykorzystanie sieci neuronowych do wykrywania
poruszających się obiektów i, co ważne, ich cech, na podstawie nagrania wideo, również w kontekście
zastosowania w pojeździe autonomicznym, a praca [30] skupia się na budowaniu trajektorii pojazdów
w otoczeniu pojazdu autonomicznego. Trochę inaczej przedstawia się przegląd literatury o tematyce
typowo informatycznej. Podczas gdy prace dotyczące motoryzacji chętnie czerpią z systemów widzenia
komputerowego, algorytmiki, badań operacyjnych i sieci neuronowych, to w czasopismach o tematyce
typowo informatycznej rzadziej widać artykuły dotykające motoryzacji, jak np. skupiony
na zarządzaniu flotą pojazdów [31]. Artykułów związanych z holistycznym sterowaniem pojazdami
właściwie się nie spotyka.
Podobny trend da się zauważyć podczas analizy najwyżej punktowanych czasopism obecnych
w wykazie Ministra Nauki i Szkolnictwa Wyższego. Szukając w czasopismach zakwalifikowanych
do kategorii „informatyka techniczna i telekomunikacja”, pomijając kategorię „inżynieria lądowa i
transport”, „automatyka, elektronika i elektrotechnika” albo „inżynieria mechaniczna”, trudno znaleźć
jakikolwiek artykuł z dziedziny podobnej do niniejszej pracy. Jednak po zawężeniu listy wydawnictw
do opisanych wszystkimi powyższymi kategoriami, na liście zostają takie tytuły, jak „Archives of
Computational Methods in Engineering”, „Computer Methods in Applied Mechanics and Engineering”,
czy „International Journal of Robotics Research”. W ich najnowszych lub przynajmniej tegorocznych
wydaniach można znaleźć ciekawe artykuły, poruszające problemy znane w motoryzacji
lub pojawiające się w niniejszej pracy. Należy jednak uczciwie przyznać, że stanowią one niewielki
odsetek wszystkich publikacji. Na tej podstawie można śmiało powiedzieć, że poruszany w tej pracy
temat jest wysoce interdyscyplinarny oraz że podobne tematy są zaniedbane w wydawnictwach typowo
informatycznych, ale za to bardzo popularne, i wciąż zachowujące informatyczny charakter,
w wydawnictwach związanych z mechaniką, robotyką lub inżynierią maszyn.
Dla przykładu, praca [32] opisuje metody wykrywania pojazdów na podstawie systemów wizyjnych
w trudnym środowisku z cieniami, krawędziami i przysłoniętymi fragmentami sceny. Artykuł [33]
zwraca uwagę na problem złożoności obliczeniowej analizy sceny w postaci chmury punktów
i prezentuje autorskie rozwiązanie wykrywania powierzchni i elementów skończonych oraz
reprezentacji sceny w postaci modelu geometrycznego. Artykuł [34] skupia się na metodach
symulacyjnych zachowania opon samochodowych na mokrej, nierównej nawierzchni (ze szczególnym
uwzględnieniem zachowania podczas tzw. hydroplaningu). Artykuł [35] pokazuje autorską metodę
określania prędkości poruszania się obserwatora korzystającego z kamery, na podstawie analizy
zachowania poruszających się nieliniowo obiektów w otoczeniu. Artykuł [36] prezentuje oryginalną
21
metodę wykrywania trajektorii poruszającego się obiektu z jednoczesnym modelowaniem terenu, po
którym się porusza.
Podsumowując przegląd literatury należy zauważyć następujące fakty. Przede wszystkim, dużo źródeł
trudno zaliczyć do prac naukowych - nie wnoszą nic nowego, nie są recenzowane, a ich wydawnictwa
są często popularno-naukowe. Na konferencjach prezentuje się komercyjne rozwiązania (choć czasami
otwarto-źródłowe), a ich autorami są działy PR dużych firm, szefowie działów niezaangażowani
w pracę naukową lub po prostu dziennikarze.
Jeśli jednak ograniczymy się wyłącznie do prac naukowych, możemy zauważyć, jak wiele źródła
o profilu motoryzacyjnym czerpią z rozwiązań informatycznych. Obecnie zdecydowana większość
artykułów w tego typu czasopismach, magazynach i na konferencjach, opisuje rozwiązania korzystające
ze zdobyczy informatyki: algorytmiki, przetwarzania obrazów, sztucznej inteligencji, teorii sterowania
itd. Z drugiej strony, w źródłach o profilu informatycznym tego typu zagadnienia pojawiają się rzadko
– raz na kilka wydań. Może to oznaczać jedną z trzech rzeczy – naukowcy-informatycy publikują
w czasopismach dotyczących motoryzacji, naukowcy związani z motoryzacją nabywają wiedzę
informatyczną albo obie grupy współpracują ze sobą w ramach wspólnych badań. W każdym razie
widać wyraźnie, że współczesna motoryzacja i informatyka idą ze sobą w parze i ta pierwsze potrzebuje
tej drugiej, i wykorzystuje jej rozkwit do swojego rozwoju.
Niezależnie od powyższych spostrzeżeń, warto zwrócić uwagę na jeszcze jeden wniosek płynący
z przeglądu literatury. Zdecydowanie dominują wyniki badań poszczególnych aspektów współczesnej
motoryzacji – są to artykuły o rozpoznawaniu obiektów, wyznaczaniu trajektorii, wykorzystaniu sieci
Car2Car oraz Car2X, propozycje kolejnych systemów mających na celu wspomaganie kierowcy czy
sposoby monetyzacji gromadzonych przez samochody danych. Brakuje za to tekstów dotyczących
podejścia holistycznego. Jedynym znaczącym wyjątkiem jest system AUTOSAR, którego celem jest
stworzenie platformy umożliwiającej wspólne uruchamianie istniejących systemów wsparcia kierowcy
lub sterowania.
Tak więc brakuje prac naukowych, skoncentrowanych na teorii i badaniach, których przedmiotem
byłyby rozwiązania informatyczne do zastosowania w motoryzacji w celu całościowego sterowania
pojazdem. Te prace, które już się pojawiają, opisują systemy jazdy autonomicznej, korzystające
z innych znanych systemów (jak ABS, sterowanie aktywnym zawieszeniem) lub proponują nowe
(obliczanie trajektorii, analiza otoczenia). Prawdopodobnie nie ma pracy teoretycznej, ale jednocześnie
popartej badaniami przeprowadzonymi na implementacji proponowanego rozwiązania, które w sposób
całościowy rozwiązywałoby problem wspomagania kierowcy, czyli sterowałoby całym pojazdem
w sposób zlecany w czasie rzeczywistym przez kierowcę, z uwzględnieniem wiedzy o otoczeniu.
Badania, dotyczące prezentowanego w niniejszym dokumencie IDSA zostały opublikowane we
wspomnianych pracach [26] oraz [27], ale także w [37, 38, 39].
1.4. Podstawowe informacje
W celu lepszego zrozumienia przedmiotu tej pracy, potrzebne są podstawowe informacje dotyczące
zagadnień związanych z informatyką oraz motoryzacją. Zostaną one przedstawione w niniejszym
podrozdziale.
22
1.4.1. Podstawowe pojęcia związane z motoryzacją
Ten podrozdział został podzielony na dwie części. Pierwsza z nich dotyczy zagadnień związanych
z motoryzacją.
Standard SAE J760
W niniejszej pracy używany jest układ współrzędnych zaczepiony w geometrycznym środku bryły
pojazdu, a jego kierunek oraz obrót określony jest w standardzie SAE J760 opisanym w [7] oraz
przedstawionym na rysunku 1.
Rysunek 1 Układ współrzędnych samochodu [7]
Uproszczony opis samochodu na potrzeby niniejszej pracy
Trudno jednoznacznie podać uniwersalną definicję samochodu, więc zamiast tego proponuje się
definicję dopasowaną do niniejszej pracy. Samochód, traktowany dalej jako obiekt podejmowania
decyzji, jest urządzeniem mechanicznym, którego celem jest przewożenie ludzi lub towarów po drogach
publicznych, zgodnie z obowiązującymi przepisami, określającymi zarówno jak może się on poruszać,
oraz jak jest kierowany. Kierowanie samochodem (rozumiane dalej jako działanie nieautomatyczne)
wykonywane jest przez człowieka, który obraca kierownicą, żeby nadać mu kierunek ruchu
(prawo/lewo) oraz używa pedałów: przyspieszenia i hamulca, żeby modyfikować jego prędkość zgodnie
z zadanym kierunkiem jazdy (przód/tył). Samochód może poruszać się dzięki kilku systemom
mechanicznym, które są podstawą jego budowy.
Silnik
Silnik, to urządzenie mechaniczne wytwarzające ruch obrotowy, którego prędkość kątową 𝜔 podaje się
w obrotach na minutę (ang. Rotates Per Minutes) [𝑅𝑃𝑀], a moment siły (zwany momentem
obrotowym) 𝑀 w niutonometrach [𝑁𝑚] . Ilość wytwarzanego momentu obrotowego w zależności
od prędkości obrotowej nie jest stała i podaje się ją w postaci tzw. krzywej momentu obrotowego,
określającej funkcję maksymalnego dostępnego momentu obrotowego w zależności od prędkości
obrotowej, właściwej dla danego silnika [40]. Warto podkreślić, że niewysilony silnik produkuje
23
mniejszy moment obrotowy od maksymalnego, możliwego dla konkretnej prędkości obrotowej,
określonego ww. krzywą, np. podczas jazdy ze stałą prędkością. Moc silnika 𝑃 obliczamy korzystając
ze wzoru
𝑃 =
𝑀𝜔
9549,3. (1)
Stała w mianowniku ilorazu we wzorze (1) wynika z konieczności przekształcenia jednostki do [𝑘𝑊].
Moc silnika podaje się również w koniach mechanicznych [𝐾𝑀] lub koniach parowych (ang.
Horsepower) [𝐻𝑃]. Jak wynika z powyższego, moc silnika zależy od prędkości obrotowej i momentu
obrotowego, więc może się zdarzyć, że np. silnik o mniejszym maksymalnym momencie obrotowym,
ale osiąganym przy wyższej prędkości obrotowej, osiąga większą moc od silnika o większym momencie
obrotowym, ale osiąganym przy niskiej prędkości obrotowej. Funkcje maksymalnego momentu
obrotowego i maksymalnej mocy w zależności od prędkości obrotowej nazywa się charakterystyką
silnika.
Układ napędowy
Ruch obrotowy silnika przekazywany jest do kół napędzanych. Na potrzeby tej pracy zakłada się, że
wszystkie cztery koła są napędzane. Zadaniem przeniesienia tego ruchu zajmuje się tzw. układ
przeniesienia napędu [41]. Składa się on ze skrzyni biegów, sprzęgła i przynajmniej jednego układu
różnicowego.
W tym miejscu warto zastanowić się, jak może wyglądać układ przeniesienia napędu w pojeździe, przy
założeniu napędu na wszystkie cztery koła. Na rysunkach 2-5 przedstawiono przykładowe układy wraz
z hamulcami.
Silnik
Sprzęgło Skrzynia biegówDyferencjał centralny
Dyferencjał przedni
Dyferencjał tylny
Hamulec
Hamulec
Hamulec
Hamulec
Koło
Koło
Koło
Koło
Rysunek 2 Klasyczny napęd na 4 koła
24
Rysunek 2 przedstawia klasyczny napęd, używany najczęściej w samochodach terenowych. Widać tutaj,
jak siła napędowa przekazywana jest z silnika przez sprzęgło do skrzyni biegów, następnie przez
dyferencjały (mechanizmy różnicowe) do kół wyposażonych w hamulce. Napęd można rozłączyć
poprzez sprzęgło umieszczone przed skrzynią biegów. Dość popularną wersją tego układu są układy
napędowe posiadające dodatkowe sprzęgło rozłączające jedną z osi.
SilnikHamulecKoło
Silnik Hamulec Koło
Silnik Hamulec Koło
SilnikHamulecKoło
Rysunek 3 Niezależny napęd na 4 koła
Na rysunku 3 przedstawiono napęd niezależny, dużo prostszy w budowie, stosowany w największych
ciężarówkach (np. Komatsu 930E [42]). Składa się on z czterech niezależnych silników napędzających
oddzielnie każde z kół. Najczęściej są to silniki elektryczne, zasilane prądem generowanym przez silnik
spalinowy. Zastosowanie silników elektrycznych umożliwia rezygnację ze skrzyń biegów,
a niezależność silników – likwidację elementów ciernych (sprzęgła) oraz skomplikowanych
mechanizmów różnicowych.
Silnik
Sprzęgło Skrzynia biegów Dyferencjał
HamulecHamulecKoło Koło
Silnik
HamulecKoło Hamulec Koło
Sprzęgło
Dyferencjał
Rysunek 4 Niezależny napęd dwóch osi
25
Rysunek 4 przedstawia połączenie dwóch poprzednich układów i jest używane w nowoczesnych
samochodach hybrydowych (np. Toyota RAV-4). Przykładowo przednia oś może być napędzana
klasycznym silnikiem spalinowym ze skrzynią biegów, a tylna – silnikiem elektrycznym. Możliwe jest
zastąpienie tylnego sprzęgła i dyferencjału jednym urządzeniem spełniającym obie role albo
zastosowanie z tyłu dwóch silników elektrycznych wyposażonych w sprzęgła.
Silnik
Skrzynia biegówHamulecKoło
Skrzynia biegów Hamulec Koło
Skrzynia biegów Hamulec Koło
Skrzynia biegówHamulecKoło
Sprzęgło Sprzęgło
Sprzęgło Sprzęgło
Rysunek 5 Niezależny napęd na 4 koła ze wspólnym silnikiem
Ostatnie rozwiązanie, prezentowane na rysunku 5, przedstawia układ niezależny, ale wyposażony
w jeden silnik. Dzięki bezstopniowym skrzyniom biegów możliwe jest tu przekazanie na każde z kół
dowolnej prędkości obrotowej, w szczególności wynikającej z całej dostępnej mocy silnika. Nie jest to
możliwe w dwóch poprzednich układach, gdzie przykładowo jedno koło napędzane jest jednym
z czterech silników, więc może wykorzystać maksymalnie czwartą część mocy całego pojazdu.
Sprzęgło
Pomiędzy silnikiem, a skrzynią biegów znajduje się sprzęgło. Jest to urządzenie, które służy do łączenia
i rozłączania wału czynnego (silnika), oraz biernego (skrzyni biegów) [41]. W motoryzacji stosuje się
różne sprzęgła o ograniczonym poślizgu – oparte na tarczach o wysokim współczynniku tarcia
lub wirujący czynnik hydrauliczny o wysokiej gęstości. Dzięki poślizgowi sprzęgła, można ograniczyć
moment obrotowy przekazywany na wał bierny, a więc i działającą wstecznie bezwładność, która
mogłaby nadmiernie spowalniać silnik lub uszkodzić jego mechanizmy.
Skrzynia biegów
Skrzynia biegów, to przekładnia przekazująca ruch z wału czynnego (najczęściej sprzęgła) na wał
bierny (napędowy) [41]. Warto pamiętać, że podczas hamowania silnikiem działa ona w przeciwnym
kierunku. W zależności od wybranego biegu może być przekładnią redukującą lub multiplikującą, czyli
zmniejszać prędkość kątową zwiększając jednocześnie moment obrotowy lub zwiększać prędkość
kosztem momentu obrotowego. Na potrzeby niniejszej pracy zakłada się użycie bezstopniowej skrzyni
26
biegów, czyli wariatora pasowego, składającego się z dwóch stożków połączonych pasem [43], jak
pokazano na rysunku 6.
Rysunek 6 Schemat ideowy (a) i konstrukcyjny (b) wariatora pasowego [44]
Mechanizm różnicowy
Ruch obrotowy ze skrzyni biegów przekazywany jest na koła poprzez mechanizmy różnicowe.
W przypadku napędu na cztery koła używa się zazwyczaj trzech takich mechanizmów – centralnego,
rozdzielającego moment obrotowy pomiędzy przednią i tylną osią oraz po jednym na każdej osi, w celu
rozdziału momentu obrotowego na lewe i prawe koło. Mechanizm różnicowy (zwany też dyferencjałem
lub przekładnią różnicową), to przekładnia mechaniczna zębata, której zadaniem jest kompensacja
różnicy prędkości różnych kół, np. podczas jazdy po łuku, gdzie prawe koło pokonuje inną drogę
(dłuższą lub krótszą) niż lewe koło [45]. Mówiąc inaczej, wał czynny połączony jest do koła zębatego,
które przekazuje ruch na dwa przeciwległe wały bierne, które połączone są również dodatkowym kołem
zębatym (przekładnią satelitarną), które w takim wypadku obraca się razem z wałami, ale nie wokół
własnej osi. Podczas jazdy po łuku przekładnia planetarna zaczyna się obracać wokół własnej osi,
różnicując prędkości wałów biernych. Zostało to pokazane na rysunku 7.
Wadą tego rozwiązania jest to, że podczas gdy jedno koło zupełnie utraci przyczepność, a drugie
napotka opór, przekładnia satelitarna przestanie obracać się z wałami biernymi, tylko zacznie obracać
wokół własnej osi, przekazując cały ruch na koło pozbawione przyczepności. Rozwiązaniem tego
problemu jest zastosowanie mechanizmu o ograniczonym poślizgu [46] (włączając w to mechanizmy
z funkcją całkowitej blokady) lub przyhamowanie obracającego się swobodnie koła przy pomocy
hamulców, dzięki czemu przekładnia planetarna przekaże ruch na koło przyczepne. Takie układy mogą
być w pełni mechaniczne lub sterowane elektronicznie.
Mówiąc bardziej ogólnie, dzięki zastosowaniu mechanizmów różnicowych, samochód wyposażony
w napęd na cztery koła jest w stanie doprowadzić moment obrotowy do każdego z nich, niezależnie od
ich przyczepności.
27
Rysunek 7 Budowa mechanizmu różnicowego [47]
Układ hamulcowy
Kolejnym, ważnym układem fizycznym, w który wyposażony jest samochód, jest układ hamulcowy.
Jego podstawą są hamulce - materiały cierne, np. tarcze lub bębny, na które naciskają klocki hamulcowe.
Klocki naciskane są przez czynnik hydrauliczny, którego ciśnienie zwiększa się z wykorzystaniem
niewielkiej prasy hydraulicznej sterowanej przez kierowcę za pomocą pedału hamulca
lub elektronicznie – przy pomocy pompy systemu ESP. Nowoczesne samochody dysponują zaworami
kontrolującymi przepływ płynu hamulcowego do każdego koła, dzięki czemu możliwe jest niezależne
sterowanie hamulcami [48].
Układ kierowniczy
Kolejnym układem obecnym w samochodzie, jest układ kierowniczy. Niektóre współczesne samochody
posiadają dwa układy kierownicze, umożliwiające niezależne sterowanie skrętem tylnych kół,
realizowane przez komputer [49] (pierwszy układ tego typu był w pełni analogowy i bazował na sile
odśrodkowej podczas jazdy w zakręcie [50]). Tylne koła w nowoczesnych samochodach podczas jazdy
z niewielkimi prędkościami skręcają przeciwnie do skrętu kół przednich, zwiększając tym samym
możliwości manewrowania samochodem, albo w tę samą stronę co przednie podczas jazdy z dużą
prędkością, zwiększając stabilność pojazdu. Warto dodać, że podczas skrętu, koła oprócz obracania się
wokół sworzni i własnej osi, pochylają się także w stronę skręcania, kompensując działającą na nie siłę
odśrodkową związaną z masą samochodu.
Typowy układ kierowniczy składa się z wału czynnego, napędzanego przez kierownicę lub silnik
elektryczny, który przy pomocy przekładni zębatej przenosi ruch na zwrotnice, do których
zamontowane są koła. Jego schemat znajduje się na rysunku 8.
28
Rysunek 8 Schemat układu kierowniczego [51]
Poszczególne elementy tego układu opisane są w tabeli 1.
Tabela 1 Wyjaśnienie oznaczeń z rysunku 8
Numer Opis
1 Zwrotnica
2 Dźwignia zwrotnicy
3 Drążek poprzeczny
4 Belka osi
5 Ramię zwrotnicy
6 Drążek podłużny
7 Ramię przekładni kierowniczej
8 Przekładnia kierownicza
9 Wał kierownicy
10 Koło kierownicy
11 Kolumna kierownicy
Przy klasycznym podejściu, przełożenie układu jest przeważnie stałe, choć współcześnie stosuje się
układy kierownicze o zmiennym przełożeniu, sterowane elektronicznie.
Jako że podczas jazdy po łuku każde z kół porusza się po innym torze, konieczne jest żeby ich skręt
różnił się od siebie. Jest to rozwiązane przy wykorzystaniu zasady Ackermana [52], przedstawionej
na rysunku 9.
29
Rysunek 9 Zasada Ackermana [53]
Zasadę Ackermana opisuje wzór
{
𝑡𝑔(𝜎𝑧) =𝑓
𝑟+𝑡
2
𝑡𝑔(𝜎𝑤) =𝑓
𝑟−𝑡
2
. (2)
Zawieszenie
Ostatnim, istotnym układem fizycznym w samochodzie jest zawieszenie. Pełni ono kilka ról.
Po pierwsze, pozwala kompensować siły działające na samochód w zakrętach. Podczas jazdy po łuku
siła odśrodkowa powoduje wychylenie samochodu do zewnętrznej strony łuku. Jeśli zawieszenie byłoby
zbyt twarde, koła znajdujące się po wewnętrznej stronie oderwałyby się od podłoża. Jeśli jednak byłoby
zbyt miękkie, środek ciężkości podniósłby się za bardzo, więc koła po wewnętrznej stronie również
nie mogłyby być dostatecznie dociążone [54]. Kolejną rolą zawieszenia jest dociskanie samochodu
do nierówności tak, żeby nie odrywał się on od podłoża podczas pokonywania dziur i wybrzuszeń
w jezdni. Oprócz tego, zawieszenie zapobiega przenoszeniu wibracji na nadwozie i wnętrze pojazdu,
zwiększając jego długowieczność. Bez niego samochód bez przerwy by podskakiwał, aż w końcu,
mówiąc obrazowo, po prostu by się rozpadł. Ostatnią rolą zawieszenia, wbrew powszechnym
przekonaniom najmniej istotną, jest zapewnienie komfortu pasażerom poprzez niwelowanie drgań
i wygaszanie falowania nadwozia wprawionego w ruch wahadłowy.
Istnieje wiele różnych konstrukcji zawieszenia: konstrukcyjnie najstarsze oparte są na resorach
piórowych, później pojawiły się belki skrętne, kolumny McPersona, układy wielowahaczowe,
pneumatyczne, hydropneumatyczne, itd. Każde z nich ma swoje wady i zalety. Na potrzeby tej pracy
przyjmuje się model ogólny, który zakłada, że zawieszenie każdego koła składa się z części sprężystej
30
i tłumiącej. Taka konstrukcja pozwala niwelować drgania oraz tłumić powstały przy tym ruch
wahadłowy. Schemat pojedynczego koła przedstawiony jest na rysunku 10, którego opis znajduje się
w tabeli 2.
Rysunek 10 Model zawieszenia pojedynczego koła [55]
Tabela 2 Objaśnienia zmiennych użytych w modelu zawieszenia pojedynczego koła
Skrót Objaśnienie
𝑐0 Współczynnik tłumienia amortyzatora
𝑐𝑒 Współczynnik tłumienia innych elementów zawieszenia
𝑐𝑡 Współczynnik tłumienia opony
𝐹𝑟 Stałe tarcie pomiędzy elementami zawieszenia
𝑔 Przyspieszenie grawitacyjne
𝑘1 Współczynnik sprężystości opony
𝑘2 Współczynnik sprężystości sprężyny w zawieszeniu
𝑚1 Masa nieresorowana, czyli masa koła i elementów poruszających się razem z kołem
𝑚2 Masa przypadająca na opisywane koło
𝑞 Droga, po której porusza się koło
𝑧1 Wysokość środka koła nad drogą
𝑧2 Wysokość nadwozia nad drogą
Współczynniki określające pracę zawieszenia są przeważnie przedmiotem bardzo skomplikowanych
badań, indywidualnych dla każdego pojazdu. W nowoczesnych samochodach, istnieje możliwość
zmiany parametrów 𝑐0 oraz 𝑘2 podczas jazdy. Bardzo ważne jest to, że niezwykle rzadko stosuje się
zawieszenie w pełni niezależne. Najczęściej połączone są dwa koła na tej samej osi. Ich połączeniem,
rozważanym w niniejszej pracy, jest stabilizator.
31
Stabilizator jest poprzeczną belką umieszczoną pomiędzy wahaczami tej samej osi [56]. Schemat jego
budowy znajduje się na rysunku 11. Jego rolą jest niwelowanie przechylenia samochodu podczas jazdy
po łuku. Wykonuje to poprzez przenoszenie nacisku z zawieszenia koła zewnętrznego na koło
wewnętrzne, dzięki czemu zawieszenie po stronie wewnętrznej obniża się, zmniejszając przechył
boczny pojazdu. Wadą tego rozwiązania jest przenoszenie także reakcji na nierówności na drugie koło,
które nie miało z nimi bezpośredniej styczności. Żeby temu zaradzić stosuje się stabilizatory
o określonej odporności na skręcanie i łączniki stabilizatorów o określonej sprężystości. Dodatkowo,
nowoczesne samochody mają możliwość zmiany wymienionych współczynników podczas jazdy.
Rysunek 11 Schemat budowy stabilizatora [57]
Oprócz stabilizatora, inną formą połączenia ruchu kół jest praca całego nadwozia. Samochód nie jest
bryłą sztywną i odkształca się nieznacznie podczas jazdy.
Podsumowując opis samochodu, można powiedzieć, że współczesny samochód jest w stanie regulować
prędkość każdego koła (przyspieszać lub zwalniać), a także osobno sterować sprężystością
i współczynnikiem tłumienia zawieszenia oraz ilością przekazanego momentu siły pomiędzy kołami.
Dzieje się to w dużym stopniu niezależnie od pozostałych kół.
Systemy wspomagania kierowcy
Współczesne samochody wyposażone są w szereg systemów, które mają za zadanie zwiększyć komfort
jazdy, ale przede wszystkim jej bezpieczeństwo. Dlatego nazywa się je zamiennie systemami wsparcia
lub systemami bezpieczeństwa. To bezpieczeństwo dzieli się na bezpieczeństwo czynne i bierne.
Systemy bezpieczeństwa biernego uaktywniają się dopiero podczas wypadku. Są to np. poduszki
powietrzne, napinacze pasów, aktywne fotele, itd. Nie są one przedmiotem niniejszej pracy. Systemy
bezpieczeństwa czynnego mają za zadanie przede wszystkim nie dopuścić do wypadku, choć część
z nich wpływa też na komfort podróżnych. Wiele jest już montowanych seryjnie i wymaganych przez
prawo Unii Europejskiej. Poniżej wymienione są niektóre z nich.
ABS
Podstawowym systemem wsparcia kierowcy jest system zapobiegający blokowaniu kół, czyli ABS [58]
(niem. Antiblockiersystem). Jego rolą jest pulsacyjne ograniczanie siły hamowania, kiedy wykryty
32
zostaje poślizg kół. Dzięki temu możliwe jest zachowanie sterowności, czyli po prostu skręcanie
podczas gwałtownego hamowania. Czasami zarzuca się, że system ograniczając siłę hamowania,
wydłuża jego drogę. Jednak nowoczesne systemy ABS, wykrywają możliwy uślizg, zanim on nastąpi,
dzięki czemu nie następuje tarcie oponą o podłoże, a skoro tarcie statyczne (bez poślizgu) jest zawsze
większe od dynamicznego (z poślizgiem), to droga hamowania efektywnie skraca się. Warto
wspomnieć, że w szczególnych warunkach bardzo niskiej przyczepności system ABS faktycznie
wydłuża drogę hamowania, ponieważ siła hamowania zmniejszana jest zbyt wcześnie.
Działanie systemu ABS bazuje na pompie hamulcowej, która zmniejsza ciśnienie w układzie
hamulcowym, a następnie wykorzystuje siłę nacisku na pedał hamulca, żeby ponownie je zwiększyć.
BAS
System wspomagania hamowania (ang. Brake Assist System) rozwiązuje problem opisany
w poprzednim zdaniu [59]. Bardzo często kierowcy nie naciskają pedału hamulca do końca [60], więc
ABS nie jest w stanie wystarczająco zwiększyć ciśnienia w układzie. System BAS wykrywa hamowanie
awaryjne i zwiększa ciśnienie do maksymalnego przy użyciu pompy hydraulicznej, niezależnie od
zachowania kierowcy.
EBD
Elektroniczny system rozdziału siły hamowania (ang. Electronic Brakeforce Distribution) wypełnia
kolejną lukę w działaniu systemu ABS [61]. Nie można założyć, że każde koło w samochodzie porusza
się po takiej samej nawierzchni, samochód jest idealnie wyważony, a każda z opon zużyta w takim
samym stopniu. Z tych różnic wynika inne tarcie, więc inny moment zerwania przyczepności na każdym
kole. System EBD steruje przepływem płynu hamulcowego do każdego koła, działając jak cztery
oddzielne systemy ABS.
ASR
Regulator poślizgu przy przyspieszaniu (ang. Acceleration Slip Regulation) to system elektroniczno-
mechaniczno-informatyczny, który zapobiega poślizgowi kół podczas ruszania i gwałtownego
przyspieszania [62]. Może on ograniczać moc silnika lub używać hamulców.
ESP
Program kontroli przyczepności (ang. Electronic Stability Program) to kolejny system zapobiegający
poślizgowi kół, z założenia działający podczas jazdy w zakręcie [63]. Współcześnie coraz częściej jest
on jedynym systemem tego typu, a wszystkie powyższe są tylko jego funkcjami, choć nie jest to jeszcze
regułą. Zadaniem ESP jest zapobieganie nadsterowności lub podsterowności, czyli tendencji
samochodu, odpowiednio, do zacieśniania skrętu poprzez wyrzucanie na zewnątrz łuku tylnej części
samochodu lub zwiększania promienia skrętu poprzez wyrzucanie w kierunku zewnętrznym przedniej
części samochodu. Żeby temu zapobiec moduluje się siłę hamowania na każdym kole oraz moc silnika.
LDWS
System elektroniczno-informatyczny ostrzegający o zjechaniu z pasa ruchu (ang. Lane Departure
Warning System), który monitoruje przy pomocy kamery linie oddzielające pasy ruchu [64].
W przypadku gdy kierowca zbliża się do nich lub je przekracza, może zachować się pasywnie
(poinformować kierowcę o zjechaniu z pasa ruchu), lub aktywnie (skorygować tor jazdy). Systemy
33
aktywne mogą używać układu kierowniczego lub hamulcowego. Rozwinięciem tego systemu jest Lane
Keeping Assist, który samodzielnie utrzymuje samochód na środku pasa ruchu, a w najnowszych
samochodach – potrafi także ten pas samodzielnie zmieniać.
Aktywny tempomat
Zadaniem zwykłego tempomatu jest utrzymywanie zadanej prędkości jazdy przy użyciu silnika oraz –
w niektórych samochodach – hamulców. Rozwiązanie aktywne oprócz tego dostosowuje prędkość
do poprzedzającego pojazdu (przy użyciu radaru lub kamery), do ograniczeń prędkości (przy użyciu
nawigacji i systemu GPS lub kamery, odczytując prędkość ze znaków) lub do drogi (zwalniając przed
skrzyżowaniami i ostrymi zakrętami, na podstawie map nawigacji i systemu GPS) [65].
EBA
Zadaniem asystenta hamowania awaryjnego (ang. Emergency Brake Assist) jest unikanie zderzenia, jeśli
kierowca sam nie rozpoczyna manewru hamowania [66]. Najczęściej systemy tego typu używają
radarów lub kamer, wykrywając przeszkody nieruchome, ruch poprzeczny, pieszych i zwierzęta. Ich
pierwszą reakcją jest zaalarmowanie kierowcy, a następną – działanie aktywne, czyli samodzielne
rozpoczęcie awaryjnego hamowania, aż do reakcji kierowcy, ustąpienia niebezpieczeństwa
lub całkowitego zatrzymania samochodu.
System monitorowania martwego pola
System monitorowania martwego pola obserwuje otoczenie pojazdu po bokach i za nim [67]. Jego
zadaniem jest informowanie kierowcy o znajdujących się tam innych pojazdach
i obiektach (w szczególności ukrytych w martwym polu, tzn. niewidocznych w lusterkach oraz bez
obrócenia głowy). Jeśli kierowca próbuje zmienić pas na zajęty, system powinien poinformować go
o tym alarmem lub aktywnie uniemożliwić wykonanie manewru. Dodatkową funkcją radarów
wykorzystywanych przez ten system jest monitorowanie stref po bokach samochodu, podczas
wyjeżdżania tyłem z miejsc parkingowych.
Podsumowując tę część, można zauważyć, że różne systemy wsparcia potrafią aktywnie zmieniać moc
silnika, siłę każdego z hamulców oraz skręt kierownicy, wykorzystując do tego wiedzę zdobywaną
dzięki licznym kamerom i radarom, używanym do monitorowania całej przestrzeni wokół samochodu
oraz sterownikom napędzanym przez algorytmy zaprojektowane do różnych celów.
Standard SAE J3016
Mimo, że niniejsza praca dotyczy wyłącznie pojazdów kierowanych przez człowieka, prezentowany
w niej system informatyczny, sterowany przez IDSA, potrafi w pewnym zakresie sterować
autonomicznie. Żeby to sprecyzować, należy odnieść się do powszechnie używanej klasyfikacji
pojazdów autonomicznych, zaproponowanej w ramach standardu SAE J3016 [68]. Jak widać
na rysunku 12, standard ten wyróżnia 5 poziomów jazdy autonomicznej (oraz poziom zerowy,
pozbawiony wszystkich jej cech). Ta klasyfikacja zakłada, że kolejne poziomy spełniają coraz więcej
kryteriów jazdy w pełni autonomicznej, możliwej bez żadnej ingerencji kierowcy. Zaznaczona
na rysunku pogrubioną linią granica oddaje kolejne aspekty prowadzenia samochodu pod wyłączną
kontrolą systemu sterującego (lub wielu systemów). Oznacza to, że standard SAE J3016 nie przewiduje
istnienia rozwiązania spełniającego inny zestaw kryteriów, niż wyznaczony przez tę linię.
34
Rysunek 12 Poziomy autonomii pojazdów [68]
IDSA steruje przyspieszeniem, hamowaniem i torem jazdy na wyłączność (poziom 2-5), jednak
w większości przypadków ukrywa ten fakt przed użytkownikiem (poziom 0). Poza tym w pełni
monitoruje otoczenie pojazdu (poziomy 3-5), ale jednocześnie wymaga tego od użytkownika (poziomy
0-2). Można jednak powiedzieć, że w sytuacji zagrożenia przejmuje kontrolę (poziomy 4-5), ale nawet
wtedy nie pomija danych wejściowych pochodzących od kierowcy (poziomy 0-3). Pod względem
ostatniego kryterium – ilości scenariuszy (trybów), w których może on zastąpić kierowcę – może go
zastąpić we wszystkich (poziom 5), ale najczęściej robi to tylko w sytuacjach krytycznych (poziomy 2-
3).
1.4.2. Podstawowe pojęcia związane z informatyką
Wraz z zakończeniem punktu 1.4.1, zakończono opisywanie zagadnień związanych z motoryzacją.
Niniejszy punkt rozpoczyna rozważania związane z informatyką poprzez przedstawienie metod,
algorytmów i pojęć, które będą później używane.
Jednoczesne lokalizowanie i mapowanie (ang. Simultaneous Localization and Mapping -
SLAM)
Jednym z problemów, które rozwiązuje proponowany w tej pracy algorytm, jest jednoczesne
mapowanie otoczenia poruszającego się obserwatora oraz lokalizowanie go względem tego otoczenia.
Zaproponowano już wiele rozwiązań tego problemu, a jego istota opisana jest w pracy [6]. Temat ten
pochodzi z robotyki i ciągle jest dość popularny, więc publikowane są coraz wydajniejsze jego
35
rozwiązania oraz ich implementacje, jednak bazowy pomysł ciągle jest ten sam. Polega on
na zapisywaniu w pamięci łatwych do wykrycia punktów orientacyjnych, np. punktów łączenia
krawędzi (wierzchołków lub kątów obiektów) albo tzw. mapy zajętości, czyli macierzy przechowującej
prawdopodobieństwo, że w danym punkcie mapy otoczenia znajduje się obiekt. Przy każdym nowym
pomiarze wykonywana jest taka mapa zajętości i porównywana z poprzednią (wykonaną przy
poprzednim pomiarze), z wykorzystaniem wiedzy o planowanym przesunięciu obserwatora od
ostatniego pomiaru. Przykładowo, jeśli planowany był ruch o jedną jednostkę odległości do przodu,
wszystkie znane punkty powinny być przesunięte o jedną jednostkę do tyłu względem obserwatora.
Do wyznaczenia nowej siatki punktów orientacyjnych lub mapy zajętości, używa się najczęściej filtru
Kalmana, który w wektorze stanu zawiera nie tylko położenie obserwatora, ale także poprzednie siatki
punktów lub mapy zajętości.
Model
Istnieje wiele definicji modelu. Na potrzeby niniejszej pracy najlepiej pasuje definicja słownikowa [69]:
„konstrukcja, schemat lub opis ukazujący działanie, budowę, cechy, zależności jakiegoś zjawiska
lub obiektu”. W niniejszej pracy mówi się o modelu pojazdu, który jest opisem obiektu rzeczywistego
w postaci struktury danych w pamięci komputera, a w szczególności o modelu symulacyjnym,
ukazującym działanie, budowę, cechy i zależności pojazdu rzeczywistego w warunkach symulacyjnych.
W pracy występuje też sformułowanie „model danych”. Jest to sposób przedstawiania zmiennych i ich
wartości w formie programowej lub matematycznej.
Driver-in-the-loop
Podczas badań, najlepiej byłoby zastosować środowisko badawcze o idealnej powtarzalności. Jednak
w niektórych przypadkach bardzo ważne jest oddziaływanie, na obiekt podejmowania decyzji lub jego
środowisko człowieka, np. operatora tego obiektu. W takim przypadku mówi się o badaniach human-
in-the-loop. Uściśleniem takiego podejścia jest metoda badania samochodów z udziałem kierowcy,
nazywana driver-in-the-loop [70]. W takim przypadku bada się zachowanie pojazdu z uwzględnieniem
faktu, że jest on kierowany przez kierowcę, a co za tym idzie kierowca, zgodnie ze swoją najlepszą wolą
i wiedzą a także doświadczeniem i intuicją, reaguje w czasie rzeczywistym na zachowanie kierowanego
przez siebie pojazdu.
Systemy podejmowania i wspomagania decyzji oraz sterowanie
Jak było wspomniane, niniejsza praca analizuje system podejmowania decyzji, zachowujący się jak
system wspomagania decyzji. Warto więc poznać obydwa i różnice między nimi.
Kiedy mówimy o podejmowaniu decyzji, ważne są następujące pojęcia. Decyzja jest to nielosowy
wybór jednego z wariantów przyszłego działania. Jest ona wynikiem procesu podejmowania decyzji.
Ten proces polega na zbieraniu i przetwarzaniu informacji o przyszłym działaniu. Jako
że „przetwarzanie informacji” jest pojęciem bardzo szerokim, sposoby podejmowania decyzji mogą być
także rozumiane bardzo szeroko. Podmiotem procesu podejmowania decyzji jest decydent. Może to być
człowiek, sterownik fizyczny, elektroniczny lub programowy. Przedmiotem podejmowania decyzji jest
system, proces, obiekt albo zjawisko, którego ta decyzja dotyczy (niekoniecznie wykonawca tej
decyzji). Rozumiejąc system jako określoną całość złożoną z powiązanych ze sobą elementów
(procesów, zjawisk, itp.), którego działanie zależy zarówno od działania poszczególnych elementów,
36
jak i od sposobu ich powiązania (od struktury), możemy wyróżnić system podejmowania decyzji
zawierający podmiot (decydenta) i przedmiot decyzji.
Decydent Przedmiot decyzjiu
d
vI
Rysunek 13 przedstawia najprostszy schemat systemu podejmowania decyzji, gdzie 𝐼, to informacja
o przedmiocie decyzji wiadoma z góry, 𝑢 – to wyznaczona decyzja, 𝑣 – skutek decyzji. Wejście 𝑑 może
być rozumiane na dwa sposoby – jako obserwacje, np. uzyskane w wyniku badań eksperymentalnych
albo jako niemierzalne zakłócenia działające na przedmiot decyzji. Na bazie tego schematu można
tworzyć bardziej skomplikowane, np. ze sprzężeniem zwrotnym, gdzie 𝐼 = 𝑣 lub z mierzalnymi
zakłóceniami, których decydent jest świadomy. Należy pamiętać, że rysunek 13 nie jest diagramem
przepływu. Tylko niektóre systemy sterowania rzeczywiście działają w sposób iteracyjny, gdzie
w każdej iteracji 𝑖,
𝑢(𝑖) = 𝑓1(𝐼(𝑖)) (3)
oraz
𝑣(𝑖) = 𝑓2(𝑢(𝑖), 𝑑(𝑖)) (4)
oraz ewentualnie
𝐼(𝑖) = 𝑣(𝑖 − 1). (5)
System podejmowania decyzji, który automatycznie realizuje podjętą decyzję i działa w obecności
zakłóceń, nazywamy systemem sterowania. Systemem wspomagania decyzji, nazywamy taki system
podejmowania decyzji, w którym pomiędzy decydentem a przedmiotem decyzji znajduje się człowiek
(operator, ekspert), który każdorazowo musi decyzję zatwierdzić.
Rysunek 13 Schemat systemu podejmowania decyzji
37
Algorytm
Algorytmem dokładnym nazywamy skończony i uporządkowany ciąg jasno zdefiniowanych czynności,
których celem jest wykonanie pewnego zadania, np. doprowadzenie obiektu z określonego stanu
do innego, określonego stanu [71]. Stan obiektu, to zbiór jego atrybutów, który opisuje ten obiekt
w danej chwili i reprezentuje informacje o historii obiektu. Mogą to być atrybuty wewnętrzne obiektu
oraz jego wyjście. Wyjście, to obserwowalne atrybuty, na rysunku 13 oznaczone literą 𝑣 . Wejście
oznaczone jest na nim literą 𝑢 . Czasami, zależnie od rozwiązywanego problemu i stosowanego
algorytmu, dopuszcza się, żeby algorytm doprowadzał tylko do konkretnej wartości wyjścia, niezależnie
od stanu wewnętrznego.
W przypadku systemów decyzyjnych lub sterujących, kiedy decyzja podejmowana jest fizycznie przez
urządzenie techniczne, na tym urządzeniu najczęściej realizowany jest zaprojektowany w tym celu
algorytm. Dokładnie tak wygląda stosowanie z użyciem IDSA, realizowane przez sterownik
umieszczony w pojeździe lub przez aplikację komputerową połączoną z używanym podczas badań
symulatorem.
Algorytm jako ciąg wykonywanych kroków, musi cechować się następującymi właściwościami:
a) Poprawność – jego wyniki są „dobre”, czyli poprawne, akceptowalne, spodziewane;
b) Powtarzalność – za każdym razem jego zastosowanie na obiekcie o określonym stanie
doprowadzi do takiego samego rezultatu;
c) Wykonalność – każdy krok musi być możliwy do wykonania;
d) Skończoność – liczba jego kroków jest skończona;
e) Sprawność – można określić jego złożoność obliczeniową i pamięciową;
f) Posiadanie wejścia i wyjścia – algorytm musi określać stan początkowy i końcowy obiektu,
co do którego ma być zastosowany.
Złożoność obliczeniowa oraz pamięciowa, to liczba operacji koniecznych do wykonania oraz
wymagana przez algorytm pamięć, która w zależności od rozmiaru danych wejściowych jest znana.
Złożoność algorytmów przeważnie zapisujemy jako 𝑂(𝑓(𝑛)), gdzie 𝑛, to liczba danych wejściowych.
Możemy mówić o złożoności pamięciowej (zależność użytej pamięci od ilości danych wejściowych)
lub czasowej (zależność koniecznego czasu przetwarzania od ilości danych wejściowych).
Przykładowo, złożoność 𝑂(1) oznacza stały czas wykonania algorytmu niezależnie od danych
wejściowych, a złożoność 𝑂(𝑛) oznacza, że wykonanie algorytmu wymaga wykonania liczby operacji
proporcjonalnej do ilości danych wejściowych. Możemy też wyróżnić, np. algorytmy wykładnicze,
opisywane jako 𝑂(𝑘𝑛), gdzie 𝑘 jest stałą, co oznacza, że przy dodaniu nowych danych wejściowych
czas wykonania należy pomnożyć przez liczbę nowych danych wejściowych. Jeśli złożoność algorytmu
rozwiązującego dany problem da się zapisać wielomianem od rozmiaru danych wejściowych, to taki
problem uważa się za łatwy do rozwiązania. Oczywiście problemy rozwiązywane, w najlepszym
przypadku, algorytmami, których złożoności nie da się tak opisać, uważa się za trudne [72], a takie
algorytmy – za nieefektywne.
Niestety niektóre problemy można rozwiązać jedynie algorytmami dokładnymi, których złożoność jest
nieakceptowalna. W takich wypadkach często stosuje się algorytmy heurystyczne. Algorytm
38
heurystyczny, to skończony i uporządkowany ciąg jasno zdefiniowanych czynności, których celem jest
wykonanie pewnego zadania, jednak w odróżnieniu od algorytmu dokładnego, jego poprawność
i powtarzalność nie jest pewna. Oznacza to, że algorytm heurystyczny wykona zadanie algorytmu
dokładnego tak samo dobrze jak algorytm dokładny, albo przynajmniej akceptowalnie, czyli
wyprodukowane z jego użyciem rozwiązanie będzie poprawne w większości przypadków lub bliskie
poprawnemu. Mimo że wydaje się, że stosowanie algorytmów heurystycznych w sytuacjach, w których
znany jest algorytm dokładny, nie ma żadnego sensu, to zachowanie takie jest bardzo powszechne.
Wynika to z tego, że algorytm heurystyczny jest najczęściej sprawniejszy od algorytmu dokładnego,
a bardzo często jest znacznie szybszy, tzn. jego złożoność czasowa jest mniejsza, często o całe rzędy
wielkości. Dzięki temu, w wielu współczesnych problemach, ze świadomością dostępnych zasobów
(np. mocy obliczeniowej współczesnych komputerów i dostępnego czasu), stosuje się algorytmy
heurystyczne, ponieważ stosowanie ich dokładnych odpowiedników byłoby zbyt kosztowne lub po
prostu niemożliwe.
Sztuczna sieć neuronowa
Współcześnie dość często realizuje się algorytmy heurystyczne z wykorzystaniem tzw. sztucznych sieci
neuronowych. Sztuczna sieć neuronowa, to procedura obliczeniowa wykorzystująca zbiór jednostek
wejściowo-wyjściowych (neuronów) połączonych ze sobą, komunikujących się i pracujących
równolegle [73]. Definicja sieci neuronowej składa się z trzech elementów: modelu sztucznego neuronu,
topologii i reguły uczenia.
Sztuczny neuron
Sztuczny neuron przyjmuje 𝑛 wejść �̿� = [�̿�1, �̿�2, … , �̿�𝑖, … , �̿�𝑛] wraz z odpowiadającymi im wagami
𝑤 = [𝑤1, 𝑤2, … , 𝑤𝑖, … , 𝑤𝑛] oraz produkuje jedną wartość wyjściową �̅� . Pobudzenie neuronu 𝑒
określone jest funkcją
𝑒 =∑𝑤𝑖 ⋅ �̿�𝑖 − Θ
𝑛
𝑖=1
(6)
Wartość Θ, to tzw. próg aktywacji neuronu. Funkcja aktywacji neuronu ma postać �̅� = 𝑓(𝑒). Może mieć
prostą postać, np.
�̅� = 𝑓(𝑒) = {
1 dla 𝑒 ≥ Θ0 𝑤 𝑝. 𝑝.
(7)
Może też być bardziej skomplikowana, np.
�̅� = 𝑓(𝑒) = 𝑡𝑔ℎ (𝛼𝑒
2) (8)
Wartość 𝛼 jest parametrem, najczęściej stałym dla całej sieci.
39
Topologia
Najprostszą topologią sieci neuronowej jest sieć jednokierunkowa. Sieci jednokierunkowe składają się
z tzw. warstw, czyli grup neuronów, a każda grupa pobiera dane tylko z poprzedniej grupy
(z wyłączeniem pierwszej grupy, tzw. warstwy wejściowej, która przyjmuje dane z zewnątrz) oraz
wysyła dane tylko do następnej grupy (z wyłączeniem ostatniej grupy, tzw. warstwy wyjściowej, która
generuje wynik). Oprócz tego istnieją jeszcze inne topologie, np. rekurencyjne, sieci Kohonena, itp.
Reguła uczenia
Uczenie sieci neuronowej polega na wyznaczeniu wag połączeń pomiędzy neuronami. Może być
nadzorowane, nienadzorowane, przez wzmacnianie lub hybrydowe.
a) W przypadku uczenia nadzorowanego system otrzymuje zbiór danych wejściowych
i oczekiwanych wyjściowych, a następnie ze wszystkich kombinacji wag, wybierane są te,
które pozwalają otrzymać oczekiwane wyjście na podstawie danego wejścia.
b) Uczenie nienadzorowane nie dostarcza do systemu zbioru oczekiwanych wyjść. Podczas tego
procesu system, np. klasteryzuje obiekty wejściowe, przypisując je do tych samych klas
na podstawie podobieństwa.
c) Uczenie przez wzmacnianie nie wymaga zbioru uczącego. System rozpoczyna pracę i jest
„nagradzany” za dobre wyniki oraz „karany” za złe. Dzieje się to tak długo, aż wyniki poprawią
się do akceptowalnego poziomu.
Widzenie komputerowe
Widzenie komputerowe (ang. computer vision), nazywane też rozpoznawaniem obrazu, to zbiór
algorytmów, których celem jest przetworzenie obrazu (na podstawie danych z kamery lub skanera)
do postaci jego opisu, np. klasyfikacja znajdujących się na obrazie obiektów, rozpoznawanie pisma,
tworzenie trójwymiarowego modelu sceny lub bardzo popularne w medycynie wykrywanie anomalii
[74]. Algorytmy widzenia komputerowego przeważnie są trzypoziomowe [75]:
a) Przetwarzanie niskiego poziomu – obejmuje akwizycję obrazu, zmianę jego formatu (np.
dekompresję JPEG do BMP) i poprawę jakości, np. eliminację zakłóceń, poprawienie kontrastu,
itd.
b) Przetwarzanie średniego poziomu – proces segmentacji, detekcji konturów, przetwarzania
morfologicznego, itd.
c) Przetwarzanie wysokiego poziomu – klasyfikacja, rozpoznawanie i interpretacja sceny.
Coraz częściej do przetwarzania wysokiego poziomu stosuje się algorytmy heurystyczne,
np. wykorzystujące sztuczne sieci neuronowe, które mogą także jednocześnie wykonywać
przetwarzanie średniego i wysokiego poziomu [76]. Trudno jest podać formalnie jedną metodę widzenia
komputerowego, ze względu na mnogość technik i zastosowań.
Fuzja informacji
Algorytmy fuzji danych, fuzji informacji, fuzji sensorów lub poznawania prawdy (ang. truth discovery),
skupiają się na agregowaniu heterogenicznych i często asynchronicznych danych dotyczących tego
samego zjawiska rzeczywistego, z uwzględnieniem błędu pomiarowego każdego z czujników,
np. na agregowaniu informacji o scenie pochodzących z dwóch różnych kamer, działających z różną
40
częstotliwością i ustawionych w różnych miejscach i kierunkach [77]. Ich ogólnym celem jest
wytworzenie opisu badanego zjawiska tak, jakby było mierzone jednym czujnikiem. Istnieje wiele
metod fuzji informacji, zależnych od przypadku użycia oraz zastosowanych sensorów. Podstawowe
z nich wykorzystują elementarne wyrażenia matematyczne, np. jednokładność, wyszukiwanie
wierzchołków, skalowanie i obracanie obrazu. Jeśli jednak założymy, że pomiary obarczone są błędem,
należy zastosować inne metody. Ich częścią wspólną jest przeważnie bazowanie na twierdzeniu Bayesa
lub filtrach Kalmana. Przykładem fuzji informacji zrealizowanej w ramach prac nad IDSA jest proces
opisany w punkcie 2.7.
Funkcje ciągłe – interpolacja, aproksymacja i ekstrapolacja
W celu zamiany opisu dyskretnego na ciągły konieczna jest jego aproksymacja. Jest to proces
odnajdywania funkcji ciągłej takiej, żeby minimalizować jej błąd w stosunku do pomiarów [78].
W tym celu można zastosować twierdzenie Stone’a-Weierstrassa [79] oraz aproksymację wielomianową
[80]. Jeśli założymy, że dane jest 𝑛 pomiarów �̆�1, �̆�2, … , �̆�𝑛 w znanych chwilach czasu 𝑡1, 𝑡2, … , 𝑡𝑛, to
celem jest znalezienie wielomianu 𝐹(𝑡) opisanego w równaniu
𝐹(𝑡) =∑𝑎𝑖𝑡
𝑖 .
𝑛
𝑖=1
(9)
Ten wielomian powinien minimalizować funkcję błędu 𝐻(𝑡1, 𝑡2, … , 𝑡𝑛), np. średniokwadratowego,
𝐻(𝑡1, 𝑡2, … , 𝑡𝑛) =∑𝑤(𝑡𝑗) (�̆�𝑗 −∑𝑎𝑖𝑡𝑗𝑖
𝑚
𝑖=1
)
2
.
𝑛
𝑗=1
(10)
Jeśli założymy, że współczynnik funkcji wagowej 𝑤(𝑡𝑗) jest zawsze równy 1, to minimum tej funkcji
znajdujemy rozwiązując następujący układ równań.
{
𝜕𝐻
𝜕𝑎1= 0
𝜕𝐻
𝜕𝑎2= 0
…𝜕𝐻
𝜕𝑎𝑚= 0
(11)
Stopień wielomianu jest parametrem podlegającym wyborowi. Wartość tego parametru powinna
zapewnić szybkie rozwiązanie układu równań (11) oraz wymaganą dokładność aproksymacji.
Korzystając z aproksymowanej funkcji ciągłej, można dokonać dwóch istotnych obliczeń – interpolacji,
czyli wyliczenia wartości funkcji (estymacji stanu, pomiaru lub wyjścia) pomiędzy pomiarami
41
rzeczywistymi lub ekstrapolacji czy wyliczenia wartości funkcji (j. w.) po ostatnim pomiarze. To
ostatnie jest szczególnie użyteczne, ponieważ pozwala szybko prognozować wartość funkcji bez
konieczności pomiaru.
1.5. Opis pracy
Niniejszy podrozdział jest niejako streszczeniem całej pracy. Zawiera jej cel, tezę, założenia i zadania
badawcze, prezentuje wyniki w sposób syntetyczny oraz omawia dalszą jej zawartość.
1.5.1. Cel i teza
Jak było powiedziane w podrozdziale 1.2, pomysł na tę pracę dotyczył samochodów i mimo możliwego
uogólnienia na inne urządzenia sterowane przez człowieka, ostatecznie, ze względu na objętość pracy,
podjęto decyzję o zachowaniu ograniczenia do samochodów. Zadanie sterowania nowoczesnym
samochodem – lub inaczej kierowania – jest bardzo skomplikowane. Jego część spoczywa na kierowcy,
a część na samym samochodzie. Teza i cel tej pracy wynikają z istnienia kilku problemów lub cech
istniejącego podejścia do kierowania samochodem, takich jak różnego rodzaju konflikty, używanie
podejścia iteracyjnego, ograniczony dostęp do informacji lub ich zbędne powielanie, niedostateczna
wydajność sterowników, duża złożoność pojazdów oraz niedostateczne bezpieczeństwo informatyczne.
Konflikty
Podczas sterowania wieloma urządzeniami wykonawczymi, na podstawie danych z wielu czujników
i z wykorzystaniem wspólnej sieci teleinformatycznej, mogą następować konflikty danych, zasobów
i sterowania [81]. Sposoby rozwiązywania tych konfliktów są dobrze chronioną własnością
intelektualną ich twórców, więc można o nich mówić wyłącznie bardzo ogólnie. Konfliktów danych
najczęściej się nie rozwiązuje. Mimo że różne czujniki dostarczają danych o tym samym przedmiocie
(procesie, obiekcie lub właściwości) do wspólnej sieci, każdy sterownik wykorzystuje dedykowane
sobie czujniki, więc nie musi scalać różnych danych. W przypadku używania danych z wielu czujników,
np. radaru i kamery, sposób ich agregacji jest szczegółem implementacyjnym sterownika. Jedynym
współdzielonym zasobem informatycznym jest sieć, która łączy wszystkie podsystemy samochodu.
Wciąż popularna sieć CAN jest magistralą, która posiada system blokowania, więc konflikt zasobów
rozwiązywany jest tu poprzez oczekiwanie, aż zasób będzie wolny [82]. W przypadku zasobów
nieinformatycznych, ich konflikty najłatwiej rozwiązuje się poprzez zwiększanie tych zasobów,
np. przez zastosowanie mocniejszej instalacji elektrycznej [83].
Dość ciekawe jest podejście do konfliktów sterowania. Dochodzi do nich, kiedy różne sterowniki oraz
kierowca próbują jednocześnie wpływać na te same urządzenia wykonawcze. Stosuje się wtedy różne
metody, jak np. oczekiwanie, pomijanie sygnału sterującego lub priorytetyzację. W motoryzacji
najczęstsze i najprostsze jest oczekiwanie realizowane tutaj sprzętowo, poprzez oczekiwanie na dostęp
do szyny danych. Czasami może się zdarzyć, że sygnał czekał zbyt długo i jego wykonanie nie ma już
żadnego sensu. W takim wypadku jest po prostu pomijany. Niestety często zdarza się, że dwa sygnały
sterujące, przychodzące po sobie do tego samego urządzenia wykonawczego, są sprzeczne, np. jeden
zwiększa siłę hamowania, a drugi ją zmniejsza. W prostszych, mniej zaawansowanych systemach
sieciowych, obydwa sygnały są wykonywane, co w połączeniu z tym, że żaden nie jest skuteczny
natychmiast (wymaga raczej kilku cykli), prowadzi do tego, że żaden z nich nie spełnia swojej roli [82].
Na wyższym poziomie następuje ustalanie priorytetów wewnątrz sterowników, np. nadawanie
42
wyższego priorytetu sygnałowi zwiększającemu bezpieczeństwo nad takim, który zapewniłby komfort.
Stąd jest już prosta droga do najlepszego sposobu rozwiązywania wszystkich wspomnianych konfliktów
– optymalizacji algorytmów, które je generują. Jako że te algorytmy wykonywane są pierwotnie
na różnych sterownikach, często wiąże się to z ich fizycznym i logicznym łączeniem [3].
Podejście iteracyjne
Inną cechą współczesnych systemów informatycznych stosowanych w samochodach jest ich
bezstanowość. Jeśli system używa np. kamery do modelowania wycinka świata rzeczywistego, to wraz
z każdą nową klatką obrazu z tej kamery, ponawia tę operację od początku bez wykorzystania wiedzy
historycznej. W ten sposób marnuje się energię i czas procesora [84].
Ograniczony dostęp do powielonych informacji
Współczesne samochody wyposażone są w dziesiątki lub nawet setki czujników. Mogą to być
skomplikowane urządzenia, jak kamery, radary (lub LIDAR-y – ich laserowe, bardziej dokładne
odpowiedniki), mikrofony, czujniki magnetyczne i ultradźwiękowe lub bardzo proste urządzenia –
akcelerometry, termometry, ciśnieniomierze, mierniki położenia, mierniki przepływu gazu albo cieczy.
Istotne jest to, że są one elementami składowymi różnych systemów. Przykładowo, system
rozpoznawania znaków drogowych wyposażony jest w kamerę, podobnie - system wykrywania
pieszych lub zwierząt na drodze również wyposażony jest w kamerę. Obie umieszczone są
na podszybiu, obok lusterka wewnętrznego i monitorują mniej więcej ten sam rejon otoczenia
samochodu (rysunek 14).
Rysunek 14 Umieszczenie sensorów na podszybiu samochodu [85]
Bardzo często nie może to być jedna kamera, ze względu na różną genezę obu systemów. Zdarza się, że
jakiś system nie jest wyposażony w czujnik, którego mógłby użyć, a jednocześnie inny system taki
czujnik posiada. Na przykład system automatycznych świateł w wielu samochodach nie posiada
żadnego czujnika wilgotności szyby, więc nie potrafi uruchomić świateł, gdy pada deszcz. Ważniejszym
przykładem niech będzie system bezpieczeństwa czynnego, który dzięki radarowi wykrywa obiekt
na drodze, jednak nie jest wyposażony w kamerę, która pozwoliłaby ten obiekt sklasyfikować i dzięki
temu przewidzieć jego zachowanie. Rozwiązanie tych dwóch problemów jest oczywiste,
43
ale jednocześnie trudne do wykonania. Należy po prostu dzielić się danymi pomiędzy systemami. Jest
to prostsze, jeśli wszystkie pochodzą z jednego źródła, jednak nie zdarza się to często.
Niedostateczna wydajność sterowników
Jak było już powiedziane, nad jazdą samochodu czuwa wiele systemów informatycznych jednocześnie.
Ich liczba implikuje rosnące wymagania sprzętowe. Każdy pojedynczy sterownik zajmuje miejsce,
ma określoną masę, potrzebuje odpowiednich czujników, przewodów i energii. Te wszystkie zasoby
są ograniczone. Niektóre z tych problemów można by obejść, stosując droższe rozwiązania
(wydajniejsze sieci elektryczne, wydajniejsze mikroprocesory), jednak najczęściej ten sam system
stosuje się we wszystkich samochodach danej marki ze wszystkich klas i półek cenowych, więc nie ma
możliwości przerzucenia tych kosztów na klienta. Niestety, niektórych problemów nie można rozwiązać
w ten sposób - np. zwiększenie nakładów nie zmniejszy ilości kabli poprowadzonych w nadwoziu.
Rosnąca złożoność
Kolejną cechą współczesnej motoryzacji, a może technologii w ogóle, jest chęć zaproponowania
klientowi kolejnych elementów wyposażenia. W związku z tym produkowane są coraz to nowe i nowe
systemy wsparcia, „wirtualni asystenci” i funkcje dodatkowe. Wiele z nich jest tylko dziełem
marketingu i wynajdywaniem skomplikowanych nazw do prostych rozwiązań, jednak co jakiś czas
pojawia się rzeczywiście nowy, skomplikowany system, który implementuje się obok już istniejących.
Pozwala to klientowi wybrać te systemy wsparcia, które chciałby mieć w swoim samochodzie, a
pominąć inne, ale też pozwala podwykonawcom sprzedać nowe rozwiązania swoim klientom – firmom
motoryzacyjnym. Traci na tym klient końcowy, który nie może rozwijać już wyprodukowanego
samochodu (np. po zakupie na rynku wtórnym) lub płaci za dodatkowe funkcje – często
niedopracowane, bez możliwości aktualizacji i instalacji poprawek, a co za tym idzie – zawodne.
Rozwiązaniem tego problemu byłaby oczywiście redukcja tej złożoności poprzez integrację wielu
systemów w jeden.
Bezpieczeństwo informatyczne
Ten temat od dawna był pomijany przez producentów samochodów. Trudno jest sprzedać nowe metody
szyfrowania czy weryfikacji dostępu, kiedy klient kupując samochód, często jest nieświadomy
obecnych w nim komputerów. Istnieją bardzo interesujące wektory ataku na samochody [86].
przykładowo:
a) metody podsłuchania i ingerencji w sieć CAN bezprzewodowo, bez fizycznej ingerencji
w samochód;
b) metody dostępu do ważnych systemów odpowiedzialnych za bezpieczeństwo w samochodzie
(np. układu hamulcowego) poprzez instalację złośliwego oprogramowania w nieistotnych
systemach peryferyjnych (np. radiu);
c) metody wpływania na ważne systemy w samochodzie, np. oszukiwanie systemu ESP w celu
zablokowania jednego z kół podczas szybkiej jazdy.
Rozwiązaniem jest inwestycja w bezpieczeństwo informatyczne, co niestety skomplikuje każdy
z istniejących systemów, albo wprowadzenie jednej warstwy bezpieczeństwa chroniącej cały samochód.
44
To ostatnie jest problematyczne tak długo, jak jego systemy składowe mają niewiele cech wspólnych,
a wiele różnych niezależnych luk bezpieczeństwa.
Teza pracy
Wszystkie, wymienione wyzwania, stojące przed projektantami współczesnych samochodów, implikują
jeden, następujący wniosek. Należy redukować liczbę systemów informatycznych w samochodach,
jednocześnie zachowując ich funkcjonalność i zostawiając możliwość ich rozwoju. Już teraz
dokonywane są tego typu zmiany, np. systemy ABS, ESP, EBD, BAS i ASR jednoczą się i stają się
jednym systemem [3]. Taki system ma wspólną warstwę bezpieczeństwa (takie samo szyfrowanie
wiadomości), używa tych samych zasobów sprzętowych (kable, sensory), a oddzielne sterowniki
realizujące algorytmy szczegółowe, zamienione są na pojedynczy sterownik realizujący zintegrowany
algorytm, spełniający kilka zadań, których architektura (zarówno sterownika, jak i algorytmu) może być
przemyślana wspólnie i spójnie. Konsekwencją dotychczasowych rozważań jest przyjęcie tezy
rozprawy w następującej postaci.
Możliwe jest opracowanie scentralizowanego algorytmu kierowania pojazdem, agregującego
obecnie stosowane algorytmy szczegółowe – lepszego od nich pod względem bezpieczeństwa
i komfortu jazdy.
Następujące uwagi doprecyzowują tezę.
Po pierwsze, należy ją ograniczyć do funkcji samochodu, które wpływają na jazdę. Dobrze by było,
gdyby realizacja fizyczna takiego algorytmu, czyli sterownik, pozwoliła na tym samym komputerze
realizować np. system info-rozrywki czy sterowanie klimatyzacją, jednak nie jest to priorytet. Poza tym,
taki system musi koniecznie agregować dane ze wszystkich sensorów na swoje potrzeby, a istniejące
systemy niepowiązane z jazdą samochodu, które również tych danych potrzebują, powinny wykorzystać
zebrane już dane, co oznacza, że w takim razie ten system musi posiadać interfejs eksportujący je
w sposób programowy, ewentualnie sprzętowy, na podstawie istniejących protokołów sieciowych.
Po drugie, należy zdefiniować funkcję oceny takiego algorytmu, czyli co to znaczy, że jest on „lepszy”.
Można mówić o jego zapotrzebowaniu na energię lub o masie komputera, który go realizuje, jednak
te cechy zmieniają się dość szybko, wraz z postępem techniki. Taki system należałoby więc oceniać
w kategoriach dynamicznych – jak radzi sobie ze sterowaniem samochodem. W tym celu proponuje się
oceny zagregowane w postaci kryteriów bezpieczeństwa jazdy i komfortu jazdy. Te kwestie będą
dokładniej omówione w punkcie 4.1.2. Oprócz tego, taki system musiałby rozwiązywać znane już
problemy. Można je podzielić na dwie kategorie – znane z motoryzacji, np. zapobieganie poślizgowi
kół podczas hamowania z jednoczesnym zachowaniem krótkiej drogi hamowania oraz inne - znane
głównie z informatyki lub robotyki, np. problem jednoczesnego lokalizowania i mapowania lub
problem fuzji danych z różnych sensorów. Jednak bardzo ważne jest, że rozwiązywanie takich
problemów nie jest celem tej pracy, więc ocenianie zadań cząstkowych może dać wynik niekorzystny,
podczas gdy najważniejsze kryteria będą ocenione pozytywnie. Poza tym, okazuje się, że trudno jest
zbudować wiarygodne porównanie systemu realizującego jedną tylko funkcję oraz systemu, który ma
inne założenia i inne parametry wejściowe i wyjściowe, a przy okazji realizuje również tę funkcję.
Przykładowo model otoczenia jest tylko elementem IDSA, służącym do realizacji głównego celu, a jego
45
celem samym w sobie, więc budowany algorytm nie powinien być porównywany z algorytmem
przetwarzającym dane radarowe, którego celem jest wyłącznie budowanie takiego modelu.
Ostatecznie, należy pokazać, co nazywamy współczesnym samochodem i które algorytmy szczegółowe
są zastępowane. Jak było wspomniane, motoryzacja rozwija się bardzo szybko, więc należy dość
dokładnie opisać pojazd referencyjny. Zostanie to pokazane w podrozdziale 3.2.
Cel pracy
Celem pracy jest weryfikacja postawionej tezy. W niniejszym przypadku postanowiono dokonać
weryfikacji eksperymentalnej, czyli zaproponować pojedynczy sterownik sterujący pojazdem. Sam
sterownik jest jednak rozwiązaniem sprzętowym, a jego sprzętowa architektura nie jest obiektem
zainteresowania tej pracy. W takim razie skupiono się na jego warstwie programowej, czyli
na algorytmie, który mógłby w takim sterowniku być zastosowany. Jak napisano w podrozdziale 1.2,
zaproponowany w tym celu algorytm nazwano IDSA.
Tak więc, celem pracy jest opracowanie algorytmu umożliwiającego zintegrowanie zadania
sterowania samochodem, a także jego weryfikacja w środowisku symulacyjnym.
Ta druga kwestia wiąże się przede wszystkim z jego implementacją i strojeniem, a także
z zaprojektowaniem i wykonaniem badań w formie eksperymentów porównawczych z samochodem
sterowanym w sposób klasyczny.
1.5.2. Zadania badawcze
Wykonanie następujących zadań badawczych, podzielonych na trzy etapy, umożliwiła realizację tak
postawionego celu oraz uzasadnienie tezy. W realizacji tych zadań wykorzystano badania zachowania
samochodu w warunkach symulacyjnych, przy okazji modelowania jego zawieszenia na potrzeby pracy
magisterskiej [87], a także koncepcję sterownika samochodu autonomicznego, która była rozwijana
na potrzeby Koła Naukowego Pojazdów i Robotów Mobilnych działającego na Politechnice
Wrocławskiej w latach 2011-2013.
Projektowanie algorytmu
Podczas projektowania algorytmu przyjęto założenia, które można streścić jako maksymalne
wykorzystanie istniejących zdobyczy nauki z zakresu informatyki, zamiast rozwiązywania problemów
znanych w motoryzacji. W ten sposób podjęto decyzję o holistycznym spojrzeniu na cały problem
sterowania samochodem. Podczas projektowania, poszczególne składowe algorytmu były zastępowane,
łączone oraz dzielone, aż uzyskano jego ostateczną formę.
Implementacja algorytmu
W celu przebadania IDSA, zdecydowano się na jego implementację w języku programowania Java oraz
z zastosowaniem znanych protokołów sieciowych. Do testowania implementacji zweryfikowano
przydatność kilku symulatorów, aż ostatecznie wybrano środowisko Unity3D z biblioteką Vehicle
Physics Pro. W tym środowisku utworzono dwa modele pojazdów – referencyjny oraz sterowany przez
IDSA. Obydwa były podczas prac wielokrotnie modyfikowane.
46
Badania
Pierwszą częścią badań, wykonaną równolegle z implementacją, było strojenie – zarówno samych
wirtualnych pojazdów (ich parametrów fizycznych), istniejących systemów wsparcia kierowcy (np.
ABS, czy ESP), jak i tworzonego na bieżąco algorytmu. Następnie zaproponowano typ eksperymentów
(statystycznych, Driver-in-the-loop) oraz scenariusz badań.
1.5.3. Zakres i ograniczenia
Poniżej przedstawiono listę wszystkich ograniczeń przyjętych w badaniach – zarówno odnoszących się
do badanego IDSA, jak i tej pracy.
a) Wszystkie zagadnienia techniczne związane z badanych algorytmem, jak interfejsy sprzętowe,
zapotrzebowanie na energię, rozmiar sterownika itd., są pominięte. Zakłada się, że IDSA
realizowany jest na komputerze klasy PC.
b) Podczas badań używano komputera wyposażonego w procesor Intel Core i7-7700K, 16GB
pamięci RAM, dysk SSD i kartę graficzną nVidia GeForce GTX 1080. IDSA komunikuje się
z wykorzystaniem protokołów TCP oraz UDP. Założono, że IDSA i sterownik dają się
zabezpieczyć ogólnie znanymi metodami (szyfrowanie, podpisywanie wiadomości, kontrola
dostępu) i pominięto analizę zabezpieczeń.
c) Pominięto sterownik zapasowy, który byłby konieczny na wypadek awarii w rzeczywistym
systemie realizującym IDSA.
d) Bardziej istotne są wymagania, które postawiono przed IDSA. Jego zadaniem jest
przyjmowanie sygnałów od kierowcy w postaci położenia pedałów gazu i hamulca oraz
położenia kierownicy. Podczas badań korzystano także z wybierania biegów: do jazdy
do przodu oraz do tyłu, jednak ewaluacja dotyczy jedynie jazdy do przodu.
e) Przyjęto następujące ograniczenia dotyczące urządzeń wykonawczych.
Tabela 3 Założenia dotyczące urządzeń wykonawczych
Urządzenie
wykonawcze Przyjęte założenia
Silnik
Regulacja mocy współczesnego silnika spalinowego, to wiele parametrów.
Uznano, że w sytuacji rzeczywistej realizowałby to oddzielny program
komputerowy, przyjmujący na wejściu jeden parametr. Roboczo nazwano go
położeniem przepustnicy.
Hamulce Założono, że siłę hamowania podaje się osobno na każde z czterech kół.
Skręt kół Założono, że każde koło może być sterowane osobno, jednakże z ograniczeniem
do zasady Ackermana.
Zawieszenie
Założono możliwość regulowania wysokości oraz współczynników sprężystości
i tłumienia zawieszenia każdego koła oraz współczynników sprężystości
każdego z dwóch stabilizatorów (na przedniej i tylnej osi)
Układ
przeniesienia
napędu
Założono użycie sprzęgła zdolnego do przenoszenia zadanego odsetka momentu
obrotowego oraz bezstopniowej skrzyni biegów i mechanizmów różnicowych
bez poślizgu, zdolnych do pełnego wektorowania ruchu obrotowego (dowolnej
zmiany proporcji jego prędkości pomiędzy poszczególnymi kołami jezdnymi).
47
f) Każdy z parametrów wspomnianych w tabeli 3 (położenie przepustnicy, siła hamowania
każdego z kół, itd.) realizowany jest w IDSA jako zmienna w zakresie < −1,1 > lub < 0,1 >
(patrz tabela 6). Wartości te są przekształcane na wartości fizyczne w zakresach wyznaczonych
podczas strojenia symulatora, np. współczynnik tłumienia od 1000 do 5000.
g) W badaniach użyto pojazdu referencyjnego, wyposażonego w znane systemy bezpieczeństwa
oferowane przez Vehicle Physics Pro oraz zarządzającego tymi samymi parametrami,
co algorytm w pojeździe badanym.
h) Badania mają charakter statystyczny, przeprowadzono je z wykorzystaniem symulatora oraz
w modelu human-in-the-loop (tutaj: driver-in-the-loop).
i) Zadaniem IDSA jest realizowanie sterowania samodzielnie, czyli kierowca nie ma możliwości
wpływania na samochód inaczej niż przez algorytm (drive-by-wire [88]).
j) Zadaniem IDSA jest sterowanie w czasie rzeczywistym, czyli przekształcanie poleceń kierowcy
na natychmiastową reakcję samochodu.
k) Polecenia kierowcy nie są realizowane bezpośrednio, tzn. skręt kierownicy nie powoduje skrętu
kół. Zamiast tego elementem pośrednim jest trójwymiarowa trajektoria pojazdu. Skręt
kierownicy zmienia trajektorię, a zmiana trajektorii oznacza zmianę położenia kół.
l) Trajektoria ruchu obliczana jest z uwzględnieniem wiedzy o otoczeniu, tj. w taki sposób, żeby
unikać wypadków i maksymalizować komfort.
m) Sterownik realizujący IDSA jest jedynym sterownikiem w pojeździe. Jego sygnały sterujące
interpretowane są przez sterownik silnika, hamulców czy zawieszenia, jednak żaden inny
algorytm ani sterownik nie może ich modyfikować, np. przerywać działania układu
hamulcowego.
n) IDSA nie musi wypełniać tych samych funkcji, co istniejące systemy bezpieczeństwa.
Przykładowo, jeśli uzna, że zablokowanie kół jest potrzebne, to na to pozwoli, mimo że przy
klasycznym podejściu zadziałałby układ ABS.
o) IDSA składa się z procesów asynchronicznych. Każdy proces ma swoją definicję i problem,
który rozwiązuje. Celem pracy i sensem IDSA jest prawidłowe dobranie i połączenie procesów,
a nie ich implementacja. Na potrzeby badań zaproponowano implementację każdego
z procesów (rozwiązanie każdego z problemów) jednak nic nie stoi na przeszkodzie, żeby każdy
z procesów wymienić na inny, rozwiązujący ten sam problem przy tych samych danych
wejściowych i wyjściowych, ale w inny sposób. Na przykład, do interpolacji funkcji użyto
metody wielomianowej, ale równie dobrze można zamienić ją, np. na trygonometryczną.
p) Procedura strojenia IDSA to zarówno dobieranie parametrów każdego procesu, jak i wybór
metody rozwiązania stojącego za nim podprocesu.
q) IDSA nie działa w sposób sekwencyjny, tzn. pojawienie się danych na jego wejściu
nie wyzwala obliczeń i pojawienia się wyniku. Wyniki generowane są w chwilach wybranych
przez algorytm.
r) IDSA buduje i eksportuje stan pojazdu oraz mapę otoczenia, na którą składa się lokalizacja,
trajektoria i wynik klasyfikacji obiektów zewnętrznych.
s) Ocena IDSA oparta jest na pojęciach „komfort jazdy” i „bezpieczeństwo jazdy”.
Bezpieczeństwo jazdy rozumiane jest jako prawdopodobieństwo wypadku, a także
przyczepność, uślizg kół i niezamierzone przez kierowcę zmiany w zachowaniu pojazdu.
48
Komfort jazdy jest definiowany jako mierzalne parametry drgań, falowania i pochyleń
nadwozia, a także konieczność gwałtownych ruchów kierownicą.
1.5.4. Uzyskane rezultaty
Po przeprowadzeniu badań udało się uzasadnić tezę, czyli zaproponować algorytm zintegrowany
(IDSA), który może być realizowany w pojedynczym sterowniku sterującym samochodem.
Już na podstawie pierwszych opublikowanych wyników badań [37] można powiedzieć,
że z wykorzystaniem proponowanego algorytmu:
a) Prawdopodobieństwo wypadku podczas przewidzianych w badaniach eksperymentów spadło z 0,15
do 0,04
b) Maksymalne przechylenie nadwozia zmniejszyło się z 12,3[°] do 0,5[°]
c) Maksymalny uślizg koła ograniczono z 6,6[𝑚
𝑠] do 2,1[
𝑚
𝑠]
d) Maksymalna zmiana prędkości spowodowana koniecznością ustabilizowania samochodu spadła
z 68[𝑘𝑚
ℎ] do 42 [
𝑘𝑚
ℎ]
Zasadniczą przyczyną istotnej poprawy liczbowych wartości tych wskaźników oceny jazdy samochodu
jest proaktywne działanie IDSA. Polega ono na uprzedzającym unikaniu niepożądanych sytuacji zamiast
reagowania na ich wystąpienie. W ten sposób udało się osiągnąć wyższe wyniki pod względem
zaproponowanych wskaźników zagregowanych, tzn. w ujęciu systemowym, czyli pod względem
holistycznego zachowania samochodu, mimo że w ujęciu klasycznym ten sam cel jest osiągany przez
wiele algorytmów szczegółowych - o różnych celach szczegółowych, a w ujęciu badanym – jedynie
przez IDSA.
1.5.5. Wkład pracy w rozwój informatyki
Mnogość używanych w samochodach algorytmów i konieczność ciągłego ich rozwoju, stawiają przed
ich konstruktorami wymaganie korzystania z informatyki, jako dziedziny nauki – zarówno w zakresie
narzędzi jak i metod przetwarzania informacji. Niniejsza praca prezentuje nową metodę
ich przetwarzania, skoncentrowaną na integracji istniejących rozwiązań informatycznych.
Bardzo dobrze wpisuje się ona w trend naukowy, dotyczący zarówno motoryzacji, jak i informatyki –
myślenie systemowe. Jak pokazano w podrozdziale 1.3 oraz punkcie 1.5.1, w samochodzie należy
podejmować wiele decyzji, które są ze sobą wzajemnie powiązane. Przykładem powiązania fizycznego
jest używanie tych samych urządzeń wykonawczych i sensorów, ale wynika z niego też powiązanie
logiczne – gdy jeden system wsparcia kierowcy (np. LKA) zmienia prędkość kół, a inny system
(np. ESP) musi uwzględnić tę zmianę podczas swojego procesu decyzyjnego. Właśnie w takich
warunkach można zastosować myślenie systemowe. W informatyce jest ono dość powszechne, o czym
świadczą takie prace, jak [89, 90, 91]. W motoryzacji ten kierunek rozpoczął się od sterowników
wielodomenowych już kilka lat temu [8, 92], ale wciąż jest obecny zarówno w nauce [93],
jak i wdrożeniach rynkowych [94]. Poza motoryzacją, myślenie systemowe stosuje się obecnie w wielu
dziedzinach nauki [95, 96, 97]. Warto jeszcze wspomnieć, że myślenie systemowe z wykorzystaniem
zdobyczy informatyki jest już od dawna i z powodzeniem stosowane np. w lotnictwie [98].
49
W pracach dotyczących zastosowań informatyki w motoryzacji, myślenie systemowe dotyczy
najczęściej integracji niektórych systemów wsparcia kierowcy w jeden [99], ale rzadziej integracji
wszystkich systemów wsparcia. Problem integracji wszystkich systemów wsparcia został
już zasygnalizowany w [100], jednak nie zaproponowano jeszcze rozwiązania, które byłoby gotowe
do wdrożenia. Zamiast tego, dominującym kierunkiem integracji systemów wsparcia kierowcy
jest obecnie stworzenie platformy AUTOSAR [3], która przenosi zależności fizyczne go zależności
programowych.
Niniejsza rozprawa wypełnia dokładnie tę lukę – zastosowania informatyki do stworzenia
zintegrowanego algorytmu zarządzania dynamiką pojazdu, wypełniającego zadania wszystkich obecnie
stosowanych systemów wsparcia kierowcy oraz zapewnienia bezpieczeństwa jazdy i komfortu jazdy.
Oprócz tego, wartym uwzględnienia punktem, jest efekt uboczny prac nad IDSA – nowatorska metoda
wykorzystania sieci neuronowych do lokalizowania obiektów w obrazach i mapach zajętości. Jako,
że nie była ona celem tej pracy, jej zaproponowana postać jest bardzo prosta, ale też bardzo obiecująca.
Z pewnością zasługuje ona na rozwój podczas dalszych prac.
1.5.6. Przegląd zawartości pracy
Dalsza część pracy składa się z 4 głównych rozdziałów. Całość jest uzupełniona wykazem pozycji
literaturowych na końcu oraz streszczeniem w dwóch językach a także spisami ilustracji i tabel
na początku dokumentu.
W rozdziale 2 opisano algorytm zintegrowany nazwany IDSA, podając jego budowę i zasadę działania,
a następnie każdy ze składających się na niego procesów. W rozdziale 3 przedstawiono techniczną
część badań – wybór środowiska symulacyjnego oraz jego implementację, a także zarys implementacji
algorytmu. Ta część zawiera także opis procesu strojenia środowiska testowego oraz pojazdu
referencyjnego. Rozdział 4 zawiera opis badań algorytmu. Tutaj znajduje się plan badań oraz opis
zaproponowanych badanych parametrów i wskaźników oceny, opis przeprowadzonych eksperymentów
oraz opis procesu doboru parametrów IDSA. W tej części zaprezentowano także uzyskane wyniki oraz
ich analizę, a także płynące z niej wnioski. Ostatnią część należy traktować jako podsumowanie,
przedstawiające najważniejsze wyniki, kierunki dalszych prac i uwagi wdrożeniowe.
50
2. OPIS ALGORYTMU IDSA I ZAŁOŻENIA PROJEKTOWE
W celu weryfikacji postawionej tezy, zaproponowano zintegrowany algorytm heurystyczny nazwany
IDSA, realizujący zadanie sterowania pojazdem, będący rozszerzeniem koncepcji sterowników
wielodomenowych [8], a jednocześnie nie wyczerpujący znamion jazdy autonomicznej [68]. Wykonuje
on zadanie sterowania pojazdem samodzielnie, ale jednocześnie ukrywa to przed użytkownikiem
poprzez precyzyjne wykonywanie jego poleceń w taki sposób, żeby nie zdawał on sobie sprawy z ciągłej
interpretacji jego poleceń przez jakikolwiek algorytm. Ten rozdział ma za zadanie przedstawić zasadę
działania, konstrukcję, założenia i elementy składowe IDSA.
Od rozpoczęcia badań pewne było, że wytworzony w ich ramach algorytm musi być samodzielny w taki
sposób, żeby nie współpracował z innymi sterownikami i znanymi rozwiązaniami. Oznacza to, że
generowane przez niego sygnały sterujące nie są intepretowane przez inne systemy decyzyjne, a tylko
bezpośrednio przez urządzenia wykonawcze. Przykładowo, operacja hamowania wykonywana jest
bezpośrednio przez pompy hamulcowe i/lub regulatory przepływu płynu hamulcowego, a nie przez
układ ABS/ESP/BAS/EBD, który decydowałby, w jaki sposób zrealizować to hamowanie. Prowadzi to
do dwóch oczywistych wniosków. Po pierwsze, algorytm pracuje na jedynym sterowniku obecnym
w pojeździe, a wszystkie inne systemy bezpieczeństwa są w nim nieobecne. Po drugie, funkcjonalność
wszystkich nieobecnych systemów bezpieczeństwa i wsparcia musi być realizowana przez IDSA. Nie
chodzi tu jednak o to, żeby przenieść ich funkcje z oddzielnych sterowników fizycznych na kolejną
warstwę programową, np. wysłać sygnał hamowania do oddzielnej aplikacji, która wykona zadanie
systemu ABS unikając blokowania kół. Zamiast tego IDSA musi wygenerować taki sygnał, który od
razu uwzględni zapobiegnie temu zjawisku, jeśli uzna to za konieczne.
Z powyższego akapitu wynika jeszcze jedno założenie – wszystkie konflikty sterowania pomiędzy
sterownikami rozwiązano rezygnując z zastosowania wielu sterowników na rzecz jednego, jednak
w systemie wciąż jest obecny wpływający na jazdę kierowca. W wielu sprzedawanych aktualnie
samochodach kierowca jest ostatecznym decydentem, przynajmniej przez większość czasu. Mówiąc
dokładniej, układy kierownicze wciąż realizowane są w sposób mechaniczny (z drobnymi wyjątkami,
jak np. opisany w pracy [101]), przyspieszanie już od dawna realizowane jest elektronicznie, a układ
hamulcowy może być sterowany zarówno przez kierowcę, jak i przez komputer. W niniejszej pracy,
zdecydowano się nie tylko zastosować sterowanie typu drive-by-wire, ale także zrezygnowano
z bezpośredniego przekazywania sygnałów wejściowych od kierowcy do urządzeń wykonawczych,
nawet w sposób programowy lub przez bezpośrednie przekształcenie. Zamiast tego, sygnały wejściowe
są przetwarzane asynchronicznie w niezależnych procesach, jak przedstawiono w punkcie 2.5.
Oprócz tego, podczas prac nad algorytmem odrzucono tematykę jazdy autonomicznej. Jak pokazują
dostępne dziś na rynku rozwiązania, ta technologia oraz dziedzina nauki wciąż są niedoskonałe, a poza
tym wciąż istnieje grupa kierowców, którzy sami chcą kierować swoimi autami. Nie można jednak
uznać, że samochody autonomiczne nie istnieją. Niektóre zastosowane rozwiązania, np. użycie lidarów,
elementy drive-by-wire lub koncepcja mapowania otoczenia, są wspólne dla prezentowanego algorytmu
i pojazdów autonomicznych. Poza tym, prezentowane rozwiązanie przyjmuje parametry wejściowe
(prędkość i kierunek jazdy) od kierowcy, jednak nic nie stoi na przeszkodzie, żeby zastąpić go
oddzielnym algorytmem realizującym zadanie jazdy autonomicznej.
51
Kolejnym założeniem, leżącym u podstaw tych badań, jest użycie rozwiązań informatycznych. Wynikło
to z założenia, bliższego prawdy kilka lat temu, gdy rozpoczynano prace, niż w 2020 roku, że firmom
z branży motoryzacyjnej brakuje wiedzy i specjalistów z branży informatycznej. Wydawało się wtedy,
że firmy motoryzacyjne próbują „na siłę wyważać otwarte drzwi” i rozwiązują problemy, które już
dawno zostały rozwiązane. Było to widać na co dzień, podczas obserwacji większości samochodów, że
producenci, montują np. systemy info-rozrywki odbiegające znacząco jakością od współczesnych
telefonów komórkowych i tabletów lub implementują skomplikowane menu komputerów
pokładowych, ignorując wszystkie lata badań nad interakcjami pomiędzy człowiekiem a maszyną.
Mimo że dokumentacja najważniejszych systemów wsparcia obecnych w samochodach nie jest
dostępna publicznie, nie ma podstaw przypuszczać, że w ich wypadku jest to wykonywane lepiej. Jako
że niniejszy projekt miał być od początku projektem informatycznym, skupiono się na jego
informatycznych aspektach, pomijając wiele bardzo istotnych zagadnień związanych z mechaniką
i budową maszyn. Poza tym, skupiono się na samym zintegrowanym algorytmie, pomijając wszystkie
jego informatyczne zależności, jak szczegóły sprzętowe sterownika czy używanej sieci informatycznej.
Zamiast tego założono, że całą pracę wykonuje jeden sterownik, będący korzeniem sieci typu fat tree
[102], a wszystkie urządzenia wykonawcze i sensory stanowią jej liście. Nie rozważano też kwestii
odporności na awarie, założywszy, że w takiej sytuacji rolę sterowania pojazdem przejmie prosty,
zapasowy sterownik, nie będący częścią niniejszej pracy.
Jednym z założeń było bazowanie na gotowych rozwiązaniach. Zakładano, że w informatyce istnieją
już wszystkie elementy wymagane, żeby w odpowiedni sposób realizować sterowanie pojazdem –
wszystkie metody szeregowania zadań, przesyłania i zapisywania danych, analizy danych wejściowych,
generowania i przesyłania danych wyjściowych i oczywiście wszystkie konieczne metody
przetwarzania informacji. Niestety po podzieleniu zadań, okazało się, że nie istnieje żadna znana metoda
odpowiedniej analizy danych wejściowych, dotyczących otoczenia pojazdu, spełniająca założone
wymagania. W takim wypadku jeden komponent (proces przetwarzania danych o otoczeniu) musiał
zostać opracowany od podstaw na potrzeby tej pracy. Należy podkreślić, że wszystkie procesy pokazane
w tej pracy są przykładowe, a celem pracy nie jest propozycja ich implementacji, a sposób ich
połączenia. Oznacza to, że rozdział 2 zawiera opis IDSA, a podrozdział 4.3 – opis jego strojenia.
2.1. Geometryczna mapa otoczenia pojazdu
Co oczywiste, algorytm spełniający powyższe założenia musi „znać” otoczenie pojazdu. Zgodnie
z decyzją Unii Europejskiej, każdy nowy samochód musi być wyposażony w system EBA, który
wymaga radaru lub kamery. Współcześnie oczywiste jest, że samochód autonomiczny „obserwuje”
swoje otoczenie przy pomocy wielu kamer, radarów, lidarów i czujników. Model otoczenia pojazdu
wytworzony na podstawie danych uzyskanych z lidaru Velodyne Alpha Prime [103] można przedstawić
jak na poniższym rysunku.
52
Rysunek 15 Model otoczenia wytworzony z użyciem lidaru Velodyne Alpha Prime na podstawie [103]
Taki lidar oferuje macierz dwuwymiarową, zawierającą odległości najbliższych punktów
od obserwatora. Użyty za przykład lidar oferuje rozdzielność kątową 0,2[°] x 0,1[°] i zakres pracy
360[°] x 40[°] oraz zasięg 3[𝑐𝑚] − 245[𝑚], co daje macierz o wymiarach 1800 x 400 x 200. Dane
w tej formie niewygodnie się przetwarza, więc lepiej zamienić je na tzw. mapę zajętości [104], czyli
macierz trójwymiarową, przedstawiającą otoczenie w kartezjańskim układzie współrzędnych, użytą
choćby do wygenerowania rysunku 15. Należy wspomnieć, że nowoczesne lidary zwracają także wektor
normalny znalezionych powierzchni, jednak ta informacja została w badaniach pominięta, ze względu
na jej niewielką przydatność oraz znaczny wzrost obciążenia symulatora, wynikający z jej pobierania.
Obraz z kamery jest łatwiejszy do wyobrażenia – może to być mniej więcej to, co widzi
kierowca, kamera może być skierowana do tyłu, w bok, a także może mieć różne kąty widzenia,
najczęściej do 180[°]. W przypadku odczytu kolejnych klatek z kamery, można wykorzystać algorytm
SLAM [6] do budowania mapy zajętości, prawdziwej dla każdej chwili kolejnego pomiaru i podobnej
do tej otrzymanej na podstawie danych z lidaru. Znane są także prace, które łączą dane z lidaru i kamery
w celu zwiększenia precyzji i redukcji błędu pomiarowego [105]. Takie podejście ma jednak kilka wad.
Przy założeniu, że w pojeździe zamontowanych jest wiele kamer i lidarów o różnych parametrach
(częstotliwość, rozdzielczość i badany wycinek otoczenia), zadanie połączenia wszystkich danych staje
53
się trudne – tym bardziej w czasie rzeczywistym. Po drugie, otrzymany w ten sposób model może mieć
ogromny rozmiar (np. zakładając rozdzielczość lidaru dookólnego 5[𝑐𝑚], zasięg 245[𝑚] oraz 40[°]
w pionie, otrzymujemy około 323 miliardy punktów, wymagających dalszej analizy, czyli rozpoznania
pojazdów, ich zachowania, a także elementów infrastruktury, takich jak znaki drogowe, czy pasy jezdni.
W obliczu tego problemu postanowiono w niniejszej pracy pominąć wytwarzanie mapy zajętości
i skupić się na danych przetworzonych. Zamiast niej użyto lokalizacji obiektów w otoczeniu względem
podmiotu sterowania, ich kształtu oraz rozpoznanych klas i parametrów. Przykładowo, na rysunku 15
widać 8 pojazdów, 8 pasów ruchu w dwóch kierunkach, jeden znak drogowy, jeden wiadukt i otoczenie,
w którym może znajdować się kilkanaście obiektów (drzew, krzewów lub budynków). Zdecydowano
się zapisać pozycję każdego z nich, wynik jego klasyfikacji (np. „pojazd”, „pas ruchu”) i dodatkowe
parametry (np. znaczenie znaku drogowego lub kierunek pasa ruchu). W ten sposób uzyskany model
danych jest znacząco mniejszy oraz zawiera tylko istotne informacje. Podobny sposób redukcji danych
używanych do przechowywania modelu drogi i ruchu ulicznego przedstawiono w pracy [25].
Taki model danych ma kilka podstawowych zalet. Jak już wspomniano jest mniejszy od mapy zajętości
i nie wymaga dalszego przetwarzania. Poza tym nie traci podstawowej jej zalety, czyli można na jego
podstawie wygenerować taką mapę lub trójwymiarową wizualizację, jak np. na rysunku 16.
Rysunek 16 Model otoczenia utworzony na podstawie modelu geometrycznego
Każdy obiekt widoczny na wizualizacji, posiada następujące parametry:
a) Pozycja uogólniona względem obserwatora
b) Rozpoznana klasa obiektu
c) Rozpoznane parametry obiektu
d) Kształt (zależnie od klasy)
54
Pozycja uogólniona, to pozycja (𝑥, 𝑦, 𝑧) i obrót (𝛼, 𝛽, 𝛾) w trzech wymiarach, względem wybranego
punktu należącego do podmiotu sterowania – obserwatora. Na potrzeby badań wybrano jego środek
geometryczny. Warto zauważyć, że ten wybór nie ma nic wspólnego z umieszczeniem sensorów.
Klasa obiektu to wynik klasyfikacji na podstawie hierarchicznego metamodelu. Hierarchia
odzwierciedla świat rzeczywisty, czyli np. węzeł „samochód osobowy” jest potomkiem węzła
„samochód”, będącego potomkiem węzła „obiekt poruszający się po drodze” itd. Parametry obiektu
zależą od jego klasy. Wszystkie obiekty posiadają kształt, rozumiany jako zbiór krawędzi względem
punktu należącego do tego obiektu, np. jego środka geometrycznego. Jeśli klasa danego obiektu jest
wystarczająco precyzyjnie określona, to kształt obiektów tej klasy jest stały. Przykładowo obiekty klasy
„Ford Focus I generacji w wersji sedan” posiadają konkretny kształt, ale obiekty klasy „samochód
osobowy” już go nie posiadają, więc należy go rozpoznać. Inne parametry, to informacja o włączonym
oświetleniu zewnętrznym samochodu (np. kierunkowskazy lub sygnały pojazdu uprzywilejowanego),
znaczenie rozpoznanego znaku drogowego, kierunek pasa ruchu, itp.. Ze względu na zmienną liczbę
parametrów trudno porównać wymagania pamięciowe dla mapy otoczenia w takiej postaci oraz
w postaci macierzy punktów. Można jednak śmiało powiedzieć, że rozmiar zaproponowanego modelu
jest w większości przypadków znacząco mniejszy. Taki model, zdefiniowany dla chwili 𝑡𝑖, oznacza się
w tej pracy jako 𝑚(𝑡𝑖).
2.2. Dyskretno-ciągły magazyn danych
Najczęściej rozumiemy algorytmy jako ciąg kroków wykonywanych sekwencyjnie i iteracyjnie. Wiele
powszechnych algorytmów, działających w czasie rzeczywistym, wykonuje się według schematu –
przyjmuje nowe dane, przetwarza je, produkuje wynik i rozpoczyna od początku. Dobrym przykładem
jest tradycyjne rozpoznawanie obrazów przy użyciu sieci neuronowych [17], gdzie każda klatka obrazu
analizowana jest niezależnie. Istnieją jednak algorytmy, również uruchamiane dla każdych nowych
danych wejściowych, jednak przyjmujące oprócz tego również wynik poprzedniego wykonania (lub
kilku poprzednich wykonań). Taką grupę algorytmów nazywamy algorytmami z pamięcią. Przykładem
takiego algorytmu jest SLAM [6]. IDSA wykorzystuje pamięć, jednak nie jest ani iteracyjny, ani
sekwencyjny.
Wyzwaniem w przypadku IDSA stało się zintegrowanie danych z różnych czujników: heterogenicznych
(o różnym modelu danych wyjściowych), asynchronicznych (o różnej częstotliwości pracy, a dokładniej
o różnych chwilach pojawiania się nowych danych) i badających różne wycinki otoczenia. Przykładowo
dane o przyspieszeniach działających na samochód lub aktualną długość zawieszenia konkretnego koła
można odczytywać jako proste dane (odpowiednio: wektor 3-elementowy lub skalar), ale
z częstotliwością wynoszącą setki lub tysiące herców. Kamery wideo mogą działać z różnymi
rozdzielczościami i przestrzeniami kolorów, zbierać dane z różnych wycinków otoczenia pojazdu oraz
działać z różnymi częstotliwościami, przeważnie w zakresie 25 − 100[𝐻𝑧]. Lidary wytwarzają „klatki
obrazu” z częstotliwością około 5 − 25[𝐻𝑧] lub jeden nieprzerwany strumień danych, których rozmiar
zależy od ilości używanych jednocześnie wiązek laserowych.
Żeby połączyć te wszystkie dane, zdecydowano się na wspólny magazyn, który zawsze przyjmuje dane
w formie dyskretnej ze znacznikiem czasowym pomiaru oraz zwraca dane w formie dyskretnej
ze znacznikiem czasowym żądania, przy założeniu, że pomiar i żądanie dostępu do danych nie mają
55
miejsca w tej samej chwili. Ten sam magazyn danych został użyty do wszystkich danych
przetwarzanych w ramach IDSA.
Używając formalnego zapisu, mówimy, że dana jest funkcja dyskretna 𝑎 określona w chwilach 𝑡 ∈ 𝑇,
zapisywana jako 𝑎(𝑡), gdzie 𝑇 to zbiór wszystkich chwil dokonywania pomiarów. Przyjmuje się, że
odstępy pomiędzy poszczególnymi pomiarami 𝑡𝑖 − 𝑡𝑖−1 nie są równe. Problemem wymagającym
rozwiązania jest wyznaczenie takich wartości 𝑎(𝑡′), gdzie 𝑡′ ∉ 𝑇.
W tym celu zaproponowano przechowywanie w pamięci wszystkich danych w postaci funkcji ciągłych,
określonych na zbiorze liczb rzeczywistych. Zadanie to wypełnia dyskretno-ciągły magazyn danych,
będący dosłownie zbiorem tablic, równań i procesów. Tablice zawierają dane wejściowe wraz z chwilą
ich powstania., czyli funkcje dyskretne. Równania to te same dane dyskretne zamienione do postaci
funkcji czasu rzeczywistego. Procesy zajmują się zamianą tablic na równania. Przebadano kilka metod
wyznaczania funkcji ciągłych, takich jak B-spline [106] oraz interpolacja trygonometryczna [107]
i ostatecznie okazało się, że wystarczającą wydajność i dokładność oferuje prosta interpolacja
wielomianowa. W procesie strojenia algorytmu (podrozdział 4.3) pokazane jest, w jaki sposób wybrano
parametry interpolacji dla każdej klasy danych wejściowych. W ten sposób otrzymano współczynniki
wielomianów reprezentujących dane w postaci funkcji określonych w czasie rzeczywistym, które są
używane do pobierania danych z magazynu. Mówiąc inaczej, dane są odczytywane w chwilach
dyskretnych, zamieniane do postaci funkcji ciągłej i interpolowane lub ekstrapolowane poprzez
wyliczenie wartości tej funkcji dla zadanej chwili, jak pokazano na przykładzie umieszczonym
na rysunku 17.
Zaproponowany model danych obsługuje wszystkie zmienne obecne w IDSA oraz mapę otoczenia. Jak
było opisane w poprzednim podrozdziale, mapa otoczenia składa się z lokalizacji, klasyfikacji
i parametryzacji obiektów w otoczeniu pojazdu (na potrzeby niniejszej pracy klasyfikacja
i parametryzacja nie są uwzględniane w metodzie opisanej w tym podrozdziale, a docelowe rozwiązanie
przedstawione jest w podrozdziale 5.3). Z tego wynika niemożność określenia liczby potrzebnych
procesów wyznaczających funkcje ciągłe. Zaproponowano więc ustalanie kolejności zadań estymacji
metodą FIFO (ang. first in – first out). Zastosowano wypracowaną podczas strojenia liczbę procesów
wyznaczania funkcji, iterujących po kolejce tablic oczekujących na estymację i wykonujących na nich
swoje zadanie. Tablica jest dodawana na koniec kolejki w chwili otrzymania nowych danych, jeśli
jeszcze się na niej nie znajduje, i usuwana po przetworzeniu znajdujących się w niej danych. Proces
𝒕 𝒂(𝒕)
1 2
2 8
3 18
4 32
Rysunek 17 Uproszczony schemat działania magazynu danych
𝑎(𝑡) = 2𝑡2
Funkcja ciągła, zapisana jako
tablica współczynników Dyskretne dane
wejściowe
𝑡′ = 3,5
𝑎(𝑡′) = 2 ⋅ 3,52 = 24,5
Pobrana wartość dla
𝑡′ ∉ 𝑇
Wyznaczenie
funkcji ciągłej
(2,0,0)
Żądanie danych
56
wyznaczenia funkcji ciągłej może zostać wykonany wielokrotnie, na podstawie nowych danych, zanim
zmienna zostanie odczytana przez inny proces lub odwrotnie – pomiędzy kolejnymi wywołaniami
procesu wyznaczania funkcji dotyczących tego samego parametru do tablicy zawierającej jego
dyskretne wartości może zostać dodanych wiele elementów. Potencjalne problemy z tym związane
rozwiązano odpowiednią kalibracją algorytmu.
Należy w tym miejscu wrócić do postaci mapy otoczenia. Zawiera ona między innymi pozycję
uogólnioną obiektów. Dzięki zastosowaniu dyskretno-ciągłego modelu danych, ta pozycja zmienia się
w trajektorię względem pojazdu sterowanego, czyli w funkcję zmiany pozycji obiektu w czasie. Jako że
wyliczone sterowanie ma zostać wykonane zawsze z opóźnieniem rzędu kilkunastu-kilkudziesięciu
milisekund, każdy sygnał sterujący musi być prawidłowy dla niedalekiej przyszłości. Oznacza to, że
algorytm przez cały czas bazuje na wartościach ekstrapolowanych zamiast na ostatnim pomiarze, który
zawsze jest w jakimś stopniu nieaktualny.
Działanie dyskretno-ciągłego modelu danych jest pokazane na przykładzie na rysunku 18.
Dyskretno-ciągły magazyn danych
Proces wyznaczania
funkcji
Proces zarządzania zadaniami
wyznaczania funkcji
Tymczasowy magazyn danych
dyskretnych
Magazyn funkcji czasu
rzeczywistego
Producent
Konsument
a(ti) (a'i,ti)
a'(tl)
{(a'i,ti), (a'j,tj), (a'k,tk)}
dodanie do kolejki
wyzwalacz
a'(t)
Rysunek 18 Przykład działania dyskretno-ciągłego magazynu danych
Rysunek przedstawia proces – producenta, który na podstawie danej 𝑎 zmierzonej lub podanej w chwili
𝑡(𝑖) produkuje nową daną 𝑎′ . 𝑎′ , przesyłaną do dyskretno-ciągłego modelu danych, jako para wraz
ze znacznikiem czasowym, w którym została wytworzona. Warto zauważyć, że przetwarzanie 𝑎 → 𝑎′
najprawdopodobniej trwało czas 𝜖1 , mimo to wysyłany znacznik czasowy, odpowiada chwili
otrzymania danych do przetworzenia przez producenta 𝑡𝑖, a nie chwili wysłania przetworzonych danych
𝑡𝑖 + ϵ1. Para (𝑎𝑖′, 𝑡𝑖) jest zapisana w tymczasowym magazynie danych dyskretnych. Jeśli ten magazyn
jest pusty, następuje dodanie zmiennej 𝑎′ do kolejki zmiennych oczekujących na przetworzenie.
W momencie gdy jeden z procesów wyznaczania funkcji jest wolny, proces zarządzania zadaniami
wyznaczania funkcji zleca mu przetworzenie zgromadzonych danych, dotyczących zmiennej 𝑎′. Jak
widać na przykładzie, do tego czasu w tymczasowym magazynie danych dyskretnych znalazły się dwie
inne pary: (𝑎𝑗′, 𝑡𝑗) oraz (𝑎𝑘
′ , 𝑡𝑘). Nie jest regułą przesyłanie trzech par jednocześnie – może być ich
więcej lub mniej. W chwili rozpoczęcia przetwarzania magazyn tymczasowy dla omawianej zmiennej
przesuwany jest na koniec kolejki. W wyniku przetwarzania powstaje funkcja 𝑎′(𝑡) w postaci ciągłej,
tj. w postaci tablicy współczynników wielomianu, który ją reprezentuje, zapisana w magazynie funkcji
czasu rzeczywistego. W celu odczytu wartości funkcji 𝑎′(𝑡) w chwili 𝑡𝑙 przez proces – konsumenta,
wylicza się wartość funkcji 𝑎′(𝑡𝑙), co jest operacją szybką. Warto zauważyć, że 𝑡𝑙 może być różne od
𝑡𝑖, 𝑡𝑗 oraz 𝑡𝑘, w szczególności mniejsze od 𝑡𝑖 lub większe od 𝑡𝑘.
57
Pseudokod dyskretno-ciągłego modelu danych przedstawiony jest na listingu 1.
procedura zapisz(identyfikator, informacja, identyfikator_czasowy):
tablica_danych_dyskretnych = pobierz_tablice_danych_dyskretnych(identyfikator)
kolejka_zadan = pobierz_kolejke_zadan()
dane_do_zapisu = utworz_pare(informacja, identyfikator_czasowy)
zadanie_w_kolejce = kolejka_zadan.czy_zawiera(identyfikator)
tablica_danych_dyskretnych.dodaj(dane_do_zapisu)
jeżeli(!zadanie_w_kolejce):
kolejka_zadan.dodaj(identyfikator)
procedura wyznacz_funkcje_ciagla(identyfikator):
tablica_danych_dyskretnych = pobierz_tablice_danych_dyskretnych(identyfikator)
maksymalna_ilosc_danych_do_przetworzenia =
pobierz_ilosc_danych_do_przetworzenia(identyfikator) //wartość zależna od strojenia
pary_danych_dyskrtnych_do_wyznaczeczenia_funkcji =
tablica_danych_dyskretnych.pobierz_n_ostatnich(
maksymalna_ilosc_danych_do_przetworzenia)
wspolczynniki_wielomianu = wyznacz_wspolczynniki_wielomianu(
pary_danych_dyskrtnych_do_wyznaczeczenia_funkcji) //funkcja zależna od strojenia
magazyn_ciagly = pobierz_magazyn_funkcji_ciaglych(identyfikator)
magazyn_ciagly.zapisz_zastap(wspolczynniki_wielomianu)
usun_zbedne_dane_z_tablicy(tablica_danych_dyskretnych) //funkcja zależna od strojenia
procedura magazyn():
kolejka_zadan = pobierz_kolejke_zadan()
jeżeli(!kolejka_zadan.czy_pusta()):
identyfikator_zadania = kolejka_zadan.pobierz_pierwszy_element()
wyznacz_funkcje_ciagla(identyfikator_zadania)
tablica_danych_dyskretnych = pobierz_tablice_danych_dyskretnych(identyfikator)
if(tablica_danych_dyskretnych.pusty()):
kolejka_zadan.usun(identyfikator_zadania)
w_przeciwnym_przypadku:
kolejka_zadan.przesun_na_koniec(identyfikator_zadania)
magazyn()
funkcja odczytaj(identyfikator, identyfikator_czasowy):
magazyn_ciagly = pobierz_magazyn_funkcji_ciaglych(identyfikator)
return oblicz_wartosc_funkcji(magazyn_ciagly, identyfikator)
Listing 1 Pseudokod dyskretno-ciągłego magazynu danych
58
Podczas analizy tego listingu warto zwrócić uwagę na kilka punktów.
a) Funkcja „usun_zbedne_dane_z_tablicy” może usuwać dane z tablicy na podstawie ich
wieku (starsze niż zdefiniowany parametr) lub ilości.
b) Funkcja „tablica_danych_dyskretnych.pobierz_n_ostatnich(...)” w przypadku kiedy
tablica zawiera mniej danych niż wymagane, może po prostu pobrać ich mniej lub zastąpić je
danymi odczytanymi z magazynu ciągłego (w losowych lub zdefiniowanych momentach).
c) Funkcja „magazyn” wywołuje na końcu samą siebie – jest to najprostszy, jednowątkowy
zarządca zadań. Można uruchomić ją kilkukrotnie równolegle, w celu użycia większej ilości
wątków lub stworzyć zamiast tego dedykowaną funkcję zarządzającą.
d) Funkcja „oblicz_wartosc_funkcji” tworzy wielomian na podstawie współczynników
i podstawia do niego zmienną „identyfikator_czasowy” w celu obliczenia jego wartości.
e) Najważniejsza wydaje się funkcja „wyznacz_wspolczynniki_wielomianu”, która zostanie
omówiona w podrozdziale 4.3.
2.3. Podział na procesy
Po omówieniu najbardziej skomplikowanych i jednocześnie nowatorskich elementów IDSA, można
przejść do jego ogólnej struktury. Schemat używanego systemu sterowania pokazany jest na rysunku
19, a schemat logiczny algorytmu na rysunku 20.
Kierowca Sensory SterownikUrządzenia
wykonawczeNadwozie
r r, a, v u a v
d
Rysunek 19 Wejściowo-wyjściowy schemat systemu sterowania
Używany system sterowania wygląda dość standardowo – jest tu obecny kierowca/operator, który
zadaje wartość referencyjną 𝑟 , sterownik, który generuje sygnał sterujący 𝑢 , stan urządzeń
wykonawczych 𝑎 oraz obserwowalne zachowanie pojazdu 𝑣. Zachowanie pojazdu - przez kierowcę
obserwowane jest naturalnie, jednak przez sterownik – w postaci względnych zmian otoczenia, np. ruch
otoczenia do tyłu, to w rzeczywistości ruch pojazdu do przodu. Tradycyjnie wyjście z obiektu
podejmowania decyzji opisuje się literą 𝑦, jednak w tym przypadku otoczenie tego obiektu (w sensie
fizycznym – drogę wokół samochodu) traktuje się jako część obiektu podejmowania decyzji, ponieważ
decyzje odnoszące się do samochodu wpływają na to, co się dzieje w jego otoczeniu. Jeśli realizowana
jest decyzja o zwiększeniu prędkości, to ta zmiana obserwowana jest jako przyspieszenie otoczenia
względem pojazdu, a nie pojazdu względem otoczenia. Dlatego uznano, że zmiany otoczenia należą
do stanu systemu zawierającego pojazd (obiekt podejmowania decyzji) i jego otoczenie. Na pełny stan
całego systemu składają się więc zmienne 𝑎 oraz 𝑣. Na rysunku widać też zakłócenia niemierzalne 𝑑,
59
które są obserwowane przez kierowcę oraz sprzężenia zwrotne 𝑎 oraz 𝑣 mierzone przez sterownik przy
pomocy sensorów. Obiekt reprezentujący sensory został wyszczególniony, żeby podkreślić, że
wszystkie dane wejściowe są przekazywane do sterownika w ten sam sposób i tym samym interfejsem
– niezależnie od pochodzenia i typu. Odnosząc się do rysunku 13, decydentem stał się sterownik,
zmienne 𝑟, 𝑎, 𝑣 tworzą podaną tam zmienną 𝑖, a przedmiot podejmowania decyzji został podzielony
na dwie części: czynną (urządzenia wykonawcze) i bierną (nadwozie). Wracając do rozróżnienia
systemów sterujących i wspomagających decyzję (strona 35) należy podkreślić, że pomimo że
decydentem jest sterownik, a sam system jest teoretycznie systemem sterowania, to ze względu
na przyjmowanie i stosowanie wartości referencyjnych w czasie rzeczywistym, kierowca może uznać,
że to on pełni tę funkcję. Wewnątrz sterownika realizowany jest IDSA, więc rysunek 20 przedstawia
tylko jego wewnętrzną strukturę, a interfejsy sterownika odpowiadają interfejsom algorytmu.
Dla czytelności, wymienione w powyższym akapicie zmienne powtórzono w tabeli 4.
Tabela 4 Wyjaśnienie zmiennych z rysunku 19
Wartości składające się na zmienne 𝑟, 𝑢, 𝑎, zostały wyszczególnione w tabeli 6.
Dyskretno-ciągły magazyn danych
Proces wyznaczania
funkcji 1
Proces wyznaczania
funkcji 2
Proces zarządzania zadaniami wyznaczania
funkcji
...
Tymczasowy magazyn danych
dyskretnych
Magazyn funkcji czasu
rzeczywistego
Proces przetwarzania
danych prostych
Proces przetwarzania
danych o otoczeniu
Proces wysyłania zmiennych sterujących
Proces wyznaczania zmiennych sterujących
Proces predykcji trajektorii
r, a
u
Proces wyznaczania
funkcji i...
Proces wyznaczania
funkcji nv
Rysunek 20 Schemat budowy IDSA
Zmienna Znaczenie
𝑟 Wartość referencyjna podana przez kierowcę – skręt kierownicy (oznaczający zadany
kierunek jazdy) i położenie pedałów (oznaczające zadaną prędkość jazdy)
𝑎 Stan urządzeń wykonawczych, np. długość zawieszenia lub aktualny skręt kół
𝑣 Zachowanie pojazdu, rozumiane jako stan jego otoczenia
𝑢 Sygnały sterujące urządzeniami wykonawczymi, generowane przez IDSA
𝑑 Niemierzalne zakłócenia wpływające na pojazd
60
Rysunek 20 przedstawia komponenty, z których składa się IDSA i ich interfejsy wraz z kierunkami
przepływu danych. Szarą linią ukośną zaznaczono komponenty niebędące procesami. Należy
podkreślić, że IDSA nie składa się z kroków i nie można o nim mówić, jak o kolejno wykonywanych
zadaniach: przetwarzaniu danych wejściowych, wyznaczaniu trajektorii, wyznaczaniu zmiennych
sterujących i wysyłaniu sygnałów sterujących. Każdy proces uruchamiany jest oddzielnie w swoim
wątku przez określone zdarzenia: pojawienie się nowych danych na jego wejściu, wyzwalacz czasowy
lub intencjonalny wyzwalacz programowy. Opis i przykład przetwarzania wszystkich procesów zostaną
pokazane w punkcie 2.5. Każdy proces posiada swój własny, zdefiniowany niezależnie interfejs
(zależność wejściowo-wyjściową). W ten sposób uzyskano elastyczność modyfikacji algorytmu. Każdy
proces można zaimplementować na nowo lub przestroić oddzielnie. Znacząco ułatwiło to strojenie
całego algorytmu, podczas którego można było modyfikować tylko pojedyncze elementy.
Czas wykonywania poszczególnych procesów nie jest stały i zależy od danych wejściowych. Nie
stanowi to jednak problemu, ponieważ każdy proces otrzymuje dane wejściowe ze znacznikiem
czasowym i generuje dane wyjściowe z tym samym znacznikiem czasowym swojego wejścia,
a nie wyjścia, niezależnie od czasu przetwarzania. Teoretycznie możliwe jest, aby proces uruchamiany
przez pojawienie się nowych danych wejściowych uruchomił się dwa razy dla dwóch danych
wejściowych i zakończył swoje działanie (a więc i zapisał wyniki swojej pracy) w odwrotnej kolejności.
W takim wypadku odpowiednie dane wyjściowe powinny być zapisanie z prawidłowym znacznikiem
czasowym początku przetwarzania, jednak podczas badań nie zaobserwowano takiego przypadku.
2.4. Analiza jakościowa – zalety i ograniczenia IDSA
Projektując nowy algorytm, bardzo ważne jest porównanie z istniejącymi rozwiązaniami. Analiza
ilościowa przedstawiona jest w rozdziale 4. Najpierw jednak warto ocenić algorytm w sposób
jakościowy, pokazując zalety i wady wynikające z jego budowy.
Niniejsza praca ma na celu przedstawienie nowego rozwiązania pozbawionego wad istniejących
rozwiązań. W punkcie 1.5.1 wspomniano w tym zakresie konflikty sterowania, złożoność budowy
i utrzymania aktualnie istniejących sterowników oraz ich ograniczenia. IDSA realizowany jest
na pojedynczym sterowniku, co od razu oznacza, że wszystkie konflikty sprzętowe zostały zamienione
na ewentualne konflikty programowe. Użyto tu zwykłego komputera klasy PC, co automatycznie
rozwiązało wszystkie konflikty dostępu do zasobów. Sterownik i pojazd (lub symulator) komunikują
się ze sobą poprzez protokoły TCP i UDP, co wyczerpuje temat zarządzania siecią informatyczną
i kwestię jej bezpieczeństwa. Sam algorytm składa się z w pełni niezależnych komponentów, przez
co należy rozumieć brak zależności czasowych lub wejściowo-wyjściowych. Ostatecznie nie ma też
konfliktów decyzyjnych, ponieważ wszystkie decyzje, dotyczące wszystkich urządzeń wykonawczych,
generowane są przez jeden komponent.
Kolejnym atutem IDSA jest przeniesienie wysokiego poziomu skomplikowania z urządzeń fizycznych
do komponentów logicznych. Sieć sensorów i urządzeń wykonawczych typu fat tree ogranicza liczbę
przewodów w samochodzie, brak zduplikowanych czujników (np. wiele kamer przypisanych do wielu
systemów wsparcia) zmniejsza ich koszt, a liczba sterowników została zredukowana do jednego
(ewentualnie dwóch, wliczając sterownik awaryjny). Mniejsza liczba sterowników to także mniejsza
masa, łatwiejszy montaż, mniej punktów awarii oraz tylko jeden punkt inwestycji, co pozwala
61
zastosować urządzenie wyższej klasy, jednocześnie zmniejszając koszty. Jeden sterownik, tym bardziej
zaawansowany technologicznie i wyposażony w powszechny system operacyjny, łatwo jest też
zabezpieczyć pod względem informatycznym, stosując znane metody szyfrowania, autoryzacji
i uwierzytelniania. Warto tu wspomnieć o redukcji zależności producenta samochodów od wielu
poddostawców różnych systemów na rzecz dowolnego dostawcy zwykłego komputera klasy PC.
W ogólności taki system powinien być tańszy i prostszy w budowie oraz serwisowaniu.
Użycie typowego systemu operacyjnego i realizowanie algorytmu sterującego jako zwykłej aplikacji
daje zupełnie nowe możliwości w zakresie jej utrzymania i rozwoju. Taki samochód może być
zdiagnozowany lub zaktualizowany zdalnie, stojąc w garażu, a aktualizacja może być bardzo głęboka,
zaczynając od przestrojenia algorytmu, przez aktualizację używanych sieci neuronowych, podmianę
jednego z procesów, aż po całkowitą wymianę algorytmu na inny. Można też wyeliminować złącze
diagnostyczne i zastosować połączenie bezprzewodowe chronione przez dowolne zasady kontroli
dostępu znane w informatyce. Nawet proces samodiagnostyki, uruchamiany w każdym nowoczesnym
samochodzie przynajmniej podczas jego uruchamiania, w tym przypadku ogranicza się wyłącznie
do diagnostyki jednej aplikacji komputerowej i jej zależności.
Przechodząc do samego IDSA, jego budowa jest uniwersalna w odniesieniu do różnych pojazdów. Jeśli
producent chciałby zastosować go w małym miejskim samochodzie oraz np. w autobusie, wystarczy
wprowadzić do IDSA parametry pojazdu (rozmiar, moc silnika, kąt skrętu kół, itd.). IDSA wykorzysta
wszystkie dostępne dane i urządzenia wykonawcze, a ich liczba może być różna w różnych pojazdach,
np. auto droższe może być wyposażone w więcej kamer niż inny, tańszy model. Usunięcie sensora,
nawet podczas jazdy, pozbawi IDSA danych wejściowych, jednak tak długo, jak dane z innych
sensorów będą dostarczały wystarczającej ilości informacji – samochód może dalej funkcjonować.
Awaria lub usunięcie urządzenia wykonawczego, to dla procesu wyznaczania sterowania tylko kolejne
ograniczenie w procesie optymalizacji, co może prowadzić do uzyskania gorszych wyników, ale
nie do całkowitej awarii.
Interfejsy programowe IDSA są otwarte. Bez problemu można dodać nowy element, np. proces
importujący nowe obiekty do mapy otoczenia na podstawie komunikacji Car-2-Car, proces zdalnej
kontroli lub dowolny inny, który miałby powstać w przyszłości w celu poprawy pracy IDSA. Z drugiej
strony stworzona mapa otoczenia może być przydatna dla innych systemów informatycznych obecnych
w samochodzie, które dzięki temu także można zamienić na aplikacje uruchomione na tym samym
komputerze. Dowolny system sterujący światłami, pokazujący otoczenie w celu ułatwienia parkowania,
lub nawet parkujący samodzielnie, może korzystać z utworzonej mapy otoczenia. To prowadzi
do kolejnego wniosku. IDSA może zostać bardzo łatwo zastosowany do budowy pojazdu
autonomicznego. Wystarczy w tym celu zamienić kierowcę na nowy komponent odczytujący istniejącą
już mapę otoczenia i wyznaczający sygnał referencyjny 𝑟 na jej podstawie.
2.5. Procesy składowe algorytmu
Niniejszy rozdział opisuje procesy, składające się na IDSA. Celowo są w nim ominięte implementacje
tych procesów (w tym – postaci użytych przekształceń), ponieważ istotą tej pracy jest zaproponowanie
rozwiązania, w którym te elementy należy skonfigurować samemu, podczas procesu strojenia.
62
Proces przetwarzani danych prostych
Proces przetwarzania danych o otoczeniu
Proces predykcji trajektorii
Proces wyznaczania zmiennych sterujących
Proces wysyłania zmiennych sterujących
czas
Zmienna 1
Zmienna 2
Rysunek 21 Przykładowa realizacja IDSA
Wykonywanie IDSA przez krótki okres czasu (około jednej sekundy) może wyglądać, jak
na przykładowym rysunku 21. Widać na nim wykonania wszystkich procesów składowych IDSA
w postaci prostokątów w różnych kolorach, podzielonych na 5 typów procesów, z przykładowym
czasem wykonania i rozpoczynania zadań. Każdy z procesów w przykładzie korzysta z dwóch wątków
procesora. Nie jest to reguła, a wyłącznie przykład. Gdyby któryś proces wymagał uruchomienia po raz
trzeci, podczas gdy dwa wątki jeszcze nie zakończyłyby swojej pracy, po prostu użyłby nowego wątku.
IDSA nie wprowadza tu żadnych limitów, więc wątkami zarządza wyłącznie system operacyjny.
Podczas prezentowanego wycinka czasu, proces przetwarzania danych prostych otrzymał 7 nowych
pomiarów do przetworzenia (dokonano 7 odczytów przy pomocy sensorów), a proces analizy danych
o otoczeniu otrzymał 3 pomiary. Proces planowania trajektorii uruchomił się 6 razy, a proces
wyznaczania zmiennych sterujących – 4 razy. Proces wysyłania zmiennych sterujących wysyłał dwie
zmienne: pierwszą – 6, a drugą – 7 razy. Warto zauważyć, że w przypadku procesu wysyłania
zmiennych sterujących, operacja wysłania wartości konkretnej zmiennej rozpoczyna się ponownie
natychmiast po poprzednim wykonaniu, oraz że czas wysyłania konkretnej zmiennej jest stały, choć
czas wysyłania wartości różnych zmiennych może się różnić. Warto też zauważyć, że tylko ten proces
korzysta z tylu wątków, ile zmiennych przetwarza. Nie ma reguły, według której np. każda dana prosta
przetwarzana byłaby w dedykowanym wątku.
Sekcje w punkcie 2.5 korzystają z horyzontu czasu wprowadzonego w uproszczonym przykładzie,
pokazanym na rysunku 22. Ten przykład ilustruje tylko jedno wykonanie każdego z procesów. Na jego
potrzeby zakłada się, że to nie są pierwsze wykonania po uruchomieniu IDSA, więc dysponuje on
danymi utworzonymi podczas poprzednich uruchomień wszystkich procesów, zapisanymi w dyskretno-
ciągłym magazynie danych.
63
Proces przetwarzania danych prostych
Proces przetwarzania danych o otoczeniu
Proces predykcji trajektorii
Proces wyznaczania zmiennych sterujących
Proces wysyłania sygnałów sterujących
czast1 t2t3 t4t5 t6t7 t8t9 t10
Rysunek 22 Horyzont czasowy używany w punktach 2.1.6 - 2.1.10
Dla czytelności powyższe zmienne przedstawiono także w tabeli 5.
Tabela 5 Oznaczenie zmiennych określających czas w punktach 2.6 - 2.10
Nazwa
zmiennej
Zdarzenie
w procesie
Nazwa procesu
𝑡1 początek Proces przetwarzania danych prostych
𝑡2 koniec
𝑡3 początek Proces przetwarzania danych o otoczeniu
𝑡4 koniec
𝑡5 początek Proces predykcji trajektorii
𝑡6 koniec
𝑡7 początek Proces wyznaczania zmiennych sterujących
𝑡8 koniec
𝑡9 początek Proces wysyłania zmiennych sterujących
𝑡10 koniec
Proces predykcji trajektorii został pokazany jako pojedynczy prostokąt, chociaż jego implementacja
użyta w niniejszej pracy składa się z trzech podprocesów. Użycie podprocesów nie jest jednak cechą
IDSA, a tylko efektem jego strojenia i implementacji, wykonanych podczas niniejszych badań. Pokazuje
to jednakże zdolność algorytmu do rozdzielania procesów na podprocesy z wykorzystaniem wspólnego
magazynu danych, jako sposobu integracji.
2.6. Proces przetwarzania danych prostych
Obsługa prostych danych wejściowych jest najprostszym procesem w całym algorytmie. Dane proste,
to wszystkie przyjmowane dane, dające się przedstawić jako niezależne wartości skalarne. Na rysunku
20 do komponentu „przetwarzanie danych prostych” skierowane są zmienne 𝑟 oraz 𝑎 , a decyzja
oznaczona jest zmienną 𝑢. Chociaż proces analizy wejściowych danych prostych przyjmuje jedynie
zmienne 𝑟 oraz 𝑎, tabela 6 zawiera wszystkie dane proste występujące w IDSA, czyli 𝑟, 𝑎 oraz 𝑢.
64
Tabela 6 Spis zmiennych prostych
Zmienna
zawierająca
(wg. rys. 20)
Używane oznaczenie Znaczenie Zakres
𝑟
STEER Położenie kierownicy [−1,1]
THROTHLE Położenie pedału przyspieszenia [0,1]
BRAKE Położenie pedału hamulca [0,1]
𝑎
VELOCITY_FRONT_LEFT Prędkość kątowa lewego
przedniego koła [−1,1]
VELOCITY _FRONT_RIGHT Prędkość kątowa prawego
przedniego koła [−1,1]
VELOCITY _REAR_LEFT Prędkość kątowa lewego tylnego
koła [−1,1]
VELOCITY _REAR_RIGHT Prędkość kątowa prawego
tylnego koła [−1,1]
ACCELERATION_FRONT_LEFT
_LONGITUDINAL
Przyspieszenie wzdłużne
w lewym przednim rogu pojazdu [−1,1]
ACCELERATION_FRONT_LEFT
_LATERAL
Przyspieszenie boczne w lewym
przednim rogu pojazdu [−1,1]
ACCELERATION_FRONT_LEFT
_VERTICAL
Przyspieszenie pionowe
w lewym przednim rogu pojazdu [−1,1]
ACCELERATION_FRONT_RIGHT
_LONGITUDINAL
Przyspieszenie wzdłużne
w prawym przednim rogu
pojazdu
[−1,1]
ACCELERATION_FRONT_RIGHT
_LATERAL
Przyspieszenie boczne
w prawym przednim rogu
pojazdu
[−1,1]
ACCELERATION_FRONT_RIGHT
_VERTICAL
Przyspieszenie pionowe
w prawym przednim rogu
pojazdu
[−1,1]
ACCELERATION_ REAR_LEFT
_LONGITUDINAL
Przyspieszenie wzdłużne
w lewym tylnym rogu pojazdu [−1,1]
ACCELERATION_ REAR_LEFT
_LATERAL
Przyspieszenie boczne w lewym
tylnym rogu pojazdu [−1,1]
ACCELERATION_ REAR_LEFT
_VERTICAL
Przyspieszenie pionowe
w lewym tylnym rogu pojazdu [−1,1]
ACCELERATION_ REAR_RIGHT
_LONGITUDINAL
Przyspieszenie wzdłużne
w prawym tylnym rogu pojazdu [−1,1]
ACCELERATION_ REAR_RIGHT
_LATERAL
Przyspieszenie boczne
w prawym tylnym rogu pojazdu [−1,1]
ACCELERATION_REAR_RIGHT
_VERTICAL
Przyspieszenie pionowe
w prawym tylnym rogu pojazdu [−1,1]
65
Zmienna
zawierająca
(wg. rys. 20)
Używane oznaczenie Znaczenie Zakres
SUSPENSION_FRONT_LEFT
_LENGHT
Długość lewego przedniego
zawieszenia [0,1]
SUSPENSION_FRONT_RIGHT
_ LENGHT
Długość prawego przedniego
zawieszenia [0,1]
SUSPENSION_REAR_LEFT
_ LENGHT
Długość lewego tylnego
zawieszenia [0,1]
SUSPENSION_REAR_RIGHT
_ LENGHT
Długość prawego tylnego
zawieszenia [0,1]
𝑢
STEER_FRONT_LEFT Skręt przedniego lewego koła [−1,1]
STEER_FRONT_RIGHT Skręt przedniego prawego koła [−1,1]
STEER_REAR_LEFT Skręt tylnego lewego koła [−1,1]
STEER_REAR_RIGHT Skręt tylnego prawego koła [−1,1]
CLUTCH
Ilość momentu obrotowego
przekazywana od silnika przez
sprzęgło do skrzyni biegów
[0,1]
GEARBOX Przełożenie bezstopniowej
skrzyni biegów [0,1]
DIFFERENTIAL_FRONT_LEFT
Ilość momentu obrotowego
przekazywana od skrzyni biegów
przez dyferencjały do lewego
przedniego koła
[0,1]
DIFFERENTIAL_FRONT_RIGHT
Ilość momentu obrotowego
przekazywana od skrzyni biegów
przez dyferencjały do prawego
przedniego koła
[0,1]
DIFFERENTIAL _REAR_LEFT
Ilość momentu obrotowego
przekazywana od skrzyni biegów
przez dyferencjały do lewego
tylnego koła
[0,1]
DIFFERENTIAL _REAR_RIGHT
Ilość momentu obrotowego
przekazywana od skrzyni biegów
przez dyferencjały do prawego
tylnego koła
[0,1]
POWER Położenie przepustnicy [0,1]
BRAKE_FRONT_LEFT Poziom zaciśnięcia lewego
przedniego hamulca [0,1]
BRAKE_FRONT_RIGHT Poziom zaciśnięcia prawego
przedniego hamulca [0,1]
66
Zmienna
zawierająca
(wg. rys. 20)
Używane oznaczenie Znaczenie Zakres
BRAKE_REAR_LEFT Poziom zaciśnięcia lewego
tylnego hamulca [0,1]
BRAKE_REAR_RIGHT Poziom zaciśnięcia prawego
tylnego hamulca [0,1]
SUSPENSION_FRONT_LEFT
_MOUNTING_POINT_HEIGHT
Wysokość mocowania lewego
przedniego zawieszenia [0,1]
SUSPENSION_FRONT_RIGHT
_MOUNTING_POINT_HEIGHT
Wysokość mocowania prawego
przedniego zawieszenia [0,1]
SUSPENSION_REAR_LEFT
_MOUNTING_POINT_HEIGHT
Wysokość mocowania lewego
tylnego zawieszenia [0,1]
SUSPENSION_REAR_RIGHT
_MOUNTING_POINT_HEIGHT
Wysokość mocowania prawego
tylnego zawieszenia [0,1]
SUSPENSION_FRONT_LEFT
_SPRING_RATE
Współczynnik sprężystości
lewego przedniego zawieszenia [0,1]
SUSPENSION_FRONT_RIGHT
_SPRING_RATE
Współczynnik sprężystości
prawego przedniego zawieszenia [0,1]
SUSPENSION_REAR_LEFT
_SPRING_RATE
Współczynnik sprężystości
lewego tylnego zawieszenia [0,1]
SUSPENSION_REAR_RIGHT
_SPRING_RATE
Współczynnik sprężystości
prawego tylnego zawieszenia [0,1]
SUSPENSION_FRONT_LEFT
_DAMPING_RATE
Współczynnik tłumienia lewego
przedniego zawieszenia [0,1]
SUSPENSION_FRONT_RIGHT
_DAMPING_RATE
Współczynnik tłumienia
prawego przedniego zawieszenia [0,1]
SUSPENSION_REAR_LEFT
_DAMPING_RATE
Współczynnik tłumienia lewego
tylnego zawieszenia [0,1]
SUSPENSION_REAR_RIGHT
_DAMPING_RATE
Współczynnik tłumienia
prawego tylnego zawieszenia [0,1]
ANTI_ROLL_BAR_FRONT Współczynnik sztywności
stabilizatora przedniego [0,1]
ANTI_ROLL_BAR_REAR Współczynnik sztywności
stabilizatora tylnego [0,1]
Używanie wartości względnych (< −1,1 > lub < 0,1 > ) pozwoliło w prosty sposób uzależnić
algorytm od parametrów fizycznych konkretnego pojazdu, np. wartości maksymalnego kąta skrętu kół,
czy mocy silnika. Szczegóły używanego w badaniach samochodu, a więc i wartości bezwzględne,
wynikające z tabeli 6 zostaną opisane w rozdziale 3.
67
Przetwarzanie danych prostych polega na przyjęciu ich przez algorytm i zapisaniu w magazynie danych
wraz ze znacznikiem czasowym. Odwzorowanie, realizowane przez ten proces, przedstawione jest
wyrażeniem
𝑧(𝑡𝑖) → 𝑧(𝑡𝑖), 𝑡𝑖. (12)
Można to rozumieć jako interfejs programistyczny. Proces przyjmuje wartość pewnej zmiennej 𝑧
w chwili 𝑡𝑖 , a na jego wyjściu znajdują się: ta sama zmienna oraz jej dyskretny argument czasowy.
Wszystkie poniższe procesy przedstawione są w takiej samej notacji. Jak było powiedziane, proces
przetwarzania danych prostych przyjmuje wartość funkcji 𝑟(𝑡) , w chwili 𝑡𝑖 oraz produkuje parę
𝑟(𝑡𝑖), 𝑡𝑖. Podobnie przyjmuje wartość funkcji 𝑎(𝑡) w chwili 𝑡𝑗 oraz produkuje parę 𝑎(𝑡𝑗), 𝑡𝑗.
Korzystając z horyzontu czasu wprowadzonego na rysunku 22, należałoby powiedzieć, że proces
przyjmuje wartości 𝑟 lub 𝑎 w chwili 𝑡1 i zapisuje je w chwili 𝑡2 , jednak do tego zapisu używa
znacznika czasowego 𝑡1. Proces przedstawiony jest we wzorze
𝑟(𝑡1) → 𝑟(𝑡1), 𝑡1 ∨ 𝑎(𝑡1) → 𝑎(𝑡1), 𝑡1. (13)
Stosując model wejściowo-wyjściowy wprowadzony w rysunkach 19 oraz 20, proces przetwarzania
danych prostych przedstawiono na rysunku 23.
Przetwarzanie danych prostych
r(t1)
a(t1)
r(t1),t1
a(t1),t1
Rysunek 23 Przetwarzanie danych prostych
Jako że jest to bardzo prosty proces i nie wymaga on strojenia, na listingu 2 znajduje się od razu jego
pseudokod.
Listing 2 Pseudokod procesu analizy danych prostych
2.7. Proces przetwarzania danych o otoczeniu
Analiza danych o otoczeniu jest zadaniem zupełnie innym niż analiza danych prostych. IDSA został
zaprojektowany do współpracy z heterogenicznymi i asynchronicznymi sensorami, pokrywającymi
różne obszary wokół pojazdu, na podstawie których buduje w czasie rzeczywistym geometryczną mapę
otoczenia pojazdu. Ze względu na heterogeniczność, która sprowadza się do innego formatu
otrzymywanych danych, uzyskanych np. z kamer i lidarów, nie można zastosować znanych algorytmów
procedura analizuj_dane_proste(identyfikator, informacja):
czas_aktualny = pobierz_czas_aktualny()
dyskretno_ciagly_model_danych.zapisz(identyfikator, informacja, czas_aktualny)
68
bazujących na filtrze Kalmana, jak np. stereo-SLAM [108]. IDSA nie ogranicza liczby ani rodzajów
sensorów, więc wypracowanie metody łączącej bitmapy i mapy zajętości byłoby niewystarczające.
Ze względu na asynchroniczność, nie można też zastosować algorytmów bazujących na fuzji
sensorycznej, jak np. zaprezentowany w pracy [109]. Podczas strojenia IDSA, zaproponowano nowe
rozwiązanie, które łączy zadania fuzji sensorycznej oraz jednoczesnego mapowania i lokalizowania
z wykorzystaniem heterogenicznych sensorów, umieszczonych w różnych miejscach, skierowanych
w różne strony i działających asynchronicznie. Sama metoda zostanie przedstawiona w podrozdziale
4.3, jednak odwzorowanie, które ją opisuje, należy do definicji IDSA.
Najważniejszym elementem procesu analizy danych o otoczeniu jest wykorzystywanie geometrycznej
mapy otoczenia i uaktualnianie jej po każdym pomiarze, zamiast budowania jej od nowa. Dzięki temu,
jeśli na podstawie danych z jednego z sensorów uda się uzyskać informacje o jednym obiekcie
w otoczeniu pojazdu, można tę informację umieścić w mapie otoczenia bez zaburzania pozostałych jej
elementów. Stosując formalny zapis i horyzont czasu wprowadzonego na rysunku 21, niniejszy proces
przekształca odczyt sensoryczny 𝑣(𝑡) odczytany w czasie 𝑡3 oraz istniejącą mapę otoczenia 𝑚(𝑡3)
odczytaną dla tej samej chwili 𝑡3. Na tej podstawie produkuje on uaktualnioną wersję mapy otoczenia
𝑚′(𝑡3) zgodnie z zależnością (14).
𝑣(𝑡3),𝑚(𝑡3) → 𝑚′(𝑡3), 𝑡3 (14)
Stosując model wejściowo-wyjściowy wprowadzony na rysunkach 19 oraz 20, proces przetwarzania
danych o otoczeniu przedstawiono na rysunku 24.
Przetwarzanie danych o otoczeniu
v(t3),m(t3) m t3),t3
Rysunek 24 Przetwarzanie danych o otoczeniu
Zmienna 𝑣 zawiera dane sensoryczne w postaci macierzy, np. bitmapę z kamery lub mapę zajętości
z lidaru, a zmienna 𝑚 – zbiór opisów obiektów składający się na mapę otoczenia. Zmienna 𝑚′, to opisy
nowych lub zmienionych obiektów, które należy uaktualnić w mapie 𝑚. Należy pamiętać, że utworzone
w tym procesie pozycje obiektów zamieniane są na trajektorie ciągłe w czasie dzięki dyskretno-
ciągłemu magazynowi danych.
2.8. Proces predykcji trajektorii
Kolejnym procesem do omówienia jest proces planowania trajektorii. Ten proces analizuje referencyjne
dane wejściowe 𝑟, stan pojazdu 𝑎 oraz mapę otoczenia 𝑚, w celu utworzenia jednego lub kilku punktów
𝑝 , w których w przyszłości powinien znaleźć się pojazd. Powinien on korzystać z wartości
ekstrapolowanych na chwilę, dla której wykonuje obliczenia. Załóżmy, że proces uruchamia się
w chwili 𝑡5 oraz jego zadaniem jest wyznaczenie pozycji uogólnionej przedmiotu sterowania
(nadwozia) w chwili 𝑡5 + 𝜖. Wartość 𝜖 powinna być wybrana tak, żeby 𝑡5 + 𝜖 > 𝑡6.
69
Przy takich założeniach odwzorowanie opisujące ten proces przedstawione jest we wzorze
𝑟(𝑡5 + 𝜖), 𝑎(𝑡5 + 𝜖),𝑚(𝑡5 + 𝜖) → 𝑝(𝑡5 + 𝜖), 𝑡5 + 𝜖. (15)
Warto zauważyć, że sam proces wykonuje się w czasie od 𝑡5 do 𝑡6.
Stosując model wejściowo-wyjściowy wprowadzony na rysunkach 19 oraz 20, proces planowania
trajektorii przedstawiono na rysunku 25.
Predykcja trajektorii
r(t5+ε),a(t5+ε),m(t5+ε) p(t5+ε),t5+ε
Rysunek 25 Planowanie trajektorii
Można też użyć uogólnionej wersji procesu, zakładającej że generuje on jednocześnie pozycje podmiotu
sterowania dla chwil 𝑡5 + 𝜖1, 𝑡5 + 𝜖2, … , 𝑡5 + 𝜖𝑖, … , 𝑡5 + 𝜖𝑛 , gdzie 𝑛 ≥ 1 , jednak podczas badań
okazało się, że wystarczającą wartością jest 𝑛 = 1.
Jak było powiedziane w punkcie 2.1, pozycja obiektów w otoczeniu obiektu podejmowania decyzji,
należąca do 𝑚, określona jest względem tego obiektu. W przypadku planowania trajektorii samego
obiektu nie jest to proste, ponieważ w chwili dokonywania dowolnych obliczeń, samochód znajduje się
zawsze w początku układu współrzędnych. Rozwiązaniem zastosowanym na potrzeby tych badań jest
zapisywanie trajektorii pojazdu sterowanego w zewnętrznym układzie współrzędnych,
rozpoczynającym się w miejscu, w którym pojazd znajdował się w chwili uruchomienia algorytmu.
2.9. Proces wyznaczania zmiennych sterujących
Proces wyznaczania zmiennych sterujących jest miejscem, w którym realizuje się zadanie sterowania.
Proces ten, podobnie do planowania trajektorii, wylicza swoje wyjście w przyszłości, korzystając
z ekstrapolowanych danych wejściowych, oferowanych przez dyskretno-ciągły magazyn danych.
Stosując zapis formalny, proces przekształca mapę otoczenia 𝑚 , stan pojazdu 𝑎 oraz planowaną
trajektorię 𝑝 w wektor zmiennych sterujących 𝑢 – to wszystko dla chwili 𝑡7 + 𝜖, przy czym powinien
być spełniony warunek 𝑡7 + 𝜖 > 𝑡8.
𝑚(𝑡7 + 𝜖), 𝑎(𝑡7 + 𝜖), 𝑝(𝑡7 + 𝜖) → 𝑢(𝑡7 + 𝜖), 𝑡7 + 𝜖 (16)
Stosując model wejściowo-wyjściowy wprowadzony na rysunkach 19 oraz 20, proces planowania
trajektorii przedstawiono na rysunku 26.
70
Wyznaczanie zmiennych sterujących
m(t7+ε),a(t7+ε),p(t7+ε) u(t7+ε),t7+ε
Rysunek 26 Wyznaczania zmiennych sterujących
Należy jednak zauważyć, że nie ma konieczności wyznaczania wszystkich zmiennych należących
do wektora 𝑢 jednocześnie. Proces wyznaczania zmiennych sterujących może składać się z wielu
niezależnych procesów generujących różne składowe wektora 𝑢 dla różnych chwil 𝑡7 + 𝜖𝑖.
2.10. Proces wysyłania zmiennych sterujących
Ostatni omawiany proces jest właściwie odwrotnością pierwszego. Dla każdej zmiennej sterującej
𝑢1, 𝑢2, … , 𝑢𝑖, … , 𝑢𝑛 ∈ 𝑢, wysyła on jej wartość do urządzenia wykonawczego w oddzielnym wątku,
powtarzając proces natychmiast po jego zakończeniu. W badaniach użyto 16 zmiennych sterujących,
co oznaczało użycie 16 wątków. Korzystając z horyzontu czasu wprowadzonego na rysunku 21 oraz
zmiennej sterującej 𝑢𝑖 , odwzorowanie realizujące proces przedstawia się, jak we wzorze (17)
i na rysunku 27.
𝑢𝑖(𝑡9 + 𝜖𝑖) → 𝑢𝑖(𝑡9 + 𝜖𝑖) (17)
Wysyłanie zmiennych sterujących
ui(t9+εi) ui(t9+εi)
Rysunek 27 Wysyłanie zmiennych sterujących
Jak widać, wejście i wyjście są takie same. Oznacza to odczyt zmiennej i jej wysłanie. Warto zwrócić
uwagę, że proces wysyłania sterowania trwa od 𝑡9 do 𝑡10, podczas gdy wysyłana jest wartość właściwa
dla chwili 𝑡9 + 𝜖𝑖 . Należy pamiętać, że realizacja sterowania też zajmuje czas, więc zakłada się, że
sterowanie jest zrealizowane właśnie w chwili 𝑡9 + 𝜖𝑖 , przy założeniu, że 𝑡9 + 𝜖𝑖 > 𝑡10. Wartość 𝜖𝑖
należy określić eksperymentalnie dla każdej zmiennej sterującej 𝑢𝑖 . Przy odpowiednio częstym
wysyłaniu sterowania, dokładność wyznaczenia 𝜖𝑖 nie musi być idealna.
Jako że proces wysyłania zmiennych sterujących nie wymaga strojenia rozumianego jako określenie
operacji do wykonania, a tylko określenia wartości zmiennych 𝜖𝑖 , na listingu 3. pokazany jest jego
pseudokod.
71
Listing 3 Pseudokod procesu wysyłania zmiennych sterujących
procedura wyslij_sterowanie(identyfikator):
czas_aktualny = pobierz_czas_aktualny()
opoznienie = pobierz_opoznienie_dla_zmiennej(identyfikator)
wartosc = dyskretno_ciagly_model_danych.pobierz(identyfikator,
czas_aktualny + opoznienie)
interfejs_sieciowy = pobierz_kanal_komunikacji(identyfikator)
interjest_sieciowy.wyslij(wartosc)
wyslij_sterowanie(identyfikator)
72
3. SYMULACYJNE ŚRODOWISKO BADAWCZE
Co oczywiste, najbardziej wiarygodne środowisko badawcze, to środowisko rzeczywiste,
z prawdziwym przedmiotem podejmowania decyzji oraz w niesymulowanych warunkach fizycznych.
Jednak badania zachowania pojazdu wymagałyby w tym celu ogromnych środków pieniężnych,
z uwzględnieniem zniszczenia przynajmniej kilku samochodów, wynajęcia toru testowego, kierowców,
itd. Oprócz wielokrotnie niższych kosztów, zastosowanie środowiska symulacyjnego czasu
rzeczywistego ma wiele innych zalet – powtarzalność na żądanie, możliwość generowania przypadków
testowych i wykonywania eksperymentów przez skrypty, możliwość dowolnej i precyzyjnej zmiany
warunków eksperymentów, możliwość dowolnego przerywania testów podczas ich trwania, możliwość
zbadania sytuacji trudnych do wygenerowania w warunkach rzeczywistych oraz pełne bezpieczeństwo
osób biorących udział w eksperymentach. Największą wadą stosowania środowiska symulacyjnego jest
jego dyskusyjna wiarygodność.
3.1. Wybór środowiska
Celem procesu wyboru środowiska nie było znalezienie takiego, które najwierniej odpowiada światu
rzeczywistemu. Istnieją co prawda rozwiązania, szczególnie typu hardware-in-the-loop [110], które
uznawane są za wystarczająco wiarygodne nawet przez firmy motoryzacyjne. Są one jednak bardzo
drogie, wymagają potężnych komputerów, a ich dokładność często wynika ze sposobu modelowania
pojazdu, łącznie z istniejącymi w nich sterownikami. Z drugiej strony, oczywiście podczas pracy
należało odrzucić wszystkie symulatory wyraźnie sprzeczne z prawami fizyki, np. większość gier
komputerowych.
Celem procesu wyboru środowiska było znalezienie takiego, które:
a) zapewnia wystarczająco dokładne odwzorowanie procesów fizycznych,
b) pozwala na symulację całego pojazdu, a nie tylko jego części,
c) oferuje możliwość symulacji istniejących w motoryzacji systemów bezpieczeństwa czynnego,
a także oferuje możliwość pracy bez nich
d) oferuje możliwość konfiguracji parametrów fizycznych pojazdu (rozmiar, masa, itp.),
e) oferuje możliwość konfiguracji układu jezdnego (rodzaj przeniesienia napędu, skrzynia biegów,
itd.),
f) zostało poddane walidacji w niebudzący zastrzeżeń, udokumentowany sposób,
g) oferuje możliwość symulowania sensorów otoczenia pojazdu,
h) oferuje odczyt stanu pojazdu, najlepiej w czasie rzeczywistym,
i) oferuje możliwość zastosowania zewnętrznego sterownika pomiędzy kierowcą a urządzeniami
wykonawczymi,
j) oferuje niezależną możliwość sterowania urządzeniami wykonawczymi,
k) daje się uruchomić na domowym komputerze.
Podczas prac przeanalizowano możliwość i zasadność wykorzystania następujących symulatorów.
MSC Adams Car [111]
Pakiet profesjonalnych narzędzi do budowania symulatorów, używany przez ponad siedemdziesiąt
znaczących firm z branży motoryzacyjnej, głównie producentów symulatorów, ale też bezpośrednio
73
przez producentów samochodów (np. Tata Motors). Oferuje wiarygodny model pojazdu,
zweryfikowany przez klientów i potwierdzony badaniami na rzeczywistych pojazdach. Oferuje bardzo
szeroką swobodę parametryzacji fizycznej pojazdu. Umożliwia sterowanie pojazdem z zewnętrznej
aplikacji (MatLab [112]) i posiada darmową wersję edukacyjną.
MSC Adams Car skupia się jednak na symulacjach pojedynczych sytuacji off-line (nie w czasie
rzeczywistym), jak przejazd przez zakręt, gwałtowne hamowanie itp. Zbudowanie dłuższego
scenariusza testowego jest problematyczne i niewygodne. Niektóre funkcje oferuje wyłącznie
dla symulacji jednej osi lub symulacji off-line. Nie umożliwia też implementacji własnych sensorów
otoczenia ani odczytu sygnału sterującego z fizycznej kierownicy podłączonej do komputera i przesłania
tego sygnału do zewnętrznej aplikacji.
dSPACE ASM [113]
Profesjonalny symulator o bardzo wysokiej dokładności, wykorzystywany przez największe firmy
motoryzacyjne (np. Porsche), producentów podzespołów i systemów wspomagania kierowcy. Stał się
też podstawą badań nad AUTOSAR. Kilka lat temu oferował darmową wersję zapoznawczą, jednak
pełna licencja jest bardzo droga. dSPACE ASM może pracować jako aplikacja lub w systemie
hardware-in-the-loop. Jest to bardzo skomplikowane rozwiązanie, wymagające dużo pracy
przy tworzeniu środowiska symulacyjnego oraz za drogie do użycia na tym etapie prac.
IPG CarMaker [114]
Kolejny profesjonalny symulator, używany przez przynajmniej dwudziestu pięciu producentów
samochodów (VW, Ford, Dailmer, Tesla, itd.) oraz na ponad stu uniwersytetach. Może pracować
samodzielnie lub w systemie hardware-in-the-loop. Umożliwia implementacje dowolnych systemów
sterowania oraz korzystania z dowolnych obecnych w symulacji danych. Niestety jest to kolejne
rozwiązanie zbyt drogie, żeby mogło być użyte na tym etapie prac.
CarSim [115]
Następny profesjonalny symulator o globalnym zasięgu, używany przez ponad trzydziestu producentów
samochodów lub motocykli oraz ponad stu producentów podzespołów lub ośrodków badawczych.
Niestety nie oferuje on danych dotyczących komponentów pojazdów i skupiony jest bardziej
na symulowaniu sytuacji drogowych z mniej dokładną fizyką, niż na dokładnym modelowaniu
pojazdów, więc tym samym nie udostępnia możliwości ich personalizacji w wystarczającym zakresie.
SIMULIA Simpack [116]
Symulator dużo prostszy od wymienionych powyżej, niestety jednocześnie też o dużo mniejszych
możliwościach. Pozwala na sterowanie z wykorzystaniem zewnętrznej aplikacji, jednak nie udostępnia
danych w czasie rzeczywistym w żaden sposób programowy. Ostatnie warte uwagi publikacje,
stworzone z jego użyciem, zostały wydane 4 lata temu, co sugeruje, że projekt jest obecnie przestarzały.
MatLab z własnym modelem Simulink
Ze względu na niepowodzenie w próbach wykorzystania rozwiązań profesjonalnych, podjęto próbę
stworzenia symulatora własnoręcznie. Utworzono model, widoczny na rysunku 28, i wykonano jego
strojenie. Niestety, mimo że była to bardzo prosta wersja, zawierająca tylko podstawowe elementy
74
zawieszenia, nie udało się dokonać jego walidacji. Ze względu na brak perspektyw w tym zakresie,
porzucono ten sposób modelowania.
Rysunek 28 Model pojazdu w Matlab/Simulink
Kinematic Car Suspension [117]
Ze względu na problemy ze znalezieniem profesjonalnego symulatora, zwrócono się w stronę świata
gier komputerowych. Przyjęto założenie, że skoro niektóre z nich są tak realistyczne, że używane są
przez kierowców rajdowych do treningów, nie należy ich pomijać bez – przynajmniej – przyjrzenia się
im bliżej. Kinematic Car Suspension jest biblioteką do symulacji samochodów w środowisku Unity3D
[118]. Oferuje między innymi możliwość odczytu sygnałów sterujących z kierownicy i przesłanie ich
do zewnętrznej aplikacji, a sygnałów z tej aplikacji – do wirtualnego pojazdu. Niestety jest na tyle
nierealistyczny, że podejmowanie zadania walidacji nie ma sensu.
BeamNG.drive [119]
Obiecująca gra komputerowa, której twórcy chwalą się jej wysokim realizmem. Umożliwia dość
dowolne zbudowanie wirtualnego pojazdu, jednak nie udostępnia możliwości przekierowania
sterowania do zewnętrznej aplikacji. Zamiast tego oferuje możliwość pisania własnych skryptów
w języku Lua [120], opisujących działanie samochodu. Jednak ich możliwości okazały się być zbyt
ograniczone, a użycie ich poddałoby w wątpliwość zachowanie wiarygodności symulacji.
rFactor2 [121]
Kolejna gra wysoko oceniana ze względu na swój realizm, dostępna w wersji z otwartym kodem
źródłowym. Umożliwia dużą swobodę budowania i personalizacji pojazdów, a także oferuje bogate
wyjście w czasie rzeczywistym (dokładną telemetrię). Niestety, nie umożliwia przekierowania
sterowania do aplikacji zewnętrznej oraz dokonywania zmian właściwości pojazdu w sposób
programowy podczas jazdy.
75
Symulator z rzeczywistym samochodem umieszczonym na siłownikach hydraulicznych
Próba użycia do badań fizycznego symulatora wymagała zamieszkania na kilka miesięcy w Japonii.
Podjęto próbę walidacji symulatora stworzonego i wykorzystywanego na Iwate Prefectural University
w miejscowości Takizawa. Symulator przedstawiony jest na rysunku 29.
Rysunek 29 Symulator samochodu na Iwate Prefectural University (zdjęcie własne)
Symulator wykorzystuje trójwymiarowy model otoczenia, generowany przez klaster kart graficznych
nVidia, który rzutowany jest na zakrzywiony ekran, pokrywający 180 stopni pola widzenia kierowcy
oraz prezentowany na ekranach widocznych w lusterkach podczas jazdy. Symulator został stworzony
do badania zachowania kierowców podczas jazdy i niestety realizm nie był priorytetem jego twórców.
Oprócz tego korzystanie z niego przez dłuższy czas powoduje zawroty głowy. Jest to o tyle warte uwagi,
że wykorzystuje on metodę przeprowadzania badań driver-in-the-loop, która znacznie i jednocześnie
negatywnie wpływa na kierowcę, zaburzając tym samym jego zachowanie.
Vehicle Physics Pro [122]
Ostatecznie do dalszych prac wybrano Vehicle Physics Pro. Jest to biblioteka do aplikacji Unity 3D.
Należy zacząć od tego, że Unity 3D zostało stworzone do wytwarzania gier komputerowych, jednak
w tej chwili jest używane przez przynamniej 15 firm z branży motoryzacyjnej (np. Audi). Dowodzi to
jego wiarygodności jako narzędzia do symulowania procesów fizycznych, także związanych z budową
pojazdów. Vehicle Physics Pro jest dziełem jednego człowieka, kierowcy rajdowego i mechanika,
Ediego Garcii. Walidację biblioteki potwierdza używanie jej między innymi przez Toyotę, BMW,
Volkswagena czy Scanię, a także jako podstawę innych symulatorów, np. D-Box [123] czy CXC
Simulator [124]. Oprócz tego jest ona używana w badaniach naukowych, np. [125] czy [126]. Warto też
zauważyć, że autor opisuje na swojej stronie i koncie w serwisie Twitter [127] wszystkie fizyczne
aspekty swojego produktu, sposób strojenia zawieszenia, różne modele opon, zależności komponentów
76
układów napędowych, itd. Jednocześnie biblioteka dostępna jest w wersji z kodem źródłowym w języku
C#, co umożliwiło przekierowania sterowania z fizycznej kierownicy do zewnętrznego sterownika,
a następnie do urządzeń wykonawczych. Oferuje też wachlarz rzeczywistych systemów bezpieczeństwa
czynnego, co znacząco ułatwiło stworzenie symulowanego pojazdu referencyjnego, używanego
do porównania z IDSA, a także uwiarygodniło jego walidację.
3.2. Kalibracja pojazdu tradycyjnego
Pierwszym zadaniem, koniecznym do wykonania przed rozpoczęciem właściwych badań, było
opracowanie symulowanego referencyjnego pojazdu, sterowanego z wykorzystaniem klasycznych,
dobrze znanych, systemów bezpieczeństwa czynnego. Pozwalało to na uwzględnienie dwóch aspektów
– nauczenie się środowiska testowego oraz przygotowanie wiarygodnego punktu odniesienia, będącego
podstawą porównania z IDSA. Vehicle Physics Pro udostępnia dwa gotowe, skalibrowane samochody:
sportowy (stylizowany na model Ferrari) oraz terenowy (stylizowany na Mitsubishi). Jako że obydwa
przedstawiają dość skrajne przykłady pojazdów, podjęto próbę wykonania modelu zwykłego,
przeciętnego samochodu osobowego.
W tym celu posłużono się skórką (modelem graficznym) samochodu osobowego Ford Focus I generacji
w wersji sedan. Za decyzją stoi dostępność skórki oraz dokumentacji tego modelu.
W badaniach wziął udział pojazd skalibrowany, jednak w punktach 4.4.2 – 4.4.6 zbadano jego
wrażliwość na zmianę niektórych jego parametrów.
Samochód waży od ok. 1200 [𝑘𝑔] do ok. 1400 [𝑘𝑔] w zależności od wersji silnikowej
i wyposażeniowej. Założono medianę: 1300 [𝑘𝑔]. Samochód ma 4343 [mm] długości, 1840 [mm]
szerokości i rozstaw osi 2640 [mm]. Rozmiar kół wraz z oponami to 519 [mm]. Na początku badań
założono idealny rozkład masy 25% ma każde koło. Nie jest to prawdziwa wartość dla tego samochodu,
więc w trakcie badań testowano też inne rozkłady masy. Silnik 2.0 dostępny w tym samochodzie
generuje 107 [kW] oraz 193 [Nm]. Krzywe mocy i momentu obrotowego zobrazowane są na rysunku
30. Skala rysunku to 100 [Nm] i oraz 100 [kW] na osi rzędnych oraz 1000 [rpm] na osi odciętych.
77
Rysunek 30 Krzywa mocy (niebieska linia) i momentu obrotowego (zielona linia) w zależności od prędkości obrotowej
silnika
Założono moment hamujący generowany przez hamulce 1927 [Nm] dla przedniej osi i 1373 [Nm] dla
tylnej osi, na podstawie badania drogi hamowania. W bibliotece Vehicle Physics Pro zaproponowano
stosunek siły przednich hamulców do tylnych hamulców jak 58:42. Całkowitą siłę hamulców określono
eksperymentalnie – dostosowując ją do zadeklarowanej przez producenta drogi hamowania od 100km/h
do zera wynoszącej 37,2 [m]. Do zamodelowania opon wykorzystano wbudowany model Pacejka,
dostosowując jego parametry na podstawie prawdziwych opon [128]. Parametry zawieszenia ustalono
korzystając z serwisu [129]. W ten sposób ustalono wartości pokazane w tabeli 7.
Tabela 7 Parametry zawieszenia pojazdu referencyjnego
Nazwa parametru Wartość dla przedniej osi Wartość dla tylnej osi
Współczynnik sprężystości
zawieszenia 53146 [
𝑁
𝑚]
Współczynnik tłumienia
zawieszenia 2353 [
𝑁
𝑚𝑠−1]
Długość skoku zawieszenia 0,24[𝑚]
Twardość stabilizatora 49[%] 51[%]
Ustawienia systemów bezpieczeństwa czynnego zaczerpnięto z przykładów dla samochodu osobowego,
będących częścią biblioteki Vechicle Physics Pro.
78
Rysunek 31 Ustawienia systemów bezpieczeństwa czynnego
Na podstawie powyższej konfiguracji nie można powiedzieć, że modelowany samochód odpowiada
swojemu wizualnemu pierwowzorowi, jednak celem badań nie było przeprowadzenie eksperymentów
z użyciem konkretnego modelu, tylko ogólnego modelu samochodu. Uznano jednak, że w tej chwili był
on wystarczająco bliski istniejącemu fizycznie samochodowi, żeby uznać uzyskane z jego pomocą
wyniki badań za wiarygodne. Jednak modelowany do tej pory pojazd nie jest oferowany na rynku już
od kilku lat i nie korzysta z kilku rozwiązań ważnych dla niniejszych badań. W związku z tym,
zmodyfikowano używany model wyposażając go w napęd na 4 koła z wykorzystaniem mechanizmów
różnicowych, których konfigurację skopiowano z przykładowego samochodu sportowego, będącego
częścią biblioteki. Oprócz tego zastosowano skrętne koła tylne, skręcające proporcjonalnie z przednimi
w kierunku zależnym od prędkości jazdy. Przy prędkości mniejszej niż 60 [𝑘𝑚
ℎ] koła tylne skręcają
w kierunku przeciwnym do przednich, a powyżej tej prędkości skręcają w tym samym kierunku co
przednie. Problem zachowania przy zmianie prędkości rozwiązano stosując funkcję proporcji skrętu od
prędkości 𝑠(𝑣) wyrażoną równaniem
79
𝑠(𝑣) = max(−1,min (
𝑣 − 60
10, 1)) (18)
oraz rysunkiem 32.
Rysunek 32 Wizualizacja funkcji (18) – zależność współczynnika skrętu kół od prędkości
Zachowanie tylnej osi skrętnej wydaje się skomplikowane, jednak jest typowym rozwiązaniem
dostępnym współcześnie na rynku.
Walidację wykonano zgodnie z metodyką zaproponowaną na stronie producenta, Vehicle Physics Pro,
czyli porównując zachowanie symulowanego samochodu z rzeczywistym, korzystając z nagrań
przedstawiających taki samochód podczas prób dynamicznych (slalom, jazda po okręgu, przyspieszenie,
hamowanie, pokonywanie progu zwalniającego), np. [130].
Zasymulowany w ten sposób pojazd nazywa się w tej pracy pojazdem referencyjnym. Na jego
podstawie, w sposób opisany w podrozdziale 3.3, utworzono symulowany pojazd sterowany
z wykorzystaniem IDSA. Podczas pracy nad pojazdem wykorzystującym IDSA, wszystkie jego
parametry fizyczne, niezwiązane z systemami bezpieczeństwa, pozostały niezmienione w stosunku
do pojazdu referencyjnego.
3.3. Realizacja IDSA na potrzeby badań
W celu przebadania IDSA, konieczna była jego implementacja. W tym celu napisano aplikację w języku
Java [131], która realizuje IDSA. Aplikację napisano w czystym języku, bez korzystania z gotowych
framework-ów. Aplikacja budowana jest z użyciem narzędzia Maven [132] i posiada tylko trzy
zależności. Biblioteka SnakeYAML [133] używana jest do parsowania konfiguracji utworzonej
z wykorzystaniem standardu YAML [134], biblioteka Commons Math [135] odpowiada za parsowanie
i wykonywanie działań matematycznych, a biblioteka tensorflow – do integracji z sieciami
neuronowymi. Wszystkie interfejsy, zarządzanie wątkami i struktury danych, wykonano ręcznie
z wykorzystaniem wyłącznie komponentów języka Java. Aplikacja dostępna jest w repozytorium [136].
Zdecydowano się na to rozwiązanie ze względu na bardzo dobrą znajomość języka i możliwość
ograniczenia stosu wywołań, co zapewniło wysoką wydajność i szybkość realizacji prototypu. Z drugiej
80
strony wykorzystane biblioteki pozwoliły skrócić implementację i jednocześnie uniknąć błędu podczas
potencjalnej implementacji własnej.
Każdy logiczny proces, będący składową IDSA, wykorzystuje w zbudowanej aplikacji własną pulę
wątków o zdefiniowanym rozmiarze. Rozmiar każdej puli określono eksperymentalnie podczas
strojenia algorytmu. Wejściowe interfejsy sieciowe wyposażone są w oddzielne bufory
o „nieskończonym” rozmiarze (do wielkości dostępnej pamięci operacyjnej), które zapisują
przychodzące dane w oczekiwaniu na dostępny wątek procesora. Wszystkie procesy logiczne opisano
interfejsami programowymi, dzięki czemu umożliwiono ich wymianę bez zaburzania implementacji
pozostałych elementów.
Kierownica Logitech
G29
Komputer
System operacyjny
Podgląd symulacji on-line
Symulator
Zapis telemetrii do analizy
off-line
Interfejs wejściowy
Systemy bezpieczeństwa
czynnego Urządzenia wykonawcze
Symulacja fizyczna
Sensory
Rysunek 33 Model przepływu informacji z wykorzystaniem pojazdu referencyjnego
Bardzo ważne jest zrozumienie różnicy pomiędzy sterowaniem pojazdem referencyjnym
i z zastosowaniem IDSA. Na rysunku 33 zademonstrowano przepływ informacji z użyciem symulatora
i pojazdu referencyjnego, a na rysunku 34 zademonstrowano przepływ informacji w wykorzystaniem
symulatora i IDSA. Obydwa rysunki nie posiadają opisu danych na strzałkach ze względu na ich
czytelność. Jak widać na rysunkach, kierownica podłączona do komputera generuje strumień bitów
odpowiadający położeniu koła kierownicy i pedałów. Komponent „Interfejs wejściowy”, będący częścią
symulatora i biblioteki Vehicle Physics Pro, zamienia je na konkretne wartości zmiennoprzecinkowe
dla każdego kroku symulacji. Te wartości na rysunku 33 przekazywane są do urządzeń wykonawczych
i systemów bezpieczeństwa czynnego – dokładnie tak, jak w rzeczywistym, współczesnym
samochodzie. Jak widać, także dane z sensorów, zarówno dotyczących otoczenia pojazdu, jak i samego
pojazdu, przekazywane są do systemów bezpieczeństwa czynnego (rozwiązanie referencyjne)
lub wyłącznie do IDSA. Na rysunku 34 nie ma w ogóle systemów bezpieczeństwa czynnego ani
bezpośredniego połączenia pomiędzy kierownicą a urządzeniami wykonawczymi. Zamiast tego sygnał
jest przetwarzany przez aplikację realizującą IDSA. Następnie, w obu metodach symulacji, sygnał
przetwarzany jest przez symulator jako pozycja urządzeń wykonawczych oraz ostatecznie, jako
zachowanie pojazdu. Symulator udostępnia podgląd symulacji w czasie rzeczywistym oraz zapis stanu
81
pojazdu (telemetrii) do późniejszej analizy. Podobnie IDSA udostępnia zapis swoich danych
(wszystkich przetwarzanych zmiennych) do późniejszej analizy. Mimo że symulacja realizowana jest
iteracyjnie (w kolejnych krokach symulacji), wejście i wyjście IDSA nie są powiązane czasowo
z symulacją. Połączenie pomiędzy symulatorem i aplikacją realizującą IDSA realizowane jest przez
interfejs sieciowy – protokoły TCP i UDP. Dzięki temu można łatwo rozdzielić symulację i IDSA
na dwa komputery lub zastąpić symulator rzeczywistym pojazdem, zmieniając tylko skonfigurowane
adresy IP.
Kierownica Logitech
G29
Komputer
System operacyjny
Podgląd symulacji on-line
Symulator
Zapis telemetrii do analizy
off-line
Interfejs wejściowy
Urządzenia wykonawcze
Symulacja fizyczna
Aplikacja realizująca IDSA
Interfejs sieciowy (pętla zwrotna)
Sensory
Zapis danych pośrednich do analizy off-line
Rysunek 34 Obecny model przepływu informacji z wykorzystaniem IDSA
Aplikację realizującą IDSA tworzono podczas jego strojenia, dobierając jej architekturę i szczegóły
implementacyjne do wybranych implementacji procesów składowych. Ta aplikacja konfigurowana jest
przez zbiór parametrów. Oprócz parametrów czysto technicznych, jak numery portów sieciowych
przeznaczonych do komunikacji z symulatorem, występują tu też parametry IDSA, np. maksymalne
stopnie wielomianów interpolujących funkcje. Ten proces został szerzej opisany w podrozdziale 4.3.
82
4. BADANIA SYMULACYJNE ALGORYTMU
Pierwszym etapem badania IDSA, jednocześnie jedynym zrealizowanym w ramach tej pracy, jest
badanie symulacyjne. Polega ono na porównaniu pojazdu sterowanego w sposób tradycyjny
(podrozdział 3.2) oraz pojazdu sterowanego z wykorzystaniem IDSA (podrozdział 3.3). W tym celu
zaimplementowano symulator z dwoma fizycznie identycznymi pojazdami, wybrano ich parametry
(wejście symulacji), wskaźniki oceny (wyjście symulacji), określono ograniczenia, a następnie
zaprojektowano i przeprowadzono konieczne badania. Ich przebieg i wyniki zostały opisane w tym
rozdziale.
4.1. Podstawy badań symulacyjnych
Symulacja to inaczej naśladowanie zdarzeń, systemów lub bytów. W przypadku niniejszych badań
należy zawęzić tę definicję do symulacji komputerowej. Symulacja komputerowa to metoda
naśladowania rzeczywistości przy pomocy komputera, najczęściej bazująca na modelach
matematycznych. Badania symulacyjne z użyciem symulacji komputerowej, to ciąg czynności
prowadzących do analizy wycinka rzeczywistości przy pomocy realizowanych przez komputer modeli
matematycznych naśladujących ten wycinek. Najczęściej opierają się one na założeniu, mówiącym
że używane modele są wystarczająco dokładne, żeby wyniki tej analizy można było odnieść
(niekoniecznie w tożsamy sposób) do świata rzeczywistego.
W niniejszej pracy użyto konkretnego typu badań – eksperymentów czynnych. Taki eksperyment to
rodzaj przeprowadzania badań, polegający na wpływaniu na badany system i obserwacji jego
zachowania. Połączenie eksperymentów i symulacji daje ogromne możliwości powtarzania prób
w identycznych warunkach, a także zapewnia wysoką dokładność wpływania na symulowany obiekt,
często także wykracza poza granice istniejące w świecie rzeczywistym, np. granice fizyki.
Z powyższego wynika, że zastosowana metoda badań – komputerowe eksperymenty symulacyjne –
posiada zarówno zalety, jak i wady. Oprócz cech wymienionych powyżej, należy wspomnieć o niskiej
cenie, możliwości pracy bez nadzoru człowieka (na podstawie skryptów), wysokiej elastyczności,
ale z drugiej strony również o możliwych wątpliwościach, co do walidacji wyników badań.
Przed zaplanowaniem badań symulacyjnych, należało opisać ich zakres, czyli parametry, wskaźniki
oceny i ograniczenia.
4.1.1. Parametry
Zastosowane parametry badań symulacyjnych najłatwiej podzielić na domyślne i niestandardowe.
Parametry domyślne ukryte są w silniku symulacyjnym (Unity3D) oraz bibliotece Vehicle Physics Pro.
Istnieje możliwość ich zmiany, jednak nie było to wykonywane. Bardzo trudno opracować kompletną
listę takich parametrów, więc zakłada się, że wszystkie parametry inne niż wymienione w tej pracy,
to parametry domyślne, których wartości zgadzają się z fizyką i intuicją. Przykładem parametru
domyślnego jest kierunek i siła grawitacji, współczynnik tarcia – statycznego i dynamicznego – opony
o asfalt drogowy lub trawnik, parametry oporu aerodynamicznego czy szerokość pasa drogowego.
Parametry niestandardowe można podzielić na kilka grup. Pierwszą z nich są parametry fizyczne
nadwozia pojazdu, wymienione w podrozdziale 3.2: masa, rozkład masy i rozmiar samochodu. Kolejna
83
grupa, opisana w tym samym miejscu, to parametry podwozia i silnika: charakterystyka silnika, rozstaw
i położenie osi, rozmiar kół, siła hamowania i jej rozkład, parametry opon i zawieszenia. Parametrem
symulacji można też nazwać trasę, po której poruszały się badane pojazdy, jednak zostanie to omówione
później.
Powyższy zestaw parametrów jest wspólny dla obu badanych pojazdów. Jeśli w danym eksperymencie
zdecydowano się na zmianę któregoś z nich (np. przesunięcie środka ciężkości samochodu), to
wykonano taką zmianę dla obu pojazdów – referencyjnego i sterowanego przez IDSA.
Należy też wymienić parametry właściwe wyłącznie dla jednego samochodu. W przypadku pojazdu
referencyjnego jest to zbiór ustawień systemów ABS, TCS, ECS oraz ASR, pokazany na rysunku 31.
Dla pojazdu sterowanego przez IDSA są to parametry IDSA, wymienione w podrozdziale 4.3.
4.1.2. Wskaźniki oceny
IDSA nie może być porównywany bezpośrednio do żadnego z istniejących algorytmów działających
we współczesnych pojazdach. Przykładowo we wszystkich samochodach wyposażonych w kamery,
stosuje się algorytmy przetwarzania obrazu. Ich celem jest np. poprawa parametrów obrazu,
klasteryzacja, klasyfikacja itd. W nowoczesnych samochodach stosuje się też algorytmy z grupy SLAM,
których celem jest zlokalizowanie obserwatora w otoczeniu i zlokalizowanie w nim innych obiektów.
Idąc dalej, istnieją algorytmy, które wykorzystują tę wiedzę do uruchomienia awaryjnego hamowania.
Ich celem jest wykrycie sytuacji, w której kierowca nie był dostatecznie uważny i dopuścił do
wystąpienia sytuacji niebezpiecznej. Kiedy wszystkie powyższe systemy zadziałają, kolejny system –
ABS – uruchamia się w celu uniknięcia zablokowania kół podczas hamowania. Każdy z powyższych
celów można poddać ocenie w swojej kategorii, a czasami nawet w kilku kategoriach. Jednak rolą IDSA
nie jest analiza obrazu, mapowanie otoczenia, wykrywanie zagrożeń czy uniknięcie blokowania kół.
Jego celem jest przede wszystkim zwiększenie bezpieczeństwa, a w drugiej kolejności – zapewnienie
komfortu jazdy. W powyższym scenariuszu można więc ocenić go tylko w kategoriach uniknięcia
kolizji i – w drugiej kolejności – wysokości przyspieszeń działających na pasażerów.
Warto zauważyć, że IDSA wypełnia niektóre powyższe funkcje (np. analizuje obraz), ale też
nie wypełnia wprost innych (np. nie zapobiega poślizgowi kół). Innymi słowy, nie istnieje
w nim komponent odpowiedzialny za zapobieganie blokowaniu kół. Jeśli algorytm uzna, że można
lub nawet należy je zablokować, to powinien wykonać taką operację i nie powinno się oceniać go za to
negatywnie. Takie same zadania, realizowane przez procesy składowe w przypadku IDSA
i odseparowane algorytmy w klasycznym podejściu, też nie są podstawą do ich bezpośredniego
porównania - i to z dwóch powodów. Po pierwsze, te zadania wykonywane są w różnych celach (np.
w przypadku IDSA wyjściem z procesu analizy obrazu jest od razu geometryczna mapa otoczenia, a nie,
np. obraz poprawiony filtrami graficznymi) oraz w różny sposób (w przypadku IDSA mapę generuje
algorytm z pamięcią). Po drugie, takie porównanie nie miałoby żadnej wartości. Nawet jeśli konkretny
proces będący częścią IDSA realizowałby dokładnie to samo zadanie gorzej niż dedykowany system
używany we współczesnych samochodach, to nie ma to znaczenia dopóty, dopóki nie obniża to oceny
całego IDSA. Mówiąc inaczej, nie zakłada się, żeby niższa ocena procesu składowego oznaczała niższą
ocenę całego IDSA. Można uznać za celowe obniżenie jakości pracy pojedynczego procesu, np. w celu
zaoszczędzenia zasobów, jeśli nie cierpi na tym ocena całego IDSA.
84
W związku z powyższym zdecydowano się na ocenę zachowania pojazdu w ujęciu holistycznym
lub inaczej systemowym, czyli całego samochodu w konkretnych sytuacjach, a nie na porównaniu
konkretnych, istniejących systemów wspomagania kierowcy do procesów składowych IDSA.
Jak już było powiedziane, IDSA wykonuje optymalizację z użyciem dwóch kryteriów – bezpieczeństwa
i komfortu jazdy. Należy w związku z tym zdefiniować, jak można to bezpieczeństwo i komfort ocenić
ilościowo.
Proponuje się następujące cząstkowe wskaźniki oceny.
Wskaźnik 𝑞1 – przechylenie samochodu wzdłuż osi wzdłużnej
Wskaźnik ten jest równoważny zmiennej 𝑝, wskazanej w standardzie przedstawionym na rysunku 1.
Jest istotny przede wszystkich podczas pokonywania zakrętów. Jego wysoka wartość bezwzględna
oznacza, że samochód mocno się przechylił, co należy ocenić negatywnie z dwóch powodów.
Na potrzeby tego wyjaśnienia zakłada się, że samochód skręca w prawo. Jeśli przechyla się przy tym
z powodu działającej na niego siły odśrodkowej, to przechyla się w lewo. W ten sposób dociąża
zawieszenie i opony z lewej strony i jednocześnie odciąża, a w skrajnej sytuacji nawet podnosi, koła
z prawej strony. Większość typów zawieszeń samochodowych pracuje najlepiej ze średnim
obciążeniem, co należy rozumieć tak, że zachowuje swoje parametry (współczynnik sprężystości
i tłumienia), kiedy nie jest za bardzo ani ściśnięte, ani rozciągnięte. W tym przypadku zawieszenie
z lewej strony jest mocno ściśnięte, a po prawej mocno rozciągnięte. Idąc dalej, opony z lewej strony
również są ściśnięte, a ich bieżnik zniekształcony, co negatywnie wpływa na ich współczynnik tarcia
i zdolność odprowadzania wody. Z drugiej strony jest to skompensowane przez większy nacisk na te
opony. Warto jednak zauważyć, że z prawej strony występuje zarówno zniekształcenie bieżnika, jak
i zmniejszenie nacisku, co ogranicza tarcie [137].
Powyższy opis dotyczy negatywnego wpływu przechylenia samochodu na bezpieczeństwo jazdy.
Oprócz tego, przechylenie samochodu, bezdyskusyjnie, ogranicza również komfort podróżnych.
Wskaźnik 𝑞2 – zmiana prędkości poruszania się
Kolejny wskaźnik brany pod uwagę, to zmiana prędkości podczas prób dynamicznych, czyli różnica
pomiędzy prędkością skrajną (najniższą lub najwyższą) a prędkością początkową. Najczęściej jest to
utrata prędkości końcowej w stosunku do prędkości początkowej. Podczas badań zaobserwowano, że
podczas wykonywania manewrów z wykorzystaniem samochodu referencyjnego, następuje znaczna
utrata prędkości. Jej powodem jest działanie obecnych w pojeździe systemów bezpieczeństwa, które
opierają się na przyhamowywaniu konkretnych kół, co w rezultacie zmniejsza prędkość pojazdu.
W sytuacji zagrożenia utrata prędkości może być zjawiskiem negatywnym, ponieważ może powodować
konieczność ponownego rozpędzenia pojazdu, np. w celu pokonania kolejnej przeszkody. Idealnym
przykładem zagrożenia wynikającego z utraty prędkości jest tzw. test łosia. Podczas tego eksperymentu
samochód gwałtownie zmienia pas ruchu, a następnie gwałtownie wraca na swój pierwotny tor jazdy.
Symuluje to ominięcie pojawiającego się na drodze łosia i szybką ucieczkę na swój pas przed
nadjeżdżającym z naprzeciwka pojazdem. Jeśli prędkość samochodu została zmniejszona, czas
wykonania całego manewru wydłuża się, przez co samochód dłużej porusza się kolizyjnie w stosunku
do samochodów nadjeżdżającymi z przodu.
85
Wskaźnik 𝑞3 – wymagany skręt kierownicy
Kolejnym badanym wskaźnikiem jest maksymalny kąt, o który konieczne było obrócenie kierownicy
podczas manewru. Z punktu widzenia bezpieczeństwa podczas gwałtownych manewrów najlepiej
byłoby, gdyby kierowca nigdy nie odrywał rąk od kierownicy, co dawałoby możliwość pełnego skrętu
kół od prawej do lewej, przy maksymalnie jednym, pełnym obrocie kierownicą. Z drugiej strony taka
kalibracja układu kierowniczego utrudniłaby jazdę na wprost, podczas której dokonuje się tylko
niewielkich korekt toru jazdy. Z tego powodu stosuje się dwa rozwiązania – zmienne lub aktywne
przełożenie układu kierowniczego. Zmienne przełożenie układu kierowniczego, to zależność
określająca o ile skręcają się koła samochodu przy konkretnym skręcie koła kierownicy. Przykładowo
wartość tego parametru 2: 1 oznacza, że na każde 2[°] skrętu kierownicy przypada 1[°] skrętu kół.
Zmienne przełożenie układu kierowniczego reprezentowane jest przez funkcję przełożenia
od aktualnego skrętu. W ten sposób, podczas jazdy prosto lub prawie prosto, przełożenie jest większe
niż podczas pokonywania ostrego zakrętu. Innym rozwiązaniem, drogim w realizacji, przy pomocy
fizycznego układu kierowniczego, jest aktywne przełożenie tego układu. Uzależnia ono wartość
przełożenia od prędkości jazdy lub gwałtowności skrętu (prędkości kątowej koła kierownicy).
Samochód referencyjny używa zmiennego przełożenia układu kierowniczego, a IDSA implementuje
przełożenie aktywne. Na potrzeby badań założono, że optymalizacja tego wskaźnika, to jego
minimalizacja.
Wskaźniki 𝑞4 oraz 𝑞5 – poślizg opon
Ten wskaźnik podzielono na dwa – maksymalny poślizg koła, zmierzony podczas przeprowadzanego
testu (𝑞4) oraz minimalny poślizg spośród pozostałych kół, zmierzony w tej samej chwili (𝑞5). Poślizg
jest obliczany przy pomocy symulatora, jako prędkość liniowa opony w miejscu styku z powierzchnią,
po której się porusza. Im większy poślizg, tym mniejsze bezpieczeństwo. Wynika to z różnicy pomiędzy
tarciem dynamicznym (kiedy koło się ślizga) a tarciem statycznym (bez poślizgu). Im mniejsze tarcie
(a większy poślizg), tym trudniej opanować samochód.
Wskaźnik 𝑞6 – czas przejazdu
Czas potrzebny na pokonanie trasy testowej, liczony od rozpoczęcia pierwszego skrętu na trasie
do wyprostowania toru jazdy po wykonaniu manewru lub wszystkich potrzebnych manewrów. Wysoka
wartość tego wskaźnika oznacza, że przejazd zajął więcej czasu, co należy rozumieć jako zachowanie
mniej pewne, a co za tym idzie – mniej bezpieczne.
Wskaźnik 𝑞7 - uniknięcie wypadku
Wskaźnik przyjmuje wartość 1, jeśli podczas przejazdu nie doszło do kolizji oraz zachowano zadany
pas ruchu, lub wartość 0, jeśli testowany pojazd w coś uderzył lub swój pas ruchu opuścił.
W podrozdziale 4.4 wypadek jest rozumiany jako opuszczenie zadanego toru i niezaliczenie
konkretnego przejazdu.
Wskaźniki zagregowane 𝑄𝐾 oraz 𝑄𝐵 – komfort jazdy i bezpieczeństwo
Na podstawie powyższych wskaźników oceny opracowano dwa główne wskaźniki, używane do oceny
algorytmu.
86
Bezpieczeństwo będzie oznaczane przez 𝑄𝐵 , a komfort przez 𝑄𝐾 . Te zmienne wyliczane są według
wzorów
𝑄𝐵 = {∑𝛼𝑖(1 − �̅�𝑖), jeżeli 𝑞7 = 1
6
𝑖=1
0, jeżeli 𝑞7 = 0
, (19)
𝑄𝐾 = {∑𝛽𝑖(1 − �̅�𝑖), jeżeli 𝑞7 = 1
6
𝑖=1
0, jeżeli 𝑞7 = 0
, (20)
gdzie
a) wartość �̅�𝑖 jest unormowaną wartością 𝑞𝑖 obliczaną jako
�̅�𝑖 =
{
1, jeżeli w eksperymencie nie mierzono wartości 𝑞𝑖𝑞𝑖 − 𝑞𝑖,𝑚𝑖𝑛
𝑞𝑖.𝑚𝑎𝑥 − 𝑞𝑖,𝑚𝑖𝑛, jeżeli w eksperymencie mierzono 𝑞𝑖 dla 𝑖 ≠ 2
min(𝑞𝑖 , 0)
𝑞𝑖.𝑚𝑖𝑛, jeżeli w eksperymencie mierzono 𝑞𝑖 dla 𝑖 = 2
, (21)
b) 𝑞𝑖,𝑚𝑖𝑛 , 𝑞𝑖,𝑚𝑎𝑥 są odpowiednio najmniejszą i największą wartością wskaźnika 𝑞𝑖
w przeprowadzonych eksperymentach,
c) 𝛼𝑖, 𝛽𝑖 ∈ [0,1] są nieujemnymi współczynnikami wagowymi wskaźników składowych takimi,
że
∑𝛼𝑖
6
𝑖=1
= 1,∑𝛽𝑖
6
𝑖=1
= 1. (22)
Różnica w normalizacji wskaźnika 𝑞2 w stosunku do pozostałych wskaźników wynika z tego, że jego
najlepszą wartością jest 𝑞2 = 0, oraz im niższe wartości ujemne, tym gorsza ocena, oraz wartości 𝑞2 >
0 nie są oceniane wyżej, niż wartość 𝑞2 = 0 . Dla wszystkich innych wskaźników 𝑞1, 𝑞3, 𝑞4. 𝑞5. 𝑞6
wartość niższa oznacza lepszą ocenę.
Wartości współczynników 𝛼𝑖, 𝛽𝑖 wyznaczono arbitralnie biorąc pod uwagę spodziewany wpływ danego
wskaźnika 𝑞𝑖 na bezpieczeństwo i komfort oraz potwierdzając te wagi podczas eksperymentów
87
obliczeniowych, gdzie sprawdzano dla jakich 𝛼𝑖 oraz 𝛽𝑖 , wskaźniki 𝑄𝐵 oraz 𝑄𝐾 najlepiej wyrażały
subiektywną ocenę bezpieczeństwa i komfortu. Zdecydowano się na wartości przedstawione w tabeli 8.
Tabela 8 Wartości wag używanych do obliczenia wskaźników zagregowanych
waga wartość
𝛼1 0
𝛼2 1
11
𝛼3 2
11
𝛼4 4
11
𝛼5 3
11
𝛼6 1
11
𝛽1 6
10
𝛽2 1
10
𝛽3 3
10
𝛽4 0
𝛽5 0
𝛽6 0
Jak widać w tabeli 8, najważniejszym wskaźnikiem dotyczącym bezpieczeństwa (oprócz oczywistego
𝑞7) jest maksymalny poślizg 𝑞4. Tylko niewiele mniej istotny jest minimalny poślizg 𝑞5. Kolejną wagę
nadano potrzebnemu skrętowi kierownicy 𝑞3. Na ostatnim miejscu znalazły się z równą wagą: utrata
prędkości 𝑞2, oraz czas przejazdu 𝑞6. Dla komfortu najważniejszym wskaźnikiem jest przechylenie
nadwozia 𝑞1. Dwukrotnie mniej istotny jest wymagany skręt kierownicą 𝑞3. Wyraźnie mniejszy wpływ
na komfort ma ewentualne przyhamowanie podczas manewru 𝑞2.
4.1.3. Ograniczenia
Podobnie, jak w przypadku parametrów opisanych w punkcie 4.1.1, część ograniczeń jest domyślna
i intuicyjna. Przykładowo, siła hamująca nie może być nieskończona, a opona idealnie przyczepna.
Oprócz tego wprowadzono też ograniczenia nieoczywiste, wymienione w tabeli 9.
88
Tabela 9 Ograniczenia
Ograniczenie Wartość i opis
Kierunek ruchu
Na potrzeby badań założono, że samochód
porusza się wyłącznie do przodu. Dzięki temu
można było odciążyć komputer poprzez
wyłączenie czujników skierowanych do tyłu.
Maksymalny skręt kół przednich 45[°]
Maksymalny skręt kół tylnych 10[°]
Maksymalny moment obrotowy silnika 193[𝑁𝑚]
Liczba badanych nawierzchni, po których
porusza się pojazd Ograniczono badania do trawy i asfaltu
Maksymalna siła hamulców z przodu 1927[N]
Maksymalna siła hamulców z tyłu 1373[𝑁]
Minimalny współczynnik sprężystości
zawieszenia przedniego 40000 [
𝑁
𝑚]
Maksymalny współczynnik sprężystości
zawieszenia przedniego 80000 [
𝑁
𝑚]
Minimalny współczynnik tłumienia zawieszenia
przedniego 1000 [
𝑁
𝑚𝑠−1]
Maksymalny współczynnik tłumienia
zawieszenia przedniego 5000 [
𝑁
𝑚𝑠−1]
Minimalny współczynnik sprężystości
zawieszenia tylnego 40000 [
𝑁
𝑚]
Maksymalny współczynnik sprężystości
zawieszenia tylnego 80000 [
𝑁
𝑚]
Minimalny współczynnik tłumienia zawieszenia
tylnego 1000 [
𝑁
𝑚𝑠−1]
Maksymalny współczynnik tłumienia
zawieszenia tylnego 5000 [
𝑁
𝑚𝑠−1]
Maksymalne opóźnienie wykonania sterowania
0,1[𝑠] Opóźnienie jest losowane z zakresu od 0
do wartości maksymalnej. Odpowiada ono
opóźnieniu w realizacji sterowania przez
fizyczne realizatory
Część ograniczeń jest oczywista, wystarczyło tylko wybrać ich wartości (np. maksymalny skręt kół).
Pozostałe wprowadzono w celu ograniczenia zasobów używanych przez symulator lub celowego
ograniczenia zakresu badań.
4.2. Plan badań
Badania przedstawione w niniejszej pracy podzielono na dwie części. Pierwsza z nich zakładała
wykonanie algorytmu, a druga – jego przetestowanie. Warto zauważyć, że nie można wyraźnie
rozdzielić obu części pracy. Kiedy wydawało się, że pierwsza z nich jest już skończona, wielokrotnie
podczas badań okazywało się, że algorytm należy jeszcze dostroić, żeby działał lepiej – zarówno
89
w kontekście parametryzacji procesów, jak i wyboru ich implementacji. W podrozdziale 4.4 badania
rozpoczęto od dostrojonej wersji IDSA, jednak w punktach 4.4.10 – 4.4.13 zbadano wrażliwość IDSA
na zmianę niektórych jego parametrów.
4.2.1. Wykonanie IDSA
Przed przystąpieniem do testów funkcjonalnych IDSA, należało go wykonać i nastroić. Podczas
realizacji tego zadania dość trudne stało się oddzielenie samego algorytmu od jego implementacji,
będącej jednocześnie jego strojeniem. W punkcie 1.4.2 określono, że jednym z wymagań stawianych
przed algorytmem jest jego wykonywalność. Z drugiej strony, opis IDSA w rozdziale 2 nie jest
precyzyjny na tyle, żeby można było go wykonać bez wybrania implementacji poszczególnych
procesów. Oznacza to, że częścią strojenia IDSA jest nie tylko dobór parametrów do procesów go
realizujących, ale także wybranie samych procesów tak, żeby spełniały zdefiniowane zależności
wejściowo-wyjściowe (interfejsy programistyczne). Zarówno sam algorytm (rozdział 2), jak i jego
strojenie, czyli implementacja i parametryzacja jego procesów (podrozdział 4.3), były wykonywane
jednocześnie. Oznaczało to konieczność tymczasowego „mock-owania” (podstawiania sztucznych
elementów zamiast prawdziwej implementacji) pozostałych procesów na czas implementacji jednego
z nich. W tym celu stosowano proste przekształcenia zamiast docelowych procesów lub zapisane
w kodzie wartości obliczone ręcznie.
4.2.2. Testowanie IDSA
Gdy uznano, że IDSA jest kompletny i wystarczająco sprawny, zaproponowano scenariusz badań,
mających na celu porównanie go z istniejącymi rozwiązaniami. Zaproponowano wskaźniki oceny
(punkt 4.1.2) i próby dynamiczne w różnych warunkach, a następnie metodę ograniczenia ilości
wszystkich testów.
Zaproponowano 4 trasy testowe:
Test łosia
Test polegający na gwałtownej zmianie pasa ruchu i gwałtownym powrocie na pierwotny pas,
symulujący ominięcie wybiegającego na jezdnię łosia. Przebieg testu został przedstawiony na rysunku
35. Wartość B na tym rysunku oznacza maksymalną szerokość samochodu mierzoną pomiędzy
zewnętrznymi krawędziami opon. Pozostałe wartości podane są w metrach. Test zmodyfikowano
względem standardu ISO 3888:1975 [138], poprzez wydłużenie odcinka zmiany pasa do 60[𝑚], w celu
zbadania zachowania pojazdu przy wyższych prędkościach. Podczas tego testu badano wyłącznie
wskaźniki oceny 𝑞1, 𝑞2 oraz 𝑞3. Uznano, że wskaźnik 𝑞2 (utrata prędkości) jest wystarczający, więc
nie ma potrzeby badania wskaźnika 𝑞6, a wskaźniki 𝑞4 i 𝑞5 nie są istotne, ponieważ w tym manewrze
poślizg kół może być zjawiskiem pożądanym, pomagającym utrzymać zadaną trajektorię ruchu.
90
Rysunek 35 Test łosia [139]
Ciasny zakręt
Test przedstawiony na rysunku 36, polegający na pokonaniu zakrętu 90[°] , którego promień
wewnętrzny wynosi 5[𝑚], a szerokość pasa (w zakręcie, przed zakrętem i za zakrętem) to 3,5[𝑚].
Dobór badanych na tej trasie wskaźników oceny jest taki sam, jak dla testu łosia. Czas przejazdu 𝑞6
zastąpiono utratą prędkości 𝑞2, a możliwy poślizg uznano za akceptowalny i nieszkodliwy.
Rysunek 36 Ciasny zakręt
Długi zakręt
Test przedstawiony na rysunku 37, polegający na jeździe ciągłej (nieskończenie długi zakręt lub rondo)
po zakręcie, którego promień wewnętrzny wynosi 15[𝑚], a szerokość pasa 3,5[𝑚]. Ta trasa została
stworzona wyłącznie do badania poślizgów (wskaźniki oceny 𝑞4 oraz 𝑞5 ). Ze względu na jazdę po
91
okręgu ze stałym promieniem i ze stałą prędkością, czas przejazdu 𝑞6 i utrata prędkości 𝑞2 nie mają
żadnego sensu, a skręt kierownicy nie ma żadnego znaczenia.
Rysunek 37 Długi zakręt
Slalom
Test przedstawiony na rysunku 37, polegający na naprzemiennym (raz z prawej – raz z lewej) ominięciu
20 pachołków ustawionych w odległości 5-6 razy większej, niż rozstaw osi pojazdu. W tym przypadku
rozstaw osi wynosi 2615[𝑚𝑚], więc założono odległość między pachołkami 15[𝑚]. W przypadku tego
toru testowego istotne były wszystkie wskaźniki oceny – przechył 𝑞1, wymagany skręt kierownicy 𝑞3,
poślizgi 𝑞4 oraz 𝑞5. Ze względu na długość trasy do badania czasu przejazdu zastosowano wskaźnik 𝑞6
zamiast 𝑞2.
Rysunek 38 Slalom
15[m] 3,5[m]
15[m]
92
Warunki przeprowadzania eksperymentów
Zaproponowano eksperymenty polegające na zmianie parametrów przedstawionych w tabelach 10 – 13.
Tabela 10 Parametry fizyczne samochodu
Parametr Oznaczenie i wartość domyślna
Liczba
badanych
wartości
Cel badania
Masa własna 𝑚𝑐 = 1300[𝑘𝑔] 2
Wpływ podniesienia
masy (załadunku)
na zachowanie pojazdu
Stosunek masy
przypadającej na
każde z kół
𝑚𝑟 = [0,25; 0,25; 0,25; 0,25] 3
Wpływ
nierównomiernego
załadunku
na zachowanie pojazdu
Długość
zawieszenia 𝑙𝑠 = 0,388[𝑚] 2
Możliwość działania
algorytmu
w samochodzie
uterenowionym
Rodzaj opon 𝑜 (wartość domyślna:
rysunek 52) 2
Wpływ zużycia opon
na zachowanie pojazdu
Tabela 11 Parametry dotyczące IDSA lub jego składowych
Parametr Oznaczenie i wartość domyślna
Liczba
badanych
wartości
Cel badania
Bezwładność
urządzeń
wykonawczych
EXECUTION_DELAY = 0,1[s] 2
Wpływ na działanie
algorytmu zwiększenia
bezwładności urządzeń
wykonawczych
Stopień
wielomianu
aproksymującego
APPROXIMATION_DEGREE=
3 4
Wpływ na działanie
algorytmu zastosowania
wielomianu o małym,
dużym lub bardzo
dużym stopniu
Liczba wątków
aproksymujących
APPROXIMATION_THREAD
_POOL_SIZE=3 2
Wpływ na działanie
algorytmu zmniejszenia
ilości wątków
aproksymujących
(wydłużenia czasu
pomiędzy kolejnymi
aproksymacjami tej
samej funkcji)
93
Parametr Oznaczenie i wartość domyślna
Liczba
badanych
wartości
Cel badania
Czas generacji
w procesie
predykcji
trajektorii
TRAJECTORY_EVOLUTION_
TIME
=0,1[s]
3
Wpływ na działanie
algorytmu zwiększenia
jakości trajektorii
kosztem czasu jej
generowania
lub zmniejszenia jakości
trajektorii na rzecz czasu
jej generowania
W przypadku parametrów 𝑚𝑐 ,𝑚𝑟, 𝑙𝑠, 𝑜 przedstawionych w tabeli 12, nie planowano skupiać się
na konkretnych wartościach, a raczej na ogólnym zwiększeniu lub zmniejszeniu czułości
poszczególnych systemów bezpieczeństwa czynnego.
Tabela 12 Parametry dotyczące samochodu referencyjnego
Parametr
Oznaczenie i wartość domyślna Liczba
badanych
wartości
Cel badania
Ustawienia ABS
(rysunek 31)
3 Wpływ zmiany ustawień
układu na zachowanie
pojazdu
Ustawienia TSC 3
Ustawienia ESC 3
Ustawienia ASR 3
Współczynnik
sprężystości
zawieszenia
SUSPENSION_FRONT_LEFT
_DAMPING_RATE=53146 [𝑁
𝑚]
SUSPENSION_FRONT_RIGHT
_DAMPING_RATE=53146 [𝑁
𝑚]
SUSPENSION_REAR_LEFT
_DAMPING_RATE=53146 [𝑁
𝑚]
SUSPENSION_REAR_RIGHT
_DAMPING_RATE=53146 [𝑁
𝑚]
3
Wpływ zmiany
parametrów zawieszenia
na zachowanie pojazdu
94
Parametr
Oznaczenie i wartość domyślna Liczba
badanych
wartości
Cel badania
Współczynnik
tłumienia
zawieszenia
SUSPENSION_FRONT_LEFT
_SPRING_RATE=2353 [𝑁
𝑚𝑠−1]
SUSPENSION_FRONT_RIGHT
_ SPRING_RATE=2353 [𝑁
𝑚𝑠−1]
SUSPENSION_REAR_LEFT
_ SPRING _RATE=2353 [𝑁
𝑚𝑠−1]
SUSPENSION_REAR_RIGHT
_SPRING _RATE=2353 [𝑁
𝑚𝑠−1]
3
Tabela 13 Pozostałe parametry
Parametr
Liczba
badanych
wartości
Cel badania
Rodzaj
nawierzchni 3
Zbadanie zachowania pojazdu na asfalcie, trawie i nawierzchni
mieszanej (o mieszanej przyczepności)
Gładkość
nawierzchni 2
Zbadanie zachowania pojazdu na nawierzchni gładkiej
i nierównej (z dziurami i wypukłościami)
Prędkość 10 Próba określenia wartości granicznej, przy której pojazd
przestaje zachowywać się zadowalająco
Jak wynika z tabel 11 – 13:
a) ze względu na parametry fizyczne pojazdu należałoby wykonać 2 ⋅ 3 ⋅ 2 ⋅ 2 = 24 jazdy
testowe,
b) ze względu na parametry dotyczące IDSA należałoby wykonać 2 ⋅ 4 ⋅ 2 ⋅ 3 = 48 jazd
testowych,
c) ze względu na parametry samochodu referencyjnego należałoby wykonać 3 ⋅ 3 ⋅ 3 ⋅ 3 ⋅ 3 ⋅ 3 =
729 jazd testowych,
d) ze względu na pozostałe parametry należałoby wykonać 3 ⋅ 2 ⋅ 10 = 60 jazd testowych.
Łatwo policzyć, że należałoby wykonać 24 ⋅ 729 ⋅ 60 = 1049760 jazd samochodem referencyjnym
oraz 48 ⋅ 729 ⋅ 60 = 2099570 jazd samochodem wyposażonym w IDSA. Jeśli pomnożymy to
przez liczbę tras testowych, założymy konieczność wykonania przynajmniej 4 takich samych
przejazdów, żeby uśrednić zachowanie kierowcy, oraz założymy, że każda jazda zajmuje około 30[𝑠],
to możemy policzyć, że wszystkie eksperymenty trwałyby 1 511 678 400[𝑠], czyli prawie 48 lat.
W związku z tym oczywista okazała się konieczność ograniczenia zakresu badań. Uznano, że można
zrezygnować z testowania samochodów powyżej prędkości granicznych – jeśli samochód nie zaliczył
ani jednej próby przy danej prędkości, to nie było przesłanek do dalszego jej zwiększania. Oprócz tego
95
zdecydowano się badać zmianę parametrów fizycznych, dotyczących IDSA oraz pojazdu
referencyjnego tylko pojedynczo (z zachowaniem wartości uznanej za optymalną dla pozostałych
parametrów). Zrezygnowano zupełnie z badania wpływu gładkości nawierzchni na algorytm oraz
zastosowano nawierzchnię o zmiennej przyczepności wyłącznie dla próby przejazdu przez długi zakręt
(w pierwszej fazie testów ten konkretny test, w takich warunkach, dawał najciekawsze rezultaty).
Oprócz tego zdecydowano się nie powtarzać czterokrotnie jazd testowych, jeśli wyniki nie są
interesujące (np. prędkość jest niska, więc samochód nie przechyla się i nie traci przyczepności).
Okazało się, że zmiany parametrów systemów ABS i ASR nie wpływają na wyniki badań, ze względu
na brak scenariuszy testowych weryfikujących bezpośrednio te systemy, natomiast badanie wpływu
ECS i TSC ograniczono do ich wyłączenia lub włączenia. Wykluczono też badanie wpływu długości
zawieszenia na pojazd. Po uwzględnieniu tych ograniczeń oszacowano czas przeprowadzania
eksperymentów na poniżej 40 godzin i uznano go za akceptowalny do dalszego postępowania.
4.3. Strojenie IDSA
Na początku tego podrozdziału należy podkreślić, że zadanie strojenia IDSA nie opiera się wyłącznie
na ustalaniu parametrów IDSA, ale też na ustalaniu całych implementacji konkretnych procesów.
Dlatego w niniejszym tekście skupiono się na opisie implementacji procesów – których interfejsy
w postaci zależności wejściowo-wyjściowych opisano w rozdziale 2 – oraz ich parametrach.
W większości są to parametry tej konkretnej implementacji IDSA, a nie jego ogólnego modelu.
4.3.1. Dyskretno-ciągły magazyn danych
Wybór implementacji
Punktem centralnym IDSA, służącym innym elementom do komunikacji, jest magazyn danych. Jak
pokazano na rysunku 18, składa się on z dwóch magazynów danych i dwóch typów procesów.
Magazyny postanowiono zrealizować jako typowe mapy składające się z kluczy i wartości, dbając przy
tym o zabezpieczenie dostępu wielowątkowego. Kluczami magazynu dyskretnego są nazwy
przechowywanych zmiennych, a wartościami – kolejne mapy, składające się ze znacznika czasowego
i wartości zmiennej (rysunek 39). Magazyn dyskretny posiada funkcję zwracającą zadaną liczbę
najnowszych pomiarów, oraz sam usuwa stare pomiary. Początkowo eksperymentowano z czasem
przechowywania pomiarów, ale proces ich czyszczenia niepotrzebnie zużywał zasoby, więc ostatecznie
zdecydowano się na implementację kolejki o zdefiniowanym rozmiarze, która gdy jest już pełna, usuwa
najstarszy element, aby przyjąć nowy. Magazyn ciągły (rysunek 40) składa się z mapy używającej jako
klucza również nazwy zmiennej, ale jej wartościami są funkcje ciągłe. Jako że używane funkcje mają
postać wielomianową o znanym, maksymalnym stopniu, ich zapis w pamięci to tablica ich
współczynników o znanym rozmiarze.
96
Zmienna_1
Znacznik czasowy 1
Znacznik czasowy 2
Znacznik czasowy 3
Wartość 1
Wartość 2
Wartość 3
Klucz Wartość
Klucz Wartość
Zmienna_2
Znacznik czasowy 4
Znacznik czasowy 5
Znacznik czasowy 6
Wartość 4
Wartość 5
Wartość 6
Klucz Wartość
Zmienna_3
Znacznik czasowy 7
Znacznik czasowy 8
Znacznik czasowy 9
Wartość 7
Wartość 8
Wartość 9
Klucz Wartość
Rysunek 39 Przykładowy magazyn dyskretny
Zmienna_1 Tablica współczynników funkcji 1
Klucz Wartość
Zmienna_2
Zmienna_3
Tablica współczynników funkcji 2
Tablica współczynników funkcji 3
Rysunek 40 Przykładowy magazyn ciągły
Dyskretno-ciągły model danych składa się też z dwóch procesów. Jako proces wyznaczania funkcji,
zdecydowano się użyć implementacji PolynomialCurveFitter z pakietu Apache Commons Math 3 [140].
Drugim procesem jest proces zarządzania zadaniami wyznaczania funkcji. To zadanie również było
przedmiotem eksperymentów. Ostatecznie zdecydowano się zaimplementować własny system
kolejkowy oparty o dedykowaną pulę wątków. Do kolejki trafiają zadania wyznaczenia funkcji
dla każdej zmiennej. Pierwszy wolny wątek pobiera zadanie z kolejki, wyznacza funkcję ciągłą
na podstawie jej wartości dyskretnych i przekazuje zmienną do magazynu tymczasowego, skąd po
określonym czasie trafia ona znów do kolejki. W ten sposób wątek wykonujący obliczenia nie jest
blokowany na czas oczekiwania przed ponownym umieszczeniem zmiennej w kolejce. Początkowo
97
proponowano nieskończone sklejanie nowych funkcji z ich historycznymi odpowiednikami,
zachowując wartość i pochodną w miejscu łączenia w celu dokładnego śledzenia obiektu w całej historii
jego obserwacji, ale okazało się to nadmiarowe. Bardziej niż historia pomiarów istotna jest ich
ekstrapolacja.
Strojenie magazynu zrealizowano przekazując wejściowe położenie kierownicy bezpośrednio do układu
kierowniczego i obserwując jego zachowanie. Zachowaniem pożądanym był brak zakłóceń
(nieplanowanych zmian kierunku jazdy) i nieodczuwalne opóźnienie.
Wartości parametrów magazynu danych
W powyższym opisie wyboru zastosowanej implementacji magazynu danych można wyróżnić
następujące zmienne.
Stopień wielomianu reprezentującego funkcję ciągłą
Do aproksymacji funkcji ciągłych używa się funkcji wielomianowych w postaci standardowej
𝑓(�̆�) =∑𝑎𝑖𝑥
�̆�,
𝑛
𝑖=0
(23)
Gdzie �̆� to aproksymowana zmienna, 𝑎𝑖 - współczynnik wielomianu, a 𝑛 oznacza stopień wielomianu.
Ten stopień według definicji IDSA można ustawić niezależnie dla każdej zmiennej. Początkowo
proponowano różne wartości dla różnych kategorii zmiennych (np. oddzielne dla zmiennych
wejściowych i wyjściowych), ale ostatecznie okazało się, że algorytm działa zadowalająco, kiedy
dla wszystkich zmiennych przyjmie się wartość 3 . Przy wartościach 1 lub 2 dało się wyczuć
obserwowalne opóźnienie podczas prowadzenia samochodu, a przy wartościach wyższych funkcja
osiągała wysokie pochodne i amplitudy, czyli duży błąd bezwzględny. Za działanie zadowalające
uznano sytuację, w której kierowca subiektywnie nie zauważał opóźnienia pomiędzy poleceniami
wydawanymi przy pomocy kierownicy i pedałów a zachowaniem samochodu. Niestety nie udało się
zmierzyć tej wartości dokładnie ze względu na różne zegary używane w implementacji IDSA (czas
wydawania polecenia) i w symulatorze (czas rozpoczęcia wykonywania żądanego manewru).
Przy okazji badania tego parametru odkryto problem z zachowaniem procesu wyznaczania funkcji
dla bardzo niskich wartości bezwzględnych, czyli blisko neutralnego położenia kierownicy.
Bezwzględne wartości wyznaczonych funkcji były bardzo wysokie, w okolicach wartości zerowej
(gdzie spodziewano się wartości dążących do zera). Problem udało się zdiagnozować jako
niedokładność obliczeń numerycznych, a jego rozwiązaniem jest ignorowanie sygnałów wejściowych
mniejszych niż zadany próg (tzw. „martwa strefa” lub „luz w położeniu centralnym kierownicy”).
Założono próg 2 [°] od położenia centralnego kierownicy. Ustalono go empirycznie w wyniku
wielokrotnego powtarzania przejazdów z różnymi ustawieniami i obserwacji zachowania pojazdu.
Liczba wątków używanych przez magazyn do wyznaczania funkcji
Większa liczba wątków pozwala jednocześnie wyznaczać więcej funkcji i zmniejsza czas oczekiwania
na nowe dane w postaci ciągłej. Z drugiej strony rezerwacja większej ilości wątków obciąża planistę
systemowego (element systemu operacyjnego), nawet jeśli wątki są nieużywane, oraz zwiększa
98
obciążenie, gdy są używane. Ostatecznie zdecydowano się na rezerwację 8 wątków. Zmniejszenie tej
wartości powodowało subiektywny wzrost opóźnienia w reakcjach samochodu na wydawane
przez kierowcę polecenia. Zwiększenie tej wartości powodowało gwałtowny wzrost użycia procesora
(do ponad 50% przy 10 wątkach), nawet jeśli samochód stał w miejscu.
Opóźnienie uruchomienia wątków
W początkowych chwilach pracy IDSA (pierwsze kilkanaście sekund), kiedy samochód jeszcze stoi,
wszystkie wątki rozpoczynały pracę jednocześnie, co powodowało systematyczne skoki użycia
procesora. Po tym czasie wątki desynchronizowały się. Żeby uniknąć tego problemu, zdecydowano się
dodawać każdy wątek do puli po losowym czasie w zakresie 0[𝑚𝑠] − 100[𝑚𝑠]. Do losowania użyto
klasy java.util.Random.
Rozmiar magazynu dyskretnego dla każdej zmiennej
Brano pod uwagę kilka wersji procesu wyznaczania funkcji. Ciekawy wydawał się proces używający
najnowszej wartości z magazynu dyskretnego i kilku wartości pobranych z magazynu ciągłego.
Problemem jednak okazało się wyznaczanie chwil pobierania tych wartości – ich ilości i maksymalnego
wieku używanej zmiennej. Zamiast tego zdecydowano się wyznaczać funkcje ciągłe wyłącznie
na podstawie wartości zmierzonych, wyliczonych lub wprowadzonych w inny sposób do magazynu
w dyskretnych chwilach czasu. Dzięki temu można było wyraźnie ograniczyć liczbę przechowywanych
w magazynie dyskretnym wartości i używać wszystkich dostępnych. Tę liczbę ustalono na 10. Wartości
niższe potrafiły czasami generować funkcje o dużym błędzie, a wartości wyższe niczego już
nie poprawiały.
Opóźnienie ponownego umieszczenia zmiennej w kolejce
Oczekiwanie pomiędzy zakończeniem wyznaczania funkcji, a ponownym umieszczeniem funkcji
w kolejce okazało się potrzebne, ponieważ bez niego wyznaczanie funkcji zabierało za dużo zasobów
oraz uruchamiało się wielokrotnie dla tych samych danych wejściowych. Z drugiej strony zbyt duże
opóźnienie oznaczało zbyt długie czekanie na uwzględnienie nowych wartości z magazynu dyskretnego
w magazynie ciągłym. Eksperymentalnie wyznaczono wartość tego opóźnienia na 5[𝑚𝑠] . Po raz
kolejny kryterium była subiektywna ocena opóźnienia przez kierowcę (występująca przy zwiększaniu
wartości opóźnienia) oraz zużycie zasobów (występujące przy zmniejszaniu wartości opóźnienia)
99
4.3.2. Proces przetwarzania danych o otoczeniu
Schemat wejściowo-wyjściowy tego procesu przedstawiony jest na rysunku 24. Dla przypomnienia,
jego celem jest zbudowanie mapy otoczenia w oparciu o posiadane już informacje i nowe pomiary. Przy
rozpoczynaniu pracy zakładano, że będzie można do tego celu wykorzystać istniejący algorytm, ale
nie udało się takiego znaleźć. Z tego powodu opracowano autorską metodę rozwiązania tego problemu.
Zakłada ona użycie sieci neuronowych do lokalizowania obiektów, a nie do ich rozpoznawania, jak
w większości prac dotyczących takich sieci. Zbudowano prostą sieć neuronową z użyciem języka
Python [141] i narzędzia TensorFlow [142], korzystając z instrukcji w oficjalnej dokumentacji projektu
[143]. Taka sieć składa się domyślnie z 10 warstw i jest opisana przez 3989285 parametrów. Jako zbiór
uczący zastosowano wygenerowane uprzednio klatki obrazu z kamery pracującej w symulatorze,
na których znajdował się ten sam obiekt w różnych pozycjach względem obserwatora, na różnym tle,
oraz lokalizacje tego obiektu względem obserwatora. W sumie dla tego samego obiektu wygenerowano
3,6 ⋅ 109 klatek w postaci bitmap o rozdzielczości 640 x480 , o łącznym rozmiarze ok. 400[𝐺𝐵],
a także symulowanych surowych danych lidarowych o rozmiarze 56[𝐺𝐵] . Zadaniem sieci było
zwrócenie pozycji obiektu względem obserwatora na podstawie nowych danych pomiarowych. Tą samą
operację powtórzono dla czterech obiektów (Ford Focus, Mitsubishi L200, drzewo o konkretnym
kształcie oraz słupek – jak na rysunku 41) i trzech różnych sensorów – dwóch kamer o różnych
soczewkach i jednego lidaru. Bardzo istotne jest, że ten proces udało się wykonać bezproblemowo
głównie dlatego, że generowanie zbioru uczącego w warunkach symulacyjnych udało się opisać
skryptem w języku C# [144], którego pseudokod przedstawiono na listingu 4.
Rysunek 41 Obiekty używane do strojenia procesu przetwarzania danych o otoczeniu
100
Listing 4 Pseudokod uczenia sieci neuronowej
Jak widać, zbiór uczący jest mapą pomiarów i spodziewanych wyników – pozycji obiektu względem
obserwatora.
Osiągnięto w ten sposób metodę uczenia nadzorowanego przez maszynę. Proces ten zajął jednak dość
dużo czasu i konieczne jest jego powtarzanie dla każdego obiektu i rodzaju sensora. Poza tym, podczas
badań pominięto parametryzację obiektów.
Posiadając zbiór wytrenowanych sieci neuronowych, zdolnych do lokalizowania uprzednio
sklasyfikowanych obiektów, zdecydowano się używać geometrycznej mapy otoczenia do tworzenia jej
wycinków zgodnych z obszarem działania konkretnego sensora, a następnie wybierania znajdujących
się tam obiektów i uruchamiania sieci neuronowych zgodnych z ich klasami i zastosowanymi sensorami.
W ten sposób wybrane sieci neuronowe odkrywają nową pozycję znanych już obiektów i tym samym
aktualizują tylko ten wycinek modelu, który odpowiada obszarowi odczytanemu w danej chwili przez
konkretny sensor. Po wykonaniu tego zadania, stosuje się przekształcenie geometryczne do wykrycia
i „zasłonięcia” (zastąpienia pustymi pikselami) obiektu w danych wejściowych. Dzięki temu można
uruchomić sieć neuronową ponownie w celu znalezienia drugiego obiektu tej samej klasy. W warunkach
badawczych uruchamiano wszystkie dostępne sieci tak długo, aż nie znajdowały już nowych obiektów.
Warto zauważyć, że opisana metoda analizy otoczenia okazała się wyjątkowo wydajna. Sieci neuronowe
cechują się błyskawicznym czasem wykonania, kosztem długiego czasu uczenia (ok. 3,5 dnia dla
każdego obiektu i sensora).
Powyższą operację obrazuje pseudokod przedstawiony na listingu 5. Wymaga on następujących
wyjaśnień. Procedura „pobierz_mape” pobiera listę wszystkich znanych obiektów, znajdujących się
w geometrycznej mapie otoczenia – w czasie zadanym jako pierwszy parametr i w obszarze badanym
przez sensor - zadany jako drugi parametr. Procedura „pobierz_wszystkie_klasy_obiektów” zwraca
funkcja utworz_zbiór_uczący_dla_sensora(obserwator):
zbiór_uczący = utwórz_mapę();
dla_każdego(obiekt : {ford, mitsubishi, drzewo, słupek}):
dla_każdego(obrót_w_poziomie : [1;360;1]):
dla_każdego(obrót_w_pionie: [-1;1;0,2]):
dla_każdego(odległość: [1;50;0,1]):
dla_każdego(numer_losowej_pozycji: [1;1000;1]):
pozycja_obiektu: losuj(); //losuje pozycję w używanej scenie symulacji
ustaw_obiekt(obiekt, pozycja_obiektu); //stawia obiekt
pozycja_obserwatora = ustaw_obserwatora(obserwator, obiekt, obrót_w_pionie,
obrót_w_poziomie, odległość);
/*stawia obserwatora w pozycji względem obiektu, uwzględniając losową pozycję
w kadrze/pomiarze */
pomiar = wygeneruj_pomiar(obserwator);
pozycja_obiektu_względem_obserwatora = wyznacz(pozycja_obserwatora)
zbiór_uczący.dodaj(pomiar, pozycja_obiektu_względem_obserwatora);
return zbiór_uczący;
101
listę wszystkich znanych klas obiektów (podczas badań – tylko czterech z rysunku 41). Funkcja
„znajdz” wykonuje zapytanie do biblioteki TensorFlow, czyli odpytuje sieć neuronową właściwą
dla danego sensora i klasy. Funkcja „stworz_obiekt” wykorzystuje znany kształt obiektu danej klasy
i jego pozycję do stworzenia jego projekcji dla danego sensora. Następnie funkcja „usun_obiekt”
czyści ten fragment pomiaru, żeby uniknąć ponownego wykrycia tego samego obiektu.
Listing 5 Pseudokod przetwarzania danych o otoczeniu
4.3.3. Proces predykcji trajektorii
Wybór implementacji
Zadaniem tego procesu jest wyznaczenie pozycji pojazdu w przyszłości na podstawie mapy otoczenia
i zmiennych wejściowych. Definicja IDSA nie narzuca sposobu wykonania tego zadania, jednak
do badań wybrano algorytm trójetapowy, pokazany na rysunku 42.
Jak widać, kolejne etapy nie są ze sobą powiązane wejściowo-wyjściowo ani czasowo. Mówiąc inaczej,
etapy nie są wykonywane iteracyjnie i nie przesyłają swoich danych wyjściowych na wejście kolejnego
etapu. Każdy etap uruchamia się w określonych odstępach czasu i pracuje na danych dostępnych
w magazynie. Taką architekturę zastosowano w celu zachowania spójności z resztą IDSA, czyli w celu
zachowania komunikacji pomiędzy komponentami systemu poprzez dyskretno-ciągły magazyn danych,
zamiast bezpośredniego przesyłania danych.
procedura aktualizuj_mape_otoczenia(pomiar, identyfikator_czasowy,
identyfikator_sensora):
mapa_otoczenia = pobierz_mape(identyfikator_czasowy, identyfikator_sensora)
znane_klasy_obiektów = pobierz_wszystkie_klasy_obiektów()
dla_każdego (obiekt : mapa_otoczenia):
zlokalizuj_obiekt(pomiar, obiekt.klasa, znane_klasy_obiektów, identyfikator_sensora)
dla_każdego (klasa : znane_klasy_obiektów):
zlokalizuj_obiekt(pomiar, klasa, znane_klasy_obiektów, identyfikator_sensora)
procedura zlokalizuj_obiekt(pomiar, szukana_klasa, lista_klas_obiektów,
identyfikator_sensora):
znaleziono = fałsz
wykonaj:
pozycja = znajdz(pomiar, szukana_klasa, identyfikator_sensora)
znaleziono = pozycja != null
jeżeli (znaleziono):
obiekt = stworz_obiekt(pozycja, szukana_klasa, identyfikator_sensora)
usun_obiekt(obiekt, pomiar)
dopoki (znaleziono && !pomiar.pusta)
lista_klas_obiektów.usun(szukana_klasa)
102
Dyskretno-ciągły magazyn danych
Predykcja trajektorii
Wyznaczanie środka zakrętu
Wyznaczanie trajektorii
Poprawianie trajektorii
r(ti),a(tj)
(si,ti)
s(tj),a(tj)
(p k, tk)
p'(t),a(tk),m(tk)
(pk,tk)
Rysunek 42 Etapy procesu predykcji trajektorii
Pierwszy etap predykcji trajektorii jest dość prosty. Jego rolą jest zamiana sygnału 𝑟, czyli pozycji
kierownicy i pedałów na 𝑠 – pozycję punktu, wokół którego poprowadzony jest łuk, którym chce jechać
kierowca. W tym celu wykorzystuje się proste podstawienia do funkcji uzależniających współrzędne
tego punktu od aktualnej szybkości (średniej ze zmiennych VELOCITY_FRONT_LEFT, VELOCITY
_FRONT_RIGHT, VELOCITY _REAR_LEFT, VELOCITY _REAR_RIGHT zawartych w sygnale 𝑎
– patrz tabela 6) i skrętu koła kierownicy (zmienna STEER w sygnale 𝑟 – patrz tabela 6). Współrzędne
te oblicza się korzystając z równań
𝑥𝑠 =𝑡𝑔(𝛼)
𝑙
𝑦𝑠 = −𝑙𝑛
2
, (24)
gdzie:
• 𝑥𝑠 oraz 𝑦𝑠, to współrzędne punktu 𝑠,
• 𝑙𝑛 to długość pomiędzy osiami samochodu
• 𝛼 to położenie kół podczas skrętu w jedną stronę, wyrażone równaniem
𝛼 = min(
max(𝑣 − 3), 0
27, 1)⋅ 𝛽1,3 + (1 −min(
max(𝑣 − 3), 0
27, 1)) ⋅ (
sin(𝛽)
sin 1)
0,8
, (25)
103
gdzie:
• 𝛽 to współczynnik skrętu kierownicy względem skrętu maksymalnego w zakresie (0,1]
(zmienna STEER),
• 𝑣 to szybkość wyrażona w [𝑚
𝑠] (średnia ze zmiennych VELOCITY_FRONT_LEFT,
VELOCITY _FRONT_RIGHT, VELOCITY _REAR_LEFT, VELOCITY _REAR_RIGHT).
Zastosowane równania (24) zostały wyprowadzone z geometrii zawieszenia wyrażonej równaniem
Ackermana (2). Równanie (25) opracowano eksperymentalnie, rozpoczynając od próby wizualnego
dopasowania go do zależności pomiędzy położeniem kierownicy a średnim skrętem kół przednich dla
pojazdu referencyjnego, przedstawionym graficznie w postaci funkcji ciągłej przez symulator.
Drugi etap wykorzystuje sygnał 𝑠 oraz stan pojazdu 𝑎 w celu określenia pozycji 𝑝′ , w których
samochód znajdzie się w przyszłości, w chwili 𝑡𝑘 , jeśli będzie dalej poruszał się po zadanym łuku.
Stosuje do tego tę samą metodę, która wykorzystywana jest w procesie wyznaczania zmiennych
sterujących i zostanie opisana w punkcie 4.3.4.
Trzeci etap, to „poprawienie” punktu w przestrzeni dwuwymiarowej 𝑝′(𝑡𝑘) na podstawie znajomości
otoczenia 𝑚(𝑡𝑘) oraz z uwzględnieniem ograniczeń wynikających z 𝑎(𝑡𝑘), do postaci punktu 𝑝(𝑡𝑘). Na
tym etapie uwzględnia się omijanie przeszkód (a docelowo – ruch pionowy). W tym celu stosuje się
prosty algorytm ewolucyjny, który w kolejnych pokoleniach wygładza trajektorię 𝑝′(𝑡) względem
otoczenia. Podobnie jak wszystkie funkcje ciągłe używane podczas badań, trajektoria 𝑝′(𝑡) wyrażona
jest przez funkcje wielomianowe o postaci
𝑝′(𝑡) =∑𝛾𝑖𝑡
𝑛,
𝑛
𝑖=0
(26)
gdzie 𝑛 jest stopniem wielomianu, a 𝛾𝑖 to jego współczynniki, tworzące wektor Γ =
[ 𝛾1𝛾2⋮𝛾𝑖⋮𝛾𝑛]
.
Wprowadza się autorską funkcję oceny jakości trajektorii �̅�, zależną od wektora współczynników Γ oraz
od mapy otoczenia m(t), która jest na tym etapie stałym parametrem, a mianowicie
�̅�(𝑝′(𝑡),𝑚(𝑡)) ≜ 𝑔(𝛤). (27)
Postać funkcji g zależy od trzech kryteriów cząstkowych: prawdopodobieństwa braku wypadku
𝑞𝑏 (𝑞𝑏 ∈ [0,1]) , uproszczonej miary wygody jazdy 𝑞𝑘 (𝑞𝑘 ∈ [0,1]) i wykonalności, czyli
prawdopodobieństwa wykonania zadanej trasy w znanych warunkach otoczenia 𝑤 (𝑤 ∈ {0,1}) .
Ostatnie kryterium cząstkowe zostało wprowadzone, ponieważ dwa pierwsze byłyby w oczywisty
104
sposób bezużyteczne, gdyby docelową trajektorią było np. zatrzymanie pojazdu z prędkości 100 [𝑘𝑚
ℎ]
na odległości 1[𝑚].
Trajektorię ocenia się w trzech krokach. Do każdego z nich używa się trajektorii pobranej z ciągłej
części dyskretno-ciągłego magazynu danych i opisanej równaniami zgodnymi z (26).
a) Pierwszy krok, to sprawdzenie, czy możliwe jest wyznaczenie sterowania, które badaną
trajektorię realizuje. Wykorzystuje się w tym celu trajektorię 𝑝′(𝑡) oraz proces wyznaczania
zmiennych sterujących opisany w 4.3.4. Jeśli trajektoria jest możliwa do wykonania, to podlega
dalszej ocenie.
b) Drugi krok to określenie prawdopodobieństwa braku wypadku. Mimo, że do oceny IDSA
stosuje się kilka kryteriów dotyczących bezpieczeństwa, na tym etapie istotna jest wyłącznie
bezwypadkowość. W celu jej zbadania sprawdza się, czy podczas poruszania się zadaną
trajektorią, występuje przecięcie trajektorii z bryłą znanego obiektu otoczenia, czyli czy funkcja
𝑝′(𝑡) przecina dowolny odcinek należący do dowolnego obiektu w otoczeniu pojazdu.
Początkowo planowano ocenę binarną, jednak okazało się, że lepsze rezultaty osiąga się
zwiększając ocenę proporcjonalnie wraz ze wzrostem odległości od obiektów otoczenia
w zakresie < 0; 0,2[𝑚] > . Podczas badań odkryto, że dalsze zwiększanie odległości
nie poprawia już globalnej oceny całego IDSA.
c) Ostatni wskaźnik optymalizacyjny 𝑞𝑘, to minimalizacja przyspieszeń działających na pojazd,
która odpowiada zwiększającemu się komfortowi. Te przyspieszenia, to pochodne trajektorii
𝑝′(𝑡) po czasie.
Korzystając z powyższego opisu można powiedzieć, że kryteria cząstkowe 𝑤 , 𝑞𝑏 , 𝑞𝑘 na potrzeby
zadania oceny trajektorii oblicza się korzystając z wyrażeń:
𝑤 = {
1, jeżeli istnieje trajektoria realizująca trasę0, 𝑤 𝑝. 𝑝.
, (28)
𝑞𝑏 = max(5𝑜𝑝, 0,2), (29)
gdzie 𝑜𝑝 to odległość do najbliższej przeszkody wyrażona w metrach oraz
𝑞𝑘 = max (1,
𝑚𝑎𝑥(𝑎𝑥,𝑎𝑦)
20), (30)
gdzie 𝑎𝑥 , 𝑎𝑦 to przyspieszenia działające na pojazd w trzech wymiarach.
105
Warto zauważyć, że zmienne 𝑎𝑥 , 𝑎𝑦, 𝑤, 𝑞𝑏 oraz 𝑞𝑘 są prostsze, niż wskaźniki oceny wprowadzone w
punkcie 4.1.2, a mimo tego ich optymalizacja poprawia ocenę całego algorytmu obliczoną przy użyciu
wskaźników 𝑞1, 𝑞2, 𝑞3, 𝑞4, 𝑞5, 𝑞6, 𝑞7 oraz 𝑄𝐵 i 𝑄𝐾.
Ostatecznie, funkcja oceny trajektorii 𝑔 przyjmuje postać
𝑔(𝛤) = 𝑔(𝑤, 𝑞𝑏 , 𝑞𝑘) = {
𝑤 ⋅ (𝑞𝑏 +𝑞𝑘2) , jeżeli 𝑞𝑏 > 0,5
0 w p. p.. (31)
Algorytm ewolucyjny używa funkcji 𝑝′(𝑡) w zakresie < 𝑡0, 𝑡0 + 𝜖2 >, gdzie 𝑡0 to chwila rozpoczęcia
wywołania tego etapu procesu. Ocenia tę funkcję i generuje kolejne jej pokolenia na podstawie selekcji,
mutacji i krzyżowania. Po skończonej pracy umieszcza w dyskretno-ciągłym modelu danych wyliczoną
wartość 𝑝(𝑡𝑘) . Jak widać, jest to przykład wykorzystania dyskretno-ciągłego modelu danych
do pobrania funkcji ciągłej zamiast wartości w chwili dyskretnej. Brano pod uwagę wyznaczanie nowej
trajektorii na podstawie pozycji (𝑝𝑘′ , 𝑡𝑘) na losowych, dyskretnych punktach w zakresie < 𝑡0, 𝑡0 +
𝜖2 > , jednak nie przyniosło to żadnej poprawy działania algorytmu, która mogłaby uzasadnić
dodatkowe obliczenia.
Działanie algorytmu ewolucyjnego pokazuje listing 6.
Listing 6 Pseudokod algorytmu poprawiania trajektorii
Wartości parametrów procesu predykcji trajektorii
W powyższym opisie widać następujące zmienne.
Czas uruchamiania kolejnych etapów procesu
Ta wartość może się różnić dla każdego procesu, jednak eksperymentalnie ustalono opóźnienie 0,1[𝑠]
po każdym wykonaniu każdego procesu. Nie należy tego mylić z częstotliwością pomiędzy początkami
funkcja popraw_trajektorię(funkcja_opisująca_trajektorię, próg_czasowy):
ocena_funkcji = oblicz_g_od_w,b,k(funkcja_opisująca_trajektorię);
najlepsza_funkcja = funkcja_opisująca_trajektorię;
tablica_funkcji = mutuj(funkcja_opisująca_trajektorię); //mutuje 100 razy
czas_startu = aktualny_czas;
dopóki(aktualny_czas – czas_startu > próg_czasowy):
selekcja(tablica_funkcji);
krzyżowanie(tablica_funkcji);
mutacja(tablica_funkcji);
mapa_ocen = dla każdego(funkcja : tablica_funkcji): utwórz_krotkę(funkcja,
oblicz_g_od_w,b,k(funkcja));
najlepsza_funkcja=wybierz_najlepszą(mapa_ocen);
return najlepsza_funkcja
106
wykonania następujących po sobie iteracji danego etapu. Ten parametr jest zmienny ze względu
na różny czas wykonywania obliczeń. Zastosowanie opóźnienia zamiast częstotliwości pozytywnie
wpłynęło na zmienność obciążenia procesora komputera realizującego IDSA.
Użyte wyprzedzenie (znacznik czasowy 𝒕𝒌) dla danych wyjściowych
W przypadku tego parametru rozważano jego uzależnienie od aktualnej prędkości, jednak ostatecznie
ustalono go jako stałą wartość 0,2[𝑠] w sposób eksperymentalny. Taka wartość jest wystarczająca
nawet dla dużych prędkości (ok. 150 [𝑘𝑚
ℎ]), a jednocześnie nie zużywa zbyt dużo mocy obliczeniowej.
Zakres poprawiania trajektorii 𝝐
W tym przypadku chodzi o zakres, w jakim badana jest funkcja przedstawiająca trajektorię. Żeby
zadanie to miało jakikolwiek sens, badanie powinno zawierać chwilę 𝑡𝑘, czyli 𝜖2 ≥ 𝑡𝑘 − 𝑡0. Wskazane
byłoby, gdyby 𝑡𝑘 nie występowało na granicy badanego obszaru, czyli 𝜖2 > 𝑡𝑘 − 𝑡0. Skoro założono,
że 𝑡𝑘 − 𝑡0 = 0,2[𝑠] , postanowiono zastosować 𝜖2 = 10[𝑠] . Wartość ta została ustalona z góry
i sprawowała się dostatecznie dobrze, że uznano ją za ostateczną. Stosowanie mniejszych wartości zbyt
często prowadziło do kolizji, ponieważ w chwili, gdy trajektoria zaczynała być kolizyjna, nie było już
czasu na korektę toru jazdy.
Parametry algorytmu ewolucyjnego (warunki selekcji, krzyżowania, mutacji, czas pracy)
W powyższym akapicie przedstawiono kryteria oceny trajektorii. Sam algorytm ewolucyjny używa
następujących operatorów [145]:
a) operator selekcji wybiera do krzyżowania osobniki deterministycznie – parzyste i nieparzyste;
b) operator krzyżowania wykorzystuje metodę krzyżowania równomiernego typu para rodziców –
5 par potomków, z parametrem krzyżowania równym 0,5;
c) operator mutacji wykorzystuje metodę mutacji równomiernej z prawdopodobieństwem 0,05
oraz zakresem mutacji w zakresie od zera do dwukrotności wartości mutowanej.
Funkcja 𝑝′(𝑡) jest funkcją wielomianową, używającą współczynników 𝛾𝑖. Algorytm ewolucyjny używa
szybkiego kodowania, jako jedna tablica binarna zawierająca wszystkie współczynniki 𝛾𝑖 w zapisie
float64 [146].
Przy takim doborze operatorów i ich parametrów uniknięto dużych modyfikacji genów, co pozytywnie
wpływa na gładkość przetwarzanych funkcji. Selekcja polega na wyborze 20% najlepszych trajektorii
w każdym pokoleniu. Algorytm wykonywany jest przez maksymalnie 0,1[s]. Dzięki wielowątkowości
udaje się w tym czasie wygenerować i przetworzyć około 12-13 pokoleń funkcji, z których wybiera się
najlepszą. Warto zauważyć, że w pierwszym pokoleniu istnieje tylko jedna funkcja 𝑝′(𝑡). W związku z
tym nazywa się je pokoleniem zerowym i tworzy pierwsze pokolenie używając wyłącznie operatora
mutacji.
4.3.4. Proces wyznaczania zmiennych sterujących
Ogromną zaletą IDSA jest to, że w porównaniu do współczesnych systemów wyznaczających
sterowanie, sam proces wyznaczania sterowania jest względnie prosty. Jest to zasługą wszystkich
pozostałych procesów i skomplikowanej architektury. Proces wyznaczania zmiennych sterujących,
zgodnie z rysunkiem 19, wyznacza wektor 𝑢 , czyli wszystkie parametry wyjściowe przedstawione
107
w tabeli 6. Nie jest jednak powiedziane, że wszystkie elementy wektora powstają w tych samych
chwilach. Brak takiego wymagania pozwolił uniezależnić procesy wyznaczające poszczególne elementy
wektora. W związku z tym proces wyznaczania zmiennych sterujących realizowany jest przez trzy
funkcje opisane poniżej – wyznaczającą prędkość kół, skręt kół i parametry zawieszenia.
Prędkość kół
Na prędkość kół składają się następujące zmienne (zdefiniowane w tabeli 6):
a) POWER,
b) CLUTCH,
c) GEARBOX,
d) DIFFERENTIAL_FRONT_LEFT,
e) DIFFERENTIAL_FRONT_RIGHT,
f) DIFFERENTIAL _REAR_LEFT,
g) DIFFERENTIAL _REAR_RIGHT,
h) BRAKE_FRONT_LEFT,
i) BRAKE_FRONT_RIGHT,
j) BRAKE_REAR_LEFT,
k) BRAKE_REAR_RIGHT.
Na potrzeby tego punktu nazywa się je pośrednimi zmiennymi sterującymi układem jezdnym.
Warto tutaj wrócić do rysunków 2 oraz 5. Przedstawiają one różne realizacje napędu na 4 koła z jednym
silnikiem. Można zauważyć, że pośrednie zmienne sterujące układem jezdnym nie są odpowiednie
do bezpośredniego sterowania żadnym z opisanych układów napędowych, ale można je wykorzystać
do sterowania każdym z nich, po dodatkowym przekształceniu. W symulowanym pojeździe
zastosowano układ napędowy z trzema mechanizmami różnicowymi (rysunek 2), co wymusiło
wyliczenie ich sygnałów sterujących z wykorzystaniem wyrażeń
𝑑𝑐 =
dfl + 𝑑𝑓𝑟
drl + 𝑑𝑟𝑟
𝑑𝑓 =
dfl + 𝑑𝑓𝑟𝑑𝑐
⋅ dfl
dfl + 𝑑𝑓𝑟𝑑𝑐
⋅ dfr
𝑑𝑟 =
drl + 𝑑𝑟𝑟𝑑𝑐
⋅ drl
drl + 𝑑𝑟𝑟𝑑𝑐
⋅ drr
, (32)
gdzie:
• 𝑑𝑐 to stosunek przeniesienia momentu obrotowego poprzez centralny dyferencjał pomiędzy
przednią a tylną osią,
108
• 𝑑𝑓 to stosunek przeniesienia momentu obrotowego poprzez przedni dyferencjał pomiędzy
lewym a prawym kołem,
• 𝑑𝑟 to stosunek przeniesienia momentu obrotowego poprzez tylny dyferencjał pomiędzy lewym
a prawym kołem,
• dfl to DIFFERENTIAL_FRONT_LEFT,
• dfr to DIFFERENTIAL_FRONT_RIGHT,
• drl to DIFFERENTIAL_REAR_LEFT,
• drl to DIFFERENTIAL_REAR_RIGHT.
Mówiąc inaczej, najpierw wyznaczane są pośrednie zmienne sterujące układem jezdnym, a następnie
przekształcane przy pomocy wyrażeń (32) do postaci prawdziwych sygnałów sterujących. W ten sposób
można łatwo zmienić fizyczny sposób przeniesienia napędu (np. na taki, jak na rysunku 5), zmieniając
tylko przekształcenia (32) zamiast sposobu wyznaczania pośrednich zmiennych sterujących układem
jezdnym. Sposób wyznaczania pośrednich zmiennych sterujących układem jezdnym jest następujący.
Posiadając trajektorię 𝑟(𝑡) można wyznaczyć łuk, najbliższy tej trajektorii w zakresie [𝑡0, 𝑡0 + 𝜖3],
gdzie 𝜖3 należy wyznaczyć oddzielnie. Na potrzeby tej pracy ustalono go na wartość 0,1[𝑠]. Następnie
można obliczyć zadaną prędkość liniową poruszania się po łuku na podstawie długości łuku pomiędzy
punktami oddalonymi o 𝜖3 . Następny krok, to ustalenie czy prędkość jest równa lub większa od
aktualnej. W takiej sytuacji należy określić moc silnika i położenie skrzyni biegów, które pozwolą
osiągnąć taką prędkość. Jeśli jednak prędkość ma zostać zredukowana, należy przy pomocy dostępnego
momentu obrotowego silnika obliczyć, czy żądane obniżenie prędkości jest możliwe z wykorzystaniem
samego tylko silnika, czy potrzebne będą również hamulce. Kolejny krok, to obliczenie prędkości
każdego koła osobno i odpowiednia konfiguracja mechanizmów różnicowych.
Cały ten proces pokazuje pseudokod na listingu 7. Jak na nim widać, do obliczeń używana jest aktualna
prędkość samochodu i docelowa prędkość każdego koła z osobna. Okazało się, że taki błąd (użycie
średniej prędkości aktualnej wszystkich kół zamiast każdego koła z osobna) nie pogarsza wyników,
a ułatwia obliczenia. Warto przypomnieć, że wszystkie obliczenia wykonywane są dla chwili 𝑡0 +
0,1[𝑠], gdzie 𝑡0 to chwila wykonywania obliczeń, oraz że ostatnim krokiem przedstawionych procedur
jest zapisanie obliczonych wartości w dyskretno-ciągłym magazynie danych, a nie wysłanie ich
do urządzeń wykonawczych. Tym ostatnim zadaniem zajmuje się proces opisany w punkcie 2.10.
109
Listing 7 Pseudokod procesu wyznaczania zmiennych sterujących
Wszystkie powyższe wartości wyznaczono na podstawie funkcji wyznaczonych eksperymentalnie:
a) funkcja uzależniająca przyrost prędkości od położenia przypustnicy i ustawienia skrzyni
biegów,
b) funkcja uzależniająca spadek prędkości od położenia przypustnicy i ustawienia skrzyni biegów,
c) funkcja określająca spadek prędkości od zacisku hamulców, aktualnej prędkości i siły
hamującej silnika.
Funkcje a – c zostały zaimplementowane w kodzie realizującym IDSA, podobnie jak wyrażenie (25)
jednak ich postacie matematyczne są trudne do wyodrębnienia z tego kodu, a jednocześnie byłyby
bardzo nieczytelne. Można je znaleźć w klasie Speed w repozytorium [136].
procedura wyznacz_zmienne_sterujące_układem_napędowym():
trajektoria = pobierz_trajektorię(); //pobiera z dyskretno-ciągłego magazynu danych
prędkość_zadana = policz_prędkość(trajektoria, epsilon_3);
prędkość_aktualna = pobierz_prędkość_aktualną();
[POWER, CLUTCH, GEARBOX] = oblicz_napęd(prędkość_zadana, prędkość_aktualna);
/*używa stanu urządzeń wykonawczych a (rysunek 19) */
promień_łuku = policz_promień_łuku(trajektoria);
prędkości_kół = policz_prędkości_koł_w_zakręcie(prędkość_zadana, promień_łuku);
konieczne_użycie_hamulców = !czy_regulacja_prędkości_bez_hamulców(prędkości_kół,
prędkość_aktualna);
/*używa stanu urządzeń wykonawczych a (rysunek 19) */
if (konieczne_użycie_hamulców):
[BRAKE_FRONT_LEFT, BRAKE_FRONT_RIGHT, BRAKE_REAR_LEFT, BRAKE_REAR_RIGHT] =
oblicz_hamulce(prędkości_kół, prędkość_aktualna);
/*używa stanu urządzeń wykonawczych a (rysunek 19) */
[DIFFERENTIAL_FRONT_LEFT, DIFFERENTIAL_FRONT_RIGHT, DIFFERENTIAL_REAR_LEFT,
DIFFERENTIAL_REAR_RIGHT] = oblicz_proporcje(prędkości_kół);
zapisz(POWER, CLUTCH, GEARBOX, BRAKE_FRONT_LEFT, BRAKE_FRONT_RIGHT, BRAKE_REAR_LEFT,
BRAKE_REAR_RIGHT, DIFFERENTIAL_FRONT_LEFT, DIFFERENTIAL_FRONT_RIGHT, DIFFERENTIAL_REAR_LEFT,
DIFFERENTIAL_REAR_RIGHT); /*zapisuje w dyskretno-ciągłym magazynie danych*/
procedura przekształć_wartości_sterujące_dyferencjałami():
[DIFFERENTIAL_FRONT_LEFT, DIFFERENTIAL_FRONT_RIGHT, DIFFERENTIAL_REAR_LEFT,
DIFFERENTIAL_REAR_RIGHT] = pobierz_pośrednie(); /* pobiera z dyskretno-ciągłego magazynu
danych */
[d_c, d_f, d_r] = przekształć([DIFFERENTIAL_FRONT_LEFT, DIFFERENTIAL_FRONT_RIGHT,
DIFFERENTIAL_REAR_LEFT, DIFFERENTIAL_REAR_RIGHT]); //używa przekształcenia (32)
zapisz([d_c, d_f, d_r]); // zapisuje w dyskretno-ciągłym magazynie danych
110
Oprócz tego użyto stałej wartości prędkości minimalnej, poniżej której następuje odłączenie napędu
(silnika od kół) z użyciem sprzęgła, ustalonej na 10 [𝑘𝑚
ℎ].
Skręt kół
Na skręt kół składają się następujące zmienne:
a) STEER_FRONT_LEFT,
b) STEER_FRONT_RIGHT,
c) STEER_REAR_LEFT,
d) STEER_REAR_RIGHT.
Posłużono się założeniem mówiącym, że tarcie statyczne jest większe od tarcia dynamicznego,
w związku z czym postanowiono minimalizować uślizg kół. W takim wypadku obliczenie kąta skrętu
dla każdego koła oznaczało wykonanie tych samych obliczeń, co w przypadku procesu predykcji
trajektorii, uzależnionych od geometrii pojazdu, promienia łuku i prędkości (prędkość jest użyta
do uzależnienia skrętu kół tylnych i przednich). W tym celu posłużono się po raz kolejny układem
równań (24) oraz obliczeniem długości łuku dla każdego koła osobno.
Zawieszenie
Na parametry zawieszenia składają się następujące zmienne:
• SUSPENSION_FRONT_LEFT_MOUNTING_POINT_HEIGHT,
• SUSPENSION_FRONT_RIGHT_MOUNTING_POINT_HEIGHT,
• SUSPENSION_REAR_LEFT_MOUNTING_POINT_HEIGHT,
• SUSPENSION_REAR_RIGHT_MOUNTING_POINT_HEIGHT
• SUSPENSION_FRONT_LEFT_SPRING_RATE,
• SUSPENSION_FRONT_RIGHT_SPRING_RATE,
• SUSPENSION_REAR_LEFT_SPRING_RATE,
• SUSPENSION_REAR_RIGHT_SPRING_RATE,
• SUSPENSION_FRONT_LEFT_DAMPING_RATE,
• SUSPENSION_FRONT_RIGHT_DAMPING_RATE,
• SUSPENSION_REAR_LEFT_DAMPING_RATE,
• SUSPENSION_REAR_RIGHT_DAMPING_RATE,
• ANTI_ROLL_BAR_FRONT,
• ANTI_ROLL_BAR_REAR.
Wszystkie te parametry ustawiane są przez podstawienie znanych w IDSA wartości do funkcji
wyznaczonych eksperymentalnie i ocenianych subiektywnie. Stabilizatory utwardzane są zależnie
od promienia zakrętu i prędkości. W ten sam sposób opuszcza się i podnosi zawieszenie. Okazało się,
że takie proaktywne działanie daje dużo lepsze rezultaty, niż reakcja na zmierzone pochylenie pojazdu.
Współczynniki sztywności sprężyn i tłumienia amortyzatorów dostosowuje się na podstawie zmiany
prędkości (w celu zapobiegania przechyłom przód-tył) oraz wartości przyspieszeń działających
na pojazd (w celu podniesienia komfortu jazdy). Postaci matematyczne tych funkcji nie zostały opisane.
Można je znaleźć w repozytorium [136] w klasie Suspension.
111
4.3.5. Proces wysyłania zmiennych sterujących
Proces wysyłania zmiennych sterujących składa się z listy kolejek zadań i klienta UDP. Każda kolejka
odpowiada jednej zmiennej należącej do wektora 𝑢. Jak widać na rysunku 21, zadania z każdej kolejki
mogą być wysyłane z różną częstotliwością. Wynika to z różnej bezwładności urządzeń wykonawczych,
a więc z innego czasu potrzebnego na realizację każdego nowego sterowania. Na potrzeby tych badań
założono jednak, że bezwładność każdego urządzenia wykonawczego jest stała i wynosi 0,1[𝑠]. Tak
samo skonfigurowano opóźnienie każdej kolejki. Opóźnienie to wynika z takiej samej wartości
skonfigurowanej w symulatorze, dla zmian do 10[%] całego zakresu zmienności danej zmiennej.
Proces wysyłania zmiennych sterujących można porównać do procesu przetwarzania danych prostych.
W procesie wejściowym przyjmuje się dane i zapisuje w dyskretno-ciągłym modelu ze znacznikiem
czasowym ich przyjęcia, a w procesie wyjściowym pobiera się dane w przyszłej chwili czasu, zakładając
że jest to chwila ich wykonania. Wyprzedzenie również skonfigurowano na stałą wartość dla wszystkich
elementów wektora 𝑢 wynoszącą 0,1[𝑠]. Oaznacza to, że całe sterowanie realizowane jest na podstawie
danych dwukrotnie ekstrapolowanych – raz w chwili obliczania sterowania w zakresie [𝑡0, 𝑡0 + 𝜖] i po
raz kolejny – podczas wysyłania danych do realizatorów.
4.4. Porównanie zachowania pojazdu sterowanego przy pomocy IDSA
i pojazdu referencyjnego
Ocena badań przedstawionych w tej pracy jest względna, ponieważ zastosowano model symulacji
driver-in-the-loop. Oznacza to, że o ile warunki symulacji można w pełni odtworzyć, tak zachowanie
kierowcy nigdy nie jest identyczne w kolejnych próbach, co oczywiście wpływa na ich wyniki. Z tego
powodu podjęto próbę użycia „sztucznego kierowcy”, czyli zapisania sygnałów sterujących
z kierownicy podczas przejazdu jednym samochodem i użycia ich zamiast prawdziwego kierowcy
dla takiej samej próby z drugim samochodem. Niestety już najprostsze próby tego skończyły się
niepowodzeniem, ponieważ każde takie porównanie wygrywał pierwszy pojazd (sterowany przez IDSA
lub referencyjny w zależności od użytej kolejności). Na tym etapie nie ustalono jeszcze co prawda
formalnych warunków takiej wygranej, więc posługiwano się intuicyjnymi wskaźnikami. Przykładowo,
podczas próby ominięcia przeszkody i powrotu na swój pas ruchu, samochód sterowany przez zapisane
uprzednio sygnały wejściowe nigdy nie kończył manewru jadąc prosto i w rezultacie zjeżdżał
ze swojego pasa ruchu po kilku – kilkunastu metrach.
Z tych prób wyniknął wniosek, mówiący, że w przypadku badania systemu decyzyjnego działającego
w czasie rzeczywistym i zachowującego się jak system wspomagania decyzji, nie jest możliwe
pominięcie w eksperymentach zachowania kierowcy. Z tego powodu niemożliwe stało się porównanie
zachowania pojazdów na podstawie pojedynczych prób.
Eksperymenty przeprowadzono w następującej kolejności:
a) Porównanie samochodu referencyjnego i samochodu sterowanego z wykorzystaniem IDSA
w idealnych warunkach:
• porównanie zachowania pojazdów w docelowej konfiguracji, czyli po kalibracji części
wspólnej obu pojazdów, a także IDSA i systemów wspomagających ABS, ESC, TSC,
ASR (punkt 4.4.1).
112
b) Badania samochodu referencyjnego – badanie wrażliwości pojazdu referencyjnego:
• wyłączone systemy wsparcia kierowcy (punkt 4.4.2);
• zawieszenie komfortowe z włączonymi systemami wsparcia (punkt 4.4.3);
• zawieszenie komfortowe z wyłączonymi systemami wsparcia (punkt 4.4.4);
• zawieszenie sportowe z włączonymi systemami wsparcia (punkt 4.4.5);
• zawieszenie sportowe z wyłączonymi systemami wsparcia (punkt 4.4.6).
c) Porównanie samochodu referencyjnego i samochodu sterowanego z wykorzystaniem IDSA:
• zwiększenie masy (punkt 4.4.7);
• zwiększenie masy i przesunięcie środka ciężkości (punkt 4.4.8);
• zmniejszona przyczepność kół (punkt 4.4.9).
d) Badania IDSA – badanie wrażliwości algorytmu:
• zmiana bezwładności urządzeń wykonawczych (punkt 4.4.10);
• zmiana stopnia wielomianu aproksymującego w procesie wyznaczania funkcji ciągłych
(punkt 4.4.11);
• zmiana liczby wątków aproksymujących (punkt 4.4.12);
• zmiana liczby generacji algorytmu ewolucyjnego w procesie wyznaczania trajektorii
(punkt 4.4.13).
W punktach 4.4.1 – 4.4.13 przedstawiono wyłącznie wskaźniki cząstkowe, a wskaźniki zagregowane
𝑄𝐵 oraz 𝑄𝐾 wprowadzono w punkcie 4.5.3. Jak widać, badania rozpoczęto od pojazdów
skalibrowanych, dzięki czemu podczas kolejnych eksperymentów można było łatwo odnosić się
do spodziewanych najlepszych wyników. Następnie przebadano wrażliwość pojazdu referencyjny
spodziewając się, że otrzymane wyniki potwierdzą odwrotną zależność pomiędzy bezpieczeństwem
a komfortem. Następnie dokończono badania pojazdu referencyjnego z uwzględnieniem zmiany
warunków, które mogą zmienić się w codziennym użytkowaniu samochodu (masa, zużycie opon).
Na tym etapie dokonano kolejnego bezpośredniego porównania pojazdu referencyjnego z pojazdem
sterowanym z wykorzystaniem IDSA. Ostatni etap (punkt d), to badanie wrażliwości samego algorytmu
IDSA, już bez porównania z pojazdem referencyjnym.
4.4.1. Pojazdy skalibrowane
W tabelach 14 – 17 przedstawiono odpowiednio wyniki eksperymentów 1-4, czyli testu łosia, przejazdu
przez ciasny zakręt, przejazdu przez długi zakręt i przejazdu przez slalom. Scenariusz tych
eksperymentów wraz z doborem badanych wskaźników cząstkowych oceny przedstawiono w punkcie
4.2.2.
113
Rysunek 43 Niezaliczony test łosia
Rysunek 44 Zaliczony test łosia
Na podstawie eksperymentu 1 można zauważyć, że samochód sterowany przez IDSA zaliczył wszystkie
próby, także z bardzo wysokimi prędkościami. Zachował przy tym mniejszy przechył 𝑞1 niż samochód
referencyjny, jego prędkość 𝑞2 nie ulegała tak dużym zmianom, a kierowca nie musiał kręcić
kierownicą tak gwałtownie (wskaźnik 𝑞3 ). Brak kolizji 𝑞7 (opuszczenia toru jazdy) wynika
bezpośrednio z założeń IDSA. Samochód referencyjny wykorzystywał swoje systemy bezpieczeństwa
do zachowania toru jazdy wskazanego przez kierowcę, podczas gdy samochód sterowany
z wykorzystaniem IDSA korygował ten tor w sposób umożliwiający zmieszczenie się w zadanym torze
jazdy. Mimo że kierowca za każdym razem próbował przejechać trasę testową idealnym torem, to
jednak nie zawsze potrafił to zrobić. Właśnie wtedy IDSA interweniował w sposób nieznany aktualnym
systemom bezpieczeństwa. Poza tym w kilku próbach kierowca stracił panowanie nad samochodem
referencyjnym. Przy próbie powrotu na pierwotny pas ruchu, samochód stał się nadsterowny, wyrzucił
tył w stronę zewnętrzną i nie dało się już tego skompensować. To zachowanie pokazuje rysunek 43 (w
tym wypadku, niezgodnie ze standardem, przeszkodę omijano skrętem w prawo, a nie w lewo – wynika
to z optymalizacji eksperymentów – zawrócenie na końcu toru było szybsze, niż resetowanie
środowiska). Dla porównania rysunek 43 zestawiono z rysunkiem 44, pokazującym prawidłowy
przebieg tego testu. Cyfry nad samochodem na obydwu rysunkach przedstawiają kolejne jednostki
czasu, w których samochód znajdował się w danej pozycji.
Tabela 14 Eksperyment 1 – test łosia - samochody skalibrowane
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
80 1,6 -4 170 0,1 2 91
80 1,8 -7 172 0,1 -1 84
80 1,7 -8 168 0,1 0 83
80 1,6 -5 192 0,2 1 86
100 1,6 -6 99 0,1 2 100
100 1,6 -6 97 0,2 11 87
114
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
100 1,7 -10 78 0,1 -2 81
100 1,7 -6 89 0,1 0 82
120 1,8 -9 145 0,2 1 92
120 1,5 -9 150 0,2 4 91
120 1,7 -2 154 0,2 4 97
120 2 -4 140 0,2 -1 95
140 niezaliczony 0,1 2 110
140 1,6 -40 180 0,4 2 101
140 2,1 -36 165 0,2 4 105
140 1,9 -38 79 0,3 1 87
160 1,9 -48 145 0,2 -2 89
160 1,8 -60 138 0,3 1 90
160 2,2 -40 139 0,3 2 98
160 niezaliczony 0,3 2 115
180 niezaliczony 0,4 2 97
180 2,1 -68 165 0,3 2 95
180 niezaliczony 0,3 1 96
180 niezaliczony 0,2 1 97
200 2 -20 66 0,2 2 94
200 niezaliczony 0,2 1 119
200 1,9 -30 81 0,4 -6 126
200 niezaliczony 0,3 -1 83
Drugim elementem wartym dalszej analizy jest mniejszy przechył 𝑞1 . Wynika on z proaktywnego
zachowania pojazdu. Podczas dokładniejszej analizy odkryto, że aktywny stabilizator samochodu
referencyjnego prawidłowo kompensował przechył, jednak robił to zbyt późno – kiedy przechył już
nastąpił. Wynikającą z tego różnicę widać wyraźnie na wykresie na rysunku 45.
115
Rysunek 45 Przechył samochodów 𝒒𝟏 w eksperymencie 1
Po wyłączeniu aktywnego stabilizatora w samochodzie referencyjnym przechył zwiększył się około
trzykrotnie. Samochód sterowany przez IDSA zaczynał kompensować przechył już w chwili skrętu kół.
Obie wartości (skręt koła i utwardzenie stabilizatora) znajdowały się w wektorze zmiennych sterujących
mniej więcej w tej samej chwili. Kolejny badany element, to zmiana prędkości 𝑞2. Klasyczne systemy
bezpieczeństwa właściwie bazują na obniżaniu prędkości. Za każdym razem, gdy któryś system
wsparcia uruchamiał się, prędkość spadało. Wynika to z wykorzystania dohamowania poszczególnych
kół do osiągnięcia stabilności. Tymczasem IDSA nie obniżał prędkości, jeśli nie dostał takiego
polecenia. Zachowanie to widać na wykresie umieszczonym na rysunku 46.
0
0,5
1
1,5
2
2,5
80 80 80 80 100100100100120120120120140140140140160160160160180180180180200200200200
prz
ech
ył s
amo
cho
du
[ᵒ]
prędkość [km/h]
Samochód referencyjny Samochód sterowany z wykorzystaniem IDSA
116
Rysunek 46 Zmiana prędkości samochodów 𝒒𝟐 w eksperymencie 1
Jak widać na przykładzie drugiej próby samochodu sterowanego przez IDSA przy prędkości
początkowej 100 [𝑘𝑚
ℎ] (zaznaczonej na czerwono na rysunku 46), kiedy kierowca docisnął pedał gazu
podczas manewru, prędkość wzrosła. IDSA nie musiał nadmiernie używać hamulców, żeby utrzymać
zadany tor jazdy, ponieważ obliczył dokładną prędkość każdego koła, przy której samochód miał
wykonać manewr bez poślizgu i użył zmiennych DIFFERENTIAL_FRONT_LEFT,
DIFFERENTIAL_FRONT_RIGHT, DIFFERENTIAL_REAR_LEFT, DIFFERENTIAL_REAR_
RIGHT, żeby ją osiągnąć. Warto też zwrócić uwagę na mniejsze obroty kierownicą. Ponieważ IDSA
bazuje nie tylko na pozycji kierownicy, ale też na szybkości kątowej obrotu, jest w stanie odczytać
gwałtowny manewr jako manewr głęboki. W tej sytuacji kierowca nie musi krzyżować ani przekładać
rąk na kierownicy.
Tabela 15 Eksperyment 2 – ciasny zakręt - samochody skalibrowane
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,2 2 253 0,2 -1 76
10 0,1 1 268 0,2 1 99
10 0,4 0 342 0,1 2 108
10 0,4 -2 268 0,2 0 104
20 0,8 1 372 0,2 -1 76
20 0,7 2 371 0,2 2 108
-80
-70
-60
-50
-40
-30
-20
-10
0
10
20
80
80
80
80
10
0
10
0
10
0
10
0
12
0
12
0
12
0
12
0
14
0
14
0
14
0
14
0
16
0
16
0
16
0
16
0
18
0
18
0
18
0
18
0
20
0
20
0
20
0
20
0
zmia
na
prę
dko
ści p
od
czas
man
ewru
[km
/h]
prędkość początkowa [km/h]
Samochód referencyjny Samochód sterowany z wykorzystaniem IDSA
117
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
20 0,9 0 365 0,3 1 104
20 1 -1 312 0,2 0 98
30 1,2 2 290 0,2 2 96
30 1,2 1 246 0,2 1 94
30 1,1 -1 256 0,2 2 88
30 1,3 3 267 0,1 3 98
40 1,5 -10 160 0,2 -3 198
40 1,6 -8 381 0,2 -4 197
40 1,5 -12 271 0,3 -4 178
40 niezaliczony 0,4 3 174
50 1,9 -28 450 0,3 3 149
50 niezaliczony 0,2 -24 324
50 niezaliczony 0,3 -23 354
50 niezaliczony niezaliczony
60 niezaliczony 0,4 -38 450
60 niezaliczony 0,4 -39 450
60 niezaliczony niezaliczony
60 niezaliczony 0,4 -42 450
Eksperyment 2 (tabela 15) miał za zadanie porównać obydwa rozwiązania w zwyczajnej sytuacji
drogowej, czyli podczas przejazdu przez skrzyżowanie. Okazało się, że potwierdził prawie wszystkie
spostrzeżenia z eksperymentu 1. W tym przypadku jednak dwie próby zostały niezaliczone. Wynika to
najpewniej z dużej prędkości i braku fizycznego ograniczenia (słupki, ściana), zderzenia z którym IDSA
miałby unikać. Widać też wyraźne obniżenie prędkości w ostatnich próbach. Można przypuszczać, że
bezwładność samochodu nie pozwala przejechać zadanym torem powyżej prędkości ok. 30 [𝑘𝑚
ℎ] .
Na wykresie umieszczonym na rysunku 47 widać wyraźnie, że do tej prędkości zastosowany sposób
sterowania nie ma znaczenia.
118
Rysunek 47 Zmiana prędkości samochodów 𝒒𝟐 w eksperymencie 2
Z wyższą prędkością początkową i bez utraty prędkości udało się tu wykonać przejazd tylko dwa razy,
samochodem sterowanym z wykorzystaniem IDSA, przypuszczalnie wykorzystując idealną rajdową
trajektorię (od zewnętrznej strony zakrętu do wewnętrznej i znów do zewnętrznej). Udowadnia to, że
jeśli kierowca dysponuje umiejętnościami do szybkiego pokonania zakrętu, to IDSA mu w tym
nie przeszkadza – w odróżnieniu od systemów bezpieczeństwa, w które wyposażony jest samochód
referencyjny.
Tabela 16 Eksperyment 3 – długi zakręt - samochody skalibrowane
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓 𝒒𝟒 𝒒𝟓
20 0,23 0,01 0,07 0,07
20 0,25 0,02 0,07 0,06
20 0,22 0,01 0,07 0,05
20 0,23 0,01 0,06 0,06
30 0,4 0,06 0,11 0,1
30 0,42 0,05 0,11 0,09
30 0,41 0,06 0,12 0,09
30 0,4 0,07 0,13 0,11
40 0,72 0,18 0,31 0,27
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
5
10 10 10 10 20 20 20 20 30 30 30 30 40 40 40 40 50 50 50 50 60 60 60 60zm
ian
a p
ręd
kośc
i po
dcz
as m
anew
ru [
km/h
]
prędkość początkowa [km/h]
Samochód referencyjny Samochód sterowany z wykorzystaniem IDSA
119
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓 𝒒𝟒 𝒒𝟓
40 0,7 0,2 0,25 0,22
40 0,7 0,19 0,3 0,25
40 0,71 0,17 0,3 0,27
50 1,81 0,22 0,21 0,2
50 1,9 0,21 0,26 0,23
50 1,86 0,24 0,29 0,25
50 1,78 0,24 0,24 0,21
60 2,59 0,25 0,37 0,26
60 2,72 0,25 0,28 0,25
60 2,58 0,27 0,27 0,25
60 2,58 0,26 0,29 0,26
70 2,42 0,26 0,25 0,21
70 2,44 0,25 0,25 0,22
70 2,53 0,26 0,26 0,21
70 2,51 0,26 0,28 0,25
Eksperyment 3 (tabela 16) porównuje wyłącznie uślizg kół 𝑞4 oraz 𝑞5 , w tym przypadku tylko
na powierzchni asfaltowej. Na rysunku 48 po raz kolejny widać cechę opisaną przy analizie prędkości
w eksperymencie 1. IDSA precyzyjnie oblicza potrzebną prędkość każdego koła, co minimalizuje
poślizg. Warto też zauważyć, że poślizg jest równomierny, tj. różnica 𝑞4 − 𝑞5 jest znacznie mniejsza
niż w przypadku samochodu referencyjnego. Na rysunku 48 widać wyraźnie, że samochód sterowany
w sposób referencyjny cechuje się ogromną różnicą poślizgu pomiędzy kołami, podczas gdy samochód
sterowany przez IDSA zachowuje poślizg minimalny i maksymalny porównywalny z poślizgiem
minimalnym samochodu referencyjnego.
W tym przypadku zdecydowano się wykonać kilka dodatkowych jazd testowych, badając tylko
maksymalny poślizg (wskaźnik 𝑞4) w sytuacji, gdy zewnętrzne koła poruszają się po trawie. Wyniki
przedstawiono na wykresie na rysunku 49. Widać tutaj, że o ile obecność trawy pod kołami samochodu
referencyjnego pogarsza jego wyniki, tak dla samochodu sterowanego przez IDSA nie stanowi żadnej
przeszkody.
120
Rysunek 48 Poślizg kół samochodów 𝒒𝟒 oraz 𝒒𝟓 podczas eksperymentu 3
Rysunek 49 Poślizg kół samochodów 𝒒𝟒 oraz 𝒒𝟓 podczas jazdy po różnych podłożach
0
0,5
1
1,5
2
2,5
3
20 20 20 20 30 30 30 30 40 40 40 40 50 50 50 50 60 60 60 60 70 70 70 70
uśl
izg
koła
[m
/s]
prędkość [km/h]
Samochód referencyjny (min) Samochód referencyjny (max)
Samochód sterowany z wykorzystaniem IDSA (min) Samochód sterowany z wykorzystaniem IDSA (max)
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
20 20 20 20 30 30 30 30 40 40 40 40 50 50 50 50 60 60 60 60 70 70 70 70
uśl
izg
koła
[m
/s]
prędkość [km/h]
Samochód referencyjny (aslaft)
Samochód sterowany z wykorzystaniem IDSA
Samochód referencyjny (aslaft/trawa)
Samochód sterowany z wykorzystaniem IDSA (asfalt/trawa)
121
Tabela 17 Eksperyment 4 – slalom - samochody skalibrowane
Prędkość
rozpoczęcia
manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔 𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,9 48 0,35 0 54 0,2 76 0,12 0,1 55
30 1,2 46 0,37 0 36 0,2 74 0,13 0,09 36
40 1,4 104 1,2 0,12 28 0,2 87 0,21 0,12 26
40 1,3 48 1,32 0,41 27 0,2 95 0,32 0,24 27
40 1,2 70 1,28 0,36 26 0,3 92 0,44 0,36 26
40 1,4 53 1,11 0,51 25 0,2 104 0,41 0,31 28
50 1,5 95 1,36 0,46 25 0,2 99 0,43 0,29 26
50 1,6 110 1,54 0,71 25 0,3 114 0,49 0,42 25
50 1,3 89 1,61 0,87 25 0,3 112 0,39 0,23 25
50 1,3 93 1,39 0,9 25 0,3 120 0,44 0,42 26
Wyniki eksperymentu 3 (tabela 17) okazały się gorsze, niż zakładano, co odkrywa pewną słabość IDSA.
Co prawda obydwa samochody poddały się przy tej samej prędkości 60 [𝑘𝑚
ℎ], a samochód sterowany
przez IDSA lepiej zarządzał przechyłem 𝑞1, potrzebnym skrętem kierownicy 𝑞3 i przyczepnością kół
𝑞4 oraz 𝑞5, to jednak nie udało się z jego pomocą skrócić czasów przejazdu 𝑞6 (rysunek 50).
Rysunek 50 Czasy przejazdu 𝒒𝟔 w eksperymencie 4
Niestety w środowisku symulacyjnym nie udało się zbadać szerokości całego toru potrzebnego obu
pojazdom, jednak subiektywnie podczas eksperymentu dało się odczuć, że samochód sterowany
0
10
20
30
40
50
60
20 30 40 40 40 40 50 50 50 50
czas
prz
ejaz
du
[s]
prędkość [km/h]
Samochód referencyjny Samochód sterowany z wykorzystaniem IDSA
122
przez IDSA potrzebuje więcej miejsca. Po analizie odkryto, że ciągłe, gwałtowne zmiany toru jazdy
realizowane są przez IDSA z większym opóźnieniem, więc samochód wyjeżdżał dalej od słupków
zanim zaczynał realizować kolejny skręt. Warto też nadmienić, że podczas niektórych prób z wyższymi
prędkościami, algorytm decydował o ominięciu kolejnego słupka z innej strony, niż chciał kierowca,
co powodowało spore zaskoczenie u prowadzącego pojazd. Z drugiej strony dzięki temu nawet
rozpoczynając próbę z prędkością 70 [𝑘𝑚
ℎ] , IDSA zapobiegał najechaniu na przeszkodę, co dla
samochodu referencyjnego miało miejsce już przy trzecim słupku.
4.4.2. Pojazd referencyjny bez ECS i TCS
Tabele 18 – 37 przedstawiają wpływ zmian w ustawieniach samochodu referencyjnego na zachowanie
w próbach dynamicznych. Najpierw wyłączono układy ECS i TCS przy standardowych nastawach
zawieszenia, a następnie włączano i wyłączano ESC i TSC przy bardziej komfortowych lub sportowych
nastawach zawieszenia.
Tabela 18 Eksperyment 5 - test łosia - samochód referencyjny bez ESC i TSC
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 1,7 -4 194
80 1,7 -7 209
80 1,8 6 264
80 1,6 12 186
100 1,9 4 198
100 1,6 -2 179
100 1,8 -3 201
100 1,9 1 212
Tabela 19 Eksperyment 6 – ciasny zakręt – samochód referencyjny bez ESC i TCS
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,3 2 351
20 0,7 0 298
30 1,4 1 266
30 1,4 1 279
30 1,3 3 272
30 1,5 1 264
40 1,7 -4 261
40 1,5 -6 297
40 niezaliczony
40 1,8 2 321
123
Tabela 20 Eksperyment 7 – długi zakręt – samochód referencyjny bez ECS i TCS
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟒 𝒒𝟓
20 0,3 0,02
30 0,38 0,1
30 0,55 0,12
30 0,37 0,06
30 0,84 0,07
40 2,41 0,26
40 2,87 0,44
40 2,97 0,35
40 2,5 0,81
Tabela 21 Eksperyment 8 – slalom - samochód referencyjny bez ECS i TCS
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,9 94 0,44 0 51
30 1,1 75 0,49 0,11 32
40 1,2 97 1,13 0,4 27
40 1,3 150 1,66 0,52 28
40 1,4 124 1,83 0,43 27
40 1,3 164 2,03 0,51 24
50 1,6 187 2,54 0,22 24
50 1,5 177 2,71 0,34 24
50 1,4 164 2,81 0,28 24
50 1,3 127 3,05 0,65 23
Wnioski z przejazdów samochodem referencyjnym po wyłączeniu systemów odpowiedzialnych
za utrzymanie trakcji okazały się bardzo interesujące. Eksperyment 5 (tabela 18) pokazał, że samochód
poddaje się przy dużo niższych prędkościach w porównaniu do wyników eksperymentu 1. Wynika to
z ogromnej podsterowności, uniemożliwiającej gwałtowną zmianę pasa. Jest to zgodne z intuicją,
ponieważ systemy te zostały wprowadzone właśnie w odpowiedzi na test łosia. Podsterowność
spowodowała także konieczność mocniejszych obrotów kierownicą, w celu utrzymania toru jazdy.
Co ciekawe, wyniki eksperymentu 6 (tabela 19) są lepsze niż eksperymentu 2. Okazało się, że systemy
ECS i TCS w przypadku gwałtownego skrętu zmniejszają wyłącznie prędkość jazdy. Ich obecność
nie pozwala jednak przejechać zakrętu przy większej prędkości początkowej niż ta, która uzyskano by
bez nich. Co więcej, poprzez eliminację systemów ECS i TCS, udało się właściwie wyeliminować utratę
prędkości, a więc skrócić czas wykonywania manewru. Eksperyment 7 (tabela 20) pokazał, że systemy
ECS i TCS są przydatne przy dłuższych manewrach. Ich zdolność do hamowania okazała się niezbędna
przy prędkościach powyżej 40 [𝑚𝑘
ℎ] . Warto też odnotować wyraźnie wyższe uślizgi kół 𝑞4 oraz
𝑞5 występujące przy tej prędkości. Ciekawe są również wyniki przejazdu przez slalom (eksperyment 8,
124
tabela 21). Zgodnie z eksperymentem 4, prędkość 50 [𝑘𝑚
ℎ] okazała się graniczna, jednak brak obecności
systemów TCS i ESC nie spowodował problemów z zaliczeniem testu. Można było zauważyć niższe
czasy przejazdów 𝑞6, wynikające z braku hamowań realizowanych przez te systemy.
Do tej części warto jeszcze dodać niemierzalne, subiektywne spostrzeżenia kierowcy. Samochód
bez systemów TSC i ESC zachowywał się bardzo dobrze podczas normalnej jazdy. Ze względu
na nieograniczoną tymi systemami podsterowność nie udało się go doprowadzić do sytuacji z rysunku
43. Podczas próby ciasnego zakrętu dawał większą swobodę – kierowca mógł regulować prędkość
wyjściową z zakrętu, a także jego promień, pedałem gazu. Najprawdopodobniej ze względu na obecność
napędu na 4 koła, nie udało się wykonać ślizgu podczas próby długiego zakrętu, który mógłby
zwiększyć możliwą prędkość przejazdu. Podczas ostatniego testu – slalomu – samochód był bardziej
przewidywalny, a kontrolowanie jego poślizgów przy pomocy pedału gazu było przyjemniejsze niż
poleganie na systemach TSC i ESC. Można przypuszczać, że tak dobre wyniki eksperymentów bez
systemów TCS i ECS wynikają z dobrych (sportowych) ustawień zawieszenia.
4.4.3. Pojazd referencyjny z komfortowym zawieszeniem
Zawieszenie komfortowe to takie, w którym współczynniki sprężystości i tłumienia zawieszenia,
a także współczynnik sztywności stabilizatorów zostały zmniejszone o połowę. Dzięki temu
zawieszenie znacznie lepiej radziło sobie z nierównościami, ograniczając przyspieszenia działające
na kabinę, kosztem większego przechyłu nadwozia 𝑞1.
Tabela 22 Eksperyment 9 – test łosia – samochód referencyjny z komfortowym zawieszeniem
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 1,9 -8 354
80 1,8 -15 345
80 2 20 387
80 2,3 17 354
100 2,3 -40 349
100 niezaliczony
100 niezaliczony
100 2,4 -28 396
Podczas eksperymentu 9 (tabela 22) widać wyraźnie działającą podsterowność. Przy prędkości
100 [𝑘𝑚
ℎ] samochód poruszał się już 4-kołowym ślizgiem dochodzącym do 6 [
𝑚
𝑠] i tracił około 40 [
𝑘𝑚
ℎ]
swojej prędkości początkowej. Przy prędkości 110 [𝑘𝑚
ℎ] jego opanowanie było już trudne. Za to warto
zauważyć, że przy niższych prędkościach, możliwe było zwiększenie prędkości podczas manewru.
Następowało to w chwilach, w których samochód przestawał się ślizgać i był już ustawiony poprawnie
na torze jazdy, a odległość do kolejnego skrętu była dostatecznie długa.
125
Tabela 23 Eksperyment 10 – ciasny zakręt – samochód referencyjny z komfortowym zawieszeniem
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,6 3 354
20 1 -3 341
30 1,9 -1 347
30 1,8 0 297
30 1,8 2 398
30 2 4 365
40 2,4 -17 354
40 2,1 -16 376
40 niezaliczony
40 2,5 -19 371
Tabela 24 Eksperyment 11 – długi zakręt – samochód referencyjny z komfortowym zawieszeniem
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟒 𝒒𝟓
20 0,16 0
30 0,44 0,1
30 0,45 0,15
30 0,55 0,06
30 0,79 0,09
40 2,11 0,32
40 2,18 0,65
40 2,15 0,56
40 2,25 0,34
Próby przejazdu przez ciasny i długi zakręt (eksperymenty 10 i 11, tabele 23 i 24) dały podobne
rezultaty. Maksymalna prędkość wejściowa to 40 [𝑘𝑚
ℎ] i dopiero przy tej prędkości uruchamia się ESC.
Przy niższych prędkościach zdolność zawieszenia do kompensacji siły odśrodkowej jest wystarczająca,
a przy wyższych ESC uruchamia się zbyt późno, żeby zdążyć utrzymać samochód na zadanym torze
jazdy.
Tabela 25 Eksperyment 12 – slalom – samochód referencyjny z komfortowym zawieszeniem
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 1,6 95 0,65 0,23 51
30 1,9 97 1,1 0,45 33
30 2 133 1,76 0,37 33
30 1,8 136 2 0,56 33
30 1,8 165 1,97 0,44 32
126
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
40 2,3 146 2,19 0,4 25
40 2,3 167 2,43 0,77 25
40 2,4 129 2,7 0,81 25
40 2,3 157 2,5 0,79 25
Eksperyment 12 przedstawiony w tabeli 25, potwierdza pozostałe obserwacje. ESC reaguje na tyle
późno i wyłącza się na tyle wcześnie, że pomiędzy jego akcjami można nieznacznie podnieść prędkość
przejazdu. Niestety przy próbie rozpoczęcia przejazdu z prędkością 50 [𝑘𝑚
ℎ], ESC reaguje zbyt późno
i nie jest w stanie zapobiec uderzeniu w drugi słupek.
4.4.4. Pojazd referencyjny z komfortowym zawieszeniem bez ESC i TSC
Wyłączenie ESC i TSC dla komfortowych nastawów zawieszenia dało kolejne, interesujące rezultaty.
W eksperymencie 13 (tabela 26) widać obniżenie maksymalnej prędkości, z którą manewr był
wykonalny. Powyżej prędkości 80 [𝑘𝑚
ℎ] samochód najpierw wpadał w podsterowność, a po chwilę
w nadsterowność powodującą utratę kontroli.
Tabela 26 Eksperyment 13 – test łosia – samochód referencyjny z komfortowym zawieszeniem bez ECS i ESP
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 2,1 5 356
80 2,3 -2 341
80 2,1 -8 329
80 2,3 -10 299
Tabela 27 Eksperyment 14 – ciasny zakręt – samochód referencyjny z komfortowym zawieszeniem bez ECS i ESP
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,8 1 369
20 1,4 0 374
30 2 3 348
30 1,8 -4 358
30 1,9 4 353
30 2,1 -2 351
40 2,6 -5 361
40 2,6 -6 367
40 2,4 -5 334
40 2,6 2 331
Podczas prób przejazdu przez ciasny zakręt (eksperyment 14, tabela 27) maksymalna możliwa prędkość
wejściowa nie zmieniła się w stosunku do przejazdu z ESC i TSC, jednak przejazd z prędkością 40 [𝑘𝑚
ℎ]
127
wymagał od kierowcy świadomego dociśnięcia pedału przyspieszenia i wykorzystania pojawiającej się
nadsterowności.
Tabela 28 Eksperyment 15 – długi zakręt – samochód referencyjny z komfortowym zawieszeniem bez ECS i ESP
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟒 𝒒𝟓
20 0,17 0,2
30 0,35 0,07
30 0,76 0,17
30 0,77 0,4
30 0,59 0,12
40 2,11 0,82
40 1,76 0,85
40 5,32 5
40 6,6 6,11
Próba wykorzystania tej samej nadsterowności w eksperymencie 15 (tabela 28), którą zresztą
próbowano wywołać w eksperymencie 7, nie przyniosła przyrostu prędkości, z którą można
wykonywać długi zakręt. Samochód co prawda realizował ładny, 4-kołowy poślizg, ale jego
opanowanie wymagało dużych umiejętności i, jak wspomniano, nie przyniosło wymiernych korzyści.
Tabela 29 Eksperyment 16 – slalom – samochód referencyjny z komfortowym zawieszeniem bez ECS i ESP
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 1 87 0,44 0,15 52
30 1,5 113 0,49 0,16 35
40 1,4 161 1,13 0,22 31
40 1,5 131 1,66 0,29 29
40 1,4 162 1,83 0,27 31
40 1,6 152 2,03 0,33 28
Slalom (eksperyment 16, tabela 29) nie wniósł nic nowego. Tak, jak w eksperymencie 12 ingerencja
ECS była zbyt późna, tak tutaj jej brak zakończył się maksymalną prędkością przejazdu wynoszącą
40 [𝑘𝑚
ℎ].
4.4.5. Pojazd referencyjny ze sportowym zawieszeniem
Do kolejnych testów zwiększono o połowę współczynniki sprężystości i tłumienia zawieszenia oraz
sztywności stabilizatorów. Przed omówieniem wyników należy podać jedną dodatkową informację.
Podczas jazdy przez nierówny fragment toru testowego, na którym obecnych jest dużo nieregularnych
i losowych wybojów, samochód z takim zawieszeniem bardzo często tracił kontakt pomiędzy oponami
a nawierzchnią. Działo się to na tyle często, że uznano taki samochód za niezdatny do codziennego
użytkowania.
128
Tabela 30 Eksperyment 17 – test łosia – samochód referencyjny ze sportowym zawieszeniem
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 1,1 -4 187
80 1,2 -4 193
80 1,1 2 188
80 1,1 -3 201
100 1,2 -2 204
100 1,3 -2 187
100 1,2 2 199
100 1,2 3 216
Eksperyment 17, którego wyniki przedstawiono w tabeli 30, pokazuje zachowanie tak
skonfigurowanego pojazdu podczas testu łosia. Jak widać, pomiary nie różnią się od poprzednich
eksperymentów. Samochód przechyla się znacznie mniej (wskaźnik 𝑞1) , jednak jego pozostałe
obserwowane wskaźniki oceny 𝑞2 oraz 𝑞3 nie ulegają poprawie. Subiektywnie dało się odczuć większą
podsterowność bardzo szybko kompensowaną systemami bezpieczeństwa ECS i TSC. Takie
zachowanie okazało się być zaskakujące dla kierowcy.
Tabela 31 Eksperyment 18 – ciasny zakręt – samochód referencyjny ze sportowym zawieszeniem
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,2 3 240
20 0,6 1 260
30 1,1 -1 291
30 1,2 -1 297
30 1,1 5 283
30 1,2 8 269
40 1,3 -4 291
40 1,1 -2 277
40 1,4 -5 248
40 1,3 2 290
Tabela 32 Eksperyment 19 – długi zakręt – samochód referencyjny ze sportowym zawieszeniem
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟒 𝒒𝟓
20 0,38 0,04
30 0,34 0,09
30 0,34 0,22
30 0,66 0,25
30 0,79 0,28
40 2,8 0,26
40 2,92 0,48
129
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟒 𝒒𝟓
40 2,76 0,64
40 2,81 0,77
Eksperymenty 18 i 19 (tabele 31 oraz 32) potwierdziły poprzednią obserwację. Systemy ECS i TSC
reagowały bardzo szybko, ale jednocześnie dość słabo i krótko. Pozwoliło to osiągnąć maksymalną
prędkość wejściową w obu eksperymentach 40 [𝑘𝑚
ℎ] . Odnotowano tutaj znacząco mniejsze obroty
kierownicą niż w poprzednich próbach. Najprawdopodobniej wynikają one z dostatecznie szybkiej
kompensacji poślizgu przez układy ECS i TSC.
Tabela 33 Eksperyment 20 – slalom – samochód referencyjny ze sportowym zawieszeniem
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,3 88 0,22 0,1 50
30 0,8 89 0,36 0,1 31
40 0,9 87 1,36 0,2 26
40 1,1 98 1,1 0,21 29
40 1,1 88 1,12 0,24 29
40 1,1 98 2 0,3 29
50 1,2 112 2 0,65 25
50 1,1 126 2,12 0,65 25
50 1,1 144 2,38 0,69 24
50 1,1 141 2,08 0,64 24
Eksperyment przejazdu przez slalom (eksperyment 20, tabela 33) zakończył się wynikami podobnymi
do przejazdu z komfortowymi nastawami zawieszenia, z wyłączeniem przechyłu 𝑞1 . Subiektywnie
jednak samochód chętniej skręcał, a podsterowność była redukowana błyskawicznie przez układy ESC
i TSC, więc po jej opanowaniu możliwe było zwiększenie prędkości przed kolejnym słupkiem.
4.4.6. Pojazd referencyjny ze sportowym zawieszeniem bez ESC i TSC
Po wyłączeniu ESC i TSC, test łosia (eksperyment 21, tabela 34) pokazał wyraźną podsterowność, którą
bardzo trudno było zamienić w nadsterowność. Oznacza to, że nadsterowność zaobserwowana
w eksperymentach 13-16, najprawdopodobniej wynikała z dużej zmiany sił działających na samochód,
kiedy duży przechył w jedną stronę zmieniał się w duży przechył w drugą stronę, co skutkowało
zerwaniem przyczepności.
Tabela 34 Eksperyment 21 – test łosia – samochód referencyjny ze sportowym zawieszeniem bez TSC i ESC
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 1,1 -2 191
80 1,2 0 188
80 1,1 2 187
130
80 1,1 2 179
100 1,2 1 200
100 1,3 -1 212
100 1,2 3 220
100 1,2 2 198
Tabela 35 Eksperyment 22 – ciasny zakręt – samochód referencyjny ze sportowym zawieszeniem bez TSC i ESC
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,2 1 265
20 0,5 3 255
30 1 -3 273
30 1,2 -2 290
30 1,2 -6 254
30 1,2 -6 262
40 1,2 -2 269
40 1,2 -1 299
40 1,3 -3 241
40 1,3 0 248
Tabela 36 Eksperyment 23 – długi zakręt – samochód referencyjny ze sportowym zawieszeniem bez TSC i ESC
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟒 𝒒𝟓
20 0,41 0,11
30 0,3 0,16
30 0,64 0,12
30 0,51 0,13
30 0,7 0,1
40 2,1 0,23
40 2,12 0,49
40 2,56 0,49
40 2,18 0,79
Eksperymenty 22 i 23 (tabele 35 oraz 36) pokazały, że reakcje ESC i TSC w eksperymentach 18 i 19
były właściwie bezcelowe, ponieważ zarówno bez tych systemów, jak i przy ich obecności, prędkością
graniczną okazało się 40 [𝑘𝑚
ℎ]. Przypisuje się to możliwościom zastosowanych opon.
131
Tabela 37 Eksperyment 24 – slalom – samochód referencyjny ze sportowym zawieszeniem bez TSC i ESC
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód referencyjny
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,1 96 0,81 0,12 51
30 0,9 100 0,33 0,14 30
40 0,8 106 0,99 0,19 27
40 1 98 1,13 0,26 27
40 1 94 1,19 0,27 26
40 1,2 115 1,67 0,29 27
50 1,1 195 2,31 0,68 25
50 1,2 151 3,13 0,71 25
50 1,2 130 3,48 0,78 26
50 1,2 166 6,14 2,88 25
Ostatnią obserwację potwierdza przejazd przez slalom (eksperyment 24, tabela 37). Do prędkości
40 [𝑘𝑚
ℎ] samochód zachowywał się bardzo przewidywalnie i nie zdradzał żadnych nietypowych
zachowań, a powyżej tej prędkości kierowca musiał ręcznie kompensować podsterowność,
a jednocześnie miał możliwość zwiększania prędkości pomiędzy słupkami, co utrudniało kompensację
podsterowności przy kolejnym skręcie. Warto tu zauważyć, że podczas skrętu kierowca mógł wymusić
niski bieg i wcisnąć mocno gaz, co zwiększało prędkość, mimo hamowania wykonywanego przez układ
TSC. Ta sama operacja na wyższym biegu nie przynosiła przyrostu prędkości. Jest to typowy przykład
sytuacji, w której dwa systemy (silnik i hamulce) działają jednocześnie przeciw sobie. Jeśli silnik miał
dostatecznie dużo mocy (na niższym biegu), to „wygrywał” z układem hamulcowym i systemem TSC.
4.4.7. Zwiększenie masy pojazdu o 300[kg]
Kolejne tabele przedstawiają wpływ zmian parametrów dotyczących obydwu samochodów na ich
zachowanie.
Tabela 38 Eksperyment 25 – test łosia – masa pojazdu zwiększona do 1600[kg]
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
70 1,5 2 150 0,3 2 90
80 1,5 1 161 0,3 1 89
80 1,6 -2 155 0,3 -3 94
80 1,7 -3 167 0,3 2 96
80 1,7 2 168 0,3 -4 95
90 1,6 -9 165 0,4 2 92
90 1,7 -11 170 0,3 3 91
90 1,7 -12 161 0,3 5 92
90 1,6 -10 169 0,3 -1 88
100 1,8 -24 234 0,4 1 88
132
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
100 niezaliczony 0,4 2 95
100 1,8 -19 199 0,4 1 97
100 niezaliczony 0,4 1 99
110 niezaliczony 0,4 3 89
110 niezaliczony 0,4 -1 89
110 niezaliczony 0,4 -2 84
110 niezaliczony 0,4 -4 95
120 niezaliczony 0,4 5 87
120 niezaliczony 0,5 -1 92
120 niezaliczony niezaliczony
120 niezaliczony 0,4 3 91
W eksperymencie 25 (tabela 38) podniesiono masę pojazdu 𝑚𝑐 o 300[𝑘𝑔] – z 1300[𝑘𝑔] do 1600[𝑘𝑔].
W ten sposób zasymulowano obciążenie pojazdu np. kompletem pasażerów. Zachowanie samochodu
referencyjnego jest zaskakująco złe. Warto podkreślić, że ten test pokazuje jazdę z kompletem
pasażerów, więc nie jest to sytuacja wyjątkowa. W teście łosia do 80 [𝑘𝑚
ℎ] samochód zachowuje się
przewidywalnie i podobnie do eksperymentu 1. Jednak już przy 90 [𝑘𝑚
ℎ] widać wyraźną utratę prędkości
𝑞2 (ok. 10 [𝑘𝑚
ℎ] ), a przy 100 [
𝑘𝑚
ℎ] pojawia się trudna do opanowania nadsterowność. Samochód
sterowany z wykorzystaniem IDSA w tym samym eksperymencie pokazuje swoją zdolność
do niwelowania przechyłów 𝑞1 i kontroli toru jazdy bez potrzeby hamowania. Niemniej jednak,
maksymalną prędkością wejściową, z jaką udało się wykonać manewr, było 120 [𝑘𝑚
ℎ] , czyli aż
o 80 [𝑘𝑚
ℎ] mniej niż w eksperymencie 1.
Tabela 39 Eksperyment 26 – ciasny zakręt - masa pojazdu zwiększona do 1600[kg]
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
20 1 -1 250 0,4 -5 110
20 0,9 -2 265 0,4 -6 97
20 0,9 3 241 0,4 -3 94
20 0,9 -2 239 0,4 -2 99
30 1,3 -2 287 0,5 -6 97
30 1,3 -3 298 0,4 -7 95
30 1,3 0 276 0,4 -8 93
30 1,2 -2 269 0,4 -5 94
40 1,5 -20 301 0,5 -7 187
40 1,6 -19 286 0,5 -8 177
133
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
40 1,5 -9 271 0,5 -7 193
40 1,5 -9 266 0,5 -9 186
W eksperymencie 26 (tabela 39) wyższa masa 𝑚𝑐 wpłynęła na ograniczenie maksymalnej prędkości
wejściowej do 40 [𝑘𝑚
ℎ] dla obydwóch testowanych pojazdów. Warto zauważyć, że samochód
referencyjny w próbach dla tej prędkości początkowej traci prędkość końcową tylko o ok.
10 [𝑘𝑚
ℎ] lub aż o ok. 20 [
𝑘𝑚
ℎ] (wskaźnik 𝑞2). W tym ostatnim przypadku jest to wynikiem ingerencji
systemu ESC. Co ciekawe, bez niego samochód przejeżdża przez zakręt równie skutecznie. Brak reakcji
ESC nie został wymuszony jego wyłączeniem. Po prostu w dwóch z czterech prób system
nie zainterweniował. Pojazd sterowany z użyciem IDSA potwierdził dotychczasowe wyniki, wyraźnie
redukując przechył 𝑞1 i ograniczając utratę prędkości 𝑞2.
Tabela 40 Eksperyment 27 – długi zakręt - masa pojazdu zwiększona do 1600[kg]
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓 𝒒𝟒 𝒒𝟓
20 0,18 0,21 0,18 0,1
30 0,19 0,21 0,19 0,12
40 0,39 0,52 0,39 0,23
40 0,32 0,56 0,32 0,21
40 0,31 0,54 0,31 0,23
40 0,38 0,44 0,38 0,22
50 niezaliczony 0,28 0,33
50 niezaliczony 0,28 0,39
50 niezaliczony niezaliczony
50 niezaliczony 0,36 0,28
W eksperymencie przejazdu przez długi zakręt (eksperyment 27, tabela 40) samochód referencyjny
poddał się przy prędkości 50 [𝑘𝑚
ℎ] , podczas gdy samochód sterowany przez IDSA zaliczył trzy
z czterech prób przy tej prędkości, nie radząc sobie dopiero przy prędkości wyższej. Podobnie, jak
w eksperymencie 3, widać tutaj dokładniejsze sterowanie prędkością każdego koła, oznaczającą
mniejsze uślizgi 𝑞4 oraz 𝑞5.
Tabela 41 Eksperyment 28 – slalom - masa pojazdu zwiększona do 1600[kg]
Prędkość
rozpoczęcia
manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔 𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
30 2,2 97 0,66 0,02 37 0,3 79 0,15 0,1 37
40 2,6 98 0,98 0,09 28 0,4 81 0,2 0,12 28
134
Prędkość
rozpoczęcia
manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔 𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
40 2,6 109 1,32 0,15 27 0,4 84 0,19 0,12 28
40 2,4 150 1,25 0,22 28 0,4 80 0,18 0,12 28
40 2,6 109 1,29 0,26 29 0,4 81 2,1 0,12 28
Slalom realizowany po podniesieniu masy (eksperyment 28, tabela 41), zakończył się dla obu pojazdów
przy prędkości 40 [𝑘𝑚
ℎ] . Co prawda samochód sterowany przez IDSA zachował lepsze wartości
wszystkich badanych wskaźników, jednak przy wjeździe w slalom z prędkością 50 [𝑘𝑚
ℎ] nie był
w stanie, podobnie jak samochód referencyjny, zmieścić się przed drugim mijanym słupkiem.
4.4.8. Zwiększenie masy pojazdu o 300[kg] i przesunięcie środka ciężkości
W kolejnych czterech eksperymentach oprócz zwiększenia masy pojazdu 𝑚𝑐 do 1600[𝑘𝑔]
zdecydowano się jeszcze przesunąć środek ciężkości 𝑚𝑟 o 50[𝑐𝑚] do tyłu i 20[𝑐𝑚] w lewo. Miało to
zasymulować obciążenie samochodu czymś ciężkim, włożonym do bagażnika. Warto tutaj
przypomnieć, że bazowy rozkład masy badanego pojazdu𝑚𝑟, to 25% masy całkowitej na każdym kole,
a jest to sytuacja raczej rzadka w zwyczajnych, niesportowych samochodach.
Tabela 42 Eksperyment 29 – test łosia – masa pojazdu zwiększona do 1600[kg], środek ciężkości przesunięty
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
40 2,4 -11 156 1 2 89
50 2,8 -14 196 1,2 3 87
50 2,9 -14 168 1,1 -2 91
50 2,9 -16 177 1,1 -1 92
50 2,9 -15 196 1,2 -2 90
60 12,3 -8 205 1,2 -9 90
60 4 -21 229 1,3 -8 91
60 3,1 -22 292 1,3 -8 92
60 3,3 -22 199 1,2 -7 87
70 niezaliczony 1,2 -16 104
70 niezaliczony 1,2 -14 96
70 niezaliczony 1,2 -16 95
70 niezaliczony 1,2 -16 93
W tych warunkach, w eksperymencie 29 przedstawionym w tabeli 42, widać zmniejszenie maksymalnej
prędkości wejściowej do zaledwie 60 [𝑘𝑚
ℎ] dla samochodu referencyjnego i 70 [
𝑘𝑚
ℎ] dla samochodu
sterowanego przez IDSA. Powyżej tej prędkości obydwa samochody zachowywały się bardzo nerwowo
– podnosiły koła, wpadały zarówno w podsterowność, jak i nadsterowność lub nawet przewracały się.
135
Tabela 43 Eksperyment 30 – ciasny zakręt - masa pojazdu zwiększona do 1600[kg], środek ciężkości przesunięty
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
20 1,6 2 260 0,8 0 99
30 1,9 -8 275 0,8 -4 98
30 2 -6 264 0,4 -2 97
30 2 -6 249 0,8 -1 99
30 1,9 -6 229 0,4 -1 100
40 niezaliczony 1,3 -15 187
40 2,3 -15 292 0,4 -9 198
40 niezaliczony 1,3 -16 179
40 2,3 -13 288 0,4 -9 198
50 niezaliczony niezaliczony
50 2,3 -26 271 0,4 -9 175
50 niezaliczony niezaliczony
50 2,2 -27 260 0,4 -10 185
W kolejnym eksperymencie o numerze 30, przedstawionym w tabeli 43, zachowanie samochodu
zależało od kierunku wykonywania skrętu. Przy skręcaniu w prawo samochód referencyjny podnosił
dwa koła z prawej strony już przy prędkości 30 [𝑘𝑚
ℎ] , jednak ciągle przejeżdżał przez zakręt.
Przy wyższych prędkościach, niestety, po prostu się przewracał. Przy skręcaniu w lewo dało się
zauważyć bardzo gwałtowną reakcję systemu ESC, widoczną po wyraźnej utracie prędkości 𝑞2 .
Przy prędkości 60 [𝑘𝑚
ℎ] nawet ta reakcja była niewystarczająca i samochód wypadał z drogi. Samochód
sterowany przez IDSA również nie poradził sobie przy prędkości 60 [𝑘𝑚
ℎ] oraz podczas skręcania
w prawo przy 50 [𝑘𝑚
ℎ]. Jednak za to przy mniejszej szybkości, IDSA sprawnie redukował prędkość
i utrzymywał samochód na zadanym torze jazdy.
Tabela 44 Eksperyment 31 – długi zakręt – masa pojazdu zwiększona do 1600[kg], środek ciężkości przesunięty
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓 𝒒𝟒 𝒒𝟓
20 1,81 0,21 0,21 0,11
30 1,69 0,66 0,24 0,11
30 2,21 0,45 0,26 0,18
30 1,98 0,91 0,23 0,99
30 2 0,9 0,28 0,13
40 niezaliczony 0,84
40 2,49 0,41 0,33 0,21
40 niezaliczony 0,66
40 2,33 0,44 0,37 0,26
136
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓 𝒒𝟒 𝒒𝟓
50 niezaliczony 0,73
50 niezaliczony niezaliczony
50 niezaliczony 0,99 0,29
50 niezaliczony niezaliczony
Dokładnie przy takich samych prędkościach obydwa samochody nie sprostały próbie długiego zakrętu
(eksperyment 31, tabela 44). Warto jednak opisać, w jakich okolicznościach miało to miejsce.
Samochód sterowany przez IDSA wypadał z drogi przez równy, 4-kołowy poślizg, a samochód
referencyjny zachowywał się nieprzewidywalnie z powodu systemu ESC. Do 30 [𝑘𝑚
ℎ] nie działo się
z nim nic wartego uwagi, a powyżej tej prędkości samochód stawał na dwóch kołach, a następnie ESC
gwałtownie hamował, co przy zwiększonej bezwładności powodowało wypadnięcie z łuku.
Tabela 45 Eksperyment 32 – slalom - masa pojazdu zwiększona do 1600[kg], środek ciężkości przesunięty
Prędkość
rozpoczęcia
manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔 𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 1,6 114 3,6 0,32 60 0,4 94 0,89 0,21 61
30 4,3 165 - 0,21 38 4,8 98 - 0,3 39
30 3,3 154 - 0,32 39 4,8 85 - 0,31 38
30 4,2 191 - 0,6 39 4,8 94 - 0,34 38
30 4,9 121 - 0,91 42 4,8 98 - 0,33 39
40 13,9 264 - 0,36 30 5 87 - 0,41 29
40 19 177 - 0,12 31 4,9 90 - 0,64 29
40 13,8 193 - 0,33 35 4,9 89 - 0,48 31
40 14,5 195 - 0,49 30 4,9 99 - 0,77 30
137
Rysunek 51 Przechył samochodu referencyjnego podczas slalomu przy nierównomiernym obciążeniu
W eksperymencie 32 (tabela 45) obydwa samochody nie potrafiły przejechać slalomu z prędkością
powyżej 40 [𝑘𝑚
ℎ] . Co ciekawe, już powyżej prędkości 20 [
𝑘𝑚
ℎ] obydwa samochody podnosiły koła
z jednej strony. Warto jednak zauważyć, że IDSA utrzymywał przechył do 5[°], podczas gdy samochód
referencyjny przechylał się o około 14[°]. To zachowanie widać na rysunku 51.
4.4.9. Pojazd ze zużytymi oponami
Rysunek 52 Porównanie domyślnych ustawień opon (po lewej) i ustawień na potrzeby eksperymentów 33 – 36 (po
prawej)
138
Kolejne 4 eksperymenty porównawcze zrealizowano przy bazowej masie pojazdu 𝑚𝑐 i jej rozkładzie
𝑚𝑟 , jednak przy obniżonych parametrach opon 𝑜 . Porównanie zastosowanych parametrów modelu
Pacejka widać na rysunku 52. Miało to na celu zasymulowanie dużego zużycia opon lub niższej
przyczepności wynikającej z jazdy po nawierzchni gorszej jakości.
Tabela 46 Eksperyment 33 – test łosia – zużyte opony
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
90 1,6 -2 140 0,1 -2 95
100 1,6 -3 122 0,1 -5 101
100 1,6 -1 135 0,1 -6 112
100 1,6 -3 134 0,1 -7 108
100 1,6 -2 129 0,1 -9 105
110 1,6 3 135 0,1 -9 98
110 1,7 -1 145 0,2 -4 102
110 1,6 -6 139 0,1 -5 100
110 1,6 -2 137 0,1 -4 121
120 1,6 -17 129 0,2 -17 99
120 1,6 -18 121 0,2 -13 109
120 1,6 -3 161 0,1 -12 97
120 1,6 -19 152 0,1 -19 104
130 1,8 -9 182 0,1 -15 101
130 niezaliczony 0,1 -11 97
130 1,9 -11 195 0,2 -14 106
130 1,9 -13 154 0,1 -15 114
140 niezaliczony 0,1 -28 97
140 1,9 -12 161 0,1 -24 99
140 2,0 -9 146 0,1 -21 99
140 niezaliczony 0,1 -22 106
150 2,0 -18 194 0,1 -26 102
150 niezaliczony 0,1 -25 104
150 2,2 -27 183 0,1 -28 103
150 2,0 -23 222 0,1 -28 104
160 niezaliczony 0,2 -30 108
160 niezaliczony niezaliczony
160 niezaliczony 0,1 -32 113
160 niezaliczony 0,1 -30 99
W eksperymencie 33 przedstawionym w tabeli 46 widać, że obydwa samochody radzą sobie z gorszą
przyczepnością znacznie lepiej niż z podniesieniem masy. Samochód sterowany przez IDSA zakończył
próbę z prędkością początkową o 10 [𝑘𝑚
ℎ] większą niż samochód referencyjny, jednak na jego
139
niekorzyść warto odnotować znaczne spadki prędkości podczas testów. Wynikają one z zastosowania
modelu matematycznego zachowania samochodu, opisanego w punkcie 4.3.4, który został
skalibrowany dla konkretnych opon. O ile systemy TSC i ESC reagują, gdy wykryją poślizg, to IDSA
zakłada jego wystąpienie w konkretnych warunkach. Tutaj musiał on sobie radzić z poślizgiem, który
nastąpił, kiedy warunki nie zostały jeszcze spełnione.
Tabela 47 Eksperyment 34 – ciasny zakręt - zużyte opony
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟏 𝒒𝟐 𝒒𝟑
20 0,8 0 359 0,1 3 100
30 1,2 -2 377 0,1 2 97
30 1,3 -1 359 0,1 -3 95
30 1,2 1 316 0,2 2 98
30 1,2 -1 391 0,2 0 99
40 1,5 -20 375 0,1 -8 189
40 1,5 -23 364 0,2 -8 196
40 1,4 -20 366 0,3 -7 198
40 1,5 -21 392 0,2 -9 198
50 1,7 -33 394 0,4 -12 300
50 niezaliczony 0,3 -18 342
50 1,7 -30 348 0,3 -18 289
50 niezaliczony 0,3 -19 310
Podobne wnioski nasuwają się przy analizie wyników eksperymentu 34 (tabela 47). Można wręcz
powiedzieć, że samochód referencyjny poradził sobie dzięki zdecydowanej reakcji systemów wsparcia,
a samochód sterowany przez IDSA – dzięki wygenerowaniu przez ten system łatwego do opanowania
poślizgu wszystkich kół.
Tabela 48 Eksperyment 35 – długi zakręt - zużyte opony
Prędkość rozpoczęcia manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓 𝒒𝟒 𝒒𝟓
20 0,34 0,03 0,44 0,21
30 0,45 0,1 0,61 0,32
30 0,41 0,15 0,6 0,34
30 0,41 0,14 0,58 0,35
30 1,01 0,09 0,59 0,36
Niestety podczas przejazdu przez długi zakręt (eksperyment 35, tabela 48) żaden z samochodów
nie poradził sobie powyżej prędkości 30 [𝑘𝑚
ℎ]. Co prawda IDSA lepiej równał poślizgi poszczególnych
kół, ale nie wystarczyło to do utrzymania samochodu na zadanym torze jazdy.
140
Tabela 49 Eksperyment 36 – slalom - zużyte opony
Prędkość
rozpoczęcia
manewru
[𝒌𝒎
𝒉]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔 𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
30 1 100 0,84 0,09 37 0,2 95 0,97 0,13 38
40 niezaliczony 0,2 97 0,97 0,97 28
40 1,3 94 1,06 0,31 36 0,2 101 0,91 0,34 28
40 niezaliczony 0,3 99 0,85 0,85 29
40 niezaliczony 0,2 112 0,9 0,9 27
50 1,5 115 1,01 0,45 35 0,4 98 1,03 0,34 29
50 1,4 131 0,99 0,54 36 niezaliczony
50 1,5 147 0,98 0,41 35 0,4 104 1,11 0,3 26
50 1,5 134 1,14 0,34 36 0,3 94 0,98 0,41 26
Tylko nieznacznie lepiej IDSA poradził sobie podczas slalomu (eksperyment 36, tabela 49). Obydwa
samochody zakończyły próby przy prędkości 50 [𝑘𝑚
ℎ], a samochód sterowany przez IDSA nie zaliczył
tylko jednej próby do tej prędkości, w porównaniu do trzech nieudanych dla samochodu referencyjnego.
Widać tutaj wyraźnie, że w sytuacji slalomu nieprzewidziany poślizg jest skutecznie korygowany przez
systemy ESC i TSC, a tylko nieznacznie korygowany przez IDSA. Widać to wyraźniej w późniejszej
analizie wskaźników zagregowanych.
4.4.10. Zmiana bezwładności urządzeń wykonawczych
Kolejne eksperymenty skupiają się na samym IDSA, bez porównania do rozwiązania referencyjnego.
Tabela 50 Eksperyment 37 – test łosia - zmniejszona bezwładność urządzeń wykonawczych
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 0,1 -2 98
80 0,1 1 97
80 0,1 -5 94
80 0,1 0 82
100 0,2 0 99
100 0,2 -9 91
100 0,1 5 101
100 0,1 7 102
120 0,2 -4 103
120 0,2 -6 96
120 0,2 -1 95
120 0,3 2 81
140 0,2 3 95
141
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
140 0,2 -1 85
140 0,2 -4 95
140 0,2 2 94
160 0,2 3 90
160 0,2 -5 90
160 0,3 4 105
160 0,3 -4 106
180 0,4 1 109
180 0,4 -4 104
180 0,3 -6 101
180 0,4 -5 118
200 0,4 -5 118
200 0,2 -4 108
200 0,4 -1 90
200 0,3 -9 109
Tabela 51 Eksperyment 38 – ciasny zakręt - zmniejszona bezwładność urządzeń wykonawczych
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,1 -1 94
10 0,1 5 90
10 0,1 2 84
10 0,2 2 74
20 0,1 -3 90
20 0,2 0 98
20 0,3 0 94
20 0,3 3 80
30 0,2 -5 95
30 0,2 2 96
30 0,3 1 80
30 0,3 2 81
40 0,3 1 175
40 0,3 -1 195
40 0,3 -1 141
40 0,4 9 160
50 0,3 1 149
50 0,3 -21 360
142
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
50 0,3 -20 349
50 0,3 -20 353
60 niezaliczony
60 niezaliczony
60 0,3 -34 450
60 0,4 -41 450
Tabela 52 Eksperyment 39 – długi zakręt - zmniejszona bezwładność urządzeń wykonawczych
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓
20 0,16 0,09
20 0,16 0,08
20 0,09 0,01
20 0,09 0,01
30 0,13 0,08
30 0,13 0,09
30 0,19 0,09
30 0,17 0,11
40 0,30 0,22
40 0,29 0,21
40 0,31 0,22
40 0,33 0,27
50 0,3 0,2
50 0,29 0,23
50 0,33 0,25
50 0,38 0,21
60 0,41 0,24
60 0,29 0,25
60 0,23 0,21
60 0,56 0,26
70 0,45 0,26
70 0,69 0,22
70 0,98 0,28
70 0,99 0,26
143
Tabela 53 Eksperyment 40 – slalom – zmniejszona bezwładność urządzeń wykonawczych
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,1 77 0,12 0,08 55
30 0,2 76 0,14 0,09 37
40 0,1 78 0,16 0,13 26
40 0,1 99 0,29 0,20 26
40 0,3 110 0,31 0,28 26
40 0,3 100 0,36 0,21 26
50 0,3 98 0,32 0,22 26
50 0,3 116 0,49 0,4 25
50 0,4 125 0,79 0,61 25
50 0,3 144 0,69 0,68 26
Tabela 54 Eksperyment 41 – test łosia - zwiększona bezwładność urządzeń wykonawczych
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 0,1 5 96
80 0,1 8 80
80 0,1 5 95
80 0,1 -2 94
100 0,2 2 91
100 0,1 1 82
100 0,1 -4 96
100 0,1 1 99
120 0,1 0 98
120 0,1 0 94
120 0,2 -2 102
120 0,2 -6 100
140 0,2 6 101
140 0,3 -5 91
140 0,2 -8 90
140 0,2 9 90
160 0,4 5 92
160 0,4 -2 95
160 0,4 -1 118
160 0,4 -5 119
180 0,4 -6 101
180 0,4 -9 109
144
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
180 0,4 -1 101
180 0,4 -2 92
200 0,4 -7 129
200 0,5 -3 121
200 0,5 -5 118
200 0,5 -4 169
Tabela 55 Eksperyment 42 – ciasny zakręt - zwiększona bezwładność urządzeń wykonawczych
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,1 6 88
10 0,1 6 87
10 0,1 5 87
10 0,1 1 99
20 0,1 5 86
20 0,2 4 95
20 0,2 1 84
20 0,2 2 95
30 0,2 3 82
30 0,2 2 81
30 0,3 1 80
30 0,3 5 80
40 0,2 4 175
40 0,4 5 195
40 0,3 6 141
40 0,4 2 160
50 0,4 5 149
50 0,4 -20 350
50 0,4 -26 359
50 0,4 -16 344
60 0,5 -18 400
60 0,5 -12 391
60 niezaliczony
60 0,4 -21 441
145
Tabela 56 Eksperyment 43 – długi zakręt - zwiększona bezwładność urządzeń wykonawczych
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓
20 0,11 0,02
20 0,12 0,02
20 0,13 0,02
20 0,22 0,01
30 0,11 0,06
30 0,22 0,05
30 0,33 0,01
30 0,25 0,02
40 0,14 0,06
40 0,21 0,15
40 0,19 0,18
40 0,36 0,22
50 0,35 0,21
50 0,2 0,11
50 0,41 0,3
50 0,29 0,21
60 0,39 0,3
60 0,45 0,42
60 0,51 0,21
60 0,43 0,38
70 0,54 0,29
70 0,53 0,32
70 0,85 0,61
70 0,6 0,41
Tabela 57 Eksperyment 44 – slalom – zwiększona bezwładność urządzeń wykonawczych
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,1 87 0,21 0,19 54
30 0,2 89 0,14 0,1 39
40 0,3 89 0,26 0,16 26
40 0,3 80 0,29 0,21 26
40 0,3 90 0,3 0,23 25
40 0,3 112 0,36 0,22 26
50 0,4 98 0,39 0,29 26
50 0,3 100 0,6 0,41 25
146
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
50 0,6 109 0,7 0,66 25
50 0,3 102 1,12 0,55 26
Co ciekawe, zmiana bezwładności urządzeń wykonawczych EXECUTION_DELAY nie wpływa
praktycznie w żaden sposób na IDSA. Wartość bazowa, w samochodzie skalibrowanym to 0,1[𝑠] .
W eksperymentach 37-44, pokazanych w tabelach 50–57, najpierw obniżono tę wartość do 0,025[𝑠],
a następnie podniesiono do 0,4[𝑠]. Nie widać tu jednak żadnej różnicy w stosunku do eksperymentów
1-4. Warto jednak odnotować, że subiektywne wrażenia z jazdy były inne. Po zmniejszeniu
bezwładności, samochód wydawał się lepiej reagować na ruchy kierownicą, szczególnie w slalomie. Po
zwiększeniu bezwładności trzeba było chwilę pojeździć samochodem przed rozpoczęciem
eksperymentów, żeby przyzwyczaić się do opóźnienia. W tej ostatniej wersji opóźnienie było na tyle
duże, że sprawiało trudność. Kierowca musiał więcej uwagi poświęcić na przewidywanie zachowania
samochodu. Co ciekawe, zmiana tego parametru nie wpłynęła na obciążenie komputera. Zakłada się, że
proces wysyłania sterowania (działający 4 razy częściej lub 4 razy rzadziej) nie stanowi tu istotnego
obciążenia. Oznacza to, że IDSA może być stosowany w samochodach różnych typów, o różnych
fizycznych możliwościach, przynajmniej w zakresie bezwładności urządzeń wykonawczych.
4.4.11. Zmiana stopnia wielomianu aproksymującego
Eksperymenty 45-48, pokazane w tabelach 58-61 miały na celu zbadanie zachowania samochodu po
obniżeniu używanego stopnia wielomianu aproksymującego APPROXIMATION_DEGREE. Niestety,
podobnie jak w eksperymentach 37-44, zmiana jest tylko subiektywna.
Tabela 58 Eksperyment 45 – test łosia – stopień wielomianu aproksymującego równy 2
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 0,1 -1 99
80 0,1 -5 90
80 0,1 -4 95
80 0,1 -2 94
100 0,1 6 90
100 0,1 9 95
100 0,2 -5 8
100 0,1 -5 90
120 0,1 4 100
120 0,2 1 102
120 0,2 0 105
120 0,2 -2 99
140 0,3 0 92
140 0,3 5 98
147
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
140 0,3 8 95
140 0,3 1 85
160 0,4 2 130
160 0,4 -5 109
160 0,3 -2 106
160 0,4 -3 115
180 0,4 -6 108
180 0,3 -5 101
180 0,4 -14 102
180 0,5 -1 106
200 0,4 -8 128
200 0,5 -9 106
200 0,2 -20 106
200 0,5 -23 96
Tabela 59 Eksperyment 46 – ciasny zakręt - stopień wielomianu aproksymującego równy 2
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,1 -2 90
10 0,1 -6 91
10 0,1 -5 92
10 0,1 -4 91
20 0,1 -8 95
20 0,1 0 90
20 0,2 5 90
20 0,1 1 90
30 0,1 -1 91
30 0,2 -2 91
30 0,1 -2 98
30 0,1 4 109
40 0,2 9 164
40 0,3 -5 176
40 0,3 -5 159
40 0,3 -9 160
50 0,4 0 149
50 0,4 -22 350
50 0,3 -22 348
148
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
50 0,4 -12 395
60 0,4 -12 369
60 0,3 -19 399
60 0,4 -20 420
60 0,4 -21 380
Tabela 60 Eksperyment 47 – długi zakręt - stopień wielomianu aproksymującego równy 2
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓
20 0,11 0,02
20 0,12 0,02
20 0,13 0,02
20 0,22 0,01
30 0,25 0,02
30 0,14 0,06
30 0,21 0,15
30 0,19 0,18
40 0,36 0,22
40 0,21 0,15
40 0,19 0,18
40 0,36 0,22
50 0,21 0,15
50 0,22 0,12
50 0,49 0,36
50 0,49 0,29
60 0,49 0,29
60 0,55 0,48
60 0,59 0,29
60 0,49 0,39
70 0,54 0,2
70 0,53 0,3
70 0,89 0,7
70 0,77 0,41
149
Tabela 61 Eksperyment 48 – slalom – stopień wielomianu aproksymującego równy 2
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,1 100 0,29 0,16 55
30 0,2 97 0,19 0,12 34
40 0,3 95 0,28 0,12 26
40 0,3 98 0,4 0,2 26
40 0,3 99 0,3 0,21 26
40 0,3 100 0,36 0,21 26
50 0,4 98 0,44 0,28 26
50 0,4 100 0,8 0,33 26
50 0,4 111 0,6 0,41 26
50 0,3 101 0,66 0,5 26
Jak widać, IDSA prawidłowo realizował swoje zadania i wszystkie przejazdy skończyły się
porównywalnymi wynikami do eksperymentów 1-4. Wyłącznie w slalomie przy prędkości powyżej
40 [𝑘𝑚
ℎ] dało się odczuć spóźnioną reakcję samochodu na zmianę kierunku jazdy.
Tabela 62 Eksperyment 49 – test łosia – stopień wielomianu aproksymującego równy 5
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 0,1 5 95
80 0,1 -8 95
80 0,1 4 95
80 0,2 1 90
100 0,1 3 92
100 0,1 -9 91
100 0,1 9 84
100 0,1 -2 88
120 0,2 -3 105
120 0,1 2 102
120 0,2 -2 95
120 0,1 -2 95
140 0,2 2 99
140 0,2 2 95
140 0,2 0 99
140 0,2 0 85
160 0,3 -3 90
160 0,2 -5 90
160 0,3 -5 94
150
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
160 0,2 -5 105
180 0,3 -4 106
180 0,3 -5 109
180 0,3 -6 91
180 0,3 -5 91
200 0,4 -9 92
200 0,4 -9 91
200 0,5 -18 95
200 0,4 -21 109
Tabela 63 Eksperyment 50 – ciasny zakręt - stopień wielomianu aproksymującego równy 5
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,1 0 99
10 0,1 0 98
10 0,1 1 95
10 0,1 -3 95
20 0,1 4 85
20 0,1 -5 90
20 0,1 1 90
20 0,1 -2 102
30 0,2 1 105
30 0,2 2 99
30 0,2 -1 99
30 0,2 -2 95
40 0,2 2 165
40 0,3 2 150
40 0,3 2 149
40 0,4 1 195
50 0,4 -20 356
50 0,4 -18 352
50 0,3 -18 326
50 0,4 -23 329
60 0,5 -23 400
60 0,4 -20 411
60 0,4 -24 420
60 0,4 -21 420
151
Tabela 64 Eksperyment 51 – długi zakręt - stopień wielomianu aproksymującego równy 5
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓
20 0,4 0,02
20 0,13 0,04
20 0,36 0,05
20 0,27 0,02
30 0,34 0,02
30 0,25 0,06
30 0,5 0,15
30 0,42 0,19
40 0,45 0,23
40 0,24 0,1
40 0,52 0,15
40 0,54 0,21
50 0,44 0,25
50 0,27 0,12
50 0,58 0,38
50 0,63 0,3
60 0,46 0,3
60 0,67 0,49
60 0,72 0,33
60 0,66 0,35
70 0,43 0,29
70 0,45 0,29
70 0,95 0,59
70 0,5 0,31
Tabela 65 Eksperyment 52 – slalom – stopień wielomianu aproksymującego równy 5
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,1 111 0,41 0,14 45
30 0,2 85 0,43 0,14 34
40 0,3 105 0,33 0,13 26
40 0,3 102 0,52 0,21 25
40 0,3 94 0,35 0,22 26
40 0,3 92 0,64 0,24 26
50 0,4 119 0,44 0,25 26
50 0,5 116 0,42 0,29 26
152
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
50 0,4 106 0,55 0,29 25
50 0,5 118 0,72 0,33 25
Następne eksperymenty 49-52, zaprezentowane w tabelach 62-65 również nie wprowadziły zmian
w wynikach widocznych w tabeli. Należy jednak odnotować, że w próbie łosia, po pierwszej zmianie
pasa i przed rozpoczęciem powrotu na pierwotny pas, samochód samoistnie zmieniał kierunek ruchu
(gwałtownie choć nieznacznie skręcał naprzemiennie w obie strony). Problem ustępował po kolejnym
skręceniu kierownicą, wymuszonym koniecznością powrotu na pierwotny pas ruchu. W celu
dokładniejszego zbadania tej reakcji, podjęto próbę pojedynczej gwałtownej zmiany pasa ruchu, bez
powrotu na pas pierwotny. W tej próbie okazało się, że odkryte zachowanie samo wygasza się po ok. 2
sekundach. Najprawdopodobniej wynika ono z problemu opisanego w punkcie 4.3.1 w sekcji „Stopień
wielomianu reprezentującego funkcję ciągłą”. Warto jeszcze dodać, że o ile w eksperymentach 45-48
nie zaobserwowano zmiany obciążenia komputera, to podczas przeprowadzania eksperymentów 49-52
użycie procesora wzrosło o około 4%. Wynika to z konieczności dłuższego obliczania współczynników
funkcji aproksymujących.
Eksperyment 53 miał być kolejną serią eksperymentów po podniesieniu parametru
APPROXIMATION_DEGREE do 15. Niestety okazało się, że takim pojazdem nie można wykonać
przejazdu żadną trasą testową i z żadną prędkością. Podobnie, jak w eksperymencie 49, samochód
skręcał samoistnie i gwałtownie, jednak tym razem zakręty były głębsze i nie wygaszały się. Oprócz
tego pojazd w opóźnieniem reagował na skręty kierownicy oraz naciskanie pedałów. Problem może
wynikać z metody aproksymacji albo opóźnień w obliczeniach. Podczas tej próby zużycie procesora
wzrosło do 100%, więc zarządzanie zadaniami wbudowane w IDSA było zaburzane przez planistę
systemu operacyjnego, który w tej sytuacji nie nadawał IDSA wymaganego priorytetu. Próba
poprawienia pracy planisty, poprzez nadanie maszynie wirtualnej Java wyższego priorytetu w systemie
operacyjnym, nie przyniosła pożądanego efektu.
4.4.12. Zmniejszona liczba wątków aproksymujących
Bazowo IDSA skonfigurowano do używania 8 wątków aproksymujących. Eksperymenty 54-57
pokazały, co się stanie po zmniejszeniu wartości APPROXIMATIPON_THREAD_POOL do 3. Warto
wspomnieć, że redukcja ilości wątków do 4 nie spowodowała tak gwałtownych zmian (jedynie utrudniła
przejazd przez slalom), a redukcja do 2 uniemożliwiła jakiekolwiek używanie samochodu. Opóźnienie
w pracy algorytmu było wtedy tak duże, że dopiero po kilkusekundowym trzymaniu pedału gazu
samochód rozpoznawał polecenie i ruszał.
Tabela 66 Eksperyment 54 – test łosia - zmniejszona liczba wątków aproksymujących
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 0,2 2 113
80 0,2 2 87
153
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 0,2 14 110
80 0,2 -1 95
100 0,4 -12 119
100 0,3 3 111
100 0,4 -4 108
100 0,3 4 120
120 0,2 -6 114
120 0,3 -2 114
120 0,5 3 109
120 0,5 7 89
140 0,5 6 90
140 0,4 -5 98
140 0,2 12 80
140 0,2 6 117
160 0,6 2 97
160 0,5 5 100
160 0,5 5 82
160 0,5 4 85
Tabela 67 Eksperyment 55 – ciasny zakręt - zmniejszona liczba wątków aproksymujących
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,1 -8 99
10 0,1 3 83
10 0,1 -5 83
10 0,1 -1 83
20 0,1 -3 81
20 0,1 -7 116
20 0,2 7 81
20 0,2 8 110
30 0,2 9 116
30 0,2 4 86
30 0,4 7 118
30 0,3 -7 89
40 0,3 3 100
40 0,4 5 113
40 0,4 4 117
154
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
40 0,3 2 84
Tabela 68 Eksperyment 56 – długi zakręt - zmniejszona liczba wątków aproksymujących
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓
20 0,36 0,24
20 0,55 0,25
20 0,48 0,27
20 0,37 0,29
30 0,46 0,31
30 0,59 0,33
30 0,52 0,35
30 0,63 0,37
40 0,72 0,39
40 0,77 0,41
40 0,78 0,43
40 0,62 0,45
50 niezaliczony
50 niezaliczony
50 niezaliczony
50 0,78 0,55
60 niezaliczony
60 0,78 0,61
60 niezaliczony
60 niezaliczony
70 niezaliczony
70 niezaliczony
70 0,98 0,66
70 niezaliczony
Tabela 69 Eksperyment 57 – slalom – zmniejszona liczba wątków aproksymujących
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,1 85 0,50 0,24 55
30 0,2 78 0,55 0,25 37
30 0,2 74 0,38 0,27 37
30 0,2 80 0,39 0,29 38
155
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
30 0,3 100 0,47 0,31 38
Przy 3 wątkach, w próbie łosia (tabela 66), samochód nie radził sobie przy wyższych prędkościach.
Maksymalna prędkość, przy której udało się wykonać manewr, to 160 [𝑘𝑚
ℎ] . Już przy niższych
prędkościach widać minimalnie większy przechył nadwozia 𝑞1. Wynikał on z opóźnienia w sterowaniu
zawieszeniem, przez co musiało ono kompensować pojawiający się przechył zamiast mu zapobiegać.
Dokładnie te same wnioski można wysnuć z próby przejazdu przez ciasny zakręt (tabela 67). Za to jazda
długim zakrętem (tabela 68) przyniosła nowy wniosek – pojazd zachowywał się dobrze tak długo, jak
długo kierownica i pedały nie zmieniały swojego położenia podczas zakrętu. Wystarczyła jednak
drobna korekta toru jazdy i IDSA nie potrafił sobie z nią poradzić. Slalom (tabela 69) potwierdził tylko
wnioski z eksperymentów 54 i 55. Samochód zachowywał się poprawnie przy niskich prędkościach,
jednak już przy 40 [𝑘𝑚
ℎ] IDSA ignorował drugi słupek oraz polecenie ominięcia go.
4.4.13. Zmiana liczby generacji w procesie predykcji trajektorii
W wersji skalibrowanej IDSA pracuje przez maksymalnie 0,1[𝑠] w celu poprawienia trajektorii ruchu
i uniknięcia kolizji (parametr TRAJECTORY_EVOLUTION_TIME). W eksperymentach 58-61
zmniejszono tę wartość do 0,025[𝑠].
Tabela 70 Eksperyment 58 – test łosia - zmniejszona liczba generacji w procesie predykcji trajektorii
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 0,1 -2 94
80 0,1 -1 101
80 0,1 0 107
80 0,1 -3 92
100 0,1 2 93
100 0,1 5 86
100 0,2 2 85
100 0,1 -5 102
120 0,1 -2 111
120 0,1 -2 97
120 0,2 1 120
120 0,2 2 113
140 0,3 3 100
140 0,3 -5 113
140 0,4 -2 97
140 0,4 -1 102
160 0,3 -5 114
156
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
160 0,3 2 116
160 0,4 0 117
160 0,4 0 112
180 0,3 2 96
180 0,3 -5 115
180 0,3 -3 103
180 0,4 -6 92
200 0,4 -5 96
200 0,4 -2 105
200 0,3 1 120
200 0,3 -8 90
Tabela 71 Eksperyment 59 – ciasny zakręt - zmniejszona liczba generacji w procesie predykcji trajektorii
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,1 3 94
10 0,1 -5 93
10 0,1 1 95
10 0,1 1 79
20 0,2 3 94
20 0,1 2 82
20 0,1 -3 113
20 0,1 1 95
30 0,1 4 78
30 0,2 -2 93
30 0,2 3 105
30 0,1 -1 96
40 0,12 2 184
40 0,3 -1 175
40 0,2 4 178
40 0,2 3 191
50 0,2 -20 326
50 0,3 -23 392
50 0,2 -32 397
50 0,1 -28 401
60 0,3 -31 377
60 0,4 -37 403
157
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
60 0,4 -39 439
60 0,4 -37 344
Tabela 72 Eksperyment 60 – długi zakręt - zmniejszona liczba generacji w procesie predykcji trajektorii
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓
20 0,65 0,06
20 0,4 0,06
20 0,78 0,07
20 2,17 0,08
30 0,71 0,24
30 1,25 0,19
30 1,13 0,09
30 1,28 0,17
40 1,53 0,2
40 1,64 0,21
40 0,41 0,24
40 1,87 0,26
50 1,88 0,25
50 1,6 0,25
50 1,59 0,21
50 1,92 0,21
60 0,55 0,28
60 1,3 0,27
60 0,88 0,23
60 0,57 0,24
70 1,09 0,27
70 0,63 0,26
70 0,76 0,25
70 0,36 0,24
Tabela 73 Eksperyment 61 – slalom – zmniejszona liczba generacji w procesie predykcji trajektorii
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,2 75 0,09 0,03 55
30 0,2 75 0,24 0,1 35
40 niezaliczony
158
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
40 0,2 84 0,21 0,14 27
40 niezaliczony
40 niezaliczony
50 0,2 100 0,44 0,32 27
50 niezaliczony
50 niezaliczony
50 0,3 112 0,48 0,35 27
Jak widać w tabelach 70-72, nie wpłynęło to na ocenę IDSA. Subiektywnie samochód zachowywał się
trochę inaczej, jednak obiektywnie trudno było tę różnicę opisać. Dopiero w tabeli 73 widać ją wyraźnie
– samochód nie zaliczył kilku prób przy różnych prędkościach. Po analizie danych zebranych podczas
jazdy okazało się, że w procesie predykcji trajektorii nie udawało się wyznaczyć żadnej określonej
trajektorii. W eksperymentach 58-60 zaobserwowano to tylko przez ok. 5% czasu całego przejazdu, a
w eksperymencie 61 - przez ok. 75%. Oznacza to, że IDSA tracił swoją zdolność do poprawiania
trajektorii i realizował trajektorię zadaną bezpośrednio przez kierowcę. Różnica w ilości zaliczonych
prób świadczy o wydajności procesu poprawiania trajektorii oraz spadku jakości algorytmu, kiedy ten
proces nie działa prawidłowo. Jednak dzieje się tak tylko w sytuacji, kiedy na drodze znajdują się
przeszkody. Warto dodać, że po obniżeniu czasu pracy algorytmu ewolucyjnego, zużycie CPU spadło
o około 40%.
Tabela 74 Eksperyment 62 – test łosia - zwiększona liczba generacji w procesie predykcji trajektorii
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
80 0,1 2 94
80 0,1 -3 101
80 0,1 2 107
80 0,1 -5 92
100 0,2 -2 93
100 0,2 -3 86
100 0,1 2 85
100 0,1 0 102
120 0,1 2 111
120 0,1 3 97
120 0,2 -2 120
120 0,2 -1 113
140 0,2 -2 100
140 0,3 -1 113
140 0,3 0 97
159
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
140 0,4 2 102
160 0,3 0 114
160 0,2 2 116
160 0,2 -3 117
160 0,3 -3 112
180 0,2 3 96
180 0,3 2 115
180 0,4 1 103
180 0,4 -2 92
200 0,4 -3 96
200 0,3 4 105
200 0,4 -2 120
200 0,3 3 90
Tabela 75 Eksperyment 63 – ciasny zakręt - zwiększona liczba generacji w procesie predykcji trajektorii
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
10 0,1 -2 111
10 0,1 -1 95
10 0,2 2 93
10 0,1 -3 111
20 0,1 0 98
20 0,2 4 103
20 0,1 4 79
20 0,2 0 107
30 0,3 -2 97
30 0,2 -3 109
30 0,3 -5 87
30 0,2 -3 113
40 0,3 -4 189
40 0,3 0 188
40 0,2 2 200
40 0,3 2 192
50 0,3 -21 362
50 0,2 -23 449
50 0,3 -23 343
50 0,3 -22 447
160
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑
60 0,4 -34 356
60 0,3 -35 412
60 0,2 -36 415
60 0,3 -39 368
Tabela 76 Eksperyment 64 – długi zakręt - zwiększona liczba generacji w procesie predykcji trajektorii
Prędkość rozpoczęcia manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟒 𝒒𝟓
20 1,62 0,06
20 0,67 0,05
20 1,84 0,07
20 1,92 0,07
30 1,93 0,22
30 0,68 0,25
30 1,74 0,24
30 1,63 0,2
40 0,6 0,27
40 1,29 0,2
40 1,6 0,21
40 1,28 0,24
50 1,34 0,21
50 0,37 0,25
50 0,89 0,27
50 0,58 0,2
60 1,54 0,22
60 1,67 0,27
60 0,84 0,26
60 1,9 0,24
70 1,31 0,22
70 1,61 0,24
70 1,5 0,25
70 1,65 0,27
161
Tabela 77 Eksperyment 65 – slalom – zwiększona liczba generacji w procesie predykcji trajektorii
Prędkość
rozpoczęcia
manewru [𝒌𝒎
𝒉]
Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
20 0,2 79 0,14 0,05 55
30 0,3 78 0,18 0,08 36
40 0,2 89 0,16 0,08 26
40 0,2 99 0,3 0,18 26
40 0,3 82 0,25 0,14 27
40 0,2 89 0,19 0,14 26
50 0,3 109 0,49 0,35 25
50 0,3 90 0,67 0,45 26
50 0,2 101 0,66 0,51 25
50 0,2 103 0,71 0,4 26
Tabele 74-77 przedstawiają wyniki eksperymentów 62-65, podczas których zwiększono maksymalny
czas poprawiania trajektorii TRAJECTORY_EVOLUTION_TIME do 0,4[𝑠]. Spodziewano się tutaj, że
obliczone trajektorie będą lepszej jakości, jednak dostępne zbyt późno, co powinno obniżyć ocenę
IDSA. Należy jednak pamiętać, że trajektorie obliczone poprzednio ciągle były dostępne, więc
samochód cały czas je realizował. Oznacza to, że opóźnienie w analizie trajektorii wprowadziło
opóźnienie w realizacji poleceń kierowcy, wyczuwalne wyłącznie dla gwałtownych manewrów, jednak
opóźnienie to kierowca był w stanie skompensować samodzielnie, podobnie jak w eksperymentach 41-
44.
4.5. Analiza wyników badań
W niniejszym podrozdziale dokonano analizy zbiorczej i porównawczej wyników osiągniętych
w podrozdziale 4.4.
4.5.1. Niezaliczone przejazdy
W celu lepszego zrozumienia eksperymentów 5-65 zebrano wszystkie maksymalne prędkości
początkowe, z którymi udało się pokonać trasę testową – dla każdego typu trasy osobno. Prędkość
początkowa to prędkość pojazdu w chwili rozpoczęcia wykonywania badanego manewru wyrażona
w [𝑘𝑚
ℎ]. Na rysunkach 53-56 pokazano po lewej stronie maksymalne prędkości początkowe dla pojazdu
sterowanego z wykorzystaniem tradycyjnych systemów wsparcia, a po prawej stronie maksymalne
prędkości początkowe realizowane przez pojazd sterowany z pomocą IDSA. Kolorem niebieskim
(samochód referencyjny) i pomarańczowym (samochód sterowany z wykorzystaniem IDSA) oznaczono
maksymalną prędkość wejściową samochodów przed pierwszym niezaliczonym przejazdem, a kolorem
szarym maksymalną badaną prędkość wejściową przed czterema niezaliczonymi przejazdami przy tej
samej prędkości i tym samym przed przerwaniem eksperymentu. Przed ich analizą należy pamiętać,
że niektóre eksperymenty były wykonywane wyłącznie jednym z badanych pojazdów.
162
Rysunek 53 Porównanie prędkości maksymalnych dla testu łosia
Na rysunku 53 porównano prędkości maksymalne w teście łosia. Warto zauważyć, że pojazd sterowany
z wykorzystaniem istniejących systemów wsparcia kierowcy, po nieudanych przejazdach z niższą
prędkością bardzo często pozwalał na udane przejazdy z prędkością wyższą. Widać to w szczególności
w eksperymencie 1. Pojazd sterowany przez IDSA dużo częściej poddawał się po raz pierwszy dopiero
przy granicy swoich możliwości. Oprócz tego na wykresie po prawej stronie widać dużo więcej
wyższych prędkości. Właściwie wyraźnie niższe prędkości widoczne są wyłącznie w eksperymentach
25 (zwiększona masa pojazdu) i 29 (zwiększona masa i przesunięty środek ciężkości). Samochód
referencyjny radził sobie znacznie gorzej w przejazdach tego typu także dla innych zakłóceń.
0
50
100
150
200
250
1 5 9 13 17 21 25 29 33
Prę
dko
ść [
km/h
]
Numer eksperymentu
Pojazd referencyjny
Przejazd bez problemów Maksymalna prędkość
0
50
100
150
200
250
1 25 29 33 37 41 45 49 54 58 62
Prę
dko
ść [
km/h
]
Numer eksperymentu
Pojazd sterowany przez IDSA
Przejazd bez problemów Maksymalna prędkość
163
Rysunek 54 Porównanie prędkości maksymalnych dla przejazdu przez ciasny zakręt
W próbie ciasnego zakrętu (rysunek 54) trudno dopatrzyć się ciekawych wyników. Dla wszystkich
przejazdów widać wyraźnie, że do prędkości 30 [𝑘𝑚
ℎ] dla samochodu referencyjnego lub 40 [
𝑘𝑚
ℎ]
dla samochodu sterowanego przez IDSA, przejazd testową trasą nie stanowił żadnego wyzwania.
Z drugiej strony żadne z testowanych rozwiązań nie pozwoliło podnieść tych wyników w stopniu
istotnym. Oznacza to, że w tym teście najważniejsze okazały się właściwości fizycznie pojazdu –
geometria zawieszenia i opony. Nieznaczną przewagę IDSA można wytłumaczyć jego proaktywnym
działaniem, a co za tym idzie, redukcją przechyłu, która ostatecznie powodowała minimalnie lepszy
rozkład masy na poszczególne opony, i dzięki temu – minimalnie lepszą przyczepność. Warto jeszcze
odnotować, że samochód referencyjny zakończył przejazdy z lepszymi wynikami w eksperymentach
14, 18, 22, 26 oraz 34, niż po kalibracji. Samochód sterowany przez IDSA zakończył przejazdy
z wynikami lepszymi od pojazdu skalibrowanego w eksperymentach 46, 50, 59 i 63. Niestety w tych
przypadkach uzyskane wyniki mogą być powiązane z większym doświadczeniem kierowcy, który lepiej
sobie radził z opanowaniem pojazdu.
0
10
20
30
40
50
60
2 6 10 14 18 22 26 30 34
Prę
dko
ść [
km/h
]
Numer eksperymentu
Pojazd referencyjny
Przejazd bez problemów Maksymalna prędkość
0
10
20
30
40
50
60
70
2 26 30 34 38 42 46 50 55 59 63
Prę
dko
ść [
km/h
]
Numer eksperymentu
Pojazd sterowany przez IDSA
Przejazd bez problemów Maksymalna prędkość
164
Rysunek 55 Porównanie prędkości maksymalnych dla przejazdu przez długi zakręt
Podczas analizy prędkości maksymalnych uzyskanych przez samochody w eksperymencie polegającym
na przejeździe przez długi zakręt (rysunek 55), wyraźnie rzuca się w oczy, że samochód referencyjny
poradził sobie wyraźnie lepiej po kalibracji, niż w jakimkolwiek innym przypadku. Pojazd sterowany
przez IDSA okazał się znacznie mniej czuły na zmiany parametrów, choć warto odnotować, że w kilku
eksperymentach uzyskał wyraźnie gorsze wyniki – przykładowo w eksperymencie 35 ponad dwa razy
gorsze niż w eksperymencie 3. Wynika to z tego, że podczas tego eksperymentu nie dokonuje się
żadnych gwałtownych manewrów, więc zdolność szybkiej adaptacji do zmieniających się warunków
zaburzona w wyniku zmiany jego parametrów, nie była w tym badaniu kluczowa. Dopiero zmiana masy
i jej rozkładu (eksperymenty 27 i 31) wywarły wyraźny wpływ na IDSA. Wyraźne pogorszenie wyniku
zanotowano także przy użyciu opon o gorszej przyczepności, choć warto tu zaznaczyć, że osiągnięty
wynik w dalszym ciągu nie jest gorszy od wyniku samochodu referencyjnego.
0
10
20
30
40
50
60
70
80
3 7 11 15 19 23 27 31 35
Prę
dko
ść [
km/h
]
Numer eksperymentu
Pojazd referencyjny
Przejazd bez problemów Maksymalna prędkość
0
10
20
30
40
50
60
70
80
3 27 31 35 39 43 47 51 56 60 64
Prę
dko
ść [
km/h
]
Numer eksperymentu
Pojazd sterowany przez IDSA
Przejazd bez problemów Maksymalna prędkość
165
Rysunek 56 Porównanie maksymalnych prędkości początkowych dla przejazdu przez slalom
Ostatnie porównanie, ukazane na rysunku 56, dotyczy przejazdu przez slalom. Tutaj, podobnie jak
w przypadku przejazdu przez ciasny zakręt, kluczowe okazały się parametry fizycznie pojazdu,
a bezpieczna prędkość jest właściwie stała dla większości eksperymentów i wynosi ok. 30 − 40 [𝑘𝑚
ℎ].
Podczas tych prób zauważono inną ciekawą zależność, pokazaną na rysunku 57, prezentującym
wszystkie czasy przejazdu przez slalom. Zawiera on wartości średnie (krzyżyki), pierwszy i trzeci
kwartyl (zakresy prostokątów), medianę (pozioma linia w prostokątach) oraz wartości minimalne i
maksymalne. Widać tutaj niewielki wpływ zmiany prędkości wejściowej z 40 [𝑘𝑚
ℎ] na 50 [
𝑘𝑚
ℎ] na czas
przejazdu. Oznacza to, że obydwa badane rozwiązania w podobny sposób ograniczały prędkość
do takiej, z którą przejazd był jeszcze możliwy i jednocześnie potwierdza, że ta bezpieczna prędkość
nie przekracza 40 [𝑘𝑚
ℎ] . Każda próba wjechania w slalom z wyższą prędkością kończyła się
niepowodzeniem, ponieważ żadne z badanych rozwiązań nie było w stanie zredukować prędkości
z 60 [𝑘𝑚
ℎ] do bezpiecznych 40 [
𝑘𝑚
ℎ] przed drugim słupkiem.
0
10
20
30
40
50
60
4 8 12 16 20 24 28 32 36
Prę
dko
ść [
km/h
]
Numer eksperymentu
Pojazd referencyjny
Przejazd bez problemów Maksymalna prędkość
0
10
20
30
40
50
60
4 28 32 36 40 44 48 52 57 61 65
Prę
dko
ść [
km/h
]
Numer eksperymentu
Pojazd sterowany przez IDSA
Przejazd bez problemów Maksymalna prędkość
166
Rysunek 57 Czas przejazdu przez slalom w zależności od prędkości początkowej
4.5.2. Pozostałe wskaźniki cząstkowe
Tabela 78 przedstawia uśrednione wyniki z przejazdów, w których brały udział obydwa badane pojazdy
w takich samych warunkach, zaokrąglone do dwóch miejsc po przecinku. Przede wszystkim należy
zwrócić uwagę na komórki tabeli zaznaczone kolorem szarym, oznaczające prędkości, dla których
samochodem referencyjnym nie udało się pokonać trasy, a samochód sterowany z użyciem IDSA
jeszcze sobie z tym poradził. W tej tabeli widać 7 takich prędkości, co stanowi 10,3% wszystkich
scenariuszy testowych. Oprócz tego kolorem zielonym zaznaczono te wyniki, które są lepsze
w bezpośrednim porównaniu pomiędzy samochodem referencyjnym i samochodem sterowanym przez
IDSA. Po analizie wszystkich wyników widać, że samochód referencyjny zaliczył 349 z 406 prób,
a samochód sterowany z wykorzystaniem IDSA - 792 z 820 prób.
Tabela 78 Porównanie średnich wyników z przejazdów powtarzanych w takich samych warunkach
Nr
ekspery
-mentu
Prędkość
początko
-wa
[km/h]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔 𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
1 80 1,68 -6,00 175,50 0,13 0,50 86,00
1 100 1,65 -7,00 90,75 0,13 2,75 87,50
1 120 1,75 -6,00 147,25 0,20 2,00 93,75
1 140 1,87 -38,00 141,33 0,25 2,25 100,75
1 160 1,97 -49,33 140,67 0,28 0,75 98,00
1 180 2,10 -68,00 165,00 0,30 1,50 96,25
1 200 1,95 -25,00 73,50 0,28 -1,00 105,50
2 10 0,28 0,25 282,75 0,18 0,50 96,75
2 20 0,85 0,50 355,00 0,23 0,50 96,50
2 30 1,20 1,25 264,75 0,18 2,00 94,00
167
Nr
ekspery
-mentu
Prędkość
początko
-wa
[km/h]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔 𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
2 40 1,53 -10,00 270,67 0,28 -2,00 186,75
2 50 1,90 -28,00 450,00 0,27 -14,67 275,67
2 60 0,40 -39,67 450,00
3 20 0,23 0,01 0,07 0,06
3 30 0,41 0,06 0,12 0,10
3 40 0,71 0,19 0,29 0,25
3 50 1,84 0,23 0,25 0,22
3 60 2,62 0,26 0,30 0,26
3 70 2,48 0,26 0,26 0,22
4 20 0,90 48,00 0,35 0,00 54,00 0,20 76,00 0,12 0,10 55,00
4 30 1,20 46,00 0,37 0,00 36,00 0,20 74,00 0,13 0,09 36,00
4 40 1,33 68,75 1,23 0,35 26,50 0,23 94,50 0,35 0,26 26,75
4 50 1,43 96,75 1,48 0,74 25,00 0,28 111,25 0,44 0,34 25,50
25 70 1,50 2,00 150,00 0,30 2,00 90,00
25 80 1,63 -0,50 162,75 0,30 -1,00 93,50
25 90 1,65 -10,50 166,25 0,33 2,25 90,75
25 100 1,80 -21,50 216,50 0,40 1,25 94,75
25 110 0,40 -1,00 89,25
25 120 0,43 2,33 90,00
26 20 0,93 -0,50 248,75 0,40 -4,00 100,00
26 30 1,28 -1,75 282,50 0,43 -6,50 94,75
26 40 1,53 -14,25 281,00 0,50 -7,75 185,75
27 20 0,30 0,21 0,18 0,10
27 30 0,38 0,21 0,19 0,12
27 40 1,02 0,52 0,35 0,22
27 50 0,36 0,28
28 30 2,20 97,00 0,66 0,02 37,00 0,30 79,00 0,15 0,10 37,00
28 40 2,55 116,50 1,21 0,18 28,00 0,40 81,50 0,67 0,12 28,00
29 40 2,40 -11,00 156,00 1,00 2,00 89,00
29 50 2,88 -14,75 184,25 1,15 -0,50 90,00
29 60 5,68 -18,25 231,25 1,25 -8,00 90,00
29 70 1,20 -15,50 97,00
30 20 1,60 2,00 260,00 0,80 0,00 99,00
30 30 1,95 -6,50 254,25 0,60 -2,00 98,50
30 40 2,30 -14,00 290,00 0,85 -12,25 190,50
30 50 2,25 -26,50 265,50 0,40 -9,50 180,00
31 20 1,81 0,21 0,21 0,11
31 30 1,97 0,73 0,25 0,35
168
Nr
ekspery
-mentu
Prędkość
początko
-wa
[km/h]
Samochód referencyjny Samochód sterowany
z wykorzystaniem IDSA
𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔 𝒒𝟏 𝒒𝟐 𝒒𝟑 𝒒𝟒 𝒒𝟓 𝒒𝟔
31 40 2,41 0,43 0,55 0,23
31 50 0,86 0,30
32 20 1,60 114,00 3,60 0,32 60,00 0,40 94,00 0,89 0,21 61,00
33 90 1,60 -2,00 140,00 0,10 -2,00 95,00
33 100 1,60 -2,25 130,00 0,10 -6,75 106,50
33 110 1,63 -1,50 139,00 0,13 -5,50 105,25
33 120 1,60 -14,25 140,75 0,15 -15,25 102,25
33 130 1,87 -11,00 177,00 0,13 -13,75 104,50
33 140 1,95 -10,50 153,50 0,10 -23,75 100,25
33 150 2,07 -22,67 199,67 0,10 -26,75 103,25
33 160 0,13 -30,67 106,67
34 20 0,80 0,00 359,00 0,10 3,00 100,00
34 30 1,23 -0,75 360,75 0,15 0,25 97,25
34 40 1,48 -21,00 374,25 0,20 -8,00 195,25
34 50 1,70 -31,50 371,00 0,33 -16,75 310,25
35 20 0,34 0,03 0,44 0,21
35 30 0,57 0,12 0,60 0,34
36 30 1,00 100,00 0,84 0,09 37,00 0,20 95,00 0,97 0,13 38,00
36 40 1,30 94,00 1,06 0,31 36,00 0,23 102,25 0,91 0,33 28,00
36 50 1,48 131,75 1,03 0,44 35,50 0,37 98,67 1,04 0,35 27,00
Wykres na rysunku 58 przedstawia procentową liczbę lepszych rezultatów w bezpośrednich
porównaniach. Wartości w nawiasach pod kolumnami przedstawiają liczbę wszystkich porównywanych
wyników (uśrednionych z wszystkich przejazdów). Jak widać, samochód referencyjny okazał się lepszy
wyłącznie w porównaniu wskaźnika oceny 𝑞6, czyli osiągał lepsze czasy przejazdu przez slalom.
169
Rysunek 58 Porównanie liczby lepszych wyników
Tabela 79 Miary statystyczne
Wskaźnik
oceny średnia odchylenie standardowe mediana
Samochód
referencyjny
𝒒𝟏 1,72 0,76 1,63
𝒒𝟐 -13,21 15,13 -10,50
𝒒𝟑 194,98 96,62 165,00
𝒒𝟒 1,21 0,88 1,03
𝒒𝟓 0,25 0,20 0,21
𝒒𝟔 37,50 10,75 36,00
Samochód
sterowany
z wykorzystanie
m IDSA
𝒒𝟏 0,35 0,28 0,28
𝒒𝟐 -5,92 9,89 -1,50
𝒒𝟑 118,51 65,35 97,13
𝒒𝟒 0,42 0,29 0,33
𝒒𝟓 0,21 0,09 0,22
𝒒𝟔 36,23 11,81 32,00
Tabela 79 prezentuje średnią arytmetyczną, odchylenie standardowe i medianę obliczone na podstawie
wyników z tabeli 78. Po raz kolejny kolorem zielonym zaznaczono wartości lepsze. W tym przypadku
widać nie tylko wyraźną przewagę w liczbie bezpośrednich porównań na korzyść samochodu
z wykorzystaniem IDSA, ale także różnice tych wartości. Przykładowo średnie przechylenie samochodu
(wskaźnik oceny 𝑞1 ) wynosi 1,72 dla samochodu referencyjnego i tylko 0,35 dla samochodu
sterowanego z wykorzystaniem IDSA, przy kilkukrotnie mniejszym odchyleniu standardowym.
W odróżnieniu od wykresu na rysunku 58, w tabeli 79 pokazane już są konkretne liczby, więc widać
w niej wyraźnie, że w dwóch sytuacjach, w których samochód sterowany z wykorzystaniem IDSA był
gorszy od samochodu referencyjnego, różnica wyników jest niewielka (10,75 w porównaniu do 11,81
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
q_1 (52) q_2 (42) q_3 (52) q_4 (26) q_5 (26) q_6 (10)
Samochód referencyjny Samochód sterowany przez IDSA wyniki równe
170
dla odchylenia standardowego wskaźnika 𝑞6 oraz 0,21 w porównaniu do 0,22 dla mediany wskaźnika
𝑞5).
4.5.3. Wskaźniki zagregowane
Tabela 80 porównuje zagregowane wskaźniki bezpieczeństwa i komfortu wprowadzone w punkcie
4.1.2.
Tabela 80 Porównanie sposobu sterowania pod względem wskaźników zagregowanych
Nr
eksperymentu
Prędkość
początkowa
[km/h]
Samochód
referencyjny
Samochód
sterowany
z wykorzystaniem
IDSA
𝑸𝑩 𝑸𝑲 𝑸𝑩 𝑸𝑲
1 80 0,206 0,725 0,255 0,967
1 100 0,243 0,790 0,254 0,966
1 120 0,219 0,739 0,251 0,954
1 140 0,179 0,683 0,248 0,943
1 160 0,164 0,656 0,249 0,942
1 180 0,128 0,597 0,250 0,941
1 200 0,227 0,744 0,245 0,935
2 10 0,166 0,805 0,250 0,954
2 20 0,134 0,690 0,250 0,949
2 30 0,174 0,719 0,251 0,956
2 40 0,158 0,665 0,207 0,873
2 50 0,053 0,465 0,150 0,790
2 60 0,000 0,038 0,609
3 20 0,616 0,614
3 30 0,579 0,594
3 40 0,500 0,522
3 50 0,369 0,537
3 60 0,278 0,517
3 70 0,292 0,536
4 20 0,806 0,812 0,778 0,867
4 30 0,850 0,782 0,829 0,868
4 40 0,647 0,751 0,758 0,850
4 50 0,468 0,719 0,715 0,832
25 70 0,226 0,772 0,253 0,946
25 80 0,220 0,748 0,250 0,942
25 90 0,205 0,729 0,253 0,942
25 100 0,167 0,659 0,251 0,932
25 110 0,000 0,252 0,934
25 120 0,000 0,253 0,932
171
Nr
eksperymentu
Prędkość
początkowa
[km/h]
Samochód
referencyjny
Samochód
sterowany
z wykorzystaniem
IDSA
𝑸𝑩 𝑸𝑲 𝑸𝑩 𝑸𝑲
26 20 0,181 0,759 0,243 0,922
26 30 0,164 0,695 0,242 0,919
26 40 0,148 0,651 0,199 0,842
27 20 0,535 0,588
27 30 0,527 0,580
27 40 0,347 0,526
27 50 0,000 0,503
28 30 0,788 0,636 0,819 0,854
28 40 0,686 0,584 0,780 0,841
29 40 0,209 0,655 0,253 0,871
29 50 0,191 0,577 0,252 0,854
29 60 0,165 0,236 0,242 0,832
29 70 0,000 0,000 0,229 0,821
30 20 0,176 0,680 0,249 0,885
30 30 0,170 0,637 0,246 0,904
30 40 0,144 0,562 0,191 0,794
30 50 0,139 0,567 0,200 0,854
31 20 0,380 0,581
31 30 0,172 0,489
31 40 0,237 0,502
31 50 0,000 0,444
32 20 0,309 0,688 0,635 0,832
33 90 0,228 0,766 0,248 0,961
33 100 0,232 0,773 0,236 0,945
33 110 0,229 0,764 0,239 0,945
33 120 0,211 0,747 0,227 0,930
33 130 0,199 0,696 0,228 0,933
33 140 0,210 0,706 0,217 0,925
33 150 0,173 0,641 0,211 0,918
33 160 0,000 0,204 0,907
34 20 0,132 0,692 0,248 0,960
34 30 0,130 0,644 0,250 0,957
34 40 0,097 0,577 0,195 0,867
34 50 0,084 0,540 0,131 0,754
35 20 0,597 0,521
35 30 0,541 0,456
172
Nr
eksperymentu
Prędkość
początkowa
[km/h]
Samochód
referencyjny
Samochód
sterowany
z wykorzystaniem
IDSA
𝑸𝑩 𝑸𝑲 𝑸𝑩 𝑸𝑲
36 30 0,742 0,763 0,714 0,853
36 40 0,643 0,735 0,668 0,844
36 50 0,583 0,688 0,651 0,832
Bezpieczeństwo 𝑄𝐵 dało się ocenić w 68 przypadkach, a komfort 𝑄𝐾 w 47. Jak widać, samochód
sterowany przez IDSA w każdym badanym przypadku okazał się być bardziej komfortowy. Udało się
to dzięki proaktywnej redukcji przechyłu i aktywnemu układowi kierowniczemu bez fizycznego
połączenia kierownicy z kołami. Pod względem bezpieczeństwa przewaga nie jest już tak jednoznaczna,
ponieważ samochód referencyjny okazał się lepszy pod względem wskaźnika 𝑄𝐵 w 6 bezpośrednich
porównaniach. W eksperymencie 3 wartość 𝑄𝐵 jest wyższa dla samochodu referencyjnego tylko o dwie
tysięczne i tylko przy najniższej badanej prędkości. W eksperymencie 4 lepszy wynik samochodu
referencyjnego odnotowano również przy niskich prędkościach, gdzie przewaga IDSA nie ma tak
dużego znaczenia. Interesujące są rezultaty eksperymentów 35 i 36. Dotyczą one przejazdów ze
zmniejszoną przyczepnością. Jak widać, w takich sytuacjach IDSA nie poradził sobie z rozpoznaniem i
neutralizacją zagrożenia. W celu poprawy tej sytuacji należałoby uwzględnić przyspieszenia działające
na samochód w procesie obliczania trajektorii jego ruchu.
Tabela 81 Miary statystyczne wskaźników zagregowanych
Samochód
referencyjny
Samochód
sterowany
z wykorzystaniem
IDSA
𝑸𝑩 𝑸𝑲 𝑸𝑩 𝑸𝑲
Wartość minimalna 0 0 0,038 0,609
Wartość maksymalna 0,850 0,812 0,829 0,967
Średnia 0,279 0,491 0,374 0,892
Odchylenie standardowe 0,218 0,246 0,201 0,067
Mediana 0,207 0,688 0,252 0,918
Tabela 81 pokazuje najważniejsze miary obliczone na podstawie tabeli 80. Jak widać, wartość
minimalne obydwu wskaźników 𝑄𝐵 oraz 𝑄𝐾 dla samochodu referencyjnego wynoszą 0 ze względu
na niezaliczone przejazdy z prędkościami, przy których przejazd z IDSA był jeszcze możliwy. Oprócz
tego widać nieznacznie wyższą wartość maksymalną bezpieczeństwa osiągniętą przez samochód
referencyjny i wyraźnie wyższą wartość komfortu samochodu sterowanego przez IDSA. Pod względem
wartości średnich oraz median, wyższe wartości osiągnął samochód sterowany przez IDSA, co wskazuje
na jego lepszą ocenę ogólną. Potwierdzają to też niższe wartości odchylenia standardowego (w
przypadku komfortu nawet bardzo niskie) potwierdzające, że zachowanie samochodu sterowane przez
IDSA jest bardziej stabilne niezależnie od warunków.
173
Rysunek 59 Miary statystyczne wskaźnika bezpieczeństwa
Rysunek 60 Miary statystyczne wskaźnika komfortu
174
Rysunki 59 oraz 60 przedstawiają miary statystyczne w rozbiciu na poszczególne eksperymenty. Na obu
wykresach widać ilustrację analizy danych z tabeli 80. Na rysunku 59 widać przewagę pojazdu
referencyjnego w eksperymentach 35 i 36, a na rysunku 60 – ogólną przewagę samochodu sterowanego
z wykorzystaniem IDSA. Na obu rysunkach widoczne są też różnice pomiędzy pierwszym i trzecim
kwartylem, potwierdzające obserwacje wynikające z analizy odchylenia standardowego.
4.5.4. Podsumowanie
Pierwszym wnioskiem nasuwającym się po przeprowadzeniu badań przedstawionych w podrozdziale
4.4 jest lepsze zachowanie samochodu skalibrowanego sterowanego przez IDSA w stosunku
do samochodu referencyjnego, wykorzystującego istniejące systemy wspomagające. Widać to przede
wszystkim w mniejszej liczbie niezaliczonych przejazdów, co jednoznacznie wskazuje na większe
bezpieczeństwo IDSA w porównaniu do sterowania referencyjnego. Oprócz tego zredukowane zostały
przechyły nadwozia, poślizgi, utraty prędkości podczas manewrów, a nawet skręt kierownicy konieczny
podczas gwałtownych zmian kierunku. Wszystkie pozytywne rezultaty są bezpośrednim efektem pro-
aktywności IDSA, czyli reagowania na zmiany zanim jeszcze nastąpią. Jest to możliwe dzięki
świadomości otoczenia i centralnemu podmiotowi podejmowania decyzji, który z tej wiedzy korzysta.
Drugim wnioskiem jest ogromny wpływ kierowcy na uzyskane wyniki badań. Widać to po malejącej
liczbie niezaliczonych przejazdów wraz z rosnącym doświadczeniem kierowcy. Oznacza to, że obydwa
badane rozwiązania nie są rozwiązaniami autonomicznymi, a zachowanie kierowcy jest ciągle kluczowe
dla bezpieczeństwa podróży.
Trzeci wniosek dotyczy wyłącznie samochodu referencyjnego – jego kalibrację należy wykonywać
całościowo – uwzględniając wszystkie obecne systemy wsparcia, dane fizyczne pojazdu, opon
i zawieszenia. Próba kalibracji wyłącznie jednego elementu, np. zawieszenia,
bez „przeprogramowania” systemów ECS i TSC kończyła się negatywnym zachowaniem,
np. spóźnioną i jednocześnie zbyt gwałtowną reakcją wspomnianych systemów.
Czwarty wniosek dotyczy zachowania pojazdu referencyjnego bez standardowych systemów wsparcia.
Co zaskakujące, po wyłączeniu systemów ECS i TSC, przejazdy z różnymi ustawieniami zawieszenia
kończyły się podobnymi maksymalnymi prędkościami, ponieważ kluczowa okazała się granica
wytrzymałości opon. Kierowca mógł ją nieznacznie przesuwać poprzez kontrolowane poślizgi,
ale wymagało to doświadczenia i umiejętności wykorzystania zmian w zawieszeniu, np. skontrowania
kierownicą podczas zmiany strony przechyłu nadwozia, w celu kompensacji poślizgu przed jego
pojawieniem się. Niemniej jednak, takie zachowanie kierowcy nie wpływało znacząco na wyniki badań.
Piątym wnioskiem jest bardzo złe zachowanie obu pojazdów po podniesieniu masy własnej oraz jeszcze
gorsze po przesunięciu środka ciężkości. Samochody łatwo wpadały w poślizgi zarówno podsterowne,
jak i nadsterowne, podnosiły koła, a nawet przewracały się (wyłącznie referencyjny). Żadne
z prezentowanych rozwiązań nie było kalibrowane po zmianie masy pojazdu, jednak wydaje się, że
w obu przypadkach wszystkie negatywne efekty da się zniwelować zmieniając parametry systemów
wsparcia. Oczywista wydaje się konieczność uwzględnienia masy pojazdu w parametrach systemów
TSC oraz IDSA, ponieważ trudno wyobrazić sobie tak radykalną zmianę zachowania pojazdu z
kierowcą i kompletem pasażerów w stosunku do zachowania samochodu z samym kierowcą. Można
175
jednak przypuszczać, że gdyby samochód bazowy nie był skalibrowany na idealny rozkład masy (25%
na każde koło), wpływ zmiany masy i jej rozkładu mógłby być mniej negatywny.
Szósty wniosek dotyczy zachowania obu pojazdów po obniżeniu parametrów opon. Samochód
referencyjny nadspodziewanie pozytywnie zachował się w próbach z niską przyczepnością opon.
Co prawda systemy TSC i ECS reagowały trochę gwałtownie i wcześnie, co mogło być zaskakujące dla
kierowcy, jednak z powodzeniem pomagały w zachowaniu zadanego toru jazdy. Niestety, ten test
pokazał istotną wadę wybranej implementacji IDSA. Oblicza ona prędkość samochodu korzystając
z prędkości obrotowej kół, więc IDSA zupełnie nie reagował na pojawiający się poślizg, ponieważ go
nie wykrywał. Zlikwidowanie tego problemu wymagałoby uwzględnienia wskazań akcelerometrów
przy obliczaniu prędkości pojazdu. Bez tego elementu, samochód np. przechylał nadwozie adekwatnie
do spodziewanego promienia skrętu, a nie rzeczywistego, który był w tym przypadku większy.
Siódmy wniosek dotyczy braku możliwości działania IDSA w przypadku niedostatecznych zasobów
obliczeniowych. Widać to wyraźnie w eksperymencie 53, gdzie po podniesieniu stopnia wielomianu
do 15, samochód nie nadawał się do jazdy. W sytuacji mniej skrajnej, kiedy algorytm pracował, lecz
niektóre jego procesy nie nadążały za resztą, IDSA ciągle zachowywał się dobrze lub przynajmniej
akceptowalnie. Należy jednak zauważyć, że w eksperymencie 57 stracił on możliwość poprawiania
trajektorii zadanej przez kierowcę. Niestety może to być istotna wada, ponieważ kierowca
przyzwyczajony do tego, że samochód koryguje jego tor jazdy, mniej dokładnie ten tor jazdy kontroluje.
Z drugiej strony warto zauważyć, że przedstawiony przykład dotyczy slalomu, czyli sytuacji bardzo
nietypowej dla przeciętnego kierowcy.
Ósmy wniosek dotyczy kalibracji. Przy spojrzeniu ogólnym, można zauważyć, że IDSA wymaga
dokładnej kalibracji – ustalenia opóźnień, liczby wątków i dostosowania do dostępnych zasobów.
Wymaga także zapewnienia dostępności przez cały czas pracy algorytmu zasobów użytych podczas
kalibracji.
Większa liczba zaliczonych przejazdów, a także wzrost obliczonych wartości kryteriów
zagregowanych, prowadzą do następującej konkluzji. IDSA jako pojedynczy zintegrowany
algorytm, agregujący i realizujący zadania obecnie stosowanych algorytmów szczegółowych –
odpowiedzialnych za wsparcie kierowcy i zapewnienie bezpieczeństwa – jest od nich obiektywnie
i mierzalnie lepszy, pod względem badanych kryteriów. Oznacza to, że IDSA lepiej realizuje
zadania stawiane przed rozwiązaniami tradycyjnymi przy zastosowaniu zaproponowanej oceny
zagregowanej, mimo że nie realizuje wprost funkcjonalności realizowanych przez systemy
wsparcia kierowcy, które zastępuje. Poza tym, w większości przypadków, osiąga on także lepsze
rezultaty pod względem używanych cząstkowych wskaźników oceny: przechyłu samochodu,
zmiany prędkości podczas manewrów, wymaganego skrętu kierownicy, poślizgu opon oraz czasu
wykonania manewrów. Jest to potwierdzenie tezy tej pracy postawionej w punkcie 1.5.1.
176
5. ZAKOŃCZENIE
Najtrudniejszy i najbardziej żmudny etap tej pracy nie został szczegółowo opisany w prezentowanej
rozprawie. Polegał on na wielokrotnych próbach opracowania IDSA, wymieniania jego komponentów,
zmieniania założeń i ograniczeń. Dopiero po ustabilizowaniu założeń można było przystąpić do pracy
badawczej – budowania rozwiązania referencyjnego, planowania eksperymentów i implementacji
IDSA.
Podczas tego procesu zdobyto doświadczenie, które będzie bardzo przydatne w dalszych pracach
i jednocześnie wskazuje ono popełnione błędy i osiągnięte sukcesy.
Najważniejszym sukcesem tej pracy jest potwierdzenie postawionej tezy.
5.1. Problem pracy
Problem badany w niniejszej pracy dotyczy zadania sterowania realizowanego we współczesnych
samochodach. Postawiono w niej pytanie, czy współczesne podejście, wykorzystywane w dziesiątkach
tysięcy produkowanych codziennie samochodów, da się zastąpić podejściem alternatywnym. Zbadano
możliwość wykorzystania wiedzy z zakresu informatyki do rozwiązania problemu obecnego
w mechanice i budowie maszyn, a używając nomenklatury rynkowej – w motoryzacji.
W niniejszej pracy zdecydowano się wyeliminować wszystkie znane systemy czynnego wsparcia
kierowcy, takie jak system kontroli trakcji, system zapobiegania blokowaniu kół, system zapobiegania
poślizgom, system aktywnego zawieszenia itd., oraz zastąpić je przez jeden system zdolny do kontroli
wszystkich urządzeń wykonawczych – sterowanych tradycyjnie przez niezależne lub częściowo zależne
systemy. Ta praca proponuje algorytm heurystyczny, realizujący postawione zadanie badawcze,
nazwany Integrated Driver Support Algorithm (IDSA). Problem wspomagania kierowcy został w tej
pracy zdekomponowany na zupełnie inne składowe, więc jego celem jest analiza danych wejściowych
dotyczących pojazdu, jego otoczenia i wydawanych przez kierowcę poleceń oraz kontrolowanie
wszystkich urządzeń wykonawczych obecnych w pojeździe. Jednak IDSA nie jest typowym
algorytmem realizującym ciąg operacji zależnych w sensie wejściowo-wyjściowym. Zamiast tego
zastosowano nietypowe, autorskie połączenie niezależnych procesów składowych oraz autorski model
danych przyjmujących zmienne w dyskretnych chwilach czasu, budujący ich ciągłą reprezentację
i używający tej interpretacji do interpolacji lub nawet ekstrapolacji przechowywanych wartości. Dzięki
temu w większości udało się zachować bardzo prostą architekturę procesów składowych. Jedynym
wyjątkiem jest proces przetwarzania danych o otoczeniu. Nie udało się znaleźć w literaturze żadnego
rozwiązania wykonującego zadanie agregacji asynchronicznych i heterogenicznych danych
sensorycznych, więc w ramach tej pracy zaproponowano taki proces, wykorzystujący sieci neuronowe.
W ten sposób buduje się i uaktualnia geometryczną mapę otoczenia zbudowaną ze zbioru
sklasyfikowanych i sparametryzowanych obiektów oraz ich trajektorii. Warto zauważyć, że IDSA
realizuje zadanie systemu decyzyjnego zachowującego się jak system wspomagania decyzji, podczas
gdy sam proces wyznaczania decyzji został tu zredukowany do prostego wyszukiwania ekstremów
trzech funkcji wielowymiarowych.
177
Przeprowadzone badania pokazują wyraźnie, że dzięki świadomości otoczenia, braku konfliktów
sterowania i wielu stopniom swobody, IDSA jest w stanie osiągać lepsze wartości wskaźników
opisujących bezpieczeństwo i komfort jazdy.
5.2. Najważniejsze wyniki
Najważniejszym osiągniętym wynikiem, widocznym już na pierwszy rzut oka, jest mniejsza
wypadkowość pojazdu sterowanego przez IDSA w stosunku do pojazdu wykorzystującego współczesne
rozwiązania. Podczas badań dokonano 1234 jazd testowych, w tym 476 jazd bezpośrednio
porównujących IDSA i pojazd referencyjny (po 238 jazd każdy). Samochód referencyjny pozytywnie
zaliczył 182 z nich, a samochód sterowany przez IDSA – 228. Widać tu wyraźny wzrost bezpośredniego
bezpieczeństwa o 19,3%. Dla samochodów skalibrowanych ten wskaźnik wyniósł 15,1%. Ogólnie,
samochód referencyjny zaliczył 85,5% z 414 przejazdów, a samochód sterowany przez IDSA: 96,5%
z 820 przejazdów.
Kolejnymi widocznymi zaletami są: minimalizacja przechyłów przy używaniu IDSA – wynikająca
z jego pro-aktywności, minimalizacja koniecznych do wykonania manewrów skrętu kierownicy –
wynikająca z elastyczności oraz minimalizacja utraty prędkości – wynikająca ze świadomości otoczenia
i braku konfliktów sterowania.
Największą odkrytą wadą IDSA jest brak zdolności do radzenia sobie z zakłóceniami niemierzonymi –
w tym przypadku ze zmniejszoną przyczepnością, wynikającą ze zużycia opon. Mimo tej wady udało
się uzasadnić postawioną w pracy tezę, czyli pokazać wyższość IDSA nad rozwiązaniami
referencyjnymi w badanych warunkach i z użyciem zaproponowanych wskaźników oceny.
5.3. Kierunki dalszych prac i rekomendacje wdrożeniowe
Wyeliminowanie zauważonych wad IDSA oraz jego dalsze udoskonalanie wymagają dalszych prac.
Następujące przyszłe działania wydają się obecnie najważniejsze:
a) W procesie analizy danych o otoczeniu należy uwzględnić wiedzę ekspercką do wyznaczenia
kolejności uruchamiania kolejnych sieci neuronowych, rozpoznających obiekty konkretnych
typów, np. na drodze należy najpierw szukać innych pojazdów, a dopiero w następnej
kolejności drzew. W tym samym procesie należy wykorzystać metamodel obiektów otoczenia
do wyznaczenia kolejności uruchamiania sieci neuronowych w przypadku negatywnego
rozpoznania, tzn., jeśli spodziewano się obiektu reprezentującego klasę „samochód osobowy”,
ale nie udało się go znaleźć, należy w pierwszej kolejności uruchomić sieć odpowiedzialną
za klasę nadrzędną „samochód” zamiast klasy niezwiązanej, np. „drzewo”. Oprócz tego należy
uwzględnić odczyty z akcelerometrów do określenia rzeczywistego ruchu pojazdu, oprócz
bazowania wyłącznie na prędkości obrotowej kół.
b) W zaprezentowanych badaniach wykorzystano możliwość użycia skryptów do nadzorowania
uczenia sieci neuronowych. Należy znaleźć sposób na szybkie uczenie tych sieci na podstawie
pomiarów pobranych ze świata rzeczywistego. Można też zbadać dostępne metody aktualizacji
posiadanych sieci neuronowych w pojeździe poprzez komunikację peer-2-peer (w tym
przypadku car-2-car lub car-2-X) lub aktualizację oprogramowania samochodu przez Internet
podczas postoju w garażu.
178
c) W dotychczasowych badaniach pominięto udział danych niepewnych. Należy rozważyć
zastosowanie niedeterministycznych opisów przetwarzania danych, tak aby odzwierciedlić
niepewność działania sieci neuronowych oraz niepewność pomiarową.
d) Należy rozważyć zastosowanie funkcji wyższego stopnia do predykcji trajektorii, zamiast
różnicować tylko jazdę po łuku lub jazdę na wprost. Idąc tą drogą, można też użyć większej
liczby przyszłych chwil czasu w procesie poprawiania trajektorii, zamiast wyznaczania wartości
dla jednej chwili 𝑝(𝑡𝑘). Oprócz tego zauważono, że wygodniejsze może być przesuwanie,
co określony czas lub przebyty dystans, początku układu współrzędnych, względem którego
wyznacza się trajektorię pojazdu sterowanego, zamiast ciągłego bazowania na punkcie
uruchomienia IDSA.
e) Używany obecnie planista systemowy jest dość prosty. Można rozważyć potencjalne ulepszenia
używanych planistów systemowych, np. priorytetyzację zadań w zależności od istotności
procesu, oraz wywłaszczanie lub przerwania w przypadku pojawienia się nowych, istotnych
danych do analizy.
f) Przed przeniesieniem badań do świata rzeczywistego, można ulepszyć używane środowisko
symulacyjne. Polegałoby to na podziale środowiska badawczego na dwa komputery (realizujący
symulację i realizujący IDSA), w celu uniezależnienia mocy obliczeniowej. Warto
też rozważyć poprawę scenariuszy eksperymentów i używanych wskaźników oceny.
Najważniejsze wydaje się teraz dodanie nowych tras testowych, np. uwzględniających
nierówności asfaltu lub powszechne sytuacje drogowe, jednak warto też rozszerzyć badania
o dodatkowe wskaźniki oceny, np. efektywność energetyczną lub pamięciową, użyteczność
modelu danych w innych zadaniach spotykanych w samochodzie (np. sterowanie światłami
lub tempomatem) lub subiektywne oceny różnych kierowców.
Po zakończeniu badań symulacyjnych możliwe będzie przystąpienie do badań z użyciem rzeczywistych
pojazdów. Ze względu na wymaganą przez IDSA metodę sterowania drive-by-wire oraz założenie
wykluczenia istniejących systemów wsparcia kierowcy, odradza się modyfikację istniejącego pojazdu
w celu użycia w nim IDSA. Potrzebne do wprowadzenia zmiany byłyby w takim przypadku bardzo
duże. Zamiast tego warto zacząć od stworzenia prostego pojazdu składającego się z ramy, prostego
silnika (zapewne elektrycznego), prostego układu jezdnego, kierowniczego, hamulcowego
oraz zawieszenia. Należy tylko zapewnić odpowiednie interfejsy, umożliwiające sterowanie tymi
urządzeniami przez IDSA. Przy zapewnieniu odpowiednio wydajnej sieci bezprzewodowej, można
nawet pokusić się o model sterowany zdalnie, np. mniejszy od prawdziwego samochodu.
Jeśli ten etap zakończy się powodzeniem, można będzie rozważyć przynajmniej trzy dalsze drogi
rozwoju – pełnowymiarowy samochód z kierowcą, pojazd autonomiczny lub inny pojazd.
W przypadku rozpoczęcia badań w samochodzie z kierowcą, należy koniecznie zastosować układ
sterowania zapasowego – prosty informatyczny lub fizyczny sterownik, pozwalający bezpośrednio
sterować hamulcami, silnikiem i skrętem kół. Alternatywnie można rozważyć użycie algorytmu
autonomicznego. Taki algorytm musiałbym rozwiązywać problemy zachowania pojazdu w ruchu
drogowym i mógłby zadawać bezpośrednio trajektorię 𝑝(𝑡) do modelu danych IDSA. W założeniach
IDSA leży także możliwość użycia go w innych pojazdach. Interesujące jest, jaki dodatkowy nakład
pracy jest potrzebny w celu użycia IDSA do sterowania np. pojazdem wielokołowym lub łodzią.
179
Równolegle do badań na fizycznym przedmiocie podejmowania decyzji, warto wciąż rozwijać
symulator, który może stać się podstawą dalszych badań przy ograniczonych kosztach lub środowiskiem
treningowym dla kierowców.
Podsumowując, zaproponowany algorytm, nazwany IDSA, spełnia cel niniejszej pracy i potwierdza
zawartą w niej tezę. Oprócz tego, w pracy wskazuje się jego ewaluację oraz kilka ścieżek badawczych
dalszego jego rozwoju.
180
LITERATURA
[1] R. Makowitz, „FlexRay – A Communications Network for Automotive Control Systems,”
w IEEE International Workshop on Factory Communication Systems, Turyn, 2006.
[2] Komenda Główna Policji, „WYPADKI DROGOWE - RAPORTY ROCZNE,” [Online].
Available: http://statystyka.policja.pl/st/ruch-drogowy/76562,Wypadki-drogowe-raporty-
roczne.html. [Data uzyskania dostępu: 5 października 2020].
[3] T. Scharnhorst and G. Reichart, "Progress on the AUTOSAR Adaptive Platform for
Intelligent Vehicles," in VEHICULAR 2019, Rzym, 2019.
[4] A. Haghighatkhah, M. Oivo, A. Banijamali and P. Kuvaja, "Improving the State of
Automotive Software Engineering," IEEE Software, vol. 34, no. 5, pp. 82-86, 26 września
2017.
[5] R. Chatila i J.-P. Laumond, „Position referencing and consistent world modeling for mobile
robots,” w Proceedings. 1985 IEEE International Conference on Robotics and Automation,
Saint Louis, IEEE, 1985, pp. 138-145.
[6] H. Durrant-Whyte i T. Bailey, „Simultaneous Localisation and Mapping (SLAM): part I,” IEEE
Robotics & Automation Magazine, tom 13, nr 2, pp. 99-110, June 2006.
[7] Road Illumination Devices Standards Committee, „Automotive Engineering,” SAE
International, Warrendale, 1974.
[8] Delphi, „Delphi Multi-domain Controller,” 2015. [Online]. Available: https://s3-
prod.autonews.com/s3fs-public/CA106710823.PDF. [Data uzyskania dostępu: 19 listopada
2019].
[9] Continental AG, „Just in Case: Continental Uses Safety Domain Control Unit as Fallback
Path in Automated Driving,” 10 stycznia 2018. [Online]. Available:
https://www.continental.com/en/press/press-releases/safety-domain-control-unit-118020.
[Data uzyskania dostępu: 14 listopada 2019].
[10] M. Wille, „Adaptive AUTOSAR is on the road – challenges & experiences for series
development at Volkswagen,” w Automotive Computing Conference, Frankfurt, 2019.
[11] P. Lobert, „Software empowering vehicle computer,” w Automotive Computing Conference,
Frankfurt, 2019.
[12] R. Day, „Performance computing for future autonomous systems,” w Automotive Computing
Conference, Frankfurt, 2019.
181
[13] J. Mauss, „Virtual ECUs for automotive development: a success story,” w Automotive
Computing Conference, Frankfurt, 2019.
[14] M. Hiller, „Future E/E architecture trends and computation needs,” w Automotive Computing
Conference, Frankfurt, 2019.
[15] M. D. Cave, „Autonomous driving system emergency signaling”. United States, CA, Palo
Alto Patent 2019/0138018, 9 maja 2019.
[16] T. Fortenberry, S. D. Crowder, P. Kaminski, D. W. Bailey i D. Glasco, „Autonomous driving
conroller encrypted communications”. United States of America Patent 2019/0334706, 18
kwietnia 2019.
[17] J. Behtel, J. Stam i S. Kemeny, „Vehicle vision system”. United States of America Patent
2009/7567291, 28 czerwca 2009.
[18] D. Hall, „High devinition LIDAR system”. United States of America Patent 2011/7969558,
28 czerwca 2011.
[19] J. Kretzschmar i F. Eckardt, „A Blockchain Approach towards Cargo Sharing in Last Mile
Logistics,” w VEHICULAR 2019, Rzym, 2019.
[20] H. Menouar i M. B. Brahim, „Real Deployment of the V2X-Based Data Probe Application
and its Integration with a Commercial Traffic Platform,” w VEHICULAR 2019, Rzym, 2019.
[21] F. Jiménez, J. E. Naranjo, M. Martin, A. Ramirez, M. Anguera i P. García, „Operation in
Tunnels Construction Works with Autonomous or Tele-operated Trucks,” w VEHICULAR
2019, Rzym, 2019.
[22] F. Terhar i C. Icking, „A New Model for Hard Braking Vehicles and Collision Avoiding
Trajectories,” w VEHICULAR 2019, Rzym, 2019.
[23] A. Suzuki, Y. Murata i S. Fujimura, „Robustness Against Hazard Notifications Around
a Vehicle Using Seat Actuators,” w VEHICULAR 2019, Rzym, 2019.
[24] J. Marchal, D. Gingras i H. Pollart, „Vehicle Detection Assistance in Urban Intersection
Using Data Exchange Between Road Infrastructure,” w VEHICULAR 2019, Rzym, 2019.
[25] M. Loizou i P. Kaimakis, „Model-Based 3D Visual Tracking of Rigid Bodies using Distance
Transform,” w VEHICULAR, Rzym, 2019.
[26] D. Petrecki, „Asynchronous Vehicle Control System Basing on Analitical Continous-Time
Functions,” w VEHICULAR, Rzym, 2019.
182
[27] D. Petrecki, „Asynchronous Vehicle Control System Based on Integrated Driver Support
Algorithm,” International Journal On Advances in Systems and Measurements, tom 13,
nr 1&2, pp. 36-45, 2020.
[28] A. Mhalla, T. Chateau, S. Gazzah i N. Amara, „An Embedded Computer-Vision System for
Multi-Object Detection in Traffic Survellance,” IEEE Transactions on Intelligent
Transportation Systems, nr 11, pp. 4006-4018, 27 listopada 2019.
[29] P. Patil i S. Murala, „MSFgNet: A Novel Compact End-to-End Deep Network for Moving
Object Detection,” IEEE Transactions on Intelligent Transportation Systems, tom 20, nr 11,
pp. 4066-4077, 2019.
[30] D. Lovell, „Kinematics-enabled lossless compression of freeway and arterial vehicle
trajectories,” Journal of Intelligent Transportation Systems, tom 23, nr 5, pp. 452-476, 2019.
[31] C. A. Foldestad, N. Hansen, K. Fagerholt, H. Andersson i G. Pantuso, „Optimal charging and
repositioning of electric vehicles in a free-floating carsharing system,” Computers &
Operations Research, tom 113, 2020.
[32] K. Sakhare, T. Tewari i V. Vyas, „Review of Vehicle Detection Systems in Advanced Driver
Assistant Systems,” Archives of Computational Methods in Engineering, pp. 1-20, 12 marca
2019.
[33] L. Kudela, S. Kollmannsberger, U. Almac i E. Rank, „Direct structural analysis of domains
defined by point clouds,” Computer Methods in Applied Mechanics and Engineering, tom
358, 2020.
[34] C. Hermange, G. Oger, Y. Le Chenadec i D. Le Touzé, „A 3D SPH–FE coupling for FSI
problems and its application to tire hydroplaning simulations on rough ground,” Computer
Methods in Applied Mechanics and Engineering, tom 355, pp. 558-590, 2019.
[35] E. Bjørne, E. Brekke, T. Bryne, J. Delaune i T. Johanses, „Globally stable velocity estimation
using normalized velocity measurement,” The International Journal of Robotics Research,
tom 39, nr 1, pp. 143-157, 2019.
[36] V. Guizilini i F. Ramos, „Variational Hilbert regression for terrain modeling and trajectory
optimization,” The International Journal of Robotics Research, tom 38, nr 12-13, pp. 1375-
1387, 2019.
[37] D. Petrecki i J. Józefczyk, „A New Method for Asynchronous Mapping, Localization and
Control of Vehicles,” w Systems Management, Rzym, Giappichelli-Routledge, 2017.
183
[38] J. Józefczyk, M. Ławrynowicz i D. Petrecki, „Selected problems and methods of decision-
making in complex system,” Advances in analysis and decision-making for complex and
uncertain systems, tom 6, pp. 41-49, 2019.
[39] D. Petrecki, I. Jóźwiak i J. Gruber, „Propozycja wykorzystania scentralizowanego systemu
informatycznego w samochodach,” Zeszyty Naukowe - Politechnika Śląska. Organizacja i
Zarządzanie, nr 68, pp. 367-376, 2014.
[40] M. Bernhardt, „Krzywa momentu obrotowego,” w Teoria silników spalinowych tłokowych,
Warszawa, Wydawnictwo Naukowo-Techniczne, 1963, p. 297.
[41] P. Fundowicz, M. Radzimierski i M. Wieczorek, „Układ napędowy,” w Konstrukcja
pojazdów samochodowych, Warszawa, WSiP, 2013, pp. 47-90.
[42] Komatsu America Corp., „Komatsu 930E-4,” lutego 2007. [Online]. Available:
https://www.webcitation.org/5nwccAClr?url=http://www.equipmentcentral.com/north_ameri
ca/data/new_equipment/930E_4_AESS743-00_FINAL.pdf. [Data uzyskania dostępu: 23
października 2020].
[43] N. Srivastana i I. Haque, „A review on belt and chain continuously variable transmissions
(CVT): Dynamics and control,” Mechanism and Machine Theory, tom 44, nr 1, pp. 19-41,
2009.
[44] Online Digital Education Connection, „ Continuously Variable Transmissions,” 2007.
[Online]. Available: http://www.odec.ca/projects/2007/viva7s2/cvts2.htm. [Data uzyskania
dostępu: 11 12 2016].
[45] Z. Jaśkiewicz, Mosty Napędowe, Warszawa: WKŁ, 1977.
[46] J. Dzida, „Mechanizmy różnicowe sterowane regulatorami mechanicznymi,” Archiwum
motoryzacji, tom 3, pp. 227-246, 2007.
[47] ASE Certification Practice Tests, „Differentials: Side Bearings,” 2019. [Online]. Available:
https://www.freeasestudyguides.com/differential-side-bearing-preload.html. [Data uzyskania
dostępu: 5 października 2020].
[48] J. Zhang, Y. Zhang i G. Li, „Functional Safety Design of Four-Wheel Independent Brake
System on Electric Vehicle,” w IOP Conference Series Earth and Environmental Science,
Banda Aceh, 2018.
[49] S. Saxena, V. Kumar, S. S. Luthra i A. Kumar, „4 WHEEL STEERING SYSTEMS,”
International Journal of Mechanical Engineering and Robotics Research, tom 1, nr 1, 2014.
184
[50] K. Ernst, „Lost Cars of the 1980s – 1988 Honda Prelude 4WS,” Hemmings, 2 grudnia 2013.
[Online]. Available: https://www.hemmings.com/blog/2013/12/02/lost-cars-of-the-1980s-
1988-honda-prelude-4ws/. [Data uzyskania dostępu: 6 października 2020].
[51] I. Kulczyk, „Układ kierowniczy,” 5 lutego 2017. [Online]. Available:
https://silo.tips/download/ukad-kierowniczy-potrzeb-stosowania-ukadu-kierowniczego-ze-
zwrotnicami-przedstaw. [Data uzyskania dostępu: 6 października 2020].
[52] J.-S. Zhao, Z.-J. F. X. Liu i J. S. Dai, „Design of an Ackermann Type Steering Mechanism,”
Journal of Mechanical Engineering Science, tom II, nr 227, pp. 2249-2262, 2013.
[53] AutoTURN.net.pl, „Zasada ACKERMANa,” AutoTURN, 11 sierpnia 2017. [Online].
Available: https://autoturn.net.pl/wsparcie-autoturn/s%C5%82owniczek/45-zasada-
ackermana.html. [Data uzyskania dostępu: 6 października 2020].
[54] WP Autokult, „Układy zawieszenia w samochodach osobowych,” 10 stycznia 2011. [Online].
Available: https://autokult.pl/14518,uklady-zawieszenia-w-samochodach-osobowych. [Data
uzyskania dostępu: 20 lutego 2020].
[55] L. Chen, „2,4,7 DOFs Suspension Model for Simulink,” 25 maja 2006. [Online]. Available:
http://uk.mathworks.com/matlabcentral/fileexchange/11199-247-dofs-suspension-model-for-
simulink. [Data uzyskania dostępu: 6 października 2020].
[56] M. Theriault, „Three-Dimensional Control Valve with Complex Geometry,” w Great
Maritime Inventions 1833-1950, Fredericton, Goose Lane Editions, 2001, p. 69.
[57] opony.com.pl, „Jak korygować podsterowność i nadsterowność?,” 9 sierpnia 2010. [Online].
Available: https://www.opony.com.pl/artykul/jak-korygowac-podsterownosc-i-
nadsterownosc/?id=962. [Data uzyskania dostępu: 6 października 2020].
[58] J. Koscs, „Anti-lock Brakes: Who Was Really First?,” Hagerty, 9 kwietnia 2013. [Online].
Available: https://www.hagerty.com/articles-videos/articles/2013/04/09/antilock-brakes.
[Data uzyskania dostępu: 3 marca 2020].
[59] Komisja Europejska, „Brake Assist,” 11 marca 2020. [Online]. Available:
https://ec.europa.eu/transport/road_safety/specialist/knowledge/esave/esafety_measures_unkn
own_safety_effects/brake_assist_en. [Data uzyskania dostępu: 11 października 2020].
[60] The Royal Society for the Prevention of Accidents, „Brake Assist,” 06 grudnia 2006.
[Online]. Available: http://www.rospa.com/roadsafety/info/brake_assist.pdf. [Data uzyskania
dostępu: 11 marca 2020].
185
[61] G. Buschmann, H. T. Ebner i W. Kuhn, „Electronic Brake Force Distribution Control - A
Sophisticated Addition to ABS,” SAE 1992 Transactions: Journal of Passenger Cars, tom
101, nr 6, pp. 9-40, 1992.
[62] L. Austin i D. Morrey, „Recent advances in antilock braking systems and traction control
systems,” Proceedings of the Institution of Mechanical Engineers Part D Journal of
Automobile Engineering, tom 6, nr 214, pp. 625-638, 2000.
[63] P. Jóźwik, J. Marciszewski, M. Stępień i R. Dychto, „Determination of sensitivity of the
Electronic Stability Program Algorithm,” Mechanics and Mechanical Engineering, tom 4, nr
21, pp. 953-969, 2017.
[64] S. Motoyoma, T. Ohta, T. Watanabe i Y. Ito, „Proceedings of the 7th world congress on
intelligent systems,” w Development of Lane Departure Warning System, Turyn, 2000.
[65] J. Brinkley, J. Dunbar, D. Smitch i J. Gilbert, „A Usability Evaluation of the BMW Active
Cruise Control System With “Stop and Go” Function,” Proceedings of the Human Factors
and Ergonomics Society 2017 Annual Meeting, tom 61, nr 1, pp. 1536-1540, 2017.
[66] S. Awano, H. Yoshida i T. Kamada, „Investigation of Emergency Brake Assist System for
Elderly Driver,” w Transport / Logistics Division Conference, Pekin, 2005.
[67] D. Uselmann i L. Uselmann, „Sonic blind spot monitoring system,” The Journal of the
Acoustical Society of America, tom 6, nr 122, pp. 4-27, 2007.
[68] SAE International, „Automated Driving – Levels of Driving Automation are Defined in New
SAE International Standard J3016,” 01 czerwca 2018. [Online]. Available:
https://web.archive.org/web/20180701034327/https://cdn.oemoffhighway.com/files/base/acb
m/ooh/document/2016/03/automated_driving.pdf. [Data uzyskania dostępu: 25 grudnia
2019].
[69] W. Doroszewski, Słownik Języka Polskiego, Warszawa: PWN, 2009.
[70] K. Cammaerts, P. Morse i K. Kidera, „Improving Performance through the Use of Driver-in-
the-Loop Simulations,” ATZ worldwide, tom 121, pp. 52-57, 2019.
[71] Y. Gurevich, „What Is an Algorithm?,” w Sofsem 2012: Theory and Practice of Computer
Science: 38th Conference on Current Trends in Theory and Practice of Computer Science,
Szpindlerowy Młyn, 2012.
[72] M. Li i P. Vitányi, „Algorithmic Complexity,” w An Introduction to Kolmogorov Complexity
and Its Applications, Nowy Jork, Springer, 1997, pp. 101-199.
[73] M. Islam, „Neural Network,” Chongqing University of Science & Technology, Chongqing,
2020.
186
[74] S. Colyer, M. Evans, D. Cosker i A. Salo, „A Review of the Evolution of Vision-Based
Motion Analysis and the Integration of Advanced Computer Vision Methods Towards
Developing a Markerless System,” Sports Medicine - Open, tom 4, nr 24, 5 czerwca 2018.
[75] E. Diamant, „Does a Plane Imitate a Bird? Does Computer Vision Have to Follow Biological
Paradigms?,” w Brain, Vision, and Artificial Intelligence, Berlin, Springer, 2005, pp. 108-
115.
[76] R. G. Domenella i A. Plebe, „A Neural Model of Human Object Recognition Development,”
w Brain, Vision, and Artificial Intelligence, Berlin, Springer, 2005, pp. 116-126.
[77] M. Miyake, H. Takai i K. Tachibana, „Workspace mapping based on multisensor information
fusion using heterogeneous onboard sensors,” Artificial Life and Robotics volume, tom 14, nr
401, pp. 401-404, 2009.
[78] S. Abe, „Function Approximation,” w Support Vector Machines for Pattern Classification,
Londyn, Springer, 2010, pp. 395-442.
[79] A. Krall, „The Stone-Weierstrass Theorem,” w Applied Analysis, Dordrecht, Springer, 1986,
pp. 117-126.
[80] A. Blinov i V. Fralenko, „Multidimensional approximation for modeling and optimization
problems,” Approximate and Numerical Methods, pp. 652-662, 24 kwietnia 2009.
[81] W. Marańda, „Rozwiązywanie konfliktów,” 6 stycznia 2009. [Online]. Available:
https://neo.dmcs.pl/ak/solving_hazards.pdf. [Data uzyskania dostępu: 6 października 2020].
[82] W. Buchanan, „CAN Bus,” w The Handbook of Data Communications and Networks,
Boston, Springer, 2004, pp. 705-714.
[83] M. Timmann i M. Renz, „48V at Mercedes-Benz – options for further applications,” w 14.
Internationales Stuttgarter Symposium, Wiesbaden, 2014.
[84] O. Mitchell, „Self-Driving Cars Have Power Consumption Problems,” The Robot Report, 26
lutego 2018. [Online]. Available: https://www.therobotreport.com/self-driving-cars-power-
consumption/. [Data uzyskania dostępu: 11 lutego 2020].
[85] „ADAS,” ADAS - Sheppard’s Glass. [Online]. Available:
https://www.sheppardsglass.com/adas/. [Data uzyskania dostępu: 2020 listopada 15].
[86] D. Möller i R. Haas, „Automotive Cybersecurity,” w Guide to Automotive Connectivity and
Cybersecurity, Cham, Springer, 2019, pp. 265-377.
[87] D. Petrecki, Opracowanie modelu matematyczne i komputerowego nowoczesnego samochodu
na potrzeby zadania stabilizacji podwozia, Wrocław: Politechnika Wrocławska, 2013.
187
[88] A. Pruckner, R. Stroph i P. Pfeffer, „Drive-By-Wire,” w Handbook of Intelligent Vehicles,
Londyn, Springer, 2012, pp. 235-282.
[89] J. Józefczyk i M. Hojda, „Systems Approach in Complex Problems of Decision-Making and
Decision-Support,” Studies in Systems, Decision and Control, tom 296, pp. 589-615, 2021.
[90] M. Antal, C. Pop, T. Cioara, I. Anghel, I. Salomie i P. Florin, „A System of Systems
approach for data centers optimization and integration into smart energy grids,” Future
Generation Computer Systems, tom 105, pp. 948-963, 2020.
[91] O. D. Montoya, W. Gil-González i L. F. Grisales-Noreña, „An exact MINLP model for
optimal location and sizing of DGs in distribution networks: A general algebraic modeling
system approach,” Ain Shams Engineering Journal, tom 11, nr 2, pp. 409-418, 2020.
[92] F. Borrelli, A. Bomporad, M. Fodor i D. Hrovat, „An MPC/hybrid system approach to
traction control,” IEEE Transactions adn Control Systems Technology, tom 14, nr 3, pp. 541-
552, 2006.
[93] L. König, F. Schindele i A. Zimmermann, „ITC – Integrated traction control for sports car
applications,” w 19. Internationales Stuttgarter Symposium, Stuttgart, 2019.
[94] 360 iResearch, „Anti Lock Braking System (ABS) & Electronic Stability Control (ESC)
System Market Research Report - United States Forecast to 2025 - Cumulative Impact of
COVID-19,” Lyon, 2020.
[95] R. Sujith i V. Unni, „Complex system approach to investigate and mitigate thermoacoustic
instability in turbulent combustors,” Physics of Fluids, tom 32, pp. 6-26, 2020.
[96] A. Bonci, A. Carbonari, A. Cucchiarelli, L. Messi, M. Pirani i M. Vaccarini, „A cyber-
physical system approach for building efficiency monitoring,” Automation in Construction,
tom 102, pp. 68-85, 2019.
[97] P. Ferrinho, M. Sidat, G. Leiras, F. P. Cupertino de Barros i H. Arruda, „Principalism in
public health decision making in the context of the COVID‐19 pandemic,” Health Planning
Management, tom 35, nr 5, pp. 997-1000, 2020.
[98] N. Aouf, D. Gates, I. Postlethwaite i B. Boulet, „Scheduling schemes for an integrated flight
and propulsion control system,” Control Engineering Practice, tom 10, nr 7, pp. 685-696,
2002.
[99] M. Indu i K. Aswatha, „Electric Vehicle Control and Driving Safety Systems: A Review,”
IETE Journal of Research, tom 17, 2020.
188
[100] M. Tomizuka, C. Zong, C. Guoying, Z. Zhang, P. Song i N. Lin, „Integrated Control Method
for a Full Drive-by-Wire Electric Vehicle Based on Driver’s Intention Recognition,”
University of California, Berkeley, 2020.
[101] C. Huang, F. Naghdy, H. Du i H. Huang, „Fault tolerant steer-by-wire systems: An
overview,” Annual Reviews in Control, tom 47, pp. 98-111, 2019.
[102] C. Leiseison, „Fat-trees: universal networks for hardware-efficient supercomputing,” IEEE
Transactions on Computers, tom 10, nr 34, p. 892–901, 1985.
[103] Velodyne Lidars, „Alpha Prime,” Velodyne Lidars, [Online]. Available:
https://velodynelidar.com/products/alpha-prime/. [Data uzyskania dostępu: 16 marca 2020].
[104] A. Hoover i B. D. Olsen, „A real-time occupancy map from multiple video streams,”
Proceedings 1999 IEEE International Conference on Robotics and Automation, tom 3, pp.
2261-2266, 1999.
[105] M. H. Daraei, Tightly-Coupled Lidar and Camera for Autonomous Vehicles, Santa Cruz:
University of California, 2018.
[106] W. Gordon i R. Riesenfeld, „B-Spline curves and surfaces,” w Computer Aided Geometric
Design, Utah, Academic Press, 1974, pp. 95-126.
[107] C. Lanczos, „Trigonometric Interpolation of Empirical and Analytical Functions,” Journal of
Mathematics and Physics, tom 17, nr 1-4, pp. 123-134, Kwiecień 1938.
[108] D. Schleicher, L. Bergasa, M. Ocaña, R. Barea i E. López, „Real-time hierarchical stereo
Visual SLAM in large-scale environments,” Robotics and Autonomous Systems, tom 58, nr 8,
p. 991–1002, 2010.
[109] H. Song, W. Choi i H. Kim, „Robust Vision-Based Relative-Localization Approach Using an
RGB-Depth Camera and LiDAR Sensor Fusion,” IEEE Transactions on Industrial
Electronics, tom 63, nr 6, pp. 3725-3736, 2016.
[110] N. Ahman, A. Meng i M. Sultan, „Applications of Hardware-in-the-Loop Simulation in
Automotive Embedded Systems,” SAE Technical Paper 2020-01-1289, 14 kwietnia 2020.
[111] MSC Software, „Adams Car Real Dynamics for Vehicle Design and Testing,” MSC
Software, 2020. [Online]. Available: https://www.mscsoftware.com/product/adams-car. [Data
uzyskania dostępu: 17 maja 2020].
[112] MathWorks, „MatLab,” Mathworks, 2020. [Online]. Available:
https://www.mathworks.com/products/matlab.html. [Data uzyskania dostępu: 17 maja 2020].
189
[113] dSPACE, „Automotive Simulation Models,” dSPACE, 2020. [Online]. Available:
https://www.dspace.com/en/inc/home/products/sw/automotive_simulation_models.cfm. [Data
uzyskania dostępu: 17 maja 2020].
[114] IPG Automotive, „CarMaker: Virtual testing of automobiles and light-duty vehicles,” IPG
Automotive, 2020. [Online]. Available: https://ipg-automotive.com/products-
services/simulation-software/carmaker/. [Data uzyskania dostępu: 17 maja 2020].
[115] Mechanical Simulation Corporation, „CarSim,” Mechanical Simulation Corporation, 2020.
[Online]. Available: https://www.carsim.com/. [Data uzyskania dostępu: 17 maja 2020].
[116] Dassault Systèmes, „Simpack MBS Software,” Dassault Systèmes, [Online]. Available:
https://www.3ds.com/products-services/simulia/products/simpack/. [Data uzyskania dostępu:
17 maja 2020].
[117] Keeree, „Kinematic Car Suspension - Sport Car,” Unity Technologies, 2020. [Online].
Available: https://assetstore.unity.com/packages/tools/animation/kinematic-car-suspension-
sport-car-75321. [Data uzyskania dostępu: 17 maja 2020].
[118] Unity Technologies, „https://unity.com/,” Unity Technologies, 2020. [Online]. Available:
https://unity.com/. [Data uzyskania dostępu: 17 maja 2020].
[119] BeamNG, „BeamNG.drive,” BeamNG, 2020. [Online]. Available: https://www.beamng.com/.
[Data uzyskania dostępu: 18 października 2020].
[120] Puc Rio, „Lua,” Puc Rio, [Online]. Available: https://www.lua.org/. [Data uzyskania dostępu:
17 maja 2020].
[121] Image Space Incorporated, „rFactor 2,” Image Space Incorporated, [Online]. Available:
https://www.studio-397.com/. [Data uzyskania dostępu: 17 maja 2020].
[122] E. Garcia, „Vehicle Physics Pro,” Vehicle Physics, [Online]. Available:
https://vehiclephysics.com/.
[123] D-BOX Technologies Inc., „D-BOX,” D-BOX Technologies Inc., [Online]. Available:
http://tech.d-box.com/training-and-simulation/. [Data uzyskania dostępu: 17 maja 2020].
[124] CXC Simulations, „Motion Pro II Racing Simulator,” CXC Simulations, [Online]. Available:
https://www.cxcsimulations.com/. [Data uzyskania dostępu: 12 kwietnia 2020].
[125] K. Park, S. Han i H. Lee, „A Study on Shared Steering Control in Driving Experience
Perspective: How Strong and How Soon Should Intervention Be?,” arXiv, 16 września 2018.
[126] H. Harrison, „Multi-Level Dynamical Parameter Estimation: Hypothesis Testing with
Dynamical Systems,” University of Connecticut, 9 czerwca 2017.
190
[127] Vehicle Physics, „@VehiclePhysics,” Vehicle Physics, [Online]. Available:
https://twitter.com/VehiclePhysics. [Data uzyskania dostępu: 19 maja 2020].
[128] White Smoke, „Traction ellipse and tyre force,” White Smoke, [Online]. Available:
http://white-smoke.wikifoundry.com/page/Traction+ellipse+and+tyre+force. [Data uzyskania
dostępu: 25 maja 2020].
[129] cars-data.com, „Cars-data,” cars-data.com, 2019. [Online]. Available: https://www.cars-
data.com/. [Data uzyskania dostępu: 25 maja 2020].
[130] M. Sheridan, „Ford Focus with ESP,” 21 kwietnia 2009. [Online]. Available:
https://www.youtube.com/watch?v=YjvNxzT31Wc. [Data uzyskania dostępu: 25 maja 2020].
[131] Oracle, „Java,” Oracle, [Online]. Available: https://www.java.com. [Data uzyskania dostępu:
6 października 2020].
[132] The Apache Software Foundation, „Apache Maven Project,” The Apache Software
Foundation, [Online]. Available: https://maven.apache.org/. [Data uzyskania dostępu: 27
maja 2020].
[133] A. Somov, „SnakeYaml,” [Online]. Available:
https://bitbucket.org/asomov/snakeyaml/src/master/. [Data uzyskania dostępu: 27 maja 2020].
[134] C. Evans i O. Ben-Kiki, „YAML Ain't Markup Language,” [Online]. Available:
https://yaml.org/. [Data uzyskania dostępu: 27 maja 2020].
[135] The Apache Software Foundation, „Commons Math: The Apache Commons Mathematics
Library,” The Apache Software Foundation, 2016. [Online]. Available:
http://commons.apache.org/proper/commons-math/. [Data uzyskania dostępu: 6 października
2020].
[136] D. Petrecki, „Integrated Driver Support System,” 14 czerwca 2018. [Online]. Available:
https://github.com/dpetrecki/research-idss. [Data uzyskania dostępu: 21 października 2020].
[137] R. Rajamani, „Lateral Vehicle Dynamics,” w Vehicle Dynamics and Control, Boston,
Springer, 2011, pp. 15-46.
[138] ISO/TC 22 Road vehicles Technical Committee, „Road vehicles — Test procedure for a
severe lane-change manoeuvre,” września 1975. [Online]. Available:
https://www.iso.org/standard/9494.html. [Data uzyskania dostępu: 18 października 2020].
[139] A. Reński, „Identification of Driver Model Parameters,” International journal of
occupational safety and ergonomics, pp. 79-90, 01 lutego 2001.
[140] The Apache Software Foundation, „Class PolynomialCurveFitter,” 15 maja 2014. [Online].
Available: https://commons.apache.org/proper/commons-math/javadocs/api-
191
3.3/org/apache/commons/math3/fitting/PolynomialCurveFitter.html. [Data uzyskania
dostępu: 16 lipca 2020].
[141] Python Software Foundation, „Python 3.0,” Python Software Foundation, [Online].
Available: https://www.python.org/. [Data uzyskania dostępu: 18 marca 2020].
[142] Google inc., „TensorFlow,” Google inc., [Online]. Available: https://www.tensorflow.org/.
[Data uzyskania dostępu: 18 marca 2020].
[143] The TensorFlow Authors, „Load images,” 10 września 2020. [Online]. Available:
https://www.tensorflow.org/tutorials/load_data/images. [Data uzyskania dostępu: 20
października 2020].
[144] Microsoft Corp, „Dokumentacja języka C#,” Microsoft Corp, [Online]. Available:
https://docs.microsoft.com/pl-pl/dotnet/csharp/. [Data uzyskania dostępu: 18 marca 2020].
[145] S. Osowski, Sieci neuronowe w ujęciu algorytmicznym, Warszawa: WNT, 1997.
[146] W. Kahan, „IEEE Standard 754 for Binary Floating-Point Arithmetic,” Lecture Notes on the
Status of, 1 października 1997.
[147] C. Chui i G. Chen, „Kalman Filter: An Elementary Approach,” w Kalman FIltering with
Real-TIme Applications, Berlin, Springer, 2009, pp. 20-32.
[148] B. de Finetti, M. C. Galavotti, H. Hosni i A. Mura, „Bayes’ Theorem,” w Philosophical
Lectures on Probability, Dordrecht, Springer, 2008, pp. 31-45.
[149] D. Ashlock, Evolutionary Computation for Modeling and Optimization, Nowy Jork: Springer,
2006.
[150] S. Siddabattuni i T. Schuman, „Dielectric spectroscopy and stimulated current analyses of
polymer-ceramic nanocomposites,” w Spectroscopy of Polymer Nanocomposites, Nowy Jork,
William Andrew, 2016, pp. 276-311.
[151] H. Lee, H. Kim i S. Choi, „Driving Skill Modeling Using Neural Networks for Performance-
based Haptic Assistance,” arXiv, 12 sierpnia 2018.
[152] S. Nan, S. Danfeng i Y. Dejun, „An Integrated Stability Control System for Decentralized
Drive Electric Vehicles,” w 36th Chinese Control Conference (CCC), Dalian, 2017.