Autor Wątek:  Dyskusja o AI w MaSzynie  (Przeczytany 17947 razy)

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

Offline youBy

  • Deweloper
  • Wiadomości: 6167
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 876
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #30 dnia: 24 Czerwca 2011, 22:58:26 »
Ja o sieci neuronowej nie pisałem :D
Ogólnie można wydzielić dwa podejścia do tego tematu — danej drogi i danego opóźnienia. W pierwszym wypadku wykorzystujemy całą drogę na hamowanie i dopasowujemy stopień hamowania. W drugim zaś stosujemy jeden stopień hamowania i czekamy na odpowiedni moment do zahamowania. Problemem są wtedy hamowania, które trzeba wykonać z większą siłą, ale to można obejść odpowiednim warunkiem — jeśli nagle pojawia się duże wymagane opóźnienie, należy wdrożyć hamowanie pełne bądź 2/3.
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 firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #31 dnia: 25 Czerwca 2011, 08:36:29 »
Ja myślałem nad tym, czy by nie stworzyć profili hamowania odpowiadających mniej więcej zachowaniom mechaników. Czyli:
1. Łajza - wybiera drogę hamowania jako podstawę, nigdzie się nie spieszy, powoli hamuje na długim odcinku
2. Normalny - miks drogi i opóźnienia
3. Wariat - podstawą opóźnienie

W każdym przypadku musisz jednak znać maksymalne możliwe do uzyskania opóźnienie, oraz wykres dojścia do niego. Tylko w ten sposób możesz policzyć jaką drogę przejedziesz na danym stopniu hamowania. Szczególnie ważne to jest w przypadku podejścia o opóźnieniu jako podstawie.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline youBy

  • Deweloper
  • Wiadomości: 6167
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 876
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #32 dnia: 25 Czerwca 2011, 20:00:12 »
1. Łajza — hamuje zawsze z najniższym opóźnieniem, jakie może (amin).
2. Normalny — hamuje ze znanym sobie opóźnieniem ulubionego stopnia hamowania (aHK). Zwiększa je tylko wtedy, gdy droga jest za krótka.
3. Wariat — hamuje zawsze używając najwyższego możliwego opóźnienia (amax), chyba że to nie ma sensu — np. obniżenie prędkości o 10–20 km/h.
W załącznikach wykresy obrazujące hamowanie. Na osi pionowej jest prędkość, na osi poiomej jest… powiedzmy, że czas. Powinna być prędkość, ale nie chciało mi się parabolek robić ;) Pierwszy przedstawia hamowanie przez całą dostępną drogę – wymaga ono kilku hamowań i luzowań. Drugi przedstawia hamowanie wg mojej koncepcji. Opóźnienie aHK jest odpowiednio przeliczonym opóźnieniem z hamowania kontrolnego. Próg jest tak dobrany, że skład zawsze hamuje mocniej i prędkość mieści się pod krzywą. Właściwie wymaga to tylko jednego zahamowania. Nie potrzeba przewidywania zachowań składu, wystarczy tylko z grubsza ustalić próg luzowania VL. Ktoś może spytać: a co się stanie, jeśli opóźnienie amin, wynikające z drogi hamowania, jest większe niż znane aHK? Nic, przy niewielkiej różnicy hamowanie odbywa się normalnie. W międzyczasie wymagane opóźnienie z danego punktu rośnie i AI widzi, że coś jest nie tak. Wtedy następuje zwiększenie stopnia hamowania i prędkość się bezpiecznie zmniejsza. Jeśli amin w takiej sytuacji staje się niebezpiecznie większe (sięga powiedzmy 2∙aHK), wtedy wdrażane jest hamowanie pełne albo nagłe. Znajomość najwyższego opóźnienia niewiele da, bo i tak albo się wtedy zmieścimy, albo sygnał został zauważony za późno i nic się nie dało z tym zrobić.
« Ostatnia zmiana: 25 Czerwca 2011, 20:17:40 wysłana przez 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: 6341
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 372
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #33 dnia: 08 Lipca 2011, 15:42:29 »
Nie wiem, czy to gdzieś pisałem, ale tu będzie dobre miejsce. Mamy następujące maksymalne prędkości (wybieramy najmniejszą):
- konstrukcyjna dla składu
- rozkładowa
- drogowa (zwana szlakową)
- ustawiana sygnalizatorem (semaforem)
- ograniczenia odcinkowe (mogą się nakładać)
- ograniczenia ze względu na przeszkody na torze

Oprócz prędkości konstrukcyjnej wszystkie pozostałe są zależne od położenia składu w scenerii. W związku z tym na poziomie pociągu proponuję utworzyć tabelkę na te prędkości oraz modyfikację eventów ustawiających prędkość tak, aby było precyzyjnie określone, którą prędkość zmieniamy. Pewnym problemem jest ustalenie zakresu obowiązywania danej prędkości, bo wymagało by to określenia pozycji pojazdu w formie liniowej (w tym znajomości kilometrażu). Tabelka musiałaby być tworzona dynamicznie (albo mieć pozycje rezerwowe), aby można było dodawać do niej pozycje z zakresem obowiązywania.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline youBy

  • Deweloper
  • Wiadomości: 6167
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 876
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #34 dnia: 08 Lipca 2011, 16:28:40 »
Konstrukcyjna — jedna, stała. Rozkładowa — dwie: obecna i następna. Drogowa — dwie: obecna i następna. Semaforowa — dwie: obecna i następna. Ograniczona stale — dwie: obecna i następna. Ograniczona czasowo — dwie: obecna i następna. Przeszkodowa: jedna. Teoretycznie daje nam to 12 możliwości. Można jednak zauważyć pewną prawidłowość: prędkość rozkładowa jest niewyższa niż drogowa, czyli drogowa nam ucieka. Ograniczenia stałe/czasowe nie mogą się nakładać ramach swojej kategorii, co więcej, powinno unikać się niejednoznaczności (czyli nie stawiać serii krótkich ograniczeń jedno za drugim).
Moim zdaniem wystarczy zmodyfikowanie zdarzeń na tyle, żeby zawierały w sobie typ ograniczenia i modyfikować odpowiednią pozycję w tabeli. Skanowanie może odbywać się na odległość równą podwojonej drodze hamowania (albo powiększonej o połowę potrzebnej do zatrzymania pojazdu z opóźnieniem hamowania kontrolnego).
Jeszcze słówko odnośnie semaforów. Podawanie prędkości przy następnym nie ma sensu bez podania dokładnej informacji o odległości do niego. Lepszym rozwiązaniem jest umożliwienie bezpośreniej obserwacji kolejnych semaforów. Wtedy nie trzeba jechać asekuracyjnie no i można zareagować od razu na zmiany jego stanu. Dlatego też tarcze ostrzegawcze powinny zostać ograniczone do roli graficznego przedstawienia sygnału dla ludzi.
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: Dyskusja o AI w MaSzynie
« Odpowiedź #35 dnia: 14 Lipca 2011, 17:14:26 »
youBy, ale czy aby na pewno trzeba skanować szlak do przodu? Przecież przed wyjazdem pociągu na szlak ze stacji początkowej maszynista dostaje do ręki rozkład jazdy, wykaz ostrzeżeń stałych, wykaz ograniczeń czasowych. Na wszystkich jest kilometraż, wystarczy więc pilnować drogi i stosować się do listy ostrzeżeń z wykazów i rozkładu jazdy. Jedyne co nie jest ujęte w papierach to rzeczy nagłe i nieznane, typu wiatrołom leży na szlaku w poprzek;]
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6341
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 372
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #36 dnia: 14 Lipca 2011, 17:18:16 »
Skanować i tak trzeba, żeby odczytać semafory. W sumie można by w rozkładzie jazdy rozpisać całą drogę łącznie z nazwami semaforów, które mają być odczytane. Problem jest jednak, jeśli z jakiego losowego powodu skład pojedzie innym torem.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #37 dnia: 14 Lipca 2011, 17:31:14 »
Ale skanować można tylko raz, aż do następnego semafora, i zapisać sobie wszystkie ograniczenia które wystąpią po drodze. Taka lista zajmie trochę pamięci (no ale nie przesadzajmy) a spadnie potrzeba skanowania tego ileś razy. Można trzymać namiar do tamtego semafora i odczytywać sobie jego sygnał (ograniczenie prędkości) dopiero jeśli zbliżymy się na odległość mniejszą niż droga hamowania.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 2
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #38 dnia: 14 Lipca 2011, 17:41:46 »
A pamiętacie że w drodze hamowania semafora stoi do niego tarcza ostrzegawcza? Teoretycznie rozpoczęcie hamowania z odpowiednią siłą (sprawdzoną wcześniej na kontrolnym:P) w miejscu ustawienia tarczy powinno doprowadzić do zatrzymania składu tuż (kilka metrów) przed semaforem. Jedyne co musi być zrobione to przekazanie do AI stanu tarczy przez event (dla pewności warto go wstawić jakieś 10 metrów przed samą tarczą).
Pewnie padnie pytanie co w przypadki jak czoło przeleci tarczę Os1 a w międzyczasie na semafor wskoczy droga wolna? Rozwiązań mnogo bo i sytuacja każda inna, więc krótka analiza zachowań mechanika. Jak jest prosta i dobra widoczność na semafor to jasna sprawa. Gorzej jak mgła że na metr przed czoło nie widać (miałem okazję w takiej jechać), bo trzeba pod sam semafor podjechać. Jak jest semafor za łukiem to są powtarzacze, czasami gęsto i często, vide wjazd do Oświęcimia od Bierunia, tutaj jeszcze pod wiaduktem. No więc teraz jak to przenieść do symka. Powtarzacz - proste, event przekazujący wskazanie do AI. Zastanawiam się jak by można rozwiązać sytuację długa prosta bez powtarzaczy. Może zmienić program tak, aby event przekazujący wskazanie zadziałał dynamicznie w zależności od widoczności? Znaczy nie był przypisany na sztywno do jednego punktu, tylko do całego odcinka między tarczą a semaforem i aktywowany by był ustawieniem semafora i widocznością, jaka akurat jest (widoczność trzeba by wykalkulować z atmo(?)).
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline youBy

  • Deweloper
  • Wiadomości: 6167
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 876
Odp: Dyskusja o AI w MaSzynie
« Odpowiedź #39 dnia: 14 Lipca 2011, 18:14:25 »
Można, ale… od semafora będzie prościej. Nie potrzeba tyle kombinowiania, dorabiania funkcji i komplikowania (chyba jednak zbędnego obecnie) całej sytuacji. AI trzeba trzymać na możliwie prostym poziomie, żeby zachowywało się w sposób przewidywalny.
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.