W ciągu ostatniej dekady nastąpiło dramatyczne poprawienie się mocy obliczeniowej PC'tów, jakości video prezentacji, ilości i dokładności obliczeń modelów symulacyjnych, ale i tak jedna rzecz ciągle zawodzi. Tak jest, force feedback, albo w skrócie FFB. Jako produkt konsumencki FFB istnieje od połowy lat 80tych i cały czas jest bardzo usprawniany. Kierownice, joystick'i, wolanty – wszystkie wibrują, pchają, ciągną ale jednak wciąż nie jest to uczucie jak w prawdziwym samolocie czy samochodzie.
Więc co się dzieje? To jet problem projektu, realizacji czy całej koncepcji?
Zbudowałem już wiele systemów FFB właściwie od zera – mechanicznie i elektronicznie. Te kierownice są 10 razy silniejsze i szybsze niż te które są dostępne w sklepach elektronicznych. Te systemy cechują się niską bezwładnością, oporami i wyższą kontrolą i dokładnością nad siłą niż to było przed nimi. Potrafią odpowiedzieć na reakcję siły i wysłać ją do PC'ta 1000 razy na sekundę. Więc czy te bardzo zaawansowane kierownice są 10 razy bardziej realne niż produkty, które znajdziemy w sklepach gdy podłączymy je do zwykłego PC'ta? Nie. Są silniejsze, szybsze i dokładniejsze, ale nie bardziej realne...
Może problem realizmu leży gdzieś indziej, ale nie w helikalnych zębatkach, paskach i precyzyjnym sterowaniu momentem? Może gdzieś pomiędzy całym konceptem symulacji jest coś co po prostu nie działa tak jak powinno?
Spróbuję rozłożyć na czynniki pierwsze jak modelujemy przedmioty w świecie wirtualnym i jak wchodzimy z nimi w interakcje ze świata rzeczywistego. Łatwiej jest posługiwać się przykładem niż teorią, więc...
Rozpatrzmy prosty symulator samochodowy. Samochód drogowy – przez swoją dynamikę jest prostszy niż samolot czy łódź podwodna. Prostota – ponieważ chcemy wyrzucić wszystko co jest nieistotne i zostawić bezwzględne minimum – wystarczająco, aby zrozumieć koncepcję. Nie musi się poruszać szybko, więc wyrzucimy silnik. Nie musi szybko hamować, więc rezygnujemy z hamulców. Nie będziemy się ślizgać pomiędzy ciasnymi zakrętami, więc zostawimy tylko jedno przednie koło. Ponieważ siły poprzeczne są małe niepotrzebny nam jest właściwie nawet układ kierowniczy, więc jego także się pozbędziemy.
Mamy teraz jeden jedyny symulator trójkołowca!
Apollo został wysłany na Księżyc pod kontrolą komputera, który miał 2 kilobajty pamięci i procesor o szybkości 2MHz. Oczywiście nowoczesny komputer z 4GB pamięci, czterema rdzeniami o częstotliwości 3GHz każdy i kierownicą ze specjalnie wyprofilowanymi helikalnymi zębatkami i podwójnymi silniczkami potrafi symulować tego trójkołowca tak dobrze, że gdy zamkniemy oczy poczujemy się znów jak trzylatek? W rzeczywistości nasz wymyślony symulator nie przypomina w niczym naszego rzeczywistego trójkołowca. Dlaczego?
Zacznijmy od początku i spójrzmy od początku jak nasz trójkołowiec został napisany. W jaki sposób większość (albo może wszystkie?) symulatory są.
Stworzyliśmy precyzyjny mechaniczny model ramy i inne ważne części. Przeliczyliśmy i zmierzyliśmy wszystkie przyłączone do ramy i ruchome masy, ich momenty bezwładności, pozycję ich środków ciężkości. Umieściliśmy ograniczenia w ruchu, obrotach, ślizgu tych części w relacji z innymi. Napisaliśmy wzory połączone ze sobą symulujące siły, ruch tych części włączając w to tarcia, elastyczność i tłumienie. Zmierzyliśmy opór aerodynamiczny, nawet poprzeczne siły działające na każdą z części – nawet miejsca, gdzie te siły się równoważą. Przepuściliśmy opon przez sprzęt testowy i otrzymaliśmy wykres sił poprzecznych, ustawienie momentów na wszystkich możliwych obciążeniach.
Odpalamy nasz symulator i robimy jazdę próbną. Nie przypomina to w niczym rzeczywistości. Dlaczego?!
Zobaczmy jak FFB jest otrzymywany w naszym symulatorze. Każda kierownica z FFB działa w bardzo prosty sposób. Odbiera komendy o siłach z symulatora działającego na komputerze i wysyła z powrotem raporty o dokładnej pozycji, aby dać znać symulatorowi jak bardzo i w którą stronę skręciliśmy kierownice. Wydaje się oczywiste, ale jeszcze raz – symulator wysyła komendy o sile do kierownicy i otrzymuje z powrotem informację z kierownicy.
Jak decydujemy o sile jaka ma być wysłana z symulatora do naszej kierownicy? Znajdujemy sumę wszystkich sił działających na przednią oś bazując na pionowym obciążeniu opony, prędkości obrotowej i pozycji kół. Jak znajdujemy pozycję przednich kół w odniesieniu do nadwozia? Proste! Dostajemy ją z kierownicy, prawda? Nawet nie musimy dzielić przez przełożenie układu kierowniczego skoro go nie posiadamy.
Cofnijmy się i powtórzmy. Wysyłamy informację o siłach działających na przednie koła samochodu do kierownicy i chwilę później otrzymujemy nową pozycję przednich kół naszego auta. Nie wydaje wam się to dziwne? Może nie, więc skupmy się na tym.
Rozpatrzyliśmy cały proces symulacji przednich kół i dynamiki układu kierowniczego do kierownicy z FFB. To co powinnio być precyzyjną symulacją przyspieszeń, tłumienia, tarcia na ruchomych przednich jest teraz zredukowane do plastikowego pudełka z kilkoma plastikowymi zębatkami z mniejszą niż 7bitów dokładnością.
Ale nawet najlepsza kierownica nie jest zaprojektowana do symulowania czegokolwiek. Po prostu się porusza kiedy tego zapragniesz. Jeśli będziesz ją trzymał mocno po prostu się nie poruszy. To wszystko. Możesz się kłócić, że kierownica ma jakiś naturalny moment bezwładności, tłumienia i mogą być uznane za zmniejszone własności przednich kół. Nie, moment bezwładności każdej kierownicy jest mniejszy nawet niż moment bezwładności sterowania i przedniego koła naszego prostego trójkołowa – zostawmy bezwładność przednich kół i układu kierowniczego prawdziwego auta nawet pomniejszonego o przełożenie układu.
Ok, moment bezwładności symulacji jest oczywisty – mamy dwa ogromne przednie koła w każdym aucie i one potrzebują siły, aby sprawić, żeby zaczęły przyspieszać. Mają „wagę”.
Ale po co tłumienie? Samochody nie mają amortyzatorów w układzie kierowniczym. Tak, nie mają, ale potrzeba tłumienia w symulacjach pochodzi z naturalnej amortyzacji w układzie kierowniczym i istnienia efektu żyroskopowego - zjawisko zachowania przestrzennej orientacji osi obrotu wirującego koła i styku w kierunku jednej strony koła w czasie skręcania lub zgodnego z zawieszeniem (zmienny camber.). Wynikiem siły zwrotnej jest proporcjonalna prędkość obrotu koła. Co w końcu jest ekwiwalentem dla tłumienia. Efekt żyroskopowy jest proporcjonalny do prędkości z jaką porusza się pojazd i jest jednym z powodów dla którego układ kierowniczy „twardnieje” przy większych prędkościach i motocykle potrzebują stabilności przy dużych prędkościach.
Ale zaczynamy błądzić. Doszliśmy do tego, że jeśli kierownica miałaby jakąś ilość tłumienia i bezwładności mogłaby symulować dla nas przednie koła?
Najlepsza symulacja tłumienia w kierownicy jest przeciętna. Nawet najgorsza, nie konsumencka kierownica jaką znam potrafi symulować bezwładność. To jest wskazówka do faktu, że wymaga to bardzo dokładnego oszacowania przyspieszenia kątowego. To jest niemożliwe z prostym enkoderem nawet z kilkoma tysiącami operacji na obrót kierownicy.
A teraz najgorsza wiadomość. Jak tylko delikatnie położysz swoje dłonie na kierownicy tłumienie i bezwładności wzrastają kilkukrotnie. Jak złapiesz kierownice mocniej nagle auto ma dziesięć razy bardziej masywne przednie koła. Żadne auto na świecie nie ma opon ze zmiennym momentem bezwładności!
Więc jaka powinna być „prawidłowa” droga w tym kierunku? Jak możemy symulować przednie koła wewnątrz symulatora? To nie byłby problem jeśli mielibyśmy
wszystkie potrzebne dane wejściowe – wszystkie siły działające na koła, ich pozycja, moment bezwładności, etc – i nie pozwolilibyśmy nikomu innemu ingerować w poprawną symulację.
Pamiętajmy o tym, że wspomnieliśmy o tym, że kierownica z FFB tradycyjnie otrzymuje komendy siłowe z symulatora i odsyła z powrotem pozycję kierownicy? Jednym ze sposobów pozbycia się naszego problemu byłoby włączenie wszystkiego natychmiast zamiast
wyślij komendę pozycji do kierownicy i odbierz z powrotem siłę użytą przez kierowcę. Po pierwsze to nie ma sensu. Ale spójrz jak działa prawdziwy samochód. Prezentuje Ci kierownicę w określonej pozycji i wtedy Ty przykładasz do niej silę w nadziei, że poruszy się ona tam gdzie chcesz. Wtedy auto porusza kierownicą poprzez koła zgodnie z zasadami fizyki. Kierownica znajduje się w pewnej pozycji i Ty przykładasz siłę aby ją poruszyć.
Ty kontrolujesz samochód przykładając siłę, a nie umieszczając kierownicę pod określonym kątem. Pomyśl o tym. Skręcasz, ale jedziesz nieco za szeroko. Co robisz? Dodajesz dodatkowe ekstra 10stopni obrotu? Nie, używasz nieco więcej siły, aby skręcić kierownicę bardziej. Ile? Prawdopodobnie nie masz pojęcia i ja także.
Co jeśli Twój samochód miałby kierownicę, która nie ma siły kiedy ją skręcasz? Inaczej mówiąc, kontrolowałbyś ją zmieniają pozycję kierownicy. Prawdopodobnie nie byłbyś w stanie jechać. Ale jest to perfekcyjne rozwiązanie dla symulatorów ponieważ tak symulatory są napisane.
Więc jeszcze raz, nowoczesny samochód przedstawia kierownice kierowcy i kierowca używa siły do zmiany kierunku jazdy. To jest kompletnie na odwrót jak niż jak kierownice FFB działają. Czy możemy zbudować takie urządzenie? Powinniśmy je nazywać Position Feedback? Kierownica PFB?
Jeśli jesteś zapoznany z przemysłem automatycznym i kontrolującym to prawdopodobnie już odgadłeś, że idealnym systemem dla naszych symulatorów jest kierownica z systemem serwo i sztywną pozycją gdzie moment wymagany przez pętlę PID jest nie tylko wysyłany do serwo motoru, ale jednocześnie wysyłany z powrotem do symulatora jako siła przyłożona przez kierowcę.
Nasza zaktualizowana pętla fizyczna działa teraz w ten sposób. Program pobiera pozycję kół, kalibruje ją w odniesieniu do układu kierowniczego – innymi słowy skaluje w dół zależnie od przełożenia układu – i wysyła do systemu kierowniczego. To jest teraz nowy punkt odniesienia. Zewnętrzna siła przyłożona przez kierowcę jest mierzona i wysyłana do symulatora. Symulator łączy to z układem kierowniczym i innymi znanymi siłami działającymi na przednie koła i przelicza dynamikę obrotową kół – kątowe przyspieszenie bazujące na momencie bezwładności, prędkość obrotową i w końcu nową pozycję kół. Co jest wysłane do naszej kierownicy jako obrót, staje się to nowym punktem odniesienia, nowa siła wraca z powrotem i wszystko zaczyna się od nowa.
Perfekcyjna harmonia. Nasz trójkołowiec w końcu zachowuje się jak rzeczywisty.
Czy możliwe jest to do uzyskania ze zwykłą kierownicą z FFB? Tak, do pewnego stopnia. Jeśli ustawisz bardzo mocny „spring effect”(komponent P) wspomagane przez krytyczne tłumienie(komponent D) wtedy otrzymasz coś na wzór serwo systemu. Wyciągnięcie momentu silnika z i do PC'ta jest bardziej problematyczne jak tylko możesz się domyślać przez przemieszczenie z punktu odniesienia (wejście komponentu P).
Jaki jest morał tej historii? Programy symulacyjne zależą od producentów sprzętu jako części ich systemu, kiedy to producenci nigdy nie zamierzali być „w pętli”. Tylko kilka osób w przemyśle rozumie jak „druga strona” albo nawet cały system pracuje i nie ma na ten temat żadnej dostępnej informacji albo dyskusji na ten temat. Mam nadzieje, że kiedyś zmieni się to na lepsze!
Leo Bondar, July 2011.