Autor Wątek:  O AI słów kilka...  (Przeczytany 5325 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
O AI słów kilka...
« dnia: 05 Października 2008, 15:29:19 »
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,SetVelocity 90 90później S2 na SBL,SetVelocity -1 -1przez co szlakowa przestaje obowiązywać! Następnie W8 SetProximityVelocity 800 40i unieważniający znowu semafor SBL, po czym nagle AI jedzie 70 w miejscu, gdzie powinno jechać tylko 40.Velocity 40.0 (we wpisie toru)Po wyjeździe dostaje W9 kończące.SetVelocity -1 -1Sztuczna 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
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 336
Odp: O AI słów kilka...
« Odpowiedź #1 dnia: 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.

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.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
Odp: O AI słów kilka...
« Odpowiedź #2 dnia: 05 Października 2008, 17:08:15 »
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.
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).
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.
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".
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 2
Odp: O AI słów kilka...
« Odpowiedź #3 dnia: 05 Października 2008, 19:37:20 »
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).
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline bohunIC

  • Zasłużony dla Symulatora
  • Wiadomości: 1407
  • Ну погоди
    • Zobacz profil
  • Otrzymane polubienia: 14
Odp: O AI słów kilka...
« Odpowiedź #4 dnia: 05 Października 2008, 19:42:21 »
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''.

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
Odp: O AI słów kilka...
« Odpowiedź #5 dnia: 05 Października 2008, 20:11:50 »
W tym miejscu przypomniało mi się coś bardzo ważnego, o czym zapomniałem napisać: rozkłady jazdy. Otóż AI z nich efektywnie korzysta, przez co szybkość szlakowa zdefiniowana tam nie jest nadpisywana przez semafory. W ten spsób w Quarku po trasie dolnej komputer nie pojedzie więcej niż 80, bo wie, że mu nie wolno.

Co do SHP - lepiej, żeby to był osobny inc, gdyż można wtedy w dobrym miejscu ustawić rezonator, nie jest się ograniczonym pozycją To/semka.

Blok przy podłączaniu - gorzej, jak w składzie masz trochę wagonów na kilku różnych nastawieniach. Wtedy trzeba by policzyć np. długość i masę i ustawić wszystko odpowiednio do potrzeb.

Co do semków i torów - trzeba będzie jakoś potablicować wszystko oddzielnie (10 komórek ograniczeń i 2 na semki chyba starczą) i potem liczyć metodą najniższej prędkości.
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 336
Odp: O AI słów kilka...
« Odpowiedź #6 dnia: 05 Października 2008, 20:35:06 »
No to mamy chyba 5 źródeł ustawienia prędkości:
- semafory wrzucają eventem prędkość aktualną i dalszą - jak rozumiem, event taki trzeba ustawić odpowiednio wcześniej, żeby na S6..S13 zdążył zhamować do odpowiedniej prędkości przed semaforem; nie wiem, jak dokładnie to się dzieje, czy np. przekazywane są współrzędne semafora,
- tarcze ostrzegawcze informują o zmianie prędkości po pewnym dystansie; też nie wiem, czy przekazywane i używane są ich współrzędne,
- wartość velocity w torze, nie wiem, czy jest "widoczna" z daleka, czy działa podobnie jak event - wydaje mi się, że działa z pewnej odległości,
- ograniczenia - eventy generowane przez wskaźniki W9 (W4 chyba też?),
- rozkład jazdy - po czym AI rozpoznaje poszczególne szlaki?

I teraz pytanie, jak to wszystko dzieje, że działa? Jakie są między nimi priorytety i zależności?
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
Odp: O AI słów kilka...
« Odpowiedź #7 dnia: 05 Października 2008, 20:46:41 »
Semafory/To:
Są przekazywane współrzędne semafora/tarczy. O semaforze z reguły też mówi wcześniej semafor/tarcza, więc wiadomo, czego się należy spodziewać.

Rozkład jazdy:
Jak działa dokładnie, wie chyba tylko jedna osoba, które odeszła z projektu. Niemniej jednak jakoś jest wczytywana pierwsza szlakowa (chyba tylko pierwsza, trzeba by to sprawdzić dokładniej).

Velocity:
Niby prędkość jest widoczna z daleka, ale jednak nie do końca, gdyż powstaje problem z SBL.

Priorytetem jest (teoretycznie) szlakowa z rozkładu jazdy, kolejność następowania po sobie sygnałów i najniższa z wartości występujących równolegle w jednym punkcie.
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 2
Odp: O AI słów kilka...
« Odpowiedź #8 dnia: 06 Października 2008, 12:54:50 »
Semafory/To:
Są przekazywane współrzędne semafora/tarczy. O semaforze z reguły też mówi wcześniej semafor/tarcza, więc wiadomo, czego się należy spodziewać.
Więc ułatwione mamy przekazanie informacji o semaforze do AI. Otóż: AI dojeżdża do tarczy albo powtarzacza, widzi na niej, że semafor którego dotyczy wskazuje sygnał SXX, i odpowiednio reaguje.

Cytuj
Rozkład jazdy:
Jak działa dokładnie, wie chyba tylko jedna osoba, które odeszła z projektu. Niemniej jednak jakoś jest wczytywana pierwsza szlakowa (chyba tylko pierwsza, trzeba by to sprawdzić dokładniej).
W jakim języku jest napisany ten kod?

Cytuj
Velocity:
Niby prędkość jest widoczna z daleka, ale jednak nie do końca, gdyż powstaje problem z SBL.
Potraktować SBL jak semafor (w końcu nim jest;]).

Cytuj
Priorytetem jest (teoretycznie) szlakowa z rozkładu jazdy, kolejność następowania po sobie sygnałów i najniższa z wartości występujących równolegle w jednym punkcie.
Czyli wychodzi na to, że robiąc scenerię ze składami prowadzonymi AI trzeba bezwzględnie napisać do nich poprawny rozkład jazdy.
« Ostatnia zmiana: 06 Października 2008, 14:08:26 wysłana przez Quark-t »
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline JONIN_EZT

  • Wiadomości: 918
  • Dalej student. Linia 202 maker
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: O AI słów kilka...
« Odpowiedź #9 dnia: 06 Października 2008, 18:31:14 »
SHP generalnie jest gotowe do użytku (1 plik INC) Do przerobionej wersji przeze mnie został tak wprowadzony że postawienie punktu (active inc) równo z linia toru jest automatycznie dostawiany do swojej pozycji gdzie powinien byc (tutaj mogą byc niezgodności odległości od szyny)
http://eu07.pl/forum/index.php/topic,6895.0.html <- to tak dla informacji

Jedynym jak na razie sposobem do SBL będzie postawienie dodatkowego toru z informacją o prędkości za torem wyzwalającym S1, chyba że jakoś tak się dostosuje SBL by uzyskac jeszcze jeden dodatkowy parametr (p8) który by posiadał informację o prędkości [coś na zasadzie przepisywania infomacji z W27], to jedynie można by uzyskac wstawiając SBL nie na zasadzie (Signal INC) a na zasadzie (Active INC) Mam tu namyśli to że przy wstawianiu (przez 3DSMAXA) nie ma już parametrów powyżej (p7), a przy Active mamy dodatkowo (p8) (p9). Cała procedura przy tym układzie INCów SBL działa normalnie.
Linia 202
Układ torowy (tory główne) - 100%
Układ torowy (reszta) - 15%

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3926
    • Zobacz profil
  • Otrzymane polubienia: 279
Odp: O AI słów kilka...
« Odpowiedź #10 dnia: 06 Października 2008, 18:41:41 »
Ja myślę, że w tej chwili najprościej, to stworzyć rozkład jazdy (1 dla całego danego przebiegu AI) i zobaczyć co się będzie działo lub za każdym semkiem postawionym przypisać do 1 toru velocity.

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: O AI słów kilka...
« Odpowiedź #11 dnia: 05 Listopada 2008, 22:06:27 »
Co do parametrów w 3ds to można to zmienić. Jednak potrzebny jest do tego semafor z odpowiednią ilością opcji. Tak, żeby symek nie sypał się przy ładowaniu.
Problemem może być to, że 3ds przy eksporcie nie rozpoznaje czy semafor jest sbl czy jakikolwiek inny więc zawsze będzie chciał zapisać 8 parametrów. Więc trzebaby chyba poprawić wszystkie semafory (ukłon w stronę Bohuna). Jeśli nie to zostaje rozpoznawanie typu po nazwie co zawsze wiąże się z usztywnieniem.
« Ostatnia zmiana: 05 Listopada 2008, 22:08:36 wysłana przez gfirlejczyk »
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es