Читать книгу Jak myślą inteligentne maszyny - Sean Gerrish - Страница 17

Jak skonstruować samochód autonomiczny

Оглавление

Jak to możliwe, że Humvee przebył samodzielnie 7 mil? Mogło wam się już gdzieś obić o uszy, że pojazdy autonomiczne, by poruszać się na własną rękę, wykorzystują uczenie maszynowe, a konkretniej głębokie sieci neuronowe. Jednak gdy Chris i jego współpracownicy, już po wyścigu, opowiadali o Humvee, ani słowem nie wspomnieli o uczeniu maszynowym czy o sieciach neuronowych. Był rok 2004, a my dopiero dziesięć lat później odkryliśmy, jak wytrenować sieci neuronowe w zdolności „widzenia obiektów”. Z jakich technologii korzystały więc te pierwsze samochody autonomiczne? W kilku następnych rozdziałach postaram się odpowiedzieć na to pytanie i jednocześnie wyjaśnić działanie algorytmów umożliwiających im poruszanie się samodzielne. Zacznę od próby wytłumaczenia, jak to się dzieje, że pojazd autonomiczny potrafi przejechać długi dystans po pustyni, na której nie ma ruchu drogowego, mając do dyspozycji listę miejsc do odwiedzenia. W kolejnych rozdziałach postaram się objaśnić algorytmy, dzięki którym pojazdy autonomiczne zdolne są „widzieć” otaczający świat oraz umieć się poruszać w środowisku miejskim na tyle dobrze, by przestrzegać przepisów drogowych w Kalifornii. Zanim jednak przejdziemy do tych szczegółowych zagadnień – z których każde odnosi się do oprogramowania pojazdu autonomicznego – spójrzmy jeszcze, w jaki sposób komputer kontroluje poziom sprzętowy samochodu.

Vaucanson, projektując Flecistę, o którym mówiliśmy w poprzednim rozdziale, zaprogramował go do wygrywania konkretnych utworów dzięki umieszczeniu kołków w określonych miejscach obracającego się bębna. Kołki naciskały na dźwignie kontrolujące ruch warg Flecisty, przepływ powietrza w jego ustach oraz jego palce. Kiedy Vaucanson chciał, by Flecista zagrał nowy utwór, wystarczyło, że stworzył nowy bęben z kołkami rozmieszczonymi w innych miejscach. Kiedy zaś chciał, by posąg inaczej poruszał ustami i palcami – zachowując katalog 12 utworów – musiał przekształcić dźwignie, łańcuchy i złącza w urządzeniu. Projekt automatu podzielił więc na dwie części – obracający się bęben oraz pozostałą część systemu – co sprawiło, że praca nad nim oraz myślenie o nim stały się prostsze. Tak samo możemy uczynić w przypadku samochodu autonomicznego.

Na razie skupmy się na samej prędkości samochodu. Mówiąc najprościej, zadaniem samochodu jest przekształcić liczbę przekazaną mu przez komputer – niech będzie to 25 – w coś bardziej namacalnego, a konkretnie prędkość. Zadanie staje się trudniejsze do wykonania, niż na to wygląda, ponieważ silnik nie zna pojęcia liczby 25. Na przykład, nawet wiedząc, że ustawienie napięcia silnika elektrycznego na poziomie 250 woltów sprawi, iż samochód będzie poruszać się z prędkością 25 mil na godzinę, nie możemy oczekiwać, że odpowiednio zmniejszając i zwiększając napięcie, otrzymamy taką prędkość, jaką chcemy. Jeśli więc chcielibyśmy, żeby samochód poruszał się z prędkością jednej mili na godzinę, nie powinniśmy się spodziewać, że aplikowanie silnikowi napięcia w wysokości 10 woltów załatwi sprawę. Przy takim napięciu samochód w ogóle nie ruszyłby z miejsca.

Ludzie żyjący w tym samym czasie co Vaucanson rozwiązali ten problem za pomocą urządzenia zwanego odśrodkowym regulatorem obrotów, który wytwarza sprzężenie zwrotne w celu kontroli prędkości. Odśrodkowy regulator obrotów to „kręcące się” urządzenie posiadające dwie metalowe kule – jak przedstawia to ilustracja 2.1 – które przywodzi na myśl silnik parowy i warsztaty czasów oświecenia. Gdy silnik zaczyna pracować szybciej, regulator również obraca się szybciej, a metalowe kule oddalają się od siebie dzięki sile odśrodkowej. Za pomocą zestawu dźwigni zawór przewodu paliwowego wprowadzonego do silnika zamyka się, spowalniając go. Jeśli zaś silnik pracuje zbyt wolno, urządzenie dodaje paliwa do silnika parowego, przywracając poprzednią prędkość. Dostosowując ilość paliwa trafiającego do silnika, regulator utrzymuje jego prędkość na stabilnym poziomie.


Ilustracja 2.1. Odśrodkowy regulator obrotów, prekursor elektronicznych systemów kontroli. Im szybciej działa silnik, tym szybciej obraca się oś z „latającymi kulami”, które odpychane są na zewnątrz za sprawą siły odśrodkowej. W ten sposób – za pomocą serii dźwigni – zamykany jest zawór silnika. Jeśli silnik pracuje zbyt wolno, zawór przepuszcza więcej paliwa

Wadą takiego regulatora jest to, że wie on jedynie, jak utrzymywać pracę silnika na tym samym poziomie. Współczesne pojazdy autonomiczne również wykorzystują pętlę zwrotną, z tą jednak różnicą, że potrafią poruszać się tylko z taką prędkością, jaką narzuci im program komputerowy. Zasadę pętli zwrotnej przedstawia ilustracja 2.2. Prędkość docelowa – załóżmy, że wynosi ona 25 mil na godzinę – to dana wejściowa pętli zwrotnej, która, zamiast kręcącego się urządzenia, wykorzystuje elektroniczny czujnik prędkości do ustalenia, jak daleko jest prędkości kół do prędkości docelowej.


Ilustracja 2.2. Pętla kontroli w złożonym z trzech reguł regulatorze PID opisanym w tekście. Regulator wykorzystuje informacje zwrotne pochodzące z prędkościomierza, by dostosować dane wejściowe silnika, takie jak moc

Intuicyjnie rzecz biorąc, czynnością, jakiej oczekujemy od algorytmu kontrolującego prędkość, jest zwiększanie dopływu energii do silnika, gdy samochód porusza się zbyt wolno, oraz zmniejszanie jej, gdy jedzie zbyt szybko. Jednym z powszechnych sposobów dostosowywania energii dostarczanej silnikowi jest kontrola proporcjonalna, nazwana tak, ponieważ zmiany w dopływie energii równają się różnicy między prędkością bieżącą a prędkością docelową pomnożonej przez określoną liczbę. Kontrola proporcjonalna nie jest rozwiązaniem idealnym – jeśli samochód jedzie pod górę lub pod wiatr, będzie poruszał się wolniej, niż chcemy. W związku z tym do takiego algorytmu kontrolującego należy wprowadzić kilka poprawek, tak aby w sytuacji, gdy samochód stale porusza się zbyt wolno, silnik został trochę pobudzony.

Jednym z najpowszechniejszych algorytmów kontrolujących jest podobny do opisanego wyżej zestaw trzech prostych reguł doprowadzający samochód do żądanej prędkości. To właśnie taki regulator (specjaliści nazywają go regulatorem PID) wykorzystany został w wielu samochodach autonomicznych, o których będzie mowa w kolejnych rozdziałach książki10.

Skoro wiemy już mniej więcej, jak kontrolowany jest poziom sprzętowy, nie musimy myśleć zbytnio o detalach. Projektowanie sprzętu jest z pewnością rzeczą ważną, możemy jednak uznać, że stanowi ono osobne zadanie i temat na inną książkę. Aby kontrolować prędkość i sterowanie pojazdem, musimy po prostu napisać oprogramowanie, które dyktuje, z jaką prędkością ma się poruszać samochód i jak szybko mają obracać się jego koła. Mówiąc o poruszaniu się samochodu, zmieniliśmy perspektywę ze sprzętu na oprogramowanie, możemy więc skupić się teraz wyłącznie na tym ostatnim.

Jak myślą inteligentne maszyny

Подняться наверх