Symulator EU07 (i nie tylko) > Symulator

 O AI słów kilka...

(1/3) > >>

youBy:
O AI słów kilka...
AI (Artificial Intelligence, ang. 'sztuczna inteligencja') jest już ładnych kilku lat nieodłącznym elementem MaSzyny. Jednakże raz po raz można spostrzec, że coś jest nie tak z jego zachowaniem. Bardzo często są to niedoskonałości samego AI, a raczej luźnego zbioru kilku nie do końca uporządkowanych reguł dotyczących prowadzenia pojazdu i składu. O ile rozpędzanie się i utrzymywanie zadanej prędkości z rozkładu jazdy nie stanowi jakiegoś problemu, o tyle przestrzeganie ograniczeń, zwalnianie i zatrzymywanie się w miejscu nie są najmocniejszą stroną sztucznego maszynisty. Oto kilka czynników, które wpływają na skuteczność AI.

Po pierwsze, skład. Długie pociągi towarowe mają z reguły ustawiony przebieg hamowania G, czyli wolnodziałający. Pełne zahamowanie i zluzowanie może trwać po 30-40 sekund. Nie jest łatwo przeuczyć AI, że czasem trzeba kapkę poczekać, zamiast ciągle zmniejszać ciśnienie w przewodzie hamulcowym i potem gwałtownie dawać w popełnianie z nadzieją, że już, zaraz, od razu odhamuje się cały skład. Istnieje środek zapobiegawczy na to:
a) nie dawać opóźnienia G do wagonów towarowych, co jednak wpływa na prowadzenie pociągu przez człowieka - nie polecane;
b) sprawić, by AI wymuszało na wagonach ciśnienie w siłownikach układu hamulca. Jest to metoda dosyć kontrowersyjna, gdyż umniejsza realizm fizyki, aczkolwiek znacząco zwiększa skuteczność prowadzenia komputera pociągów na nastawieniu G, gdyż opóźnienie zmniejsza się w sposób widoczny. Pewne kroki zostały już w tę stronę poczynione i na Quarku (trasa dolna) AI doskonale wjeżdża w ograniczenie, troszkę gorzej radzi sobie z hamowaniem w peronach (nie przerzyna, ale czasem staje za daleko od semafora wyjazdowego). Jazda po Całkowie też nie sprawiała większych niespodzianek.

Po drugie, poprawne ince. Wiele tarcz ostrzegawczych zapisuje sobie w komórce pamięci, że przy semku jest 0 albo Vmax. Ale czy tak jest w rzeczywistości? Sygnały S1x oznaczają 40 przy semaforze. Jednak zanim AI dojrzy semafor, przygotowuje się do zatrzymania, dlatego ważne są poprawne wskazania w incach, inaczej komputer będzie chciał się niepotrzebnie zatrzymać w miejscu, gdzie nie powinien. Należy na to zwrócić dużą uwagę. Sądzę, że to zaszłość po dawnych, bezwładnych bardzo hamulcach.

Kolejna sprawa, to poprawne ustawienie wskaźników w scenerii. Czy zastanawiał się ktoś, dlaczego w Quarku między Polem i Dejawami wskaźniki W8 są bardzo blisko W9? Otóż kiedyś AI miało bardzo duże problemy z hamowaniem. Poza tym, wskaźnik musiałby być ustawiony przed semaforem SBL. Wirtualny maszynista jeździ tak, jak mu każą, więc kolejność sygnałów jest bardzo ważna. Doskonale widać to na przykładzie krzyżowej, gdzie AI dosyć mocno szaleje, np. za Klonowem w stronę Markowa Dolnego. Najpierw dostaje z W27 szlakową 90,
--- Kod: ---SetVelocity 90 90
--- Koniec kodu ---
później S2 na SBL,
--- Kod: ---SetVelocity -1 -1
--- Koniec kodu ---
przez co szlakowa przestaje obowiązywać! Następnie W8
--- Kod: ---SetProximityVelocity 800 40
--- Koniec kodu ---
i unieważniający znowu semafor SBL, po czym nagle AI jedzie 70 w miejscu, gdzie powinno jechać tylko 40.
--- Kod: ---Velocity 40.0 (we wpisie toru)
--- Koniec kodu ---
Po wyjeździe dostaje W9 kończące.
--- Kod: ---SetVelocity -1 -1
--- Koniec kodu ---
Sztuczna inteligencja, jak na razie, nie umie sobie tego uporządkować i narysować na schemacie prędkości. W takim wypadku bezwzględnie należy powtarzać zdarzenia powiązane ze wskaźnikiem W8 zaraz za semaforem odstępowym SBL.

Cały ten post poświęciłem tylko jeździe pociągowej, gdyż, w porównaniu z manewrami, jest to bardzo dobra strona obecnego vMecha. Oczywiście będą prowadzone prace nad rozwojem sztucznego maszynisty w stronę lepszego sterowania pociągiem, hamowania  i przestrzegania ograniczeń. Być może uda się także coś zwojować w sprawie jazdy manewrowej (Shunt), gdyż działanie w tym trybie jest mocno uproszczone.


youBy

Ra:
Moim zdaniem odwzorowanie fizyki jazdy w pojazdach sterowanych przez AI (zwłaszcza hamowanie) jest niezbyt potrzebną komplikacją (zwłaszcza że AI steruje pośrednio, kręcąc nastawnikiem i kranami). Ważniejsze jest to, żeby AI jeździło dokładnie tak, jak mu się każe, z wskazaną prędkością i stawało dokładnie tam, gdzie powinno.

Co do maksymalnej prędkości szlakowej, to musiałoby to być jakoś rozróżnione, czy zadawana do AI prędkość dotyczy szlaku (W8, W9, W27), czy związana jest z zajętością odcinka (S2..S4, S10..S13). Wydaje mi się, że szlakowa wraz z ograniczeniami powinna być wpisana w velocity toru.

youBy:

--- Cytat: Ra w 05 Października 2008, 15:58:31 ---Moim zdaniem odwzorowanie fizyki jazdy w pojazdach sterowanych przez AI (zwłaszcza hamowanie) jest niezbyt potrzebną komplikacją (zwłaszcza że AI steruje pośrednio, kręcąc nastawnikiem i kranami). Ważniejsze jest to, żeby AI jeździło dokładnie tak, jak mu się każe, z wskazaną prędkością i stawało dokładnie tam, gdzie powinno.
--- Koniec cytatu ---
Tak zwana fizyka klocka jest dosyć ciekawym sposobem jazdy, jednakże sprawia pewne problemy:
a) trzeba dzielić fizykę pojazdów w zależności od tego, kto steruje;
b) autopilot będzie oderwany od kabiny;
c) pasażer w wagonie nie będzie miał niektórych efektów dźwiękowych (np. dźwięku hamulców, pisku).

--- Cytat: Ra w 05 Października 2008, 15:58:31 ---Co do maksymalnej prędkości szlakowej, to musiałoby to być jakoś rozróżnione, czy zadawana do AI prędkość dotyczy szlaku (W8, W9, W27), czy związana jest z zajętością odcinka (S2..S4, S10..S13). Wydaje mi się, że szlakowa wraz z ograniczeniami powinna być wpisana w velocity toru.
--- Koniec cytatu ---
Dlatego też chciałbym zrobić jakąś taką tabelkę z danymi o ograniczeniach, którą AI by na bieżąco uzupełniało. W takiej tabeli można by było również zawrzeć przystanki osobowe, które stanowiły by obiekty typu "stań dokładnie, poczekaj, rusz".

El Mecánico:
Z postów was obu wynika, że jest przede wszystkim problem z przekazywaniem właściwej informacji ze szlaku (tor, wskaźniki, semki) do AI oraz z hamowaniem wagonami towarowymi (chociaż tutaj to raczej wydaje mi się niedopatrzeniem ze strony twórców symka, sory).
Myślę, iż AI powinno przy rozruchu scenerii wykonywać wstępną analizę szlaku (WOS, tory, wskaźniki) i trzymać się tych informacji jako bazowych, a następnie w trakcie jazdy poprawiać tylko semkami, ale w ten sposób, że wskazanie semafora nie powoduje zwiększenia prędkości ponad dopuszczalną w danym miejscu:

if(predkosc_z_semka>szlakowa) predkosc=szlakowa else predkosc=semkowa;

A teraz hamulce: wystarczy dopisać blok, który w czasie podłączania się na skład (rozruch scenerii) zapyta rewidenta czy ma hamulce ustawione na wolnodziałające i odpowienio sie do tego dostosuje, czyli będzie wykonywał kolejną czynność nieco później (zmiana w programie stałej kontrolującą interwał czasowy pomiędzy akcjami AI na zmienną i odpowiednie dostosowanie jej wartości do pociągu).

bohunIC:
Bry!

Jako że jestem zainteresowany tematem, bo bezpośrednio mnie dotyczy. Przez ostatni rok przeleciałem przy pomocy innych kolegów z forum po wszystkich eventach łącznie z Shunt. Wydaje mi się że sprawę sterowania AI należałoby rozpatrzyć od początku tj jak wspominacie wyżej najprościej jak można aby AI rozróżniało jedynie:

ograniczenia,
wskaźniki,
sygnały semaforów.

Niepotrzebne jest super odwzorowanie fizyki jazdy, wystarczy tylko że będzie wydawać dzwięki podczas jazdy, hamować, przyśpieszać i reagować na eventy.

Należałoby również zrobić dokładny przegląd incy semaforów i wskażników. Należy je dostosowac do standardów. Nie wszytskie zawierają shp a powinny, dotyczy to również tarcza i SBL. Powstało tyle plików inc semaforów że nie wiadomo o co chodzi. Wystarczy stworzyć SBL3 i 4stawną, powtarzacze, 3, 4, i 5 komorowe semafory z pasem zielony/pomarańczowym plus to samo w wersji podwieszanej. Cała reszta musiała by być autoryzowana i dostosowywana do standardów. Teraz jest straszny bałagan i większość semków nie działa albo powoduje błędy.

Jestem gotowy zabrać się za to. Zrobić nowe modele semaforów (ulepszyć je wizualnie), ktoś musi mi pomóc z incami i dostosowaniem do exe tak aby AI już nie gubiło się jak teraz.

Czekam na wasze propozycje. yB jak poprawisz to to warto zrobić porządny katalog z porządnymi semkami a wtedy skączy się ''ujadanie''.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod